This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
yank COFF, sjlj, dwarf-1 from OpenServer.
- To: gcc-patches at gcc dot gnu dot org
- Subject: yank COFF, sjlj, dwarf-1 from OpenServer.
- From: Robert Lipe <robertl at sco dot com>
- Date: Thu, 28 Dec 2000 21:49:48 -0600
- Cc: jpr at jpr dot com, jkj at sco dot com, bkorb at sco dot com
For years, I've sought to keep the water bailed out of GCC on
OpenServer. It's had the innocent misfortunate of being the
intersection of sjlj-exceptions, dwarf-1, coff, and excessive
multilib-ification. All of these happen to be of strategic value to
nobody.
With some slight prodding from Mark, I'm going to yank COFF support
and make the DWARF stuff emit dwarf II instead of dwarf I by default.
The reality is that code just plain doesn't work and it's not
likely to get fixed. This now makes this a relatively boring
ELF-only/dwarf-II target. For the first time in almost a year, C
successfully bootstrapped. I have now, for the first time ever, seen
libstdc++v3 compile with only minor (and very believable) changes
required.
I'll update doc over the next few days.
I do have the sneaking suspicion that this code is on the same path as
a monster in a bad movie and isn't _really_ dead. As such, I'm not
running around ceremoniously killing the billion if (TARGET_ELF) tests
and am leaving the COFF code basically in, but disabled and largely
compiled away. If my GCC elders object, I'll do the ceremonious killing
thing.
Remove COFF support from i?86-pc-sco3.2v5.
* sco5.h (PREFERRED_DEBUGGING_TYPE): Change to Dwarf II.
(TARGET_ELF): Now always true.
(SUBTARGET_SWTICHES: )Remove -mcoff.
* t-sco5 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
MULTILIB_EXCEPTION): Nuke coff.
(CRTSTUFF_T_CFLAGS_S): Deleted.
OK to apply?
RJL
(In best Richard Nixon voice)
"You won't have OpenServer to kick around any more."
Index: sco5.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/i386/sco5.h,v
retrieving revision 1.40
diff -u -p -r1.40 sco5.h
--- sco5.h 2000/11/02 23:29:10 1.40
+++ sco5.h 2000/12/29 03:31:44
@@ -556,7 +556,7 @@ do { \
#define SDB_DEBUGGING_INFO 1
#define DBX_DEBUGGING_INFO 1
#define PREFERRED_DEBUGGING_TYPE \
- ((TARGET_ELF) ? DWARF_DEBUG: SDB_DEBUG)
+ ((TARGET_ELF) ? DWARF2_DEBUG: SDB_DEBUG)
#undef EXTRA_SECTIONS
#define EXTRA_SECTIONS in_const, in_init, in_fini, in_ctors, in_dtors
@@ -891,11 +891,10 @@ dtors_section () \
#define MASK_COFF 010000000000 /* Mask for elf generation */
#define TARGET_COFF (target_flags & MASK_COFF)
-#define TARGET_ELF (!(target_flags & MASK_COFF))
+#define TARGET_ELF (1) /* (!(target_flags & MASK_COFF)) */
#undef SUBTARGET_SWITCHES
#define SUBTARGET_SWITCHES \
- { "coff", MASK_COFF, N_("Generate COFF output") }, \
{ "elf", -MASK_COFF, N_("Generate ELF output") },
#define NO_DOLLAR_IN_LABEL
Index: t-sco5
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/i386/t-sco5,v
retrieving revision 1.4
diff -u -p -r1.4 t-sco5
--- t-sco5 1999/02/27 12:48:24 1.4
+++ t-sco5 2000/12/29 03:31:45
@@ -1,14 +1,14 @@
# The pushl in CTOR initialization interferes with frame pointer elimination.
CRTSTUFF_T_CFLAGS = -fPIC -fno-omit-frame-pointer
-CRTSTUFF_T_CFLAGS_S = -mcoff -fno-omit-frame-pointer
#
# I am still a little unsure of the multilib architecture. The following
# 4 lines are based on advice from meissner@cygnus.com.
#
-MULTILIB_OPTIONS = mcoff/fPIC
-MULTILIB_DIRNAMES = coff pic
-MULTILIB_EXCEPTIONS = *mcoff*/*fPIC*
+MULTILIB_OPTIONS = fPIC
+MULTILIB_DIRNAMES = pic
+MULTILIB_EXCEPTIONS = *fPIC*
MULTILIB_MATCHES = fPIC=fpic
MULTILIB_EXTRA_OPTS =