r939 - trunk/gcc

jim at linuxfromscratch.org jim at linuxfromscratch.org
Fri Apr 29 22:39:16 PDT 2005


Author: jim
Date: 2005-04-29 23:39:16 -0600 (Fri, 29 Apr 2005)
New Revision: 939

Added:
   trunk/gcc/gcc-3.4.3-fix_configure_for_target_native-1.patch
Log:
Added: gcc-3.4.3-fix_configure_for_target_native-1.patch for cross-lfs

Added: trunk/gcc/gcc-3.4.3-fix_configure_for_target_native-1.patch
===================================================================
--- trunk/gcc/gcc-3.4.3-fix_configure_for_target_native-1.patch	2005-04-29 18:25:20 UTC (rev 938)
+++ trunk/gcc/gcc-3.4.3-fix_configure_for_target_native-1.patch	2005-04-30 05:39:16 UTC (rev 939)
@@ -0,0 +1,95 @@
+Submitted By: Ryan Oliver (ryan dot oliver at pha dot com dot au)
+Origin: Ryan Oliver
+Date: 2004-07-15
+Initial Package Version: 3.4.1 (problem exists through 3.3 series)
+Upstream Status: Unknown
+Description: There are issues with configure when attempting to cross-compile
+	a native gcc for target. During the last stage of make configure-host,
+	where host = target, the configury doesn't check if host != build.
+	Therefore it assumes that the build is a native build and performs
+	 binutils feature checks using either 
+	a) what the native compiler we are building would normally use.
+	   If a target-native binutils has already been built with the same
+	   prefix, this is the binutils which is used which of course will not
+	   work on host
+	b) the host os's assembler/linker/nm/as
+	which leads to bogus results.
+	This patch fixes this behaviour, so that if host = target and 
+	host != build the cross tools will be used for feature checks.
+
+--- gcc-3.4.1-ORIG/gcc/configure	2004-04-19 09:45:10.000000000 +1000
++++ gcc-3.4.1/gcc/configure	2004-07-15 02:01:17.000000000 +1000
+@@ -9518,7 +9518,9 @@
+ 	# If the loop below does not find an assembler, then use whatever
+ 	# one we can find in the users's path.
+ 	# user's path.
+-	if test "x$program_prefix" != xNONE; then
++	if test "x$host" = "x$target" -a "x$host" != "x$build"; then
++		gcc_cv_as=${target_alias}-as$host_exeext
++	elif test "x$gcc_cv_as" = x -a "x$program_prefix" != xNONE; then
+ 		gcc_cv_as=${program_prefix}as$host_exeext
+ 	else
+ 		gcc_cv_as=`echo as | sed ${program_transform_name}`$host_exeext
+@@ -9528,10 +9530,13 @@
+ 		   $test_prefix/libexec/gcc/$target_noncanonical \
+ 		   /usr/lib/gcc/$target_noncanonical/$gcc_version \
+ 		   /usr/lib/gcc/$target_noncanonical \
+-		   $test_prefix/$target_noncanonical/bin/$target_noncanonical/$gcc_version \
+-		   $test_prefix/$target_noncanonical/bin"
++		   $test_prefix/$target_noncanonical/bin/$target_noncanonical/$gcc_version"
++	if test "x$build" = "x$target" ; then 
++		test_dirs="$test_dirs \
++			   $test_prefix/$target_noncanonical/bin"
++	fi
+ 
+-	if test x$host = x$target; then
++	if test x$host = x$target -a x$host = x$build; then
+ 	    test_dirs="$test_dirs \
+ 		   /usr/libexec \
+ 		   /usr/ccs/gcc \
+@@ -9633,7 +9638,9 @@
+ 	# If the loop below does not find an linker, then use whatever
+ 	# one we can find in the users's path.
+ 	# user's path.
+-	if test "x$program_prefix" != xNONE; then
++	if test "x$host" = "x$target" -a "x$host" != "x$build"; then
++		gcc_cv_ld=${target_alias}-ld$host_exeext
++	elif test "x$gcc_cv_ld" = x -a "x$program_prefix" != xNONE; then
+ 		gcc_cv_ld=${program_prefix}ld$host_exeext
+ 	else
+ 		gcc_cv_ld=`echo ld | sed ${program_transform_name}`$host_exeext
+@@ -9643,10 +9650,13 @@
+ 		   $test_prefix/libexec/gcc/$target_noncanonical \
+ 		   /usr/lib/gcc/$target_noncanonical/$gcc_version \
+ 		   /usr/lib/gcc/$target_noncanonical \
+-		   $test_prefix/$target_noncanonical/bin/$target_noncanonical/$gcc_version \
+-		   $test_prefix/$target_noncanonical/bin"
++		   $test_prefix/$target_noncanonical/bin/$target_noncanonical/$gcc_version"
++	if test "x$build" = "x$target" ; then 
++		test_dirs="$test_dirs \
++			   $test_prefix/$target_noncanonical/bin"
++	fi
+ 
+-	if test x$host = x$target; then
++	if test x$host = x$target -a x$host = x$build; then
+ 	    test_dirs="$test_dirs \
+ 		   /usr/libexec \
+ 		   /usr/ccs/gcc \
+@@ -9692,6 +9702,8 @@
+ 	gcc_cv_nm=./nm$host_exeext
+ 	rm -f nm$host_exeext
+ 	$symbolic_link ../binutils/nm-new$host_exeext nm$host_exeext 2>/dev/null
++elif test "x$host" = "x$target" -a "x$host" != "x$build"; then
++	gcc_cv_nm=${target_alias}-nm$host_exeext
+ elif test "x$program_prefix" != xNONE; then
+ 	gcc_cv_nm=${program_prefix}nm$host_exeext
+ else
+@@ -9718,6 +9730,8 @@
+ 	rm -f objdump$host_exeext
+ 	$symbolic_link ../binutils/objdump$host_exeext \
+ 		objdump$host_exeext 2>/dev/null
++elif test "x$host" = "x$target" -a "x$host" != "x$build"; then
++	gcc_cv_objdump=${target_alias}-objdump$host_exeext
+ elif test "x$program_prefix" != xNONE; then
+ 	gcc_cv_objdump=${program_prefix}objdump$host_exeext
+ else




More information about the patches mailing list