summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2019-11-19 21:19:24 +1030
committerAlan Modra <amodra@gmail.com>2019-11-19 21:32:42 +1030
commitf2032b672ac5f0c570f3a6d263ce6b764e7dca93 (patch)
tree5b0de2d9768e92ee1b934188380efe06a4ed45a5
parent6765ee1825d92d25d9b3f6260de3f8a2a27e4998 (diff)
downloadbinutils-gdb-f2032b672ac5f0c570f3a6d263ce6b764e7dca93.tar.gz
PR24499, ignore --add-gnu-debuglink for archives
objcopy --add-gnu-debuglink=foo.a.dbg foo.a just doesn't make any sense. Who puts executables in archives? PR 24499 * objcopy.c (copy_file): Ignore --add-gnu-debuglink for archives.
-rw-r--r--binutils/ChangeLog5
-rw-r--r--binutils/objcopy.c8
2 files changed, 13 insertions, 0 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 19f1c4051a0..eed7d335e11 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,5 +1,10 @@
2019-11-19 Alan Modra <amodra@gmail.com>
+ PR 24499
+ * objcopy.c (copy_file): Ignore --add-gnu-debuglink for archives.
+
+2019-11-19 Alan Modra <amodra@gmail.com>
+
PR 24968
* objcopy.c (copy_object): For ELF output and non-ELF input without
arch, take arch from output file if not given by -B. Don't
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index 99cc7beca8f..f682fbeef47 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -3752,6 +3752,14 @@ copy_file (const char *input_filename, const char *output_filename,
status = 1;
return;
}
+
+ if (gnu_debuglink_filename != NULL)
+ {
+ non_fatal (_("--add-gnu-debuglink ignored for archive %s"),
+ bfd_get_filename (ibfd));
+ gnu_debuglink_filename = NULL;
+ }
+
/* This is a no-op on non-Coff targets. */
set_long_section_mode (obfd, ibfd, long_section_names);