Accepting request 929013 from devel:gcc

- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.

- Fix empty man-pages from broken release tarball [PR28144].

- Update binutils-skip-rpaths.patch with contained a memory corruption
  (boo#1191473).

- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
  toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
  PR28422, PR28192, PR28391.  Also adds some s390x arch14
  instructions [jsc#SLE-18637].

- Using libalternatives instead of update-alternatives.

- Adjust for testsuite fails on older products that configure
  binutils in different ways, adds  binutils-compat-old-behaviour.diff
  and adjusts binutils-revert-nm-symversion.diff and
  binutils-revert-plt32-in-branches.diff.

- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.

- Fix empty man-pages from broken release tarball [PR28144].

- Update binutils-skip-rpaths.patch with contained a memory corruption
  (boo#1191473).

OBS-URL: https://build.opensuse.org/request/show/929013
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/binutils?expand=0&rev=151
This commit is contained in:
Dominique Leuenberger 2021-11-06 17:13:03 +00:00 committed by Git OBS Bridge
commit 4f855bd7fc
52 changed files with 3502 additions and 165 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:fcfb8e1aba4fc2bb64a6005491e80dafa1741a25aa61b8e4e552711f3d48f78b oid sha256:a180feaacc91632c8418ec9c460309a213ad23f8ed5f08387421759fef042c42
size 88423 size 110663

View File

@ -1,8 +1,10 @@
Remove the #error to avoid issues with legacy not dealing with this Remove the #error to avoid issues with legacy not dealing with this
--- bfd/bfd-in.h.orig 2012-11-30 13:44:35.715871571 +0100 Index: bfd/bfd-in.h
+++ bfd/bfd-in.h 2012-11-30 13:44:43.428871298 +0100 ===================================================================
@@ -25,11 +25,6 @@ --- bfd/bfd-in.h.orig
+++ bfd/bfd-in.h
@@ -23,11 +23,6 @@
#ifndef __BFD_H_SEEN__ #ifndef __BFD_H_SEEN__
#define __BFD_H_SEEN__ #define __BFD_H_SEEN__

View File

@ -0,0 +1,181 @@
This adjusts some testcases that expect new behaviour:
* that relaxable relocations are generated
* that separate-code is default
- this also implies that default max-page-size is 0x1000, instead of the
old 0x200000, so some testcases need to encode that as well
Index: binutils-2.37/ld/testsuite/ld-elf/linux-x86.exp
===================================================================
--- binutils-2.37.orig/ld/testsuite/ld-elf/linux-x86.exp
+++ binutils-2.37/ld/testsuite/ld-elf/linux-x86.exp
@@ -125,7 +125,7 @@ proc check_pr25749a {testname srcfilea s
}
# Suppress warning for unsupported attribute from older GCC.
- append cflags " -w"
+ append cflags " -w -Wa,-mrelax-relocations=yes"
exec cp $srcdir/$subdir/$srcfilea $srcfilea
exec chmod +w $srcfilea
@@ -246,7 +246,7 @@ proc check_pr25749b {testname srcfilea s
[list \
"Build lib${testname}.so ($dsoldflags)" \
"-shared $dsoldflags tmpdir/pr25749-bin.o" \
- "-fPIC -I../bfd" \
+ "-fPIC -I../bfd -Wa,-mrelax-relocations=yes" \
[list $srcfileb] \
{{readelf {-Wr} pr25749.rd}} \
"lib${testname}.so" \
Index: binutils-2.37/ld/testsuite/ld-i386/report-reloc-1.d
===================================================================
--- binutils-2.37.orig/ld/testsuite/ld-i386/report-reloc-1.d
+++ binutils-2.37/ld/testsuite/ld-i386/report-reloc-1.d
@@ -1,6 +1,6 @@
#source: report-reloc-1.s
#as: --32
-#ld: -pie -melf_i386 -z report-relative-reloc
+#ld: -pie -melf_i386 -z report-relative-reloc -z separate-code
#warning_output: report-reloc-1.l
#readelf: -r --wide
Index: binutils-2.37/ld/testsuite/ld-x86-64/pe-x86-64.exp
===================================================================
--- binutils-2.37.orig/ld/testsuite/ld-x86-64/pe-x86-64.exp
+++ binutils-2.37/ld/testsuite/ld-x86-64/pe-x86-64.exp
@@ -27,7 +27,7 @@ if {![istarget "x86_64-*-linux*"] } {
run_ld_link_tests [list \
[list \
"Build pe-x86-64-1" \
- "-m elf_x86_64 --entry=begin" \
+ "-m elf_x86_64 --entry=begin -z separate-code -z max-page-size=4096" \
"" \
"" \
{pe-x86-64-1a.obj.bz2 pe-x86-64-1b.obj.bz2 pe-x86-64-1c.obj.bz2} \
@@ -36,7 +36,7 @@ run_ld_link_tests [list \
] \
[list \
"Build pe-x86-64-2" \
- "-m elf_x86_64 --entry=begin" \
+ "-m elf_x86_64 --entry=begin -z separate-code -z max-page-size=4096" \
"" \
"" \
{pe-x86-64-2a.obj.bz2 pe-x86-64-2b.obj.bz2 pe-x86-64-2c.obj.bz2} \
@@ -45,7 +45,7 @@ run_ld_link_tests [list \
] \
[list \
"Build pe-x86-64-3" \
- "-m elf_x86_64 --entry=begin" \
+ "-m elf_x86_64 --entry=begin -z separate-code -z max-page-size=4096" \
"" \
"" \
{pe-x86-64-3a.obj.bz2 pe-x86-64-3b.obj.bz2 pe-x86-64-3c.obj.bz2 \
@@ -55,7 +55,7 @@ run_ld_link_tests [list \
] \
[list \
"Build pe-x86-64-4" \
- "-m elf_x86_64 --entry=begin" \
+ "-m elf_x86_64 --entry=begin -z separate-code -z max-page-size=4096" \
"" \
"" \
{pe-x86-64-4a.obj.bz2 pe-x86-64-4b.obj.bz2 pe-x86-64-4c.obj.bz2 \
@@ -65,7 +65,7 @@ run_ld_link_tests [list \
] \
[list \
"Build pe-x86-64-5" \
- "-m elf_x86_64 --entry=begin" \
+ "-m elf_x86_64 --entry=begin -z separate-code -z max-page-size=4096" \
"" \
"" \
{pe-x86-64-5.obj.bz2 } \
@@ -75,7 +75,7 @@ run_ld_link_tests [list \
] \
[list \
"Build pe-x86-64-6" \
- "-m elf_x86_64 --entry=main" \
+ "-m elf_x86_64 --entry=main -z separate-code -z max-page-size=4096" \
"" \
"" \
{pe-x86-64-6.obj.bz2 } \
Index: binutils-2.37/ld/testsuite/ld-x86-64/report-reloc-1-x32.d
===================================================================
--- binutils-2.37.orig/ld/testsuite/ld-x86-64/report-reloc-1-x32.d
+++ binutils-2.37/ld/testsuite/ld-x86-64/report-reloc-1-x32.d
@@ -1,6 +1,6 @@
#source: report-reloc-1.s
#as: --x32
-#ld: -pie -melf32_x86_64 -z report-relative-reloc
+#ld: -pie -melf32_x86_64 -z report-relative-reloc -z separate-code -z max-page-size=4096
#warning_output: report-reloc-1.l
#readelf: -r --wide
Index: binutils-2.37/ld/testsuite/ld-x86-64/report-reloc-1.d
===================================================================
--- binutils-2.37.orig/ld/testsuite/ld-x86-64/report-reloc-1.d
+++ binutils-2.37/ld/testsuite/ld-x86-64/report-reloc-1.d
@@ -1,6 +1,6 @@
#source: report-reloc-1.s
#as: --64
-#ld: -pie -melf_x86_64 -z report-relative-reloc
+#ld: -pie -melf_x86_64 -z report-relative-reloc -z separate-code -z max-page-size=4096
#warning_output: report-reloc-1.l
#readelf: -r --wide
Index: binutils-2.37/ld/testsuite/ld-x86-64/pr19609-4e.d
===================================================================
--- binutils-2.37.orig/ld/testsuite/ld-x86-64/pr19609-4e.d
+++ binutils-2.37/ld/testsuite/ld-x86-64/pr19609-4e.d
@@ -1,6 +1,6 @@
#source: pr19609-4.s
#as: --64 -mrelax-relocations=yes
-#ld: -melf_x86_64 -Ttext=0x70000000 -Tdata=0xa0000000 --no-relax
+#ld: -melf_x86_64 -Ttext=0x70000000 -Tdata=0xa0000000 --no-relax -z separate-code -z max-page-size=4096
#objdump: -dw
.*: +file format .*
Index: binutils-2.37/ld/testsuite/ld-x86-64/pr19609-6a.d
===================================================================
--- binutils-2.37.orig/ld/testsuite/ld-x86-64/pr19609-6a.d
+++ binutils-2.37/ld/testsuite/ld-x86-64/pr19609-6a.d
@@ -1,6 +1,6 @@
#source: pr19609-6.s
#as: --64 -mrelax-relocations=yes
-#ld: -melf_x86_64 --defsym foobar=0x80000000
+#ld: -melf_x86_64 --defsym foobar=0x80000000 -z separate-code -z max-page-size=4096
#objdump: -dw
.*: +file format .*
Index: binutils-2.37/ld/testsuite/ld-x86-64/pr19609-6b.d
===================================================================
--- binutils-2.37.orig/ld/testsuite/ld-x86-64/pr19609-6b.d
+++ binutils-2.37/ld/testsuite/ld-x86-64/pr19609-6b.d
@@ -1,6 +1,6 @@
#source: pr19609-6.s
#as: --64 -mrelax-relocations=yes
-#ld: -melf_x86_64 --defsym foobar=0x80000000 --no-relax
+#ld: -melf_x86_64 --defsym foobar=0x80000000 --no-relax -z separate-code -z max-page-size=4096
#objdump: -dw
.*: +file format .*
Index: binutils-2.37/ld/testsuite/ld-x86-64/pr19609-7b.d
===================================================================
--- binutils-2.37.orig/ld/testsuite/ld-x86-64/pr19609-7b.d
+++ binutils-2.37/ld/testsuite/ld-x86-64/pr19609-7b.d
@@ -1,6 +1,6 @@
#source: pr19609-7.s
#as: --64 -mrelax-relocations=yes
-#ld: -melf_x86_64 -Ttext=0x80000000 --no-relax
+#ld: -melf_x86_64 -Ttext=0x80000000 --no-relax -z separate-code -z max-page-size=4096
#objdump: -dw
.*: +file format .*
Index: binutils-2.37/ld/testsuite/ld-x86-64/pr19609-7d.d
===================================================================
--- binutils-2.37.orig/ld/testsuite/ld-x86-64/pr19609-7d.d
+++ binutils-2.37/ld/testsuite/ld-x86-64/pr19609-7d.d
@@ -1,6 +1,6 @@
#source: pr19609-7.s
#as: --x32 -mrelax-relocations=yes
-#ld: -melf32_x86_64 -Ttext=0x80000000 --no-relax
+#ld: -melf32_x86_64 -Ttext=0x80000000 --no-relax -z separate-code -z max-page-size=4096
#objdump: -dw
.*: +file format .*

View File

@ -4,31 +4,60 @@ file with symbol names. ld errors on the '@' characters. Until
those packages are fixed we use this patch. We have to carry it those packages are fixed we use this patch. We have to carry it
for old code streams forever. for old code streams forever.
diff --git a/binutils/nm.c b/binutils/nm.c Index: binutils-2.37/binutils/nm.c
index 2637756c647..253714ef179 100644 ===================================================================
--- a/binutils/nm.c --- binutils-2.37.orig/binutils/nm.c
+++ b/binutils/nm.c +++ binutils-2.37/binutils/nm.c
@@ -458,7 +458,7 @@ print_symname (const char *form, struct extended_symbol_info *info, @@ -183,7 +183,7 @@ static int show_version = 0; /* Show the
name = alloc; static int show_synthetic = 0; /* Display synthesized symbols too. */
} static int line_numbers = 0; /* Print line numbers for symbols. */
static int allow_special_symbols = 0; /* Allow special symbols. */
-static int with_symbol_versions = -1; /* Output symbol version information. */
+static int with_symbol_versions = 0; /* Output symbol version information. */
static int quiet = 0; /* Suppress "no symbols" diagnostic. */
- if (info != NULL && info->elfinfo && with_symbol_versions) /* The characters to use for global and local ifunc symbols. */
+ if (info != NULL && info->elfinfo && with_symbol_versions && 0) Index: binutils-2.37/ld/testsuite/ld-elf/shared.exp
{ ===================================================================
const char *version_string; --- binutils-2.37.orig/ld/testsuite/ld-elf/shared.exp
bool hidden; +++ binutils-2.37/ld/testsuite/ld-elf/shared.exp
diff --git a/ld/testsuite/ld-elf/pr25708.d b/ld/testsuite/ld-elf/pr25708.d @@ -938,8 +938,7 @@ run_cc_link_tests [list \
index 60b8e31807a..1b62e25347e 100644 "-fPIC" \
--- a/ld/testsuite/ld-elf/pr25708.d {pr26302b.c} \
+++ b/ld/testsuite/ld-elf/pr25708.d {{readelf {-sW} pr26302.rd} \
@@ -2,8 +2,9 @@ - {nm {-u} pr26302.nd} \
#ld: -shared -version-script pr13195.t - {nm {-u -D} pr26302.nd} \
#nm: -D --with-symbol-versions + {nm {-u --with-symbol-versions} pr26302.nd} \
#target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi {nm {-u -D --with-symbol-versions} pr26302.nd}} \
-#xfail: hppa64-*-* ![check_shared_lib_support] "pr26302b.so" \
+#xfail: *-*-* ![check_shared_lib_support] ] \
# h8300 doesn't support -shared, and hppa64 creates .foo Index: binutils-2.37/gas/testsuite/gas/symver/symver0.d
+# our binutils revert the printing of symversions with nm -D ===================================================================
--- binutils-2.37.orig/gas/testsuite/gas/symver/symver0.d
+++ binutils-2.37/gas/testsuite/gas/symver/symver0.d
@@ -1,4 +1,4 @@
-#nm: -n
+#nm: -n --with-symbol-versions
#name: symver symver0
#
# The #... and #pass are there to match extra symbols inserted by
Index: binutils-2.37/gas/testsuite/gas/symver/symver1.d
===================================================================
--- binutils-2.37.orig/gas/testsuite/gas/symver/symver1.d
+++ binutils-2.37/gas/testsuite/gas/symver/symver1.d
@@ -1,4 +1,4 @@
-#nm: -n
+#nm: -n --with-symbol-versions
#name: symver symver1
#
# The #... and #pass are there to match extra symbols inserted by
Index: binutils-2.37/gas/testsuite/gas/symver/symver6.d
===================================================================
--- binutils-2.37.orig/gas/testsuite/gas/symver/symver6.d
+++ binutils-2.37/gas/testsuite/gas/symver/symver6.d
@@ -1,4 +1,4 @@
-#nm: -n
+#nm: -n --with-symbol-versions
#name: symver symver6
#
#..
0+ A VERS_2.0

View File

@ -79,11 +79,11 @@ Date: Tue Feb 13 07:34:22 2018 -0800
* testsuite/ld-x86-64/pr22791-2c.s: Likewise. * testsuite/ld-x86-64/pr22791-2c.s: Likewise.
* testsuite/ld-x86-64/x86-64.exp: Run PR ld/22791 tests. * testsuite/ld-x86-64/x86-64.exp: Run PR ld/22791 tests.
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c Index: binutils-2.37/bfd/elf64-x86-64.c
index dc416a7f..b9f96729 100644 ===================================================================
--- a/bfd/elf64-x86-64.c --- binutils-2.37.orig/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c +++ binutils-2.37/bfd/elf64-x86-64.c
@@ -1832,6 +1832,24 @@ elf_x86_64_convert_load_reloc (bfd *abfd, @@ -1832,6 +1832,24 @@ elf_x86_64_convert_load_reloc (bfd *abfd
return true; return true;
} }
@ -108,7 +108,7 @@ index dc416a7f..b9f96729 100644
/* Look through the relocs for a section during the first phase, and /* Look through the relocs for a section during the first phase, and
calculate needed space in the global offset table, procedure calculate needed space in the global offset table, procedure
linkage table, and dynamic reloc sections. */ linkage table, and dynamic reloc sections. */
@@ -3159,9 +3177,6 @@ elf_x86_64_relocate_section (bfd *output_bfd, @@ -3154,9 +3172,6 @@ elf_x86_64_relocate_section (bfd *output
&& (eh == NULL && (eh == NULL
|| !UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, || !UNDEFINED_WEAK_RESOLVED_TO_ZERO (info,
eh))) eh)))
@ -118,7 +118,7 @@ index dc416a7f..b9f96729 100644
|| (no_copyreloc_p || (no_copyreloc_p
&& h->def_dynamic && h->def_dynamic
&& !(h->root.u.def.section->flags & SEC_CODE)))) && !(h->root.u.def.section->flags & SEC_CODE))))
@@ -3170,20 +3185,25 @@ elf_x86_64_relocate_section (bfd *output_bfd, @@ -3165,20 +3180,25 @@ elf_x86_64_relocate_section (bfd *output
|| bfd_link_dll (info))) || bfd_link_dll (info)))
{ {
bool fail = false; bool fail = false;
@ -148,7 +148,7 @@ index dc416a7f..b9f96729 100644
} }
else if (no_copyreloc_p || bfd_link_dll (info)) else if (no_copyreloc_p || bfd_link_dll (info))
{ {
@@ -3192,9 +3212,10 @@ elf_x86_64_relocate_section (bfd *output_bfd, @@ -3187,9 +3207,10 @@ elf_x86_64_relocate_section (bfd *output
relocations against default and protected relocations against default and protected
symbols since address of protected function symbols since address of protected function
and location of protected data may not be in and location of protected data may not be in
@ -161,11 +161,11 @@ index dc416a7f..b9f96729 100644
} }
if (fail) if (fail)
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c Index: binutils-2.37/gas/config/tc-i386.c
index d3441988e34..8f8fb086cd8 100644 ===================================================================
--- a/gas/config/tc-i386.c --- binutils-2.37.orig/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c +++ binutils-2.37/gas/config/tc-i386.c
@@ -8793,55 +8793,12 @@ output_branch (void) @@ -8770,55 +8770,12 @@ output_branch (void)
frag_var (rs_machine_dependent, 5, i.reloc[0], subtype, sym, off, p); frag_var (rs_machine_dependent, 5, i.reloc[0], subtype, sym, off, p);
} }
@ -221,7 +221,7 @@ index d3441988e34..8f8fb086cd8 100644
if (i.tm.opcode_modifier.jump == JUMP_BYTE) if (i.tm.opcode_modifier.jump == JUMP_BYTE)
{ {
@@ -8915,17 +8872,8 @@ output_jump (void) @@ -8892,17 +8849,8 @@ output_jump (void)
abort (); abort ();
} }
@ -240,7 +240,7 @@ index d3441988e34..8f8fb086cd8 100644
/* All jumps handled here are signed, but don't unconditionally use a /* All jumps handled here are signed, but don't unconditionally use a
signed limit check for 32 and 16 bit jumps as we want to allow wrap signed limit check for 32 and 16 bit jumps as we want to allow wrap
@@ -12184,10 +12132,6 @@ md_estimate_size_before_relax (fragS *fragP, segT segment) @@ -12190,10 +12138,6 @@ md_estimate_size_before_relax (fragS *fr
reloc_type = (enum bfd_reloc_code_real) fragP->fr_var; reloc_type = (enum bfd_reloc_code_real) fragP->fr_var;
else if (size == 2) else if (size == 2)
reloc_type = BFD_RELOC_16_PCREL; reloc_type = BFD_RELOC_16_PCREL;
@ -251,10 +251,10 @@ index d3441988e34..8f8fb086cd8 100644
else else
reloc_type = BFD_RELOC_32_PCREL; reloc_type = BFD_RELOC_32_PCREL;
diff --git a/gas/testsuite/gas/i386/ilp32/reloc64.d b/gas/testsuite/gas/i386/ilp32/reloc64.d Index: binutils-2.37/gas/testsuite/gas/i386/ilp32/reloc64.d
index 78ca3fd9e38..a961679754a 100644 ===================================================================
--- a/gas/testsuite/gas/i386/ilp32/reloc64.d --- binutils-2.37.orig/gas/testsuite/gas/i386/ilp32/reloc64.d
+++ b/gas/testsuite/gas/i386/ilp32/reloc64.d +++ binutils-2.37/gas/testsuite/gas/i386/ilp32/reloc64.d
@@ -17,7 +17,7 @@ Disassembly of section \.text: @@ -17,7 +17,7 @@ Disassembly of section \.text:
.*[ ]+R_X86_64_PC8[ ]+xtrn\+0x0*1 .*[ ]+R_X86_64_PC8[ ]+xtrn\+0x0*1
.*[ ]+R_X86_64_PC32[ ]+xtrn-0x0*4 .*[ ]+R_X86_64_PC32[ ]+xtrn-0x0*4
@ -264,10 +264,10 @@ index 78ca3fd9e38..a961679754a 100644
.*[ ]+R_X86_64_PC8[ ]+xtrn-0x0*1 .*[ ]+R_X86_64_PC8[ ]+xtrn-0x0*1
.*[ ]+R_X86_64_GOT32[ ]+xtrn .*[ ]+R_X86_64_GOT32[ ]+xtrn
.*[ ]+R_X86_64_GOT32[ ]+xtrn .*[ ]+R_X86_64_GOT32[ ]+xtrn
diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-branch.d b/gas/testsuite/gas/i386/ilp32/x86-64-branch.d Index: binutils-2.37/gas/testsuite/gas/i386/ilp32/x86-64-branch.d
index acf8c42ca97..57845fdc208 100644 ===================================================================
--- a/gas/testsuite/gas/i386/ilp32/x86-64-branch.d --- binutils-2.37.orig/gas/testsuite/gas/i386/ilp32/x86-64-branch.d
+++ b/gas/testsuite/gas/i386/ilp32/x86-64-branch.d +++ binutils-2.37/gas/testsuite/gas/i386/ilp32/x86-64-branch.d
@@ -20,9 +20,9 @@ Disassembly of section .text: @@ -20,9 +20,9 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 66 ff 20 data16 jmp \*\(%rax\) [ ]*[a-f0-9]+: 66 ff 20 data16 jmp \*\(%rax\)
[ ]*[a-f0-9]+: e8 00 00 00 00 call (0x)?1f <.*> 1b: R_X86_64_PC32 \*ABS\*\+0x10003c [ ]*[a-f0-9]+: e8 00 00 00 00 call (0x)?1f <.*> 1b: R_X86_64_PC32 \*ABS\*\+0x10003c
@ -281,10 +281,10 @@ index acf8c42ca97..57845fdc208 100644
[ ]*[a-f0-9]+: 66 c3 data16 ret * [ ]*[a-f0-9]+: 66 c3 data16 ret *
[ ]*[a-f0-9]+: 66 c2 08 00 data16 ret \$0x8 [ ]*[a-f0-9]+: 66 c2 08 00 data16 ret \$0x8
[ ]*[a-f0-9]+: 3e 74 03[ ]+je,pt +[0-9a-fx]+ <.*> [ ]*[a-f0-9]+: 3e 74 03[ ]+je,pt +[0-9a-fx]+ <.*>
diff --git a/gas/testsuite/gas/i386/reloc64.d b/gas/testsuite/gas/i386/reloc64.d Index: binutils-2.37/gas/testsuite/gas/i386/reloc64.d
index 540a9b77d35..ea16c68de4b 100644 ===================================================================
--- a/gas/testsuite/gas/i386/reloc64.d --- binutils-2.37.orig/gas/testsuite/gas/i386/reloc64.d
+++ b/gas/testsuite/gas/i386/reloc64.d +++ binutils-2.37/gas/testsuite/gas/i386/reloc64.d
@@ -20,7 +20,7 @@ Disassembly of section \.text: @@ -20,7 +20,7 @@ Disassembly of section \.text:
.*[ ]+R_X86_64_PC8[ ]+xtrn\+0x0*1 .*[ ]+R_X86_64_PC8[ ]+xtrn\+0x0*1
.*[ ]+R_X86_64_PC32[ ]+xtrn-0x0*4 .*[ ]+R_X86_64_PC32[ ]+xtrn-0x0*4
@ -294,10 +294,10 @@ index 540a9b77d35..ea16c68de4b 100644
.*[ ]+R_X86_64_PC8[ ]+xtrn-0x0*1 .*[ ]+R_X86_64_PC8[ ]+xtrn-0x0*1
.*[ ]+R_X86_64_GOT64[ ]+xtrn .*[ ]+R_X86_64_GOT64[ ]+xtrn
.*[ ]+R_X86_64_GOT32[ ]+xtrn .*[ ]+R_X86_64_GOT32[ ]+xtrn
diff --git a/gas/testsuite/gas/i386/x86-64-branch-2.d b/gas/testsuite/gas/i386/x86-64-branch-2.d Index: binutils-2.37/gas/testsuite/gas/i386/x86-64-branch-2.d
index fab75a6394c..e025de90b68 100644 ===================================================================
--- a/gas/testsuite/gas/i386/x86-64-branch-2.d --- binutils-2.37.orig/gas/testsuite/gas/i386/x86-64-branch-2.d
+++ b/gas/testsuite/gas/i386/x86-64-branch-2.d +++ binutils-2.37/gas/testsuite/gas/i386/x86-64-branch-2.d
@@ -9,12 +9,12 @@ Disassembly of section .text: @@ -9,12 +9,12 @@ Disassembly of section .text:
0+ <bar-0xb>: 0+ <bar-0xb>:
@ -313,10 +313,10 @@ index fab75a6394c..e025de90b68 100644
[ ]*[a-f0-9]+: 66 c3 retw * [ ]*[a-f0-9]+: 66 c3 retw *
[ ]*[a-f0-9]+: 66 c2 08 00 retw \$0x8 [ ]*[a-f0-9]+: 66 c2 08 00 retw \$0x8
#pass #pass
diff --git a/gas/testsuite/gas/i386/x86-64-jump.d b/gas/testsuite/gas/i386/x86-64-jump.d Index: binutils-2.37/gas/testsuite/gas/i386/x86-64-jump.d
index 7d2c994ce26..58ad424badb 100644 ===================================================================
--- a/gas/testsuite/gas/i386/x86-64-jump.d --- binutils-2.37.orig/gas/testsuite/gas/i386/x86-64-jump.d
+++ b/gas/testsuite/gas/i386/x86-64-jump.d +++ binutils-2.37/gas/testsuite/gas/i386/x86-64-jump.d
@@ -9,7 +9,7 @@ Disassembly of section .text: @@ -9,7 +9,7 @@ Disassembly of section .text:
0+ <.text>: 0+ <.text>:
@ -335,10 +335,10 @@ index 7d2c994ce26..58ad424badb 100644
[ ]*[a-f0-9]+: ff 14 25 00 00 00 00 call \*0x0 3d: R_X86_64_32S xxx [ ]*[a-f0-9]+: ff 14 25 00 00 00 00 call \*0x0 3d: R_X86_64_32S xxx
[ ]*[a-f0-9]+: ff d7 call \*%rdi [ ]*[a-f0-9]+: ff d7 call \*%rdi
[ ]*[a-f0-9]+: ff 17 call \*\(%rdi\) [ ]*[a-f0-9]+: ff 17 call \*\(%rdi\)
diff --git a/gas/testsuite/gas/i386/x86-64-mpx-branch-1.d b/gas/testsuite/gas/i386/x86-64-mpx-branch-1.d Index: binutils-2.37/gas/testsuite/gas/i386/x86-64-mpx-branch-1.d
index 795f3fdacc4..1d692e8f04d 100644 ===================================================================
--- a/gas/testsuite/gas/i386/x86-64-mpx-branch-1.d --- binutils-2.37.orig/gas/testsuite/gas/i386/x86-64-mpx-branch-1.d
+++ b/gas/testsuite/gas/i386/x86-64-mpx-branch-1.d +++ binutils-2.37/gas/testsuite/gas/i386/x86-64-mpx-branch-1.d
@@ -23,9 +23,9 @@ Disassembly of section .text: @@ -23,9 +23,9 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: f2 e8 00 00 00 00 bnd call 34 <foo2> [ ]*[a-f0-9]+: f2 e8 00 00 00 00 bnd call 34 <foo2>
@ -352,10 +352,10 @@ index 795f3fdacc4..1d692e8f04d 100644
[ ]*[a-f0-9]+: f2 e9 00 00 00 00 bnd jmp 4d <foo2\+0x19> 49: R_X86_64_PLT32 foo-0x4 [ ]*[a-f0-9]+: f2 e9 00 00 00 00 bnd jmp 4d <foo2\+0x19> 49: R_X86_64_PLT32 foo-0x4
[ ]*[a-f0-9]+: f2 0f 82 00 00 00 00 bnd jb 54 <foo2\+0x20> 50: R_X86_64_PLT32 foo-0x4 [ ]*[a-f0-9]+: f2 0f 82 00 00 00 00 bnd jb 54 <foo2\+0x20> 50: R_X86_64_PLT32 foo-0x4
[ ]*[a-f0-9]+: f2 e8 00 00 00 00 bnd call 5a <foo2\+0x26> 56: R_X86_64_PLT32 foo-0x4 [ ]*[a-f0-9]+: f2 e8 00 00 00 00 bnd call 5a <foo2\+0x26> 56: R_X86_64_PLT32 foo-0x4
diff --git a/gas/testsuite/gas/i386/x86-64-nop-3.d b/gas/testsuite/gas/i386/x86-64-nop-3.d Index: binutils-2.37/gas/testsuite/gas/i386/x86-64-nop-3.d
index 1975481cc59..436487b5a99 100644 ===================================================================
--- a/gas/testsuite/gas/i386/x86-64-nop-3.d --- binutils-2.37.orig/gas/testsuite/gas/i386/x86-64-nop-3.d
+++ b/gas/testsuite/gas/i386/x86-64-nop-3.d +++ binutils-2.37/gas/testsuite/gas/i386/x86-64-nop-3.d
@@ -18,5 +18,5 @@ Disassembly of section .text: @@ -18,5 +18,5 @@ Disassembly of section .text:
Disassembly of section .altinstr_replacement: Disassembly of section .altinstr_replacement:
@ -363,32 +363,32 @@ index 1975481cc59..436487b5a99 100644
- +[a-f0-9]+: e9 00 00 00 00 jmp 5 <_start\+0x5> 1: R_X86_64_PLT32 foo-0x4 - +[a-f0-9]+: e9 00 00 00 00 jmp 5 <_start\+0x5> 1: R_X86_64_PLT32 foo-0x4
+ +[a-f0-9]+: e9 00 00 00 00 jmp 5 <_start\+0x5> 1: R_X86_64_PC32 foo-0x4 + +[a-f0-9]+: e9 00 00 00 00 jmp 5 <_start\+0x5> 1: R_X86_64_PC32 foo-0x4
#pass #pass
diff --git a/gas/testsuite/gas/i386/x86-64-nop-4.d b/gas/testsuite/gas/i386/x86-64-nop-4.d Index: binutils-2.37/gas/testsuite/gas/i386/x86-64-nop-4.d
index 2da858db994..e390628b335 100644 ===================================================================
--- a/gas/testsuite/gas/i386/x86-64-nop-4.d --- binutils-2.37.orig/gas/testsuite/gas/i386/x86-64-nop-4.d
+++ b/gas/testsuite/gas/i386/x86-64-nop-4.d +++ binutils-2.37/gas/testsuite/gas/i386/x86-64-nop-4.d
@@ -21,5 +21,5 @@ Disassembly of section .altinstr_replacement: @@ -21,5 +21,5 @@ Disassembly of section .altinstr_replace
+[a-f0-9]+: 89 c0 mov %eax,%eax +[a-f0-9]+: 89 c0 mov %eax,%eax
+[a-f0-9]+: 89 c0 mov %eax,%eax +[a-f0-9]+: 89 c0 mov %eax,%eax
+[a-f0-9]+: 89 c0 mov %eax,%eax +[a-f0-9]+: 89 c0 mov %eax,%eax
- +[a-f0-9]+: e9 00 00 00 00 jmp b <_start\+0xb> 7: R_X86_64_PLT32 foo-0x4 - +[a-f0-9]+: e9 00 00 00 00 jmp b <_start\+0xb> 7: R_X86_64_PLT32 foo-0x4
+ +[a-f0-9]+: e9 00 00 00 00 jmp b <_start\+0xb> 7: R_X86_64_PC32 foo-0x4 + +[a-f0-9]+: e9 00 00 00 00 jmp b <_start\+0xb> 7: R_X86_64_PC32 foo-0x4
#pass #pass
diff --git a/gas/testsuite/gas/i386/x86-64-nop-5.d b/gas/testsuite/gas/i386/x86-64-nop-5.d Index: binutils-2.37/gas/testsuite/gas/i386/x86-64-nop-5.d
index d5c84c1edf8..69820d54de8 100644 ===================================================================
--- a/gas/testsuite/gas/i386/x86-64-nop-5.d --- binutils-2.37.orig/gas/testsuite/gas/i386/x86-64-nop-5.d
+++ b/gas/testsuite/gas/i386/x86-64-nop-5.d +++ binutils-2.37/gas/testsuite/gas/i386/x86-64-nop-5.d
@@ -24,5 +24,5 @@ Disassembly of section .altinstr_replacement: @@ -24,5 +24,5 @@ Disassembly of section .altinstr_replace
+[a-f0-9]+: 89 c0 mov %eax,%eax +[a-f0-9]+: 89 c0 mov %eax,%eax
+[a-f0-9]+: 89 c0 mov %eax,%eax +[a-f0-9]+: 89 c0 mov %eax,%eax
+[a-f0-9]+: 89 c0 mov %eax,%eax +[a-f0-9]+: 89 c0 mov %eax,%eax
- +[a-f0-9]+: e9 00 00 00 00 jmp d <_start\+0xd> 9: R_X86_64_PLT32 foo-0x4 - +[a-f0-9]+: e9 00 00 00 00 jmp d <_start\+0xd> 9: R_X86_64_PLT32 foo-0x4
+ +[a-f0-9]+: e9 00 00 00 00 jmp d <_start\+0xd> 9: R_X86_64_PC32 foo-0x4 + +[a-f0-9]+: e9 00 00 00 00 jmp d <_start\+0xd> 9: R_X86_64_PC32 foo-0x4
#pass #pass
diff --git a/gas/testsuite/gas/i386/x86-64-relax-2.d b/gas/testsuite/gas/i386/x86-64-relax-2.d Index: binutils-2.37/gas/testsuite/gas/i386/x86-64-relax-2.d
index fba47c14850..0949ab23907 100644 ===================================================================
--- a/gas/testsuite/gas/i386/x86-64-relax-2.d --- binutils-2.37.orig/gas/testsuite/gas/i386/x86-64-relax-2.d
+++ b/gas/testsuite/gas/i386/x86-64-relax-2.d +++ binutils-2.37/gas/testsuite/gas/i386/x86-64-relax-2.d
@@ -11,12 +11,12 @@ Disassembly of section .text: @@ -11,12 +11,12 @@ Disassembly of section .text:
0+ <foo>: 0+ <foo>:
[ ]*[a-f0-9]+: eb 24 jmp 26 <local> [ ]*[a-f0-9]+: eb 24 jmp 26 <local>
@ -407,10 +407,10 @@ index fba47c14850..0949ab23907 100644
0+22 <hidden_def>: 0+22 <hidden_def>:
[ ]*[a-f0-9]+: c3 ret * [ ]*[a-f0-9]+: c3 ret *
diff --git a/gas/testsuite/gas/i386/x86-64-relax-3.d b/gas/testsuite/gas/i386/x86-64-relax-3.d Index: binutils-2.37/gas/testsuite/gas/i386/x86-64-relax-3.d
index 01df9ef340e..d16e6a55395 100644 ===================================================================
--- a/gas/testsuite/gas/i386/x86-64-relax-3.d --- binutils-2.37.orig/gas/testsuite/gas/i386/x86-64-relax-3.d
+++ b/gas/testsuite/gas/i386/x86-64-relax-3.d +++ binutils-2.37/gas/testsuite/gas/i386/x86-64-relax-3.d
@@ -12,10 +12,10 @@ Disassembly of section .text: @@ -12,10 +12,10 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: eb 1b jmp 1f <hidden_def> [ ]*[a-f0-9]+: eb 1b jmp 1f <hidden_def>
[ ]*[a-f0-9]+: eb 1b jmp 21 <global_def> [ ]*[a-f0-9]+: eb 1b jmp 21 <global_def>
@ -426,37 +426,34 @@ index 01df9ef340e..d16e6a55395 100644
0+1f <hidden_def>: 0+1f <hidden_def>:
[ ]*[a-f0-9]+: c3 ret * [ ]*[a-f0-9]+: c3 ret *
diff --git a/ld/testsuite/ld-x86-64/mpx1c.rd b/ld/testsuite/ld-x86-64/mpx1c.rd Index: binutils-2.37/ld/testsuite/ld-x86-64/mpx1c.rd
index d66524c8834..d3b292cbdc1 100644 ===================================================================
--- a/ld/testsuite/ld-x86-64/mpx1c.rd --- binutils-2.37.orig/ld/testsuite/ld-x86-64/mpx1c.rd
+++ b/ld/testsuite/ld-x86-64/mpx1c.rd +++ binutils-2.37/ld/testsuite/ld-x86-64/mpx1c.rd
@@ -1,3 +1,3 @@ @@ -1,3 +1,3 @@
#... #...
-[0-9a-f ]+R_X86_64_PLT32 +0+ +.* -[0-9a-f ]+R_X86_64_PLT32 +0+ +.*
+[0-9a-f ]+R_X86_64_PC32 +0+ +.* +[0-9a-f ]+R_X86_64_PC32 +0+ +.*
#... #...
diff --git a/ld/testsuite/ld-x86-64/pr22791-1.err b/ld/testsuite/ld-x86-64/pr22791-1.err Index: binutils-2.37/ld/testsuite/ld-x86-64/pr22791-1.err
deleted file mode 100644 ===================================================================
index 8c5565992e7..00000000000 --- binutils-2.37.orig/ld/testsuite/ld-x86-64/pr22791-1.err
--- a/ld/testsuite/ld-x86-64/pr22791-1.err
+++ /dev/null +++ /dev/null
@@ -1,2 +0,0 @@ @@ -1,2 +0,0 @@
-.*relocation R_X86_64_PC32 against symbol `foo' can not be used when making a PIE object; recompile with -fPIE -.*relocation R_X86_64_PC32 against symbol `foo' can not be used when making a PIE object; recompile with -fPIE
-#... -#...
diff --git a/ld/testsuite/ld-x86-64/pr22791-1a.c b/ld/testsuite/ld-x86-64/pr22791-1a.c Index: binutils-2.37/ld/testsuite/ld-x86-64/pr22791-1a.c
deleted file mode 100644 ===================================================================
index cd0130cacdf..00000000000 --- binutils-2.37.orig/ld/testsuite/ld-x86-64/pr22791-1a.c
--- a/ld/testsuite/ld-x86-64/pr22791-1a.c
+++ /dev/null +++ /dev/null
@@ -1,4 +0,0 @@ @@ -1,4 +0,0 @@
-void -void
-foo (void) -foo (void)
-{ -{
-} -}
diff --git a/ld/testsuite/ld-x86-64/pr22791-1b.s b/ld/testsuite/ld-x86-64/pr22791-1b.s Index: binutils-2.37/ld/testsuite/ld-x86-64/pr22791-1b.s
deleted file mode 100644 ===================================================================
index 9751db49aa5..00000000000 --- binutils-2.37.orig/ld/testsuite/ld-x86-64/pr22791-1b.s
--- a/ld/testsuite/ld-x86-64/pr22791-1b.s
+++ /dev/null +++ /dev/null
@@ -1,6 +0,0 @@ @@ -1,6 +0,0 @@
- .text - .text
@ -465,10 +462,9 @@ index 9751db49aa5..00000000000
-main: -main:
- movl foo(%rip), %eax - movl foo(%rip), %eax
- .size main, .-main - .size main, .-main
diff --git a/ld/testsuite/ld-x86-64/pr22791-2.rd b/ld/testsuite/ld-x86-64/pr22791-2.rd Index: binutils-2.37/ld/testsuite/ld-x86-64/pr22791-2.rd
deleted file mode 100644 ===================================================================
index 70deb30d84d..00000000000 --- binutils-2.37.orig/ld/testsuite/ld-x86-64/pr22791-2.rd
--- a/ld/testsuite/ld-x86-64/pr22791-2.rd
+++ /dev/null +++ /dev/null
@@ -1,6 +0,0 @@ @@ -1,6 +0,0 @@
-#failif -#failif
@ -477,10 +473,9 @@ index 70deb30d84d..00000000000
-#... -#...
-[0-9a-f ]+R_X86_64_NONE.* -[0-9a-f ]+R_X86_64_NONE.*
-#... -#...
diff --git a/ld/testsuite/ld-x86-64/pr22791-2a.s b/ld/testsuite/ld-x86-64/pr22791-2a.s Index: binutils-2.37/ld/testsuite/ld-x86-64/pr22791-2a.s
deleted file mode 100644 ===================================================================
index 0a855024d74..00000000000 --- binutils-2.37.orig/ld/testsuite/ld-x86-64/pr22791-2a.s
--- a/ld/testsuite/ld-x86-64/pr22791-2a.s
+++ /dev/null +++ /dev/null
@@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
- .text - .text
@ -491,10 +486,9 @@ index 0a855024d74..00000000000
- jmp bar - jmp bar
- .size foo, .-foo - .size foo, .-foo
- .section .note.GNU-stack,"",@progbits - .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/pr22791-2b.c b/ld/testsuite/ld-x86-64/pr22791-2b.c Index: binutils-2.37/ld/testsuite/ld-x86-64/pr22791-2b.c
deleted file mode 100644 ===================================================================
index 79ef27c0857..00000000000 --- binutils-2.37.orig/ld/testsuite/ld-x86-64/pr22791-2b.c
--- a/ld/testsuite/ld-x86-64/pr22791-2b.c
+++ /dev/null +++ /dev/null
@@ -1,7 +0,0 @@ @@ -1,7 +0,0 @@
-#include <stdio.h> -#include <stdio.h>
@ -504,10 +498,9 @@ index 79ef27c0857..00000000000
-{ -{
- puts ("PASS"); - puts ("PASS");
-} -}
diff --git a/ld/testsuite/ld-x86-64/pr22791-2c.s b/ld/testsuite/ld-x86-64/pr22791-2c.s Index: binutils-2.37/ld/testsuite/ld-x86-64/pr22791-2c.s
deleted file mode 100644 ===================================================================
index 1460d1b8288..00000000000 --- binutils-2.37.orig/ld/testsuite/ld-x86-64/pr22791-2c.s
--- a/ld/testsuite/ld-x86-64/pr22791-2c.s
+++ /dev/null +++ /dev/null
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
- .text - .text
@ -522,10 +515,10 @@ index 1460d1b8288..00000000000
- ret - ret
- .size main, .-main - .size main, .-main
- .section .note.GNU-stack,"",@progbits - .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/pr22842b.S b/ld/testsuite/ld-x86-64/pr22842b.S Index: binutils-2.37/ld/testsuite/ld-x86-64/pr22842b.S
index f0659cd901e..b9dd81345b7 100644 ===================================================================
--- a/ld/testsuite/ld-x86-64/pr22842b.S --- binutils-2.37.orig/ld/testsuite/ld-x86-64/pr22842b.S
+++ b/ld/testsuite/ld-x86-64/pr22842b.S +++ binutils-2.37/ld/testsuite/ld-x86-64/pr22842b.S
@@ -7,7 +7,7 @@ main: @@ -7,7 +7,7 @@ main:
leaq bar(%rip), %rdi leaq bar(%rip), %rdi
addq %rax, %rdi addq %rax, %rdi
@ -535,15 +528,14 @@ index f0659cd901e..b9dd81345b7 100644
xorl %eax, %eax xorl %eax, %eax
popq %rcx popq %rcx
retq retq
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp Index: binutils-2.37/ld/testsuite/ld-x86-64/x86-64.exp
index 17fd10ee121..b4ae52ab376 100644 ===================================================================
--- a/ld/testsuite/ld-x86-64/x86-64.exp --- binutils-2.37.orig/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp +++ binutils-2.37/ld/testsuite/ld-x86-64/x86-64.exp
@@ -1264,44 +1264,6 @@ if { [isnative] && [check_compiler_available] } { @@ -1272,44 +1272,6 @@ if { [isnative] && [check_compiler_avail
{readelf -lW pr22393-3b.rd}} \
"pr22393-3-static" \ "pr22393-3-static" \
] \ ] \
- [list \ [list \
- "Build pr22791-1.so" \ - "Build pr22791-1.so" \
- "-shared" \ - "-shared" \
- "-fPIC -Wa,-mx86-used-note=yes" \ - "-fPIC -Wa,-mx86-used-note=yes" \
@ -581,14 +573,14 @@ index 17fd10ee121..b4ae52ab376 100644
- {{readelf -drW pr22791-2.rd}} \ - {{readelf -drW pr22791-2.rd}} \
- "pr22791-2" \ - "pr22791-2" \
- ] \ - ] \
[list \ - [list \
"Build pr22842.so" \ "Build pr22842.so" \
"-shared" \ "-shared" \
@@ -1703,15 +1665,6 @@ if { [isnative] && [check_compiler_available] } { "-fPIC -Wa,-mx86-used-note=yes" \
"pr22393-3-static" \ @@ -1719,15 +1681,6 @@ if { [isnative] && [check_compiler_avail
"pass.out" \ "pass.out" \
] \ ] \
- [list \ [list \
- "Run pr22791-2" \ - "Run pr22791-2" \
- "-pie -Wl,--no-as-needed tmpdir/pr22791-2.so" \ - "-pie -Wl,--no-as-needed tmpdir/pr22791-2.so" \
- "-Wa,-mx86-used-note=yes" \ - "-Wa,-mx86-used-note=yes" \
@ -597,6 +589,32 @@ index 17fd10ee121..b4ae52ab376 100644
- "pass.out" \ - "pass.out" \
- "$NOPIE_CFLAGS" \ - "$NOPIE_CFLAGS" \
- ] \ - ] \
[list \ - [list \
"Run pr22842" \ "Run pr22842" \
"-pie -Wl,--no-as-needed tmpdir/pr22842.so" \ "-pie -Wl,--no-as-needed tmpdir/pr22842.so" \
"-Wa,-mx86-used-note=yes" \
Index: binutils-2.37/gas/testsuite/gas/i386/x86-64-branch-3.d
===================================================================
--- binutils-2.37.orig/gas/testsuite/gas/i386/x86-64-branch-3.d
+++ binutils-2.37/gas/testsuite/gas/i386/x86-64-branch-3.d
@@ -8,15 +8,15 @@
Disassembly of section .text:
0+ <bar-0xd>:
-[ ]*[a-f0-9]+: 66 e9 00 00 00 00 data16 jmp 6 <bar-0x7> 2: R_X86_64_PLT32 foo-0x4
-[ ]*[a-f0-9]+: 66 48 e9 00 00 00 00 data16 rex\.W jmp d <bar> 9: R_X86_64_PLT32 foo-0x4
+[ ]*[a-f0-9]+: 66 e9 00 00 00 00 data16 jmp 6 <bar-0x7> 2: R_X86_64_PC32 foo-0x4
+[ ]*[a-f0-9]+: 66 48 e9 00 00 00 00 data16 rex\.W jmp d <bar> 9: R_X86_64_PC32 foo-0x4
0+d <bar>:
[ ]*[a-f0-9]+: 89 c3 mov %eax,%ebx
-[ ]*[a-f0-9]+: 66 e8 00 00 00 00 data16 call 15 <bar\+0x8> 11: R_X86_64_PLT32 foo-0x4
-[ ]*[a-f0-9]+: 66 48 e8 00 00 00 00 data16 rex\.W call 1c <bar\+0xf> 18: R_X86_64_PLT32 foo-0x4
+[ ]*[a-f0-9]+: 66 e8 00 00 00 00 data16 call 15 <bar\+0x8> 11: R_X86_64_PC32 foo-0x4
+[ ]*[a-f0-9]+: 66 48 e8 00 00 00 00 data16 rex\.W call 1c <bar\+0xf> 18: R_X86_64_PC32 foo-0x4
[ ]*[a-f0-9]+: 66 c7 f8 00 00 xbeginw 21 <bar\+0x14> 1f: R_X86_64_PC16 foo-0x2
-[ ]*[a-f0-9]+: 66 48 c7 f8 00 00 00 00 data16 rex\.W xbegin 29 <bar\+0x1c> 25: R_X86_64_PLT32 foo-0x4
+[ ]*[a-f0-9]+: 66 48 c7 f8 00 00 00 00 data16 rex\.W xbegin 29 <bar\+0x1c> 25: R_X86_64_PC32 foo-0x4
[ ]*[a-f0-9]+: 48 ff 18 lcallq \*\(%rax\)
[ ]*[a-f0-9]+: 48 ff 29 ljmpq \*\(%rcx\)
#pass

View File

@ -56,7 +56,7 @@ index 2e27cf48a8..7162d0cf91 100644
asection *sinterp; asection *sinterp;
bfd *abfd; bfd *abfd;
struct bfd_link_hash_entry *ehdr_start = NULL; struct bfd_link_hash_entry *ehdr_start = NULL;
@@ -1572,7 +1597,65 @@ ldelf_before_allocation (char *audit, char *depaudit, @@ -1608,7 +1633,67 @@ ldelf_before_allocation (char *audit, char *depaudit,
by dynamic linking. */ by dynamic linking. */
rpath = command_line.rpath; rpath = command_line.rpath;
if (rpath == NULL) if (rpath == NULL)
@ -73,12 +73,14 @@ index 2e27cf48a8..7162d0cf91 100644
+ fseek (ldso, 0, SEEK_END); + fseek (ldso, 0, SEEK_END);
+ endcur = ftell (ldso); + endcur = ftell (ldso);
+ fseek (ldso, 0, SEEK_SET); + fseek (ldso, 0, SEEK_SET);
+ dirs = xmalloc (endcur); + dirs = xmalloc (endcur + 1);
+ if (fread (dirs, 1, endcur, ldso) != (size_t) endcur) + if (fread (dirs, 1, endcur, ldso) != (size_t) endcur)
+ { + {
+ free (dirs); + free (dirs);
+ dirs = NULL; + dirs = NULL;
+ } + }
+ else
+ dirs[endcur] = '\0';
+ } + }
+ if (dirs) + if (dirs)
+ { + {

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -36,6 +36,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -101,12 +110,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -118,7 +132,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -192,6 +210,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -202,6 +223,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -272,6 +309,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -284,6 +322,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -351,6 +399,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -369,7 +418,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -388,12 +437,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -465,35 +526,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -512,7 +595,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -531,6 +620,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}

View File

@ -1,3 +1,44 @@
-------------------------------------------------------------------
Wed Nov 3 08:23:52 UTC 2021 - Martin Liška <mliska@suse.cz>
- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-------------------------------------------------------------------
Tue Nov 2 15:57:53 UTC 2021 - Michael Matz <matz@suse.com>
- Fix empty man-pages from broken release tarball [PR28144].
-------------------------------------------------------------------
Mon Nov 1 09:34:38 UTC 2021 - Martin Liška <mliska@suse.cz>
- Update binutils-skip-rpaths.patch with contained a memory corruption
(boo#1191473).
-------------------------------------------------------------------
Fri Oct 8 14:11:44 UTC 2021 - Michael Matz <matz@suse.com>
- Configure with --disable-x86-used-note on old code streams.
- Disable libalternatives temporarily for build cycle reasons.
- make TARGET-bfd=headers again, we patch bfd-in.h
- This state submitted to SLE12 and SLE15 code streams for annual
toolchain update. [jsc#PM-2767, jsc#SLE-21561, jsc#SLE-19618]
- Bump binutils-2.37-branch.diff to 66d5c7003, to include fixes for
PR28422, PR28192, PR28391. Also adds some s390x arch14
instructions [jsc#SLE-18637].
-------------------------------------------------------------------
Fri Sep 10 23:16:12 CEST 2021 - Stefan Schubert schubi@suse.de
- Using libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Wed Sep 8 15:09:58 UTC 2021 - Michael Matz <matz@suse.com>
- Adjust for testsuite fails on older products that configure
binutils in different ways, adds binutils-compat-old-behaviour.diff
and adjusts binutils-revert-nm-symversion.diff and
binutils-revert-plt32-in-branches.diff.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz> Tue Aug 3 13:36:19 UTC 2021 - Martin Liška <mliska@suse.cz>

View File

@ -39,6 +39,15 @@ BuildRequires: zlib-devel
%endif %endif
Version: 2.37 Version: 2.37
Release: 0 Release: 0
# disable libalternatives for now until it's changed to not
# introduce cmake/cunit-tests into the bootstrap cycle
%if 0 && 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
# #
# RUN_TESTS # RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?) %define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
@ -104,12 +113,17 @@ Patch38: binutils-fix-invalid-op-errata.diff
Patch39: binutils-revert-nm-symversion.diff Patch39: binutils-revert-nm-symversion.diff
Patch40: binutils-fix-abierrormsg.diff Patch40: binutils-fix-abierrormsg.diff
Patch41: binutils-fix-relax.diff Patch41: binutils-fix-relax.diff
Patch42: binutils-compat-old-behaviour.diff
Patch100: add-ulp-section.diff Patch100: add-ulp-section.diff
Patch90: cross-avr-nesc-as.patch Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch Patch92: cross-avr-omit_section_dynsym.patch
Patch93: cross-avr-size.patch Patch93: cross-avr-size.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -121,7 +135,11 @@ Summary: The gold linker
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
%if %{with libalternatives}
Requires: alts
%else
PreReq: update-alternatives PreReq: update-alternatives
%endif
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc %define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
%endif %endif
@ -195,6 +213,9 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch39 -p1 %patch39 -p1
%patch40 -p1 %patch40 -p1
%patch41 -p1 %patch41 -p1
%if %{suse_version} < 1550
%patch42 -p1
%endif
%patch100 -p1 %patch100 -p1
%if "%{TARGET}" == "avr" %if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
@ -205,6 +226,22 @@ cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
# #
# test_vanilla # test_vanilla
%endif %endif
# in parallel builds, when the flex or bison inputs are patched (possibly
# in the ...-branch.diff) it might happen that the dependency tracking
# of automake is confused and uses the old .c files from srcdir/ld/ while
# also generating the new .c files in builddir/ld leading to trouble.
# I haven't found the right entries to ensure this doesn't happen, so
# simply remove the intermediates
rm -f ld/ldlex.c
rm -f ld/ldgram.c ld/ldgram.h
# The 2.37 released tarball contains wrongly pre-generated (empty) man pages
# so we remove those here as well. Consider removing for later releases.
rm -f binutils/doc/*.1
rm -f binutils/doc/cxxfilt.man
rm -f gprof/*.1
rm -f gas/doc/*.1
rm -f ld/*.1
%build %build
%define _lto_cflags %{nil} %define _lto_cflags %{nil}
@ -275,6 +312,7 @@ cd build-dir
--enable-compressed-debug-sections=gas \ --enable-compressed-debug-sections=gas \
%endif %endif
%if %{suse_version} < 1550 %if %{suse_version} < 1550
--disable-x86-used-note \
--disable-separate-code \ --disable-separate-code \
%endif %endif
--enable-new-dtags \ --enable-new-dtags \
@ -287,6 +325,16 @@ cd build-dir
%endif %endif
--enable-obsolete --enable-obsolete
# we patch headers (bfd-in.h) that are input to other headers
# which are generated only with --enable-maintainer-mode (which we
# don't do) or explicitely by make headers, so do this:
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# the above interacts with --enable-pgo-build=lto because all-bfd doesn't
# have the PGO handling, hence it's config.cache files are wrong
# remove all of those for reconfigure
rm */config.cache
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
%else %else
@ -354,6 +402,7 @@ EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif %endif
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers make %{?_smp_mflags} all-bfd TARGET-bfd=headers
rm */config.cache
# force reconfiguring # force reconfiguring
rm bfd/Makefile rm bfd/Makefile
make %{?_smp_mflags} make %{?_smp_mflags}
@ -372,7 +421,7 @@ cd build-dir
%if 0%{?cross:1} %if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling} make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" CFLAGS_FOR_TARGET="-O2 -g" CXXFLAGS_FOR_TARGET="-O2 -g" || %{make_check_handling}
%else %else
make -k check CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="$RPM_OPT_FLAGS" || %{make_check_handling} make -k check CFLAGS="-g $RPM_OPT_FLAGS" CXXFLAGS="-g $RPM_OPT_FLAGS" CFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" CXXFLAGS_FOR_TARGET="-g $RPM_OPT_FLAGS" || %{make_check_handling}
%endif %endif
%install %install
@ -391,12 +440,24 @@ if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
else else
rm -f "%buildroot/%_bindir/ld"; rm -f "%buildroot/%_bindir/ld";
fi fi
%if ! 0%{with libalternatives}
mkdir -p "%buildroot/%_sysconfdir/alternatives"; mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy # Keep older versions of brp-symlink happy
%if %{suse_version} < 1310 %if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld" ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif %endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld"; ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
%else
ln -s %{_bindir}/alts "%buildroot/%_bindir/ld";
mkdir -p %{buildroot}%{_datadir}/libalternatives/ld;
cat > %{buildroot}%{_datadir}/libalternatives/ld/1.conf <<EOF
binary=%{_bindir}/ld.gold
EOF
cat > %{buildroot}%{_datadir}/libalternatives/ld/2.conf <<EOF
binary=%{_bindir}/ld.bfd
EOF
%endif
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
@ -468,35 +529,57 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
/sbin/ldconfig /sbin/ldconfig
%if ! %{with libalternatives}
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.bfd" 2 "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%endif
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
%post gold %post gold
"%_sbindir/update-alternatives" --install \ "%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1 "%_bindir/ld" ld "%_bindir/ld.gold" 1
%endif
%post -n libctf0 -p /sbin/ldconfig %post -n libctf0 -p /sbin/ldconfig
%post -n libctf-nobfd0 -p /sbin/ldconfig %post -n libctf-nobfd0 -p /sbin/ldconfig
%if %{with libalternatives}
%pre
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;
%pre gold
# removing old update-alternatives entries
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;
%endif
%preun %preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
%if ! %{with libalternatives}
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi; fi;
%endif
%if ! %{with libalternatives}
%preun gold %preun gold
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold"; "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi; fi;
%endif
%postun -n libctf0 -p /sbin/ldconfig %postun -n libctf0 -p /sbin/ldconfig
%postun -n libctf-nobfd0 -p /sbin/ldconfig %postun -n libctf-nobfd0 -p /sbin/ldconfig
@ -515,7 +598,13 @@ fi;
%dir %{_libdir}/bfd-plugins %dir %{_libdir}/bfd-plugins
%{_libdir}/bfd-plugins/libdep.so %{_libdir}/bfd-plugins/libdep.so
%{_bindir}/* %{_bindir}/*
%if ! 0%{with libalternatives}
%ghost %_sysconfdir/alternatives/ld %ghost %_sysconfdir/alternatives/ld
%else
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/2.conf
%endif
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold
@ -534,6 +623,11 @@ fi;
%doc gold/NEWS gold/README %doc gold/NEWS gold/README
%{_bindir}/gold %{_bindir}/gold
%{_bindir}/ld.gold %{_bindir}/ld.gold
%if %{with libalternatives}
%dir %{_datadir}/libalternatives
%dir %{_datadir}/libalternatives/ld
%{_datadir}/libalternatives/ld/1.conf
%endif
%endif %endif
%if 0%{!?cross:1} %if 0%{!?cross:1}