2014-11-04 17:19:26 +01:00
|
|
|
#
|
|
|
|
# spec file for package cross-epiphany-binutils
|
|
|
|
#
|
2017-02-07 12:42:42 +01:00
|
|
|
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
|
2014-11-04 17:19:26 +01:00
|
|
|
#
|
|
|
|
# All modifications and additions to the file contributed by third parties
|
|
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
|
|
# upon. The license for this file, and modifications and additions to the
|
|
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
|
|
# license for the pristine package is not an Open Source License, in which
|
|
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
|
|
# published by the Open Source Initiative.
|
|
|
|
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
|
|
Name: cross-epiphany-binutils
|
|
|
|
ExcludeArch: epiphany
|
|
|
|
%define cross 1
|
|
|
|
%define TARGET epiphany
|
|
|
|
BuildRequires: bison
|
|
|
|
BuildRequires: dejagnu
|
|
|
|
BuildRequires: flex
|
|
|
|
BuildRequires: gcc-c++
|
|
|
|
# for the testsuite
|
|
|
|
%if 0%{suse_version} >= 1210
|
|
|
|
BuildRequires: glibc-devel-static
|
|
|
|
%endif
|
|
|
|
%if 0%{suse_version} > 1220
|
|
|
|
BuildRequires: makeinfo
|
|
|
|
%endif
|
|
|
|
# for some gold tests
|
|
|
|
BuildRequires: bc
|
|
|
|
%if 0%{suse_version} > 1110
|
|
|
|
BuildRequires: zlib-devel-static
|
|
|
|
%else
|
|
|
|
BuildRequires: zlib-devel
|
|
|
|
%endif
|
- Update to binutils 2.28.
* Add support for locating separate debug info files using the build-id
method, where the separate file has a name based upon the build-id of
the original file.
* This version of binutils fixes a problem with PowerPC VLE 16A and 16D
relocations which were functionally swapped, for example,
R_PPC_VLE_HA16A performed like R_PPC_VLE_HA16D while R_PPC_VLE_HA16D
performed like R_PPC_VLE_HA16A. This could have been fixed by
renumbering relocations, which would keep object files created by an
older version of gas compatible with a newer ld. However, that would
require an ABI update, affecting other assemblers and linkers that
create and process the relocations correctly. It is recommended that
all VLE object files be recompiled, but ld can modify the relocations
if --vle-reloc-fixup is passed to ld. If the new ld command line
option is not used, ld will ld warn on finding relocations inconsistent
with the instructions being relocated.
* The nm program has a new command line option (--with-version-strings)
which will display a symbol's version information, if any, after the
symbol's name.
* The ARC port of objdump now accepts a -M option to specify the extra
instruction class(es) that should be disassembled.
* The --remove-section option for objcopy and strip now accepts section
patterns starting with an exclamation point to indicate a non-matching
section. A non-matching section is removed from the set of sections
matched by an earlier --remove-section pattern.
* The --only-section option for objcopy now accepts section patterns
starting with an exclamation point to indicate a non-matching section.
A non-matching section is removed from the set of sections matched by
an earlier --only-section pattern.
* New --remove-relocations=SECTIONPATTERN option for objcopy and strip.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/binutils?expand=0&rev=231
2017-03-08 12:39:36 +01:00
|
|
|
Version: 2.28
|
2014-11-04 17:19:26 +01:00
|
|
|
Release: 0
|
|
|
|
#
|
|
|
|
# RUN_TESTS
|
|
|
|
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
|
|
|
|
# check the vanilla binutils, with no patches applied
|
|
|
|
# TEST_VANILLA
|
|
|
|
%define test_vanilla %(test ! -f %_sourcedir/TEST_VANILLA ; echo $?)
|
|
|
|
#
|
|
|
|
# handle test suite failures
|
|
|
|
#
|
|
|
|
%ifarch alpha %arm aarch64 hppa mips sh4 %sparc
|
|
|
|
%define make_check_handling true
|
|
|
|
%else
|
|
|
|
# XXX check again
|
|
|
|
# XXX disabled because gold is seriously broken for now
|
|
|
|
%define make_check_handling true
|
|
|
|
%endif
|
|
|
|
# let make check fail anyway if RUN_TESTS was requested
|
|
|
|
%if %{run_tests}
|
|
|
|
%define make_check_handling false
|
|
|
|
%endif
|
|
|
|
# handle all binary object formats supported by SuSE (and a few more)
|
|
|
|
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
|
|
|
|
%define build_multitarget 1
|
|
|
|
%else
|
|
|
|
%define build_multitarget 0
|
|
|
|
%endif
|
|
|
|
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
|
|
|
|
#
|
|
|
|
#
|
|
|
|
#
|
|
|
|
Url: http://www.gnu.org/software/binutils/
|
|
|
|
PreReq: %{install_info_prereq}
|
|
|
|
# bug437293
|
|
|
|
%ifarch ppc64
|
|
|
|
Obsoletes: binutils-64bit
|
|
|
|
%endif
|
|
|
|
#
|
|
|
|
%define binutils_version %(echo %version | sed 's/\\.[0-9]\\{8\\}$//')
|
|
|
|
Summary: GNU Binutils
|
|
|
|
License: GFDL-1.3 and GPL-3.0+
|
|
|
|
Group: Development/Tools/Building
|
|
|
|
Source: binutils-%{binutils_version}.tar.bz2
|
|
|
|
Source1: pre_checkin.sh
|
|
|
|
Source2: README.First-for.SuSE.packagers
|
|
|
|
Source3: baselibs.conf
|
- Update to binutils 2.28.
* Add support for locating separate debug info files using the build-id
method, where the separate file has a name based upon the build-id of
the original file.
* This version of binutils fixes a problem with PowerPC VLE 16A and 16D
relocations which were functionally swapped, for example,
R_PPC_VLE_HA16A performed like R_PPC_VLE_HA16D while R_PPC_VLE_HA16D
performed like R_PPC_VLE_HA16A. This could have been fixed by
renumbering relocations, which would keep object files created by an
older version of gas compatible with a newer ld. However, that would
require an ABI update, affecting other assemblers and linkers that
create and process the relocations correctly. It is recommended that
all VLE object files be recompiled, but ld can modify the relocations
if --vle-reloc-fixup is passed to ld. If the new ld command line
option is not used, ld will ld warn on finding relocations inconsistent
with the instructions being relocated.
* The nm program has a new command line option (--with-version-strings)
which will display a symbol's version information, if any, after the
symbol's name.
* The ARC port of objdump now accepts a -M option to specify the extra
instruction class(es) that should be disassembled.
* The --remove-section option for objcopy and strip now accepts section
patterns starting with an exclamation point to indicate a non-matching
section. A non-matching section is removed from the set of sections
matched by an earlier --remove-section pattern.
* The --only-section option for objcopy now accepts section patterns
starting with an exclamation point to indicate a non-matching section.
A non-matching section is removed from the set of sections matched by
an earlier --only-section pattern.
* New --remove-relocations=SECTIONPATTERN option for objcopy and strip.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/binutils?expand=0&rev=231
2017-03-08 12:39:36 +01:00
|
|
|
Patch: binutils-2.28-branch.diff
|
2014-11-04 17:19:26 +01:00
|
|
|
Patch3: binutils-skip-rpaths.patch
|
|
|
|
Patch4: s390-biarch.diff
|
|
|
|
Patch5: x86-64-biarch.patch
|
|
|
|
Patch6: unit-at-a-time.patch
|
|
|
|
Patch7: ld-dtags.diff
|
|
|
|
Patch8: ld-relro.diff
|
|
|
|
Patch9: testsuite.diff
|
|
|
|
Patch10: enable-targets-gold.diff
|
|
|
|
Patch11: use-hashtype-both-by-default.diff
|
|
|
|
Patch12: s390-pic-dso.diff
|
|
|
|
Patch14: binutils-build-as-needed.diff
|
|
|
|
Patch18: gold-depend-on-opcodes.diff
|
|
|
|
Patch22: binutils-bfd_h.patch
|
2015-10-14 16:38:50 +02:00
|
|
|
Patch34: aarch64-common-pagesize.patch
|
2017-02-24 11:51:58 +01:00
|
|
|
# Backport 758d96d834ba725461a
|
|
|
|
Patch36: binutils-bso21193.diff
|
2017-03-17 16:44:53 +01:00
|
|
|
Patch37: fix-security-bugs.diff
|
2017-03-31 13:59:22 +02:00
|
|
|
# Backport dc1e4d6dedcb8ee3bb1
|
2017-03-31 13:43:20 +02:00
|
|
|
Patch38: binutils-bso21333.diff
|
2014-11-04 17:19:26 +01:00
|
|
|
Patch90: cross-avr-nesc-as.patch
|
|
|
|
Patch92: cross-avr-omit_section_dynsym.patch
|
|
|
|
Patch93: cross-avr-size.patch
|
|
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
|
|
PreReq: update-alternatives
|
|
|
|
|
|
|
|
%description
|
|
|
|
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
|
|
|
|
size, strings, and strip. These utilities are needed whenever you want
|
|
|
|
to compile a program or kernel.
|
|
|
|
|
|
|
|
|
|
|
|
%package gold
|
|
|
|
Summary: The gold linker
|
|
|
|
License: GPL-3.0+
|
|
|
|
Group: Development/Tools/Building
|
|
|
|
Requires: binutils = %{version}-%{release}
|
|
|
|
PreReq: update-alternatives
|
|
|
|
%if 0%{suse_version} > 1100
|
|
|
|
%if 0%{!?cross:1}
|
2017-02-07 12:42:42 +01:00
|
|
|
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le s390x %sparc
|
2014-11-04 17:19:26 +01:00
|
|
|
%endif
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%description gold
|
|
|
|
gold is an ELF linker. It is intended to have complete support for ELF
|
|
|
|
and to run as fast as possible on modern systems. For normal use it is
|
|
|
|
a drop-in replacement for the older GNU linker.
|
|
|
|
|
|
|
|
%package devel
|
|
|
|
Summary: GNU binutils (BFD development files)
|
|
|
|
License: GPL-3.0+
|
|
|
|
Group: Development/Libraries/C and C++
|
|
|
|
Requires: binutils = %{version}-%{release}
|
|
|
|
Requires: zlib-devel
|
|
|
|
Provides: binutils:/usr/include/bfd.h
|
|
|
|
|
|
|
|
%description devel
|
|
|
|
This package includes header files and static libraries necessary to
|
|
|
|
build programs which use the GNU BFD library, which is part of
|
|
|
|
binutils.
|
|
|
|
|
|
|
|
|
|
|
|
%ifarch %arm
|
|
|
|
%define HOST %{_target_cpu}-suse-linux-gnueabi
|
|
|
|
%else
|
|
|
|
%define HOST %(echo %{_target_cpu} | sed -e "s/parisc/hppa/" -e "s/i.86/i586/" -e "s/ppc/powerpc/" -e "s/sparc64v.*/sparc64/" -e "s/sparcv.*/sparc/")-suse-linux
|
|
|
|
%endif
|
|
|
|
%define DIST %(echo '%distribution' | sed 's/ (.*)//')
|
|
|
|
|
|
|
|
%prep
|
|
|
|
echo "make check will return with %{make_check_handling} in case of testsuite failures."
|
|
|
|
%setup -q -n binutils-%{binutils_version}
|
2016-07-06 15:30:57 +02:00
|
|
|
# Patch is outside test_vanilla because it's supposed to be the
|
2014-11-04 17:19:26 +01:00
|
|
|
# patch bringing the tarball to the newest upstream version
|
- Update to binutils 2.27.
* Add a configure option, --enable-64-bit-archive, to force use of a
64-bit format when creating an archive symbol index.
* Add --elf-stt-common= option to objcopy for ELF targets to control
whether to convert common symbols to the STT_COMMON type.
GAS:
* Default to --enable-compressed-debug-sections=gas for Linux/x86 targets.
* Add --no-pad-sections to stop the assembler from padding the end of output
sections up to their alignment boundary.
* Support for the ARMv8-M architecture has been added to the ARM port.
Support for the ARMv8-M Security and DSP Extensions has also been added
to the ARM port.
* ARC backend accepts .extInstruction, .extCondCode, .extAuxRegister, and
.extCoreRegister pseudo-ops that allow an user to define custom
instructions, conditional codes, auxiliary and core registers.
* Add a configure option --enable-elf-stt-common to decide whether ELF
assembler should generate common symbols with the STT_COMMON type by
default. Default to no.
* New command line option --elf-stt-common= for ELF targets to control
whether to generate common symbols with the STT_COMMON type.
* Add ability to set section flags and types via numeric values for ELF
based targets.
* Add a configure option --enable-x86-relax-relocations to decide whether
x86 assembler should generate relax relocations by default. Default to
yes, except for x86 Solaris targets older than Solaris 12.
* New command line option -mrelax-relocations= for x86 target to control
whether to generate relax relocations.
* New command line option -mfence-as-lock-add=yes for x86 target to encode
lfence, mfence and sfence as "lock addl $0x0, (%[re]sp)".
* Add assembly-time relaxation option for ARC cpus.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/binutils?expand=0&rev=215
2016-08-24 13:55:45 +02:00
|
|
|
%patch -p1
|
2014-11-04 17:19:26 +01:00
|
|
|
%if !%{test_vanilla}
|
|
|
|
%patch3
|
|
|
|
%patch4
|
|
|
|
%patch5
|
|
|
|
%patch6
|
|
|
|
%patch7 -p1
|
|
|
|
%patch8
|
|
|
|
%patch9
|
|
|
|
%patch10
|
2015-07-21 14:50:51 +02:00
|
|
|
%if "%{TARGET}" != "mips"
|
|
|
|
# The MIPS ABI is incompatible with .gnu.hash, so don't
|
|
|
|
# use it there
|
2014-11-04 17:19:26 +01:00
|
|
|
%patch11
|
|
|
|
%patch12
|
- Update to binutils 2.28
* Add --fix-stm32l4xx-629360 to the ARM linker to enable a link-time
workaround for a bug in the bus matrix / memory controller for some of
the STM32 Cortex-M4 based products (STM32L4xx)
* Add a configure option --enable-compressed-debug-sections={all,ld} to
decide whether DWARF debug sections should be compressed by default.
* Add support for the ARC EM/HS, and ARC600/700 architectures.
* Experimental support for linker garbage collection (--gc-sections)
has been enabled for COFF and PE based targets.
* New command line option for ELF targets to compress DWARF debug
sections, --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi].
* New command line option, --orphan-handling=[place|warn|error|discard], to
adjust how orphan sections are handled. The default is 'place' which gives
the current behaviour, 'warn' and 'error' issue a warning or error
respectively when orphan sections are found, and 'discard' will discard all
orphan sections.
* Add support for LLVM plugin.
* Add --print-memory-usage option to report memory blocks usage.
* Add --require-defined option, it's like --undefined except the new symbol
must be defined by the end of the link.
* Add a configure option --enable-compressed-debug-sections={all,gas} to
decide whether DWARF debug sections should be compressed by default.
* Add support for the ARC EM/HS, and ARC600/700 architectures. Remove
assembler support for Argonaut RISC architectures.
* Add option to objcopy to insert new symbols into a file:
--add-symbol <name>=[<section>:]<value>[,<flags>]
* Add support for the ARC EM/HS, and ARC600/700 architectures.
* Extend objcopy --compress-debug-sections option to support
--compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] for ELF
targets.
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/binutils?expand=0&rev=200
2016-01-27 14:17:46 +01:00
|
|
|
%endif
|
2014-11-04 17:19:26 +01:00
|
|
|
%patch14
|
|
|
|
%patch18
|
|
|
|
%patch22
|
2015-10-14 16:38:50 +02:00
|
|
|
%patch34 -p1
|
2017-02-24 11:51:58 +01:00
|
|
|
%patch36 -p1
|
2017-03-17 16:44:53 +01:00
|
|
|
%patch37 -p1
|
2017-03-31 13:43:20 +02:00
|
|
|
%patch38 -p1
|
2014-11-04 17:19:26 +01:00
|
|
|
%if "%{TARGET}" == "avr"
|
|
|
|
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
|
|
|
|
%patch90
|
|
|
|
%patch92
|
|
|
|
%patch93
|
|
|
|
%endif
|
|
|
|
#
|
|
|
|
# test_vanilla
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%build
|
2015-05-18 17:27:56 +02:00
|
|
|
sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' bfd/version.h
|
2014-11-04 17:19:26 +01:00
|
|
|
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -Wno-error"
|
|
|
|
%if 0%{!?cross:1}
|
|
|
|
# Building native binutils
|
|
|
|
echo "Building native binutils."
|
|
|
|
%if %build_multitarget
|
|
|
|
EXTRA_TARGETS="%(printf ,%%s-suse-linux %target_list)"
|
|
|
|
EXTRA_TARGETS="$EXTRA_TARGETS,powerpc-macos,powerpc-macos10,spu-elf,x86_64-pep"
|
|
|
|
%else
|
|
|
|
EXTRA_TARGETS=
|
|
|
|
%ifarch sparc
|
|
|
|
EXTRA_TARGETS="$EXTRA_TARGETS,sparc64-suse-linux"
|
|
|
|
%endif
|
|
|
|
%ifarch ppc
|
|
|
|
EXTRA_TARGETS="$EXTRA_TARGETS,powerpc64-suse-linux"
|
|
|
|
%endif
|
|
|
|
%ifarch s390
|
|
|
|
EXTRA_TARGETS="$EXTRA_TARGETS,s390x-suse-linux"
|
|
|
|
%endif
|
|
|
|
%ifarch s390x
|
|
|
|
EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
|
|
|
|
%endif
|
|
|
|
%ifarch %ix86
|
|
|
|
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
|
|
|
|
%endif
|
|
|
|
%ifarch ppc ppc64 ppc64le
|
|
|
|
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
|
|
|
|
%endif
|
|
|
|
%ifarch %arm
|
|
|
|
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
|
|
|
|
%endif
|
|
|
|
%ifarch aarch64
|
|
|
|
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
|
|
|
|
%endif
|
|
|
|
%endif
|
|
|
|
# Normally we'd like to add --enable-deterministic-archives
|
|
|
|
# here (which by default makes uid/mtime be zero for archive
|
|
|
|
# members), to increase chances of getting a reproducable build
|
|
|
|
# But this breaks Makefile rules when directly accessing archives:
|
|
|
|
# rebuilding the same archive from unchanged .o files recreates
|
|
|
|
# it, because timestamps in the .a are 0, unequal to the actual timestamp
|
|
|
|
# of the .o files :-/
|
|
|
|
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
|
|
|
|
--prefix=%{_prefix} --libdir=%{_libdir} \\\
|
|
|
|
--infodir=%{_infodir} --mandir=%{_mandir} \\\
|
|
|
|
--with-bugurl=http://bugs.opensuse.org/ \\\
|
|
|
|
--with-pkgversion="GNU Binutils; %{DIST}" \\\
|
|
|
|
--with-separate-debug-dir=%{_prefix}/lib/debug \\\
|
2017-03-06 19:00:36 +01:00
|
|
|
--with-pic --with-system-zlib --build=%{HOST}
|
2014-11-04 17:19:26 +01:00
|
|
|
mkdir build-dir
|
|
|
|
cd build-dir
|
|
|
|
../configure %common_flags \
|
|
|
|
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} \
|
|
|
|
--enable-plugins \
|
|
|
|
%ifarch %gold_archs
|
|
|
|
--enable-gold \
|
|
|
|
--enable-threads \
|
2016-03-17 14:11:29 +01:00
|
|
|
%endif
|
|
|
|
%if %{suse_version} <= 1320
|
|
|
|
--disable-x86-relax-relocations \
|
2017-03-31 12:45:35 +02:00
|
|
|
--disable-compressed-debug-sections \
|
|
|
|
%endif
|
|
|
|
%if %{suse_version} > 1320
|
|
|
|
--enable-compressed-debug-sections=gas \
|
2014-11-04 17:19:26 +01:00
|
|
|
%endif
|
|
|
|
--enable-shared
|
|
|
|
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
|
|
|
|
# force reconfiguring (???)
|
|
|
|
rm bfd/Makefile
|
|
|
|
make %{?_smp_mflags}
|
|
|
|
|
|
|
|
%else
|
|
|
|
# building cross-TARGET-binutils
|
|
|
|
echo "Building cross binutils."
|
|
|
|
mkdir build-dir
|
|
|
|
cd build-dir
|
|
|
|
EXTRA_TARGETS=
|
|
|
|
%if "%{TARGET}" == "sparc"
|
|
|
|
EXTRA_TARGETS="$EXTRA_TARGETS,sparc64-suse-linux"
|
|
|
|
%endif
|
|
|
|
%if "%{TARGET}" == "powerpc"
|
|
|
|
EXTRA_TARGETS="$EXTRA_TARGETS,powerpc64-suse-linux"
|
|
|
|
%endif
|
|
|
|
%if "%{TARGET}" == "s390"
|
|
|
|
EXTRA_TARGETS="$EXTRA_TARGETS,s390x-suse-linux"
|
|
|
|
%endif
|
|
|
|
%if "%{TARGET}" == "s390x"
|
|
|
|
EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
|
|
|
|
%endif
|
|
|
|
%if "%{TARGET}" == "i586"
|
|
|
|
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
|
|
|
|
%endif
|
|
|
|
%if "%{TARGET}" == "hppa"
|
|
|
|
EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
|
|
|
|
%endif
|
|
|
|
%if "%{TARGET}" == "arm"
|
|
|
|
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
|
|
|
|
%endif
|
|
|
|
%if "%{TARGET}" == "aarch64"
|
|
|
|
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
|
|
|
|
%endif
|
|
|
|
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
|
2015-07-07 15:41:24 +02:00
|
|
|
%define TARGET_OS %{TARGET}
|
2014-11-04 17:19:26 +01:00
|
|
|
%else
|
2017-04-05 14:58:14 +02:00
|
|
|
%if "%{TARGET}" == "epiphany" || "%{TARGET}" == "riscv32" || "%{TARGET}" == "riscv64" || "%{TARGET}" == "rx"
|
2015-07-13 16:13:27 +02:00
|
|
|
%define TARGET_OS %{TARGET}-elf
|
2014-11-04 17:19:26 +01:00
|
|
|
%else
|
|
|
|
%if "%{TARGET}" == "arm"
|
2015-07-07 15:41:24 +02:00
|
|
|
%define TARGET_OS %{TARGET}-suse-linux-gnueabi
|
2014-11-04 17:19:26 +01:00
|
|
|
%else
|
2015-07-07 15:41:24 +02:00
|
|
|
%define TARGET_OS %{TARGET}-suse-linux
|
2014-11-04 17:19:26 +01:00
|
|
|
%endif
|
|
|
|
%endif
|
|
|
|
%endif
|
|
|
|
../configure CFLAGS="${RPM_OPT_FLAGS}" \
|
|
|
|
--prefix=%{_prefix} \
|
|
|
|
--with-bugurl=http://bugs.opensuse.org/ \
|
|
|
|
--with-pkgversion="GNU Binutils; %{DIST}" \
|
2017-03-06 19:00:36 +01:00
|
|
|
--with-system-zlib \
|
2014-11-04 17:19:26 +01:00
|
|
|
--disable-nls \
|
2016-03-17 14:11:29 +01:00
|
|
|
%if %{suse_version} <= 1320
|
|
|
|
--disable-x86-relax-relocations \
|
|
|
|
%endif
|
2015-07-07 15:41:24 +02:00
|
|
|
--build=%{HOST} --target=%{TARGET_OS} \
|
2014-11-04 17:19:26 +01:00
|
|
|
%if "%{TARGET}" == "spu"
|
|
|
|
--with-sysroot=/usr/spu \
|
|
|
|
%else
|
2015-07-07 15:41:24 +02:00
|
|
|
--with-sysroot=%{_prefix}/%{TARGET_OS}/sys-root \
|
2014-11-04 17:19:26 +01:00
|
|
|
%endif
|
|
|
|
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
|
|
|
|
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
|
|
|
|
# force reconfiguring
|
|
|
|
rm bfd/Makefile
|
|
|
|
make %{?_smp_mflags}
|
|
|
|
%if "%{TARGET}" == "avr"
|
|
|
|
# build an extra nesC version because nesC requires $'s in identifiers
|
|
|
|
cp -a gas gas-nesc
|
|
|
|
echo '#include "tc-%{TARGET}-nesc.h"' > gas-nesc/targ-cpu.h
|
|
|
|
make -C gas-nesc clean
|
|
|
|
make -C gas-nesc %{?_smp_mflags}
|
|
|
|
%endif
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%check
|
|
|
|
unset SUSE_ASNEEDED
|
|
|
|
cd build-dir
|
|
|
|
%if 0%{?cross:1}
|
|
|
|
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" || %{make_check_handling}
|
|
|
|
%else
|
|
|
|
make -k check CFLAGS="$RPM_OPT_FLAGS -Wno-unused -Wno-unprototyped-calls" || :
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%install
|
|
|
|
cd build-dir
|
|
|
|
%if 0%{!?cross:1}
|
|
|
|
# installing native binutils
|
|
|
|
%ifarch %gold_archs
|
|
|
|
make DESTDIR=$RPM_BUILD_ROOT install-gold
|
|
|
|
ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
|
|
|
|
%endif
|
|
|
|
make DESTDIR=$RPM_BUILD_ROOT install-info install
|
|
|
|
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
|
|
|
|
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
|
|
|
|
if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
|
|
|
|
mv "%buildroot/%_bindir"/{ld,ld.bfd};
|
|
|
|
else
|
|
|
|
rm -f "%buildroot/%_bindir/ld";
|
|
|
|
fi
|
|
|
|
mkdir -p "%buildroot/%_sysconfdir/alternatives";
|
2015-01-15 11:22:03 +01:00
|
|
|
# Keep older versions of brp-symlink happy
|
|
|
|
%if %{suse_version} < 1310
|
|
|
|
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
|
|
|
|
%endif
|
2014-11-04 17:19:26 +01:00
|
|
|
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
|
|
|
|
rm -rf $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
|
|
|
|
mv $RPM_BUILD_ROOT%{_prefix}/%{HOST}/lib/ldscripts $RPM_BUILD_ROOT%{_libdir}
|
|
|
|
ln -sf ../../%{_lib}/ldscripts $RPM_BUILD_ROOT%{_prefix}/%{HOST}/lib/ldscripts
|
|
|
|
# Install header files
|
|
|
|
make -C libiberty install_to_libdir target_header_dir=/usr/include DESTDIR=$RPM_BUILD_ROOT
|
|
|
|
# We want the PIC libiberty.a
|
|
|
|
install -m 644 libiberty/pic/libiberty.a $RPM_BUILD_ROOT%{_libdir}
|
|
|
|
#
|
|
|
|
chmod a+x $RPM_BUILD_ROOT%{_libdir}/libbfd-*
|
|
|
|
chmod a+x $RPM_BUILD_ROOT%{_libdir}/libopcodes-*
|
|
|
|
# No shared linking outside binutils
|
|
|
|
rm $RPM_BUILD_ROOT%{_libdir}/lib{bfd,opcodes}.so
|
|
|
|
rm $RPM_BUILD_ROOT%{_libdir}/lib{bfd,opcodes}.la
|
|
|
|
# Remove unwanted files to shut up rpm
|
2014-12-02 17:34:18 +01:00
|
|
|
rm -f $RPM_BUILD_ROOT%{_infodir}/configure* $RPM_BUILD_ROOT%{_infodir}/standards.info*
|
|
|
|
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/dlltool.1 $RPM_BUILD_ROOT%{_mandir}/man1/windres.1 $RPM_BUILD_ROOT%{_mandir}/man1/windmc.1
|
2014-11-04 17:19:26 +01:00
|
|
|
cd ..
|
|
|
|
%find_lang binutils
|
|
|
|
%find_lang bfd binutils.lang
|
|
|
|
%find_lang gas binutils.lang
|
|
|
|
%find_lang ld binutils.lang
|
|
|
|
%find_lang opcodes binutils.lang
|
|
|
|
%find_lang gprof binutils.lang
|
|
|
|
%ifarch %gold_archs
|
|
|
|
%find_lang gold binutils-gold.lang
|
|
|
|
%endif
|
|
|
|
mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}
|
|
|
|
install -m 644 binutils/NEWS $RPM_BUILD_ROOT%{_docdir}/%{name}/NEWS-binutils
|
|
|
|
install -m 644 gas/NEWS $RPM_BUILD_ROOT%{_docdir}/%{name}/NEWS-gas
|
|
|
|
install -m 644 ld/NEWS $RPM_BUILD_ROOT%{_docdir}/%{name}/NEWS-ld
|
|
|
|
%else
|
|
|
|
# installing cross-TARGET-binutils and TARGET-binutils
|
|
|
|
make DESTDIR=$RPM_BUILD_ROOT install
|
|
|
|
# Replace hard links by symlinks, so that rpmlint doesn't complain
|
2015-07-07 15:41:24 +02:00
|
|
|
T=$(basename %buildroot/usr/%{TARGET_OS})
|
2014-11-04 17:19:26 +01:00
|
|
|
for f in %buildroot/usr/$T/bin/* ; do
|
|
|
|
ln -sf /usr/bin/$T-$(basename $f) $f
|
|
|
|
done
|
|
|
|
%if "%{TARGET}" == "avr"
|
2015-07-07 15:41:24 +02:00
|
|
|
install -c gas-nesc/as-new $RPM_BUILD_ROOT%{_prefix}/bin/%{TARGET_OS}-nesc-as
|
|
|
|
ln -sf ../../bin/%{TARGET_OS}-nesc-as $RPM_BUILD_ROOT%{_prefix}/%{TARGET_OS}/bin/nesc-as
|
2014-11-04 17:19:26 +01:00
|
|
|
%endif
|
|
|
|
rm -rf $RPM_BUILD_ROOT%{_mandir}
|
|
|
|
rm -rf $RPM_BUILD_ROOT%{_infodir}
|
|
|
|
rm -rf $RPM_BUILD_ROOT%{_prefix}/lib*
|
|
|
|
rm -rf $RPM_BUILD_ROOT%{_prefix}/include
|
|
|
|
rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
|
|
|
|
> ../binutils.lang
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%if 0%{!?cross:1}
|
|
|
|
%post
|
2017-02-07 12:42:42 +01:00
|
|
|
/sbin/ldconfig
|
2014-11-04 17:19:26 +01:00
|
|
|
"%_sbindir/update-alternatives" --install \
|
|
|
|
"%_bindir/ld" ld "%_bindir/ld.bfd" 2
|
|
|
|
%install_info --info-dir=%{_infodir} %{_infodir}/as.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}/gprof.info.gz
|
|
|
|
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz
|
|
|
|
|
|
|
|
%post gold
|
|
|
|
"%_sbindir/update-alternatives" --install \
|
|
|
|
"%_bindir/ld" ld "%_bindir/ld.gold" 1
|
|
|
|
|
2015-05-18 17:14:41 +02:00
|
|
|
%preun
|
2014-11-04 17:19:26 +01:00
|
|
|
%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}/binutils.info.gz
|
|
|
|
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
|
|
|
|
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
|
|
|
|
if [ "$1" = 0 ]; then
|
|
|
|
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
|
|
|
|
fi;
|
|
|
|
|
|
|
|
%preun gold
|
|
|
|
if [ "$1" = 0 ]; then
|
|
|
|
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
|
|
|
|
fi;
|
|
|
|
|
2017-02-07 12:42:42 +01:00
|
|
|
%postun
|
|
|
|
/sbin/ldconfig
|
2014-11-04 17:19:26 +01:00
|
|
|
%endif
|
|
|
|
|
|
|
|
%files -f binutils.lang
|
|
|
|
%defattr(-,root,root)
|
|
|
|
%if 0%{!?cross:1}
|
|
|
|
%{_docdir}/%{name}
|
|
|
|
%{_prefix}/%{HOST}/bin/*
|
|
|
|
%{_prefix}/%{HOST}/lib/ldscripts
|
|
|
|
%{_libdir}/ldscripts
|
|
|
|
%{_bindir}/*
|
|
|
|
%ghost %_sysconfdir/alternatives/ld
|
|
|
|
%ifarch %gold_archs
|
|
|
|
%exclude %{_bindir}/gold
|
|
|
|
%exclude %{_bindir}/ld.gold
|
|
|
|
%endif
|
|
|
|
%doc %{_infodir}/*.gz
|
|
|
|
%{_libdir}/lib*-%{version}*.so
|
|
|
|
%doc %{_mandir}/man1/*.1.gz
|
|
|
|
%else
|
2015-07-07 15:41:24 +02:00
|
|
|
%{_prefix}/%{TARGET_OS}
|
2014-11-04 17:19:26 +01:00
|
|
|
%{_prefix}/bin/*
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%ifarch %gold_archs
|
|
|
|
%files gold -f binutils-gold.lang
|
|
|
|
%defattr(-,root,root)
|
|
|
|
%doc gold/NEWS gold/README
|
|
|
|
%{_bindir}/gold
|
|
|
|
%{_bindir}/ld.gold
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%if 0%{!?cross:1}
|
|
|
|
%files devel
|
|
|
|
%defattr(-,root,root)
|
|
|
|
%{_prefix}/include/*.h
|
|
|
|
%{_libdir}/lib*.*a
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%changelog
|