This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [PPL-devel] PPL broken for Canadian-cross builds
Hi,
On Sun, Mar 29, 2009 at 11:32, Joseph S. Myers <joseph@codesourcery.com> wrote:
> I can confirm that PPL now builds successfully for i686-mingw32 host. ÂThe
> next problem is that CLooG (the tarball in the infrastructure directory)
> doesn't appear portable to this system (in the secondary platforms list
> for 4.4 and 4.5); I get:
>
> source/program.c:42:27: error: sys/resource.h: No such file or directory
> ...
> source/program.c:674: error: 'RUSAGE_SELF' undeclared (first use in this function)
> ...
>
> This does not appear to be a cross build problem; it appears this file
> uses this header, not available on MinGW, unconditionally with no
> configure checks.
>
I committed the attached fix to the cloog-ppl repo, and I will prepare
a new tar.gz for the gcc infrastructure.
Sebastian Pop
--
AMD - GNU Tools
diff --git a/configure.in b/configure.in
index 03f280a..6c27749 100644
--- a/configure.in
+++ b/configure.in
@@ -103,6 +103,8 @@ AC_HEADER_STDC
dnl Checks for library functions.
AC_CHECK_FUNCS(strtol)
+AC_CHECK_HEADER(sys/resource.h,[AC_DEFINE(HAS_SYS_RESOURCE_H)],
+ [AC_MSG_RESULT([no])])
dnl /**************************************************************************
dnl * Option setting *
diff --git a/include/cloog/cloog-config.h.in b/include/cloog/cloog-config.h.in
index ba2c92c..01429f4 100644
--- a/include/cloog/cloog-config.h.in
+++ b/include/cloog/cloog-config.h.in
@@ -1,2 +1,3 @@
#undef LINEAR_VALUE_IS_MP
#undef CLOOG_PPL_BACKEND
+#undef HAS_SYS_RESOURCE_H
diff --git a/source/program.c b/source/program.c
index 7814fa1..0587308 100644
--- a/source/program.c
+++ b/source/program.c
@@ -39,7 +39,6 @@
# include <sys/types.h>
# include <sys/time.h>
-# include <sys/resource.h>
#include <stdarg.h>
# include <stdlib.h>
# include <stdio.h>
@@ -47,6 +46,9 @@
# include <ctype.h>
# include <unistd.h>
# include "../include/cloog/cloog.h"
+#ifdef HAS_SYS_RESOURCE_H
+# include <sys/resource.h>
+#endif
/******************************************************************************
@@ -614,7 +616,9 @@ CloogProgram * cloog_program_malloc (void)
*/
CloogProgram * cloog_program_generate(CloogProgram *program, CloogOptions *options)
{ float time ;
+#ifdef HAS_SYS_RESOURCE_H
struct rusage start, end ;
+#endif
CloogLoop * loop ;
#ifdef CLOOG_MEMORY
char status_path[MAX_STRING_VAL] ;
@@ -671,7 +675,10 @@ CloogProgram * cloog_program_generate(CloogProgram *program, CloogOptions *optio
}
}
+#ifdef HAS_SYS_RESOURCE_H
getrusage(RUSAGE_SELF, &start) ;
+#endif
+
if (cloog_program_loop (program))
{
loop = cloog_program_loop (program) ;
@@ -699,12 +706,14 @@ CloogProgram * cloog_program_generate(CloogProgram *program, CloogOptions *optio
cloog_program_set_loop (program, loop);
}
+#ifdef HAS_SYS_RESOURCE_H
getrusage(RUSAGE_SELF, &end) ;
/* We calculate the time spent in code generation. */
time = (end.ru_utime.tv_usec - start.ru_utime.tv_usec)/(float)(MEGA) ;
time += (float)(end.ru_utime.tv_sec - start.ru_utime.tv_sec) ;
options->time = time ;
-
+#endif
+
return program ;
}