diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf.c | 19 | ||||
-rw-r--r-- | ld/ChangeLog | 5 | ||||
-rw-r--r-- | ld/emulparams/elf_x86_64.sh | 6 |
4 files changed, 29 insertions, 6 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 98a3bc4..8292b28 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2006-07-24 Michael Wetherell <mike.wetherell@ntlworld.com> + + * elf.c (bfd_section_from_shdr): Reject unrecognised OS-specific + sections only if the SHF_OS_NONCONFORMING flag is present. + 2006-07-24 Nick Clifton <nickc@redhat.com> PR ld/2729 @@ -2201,11 +2201,20 @@ bfd_section_from_shdr (bfd *abfd, unsigned int shindex) "`%s' [0x%8x]"), abfd, name, hdr->sh_type); else if (hdr->sh_type >= SHT_LOOS && hdr->sh_type <= SHT_HIOS) - /* FIXME: We should handle this section. */ - (*_bfd_error_handler) - (_("%B: don't know how to handle OS specific section " - "`%s' [0x%8x]"), - abfd, name, hdr->sh_type); + { + /* Unrecognised OS-specific sections. */ + if ((hdr->sh_flags & SHF_OS_NONCONFORMING) != 0) + /* SHF_OS_NONCONFORMING indicates that special knowledge is + required to correctly process the section and the file should + be rejected with an error message. */ + (*_bfd_error_handler) + (_("%B: don't know how to handle OS specific section " + "`%s' [0x%8x]"), + abfd, name, hdr->sh_type); + else + /* Otherwise it should be processed. */ + return _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex); + } else /* FIXME: We should handle this section. */ (*_bfd_error_handler) diff --git a/ld/ChangeLog b/ld/ChangeLog index c78c529..f227698 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2006-07-14 Michael Wetherell <mike.wetherell@ntlworld.com> + + * emulparams/elf_x86_64.sh (LIBPATH_SUFFIX, ELF_INTERPRETER_NAME): + Set for *-*-solaris2*. + 2006-07-24 Ralk Wildenhues <Ralf.Wildenhues@gmx.de> * ld.texinfo: Fix spelling mistakes. diff --git a/ld/emulparams/elf_x86_64.sh b/ld/emulparams/elf_x86_64.sh index f9ed236..3ed0203 100644 --- a/ld/emulparams/elf_x86_64.sh +++ b/ld/emulparams/elf_x86_64.sh @@ -22,7 +22,7 @@ if [ "x${host}" = "x${target}" ]; then esac fi -# Linux modify the default library search path to first include +# Linux/Solaris modify the default library search path to first include # a 64-bit specific directory. case "$target" in x86_64*-linux*) @@ -30,4 +30,8 @@ case "$target" in *64*) LIBPATH_SUFFIX=64 ;; esac ;; + *-*-solaris2*) + LIBPATH_SUFFIX=/amd64 + ELF_INTERPRETER_NAME=\"/lib/amd64/ld.so.1\" + ;; esac |