aboutsummaryrefslogtreecommitdiff
path: root/binutils/ChangeLog
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2018-10-11 11:38:10 +0100
committerNick Clifton <nickc@redhat.com>2018-10-11 11:38:10 +0100
commitde564eb5cc8c67fc38f9910937935eef5ebc17d8 (patch)
tree8586b85602d6752c61d991f8fe5d759760e992d6 /binutils/ChangeLog
parentfbe61a3661b083a666e6550b3b0c2de364e6d4a6 (diff)
downloadgdb-de564eb5cc8c67fc38f9910937935eef5ebc17d8.zip
gdb-de564eb5cc8c67fc38f9910937935eef5ebc17d8.tar.gz
gdb-de564eb5cc8c67fc38f9910937935eef5ebc17d8.tar.bz2
Prevent the --keep-global-symbol and --globalize-symbol options from being used together.
This is the result of an email thread starting here: https://sourceware.org/ml/binutils/2018-09/msg00031.html The main point of the thread is this observation: * Supposing we had an object file with two globals, SomeGlobal and SomeOtherGlobal, if one were to do "--globalize-symbol SomeGlobal --keep-global-symbol SomeOtherGlobal", you might expect that both SomeGlobal and SomeOtherGlobal are global in the output file... but it isn't. Because --keep-global-symbol is set and doesn't include SomeGlobal, SomeGlobal will be demoted to a local symbol. And because the check to see if we should apply the --globalize-symbol flag checks "flags" (the original flag set), and not "sym->flags", it decides not to do anything, so SomeGlobal remains a local symbol. Although this is a weird edge case, should this be changed so that --keep-global-symbol implicitly keeps anything also specified via --globalize-symbol? (The code seems technically correct with respect to the documentation, but IMO the behavior is counter-intuitive). binutils* objcopy.c (copy_main): Issue a fata error if the --keep-global-symbol(s) and the --globalize-symbol(s) options are used together. * doc/binutils.texi: Document that the two options are incompatible. * testsuite/binutils-all/copy-5.d: New test. * testsuite/binutils-all/objcopy.exp: Run the new test.
Diffstat (limited to 'binutils/ChangeLog')
-rw-r--r--binutils/ChangeLog11
1 files changed, 11 insertions, 0 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index fd56834..8b84df5 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,14 @@
+2018-10-11 Jordan Rupprecht <rupprecht@google.com>
+ Nick Clifton <nickc@redhat.com>
+
+ * objcopy.c (copy_main): Issue a fata error if the
+ --keep-global-symbol(s) and the --globalize-symbol(s) options are
+ used together.
+ * doc/binutils.texi: Document that the two options are
+ incompatible.
+ * testsuite/binutils-all/copy-5.d: New test.
+ * testsuite/binutils-all/objcopy.exp: Run the new test.
+
2018-10-10 Helge Deller <deller@gmx.de>
Alan Modra <amodra@gmail.com>