diff --git a/bfd/ChangeLog b/bfd/ChangeLog index cd592f5ed9..25f5074dfe 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 4f615ddebc..29b83ff4bd 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) {