[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