This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Sun, Mar 13, 2011 at 11:23 PM, Rahul Gauba <rahul_gauba@yahoo.com> wrote: > ? ? Not sure about the ct-ng project. But if you plan to use compiler, > libraries, include paths from the cross-chain tool, you need to: Your uncertainty about CT-NG specifically is noted :-) > 1 -- ?Modify the environment variable PATH such that gcc is invoked from the > cross-chain. ...unless you'd like to use the full path every time you invoke the compiler... :-) > 2 -- You should be using the shared libraries from cross-chain tool, so you need > to specify using -L<cross-chain-path> when linking. Your cross-chain build area > should have lib and usr/lib directories. So these need to specified with -L. > 3 -- Also the include path for C/C++ headers from the cross-chain should be > mentioned using -I<cross-chain include directories>. I'm quite sure the CT-NG project takes care of numbers 2 and 3 for you (maybe someone would like to confirm my understanding?). I had just recently asked these specific questions of Yann and that was the impression I got. I believe this is all because of the use of sysroot (is that correct Yann?). Specifically, if I compile a simple "hello.c" using my powerpc-405 compiler built with CT-NG and add the "-v" option on the command line, GCC gets very verbose about exactly everything it is doing: $ powerpc-405-linux-gnu-gcc -v -o hello hello.c Using built-in specs. Target: powerpc-405-linux-gnu Configured with: /home/trevor/devel/ct-ng/1.10.0/work-area/powerpc-405/targets/src/gcc-4.3.2/configure --build=x86_64-build_unknown-linux-gnu --host=x86_64-build_unknown-linux-gnu --target=powerpc-405-linux-gnu --prefix=/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu --with-sysroot=/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/powerpc-405-linux-gnu/sysroot --enable-languages=c --disable-multilib --with-cpu=405 --with-tune=405 --with-float=soft --with-pkgversion=crosstool-NG-1.10.0 --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --with-gmp=/home/trevor/devel/ct-ng/1.10.0/work-area/powerpc-405/targets/powerpc-405-linux-gnu/build/static --with-mpfr=/home/trevor/devel/ct-ng/1.10.0/work-area/powerpc-405/targets/powerpc-405-linux-gnu/build/static --enable-threads=posix --enable-target-optspace --with-local-prefix=/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/powerpc-405-linux-gnu/sysroot --disable-nls --enable-symvers=gnu --enable-c99 --enable-long-long Thread model: posix gcc version 4.3.2 (crosstool-NG-1.10.0) COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-mcpu=405' '-mtune=405' '-msoft-float' /home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/libexec/gcc/powerpc-405-linux-gnu/4.3.2/cc1 -quiet -v -D__unix__ -D__gnu_linux__ -D__linux__ -Dunix -D__unix -Dlinux -D__linux -Asystem=linux -Asystem=unix -Asystem=posix hello.c -quiet -dumpbase hello.c -mcpu=405 -mtune=405 -msoft-float -auxbase hello -version -o /tmp/ccXXIIu6.s ignoring nonexistent directory "/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/powerpc-405-linux-gnu/sysroot/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/powerpc-405-linux-gnu/sysroot/include" ignoring nonexistent directory "/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/lib/gcc/powerpc-405-linux-gnu/4.3.2/../../../../powerpc-405-linux-gnu/include" ignoring nonexistent directory "/home/trevor/local/include" #include "..." search starts here: #include <...> search starts here: /home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/lib/gcc/powerpc-405-linux-gnu/4.3.2/include /home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/lib/gcc/powerpc-405-linux-gnu/4.3.2/include-fixed /home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/powerpc-405-linux-gnu/sysroot/usr/include End of search list. GNU C (crosstool-NG-1.10.0) version 4.3.2 (powerpc-405-linux-gnu) compiled by GNU C version 4.5.1 20101208 [gcc-4_5-branch revision 167585], GMP version 4.3.2, MPFR version 2.4.2-p2. GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=127680 Compiler executable checksum: b3ecde2a02c137bc92133d3e84fb9338 COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-mcpu=405' '-mtune=405' '-msoft-float' /home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/lib/gcc/powerpc-405-linux-gnu/4.3.2/../../../../powerpc-405-linux-gnu/bin/as -m405 -many -V -Qy -o /tmp/ccPKBolR.o /tmp/ccXXIIu6.s GNU assembler version 2.19.1 (powerpc-405-linux-gnu) using BFD version (GNU Binutils) 2.19.1 COMPILER_PATH=/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/libexec/gcc/powerpc-405-linux-gnu/4.3.2/:/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/libexec/gcc/powerpc-405-linux-gnu/4.3.2/:/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/libexec/gcc/powerpc-405-linux-gnu/:/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/lib/gcc/powerpc-405-linux-gnu/4.3.2/:/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/lib/gcc/powerpc-405-linux-gnu/:/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/lib/gcc/powerpc-405-linux-gnu/4.3.2/../../../../powerpc-405-linux-gnu/bin/ LIBRARY_PATH=/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/lib/gcc/powerpc-405-linux-gnu/4.3.2/:/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/powerpc-405-linux-gnu/sysroot/lib/:/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/powerpc-405-linux-gnu/sysroot/usr/lib/ COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-mcpu=405' '-mtune=405' '-msoft-float' /home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/libexec/gcc/powerpc-405-linux-gnu/4.3.2/collect2 --sysroot=/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/powerpc-405-linux-gnu/sysroot --eh-frame-hdr -V -Qy -m elf32ppclinux -dynamic-linker /lib/ld.so.1 -o hello /home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/powerpc-405-linux-gnu/sysroot/usr/lib/crt1.o /home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/powerpc-405-linux-gnu/sysroot/usr/lib/crti.o /home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/lib/gcc/powerpc-405-linux-gnu/4.3.2/crtbegin.o -L/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/lib/gcc/powerpc-405-linux-gnu/4.3.2 -L/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/powerpc-405-linux-gnu/sysroot/lib -L/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/powerpc-405-linux-gnu/sysroot/usr/lib /tmp/ccPKBolR.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/lib/gcc/powerpc-405-linux-gnu/4.3.2/crtsavres.o /home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/lib/gcc/powerpc-405-linux-gnu/4.3.2/crtend.o /home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/powerpc-405-linux-gnu/sysroot/usr/lib/crtn.o GNU ld (GNU Binutils) 2.19.1 Supported emulations: elf32ppclinux elf32ppc elf32ppcsim If you look closely at the output you'll notice: #include "..." search starts here: #include <...> search starts here: /home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/lib/gcc/powerpc-405-linux-gnu/4.3.2/include /home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/lib/gcc/powerpc-405-linux-gnu/4.3.2/include-fixed /home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/powerpc-405-linux-gnu/sysroot/usr/include End of search list. Specifically, the #include "" and #include <> paths do not include the system include locations, just the cross locations. Then later the collect2 phase: -L/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/lib/gcc/powerpc-405-linux-gnu/4.3.2 -L/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/powerpc-405-linux-gnu/sysroot/lib -L/home/trevor/devel/ct-ng/1.10.0/x-tools/powerpc-405-linux-gnu/powerpc-405-linux-gnu/sysroot/usr/lib so the final linking is taking place using the cross library locations. So when using CT-NG you don't need to use fancy "-L" and "-I" logic to get your Makefiles correct. Just using the steps I mentioned before should suffice. -- For unsubscribe information see http://sourceware.org/lists.html#faq
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |