[Bug ld/20852] glibc/MIPS strfry call strlen by bal not jalr

2016-11-26 Thread ambrosehua at 126 dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=20852

--- Comment #5 from ambrosehua at 126 dot com ---
(In reply to ma.jiang from comment #4)
> Hi all,
>   I have checked the source code of strfry.c ,and the build process. I
> believe that the generated binary is OK. In the strfry.s (add -save-temps
> ,and recompile strfry.c to get it), we get the following chunk.
> .loc 1 38 0
> ld  $25,%got_disp(__GI_strlen)($28)
> .reloc  1f,R_MIPS_JALR,__GI_strlen
> 1:  jalr$25
>   It is clear that strfry.c call the hidden symbol __GI_strlen instead of
> normal strlen. So the optimized binary is OK. GLIBC has made some small
> tricks in include/string.h which change many global symbols to internal
> hidden ones.
>   At last, I think the superfluous load should really be eliminated. I know
> this might not be that easy as it looks.But with a little help of
> compiler(build a connection between the ld insn and corresponding jalr), I
> believe we could make it.

If this is the trick behind, I think this is not a bug of binutils/ld, since
%got_disp(__GI_strlen) is for a hidden symbol, it can not be interposed.

But I wonder if glibc defining __GI_strlen is legal for making a strlen
unavailalble
to be interposed in strfry. Is libc.so a special case for symbol interposition?

-- 
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 binutils/20873] New: cp-demangle misses some names

2016-11-26 Thread jengelh at inai dot de
https://sourceware.org/bugzilla/show_bug.cgi?id=20873

Bug ID: 20873
   Summary: cp-demangle misses some names
   Product: binutils
   Version: 2.27
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: binutils
  Assignee: unassigned at sourceware dot org
  Reporter: jengelh at inai dot de
  Target Milestone: ---

$ g++-6 -std=gnu++14 -c x.cpp
int main(void)
{
struct NAMED {} f;
struct {} g;
struct {} h;
[](auto &&){}(f);
[](auto &&, auto &&){}(g, h);
}


$ nm -C x.o
 t _ZZ4mainENKUlOT_E_clIRZ4mainE5NAMEDEEDaS0_
0010 t _ZZ4mainENKUlOT_OT0_E0_clIRZ4mainEUt_RZ4mainEUt0_EEDaS0_S2_

-- 
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/20852] glibc/MIPS strfry call strlen by bal not jalr

2016-11-26 Thread fweimer at redhat dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=20852

--- Comment #6 from Florian Weimer  ---
(In reply to ambrosehua from comment #5)

> But I wonder if glibc defining __GI_strlen is legal for making a strlen
> unavailalble to be interposed in strfry. Is libc.so a special case for symbol
> interposition?

We only make malloc-related symbols available for interposition.  For things
like strlen which are in all standards, it would not make a functional
difference because we could simply say you are not allowed to redefine them. 
But for “open”, which is in POSIX but not ISO C, an application must be able to
define a function called “open” and still call “fopen”, with the behavior
required by ISO C.  If the application definition of “open” was interposed into
glibc, then this would not work.

-- 
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/20866] "-z combreloc" doesn't work on alpha

2016-11-26 Thread amodra at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=20866

Alan Modra  changed:

   What|Removed |Added

 CC||amodra at gmail dot com

--- Comment #1 from Alan Modra  ---
I can't reproduce any problem using current binutils-2.27 sources and a gcc-7
cross compiler.  ie. all the combinations of compiler and linker options I've
tried produce exactly the same binary regardless of whether I use
  srelaplt = bfd_get_linker_section (dynobj, ".rela.plt");
or
  srelaplt = bfd_get_linker_section (output_bfd, ".rela.plt");
in elf64_alpha_finish_dynamic_sections.

Please give details on how to reproduce a bad binary.

-- 
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/20866] "-z combreloc" doesn't work on alpha

2016-11-26 Thread alpha at culzean dot org
https://sourceware.org/bugzilla/show_bug.cgi?id=20866

--- Comment #2 from Hayashi Naoyuki  ---
Created attachment 9671
  --> https://sourceware.org/bugzilla/attachment.cgi?id=9671&action=edit
reproduce binary

Thank you for your investigation.

I attached to reproduce binaries.

-- 
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/20866] "-z combreloc" doesn't work on alpha

2016-11-26 Thread alpha at culzean dot org
https://sourceware.org/bugzilla/show_bug.cgi?id=20866

--- Comment #3 from Hayashi Naoyuki  ---
Created attachment 9672
  --> https://sourceware.org/bugzilla/attachment.cgi?id=9672&action=edit
binutils.2.27.txt

-- 
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/20866] "-z combreloc" doesn't work on alpha

2016-11-26 Thread alpha at culzean dot org
https://sourceware.org/bugzilla/show_bug.cgi?id=20866

--- Comment #4 from Hayashi Naoyuki  ---
Created attachment 9673
  --> https://sourceware.org/bugzilla/attachment.cgi?id=9673&action=edit
binutils2.26.txt

-- 
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