diff --git a/README.First-for.SUSE.packagers b/README.First-for.SUSE.packagers
deleted file mode 100644
index affa1e7..0000000
--- a/README.First-for.SUSE.packagers
+++ /dev/null
@@ -1,14 +0,0 @@
-IMPORTANT: Please change binutils.spec and then run ./pre_checkin.sh!
-Do not change cross-*.spec directly!
-
-The spec file triggers by it's %name if it compiles the native or the
-cross version and pre_checkin.sh (called automatically by checkin too)
-copies over the binutils.spec and changes the Name field, so you shouldn't
-need to worry too much about the cross packages
-
-Updating to some branch head:
-> cvs -z 9 -d :pserver:anoncvs@stravinsky:/cvs/src export -r binutils-2_23-branch binutils
-
-Thanks,
-Stephan Kulow
-
diff --git a/_multibuild b/_multibuild
new file mode 100644
index 0000000..e10a7b3
--- /dev/null
+++ b/_multibuild
@@ -0,0 +1,25 @@
+
+ aarch64
+ hppa
+ hppa64
+ arm
+ i386
+ x86_64
+ s390
+ s390x
+ ppc
+ ppc64
+ ppc64le
+ ia64
+ sparc
+ sparc64
+ spu
+ avr
+ pru
+ mips
+ m68k
+ epiphany
+ rx
+ riscv64
+ xtensa
+
diff --git a/binutils.changes b/binutils.changes
index 065190f..a3b9b9d 100644
--- a/binutils.changes
+++ b/binutils.changes
@@ -1,3 +1,24 @@
+-------------------------------------------------------------------
+Wed May 4 12:08:27 UTC 2022 - Martin Liška
+
+- Renumber Sources.
+
+-------------------------------------------------------------------
+Wed May 4 10:22:26 UTC 2022 - Martin Liška
+
+- Fix ExcludeArch for ppc.
+
+-------------------------------------------------------------------
+Wed May 4 07:10:59 UTC 2022 - Martin Liška
+
+- Make multibuild utilize only the main binutils.spec file.
+- Remove not needed README.First-for.SUSE.packagers, pre_checkin.sh.
+
+-------------------------------------------------------------------
+Mon May 2 10:15:26 UTC 2022 - Martin Liška
+
+- Start using _multibuild for cross binutils.
+
-------------------------------------------------------------------
Mon Apr 11 13:49:19 UTC 2022 - Michael Matz
diff --git a/binutils.spec b/binutils.spec
index e82faeb..6141f79 100644
--- a/binutils.spec
+++ b/binutils.spec
@@ -16,7 +16,33 @@
#
+%define flavor @BUILD_FLAVOR@%{nil}
+
+%if "%{flavor}" != ""
+%define cross 1
+%define targetarch %(echo %flavor | sed -e 's/i.86/i586/;s/ppc/powerpc/')
+%define TARGET %targetarch
+
+# Spec parsing does not support execution of external command,
+# that's why we use the if-else chain.
+%if "%{flavor}" == "i386"
+ExcludeArch: %ix86
+%else
+%if "%{flavor}" == "arm"
+ExcludeArch: %arm
+%else
+ExcludeArch: %{flavor}
+%endif
+%endif
+
+%endif
+
+%if "%{flavor}" == ""
Name: binutils
+%else
+Name: cross-%{flavor}-binutils
+%endif
+
BuildRequires: bc
BuildRequires: bison
BuildRequires: dejagnu
@@ -88,11 +114,9 @@ Summary: GNU Binutils
License: GFDL-1.3-only AND GPL-3.0-or-later
Group: Development/Tools/Building
Source: binutils-%{version}.tar.bz2
-Source4: binutils-%{version}.tar.bz2.sig
-Source5: binutils.keyring
-Source1: pre_checkin.sh
-Source2: README.First-for.SUSE.packagers
-Source3: baselibs.conf
+Source2: binutils-%{version}.tar.bz2.sig
+Source3: binutils.keyring
+Source4: baselibs.conf
Patch1: binutils-2.38-branch.diff.gz
Patch3: binutils-skip-rpaths.patch
Patch4: s390-biarch.diff
diff --git a/cross-aarch64-binutils.changes b/cross-aarch64-binutils.changes
deleted file mode 100644
index 065190f..0000000
--- a/cross-aarch64-binutils.changes
+++ /dev/null
@@ -1,4121 +0,0 @@
--------------------------------------------------------------------
-Mon Apr 11 13:49:19 UTC 2022 - Michael Matz
-
-- Update binutils-2.38-branch.diff.gz (to c210342d7f5) to include
- recognition of 'z16' name for 'arch14' on s390. [bsc#1198237]
-
--------------------------------------------------------------------
-Mon Mar 21 16:40:26 UTC 2022 - Marcus Meissner
-
-- Add usage of a SUSE_ZNOW environment variable which allows switching
- on "-z now" by default using "export SUSE_ZNOW=1", similar to
- the SUSE_ASNEEDED variable. Adds binutils-znow.patch.
-
--------------------------------------------------------------------
-Thu Mar 10 21:22:20 UTC 2022 - Wolfgang Bauer
-
-- Update binutils-skip-rpaths.patch: add back fix for boo#1191473,
- which got lost in the update to 2.38.
-
--------------------------------------------------------------------
-Fri Mar 4 10:44:39 UTC 2022 - Martin Liška
-
-- Update binutils-2.38-branch.diff.gz in order to include PR28879.
-
--------------------------------------------------------------------
-Tue Mar 1 12:41:27 UTC 2022 - Michael Matz
-
-- From Stefan Brüns :
- * Install symlinks for all target specific tools on
- arm-eabi-none [bsc#1185712]
-
--------------------------------------------------------------------
-Thu Feb 24 09:10:44 UTC 2022 - Martin Liška
-
-- Do not re-generate ld/ldlex.c, ld/ldgram.c, ld/ldgram.h and verify
- that corresponding flex/bison files are not modified by a patch.
-
--------------------------------------------------------------------
-Thu Feb 24 06:55:14 UTC 2022 - Martin Liška
-
-- Use verbose mode for make for cross compilers.
-
--------------------------------------------------------------------
-Wed Feb 23 17:52:15 UTC 2022 - Michael Matz
-
-- Make it build on SLE-11 again.
-
--------------------------------------------------------------------
-Tue Feb 22 09:13:15 UTC 2022 - Martin Liška
-
-- Use verbose mode for make.
-
--------------------------------------------------------------------
-Sat Feb 12 19:13:31 UTC 2022 - Martin Liška
-
-- Update to binutils 2.38:
- * elfedit: Add --output-abiversion option to update ABIVERSION.
- * Add support for the LoongArch instruction set.
- * Tools which display symbols or strings (readelf, strings, nm, objdump)
- have a new command line option which controls how unicode characters are
- handled. By default they are treated as normal for the tool. Using
- --unicode=locale will display them according to the current locale.
- Using --unicode=hex will display them as hex byte values, whilst
- --unicode=escape will display them as escape sequences. In addition
- using --unicode=highlight will display them as unicode escape sequences
- highlighted in red (if supported by the output device).
- * readelf -r dumps RELR relative relocations now.
- * Support for efi-app-aarch64, efi-rtdrv-aarch64 and efi-bsdrv-aarch64 has been
- added to objcopy in order to enable UEFI development using binutils.
- * ar: Add --thin for creating thin archives. -T is a deprecated alias without
- diagnostics. In many ar implementations -T has a different meaning, as
- specified by X/Open System Interface.
- * Add support for AArch64 system registers that were missing in previous
- releases.
- * Add support for the LoongArch instruction set.
- * Add a command-line option, -muse-unaligned-vector-move, for x86 target
- to encode aligned vector move as unaligned vector move.
- * Add support for Cortex-R52+ for Arm.
- * Add support for Cortex-A510, Cortex-A710, Cortex-X2 for AArch64.
- * Add support for Cortex-A710 for Arm.
- * Add support for Scalable Matrix Extension (SME) for AArch64.
- * The --multibyte-handling=[allow|warn|warn-sym-only] option tells the
- assembler what to when it encoutners multibyte characters in the input. The
- default is to allow them. Setting the option to "warn" will generate a
- warning message whenever any multibyte character is encountered. Using the
- option to "warn-sym-only" will make the assembler generate a warning whenever a
- symbol is defined containing multibyte characters. (References to undefined
- symbols will not generate warnings).
- * Outputs of .ds.x directive and .tfloat directive with hex input from
- x86 assembler have been reduced from 12 bytes to 10 bytes to match the
- output of .tfloat directive.
- * Add support for 'armv8.8-a', 'armv9-a', 'armv9.1-a', 'armv9.2-a' and
- 'armv9.3-a' for -march in AArch64 GAS.
- * Add support for 'armv8.7-a', 'armv8.8-a', 'armv9-a', 'armv9.1-a',
- 'armv9.2-a' and 'armv9.3-a' for -march in Arm GAS.
- * Add support for Intel AVX512_FP16 instructions.
- * Add -z pack-relative-relocs/-z no pack-relative-relocs to x86 ELF
- linker to pack relative relocations in the DT_RELR section.
- * Add support for the LoongArch architecture.
- * Add -z indirect-extern-access/-z noindirect-extern-access to x86 ELF
- linker to control canonical function pointers and copy relocation.
- * Add --max-cache-size=SIZE to set the the maximum cache size to SIZE
- bytes.
-- Add binutils-2.38-branch.diff.gz.
-- Removed deletion of man pages as they should be properly packages
- in tarball.
-- Rebased patches: aarch64-common-pagesize.patch, add-ulp-section.diff,
- binutils-bfd_h.patch, binutils-revert-nm-symversion.diff,
- binutils-revert-plt32-in-branches.diff, binutils-skip-rpaths.patch
- and binutils-compat-old-behaviour.diff.
-
--------------------------------------------------------------------
-Fri Feb 4 13:13:20 UTC 2022 - Matwey Kornilov
-
-- Enable PRU architecture for AM335x CPU (Beagle Bone Black board)
-
--------------------------------------------------------------------
-Thu Jan 27 20:36:30 UTC 2022 - Dirk Müller
-
-- use fdupes on datadir
-- remove RPM_BUILD_ROOT usage and other cleanups
-
--------------------------------------------------------------------
-Fri Nov 12 13:20:09 UTC 2021 - Martin Liška
-
-- Rebase binutils-2.37-branch.diff: fixes PR28494.
-
--------------------------------------------------------------------
-Fri Nov 5 16:54:36 UTC 2021 - Michael Matz
-
-- Add binutils-revert-hlasm-insns.diff for compatibility on old
- code stream that expect 'brcl 0,label' to not be disassembled
- as 'jgnop label' on s390x. [bsc#1192267]
-
--------------------------------------------------------------------
-Wed Nov 3 08:23:52 UTC 2021 - Martin Liška
-
-- Rebase binutils-2.37-branch.diff: fixes PR28523 aka boo#1188941.
-
--------------------------------------------------------------------
-Tue Nov 2 15:57:53 UTC 2021 - Michael Matz
-
-- Fix empty man-pages from broken release tarball [PR28144].
-
--------------------------------------------------------------------
-Mon Nov 1 09:34:38 UTC 2021 - Martin Liška
-
-- Update binutils-skip-rpaths.patch with contained a memory corruption
- (boo#1191473).
-
--------------------------------------------------------------------
-Fri Oct 8 14:11:44 UTC 2021 - Michael Matz
-
-- 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
-
-- 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
-
-- Bump binutils-2.37-branch.diff: fixes PR28138.
-
--------------------------------------------------------------------
-Thu Jul 22 17:36:14 UTC 2021 - Martin Liška
-
-- Use LTO & PGO build.
-
--------------------------------------------------------------------
-Thu Jul 22 15:01:27 UTC 2021 - Martin Liška
-
-- Update to binutils 2.37:
- * The GNU Binutils sources now requires a C99 compiler and library to
- build.
- * Support for the arm-symbianelf format has been removed.
- * Support for Realm Management Extension (RME) for AArch64 has been
- added.
- * A new linker option '-z report-relative-reloc' for x86 ELF targets
- has been added to report dynamic relative relocations.
- * A new linker option '-z start-stop-gc' has been added to disable
- special treatment of __start_*/__stop_* references when
- --gc-sections.
- * A new linker options '-Bno-symbolic' has been added which will
- cancel the '-Bsymbolic' and '-Bsymbolic-functions' options.
- * The readelf tool has a new command line option which can be used to
- specify how the numeric values of symbols are reported.
- --sym-base=0|8|10|16 tells readelf to display the values in base 8,
- base 10 or base 16. A sym base of 0 represents the default action
- of displaying values under 10000 in base 10 and values above that in
- base 16.
- * A new format has been added to the nm program. Specifying
- '--format=just-symbols' (or just using -j) will tell the program to
- only display symbol names and nothing else.
- * A new command line option '--keep-section-symbols' has been added to
- objcopy and strip. This stops the removal of unused section symbols
- when the file is copied. Removing these symbols saves space, but
- sometimes they are needed by other tools.
- * The '--weaken', '--weaken-symbol' and '--weaken-symbols' options
- supported by objcopy now make undefined symbols weak on targets that
- support weak symbols.
- * Readelf and objdump can now display and use the contents of .debug_sup
- sections.
- * Readelf and objdump will now follow links to separate debug info
- files by default. This behaviour can be stopped via the use of the
- new '-wN' or '--debug-dump=no-follow-links' options for readelf and
- the '-WN' or '--dwarf=no-follow-links' options for objdump. Also
- the old behaviour can be restored by the use of the
- '--enable-follow-debug-links=no' configure time option.
-
- The semantics of the =follow-links option have also been slightly
- changed. When enabled, the option allows for the loading of symbol
- tables and string tables from the separate files which can be used
- to enhance the information displayed when dumping other sections,
- but it does not automatically imply that information from the
- separate files should be displayed.
-
- If other debug section display options are also enabled (eg
- '--debug-dump=info') then the contents of matching sections in both
- the main file and the separate debuginfo file *will* be displayed.
- This is because in most cases the debug section will only be present
- in one of the files.
-
- If however non-debug section display options are enabled (eg
- '--sections') then the contents of matching parts of the separate
- debuginfo file will *not* be displayed. This is because in most
- cases the user probably only wanted to load the symbol information
- from the separate debuginfo file. In order to change this behaviour
- a new command line option --process-links can be used. This will
- allow di0pslay options to applied to both the main file and any
- separate debuginfo files.
- * Nm has a new command line option: '--quiet'. This suppresses "no
- symbols" diagnostic.
-- Includes fixes for these CVEs:
- bnc#1181452 aka CVE-2021-20197 aka PR26945
- bnc#1183511 aka CVE-2021-20284 aka PR26931
- bnc#1184519 aka CVE-2021-20294 aka PR26929
- bnc#1184620 aka CVE-2021-3487 aka PR26946
- bnc#1184794 aka CVE-2020-35448 aka PR26574
-- Also fixes:
- bsc#1183909 - slow performance of stripping some binaries
-- Rebased patches: binutils-build-as-needed.diff, binutils-fix-abierrormsg.diff,
- binutils-fix-invalid-op-errata.diff, binutils-fix-relax.diff,
- binutils-revert-nm-symversion.diff, binutils-revert-plt32-in-branches.diff
-- Removed patches (are in upstream): ppc-ensure-undef-dynamic-weak-undefined.patch and
- ppc-use-local-plt.patch.
-- Add binutils-2.37-branch.diff.gz.
-
--------------------------------------------------------------------
-Fri May 7 15:34:22 UTC 2021 - Andreas Schwab
-
-- ppc-ensure-undef-dynamic-weak-undefined.patch: PPC: ensure_undef_dynamic
- on weak undef only in plt
-- ppc-use-local-plt.patch: PowerPC use_local_plt (prerequisite for above
- patch)
-
--------------------------------------------------------------------
-Fri Mar 26 10:06:58 UTC 2021 - Martin Liška
-
-- Update 2.36 branch diff which fixes PR27587.
-
--------------------------------------------------------------------
-Wed Mar 3 12:53:27 UTC 2021 - Martin Liška
-
-- Do not run make TARGET-bfd=headers separately.
-
--------------------------------------------------------------------
-Mon Mar 1 09:01:59 UTC 2021 - Martin Liška
-
-- Bump 2.36 branch diff (includes fix for PR27441 aka bsc#1182252).
-
--------------------------------------------------------------------
-Thu Feb 4 08:40:53 UTC 2021 - Martin Liška
-
-- Bump 2.36 branch diff.
-
--------------------------------------------------------------------
-Wed Feb 3 08:39:37 UTC 2021 - Martin Liška
-
-- Update 2.36 branch diff which should fix PR27311 completely.
- It fixes also PR27284.
-- Remove temporary fix 0001-PR27311-ld.bfd-symbol-from-plugin-undefined-referenc.patch.
-
--------------------------------------------------------------------
-Tue Feb 2 13:07:22 UTC 2021 - Martin Liška
-
-- Add temporary upstream fix for PR27311
- 0001-PR27311-ld.bfd-symbol-from-plugin-undefined-referenc.patch.
-
--------------------------------------------------------------------
-Sun Jan 24 16:56:39 UTC 2021 - Martin Liška
-
-- Update to binutils 2.36:
- New features in the Assembler:
- General:
- * When setting the link order attribute of ELF sections, it is now
- possible to use a numeric section index instead of symbol name.
- * Added a .nop directive to generate a single no-op instruction in
- a target neutral manner. This instruction does have an effect on
- DWARF line number generation, if that is active.
- * Removed --reduce-memory-overheads and --hash-size as gas now
- uses hash tables that can be expand and shrink automatically.
- X86/x86_64:
- * Add support for AVX VNNI, HRESET, UINTR, TDX, AMX and Key
- Locker instructions.
- * Support non-absolute segment values for lcall and ljmp.
- * Add {disp16} pseudo prefix to x86 assembler.
- * Configure with --enable-x86-used-note by default for Linux/x86.
- ARM/AArch64:
- * Add support for Cortex-A78, Cortex-A78AE and Cortex-X1,
- Cortex-R82, Neoverse V1, and Neoverse N2 cores.
- * Add support for ETMv4 (Embedded Trace Macrocell), ETE (Embedded
- Trace Extension), TRBE (Trace Buffer Extension), CSRE (Call
- Stack Recorder Extension) and BRBE (Branch Record Buffer
- Extension) system registers.
- * Add support for Armv8-R and Armv8.7-A ISA extensions.
- * Add support for DSB memory nXS barrier, WFET and WFIT
- instruction for Armv8.7.
- * Add support for +csre feature for -march. Add CSR PDEC
- instruction for CSRE feature in AArch64.
- * Add support for +flagm feature for -march in Armv8.4 AArch64.
- * Add support for +ls64 feature for -march in Armv8.7
- AArch64. Add atomic 64-byte load/store instructions for this
- feature.
- * Add support for +pauth (Pointer Authentication) feature for
- -march in AArch64.
- New features in the Linker:
- * Add --error-handling-script= command line option to allow
- a helper script to be invoked when an undefined symbol or a
- missing library is encountered. This option can be suppressed
- via the configure time switch: --enable-error-handling-script=no.
- * Add -z x86-64-{baseline|v[234]} to the x86 ELF linker to mark
- x86-64-{baseline|v[234]} ISA level as needed.
- * Add -z unique-symbol to avoid duplicated local symbol names.
- * The creation of PE format DLLs now defaults to using a more
- secure set of DLL characteristics.
- * The linker now deduplicates the types in .ctf sections. The new
- command-line option --ctf-share-types describes how to do this:
- its default value, share-unconflicted, produces the most compact
- output.
- * The linker now omits the "variable section" from .ctf sections
- by default, saving space. This is almost certainly what you
- want unless you are working on a project that has its own
- analogue of symbol tables that are not reflected in the ELF
- symtabs.
- New features in other binary tools:
- * The ar tool's previously unused l modifier is now used for
- specifying dependencies of a static library. The arguments of
- this option (or --record-libdeps long form option) will be
- stored verbatim in the __.LIBDEP member of the archive, which
- the linker may read at link time.
- * Readelf can now display the contents of LTO symbol table
- sections when asked to do so via the --lto-syms command line
- option.
- * Readelf now accepts the -C command line option to enable the
- demangling of symbol names. In addition the --demangle=