This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] fix PR target/46040, build failure on arm-linux-gnueabi
On Friday, December 10, 2010 9:02:48 pm Nathan Froyd wrote:
> On Fri, Dec 10, 2010 at 02:35:52PM +0000, Richard Earnshaw wrote:
> > So presumably the problem here is that we have two different files, both
> > of which have the common tail sequence arm/bpabi.h and that sometimes we
> > can't resolve this unambiguously.
> >
> > Wouldn't it be better just to rename the one in libgcc to
> > arm/bpabi-lib.h (or something similar)? Then we won't be depending so
> > much on the precise relative layout of the two subdirs.
>
> Like this? Testing in progress.
>
> -Nathan
>
> gcc/
> PR target/46040
> * config.gcc (arm*-*-linux-*eabi): Use bpabi-lib.h.
> (arm*-*-uclinux*eabi, arm*-*-eabi*): Likewise.
>
> libgcc/
> PR target/46040
> * config/arm/bpabi.h: Rename to...
> * config/arm/bpabi-lib.h: ...this.
>
> Index: config.gcc
> ===================================================================
> --- config.gcc (revision 167600)
> +++ config.gcc (working copy)
> @@ -793,7 +793,7 @@ arm*-*-linux*) # ARM GNU/Linux with EL
> case ${target} in
> arm*-*-linux-*eabi)
> tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
> - tm_file="$tm_file ../../libgcc/config/arm/bpabi.h"
> + tm_file="$tm_file ../../libgcc/config/arm/bpabi-lib.h"
> tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi
> t-slibgcc-libgcc" # Define multilib configuration for
> arm-linux-androideabi.
> case ${target} in
> @@ -821,7 +821,7 @@ arm*-*-uclinux*) # ARM ucLinux
> case ${target} in
> arm*-*-uclinux*eabi)
> tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h"
> - tm_file="$tm_file ../../libgcc/config/arm/bpabi.h"
> + tm_file="$tm_file ../../libgcc/config/arm/bpabi-lib.h"
> tmake_file="$tmake_file arm/t-bpabi"
> # The BPABI long long divmod functions return a 128-bit value in
> # registers r0-r3. Correctly modeling that requires the use of
> @@ -845,7 +845,7 @@ arm*-*-eabi* | arm*-*-symbianelf* )
> need_64bit_hwint=yes
> default_use_cxa_atexit=yes
> tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
> - tm_file="$tm_file ../../libgcc/config/arm/bpabi.h"
> + tm_file="$tm_file ../../libgcc/config/arm/bpabi-lib.h"
> tmake_file="arm/t-arm arm/t-arm-elf"
> case ${target} in
> arm*-*-eabi*)
Thanks for working on this! With these two patches applied, the GCC trunk
r167715 bootstrapped fine for me (having c,c++ enabled):
* http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00915.html
(PR46040: crtstuff.c:308:26: error: '__DTOR_LIST__' undeclared)
* http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00402.html
(PR46667: libstdc++ section type conflict during)
The test results can be found at:
http://gcc.gnu.org/ml/gcc-testresults/2010-12/msg01076.html
Regards
Ken