From 8f718ed3bd01421aa4b28fb0d9c9299825437258 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 6 Nov 1992 00:38:59 +0000 Subject: [PATCH] Thu Nov 5 15:34:19 1992 Ian Lance Taylor (ian@cygnus.com) * section.c: New section bit SEC_SHARED_LIBRARY. coffcode.h (styp_to_sec_flags): if STYP_NOLOAD && (STYP_TEXT || STYP_DATA), set SEC_SHARED_LIBRARY. This seems to be correct for i386-sysv. --- bfd/ChangeLog | 7 +++++++ bfd/coffcode.h | 16 ++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index cd592f5ed9f..25f5074dfe3 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +Thu Nov 5 15:34:19 1992 Ian Lance Taylor (ian@cygnus.com) + + * section.c: New section bit SEC_SHARED_LIBRARY. + coffcode.h (styp_to_sec_flags): if STYP_NOLOAD && (STYP_TEXT || + STYP_DATA), set SEC_SHARED_LIBRARY. This seems to be correct for + i386-sysv. + Thu Nov 5 04:43:09 1992 John Gilmore (gnu@cygnus.com) * target.c (struct bfd_target): Eliminate the SDEF and SDEF_FMT diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 4f615ddebc9..29b83ff4bd8 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -399,9 +399,21 @@ DEFUN(styp_to_sec_flags, (styp_flags), } #endif /* STYP_NOLOAD */ - if ((styp_flags & STYP_TEXT) || (styp_flags & STYP_DATA)) + /* For 386 COFF, at least, an unloadable text or data section is + actually a shared library section. */ + if (styp_flags & STYP_TEXT) { - sec_flags |= SEC_LOAD | SEC_ALLOC; + if (sec_flags & SEC_NEVER_LOAD) + sec_flags |= SEC_CODE | SEC_SHARED_LIBRARY; + else + sec_flags |= SEC_CODE | SEC_LOAD | SEC_ALLOC; + } + else if (styp_flags & STYP_DATA) + { + if (sec_flags & SEC_NEVER_LOAD) + sec_flags |= SEC_DATA | SEC_SHARED_LIBRARY; + else + sec_flags |= SEC_DATA | SEC_LOAD | SEC_ALLOC; } else if (styp_flags & STYP_BSS) { -- 2.30.2