Patchwork fix PR target/46040, build failure on arm-linux-gnueabi

login
register
mail settings
Submitter Nathan Froyd
Date Dec. 8, 2010, 9:31 p.m.
Message ID <20101208213133.GE25904@nightcrawler>
Download mbox | patch
Permalink /patch/74782/
State New
Headers show

Comments

Nathan Froyd - Dec. 8, 2010, 9:31 p.m.
The patch below implements Joseph's suggestion in:

http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00619.html

for fixing the bootstrap failures seen on ARM.  I'm currently trying
this with a cross compilation and attempting a bootstrap on an ARM
machine; the bootstrap is progressing *very* slowly, so if anybody
(Ulrich?) wanted to try a bootstrap on their (probably faster) machine,
that would be appreciated.

OK to commit if testing succeeds?

-Nathan

	PR target/46040
	* config.gcc (arm*-*-linux-*eabi): Adjust path to bpabi.h.
	(arm*-*-uclinux*eabi, arm*-*-eabi*): Likewise.
Richard Earnshaw - Dec. 10, 2010, 2:35 p.m.
On Wed, 2010-12-08 at 16:31 -0500, Nathan Froyd wrote:
> The patch below implements Joseph's suggestion in:
> 
> http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00619.html
> 
> for fixing the bootstrap failures seen on ARM.  I'm currently trying
> this with a cross compilation and attempting a bootstrap on an ARM
> machine; the bootstrap is progressing *very* slowly, so if anybody
> (Ulrich?) wanted to try a bootstrap on their (probably faster) machine,
> that would be appreciated.
> 
> OK to commit if testing succeeds?
> 
> -Nathan
> 
> 	PR target/46040
> 	* config.gcc (arm*-*-linux-*eabi): Adjust path to bpabi.h.
> 	(arm*-*-uclinux*eabi, arm*-*-eabi*): Likewise.
> 

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.

R.

> diff --git a/gcc/config.gcc b/gcc/config.gcc
> index dfbf2c5..45bdc6c 100644
> --- a/gcc/config.gcc
> +++ b/gcc/config.gcc
> @@ -792,7 +792,7 @@ arm*-*-linux*)			# ARM GNU/Linux with ELF
>  	tmake_file="${tmake_file} t-linux arm/t-arm"
>  	case ${target} in
>  	arm*-*-linux-*eabi)
> -	    tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
> +	    tm_file="$tm_file ../../gcc/config/arm/bpabi.h arm/linux-eabi.h"
>  	    tm_file="$tm_file ../../libgcc/config/arm/bpabi.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.
> @@ -820,7 +820,7 @@ arm*-*-uclinux*)		# ARM ucLinux
>  	tmake_file="arm/t-arm arm/t-arm-elf"
>  	case ${target} in
>  	arm*-*-uclinux*eabi)
> -	    tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h"
> +	    tm_file="$tm_file ../../gcc/config/arm/bpabi.h arm/uclinux-eabi.h"
>  	    tm_file="$tm_file ../../libgcc/config/arm/bpabi.h"
>  	    tmake_file="$tmake_file arm/t-bpabi"
>    	    # The BPABI long long divmod functions return a 128-bit value in
> @@ -844,7 +844,8 @@ arm*-*-eabi* | arm*-*-symbianelf* )
>  	# TImode.
>  	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="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h"
> +	tm_file="$tm_file ../../gcc/config/arm/bpabi.h"
>  	tm_file="$tm_file ../../libgcc/config/arm/bpabi.h"
>  	tmake_file="arm/t-arm arm/t-arm-elf"
>  	case ${target} in

Patch

diff --git a/gcc/config.gcc b/gcc/config.gcc
index dfbf2c5..45bdc6c 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -792,7 +792,7 @@  arm*-*-linux*)			# ARM GNU/Linux with ELF
 	tmake_file="${tmake_file} t-linux arm/t-arm"
 	case ${target} in
 	arm*-*-linux-*eabi)
-	    tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
+	    tm_file="$tm_file ../../gcc/config/arm/bpabi.h arm/linux-eabi.h"
 	    tm_file="$tm_file ../../libgcc/config/arm/bpabi.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.
@@ -820,7 +820,7 @@  arm*-*-uclinux*)		# ARM ucLinux
 	tmake_file="arm/t-arm arm/t-arm-elf"
 	case ${target} in
 	arm*-*-uclinux*eabi)
-	    tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h"
+	    tm_file="$tm_file ../../gcc/config/arm/bpabi.h arm/uclinux-eabi.h"
 	    tm_file="$tm_file ../../libgcc/config/arm/bpabi.h"
 	    tmake_file="$tmake_file arm/t-bpabi"
   	    # The BPABI long long divmod functions return a 128-bit value in
@@ -844,7 +844,8 @@  arm*-*-eabi* | arm*-*-symbianelf* )
 	# TImode.
 	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="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h"
+	tm_file="$tm_file ../../gcc/config/arm/bpabi.h"
 	tm_file="$tm_file ../../libgcc/config/arm/bpabi.h"
 	tmake_file="arm/t-arm arm/t-arm-elf"
 	case ${target} in