From: Nathan Sidwell Date: Mon, 1 Feb 2010 09:59:46 +0000 (+0000) Subject: * objcopy.c (copy_object): Set SEC_LINKER_CREATED when adding X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=0930eddd65bd8f1e41f8eaec99f9d9bef22553cd;p=deliverable%2Fbinutils-gdb.git * objcopy.c (copy_object): Set SEC_LINKER_CREATED when adding sections. testsuite/ * binutils-all/note-1.d: New. * binutils-all/objcopy.exp: Add it. --- diff --git a/binutils/ChangeLog b/binutils/ChangeLog index fab15bbffb..719192b5ff 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ +2010-02-01 Nathan Sidwell + + * objcopy.c (copy_object): Set SEC_LINKER_CREATED when adding + sections. + 2010-01-28 Nick Clifton PR 11225 diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 5df1449dbf..a9b0d3717d 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -1608,7 +1608,12 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch) } else { - padd->section = bfd_make_section_with_flags (obfd, padd->name, flags); + /* We use LINKER_CREATED here so that the backend hooks + will create any special section type information, + instead of presuming we know what we're doing merely + because we set the flags. */ + padd->section = bfd_make_section_with_flags + (obfd, padd->name, flags | SEC_LINKER_CREATED); if (padd->section == NULL) { bfd_nonfatal_message (NULL, obfd, NULL, diff --git a/binutils/testsuite/ChangeLog b/binutils/testsuite/ChangeLog index 38cc467006..e9c6bc0cd1 100644 --- a/binutils/testsuite/ChangeLog +++ b/binutils/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-02-01 Nathan Sidwell + + * binutils-all/note-1.d: New. + * binutils-all/objcopy.exp: Add it. + 2010-01-30 Dave Korn * binutils-all/windres/html.rc: Don't xfail x86_64-*-mingw*. diff --git a/binutils/testsuite/binutils-all/note-1.d b/binutils/testsuite/binutils-all/note-1.d new file mode 100644 index 0000000000..1a4294983a --- /dev/null +++ b/binutils/testsuite/binutils-all/note-1.d @@ -0,0 +1,12 @@ +#PROG: objcopy +#readelf: -S --wide +#objcopy: --add-section .note=$srcdir/note-1.d +#name: add notes section +#source: copytest.s + +There are .* + +Section Headers: +#... + \[[ 0-9]*\] .note NOTE 0*0000000 0*...... 0*000... .* +#... diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp index f7f6cde338..f734e14836 100644 --- a/binutils/testsuite/binutils-all/objcopy.exp +++ b/binutils/testsuite/binutils-all/objcopy.exp @@ -835,6 +835,7 @@ if [is_elf_format] { objcopy_test_readelf "ELF group" group-3.s objcopy_test_readelf "ELF group" group-4.s run_dump_test "copy-1" + run_dump_test "note-1" } run_dump_test "copy-2"