I'm attempting to build a native build of clang from the 3.2 source distribution tarballs, but I ran into this build error that's got me really puzzled. My platform is Linux - 32-bit Ubuntu (12.04) running on a PC. Here's the (abbreviated) output from make: *************************************** ... make[3]: Entering directory `/home/youngmj/DevTools/LLVM/Version_3.2/build/tools/clang/runtime' make[4]: Entering directory `/home/youngmj/DevTools/LLVM/Version_3.2/build/tools/clang/runtime/compiler-rt' make[5]: Entering directory `/home/youngmj/DevTools/LLVM/Version_3.2/source/compiler-rt-3.2.src' MKDIR: /home/youngmj/DevTools/LLVM/Version_3.2/build/tools/clang/runtime/compiler-rt/clang_linux/full-i386/i386/SubDir.lib COMPILE: clang_linux/full-i386/i386: /home/youngmj/DevTools/LLVM/Version_3.2/source/llvm-3.2.src/projects/compiler-rt/lib/absvdi2.c <* SNIP *> COMPILE: clang_linux/full-i386/i386: /home/youngmj/DevTools/LLVM/Version_3.2/source/llvm-3.2.src/projects/compiler-rt/lib/divxc3.c COMPILE: clang_linux/full-i386/i386: /home/youngmj/DevTools/LLVM/Version_3.2/source/llvm-3.2.src/projects/compiler-rt/lib/enable_execute_stack.c In file included from /home/youngmj/DevTools/LLVM/Version_3.2/source/llvm-3.2.src/projects/compiler-rt/lib/enable_execute_stack.c:13: /usr/include/i386-linux-gnu/sys/mman.h:23:10: fatal error: 'features.h' file not found #include <features.h> ^ 1 error generated. ... *************************************** [Note: I created a symlink from <LLVM_SRC_DIR>/projects/compiler-rt to the directory created by unpacking the tarball source for compiler-rt (which is located on the same level as <LLVM_SRC_DIR> and has a suffix of "-3.2.src" in the name), so that's why the directory names may look a little funny.] Running "gcc -x c -E -v -" gives me the following: *************************************** $ gcc -xc -E -v - Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6/lto-wrapper Target: i686-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu Thread model: posix gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=i686' /usr/lib/gcc/i686-linux-gnu/4.6/cc1 -E -quiet -v -imultilib . -imultiarch i386-linux-gnu - -mtune=generic -march=i686 -fstack-protector ignoring nonexistent directory "/usr/local/include/i386-linux-gnu" ignoring nonexistent directory "/usr/lib/gcc/i686-linux-gnu/4.6/../../../../i686-linux-gnu/include" ignoring duplicate directory "/usr/include/i386-linux-gnu" #include "..." search starts here: #include <...> search starts here: /usr/include/i386-linux-gnu /usr/lib/gcc/i686-linux-gnu/4.6/include /usr/local/include /usr/lib/gcc/i686-linux-gnu/4.6/include-fixed /usr/include End of search list. # 1 "<stdin>" # 1 "<built-in>" # 1 "<command-line>" # 1 "<stdin>" COMPILER_PATH=/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.6/../../../../lib/:/lib/i386-linux-gnu/:/lib/../lib/:/usr/lib/i386-linux-gnu/:/usr/lib/../lib/:/usr/lib/i386-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.6/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=i686' $ *************************************** Running "gcc -x c++ -E -v -" gives me the following: *************************************** $ gcc -x c++ -E -v - Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6/lto-wrapper Target: i686-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu Thread model: posix gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=i686' /usr/lib/gcc/i686-linux-gnu/4.6/cc1plus -E -quiet -v -imultilib . -imultiarch i386-linux-gnu -D_GNU_SOURCE - -mtune=generic -march=i686 -fstack-protector ignoring nonexistent directory "/usr/local/include/i386-linux-gnu" ignoring nonexistent directory "/usr/lib/gcc/i686-linux-gnu/4.6/../../../../i686-linux-gnu/include" ignoring duplicate directory "/usr/include/i386-linux-gnu" #include "..." search starts here: #include <...> search starts here: /usr/include/i386-linux-gnu /usr/include/c++/4.6 /usr/include/c++/4.6/i686-linux-gnu/. /usr/include/c++/4.6/backward /usr/lib/gcc/i686-linux-gnu/4.6/include /usr/local/include /usr/lib/gcc/i686-linux-gnu/4.6/include-fixed /usr/include End of search list. # 1 "<stdin>" # 1 "<built-in>" # 1 "<command-line>" # 1 "<stdin>" COMPILER_PATH=/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.6/../../../../lib/:/lib/i386-linux-gnu/:/lib/../lib/:/usr/lib/i386-linux-gnu/:/usr/lib/../lib/:/usr/lib/i386-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.6/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=i686' $ *************************************** Notice that "#include<...> search" has "/usr/include" in the list, for both c and c++. Now I do a ls -l /usr/include/features.h, and I see the following: *************************************** $ ls -l /usr/include/features.h -rw-r--r-- 1 root root 13084 Oct 5 16:34 /usr/include/features.h $ *************************************** So I'm confused! Why can't the header file be found by the compiler when making clang/compiler-rt? Thanks, Michael
I'm continuing this here in llvm-dev since the thread was started here, but, in hindsight, it may have been better in cfe-dev, because the problem seems to be related to clang. I turned on "verbose" mode in make (VERBOSE=1 TOOL_VERBOSE=1) and found that it is clang, not gcc, that is being used at this point in the make. Based on the command issued (particularly with the --sysroot options), I surmised that I'm picking up the wrong <mman.h>. The one in the specified sysroot dir doesn't have a #include <features.h> (which is not being found). So where is the mman.h being picked up??? Well, I find it at /usr/include/i386-linux-gnu/sys, and, lo and behold, there is a #include <features.h> at line 23, just at the location reported with the error. And why is clang looking in "/usr/include/i386-linux-gnu"? Because I had defined the C_INCLUDE_PATH environment variable with this directory. When I reset this (and LIBRARY_PATH and CPLUS_INCLUDE_PATH) to empty, I can proceed with the make. Here's the problem - I have to have these environment variables defined to allow gcc to work (without them, I can't even get through configure). Ubuntu 11.10, 12.04, and perhaps later versions, put things in "non-standard" locations, and this is the workaround - see "http://gcc.gnu.org/ml/gcc/2012-02/msg00314.html" for details. That's fine, but clang apparently uses these environment variables, too, and, based on my results, I really don't think I want clang to pick these up, at least not when clang has sysroot specified (as it is in the make). Unfortunately, the make later reverts back to using gcc (actually g++), and it breaks again without the environment variables being defined with the appropriate directories. So is there an easy way to have gcc/g++ use these variables and not clang? That should allow me to get through a build (make) cleanly. Thanks, Mike
Hi Michael, you don't need compiler-rt to use clang. If you don't need it, I suggest you don't bother building it. Ciao, Duncan. On 21/02/13 01:15, Michael Young wrote:> > I'm attempting to build a native build of clang from the 3.2 source > distribution tarballs, but I ran into this build error that's got me > really puzzled. My platform is Linux - 32-bit Ubuntu (12.04) running > on a PC. Here's the (abbreviated) output from make: > > *************************************** > ... > make[3]: Entering directory `/home/youngmj/DevTools/LLVM/Version_3.2/build/tools/clang/runtime' > make[4]: Entering directory `/home/youngmj/DevTools/LLVM/Version_3.2/build/tools/clang/runtime/compiler-rt' > make[5]: Entering directory `/home/youngmj/DevTools/LLVM/Version_3.2/source/compiler-rt-3.2.src' > MKDIR: /home/youngmj/DevTools/LLVM/Version_3.2/build/tools/clang/runtime/compiler-rt/clang_linux/full-i386/i386/SubDir.lib > COMPILE: clang_linux/full-i386/i386: /home/youngmj/DevTools/LLVM/Version_3.2/source/llvm-3.2.src/projects/compiler-rt/lib/absvdi2.c > <* SNIP *> > COMPILE: clang_linux/full-i386/i386: /home/youngmj/DevTools/LLVM/Version_3.2/source/llvm-3.2.src/projects/compiler-rt/lib/divxc3.c > COMPILE: clang_linux/full-i386/i386: /home/youngmj/DevTools/LLVM/Version_3.2/source/llvm-3.2.src/projects/compiler-rt/lib/enable_execute_stack.c > In file included from /home/youngmj/DevTools/LLVM/Version_3.2/source/llvm-3.2.src/projects/compiler-rt/lib/enable_execute_stack.c:13: > /usr/include/i386-linux-gnu/sys/mman.h:23:10: fatal error: 'features.h' file not found > #include <features.h> > ^ > 1 error generated. > ... > *************************************** > > [Note: I created a symlink from <LLVM_SRC_DIR>/projects/compiler-rt to > the directory created by unpacking the tarball source for compiler-rt > (which is located on the same level as <LLVM_SRC_DIR> and has a suffix > of "-3.2.src" in the name), so that's why the directory names may look > a little funny.] > > Running "gcc -x c -E -v -" gives me the following: > > *************************************** > $ gcc -xc -E -v - > Using built-in specs. > COLLECT_GCC=gcc > COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6/lto-wrapper > Target: i686-linux-gnu > Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu > Thread model: posix > gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) > COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=i686' > /usr/lib/gcc/i686-linux-gnu/4.6/cc1 -E -quiet -v -imultilib . -imultiarch i386-linux-gnu - -mtune=generic -march=i686 -fstack-protector > ignoring nonexistent directory "/usr/local/include/i386-linux-gnu" > ignoring nonexistent directory "/usr/lib/gcc/i686-linux-gnu/4.6/../../../../i686-linux-gnu/include" > ignoring duplicate directory "/usr/include/i386-linux-gnu" > #include "..." search starts here: > #include <...> search starts here: > /usr/include/i386-linux-gnu > /usr/lib/gcc/i686-linux-gnu/4.6/include > /usr/local/include > /usr/lib/gcc/i686-linux-gnu/4.6/include-fixed > /usr/include > End of search list. > # 1 "<stdin>" > # 1 "<built-in>" > # 1 "<command-line>" > # 1 "<stdin>" > COMPILER_PATH=/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/ > LIBRARY_PATH=/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.6/../../../../lib/:/lib/i386-linux-gnu/:/lib/../lib/:/usr/lib/i386-linux-gnu/:/usr/lib/../lib/:/usr/lib/i386-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.6/../../../:/lib/:/usr/lib/ > COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=i686' > $ > *************************************** > > Running "gcc -x c++ -E -v -" gives me the following: > > *************************************** > $ gcc -x c++ -E -v - > Using built-in specs. > COLLECT_GCC=gcc > COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6/lto-wrapper > Target: i686-linux-gnu > Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu > Thread model: posix > gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) > COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=i686' > /usr/lib/gcc/i686-linux-gnu/4.6/cc1plus -E -quiet -v -imultilib . -imultiarch i386-linux-gnu -D_GNU_SOURCE - -mtune=generic -march=i686 -fstack-protector > ignoring nonexistent directory "/usr/local/include/i386-linux-gnu" > ignoring nonexistent directory "/usr/lib/gcc/i686-linux-gnu/4.6/../../../../i686-linux-gnu/include" > ignoring duplicate directory "/usr/include/i386-linux-gnu" > #include "..." search starts here: > #include <...> search starts here: > /usr/include/i386-linux-gnu > /usr/include/c++/4.6 > /usr/include/c++/4.6/i686-linux-gnu/. > /usr/include/c++/4.6/backward > /usr/lib/gcc/i686-linux-gnu/4.6/include > /usr/local/include > /usr/lib/gcc/i686-linux-gnu/4.6/include-fixed > /usr/include > End of search list. > # 1 "<stdin>" > # 1 "<built-in>" > # 1 "<command-line>" > # 1 "<stdin>" > COMPILER_PATH=/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/ > LIBRARY_PATH=/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.6/../../../../lib/:/lib/i386-linux-gnu/:/lib/../lib/:/usr/lib/i386-linux-gnu/:/usr/lib/../lib/:/usr/lib/i386-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.6/../../../:/lib/:/usr/lib/ > COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=i686' > $ > *************************************** > > Notice that "#include<...> search" has "/usr/include" in the list, for > both c and c++. Now I do a ls -l /usr/include/features.h, and I see > the following: > > *************************************** > > $ ls -l /usr/include/features.h > -rw-r--r-- 1 root root 13084 Oct 5 16:34 /usr/include/features.h > $ > > *************************************** > > So I'm confused! Why can't the header file be found by the compiler > when making clang/compiler-rt? > > Thanks, > Michael > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
Just in case someone is having similar problems and/or following this thread, here's my final "solution" (at least, for now). In my bash build script, prior to configure, I set the C_INCLUDE_PATH and CPLUS_INCLUDE_PATH to empty strings, and then set some other environment variables instead: export C_INCLUDE_PATHexport CPLUS_INCLUDE_PATH SYSTEM_INCLUDE_PATH="/usr/include/i386-linux-gnu" export CC=gcc export CXX=g++ export CFLAGS="-isystem ""${SYSTEM_INCLUDE_PATH}""" export CXXFLAGS="-isystem ""${SYSTEM_INCLUDE_PATH}""" This allowed me to build (configure and make) without error. It's not pretty, it's not perfect, but it seems to work. Since the LIBRARY_PATH environment variable is still set in this "solution", I'm slightly concerned that I may be picking up incorrect libraries with clang (I'm not sure whether clang actually uses this variable), but everything so far, including the testsuite (with a subsequent "make check-all"), does seem to compile, link, and run without problems. Note that I did try to do the same with LIBRARY_PATH (using SYSTEM_LIBRARY_PATH="/usr/lib/i386-linux-gnu" export LDFLAGS="-L""${SYSTEM_LIBRARY_PATH}""" instead), but configure still choked when running gcc - it couldn't find the crt*.o libraries. Here's the relevant output from the config.log file: *** configure:2141: checking for C compiler default output file name configure:2168: gcc -isystem /usr/include/i386-linux-gnu -L/usr/lib/i386-linux-gnu conftest.c>&5 /usr/bin/ld: cannot find crt1.o: No such file or directory /usr/bin/ld: cannot find crti.o: No such file or directory collect2: error: ld returned 1 exit status configure:2171: $? = 1 configure: failed program was: | /* confdefs.h. */ | #define PACKAGE_NAME "LLVM" | #define PACKAGE_TARNAME "llvm" | #define PACKAGE_VERSION "3.2svn" | #define PACKAGE_STRING "LLVM 3.2svn" | #define PACKAGE_BUGREPORT "http://llvm.org/bugs/" | #define LLVM_VERSION_MAJOR 3 | #define LLVM_VERSION_MINOR 2 | /* end confdefs.h. */ | | int | main () | { | | ; | return 0; | } configure:2210: error: C compiler cannot create executables *** I tried compiling a simple program using gcc, similar to what the configure script indicated, but with -v on the command line: echo "int main(){;return 0;}"> test.c gcc -v -isystem /usr/include/i386-linux-gnu -L/usr/lib/i386-linux-gnu test.c Here's the output from that: *** $ gcc -v -isystem /usr/include/i386-linux-gnu -L/usr/lib/i386-linux-gnu test.c Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/libexec/gcc/i686-pc-linux-gnu/4.7.2/lto-wrapper Target: i686-pc-linux-gnu Configured with: /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/configure --prefix=/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install --with-local-prefix=/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/local --with-gmp=/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/../gmp --with-mpfr=/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/../mpfr --with-mpc=/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/../mpc --enable-languages=c,c++,java --with-pkgversion=''\''MJY_Build__2013/02/22_04:52'\''' Thread model: posix gcc version 4.7.2 ('MJY_Build__2013/02/22_04:52') COLLECT_GCC_OPTIONS='-v' '-isystem' '/usr/include/i386-linux-gnu' '-L/usr/lib/i386-linux-gnu' '-mtune=generic' '-march=pentiumpro' /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/libexec/gcc/i686-pc-linux-gnu/4.7.2/cc1 -quiet -v -isystem /usr/include/i386-linux-gnu test.c -quiet -dumpbase test.c -mtune=generic -march=pentiumpro -auxbase test -version -o /tmp/ccUYclfj.s GNU C ('MJY_Build__2013/02/22_04:52') version 4.7.2 (i686-pc-linux-gnu) compiled by GNU C version 4.7.2, GMP version 5.1.0, MPFR version 3.1.1, MPC version 1.0.1 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ignoring duplicate directory "/usr/include/i386-linux-gnu" ignoring nonexistent directory "/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/local/include" ignoring nonexistent directory "/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/lib/gcc/i686-pc-linux-gnu/4.7.2/../../../../i686-pc-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /usr/include/i386-linux-gnu /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/lib/gcc/i686-pc-linux-gnu/4.7.2/include /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/include /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/lib/gcc/i686-pc-linux-gnu/4.7.2/include-fixed /usr/include End of search list. GNU C ('MJY_Build__2013/02/22_04:52') version 4.7.2 (i686-pc-linux-gnu) compiled by GNU C version 4.7.2, GMP version 5.1.0, MPFR version 3.1.1, MPC version 1.0.1 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 72f68229415f19718f7dd812e60ab105 COLLECT_GCC_OPTIONS='-v' '-isystem' '/usr/include/i386-linux-gnu' '-L/usr/lib/i386-linux-gnu' '-mtune=generic' '-march=pentiumpro' as -v --32 -o /tmp/ccB5jzCx.o /tmp/ccUYclfj.s GNU assembler version 2.22 (i686-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.22 COMPILER_PATH=/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/libexec/gcc/i686-pc-linux-gnu/4.7.2/:/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/libexec/gcc/i686-pc-linux-gnu/4.7.2/:/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/libexec/gcc/i686-pc-linux-gnu/:/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/lib/gcc/i686-pc-linux-gnu/4.7.2/:/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/lib/gcc/i686-pc-linux-gnu/ LIBRARY_PATH=./:/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/lib/gcc/i686-pc-linux-gnu/4.7.2/:/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/lib/gcc/i686-pc-linux-gnu/4.7.2/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-v' '-isystem' '/usr/include/i386-linux-gnu' '-L/usr/lib/i386-linux-gnu' '-mtune=generic' '-march=pentiumpro' /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/libexec/gcc/i686-pc-linux-gnu/4.7.2/collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 crt1.o crti.o /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/lib/gcc/i686-pc-linux-gnu/4.7.2/crtbegin.o -L/usr/lib/i386-linux-gnu -L. -L/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/lib/gcc/i686-pc-linux-gnu/4.7.2 -L/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/lib/gcc/i686-pc-linux-gnu/4.7.2/../../.. /tmp/ccB5jzCx.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/install/lib/gcc/i686-pc-linux-gnu/4.7.2/crtend.o crtn.o /usr/bin/ld: cannot find crt1.o: No such file or directory /usr/bin/ld: cannot find crti.o: No such file or directory collect2: error: ld returned 1 exit status $ *** Note that the invocation of gcc's collect2 has references on the command line to the missing libraries that precede the -L option to add the directory needed to find these libraries. I'm not a gcc expert, but this looks rather suspicious to me, and may be what's preventing me from using LDFLAGS rather than LIBRARY_PATH. - Mike
> > Hi Michael, you don't need compiler-rt to use clang. If you don't need it, I > suggest you don't bother building it. >Thanks for the advice. I realize that clang doesn't need it, but I was going to investigate compiler-rt for use in my own project(s), so I was compiling the works. That may be a little premature, since I still have a lot to grok with just LLVM, where my primary interest lies (specifically, in developing a compiler). I'm interested in clang because, thus far, amongst all the compilers I know of, it has the best C++11 support. Anyway, I seem to have found a build setup that works. Thanks, Mike