[LLVMdev] llvm-gcc builds on 32 bit linux broken

Bill Wendling isanbard at gmail.com
Wed Jul 30 23:35:55 PDT 2008


I think this error is due to these changes:

Doing diffs in .:
--- ./gsyslimits.h.~1~	2006-11-26 12:31:50.000000000 -0800
+++ ./gsyslimits.h	2007-04-02 12:37:38.000000000 -0700
@@ -4,5 +4,3 @@
     instead of this text.  */

  #define _GCC_NEXT_LIMITS_H		/* tell gcc's limits.h to recurse */
-#include_next <limits.h>
-#undef _GCC_NEXT_LIMITS_H
--- ./limitx.h.~1~	2006-11-26 12:31:48.000000000 -0800
+++ ./limitx.h	2007-04-02 13:51:40.000000000 -0700
@@ -1,12 +1,11 @@
  /* This administrivia gets added to the beginning of limits.h
     if the system has its own version of limits.h.  */

-/* We use _GCC_LIMITS_H_ because we want this not to match
-   any macros that the system's limits.h uses for its own purposes.  */
-#ifndef _GCC_LIMITS_H_  /* Terminated in limity.h.  */
-#define _GCC_LIMITS_H_
-
  #ifndef _LIBC_LIMITS_H_
  /* Use "..." so that we find syslimits.h only in this same  
directory.  */
  #include "syslimits.h"
  #endif
+#ifdef _GCC_NEXT_LIMITS_H
+#include_next <limits.h>
+#undef _GCC_NEXT_LIMITS_H
+#endif
--- ./limity.h.~1~	2006-11-26 12:31:49.000000000 -0800
+++ ./limity.h	2007-04-02 12:33:24.000000000 -0700
@@ -1,10 +0,0 @@
-/* This administrivia gets added to the end of limits.h
-   if the system has its own version of limits.h.  */
-
-#else /* not _GCC_LIMITS_H_ */
-
-#ifdef _GCC_NEXT_LIMITS_H
-#include_next <limits.h>		/* recurse down to the real one */
-#endif
-
-#endif /* not _GCC_LIMITS_H_ */


However, the changes were accepted by the FSF way back when:

	http://gcc.gnu.org/ml/gcc-patches/2007-04/msg00074.html

Here's the offending line in the Linux /usr/include/limits.h:

#if defined __GNUC__ && !defined _GCC_LIMITS_H_
/* `_GCC_LIMITS_H_' is what GCC's file defines.  */
# include_next <limits.h>
#endif

Do you think it's sufficient to keep this bit around?

/* We use _GCC_LIMITS_H_ because we want this not to match
    any macros that the system's limits.h uses for its own purposes.  */
#ifndef _GCC_LIMITS_H_  /* Terminated in limity.h.  */
#define _GCC_LIMITS_H_


I couldn't imagine that this was allowed to stay in the FSF compiler  
if it messed up Linux. Does anyone have an idea of what the FSF GCC  
GPLv2 (*NOT* GPLv3) does in this case?

-bw

On Jul 30, 2008, at 6:19 AM, Matthijs Kooijman wrote:

> Hi all,
>
> I'm having some trouble building llvm-gcc as of today, with and  
> without
> bootstrap.
>
> The error I get is:
>
> /home/kooijman/src/llvm-gcc/obj/./gcc/xgcc
> 	-B/home/kooijman/src/llvm-gcc/obj/./gcc/
> 	-B/home/kooijman/src/llvm-gcc/obj/../install/i686-pc-linux-gnu/bin/
> 	-B/home/kooijman/src/llvm-gcc/obj/../install/i686-pc-linux-gnu/lib/  
> -isystem
> 	/home/kooijman/src/llvm-gcc/obj/../install/i686-pc-linux-gnu/ 
> include -isystem
> 	/home/kooijman/src/llvm-gcc/obj/../install/i686-pc-linux-gnu/sys- 
> include -O2
> 	-O2 -g -O2  -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes
> 	-Wmissing-prototypes -Wold-style-definition  -isystem ./include  - 
> I. -I.
> 	-I../../llvm-gcc-4.2-trunk/gcc -I../../llvm-gcc-4.2-trunk/gcc/.
> 	-I../../llvm-gcc-4.2-trunk/gcc/../include
> 	-I../../llvm-gcc-4.2-trunk/gcc/../libcpp/include
> 	-I../../llvm-gcc-4.2-trunk/gcc/../libdecnumber -I../libdecnumber
> 	-I/home/kooijman/src/llvm-trunk/include -I/home/kooijman/src/llvm- 
> trunk/include
> 	-g0 -finhibit-size-directive -fno-inline-functions -fno-exceptions
> 	-fno-zero-initialized-in-bss -fno-toplevel-reorder  -fno-omit-frame- 
> pointer \
> 	-c ../../llvm-gcc-4.2-trunk/gcc/crtstuff.c -DCRT_BEGIN \ -o  
> crtbegin.o
> In file included from /home/kooijman/src/llvm-gcc/obj/./gcc/include/ 
> limits.h:10,
>                 from ../../llvm-gcc-4.2-trunk/gcc/tsystem.h:108,
>                 from ../../llvm-gcc-4.2-trunk/gcc/crtstuff.c:68:
> /usr/include/limits.h:125:26: error: no include path in which to  
> search for limits.h
> make[2]: *** [crtbegin.o] Error 1
> make[2]: Leaving directory `/home/kooijman/src/llvm-gcc/obj/gcc
>
>
> The last known working version is r54156 (just compiled that). The  
> latest rev
> (r54208) fails for me. In between there are only merges from Apple  
> GCC 4.2,
> with not so very helpful messages.
>
> I would have tried to narrow this down a bit further, but I can't  
> easily check
> the commit diffs because the mailling list (archives) are down.
>
> Anyone able to reproduce this (or even, better fix it)?
>
> Gr.
>
> Matthijs
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list