Since yesterday I've been getting the error below when building llvm-gcc on Ubuntu Hardy on x86. For some reason, several instances of autoconf are getting confused and failing to detect a stdlib.h. John /home/regehr/z/tmp/llvm-gcc-r62547-src/build/./prev-gcc/xgcc -B/home/regehr/z/tmp/llvm-gcc-r62547-src/build/./prev-gcc/ -B/home/regehr/z/tmp/llvm-gcc-r62547-install/i686-pc-linux-gnu/bin/ -c -DHAVE_CONFIG_H -O2 -g -fomit-frame-pointer -I. -I../../libiberty/../include -W -Wall -pedantic -Wwrite-strings -Wstrict-prototypes -Wc++-compat ../../libiberty/cplus-dem.c -o cplus-dem.o no checking for ldfcn.h... ../../libiberty/cplus-dem.c:55: warning: function declaration isn’t a prototype ../../libiberty/cplus-dem.c:55: error: conflicting types for ‘malloc’
On Jan 19, 2009, at 5:34 PM, John Regehr wrote:> Since yesterday I've been getting the error below when building llvm- > gcc > on Ubuntu Hardy on x86. For some reason, several instances of > autoconf > are getting confused and failing to detect a stdlib.h. > > John > > > /home/regehr/z/tmp/llvm-gcc-r62547-src/build/./prev-gcc/xgcc > -B/home/regehr/z/tmp/llvm-gcc-r62547-src/build/./prev-gcc/ > -B/home/regehr/z/tmp/llvm-gcc-r62547-install/i686-pc-linux-gnu/bin/ -c > -DHAVE_CONFIG_H -O2 -g -fomit-frame-pointer -I. > -I../../libiberty/../include -W -Wall -pedantic -Wwrite-strings > -Wstrict-prototypes -Wc++-compat ../../libiberty/cplus-dem.c -o > cplus-dem.o > no > checking for ldfcn.h... ../../libiberty/cplus-dem.c:55: warning: > function declaration isn’t a prototype > ../../libiberty/cplus-dem.c:55: error: conflicting types for ‘malloc’ > _______________________________________________I'll need some more information than this. I don't have a Linux box, so I can't tell. Do you have a .i file? How is autoconf being confused? What does config.log say about it? -bw
On 2009-01-20 08:01, Bill Wendling wrote:> On Jan 19, 2009, at 5:34 PM, John Regehr wrote: > > >> Since yesterday I've been getting the error below when building llvm- >> gcc >> on Ubuntu Hardy on x86. For some reason, several instances of >> autoconf >> are getting confused and failing to detect a stdlib.h. >> >> John >> >> >> /home/regehr/z/tmp/llvm-gcc-r62547-src/build/./prev-gcc/xgcc >> -B/home/regehr/z/tmp/llvm-gcc-r62547-src/build/./prev-gcc/ >> -B/home/regehr/z/tmp/llvm-gcc-r62547-install/i686-pc-linux-gnu/bin/ -c >> -DHAVE_CONFIG_H -O2 -g -fomit-frame-pointer -I. >> -I../../libiberty/../include -W -Wall -pedantic -Wwrite-strings >> -Wstrict-prototypes -Wc++-compat ../../libiberty/cplus-dem.c -o >> cplus-dem.o >> no >> checking for ldfcn.h... ../../libiberty/cplus-dem.c:55: warning: >> function declaration isn’t a prototype >> ../../libiberty/cplus-dem.c:55: error: conflicting types for ‘malloc’ >> _______________________________________________ >> > > I'll need some more information than this. I don't have a Linux box, > so I can't tell. Do you have a .i file? How is autoconf being > confused? What does config.log say about it? > >I've seen this failure on my nightly builder too (SVN r62521), it is related to the -Wformat-security changes, apparently libiberty's configure considers warnings as failures: configure:3691: checking for stdlib.h configure:3704: /home/edwin/llvm-bootstrap/llvm-obj/./prev-gcc/xgcc -B/home/edwin/llvm-bootstrap/llvm-obj/./prev-gcc/ -B/home/edwin/llvm-bootstrap/llvm-obj/../install/x86_64-unknown-linux-gnu/bin/ -E conftest.c cc1: warning: -Wformat-security ignored without -Wformat configure:3710: $? = 0 configure: failed program was: | /* confdefs.h. */ | | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | /* end confdefs.h. */ | #include <stdlib.h> configure:3731: result: no Best regards, --Edwin
I'm away from my Linux machines, if this hasn't been resolved by tonight I'll send more details. THe problem in cplus-dem.c is that CPP is conditionally including code that comes when HAVE_STDLIB is not defined, including an alternate protptype for malloc() that conflicts with the existing one. This is just what causes the error I sent-- no idea what the root cause is. Thanks, John On Mon, 19 Jan 2009, Bill Wendling wrote:> On Jan 19, 2009, at 5:34 PM, John Regehr wrote: > >> Since yesterday I've been getting the error below when building llvm- >> gcc >> on Ubuntu Hardy on x86. For some reason, several instances of >> autoconf >> are getting confused and failing to detect a stdlib.h. >> >> John >> >> >> /home/regehr/z/tmp/llvm-gcc-r62547-src/build/./prev-gcc/xgcc >> -B/home/regehr/z/tmp/llvm-gcc-r62547-src/build/./prev-gcc/ >> -B/home/regehr/z/tmp/llvm-gcc-r62547-install/i686-pc-linux-gnu/bin/ -c >> -DHAVE_CONFIG_H -O2 -g -fomit-frame-pointer -I. >> -I../../libiberty/../include -W -Wall -pedantic -Wwrite-strings >> -Wstrict-prototypes -Wc++-compat ../../libiberty/cplus-dem.c -o >> cplus-dem.o >> no >> checking for ldfcn.h... ../../libiberty/cplus-dem.c:55: warning: >> function declaration isn’t a prototype >> ../../libiberty/cplus-dem.c:55: error: conflicting types for ‘malloc’ >> _______________________________________________ > > I'll need some more information than this. I don't have a Linux box, > so I can't tell. Do you have a .i file? How is autoconf being > confused? What does config.log say about it? > > -bw > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >