[Bug ld/16821] x86_64 PE/COFF: ld truncates addresses of symbols from linker scripts to 32 bit

2014-04-28 Thread cvs-commit at gcc dot gnu.org
https://sourceware.org/bugzilla/show_bug.cgi?id=16821

--- Comment #12 from cvs-commit at gcc dot gnu.org  ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".

The branch, master has been updated
   via  40af4a3636504a0e7e0223b34ed1e7b15c4fa5da (commit)
  from  e3e163dbb0c50aa94af5416aca86d9ef9c225205 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=40af4a3636504a0e7e0223b34ed1e7b15c4fa5da

commit 40af4a3636504a0e7e0223b34ed1e7b15c4fa5da
Author: Nick Clifton 
Date:   Mon Apr 28 09:34:02 2014 +0100

This patch reworks the fix to avoid a compile time warning so that it will
work
with later versions of gcc.

PR ld/16821
* peXXigen.c (_bfd_XXi_swap_sym_out): Rework fix to avoid compile
time warning.

---

Summary of changes:
 bfd/ChangeLog  |6 ++
 bfd/peXXigen.c |   15 ++-
 2 files changed, 12 insertions(+), 9 deletions(-)

-- 
You are receiving this mail because:
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug gas/16858] weak external reference has wrong value

2014-04-28 Thread cvs-commit at gcc dot gnu.org
https://sourceware.org/bugzilla/show_bug.cgi?id=16858

--- Comment #8 from cvs-commit at gcc dot gnu.org  ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".

The branch, master has been updated
   via  f01c1a090e6629be280efb3c596d818f1f74ae2a (commit)
  from  2b577b92f0a6dc2ab894b604415cfe272f273e11 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f01c1a090e6629be280efb3c596d818f1f74ae2a

commit f01c1a090e6629be280efb3c596d818f1f74ae2a
Author: Nick Clifton 
Date:   Mon Apr 28 14:32:59 2014 +0100

This fixes a bootstrapping problem with gcc 4.9 in an x86 PE environment.
The problem was that references to weak function symbols were being
incorrectly biased by definition's offset.

PR gas/16858
* config/tc-i386.c (md_apply_fix): Do not adjust value of
pc-relative fixes against weak symbols.

---

Summary of changes:
 gas/ChangeLog|6 ++
 gas/config/tc-i386.c |5 -
 2 files changed, 10 insertions(+), 1 deletions(-)

-- 
You are receiving this mail because:
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug gas/16858] weak external reference has wrong value

2014-04-28 Thread nickc at redhat dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=16858

Nick Clifton  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #9 from Nick Clifton  ---
Hi Guys,

  There was a problem with my proposed patch - it affected non pc-relative
references to weak symbols as well as pc-relative references.  (As was exposed
by a linker testsuite failure).  So I have adjusted the patch and checked it in
- this time with no testsuite regressions.

Cheers
  Nick

gas/ChangeLog
2014-04-28  Nick Clifton  

PR gas/16858
* config/tc-i386.c (md_apply_fix): Do not adjust value of
pc-relative fixes against weak symbols.

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index cb62cf5..707ce59 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -9146,7 +9146,10 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg
ATTRIBUTE_UNUSED)
 #endif
 }
 #if defined (OBJ_COFF) && defined (TE_PE)
-  if (fixP->fx_addsy != NULL && S_IS_WEAK (fixP->fx_addsy))
+  if (fixP->fx_addsy != NULL
+  && S_IS_WEAK (fixP->fx_addsy)
+  /* PR 16858: Do not modify weak function references.  */
+  && ! fixP->fx_pcrel)
 {
   value -= S_GET_VALUE (fixP->fx_addsy);
 }

-- 
You are receiving this mail because:
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug ld/13557] Undef. ref. err. when linking with slim LTO obj. in static lib. (mingw32 target)

2014-04-28 Thread lrn1986 at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=13557

--- Comment #5 from LRN  ---
So far my guess is that the difference is in coff_link_check_ar_symbols():

When a "normal" static library (i've made a version of libfoo.a without -flto)
is being loaded, coff_link_check_ar_symbols() lists all its symbols, finds all
global or common symbols, gets their names, and resolves them, if undefined.
"Normal" libfoo has a global symbol esym == "_foo" (with name "_foo"), which
passes all checks, and eventually is fed to add_archive_element().

LTO libfoo.a does not have that. It has a number of local 'section' symbols
(".text", ".bss" and such), a number of local symbols with esym[0] == 0 and two
common symbols with esym[0] == 0 and names "___gnu_lto_v1" and
"___gnu_lto_slim".
None of them is the right thing, as far as coff_link_check_ar_symbols() is
concerned.

My guess is that a plugin should hook up at some point (i have not been able
the identify the place where this "some point" is in the code) and handle the
symbols, but it doesn't, for some reason.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

___
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils