Bug 14493 - "strip" breaks .SUNW_ldynsym section on illumos
Summary: "strip" breaks .SUNW_ldynsym section on illumos
Status: RESOLVED FIXED
Alias: None
Product: binutils
Classification: Unclassified
Component: binutils (show other bugs)
Version: 2.22
: P2 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-08-18 10:18 UTC by Igor Pashev
Modified: 2024-04-23 15:38 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments
test_ldynsym-nonstripped-elfdump-s.txt (1.82 KB, text/plain)
2012-08-18 10:18 UTC, Igor Pashev
Details
test_ldynsym-stripped-elfdump-s.txt (696 bytes, text/plain)
2012-08-18 10:19 UTC, Igor Pashev
Details
test_noldynsym-nonstripped-elfdump-s.txt (663 bytes, text/plain)
2012-08-18 10:21 UTC, Igor Pashev
Details
test_noldynsym-stripped-elfdump-s.txt (663 bytes, text/plain)
2012-08-18 10:22 UTC, Igor Pashev
Details
C source (89 bytes, text/plain)
2012-08-23 14:42 UTC, Igor Pashev
Details
Compiled solaris 32-bit binary (gcc -O0 -gdwarf-2; GCC 3.4.3 (csl-sol210-3_4-20050802)) (3.42 KB, application/octet-stream)
2012-08-23 14:44 UTC, Igor Pashev
Details
Dump made by solaris utility elfdump (4.91 KB, text/plain)
2012-08-23 14:46 UTC, Igor Pashev
Details
Dump made by readelf from GNU binutils (4.28 KB, text/plain)
2012-08-23 14:47 UTC, Igor Pashev
Details
A patch (3.22 KB, patch)
2012-08-24 21:05 UTC, H.J. Lu
Details | Diff
with patch: elfdump of stripped binary (strip ldynsym) (3.62 KB, text/plain)
2012-08-25 15:47 UTC, Igor Pashev
Details
with patch: elfdump of 'strip-x'ed binary (strip -x ldynsym) (4.34 KB, text/plain)
2012-08-25 15:49 UTC, Igor Pashev
Details
large size of stripped binary (4.47 KB, application/x-bzip)
2012-11-16 13:41 UTC, Igor Pashev
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Igor Pashev 2012-08-18 10:18:55 UTC
Created attachment 6586 [details]
test_ldynsym-nonstripped-elfdump-s.txt

"strip" damages ELF section ".SUNW_ldynsym" on illumos.

As a result elfdump reports, for example, "libavl.so.1: .SUNW_ldynsym: invalid sh_link: 0"

And linker cannot link with the resulting library:
"ld: fatal: file libc.so: section [4279087549](null): has invalid sh_info: -37933168108576"


Here is a minimal example from [1]:
#include <ucontext.h>

static void
static_func(void)
{
	/* Use dladdr(3C) to print a call stack */
	printstack(1);

	/*
	 * Write to address 0, killing the process and
	 * producing a core file.
	 */
	*((char *) 0) = 1;
}


int main(int argc, char *argv[])
{
	static_func();
	return (0);
}

# cc -Wl,-znoldynsym test.c -o test_noldynsym
# cc test.c -o test_ldynsym
# elfdump -s test_ldynsym > test_ldynsym-nonstripped-elfdump-s.txt
# stript test_ldynsym
# elfdump -s test_ldynsym &>test_ldynsym-stripped-elfdump-s.txt
# elfdump -s test_noldynsym > test_noldynsym-nonstripped-elfdump-s.txt
# strip test_noldynsym
# elfdump -s test_noldynsym > test_noldynsym-stripped-elfdump-s.txt


Also, before stripping size of test_ldynsym is 10K, after - 72K(!)




[1] https://blogs.oracle.com/ali/entry/what_is_sunw_ldynsym
Comment 1 Igor Pashev 2012-08-18 10:19:57 UTC
Created attachment 6587 [details]
test_ldynsym-stripped-elfdump-s.txt
Comment 2 Igor Pashev 2012-08-18 10:21:01 UTC
Created attachment 6588 [details]
test_noldynsym-nonstripped-elfdump-s.txt
Comment 3 Igor Pashev 2012-08-18 10:22:09 UTC
Created attachment 6589 [details]
test_noldynsym-stripped-elfdump-s.txt
Comment 4 H.J. Lu 2012-08-18 18:15:53 UTC
Few binutils developers use Solaris.  Please provide
Solaris binary with .SUNW_ldynsym sections.
Comment 5 Igor Pashev 2012-08-23 14:42:07 UTC
Created attachment 6607 [details]
C source
Comment 6 Igor Pashev 2012-08-23 14:44:44 UTC
Created attachment 6608 [details]
Compiled solaris 32-bit binary (gcc -O0 -gdwarf-2; GCC 3.4.3 (csl-sol210-3_4-20050802))
Comment 7 Igor Pashev 2012-08-23 14:46:16 UTC
Created attachment 6609 [details]
Dump made by solaris utility elfdump
Comment 8 Igor Pashev 2012-08-23 14:47:39 UTC
Created attachment 6610 [details]
Dump made by readelf from GNU binutils
Comment 9 Igor Pashev 2012-08-23 14:58:24 UTC
AFAIK, ".SUNW_ldynsym" and ".dynsym" sections do overlap.

".SUNW_ldynsym" goes just before ".dynsym" and supersets it.
So Solaris utilities read contents of ".dynsym" as it is under
".SUNW_ldynsym".

libelfg0 from Debian refused to write ELFs with ".SUNW_ldynsym" without ELF_F_LAYOUT_OVERLAP flag.
Comment 10 H.J. Lu 2012-08-24 16:43:02 UTC
From

http://docs.oracle.com/cd/E19963-01/html/819-0690/chapter6-93046.html#chapter6-94076

sh_link and sh_info may be properly handled for SHT_SUNW_cap,
SHT_SUNW_capinfo, SHT_SUNW_symsort, SHT_SUNW_tlssort, SHT_SUNW_LDYNSYM,
SHT_SUNW_move and SHT_SUNW_syminfo.
Comment 11 H.J. Lu 2012-08-24 21:05:50 UTC
Created attachment 6612 [details]
A patch

Please test it.
Comment 12 Igor Pashev 2012-08-25 15:47:56 UTC
Created attachment 6613 [details]
with patch: elfdump of stripped binary (strip ldynsym)
Comment 13 Igor Pashev 2012-08-25 15:49:34 UTC
Created attachment 6614 [details]
with patch: elfdump of 'strip-x'ed binary (strip -x ldynsym)
Comment 14 Igor Pashev 2012-08-25 15:54:44 UTC
(In reply to comment #11)
> Created attachment 6612 [details]
> A patch
> 
> Please test it.

Thank you!

"strip" now seems to work properly (elfdump happy with it), but I found new issue with "strip -x":

After applying "strip -x" to unstripped binary, elfdump say ".symtab: index[33]: bad symbol entry: : invalid shndx: 38" (see attachment).

Applying "strip -x" to already stripped binary (with plain "strip") does not change it.
Comment 15 H.J. Lu 2012-08-26 16:58:00 UTC
Solaris linker generates:

  [29] .symtab           SYMTAB          00000000 000f48 000650 10     30  72  4
  [30] .strtab           STRTAB          00000000 001598 000307 00   S  0   0  1
  [31] .comment          PROGBITS        00000000 00189f 000156 00      0   0  1
  [32] .debug_abbrev     PROGBITS        00000000 0019f5 000063 00      0   0  1
  [33] .debug_info       PROGBITS        00000000 001a58 0000ce 00      0   0  1
  [34] .debug_line       PROGBITS        00000000 001b26 00003d 00      0   0  1
  [35] .debug_frame      PROGBITS        00000000 001b64 000054 00      0   0  4
  [36] .debug_pubnames   PROGBITS        00000000 001bb8 00001b 00      0   0  1
  [37] .debug_aranges    PROGBITS        00000000 001bd3 000020 00      0   0  1
  [38] .shstrtab         STRTAB          00000000 001bf3 00016a 00   S  0   0  1

GNU linker generates:

  [26] .comment          PROGBITS        00000000 000650 00002c 01  MS  0   0  1
  [27] .debug_aranges    PROGBITS        00000000 00067c 000020 00      0   0  1
  [28] .debug_info       PROGBITS        00000000 00069c 000042 00      0   0  1
  [29] .debug_abbrev     PROGBITS        00000000 0006de 000037 00      0   0  1
  [30] .debug_line       PROGBITS        00000000 000715 000032 00      0   0  1
  [31] .debug_str        PROGBITS        00000000 000747 000076 01  MS  0   0  1
  [32] .shstrtab         STRTAB          00000000 0007bd 000146 00      0   0  1
  [33] .symtab           SYMTAB          00000000 000e7c 000470 10     34  50  4
  [34] .strtab           STRTAB          00000000 0012ec 00023c 00      0   0  1

strip gets confused about section indices for .comment, .shstrtab,
.symtab and .strtab.
Comment 16 H.J. Lu 2012-08-26 18:11:38 UTC
GNU linker never puts .symtab and .strtab in symtab.
objcopy doesn't handler them properly when they appear
in symtab.
Comment 17 H.J. Lu 2012-08-26 20:44:19 UTC
(In reply to comment #14)
> (In reply to comment #11)
> > Created attachment 6612 [details]
> > A patch
> > 
> > Please test it.
> 
> Thank you!
> 
> "strip" now seems to work properly (elfdump happy with it), but I found new
> issue with "strip -x":

Please apply this patch:

http://sourceware.org/ml/binutils/2012-08/msg00462.html
Comment 18 Sourceware Commits 2012-09-04 12:35:41 UTC
CVSROOT:	/cvs/src
Module name:	src
Changes by:	hjl@sourceware.org	2012-09-04 12:35:35

Modified files:
	bfd            : ChangeLog elf.c 
	binutils       : ChangeLog readelf.c 

Log message:
	Ignore section symbols without a BFD section
	
	bfd/
	
	PR binutils/14493
	* elf.c (ignore_section_sym): Also ignore section symbols without
	a BFD section.
	
	binutils/
	
	PR binutils/14493
	* readelf.c (get_symbol_index_type): Check bad section index.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=src&r1=1.5797&r2=1.5798
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf.c.diff?cvsroot=src&r1=1.569&r2=1.570
http://sourceware.org/cgi-bin/cvsweb.cgi/src/binutils/ChangeLog.diff?cvsroot=src&r1=1.1935&r2=1.1936
http://sourceware.org/cgi-bin/cvsweb.cgi/src/binutils/readelf.c.diff?cvsroot=src&r1=1.580&r2=1.581
Comment 19 Igor Pashev 2012-11-16 13:37:44 UTC
Ok, with the patch for SUNW_ldynsym stripped library now can be linked in successfully, but now I'm confused with the size of stripped binary:

# ls -lh libfoo*.so
-rwxr-xr-x 1 root root 4,4K ноя 16 17:28 libfoo-gnu-stripped.so
-rwxr-xr-x 1 root root 6,5K ноя 16 17:26 libfoo-gnu.so
-rwxr-xr-x 1 root root  70K ноя 16 17:28 libfoo-sun-stripped.so
-rwxr-xr-x 1 root root 7,8K ноя 16 17:27 libfoo-sun.so

libfoo-gnu.so is produced by GNU linker,
libfoo-sun.so - bysolaris linker.

(See the attachment libfoo.tar.bz2)

Both are stripped with GNU strip, without any options.

I've backported your patch to binutils 2.22 [1], did I missed something?

[1] http://osdyson.org/projects/binutils/repository/entry/patches/pr14493-sol2.patch
Comment 20 Igor Pashev 2012-11-16 13:38:40 UTC
Ok, with the patch for SUNW_ldynsym stripped library now can be linked in successfully, but now I'm confused with the size of stripped binary:

# ls -lh libfoo*.so
-rwxr-xr-x 1 root root 4,4K ноя 16 17:28 libfoo-gnu-stripped.so
-rwxr-xr-x 1 root root 6,5K ноя 16 17:26 libfoo-gnu.so
-rwxr-xr-x 1 root root  70K ноя 16 17:28 libfoo-sun-stripped.so
-rwxr-xr-x 1 root root 7,8K ноя 16 17:27 libfoo-sun.so

libfoo-gnu.so is produced by GNU linker,
libfoo-sun.so - bysolaris linker.

(See the attachment libfoo.tar.bz2)

Both are stripped with GNU strip, without any options.

I've backported your patch to binutils 2.22 [1], did I miss something?

[1] http://osdyson.org/projects/binutils/repository/entry/patches/pr14493-sol2.patch
Comment 23 Igor Pashev 2012-11-16 13:41:32 UTC
Created attachment 6742 [details]
large size of stripped binary
Comment 24 Igor Pashev 2012-11-16 13:43:14 UTC
Oh, bugzilla is confused with pr14493 in URL
Comment 25 H.J. Lu 2012-11-16 23:36:28 UTC
(In reply to comment #23)
> Created attachment 6742 [details]
> large size of stripped binary

Please provide unstripped library.
Comment 26 Igor Pashev 2012-11-17 08:42:45 UTC
(In reply to comment #25)
> (In reply to comment #23)
> > Created attachment 6742 [details]
> > large size of stripped binary
> 
> Please provide unstripped library.

I did, libfoo-sun.so is unstripped, libfoo-sun-stripped.so is stripped.
Comment 27 H.J. Lu 2012-11-20 23:29:59 UTC
(In reply to comment #20)
> Ok, with the patch for SUNW_ldynsym stripped library now can be linked in
> successfully, but now I'm confused with the size of stripped binary:
> 
> # ls -lh libfoo*.so
> -rwxr-xr-x 1 root root 4,4K ноя 16 17:28 libfoo-gnu-stripped.so
> -rwxr-xr-x 1 root root 6,5K ноя 16 17:26 libfoo-gnu.so
> -rwxr-xr-x 1 root root  70K ноя 16 17:28 libfoo-sun-stripped.so
> -rwxr-xr-x 1 root root 7,8K ноя 16 17:27 libfoo-sun.so
> 
> libfoo-gnu.so is produced by GNU linker,
> libfoo-sun.so - bysolaris linker.
> 
> (See the attachment libfoo.tar.bz2)

Try

http://sourceware.org/ml/binutils/2012-11/msg00312.html

> 
> Both are stripped with GNU strip, without any options.
> 
> I've backported your patch to binutils 2.22 [1], did I miss something?
> 
> [1]
> pr14493-sol2.patch">http://osdyson.org/projects/binutils/repository/entry/patches/pr14493-sol2.patch


I don't support backport.
Comment 28 Igor Pashev 2012-11-21 09:28:28 UTC
Excellent!

# ./binutils/strip-new libfoo-sun.so -o libfoo-sun-stripped.so
e# ls -lh libfoo-sun-stripped.so libfoo-sun.so
-rwxr-xr-x 1 root root 7,1K ноя 16 19:11 libfoo-sun.so
-rwxr-xr-x 1 root root 4,9K ноя 21 09:25 libfoo-sun-stripped.so

Thank you very much for you work and patience.
Comment 29 Sourceware Commits 2012-11-21 21:31:26 UTC
CVSROOT:	/cvs/src
Module name:	src
Changes by:	hjl@sourceware.org	2012-11-21 21:31:18

Modified files:
	bfd            : ChangeLog elf.c 
	ld/testsuite   : ChangeLog 
Added files:
	ld/testsuite/ld-elf: maxpage5.d maxpage5.s maxpage5.t 

Log message:
	Set output maxpagesize when rewriting program header
	
	bfd/
	
	PR binutils/14493
	* elf.c (copy_elf_program_header): When rewriting program
	header, set the output maxpagesize to the maximum alignment
	of input PT_LOAD segments.
	
	2012-11-21  H.J. Lu  <hongjiu.lu@intel.com>
	
	PR binutils/14493
	* ld-elf/maxpage5.d: New file.
	* ld-elf/maxpage5.s: Likewise.
	* ld-elf/maxpage5.t: Likewise.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=src&r1=1.5864&r2=1.5865
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf.c.diff?cvsroot=src&r1=1.576&r2=1.577
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ChangeLog.diff?cvsroot=src&r1=1.1620&r2=1.1621
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-elf/maxpage5.d.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-elf/maxpage5.s.diff?cvsroot=src&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-elf/maxpage5.t.diff?cvsroot=src&r1=NONE&r2=1.1
Comment 30 Sourceware Commits 2013-01-21 13:49:09 UTC
CVSROOT:	/cvs/src
Module name:	src
Branch: 	binutils-2_23-branch
Changes by:	amodra@sourceware.org	2013-01-21 13:48:53

Modified files:
	bfd            : ChangeLog bfdio.c cache.c elf-bfd.h 
	                 elf-strtab.c elf.c elf32-i386.c elf32-ppc.c 
	                 elf64-ppc.c elflink.c linker.c opncls.c 
	binutils       : ChangeLog readelf.c 
	gas            : ChangeLog dwarf2dbg.c sb.c write.c 
	gas/config     : tc-ppc.c tc-ppc.h 
	gas/testsuite  : ChangeLog 
	gas/testsuite/gas/cfi: cfi-ppc-1.d cfi-ppc-1.s cfi.exp 
	gas/testsuite/gas/ppc: 476.d 476.s a2.d a2.s altivec.d altivec.s 
	                       altivec_and_spe.d astest.d astest2.d 
	                       astest2_64.d astest64.d booke.d booke.s 
	                       cell.d cell.s common.d common.s e500.d 
	                       e500.s e500mc.d e500mc.s e500mc64_nop.d 
	                       e500mc64_nop.s e5500_nop.d e5500_nop.s 
	                       e6500.d e6500.s e6500_nop.d e6500_nop.s 
	                       machine.d power4.d power4.s power4_32.d 
	                       power4_32.s power6.d power6.s power7.d 
	                       power7.s ppc.exp ppc750ps.d ppc750ps.s 
	                       regnames.d simpshft.d test1elf32.d 
	                       test1elf64.d titan.d titan.s vle-reloc.s 
	                       vle-simple-1.s vle-simple-2.s 
	                       vle-simple-3.s vle-simple-4.s 
	                       vle-simple-5.s vle-simple-6.s vle.s vsx.d 
	                       vsx.s 
	include/opcode : ChangeLog ppc.h 
	ld             : ChangeLog ldexp.c ldexp.h ldlang.c ldmain.c 
	                 lexsup.c plugin.c plugin.h 
	ld/emultempl   : elf32.em 
	ld/testsuite   : ChangeLog 
	ld/testsuite/ld-gc: pr13683.d 
	ld/testsuite/ld-plugin: plugin-2.d plugin-4.d 
	ld/testsuite/ld-powerpc: apuinfo-nul.rd apuinfo.rd plt1.d 
	                         powerpc.exp relax.d relaxr.d sdadyn.d 
	                         tls.d tls.g tls.t tls32.d tls32.g 
	                         tls32.t tlsexe.d tlsexe.g tlsexe.r 
	                         tlsexe.t tlsexe32.d tlsexe32.g 
	                         tlsexe32.r tlsexe32.t tlsexetoc.d 
	                         tlsexetoc.g tlsexetoc.r tlsexetoc.t 
	                         tlsmark.d tlsmark32.d tlsopt1.d 
	                         tlsopt1_32.d tlsopt2.d tlsopt2_32.d 
	                         tlsopt3.d tlsopt3_32.d tlsopt4.d 
	                         tlsopt4_32.d tlsso.d tlsso.g tlsso.r 
	                         tlsso.t tlsso32.d tlsso32.g tlsso32.r 
	                         tlsso32.t tlstoc.d tlstoc.g tlstoc.t 
	                         tlstocso.d tlstocso.g tlstocso.t 
	                         tocopt.out 
	opcodes        : ChangeLog ppc-dis.c ppc-opc.c 
Added files:
	gas/testsuite/gas/ppc: altivec2.d altivec2.s 

Log message:
	PR 12549
	PR 14493
	PR 14567
	PR 14662
	PR 14758
	PR 14813
	PR 14904
	PR 14915
	PR 14926
	PR 14950
	PR 14962
	Apply mainline patches

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.5758.2.37&r2=1.5758.2.38
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/bfdio.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.33&r2=1.33.4.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/cache.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.41&r2=1.41.4.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf-bfd.h.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.343.2.2&r2=1.343.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf-strtab.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.16&r2=1.16.20.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.568&r2=1.568.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf32-i386.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.279.4.3&r2=1.279.4.4
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf32-ppc.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.318.4.1&r2=1.318.4.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf64-ppc.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.390.4.3&r2=1.390.4.4
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elflink.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.450.4.2&r2=1.450.4.3
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/linker.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.95&r2=1.95.4.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/opncls.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.69&r2=1.69.4.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/binutils/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1925.2.8&r2=1.1925.2.9
http://sourceware.org/cgi-bin/cvsweb.cgi/src/binutils/readelf.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.578.2.3&r2=1.578.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.4769.2.23&r2=1.4769.2.24
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/dwarf2dbg.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.116&r2=1.116.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/sb.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.20&r2=1.20.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/write.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.151&r2=1.151.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-ppc.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.184&r2=1.184.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-ppc.h.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.45&r2=1.45.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2057.2.19&r2=1.2057.2.20
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/cfi/cfi-ppc-1.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.3&r2=1.3.16.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/cfi/cfi-ppc-1.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.36.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/cfi/cfi.exp.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.27&r2=1.27.6.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/altivec2.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=NONE&r2=1.2.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/altivec2.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=NONE&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/476.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.4&r2=1.4.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/476.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.3&r2=1.3.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/a2.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.6&r2=1.6.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/a2.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.3&r2=1.3.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/altivec.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.6&r2=1.6.24.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/altivec.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.40.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/altivec_and_spe.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.12.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/astest.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.4&r2=1.4.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/astest2.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.6&r2=1.6.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/astest2_64.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.4&r2=1.4.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/astest64.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.4&r2=1.4.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/booke.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.14&r2=1.14.12.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/booke.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.7&r2=1.7.12.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/cell.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.18.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/cell.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.18.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/common.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2.12.1&r2=1.2.12.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/common.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1.18.1&r2=1.1.18.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/e500.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.8&r2=1.8.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/e500.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.3&r2=1.3.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/e500mc.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.6&r2=1.6.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/e500mc.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.12.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/e500mc64_nop.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/e500mc64_nop.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/e5500_nop.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/e5500_nop.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/e6500.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1.2.1&r2=1.1.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/e6500.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/e6500_nop.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/e6500_nop.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/machine.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.36.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/power4.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.7.8.1&r2=1.7.8.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/power4.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2.30.1&r2=1.2.30.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/power4_32.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.14.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/power4_32.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.14.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/power6.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.6&r2=1.6.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/power6.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.6&r2=1.6.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/power7.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.4.8.1&r2=1.4.8.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/power7.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.4.8.1&r2=1.4.8.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/ppc.exp.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.29&r2=1.29.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/ppc750ps.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.18.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/ppc750ps.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.18.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/regnames.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.18.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/simpshft.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1.1.1&r2=1.1.1.1.46.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/test1elf32.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.5&r2=1.5.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/test1elf64.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.6&r2=1.6.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/titan.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/titan.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/vle-reloc.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/vle-simple-1.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/vle-simple-2.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/vle-simple-3.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/vle-simple-4.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/vle-simple-5.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/vle-simple-6.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/vle.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/vsx.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/ppc/vsx.s.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/include/opcode/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.466.4.4&r2=1.466.4.5
http://sourceware.org/cgi-bin/cvsweb.cgi/src/include/opcode/ppc.h.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.44&r2=1.44.4.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2470.2.14&r2=1.2470.2.15
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/ldexp.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.101.2.1&r2=1.101.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/ldexp.h.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.31.2.1&r2=1.31.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/ldlang.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.397.2.3&r2=1.397.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/ldmain.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.165&r2=1.165.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/lexsup.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.133.2.1&r2=1.133.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/plugin.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.45&r2=1.45.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/plugin.h.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.10&r2=1.10.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/emultempl/elf32.em.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.229.2.1&r2=1.229.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1579.2.15&r2=1.1579.2.16
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-gc/pr13683.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.3&r2=1.3.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-plugin/plugin-2.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-plugin/plugin-4.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/apuinfo-nul.rd.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/apuinfo.rd.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.5&r2=1.5.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/plt1.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.20.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/powerpc.exp.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.40&r2=1.40.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/relax.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.3&r2=1.3.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/relaxr.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.3&r2=1.3.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/sdadyn.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.24.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tls.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.30.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tls.g.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.38.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tls.t.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.36.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tls32.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.30.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tls32.g.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.38.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tls32.t.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.38.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsexe.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.10&r2=1.10.6.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsexe.g.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.10&r2=1.10.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsexe.r.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.31&r2=1.31.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsexe.t.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.3&r2=1.3.38.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsexe32.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.10&r2=1.10.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsexe32.g.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.6&r2=1.6.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsexe32.r.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.20&r2=1.20.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsexe32.t.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.3&r2=1.3.24.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsexetoc.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.11&r2=1.11.6.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsexetoc.g.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.10&r2=1.10.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsexetoc.r.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.32&r2=1.32.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsexetoc.t.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.3&r2=1.3.36.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsmark.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.6.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsmark32.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.6.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsopt1.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsopt1_32.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsopt2.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsopt2_32.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsopt3.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsopt3_32.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsopt4.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsopt4_32.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.8.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsso.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.10&r2=1.10.6.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsso.g.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.9&r2=1.9.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsso.r.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.33&r2=1.33.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsso.t.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.36.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsso32.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.16&r2=1.16.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsso32.g.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.10&r2=1.10.20.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsso32.r.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.25&r2=1.25.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlsso32.t.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.4&r2=1.4.24.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlstoc.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.4&r2=1.4.30.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlstoc.g.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.36.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlstoc.t.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.38.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlstocso.d.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.9&r2=1.9.6.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlstocso.g.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.9&r2=1.9.18.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tlstocso.t.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.2&r2=1.2.36.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-powerpc/tocopt.out.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1&r2=1.1.4.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/opcodes/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.1831.2.20&r2=1.1831.2.21
http://sourceware.org/cgi-bin/cvsweb.cgi/src/opcodes/ppc-dis.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.59&r2=1.59.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/src/opcodes/ppc-opc.c.diff?cvsroot=src&only_with_tag=binutils-2_23-branch&r1=1.147.2.2&r2=1.147.2.3
Comment 31 Alan Modra 2013-01-21 13:54:51 UTC
Fixed
Comment 32 Sourceware Commits 2024-04-23 12:37:46 UTC
The master branch has been updated by Alan Modra <amodra@sourceware.org>:

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

commit 6705e14a9943e48ccf0f4829a9c23d66b5b83aae
Author: Alan Modra <amodra@gmail.com>
Date:   Mon Apr 22 09:30:23 2024 +0930

    copy_private_symbol_data
    
    bfd_copy_private_symbol_data is a bfd function that appeared in
    commit 89665c8562da a long time ago, but seemingly wasn't used
    anywhere until Jan added it to gas/symbols.c in commit 6a2b6326c21e.
    
    The function is used to modify ELF symbol st_shndx for symbols defined
    in odd sections like .symtab, so that they get the corresponding
    section st_shndx in an output file.  This patch fixes some bitrot in
    the function.  After commit c03551323c04 which introduced
    output_elf_obj_tdata, elf_strtab_sec and elf_shstrtab_sec will
    segfault if used on an input bfd.
    
            PR 14493
            * elf.c (_bfd_elf_copy_private_symbol_data): Don't use
            elf_strtab_sec and elf_shstrtab_sec.
Comment 33 Sourceware Commits 2024-04-23 12:37:51 UTC
The master branch has been updated by Alan Modra <amodra@sourceware.org>:

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

commit e13e2ba45fe23ec4e6d7335b0834290e61605d4d
Author: Alan Modra <amodra@gmail.com>
Date:   Mon Apr 22 09:30:38 2024 +0930

    use copy_private_symbol_data in objcopy
    
    osympp appearing twice here is not a bug.
    
            PR 14493
            * objcopy.c (copy_object): Run the symbols through
            bfd_copy_private_symbol_data.
Comment 34 Sourceware Commits 2024-04-23 12:38:01 UTC
The master branch has been updated by Alan Modra <amodra@sourceware.org>:

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

commit ef1c830f003acaf149bb9ee230be0d0067e1855c
Author: Alan Modra <amodra@gmail.com>
Date:   Mon Apr 22 09:29:28 2024 +0930

    ignore some symbols in elf.c:swap_out_syms
    
    The reason behind this patch was noticing that generic ELF targets
    fail to remove "bar" in the recently committed ld-elf/undefweak-1
    test.  (Despite that, those targets pass the test due to it being too
    strict when matching symbols.  "bar" gets turned into a local weak
    defined absolute symbol.)
    
    swap_out_syms currently drops local section syms that are defined in
    discarded sections.  Extend that to also drop other symbols in
    discarded sections too, even global symbols.  The linker goes to quite
    a lot of effort to ensure globals in discarded section take a
    definition from the kept linkonce or comdat group section.  So the
    global sym change should only affect cases where something is quite
    wrong about the set of linkonce or comdat group sections.  However
    that change to elf_map_symbols meant we dropped _DYNAMIC_LINK /
    _DYNAMIC_LINKING for mips, a global absolute symbol given STT_SECTION
    type for some reason.  That problem is fixed by reverting the pr14493
    change which is no longer needed due to a) BSF_SECTION_SYM_USED on
    x86, and b) fixing objcopy to use copy_private_symbol_data.
    
    bfd/
            PR 14493
            * elf.c (ignore_sym): Rename from ignore_section_sym.  Return
            true for any symbol without a section or in a discarded section.
            Revert pr14493 change.
            (elf_map_symbols): Tidy.  Use ignore_sym on all symbols.
            (swap_out_syms): Tidy.
    ld/
            * testsuite/ld-elf/undefweak-1.rd: Match any "bar".
Comment 35 Sourceware Commits 2024-04-23 15:38:21 UTC
The master branch has been updated by H.J. Lu <hjl@sourceware.org>:

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

commit 6c2119acf78b4a48caa918c1d63aac7a64a19c82
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Apr 23 07:07:51 2024 -0700

    objcopy.c: Fix bfd_copy_private_symbol_data on 32-bit hosts
    
    Use long with bfd_copy_private_symbol_data to fix
    
    .../binutils/objcopy.c: In
    function âcopy_objectâ:
    .../binutils/objcopy.c:3383:17: error: comparison of integer expressions of different signedness: âunsigned intâ and âlong intâ [-Werror=sign-compare]
     3383 |   for (i = 0; i < symcount; i++)
          |                 ^
    
    on 32-bit hosts.
    
            PR binutils/14493
            * objcopy.c (copy_object): Use long with
            bfd_copy_private_symbol_data.