aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--binutils/ChangeLog5
-rw-r--r--binutils/objcopy.c7
-rw-r--r--binutils/testsuite/ChangeLog5
-rw-r--r--binutils/testsuite/binutils-all/note-1.d12
-rw-r--r--binutils/testsuite/binutils-all/objcopy.exp1
5 files changed, 29 insertions, 1 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index fab15bb..719192b 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,8 @@
+2010-02-01 Nathan Sidwell <nathan@codesourcery.com>
+
+ * objcopy.c (copy_object): Set SEC_LINKER_CREATED when adding
+ sections.
+
2010-01-28 Nick Clifton <nickc@redhat.com>
PR 11225
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index 5df1449..a9b0d37 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 38cc467..e9c6bc0 100644
--- a/binutils/testsuite/ChangeLog
+++ b/binutils/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2010-02-01 Nathan Sidwell <nathan@codesourcery.com>
+
+ * binutils-all/note-1.d: New.
+ * binutils-all/objcopy.exp: Add it.
+
2010-01-30 Dave Korn <dave.korn.cygwin@gmail.com>
* 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 0000000..1a42949
--- /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 f7f6cde..f734e14 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"