Summary: | sys-devel/gcc-3.3.6-r1 fails to cross-compile for arm-linux-uclibc | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Erik Benada <erikbenada> |
Component: | [OLD] Development | Assignee: | Gentoo Toolchain Maintainers <toolchain> |
Status: | RESOLVED WONTFIX | ||
Severity: | normal | ||
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
crossdev log
gcc stage1 build log Patch for gcc.c Corrected patch for gcc.c Patch to allow gcc-3.3.6 to cross-compile |
Description
Erik Benada
2009-01-26 17:46:47 UTC
Created attachment 179786 [details]
crossdev log
Created attachment 179787 [details]
gcc stage1 build log
Created attachment 179790 [details, diff]
Patch for gcc.c
Created attachment 179804 [details, diff]
Corrected patch for gcc.c
Comment on attachment 179804 [details, diff]
Corrected patch for gcc.c
nothing like this will be merged
gcc-3.3 isnt supported anymore for uclibc. just use gcc-3.4. if you do find the real root cause and post a patch, i'll consider it though ... (In reply to comment #5) > (From update of attachment 179804 [details, diff] [edit]) > nothing like this will be merged > This patch was never intended to be merged. It was sort of 'proof of concept'. (In reply to comment #6) > gcc-3.3 isnt supported anymore for uclibc. just use gcc-3.4. > > if you do find the real root cause and post a patch, i'll consider it though > ... > I believe root cause is that GCC-3.3.6's compiled-in list of search directories does not contain path to cross-binutils. As GCC cannot find e.g. 'as' anywhere in its search path, it will use 'as' as assembler command and the system's native assembler is used. GCC 4.1.2 has '/usr/libexec/gcc' prefix in the list of exec_prefixes compiled in (see gcc/gcc.c). Below is patch that will add '/usr/libexec/gcc' to exec_prefixes. It cross-compiled for arm-linux-uclibc successfully and I was able to compile code that ran on ARM. However, I compiled only stage 1 compiler (C only, no C++). Running 'arm-linux-uclibc-gcc -print-search-dirs' gives the output: install: /usr/lib/gcc-lib/arm-linux-uclibc/3.3.6/ programs: =/usr/lib/gcc-lib/arm-linux-uclibc/3.3.6/:/usr/lib/gcc-lib/arm-linux-uclibc/3.3.6/:/usr/lib/gcc-lib/arm-linux-uclibc/:/usr/lib/gcc/arm-linux-uclibc/3.3.6/:/usr/lib/gcc/arm-linux-uclibc/:/usr/libexec/gcc/arm-linux-uclibc/3.3.6/:/usr/libexec/gcc/arm-linux-uclibc/:/usr/lib/gcc-lib/arm-linux-uclibc/3.3.6/../../../../arm-linux-uclibc/bin/arm-linux-uclibc/3.3.6/:/usr/lib/gcc-lib/arm-linux-uclibc/3.3.6/../../../../arm-linux-uclibc/bin/ libraries: =/usr/lib/gcc-lib/arm-linux-uclibc/3.3.6/:/usr/lib/gcc/arm-linux-uclibc/3.3.6/:/usr/libexec/gcc/arm-linux-uclibc/3.3.6/:/usr/lib/gcc-lib/arm-linux-uclibc/3.3.6/../../../../arm-linux-uclibc/lib/arm-linux-uclibc/3.3.6/:/usr/lib/gcc-lib/arm-linux-uclibc/3.3.6/../../../../arm-linux-uclibc/lib/:/usr/arm-linux-uclibc/lib/arm-linux-uclibc/3.3.6/:/usr/arm-linux-uclibc/lib/:/usr/arm-linux-uclibc/usr/lib/arm-linux-uclibc/3.3.6/:/usr/arm-linux-uclibc/usr/lib/ Notice '/usr/libexec/gcc/arm-linux-uclibc/' directory in the list. Running 'arm-linux-uclibc-gcc -print-prog-name=as' gives output: /usr/libexec/gcc/arm-linux-uclibc/as Created attachment 180113 [details, diff]
Patch to allow gcc-3.3.6 to cross-compile
|