[Bug ld/13244] GNU LD incorrectly complain about undefined hidden symbols with LTO

2011-10-06 Thread hubicka at ucw dot cz
http://sourceware.org/bugzilla/show_bug.cgi?id=13244

--- Comment #2 from hubicka at ucw dot cz 2011-10-06 18:45:42 UTC ---
jh@evans:/abuild/jh/trunk-3/build-inst7/gcc> cat t.c
extern __attribute__ ((visibility("hidden"))) int fooblah;

static
do_nothing (int param)
{ 
  if (param)
   fooblah = 1;
}

main()
{ 
  do_nothing (0);
}
jh@evans:/abuild/jh/trunk-3/build-inst7/gcc> ./xgcc -B ./ -O2 t.c 
-fno-early-inlining -flto -fuse-linker-plugin
jh@evans:/abuild/jh/trunk-3/build-inst7/gcc> ./xgcc -B ./ -O2 t.c 
-fno-early-inlining -flto -fuse-linker-plugin --shared
/abuild/jh/trunk-install/x86_64-unknown-linux-gnu/bin/ld: a.out: hidden symbol
`fooblah' isn't defined
/abuild/jh/trunk-install/x86_64-unknown-linux-gnu/bin/ld: final link failed:
Bad value
collect2: error: ld returned 1 exit status

With gold I get:
jh@evans:/abuild/jh/trunk-3/build-inst7/gcc> ./xgcc -B ./ -O2 t.c 
-fno-early-inlining -flto -fuse-linker-plugin --shared
jh@evans:/abuild/jh/trunk-3/build-inst7/gcc> 

because fooblah gets optimized out.

Honza

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- 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/13229] V2 of getsymbol linker plugin interface is not supported by GNU LD

2011-10-06 Thread hubicka at gcc dot gnu.org
http://sourceware.org/bugzilla/show_bug.cgi?id=13229

--- Comment #14 from Jan Hubicka  2011-10-06 
19:09:55 UTC ---
Hmm, reproducing the situation is harder with the COMDAT hack in your compiler.
Here is testcase that reproduces w/o GCC patch.

With BFD and patch for V2 API:

jh@evans:/abuild/jh/trunk-3/build-inst7/gcc> cat t.C
int call_something (int);
inline void optimize_me_out (void)  
{ 
  call_something(0);
}
__attribute__ ((visibility("hidden")))
int optimize_me_out2 (int param)
{ 
  if ((void *)optimize_me_out != (void *)call_something)
return call_something(0);   
}
void test2 (void)
{ 
  optimize_me_out();
}
jh@evans:/abuild/jh/trunk-3/build-inst7/gcc> /abuild/jh/trunk-install/bin/g++
-O2 t.C  --shared -fPIC -o t.so -flto -fuse-linker-plugin -fno-early-inlining
jh@evans:/abuild/jh/trunk-3/build-inst7/gcc> nm -D t.so |grep optimize
 W _Z15optimize_me_outv

With gold and V2 API:

jh@evans:/abuild/jh/trunk-3/build-inst7/gcc> /abuild/jh/trunk-install/bin/g++
-O2 t.C  --shared -fPIC -o t.so -flto -fuse-linker-plugin -fno-early-inlining
jh@evans:/abuild/jh/trunk-3/build-inst7/gcc> nm -D t.so |grep optimize
jh@evans:/abuild/jh/trunk-3/build-inst7/gcc>

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- 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 gold/13249] gold creates incorrect RELATIVE dynamic relocation for local IFUNC GOT entries

2011-10-06 Thread ccoutant at google dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=13249

Cary Coutant  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|ian at airs dot com |ccoutant at google dot com

--- Comment #1 from Cary Coutant  2011-10-06 
21:39:38 UTC ---
Patch posted for review:

http://sourceware.org/ml/binutils/2011-10/msg00031.html

PR gold/13249
* gold/output.cc (Output_reloc::Output_reloc): Add use_plt_offset flag.
(Output_reloc::symbol_value): Return PLT offset if flag is set.
* gold/output.h (class Output_reloc): Add use_plt_offset flag.
(Output_reloc::type_): Adjust size of bit field.
(Output_reloc::use_plt_offset_): New bit field.
(class Output_data_reloc): Adjust all calls to Output_reloc_type.
(Output_data_reloc::add_local_relative): (RELA only) Add use_plt_offset
flag.  Adjust all callers.
* gold/x86_64.cc (Target_x86_64::Scan::local): Check for IFUNC when
creating RELATIVE relocations.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- 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 gold/13163] internal error in set_segment_offsets, at ../../../binutils/gold/layout.cc:3050

2011-10-06 Thread roland at gnu dot org
http://sourceware.org/bugzilla/show_bug.cgi?id=13163

--- Comment #2 from Roland McGrath  2011-10-06 23:16:50 
UTC ---
ping?

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- 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/13244] GNU LD incorrectly complain about undefined hidden symbols with LTO

2011-10-06 Thread hjl.tools at gmail dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=13244

--- Comment #3 from H.J. Lu  2011-10-06 23:29:18 
UTC ---
This works for me:

---
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 7120aad..0d216c2 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -8691,7 +8691,7 @@ elf_link_output_extsym (struct bfd_hash_entry *bh, void
*data)
 || h->root.type == bfd_link_hash_undefweak)
&& h->root.u.undef.abfd != NULL
&& (h->root.u.undef.abfd->flags & BFD_PLUGIN) != 0)
-strip = TRUE;
+return TRUE;
   else
 strip = FALSE;

---

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- 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/13229] V2 of getsymbol linker plugin interface is not supported by GNU LD

2011-10-06 Thread hjl.tools at gmail dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=13229

--- Comment #15 from H.J. Lu  2011-10-07 00:02:05 
UTC ---
elf_link_output_extsym shouldn't output any plugin symbols.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- 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