aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1999-09-11 23:46:09 +0000
committerIan Lance Taylor <ian@airs.com>1999-09-11 23:46:09 +0000
commit0717ebb78071ba63f55a5bbb40f27f74200a9a7f (patch)
tree0b4228d6a61cbf6fa09741cb3b75092c00765241
parent650f5dd8d8ac6792db26b94ff238754be33e2276 (diff)
downloadgdb-0717ebb78071ba63f55a5bbb40f27f74200a9a7f.zip
gdb-0717ebb78071ba63f55a5bbb40f27f74200a9a7f.tar.gz
gdb-0717ebb78071ba63f55a5bbb40f27f74200a9a7f.tar.bz2
1999-09-11 Donn Terry <donn@interix.com>
* config.bfd (i[3456]86-*-interix*): Set targ_cflags to -DSTRICT_PE_FORMAT. * coffcode.h (styp_to_sec_flags): Check STRICT_PE_FORMAT rather than __INTERIX. (coff_classify_symbol): Re-revert 1999-08-08 patch if STRICT_PE_FORMAT.
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/coffcode.h8
-rw-r--r--bfd/config.bfd2
3 files changed, 12 insertions, 5 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 94d87cc..6a295e1 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -7,6 +7,13 @@
1999-09-11 Donn Terry <donn@interix.com>
+ * config.bfd (i[3456]86-*-interix*): Set targ_cflags to
+ -DSTRICT_PE_FORMAT.
+ * coffcode.h (styp_to_sec_flags): Check STRICT_PE_FORMAT rather
+ than __INTERIX.
+ (coff_classify_symbol): Re-revert 1999-08-08 patch if
+ STRICT_PE_FORMAT.
+
* libpei.h: New file, broken out of peicode.h.
* peigen.c: New file, broken out of peicode.h.
* peicode.h: A bunch of code moved out to libpei.h and peigen.c.
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index dfedf23..f48886e 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -827,8 +827,7 @@ styp_to_sec_flags (abfd, hdr, name, section)
switch (aux.x_scn.x_comdat)
{
case IMAGE_COMDAT_SELECT_NODUPLICATES:
-/* FIXME: This is bogus. It breaks cross-compilers. */
-#ifdef __INTERIX
+#ifdef STRICT_PE_FORMAT
sec_flags |= SEC_LINK_DUPLICATES_ONE_ONLY;
#else
sec_flags &= ~SEC_LINK_ONCE;
@@ -849,8 +848,7 @@ styp_to_sec_flags (abfd, hdr, name, section)
break;
case IMAGE_COMDAT_SELECT_ASSOCIATIVE:
-/* FIXME: This is bogus. It breaks cross-compilers. */
-#ifdef __INTERIX
+#ifdef STRICT_PE_FORMAT
/* FIXME: This is not currently implemented. */
sec_flags |= SEC_LINK_DUPLICATES_DISCARD;
#else
@@ -4265,7 +4263,7 @@ coff_classify_symbol (abfd, syment)
return COFF_SYMBOL_LOCAL;
}
-#if 0
+#ifdef STRICT_PE_FORMAT
/* This is correct for Microsoft generated objects, but it
breaks gas generated objects. */
diff --git a/bfd/config.bfd b/bfd/config.bfd
index afa5de7..ac52a1f 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -311,6 +311,8 @@ case "${targ}" in
i[3456]86-*-interix*)
targ_defvec=i386pei_vec
targ_selvecs="i386pe_vec"
+ # FIXME: This should eventually be checked at runtime.
+ targ_cflags=-DSTRICT_PE_FORMAT
;;
i[3456]86-*-mingw32* | i[3456]86-*-cygwin* | i[3456]86-*-winnt | i[3456]86-*-pe)
targ_defvec=i386pe_vec