[PATCH] GNU/Hurd config update

Mark Kettenis kettenis@wins.uva.nl
Sun Nov 5 05:06:00 GMT 2000


Argh!  Turns out we have been buiding crtbegin.o with -fPIC and
crtbeginS.o without, for quite some time now.  The attached patch
corrects this by making the Hurd share its target-specific make
details with Linux.  We already were sharing the host-specfic details
and it is the intention of the Hurd hackers to follow Linux as closely
as possible.  As an added bonus this enables the shared libgcc stuff
for the Hurd.

Could someone please install this patch?

Mark


2000-11-05  Mark Kettenis  <kettenis@gnu.org>

	* configure.in: Reorganize handling of *-*-gnu*, to share target
	specific make details with Linux.  Update comments to clarify
        the distinction between GNU/Linux and GNU/Hurd.
	* config/t-gnu (LIBGCC1, CROSS_LIBGCC1, CRTSTUFF_T_CFLAGS,
	TARGET_LIBGCC2_CFLAGS): Remove.  We now use the settings from
	config/t-linux for the Hurd.


Index: configure.in
===================================================================
RCS file: /cvs/gcc/egcs/gcc/configure.in,v
retrieving revision 1.442
diff -u -p -r1.442 configure.in
--- configure.in	2000/11/05 10:35:30	1.442
+++ configure.in	2000/11/05 13:03:53
@@ -692,11 +692,28 @@ changequote([,])dnl
 		;;
 	esac	
 
-	# Common parts for linux and openbsd systems
+	# Common parts for GNU/Linux, GNU/Hurd and OpenBSD systems.
 	case $machine in
 	*-*-linux*)
 		xm_defines="HAVE_ATEXIT POSIX BSTRING"
 		;;
+	*-*-gnu*)
+		# On the Hurd, the setup is just about the same on
+		# each different CPU.  The specific machines that we
+                # support are matched above and just set $cpu_type.
+		xm_file="xm-gnu.h ${xm_file}"
+		tm_file=${cpu_type}/gnu.h
+		extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+		# The Hurd always uses ELF.
+		elf=yes
+		# GNU tools are the only tools.
+		gnu_ld=yes
+		gas=yes
+		# These details are the same as for Linux.
+		xmake_file=x-linux
+		# But here we need a little extra magic.
+		tmake_file="t-linux t-gnu"
+		;;
 	*-*-openbsd*)
 		tm_file=${cpu_type}/openbsd.h
 		tmake_file="t-libc-ok t-openbsd"
@@ -1611,6 +1628,7 @@ changequote([,])dnl			# with ELF format 
 		;;
 changequote(,)dnl
 	i[34567]86-*-gnu*)
+		tmake_file="${tmake_file} i386/t-crtstuff"
 		float_format=i386
 changequote([,])dnl
 		;;
@@ -3754,23 +3772,6 @@ changequote([,])dnl
 	esac
 
 	case $machine in
-	*-*-linux*)
-	        ;; # Existing GNU/Linux systems do not use the GNU setup.
-	*-*-gnu*)
-		# On the GNU system, the setup is just about the same on
-		# each different CPU.  The specific machines that GNU
-		# supports are matched above and just set $cpu_type.
-		xm_file="xm-gnu.h ${xm_file}"
-		tm_file=${cpu_type}/gnu.h
-		extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
-		# GNU always uses ELF.
-		elf=yes
-		# GNU tools are the only tools.
-		gnu_ld=yes
-		gas=yes
-		xmake_file=x-linux	# These details are the same as Linux.
-		tmake_file=t-gnu	# These are not.
-		;;
 	*-*-sysv4*)
 		xmake_try_sysv=x-sysv
 		install_headers_dir=install-headers-cpio
Index: config/t-gnu
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/t-gnu,v
retrieving revision 1.3
diff -u -p -r1.3 t-gnu
--- config/t-gnu	1999/03/17 22:18:49	1.3
+++ config/t-gnu	2000/11/05 13:03:53
@@ -1,16 +1,2 @@
 # In GNU, "/usr" is a four-letter word.
 SYSTEM_HEADER_DIR = /include
-
-LIBGCC1 = libgcc1.null
-CROSS_LIBGCC1 = libgcc1.null
-
-# The pushl in CTOR initialization interferes with frame pointer elimination.
-
-# We need to use -fPIC when we are using gcc to compile the routines in
-# crtstuff.c.  This is only really needed when we are going to use gcc/g++
-# to produce a shared library, but since we don't know ahead of time when
-# we will be doing that, we just always use -fPIC when compiling the
-# routines in crtstuff.c.
-
-CRTSTUFF_T_CFLAGS = -fPIC -fno-omit-frame-pointer
-TARGET_LIBGCC2_CFLAGS = -fPIC




More information about the Gcc-patches mailing list