SHA256
1
0
forked from pool/binutils

Accepting request 143390 from devel:gcc

- Change update-alternative priorities to always prefer GNU ld

- Implement update-alternatives service for gold

- update to version 2.23.1 release
- add aarch64 biarch patch

- add cross-aarch64-binutils

- Have pre_checkin.sh create cross-sparc64-binutils

- Change update-alternative priorities to always prefer GNU ld

- Implement update-alternatives service for gold

- update to version 2.23.1 release
- add aarch64 biarch patch

- add cross-aarch64-binutils

- Have pre_checkin.sh create cross-sparc64-binutils

- Change update-alternative priorities to always prefer GNU ld

- Implement update-alternatives service for gold

- update to version 2.23.1 release
- add aarch64 biarch patch

- add cross-aarch64-binutils

OBS-URL: https://build.opensuse.org/request/show/143390
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/binutils?expand=0&rev=82
This commit is contained in:
Stephan Kulow 2012-11-28 14:59:27 +00:00 committed by Git OBS Bridge
commit 34eb03a7ae
48 changed files with 6919 additions and 240 deletions

38
aarch64-biarch.patch Normal file
View File

@ -0,0 +1,38 @@
Index: binutils-2.23.1/ld/emulparams/aarch64elf.sh
===================================================================
--- binutils-2.23.1.orig/ld/emulparams/aarch64elf.sh
+++ binutils-2.23.1/ld/emulparams/aarch64elf.sh
@@ -33,3 +33,14 @@ ATTRS_SECTIONS='.ARM.attributes 0 : { KE
# This sets the stack to the top of the simulator memory (2^19 bytes).
STACK_ADDR=0x80000
+
+# For Linux modify the default library search path
+# to first include a 64-bit specific directory.
+case "$target" in
+ aarch64*-linux*)
+ case "$EMULATION_NAME" in
+ *) LIBPATH_SUFFIX=64 ;;
+ esac
+ ;;
+esac
+
Index: binutils-2.23.1/ld/emulparams/aarch64linux.sh
===================================================================
--- binutils-2.23.1.orig/ld/emulparams/aarch64linux.sh
+++ binutils-2.23.1/ld/emulparams/aarch64linux.sh
@@ -34,3 +34,14 @@ OTHER_SECTIONS='.note.gnu.arm.ident 0 :
ATTRS_SECTIONS='.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }'
# Ensure each PLT entry is aligned to a cache line.
PLT=".plt ${RELOCATING-0} : ALIGN(16) { *(.plt)${IREL_IN_PLT+ *(.iplt)} }"
+
+# For Linux modify the default library search path
+# to first include a 64-bit specific directory.
+case "$target" in
+ aarch64*-linux*)
+ case "$EMULATION_NAME" in
+ *) LIBPATH_SUFFIX=64 ;;
+ esac
+ ;;
+esac
+

View File

@ -20,8 +20,8 @@ GCC, therefore I want to commit this just to the trunk.
Index: include/objalloc.h Index: include/objalloc.h
=================================================================== ===================================================================
--- include/objalloc.h (revision 190780) --- include/objalloc.h.orig
+++ include/objalloc.h (working copy) +++ include/objalloc.h
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* objalloc.h -- routines to allocate memory for objects /* objalloc.h -- routines to allocate memory for objects
- Copyright 1997, 2001 Free Software Foundation, Inc. - Copyright 1997, 2001 Free Software Foundation, Inc.
@ -29,7 +29,7 @@ Index: include/objalloc.h
Written by Ian Lance Taylor, Cygnus Solutions. Written by Ian Lance Taylor, Cygnus Solutions.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
@@ -71,38 +71,8 @@ @@ -71,38 +71,8 @@ extern struct objalloc *objalloc_create
extern void *_objalloc_alloc (struct objalloc *, unsigned long); extern void *_objalloc_alloc (struct objalloc *, unsigned long);
@ -70,8 +70,8 @@ Index: include/objalloc.h
extern void objalloc_free (struct objalloc *); extern void objalloc_free (struct objalloc *);
Index: libiberty/objalloc.c Index: libiberty/objalloc.c
=================================================================== ===================================================================
--- libiberty/objalloc.c (revision 190780) --- libiberty/objalloc.c.orig
+++ libiberty/objalloc.c (working copy) +++ libiberty/objalloc.c
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/* objalloc.c -- routines to allocate memory for objects /* objalloc.c -- routines to allocate memory for objects
- Copyright 1997 Free Software Foundation, Inc. - Copyright 1997 Free Software Foundation, Inc.
@ -79,7 +79,7 @@ Index: libiberty/objalloc.c
Written by Ian Lance Taylor, Cygnus Solutions. Written by Ian Lance Taylor, Cygnus Solutions.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
@@ -112,8 +112,9 @@ @@ -112,8 +112,9 @@ objalloc_create (void)
/* Allocate space from an objalloc structure. */ /* Allocate space from an objalloc structure. */
PTR PTR
@ -90,7 +90,7 @@ Index: libiberty/objalloc.c
/* We avoid confusion from zero sized objects by always allocating /* We avoid confusion from zero sized objects by always allocating
at least 1 byte. */ at least 1 byte. */
if (len == 0) if (len == 0)
@@ -121,6 +122,11 @@ @@ -121,6 +122,11 @@ _objalloc_alloc (struct objalloc *o, uns
len = (len + OBJALLOC_ALIGN - 1) &~ (OBJALLOC_ALIGN - 1); len = (len + OBJALLOC_ALIGN - 1) &~ (OBJALLOC_ALIGN - 1);
@ -102,4 +102,3 @@ Index: libiberty/objalloc.c
if (len <= o->current_space) if (len <= o->current_space)
{ {
o->current_ptr += len; o->current_ptr += len;

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:77f1c8a96434f8e094ae475857bd596124bf13aa655a3898cafdfd7b2cdac2ff
size 19514452

3
binutils-2.23.1.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2ab2e5b03e086d12c6295f831adad46b3e1410a3a234933a2e8fac66cb2e7a19
size 21455321

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Nov 28 10:56:12 UTC 2012 - rguenther@suse.com
- Change update-alternative priorities to always prefer GNU ld
-------------------------------------------------------------------
Tue Nov 27 15:30:41 UTC 2012 - jengelh@inai.de
- Implement update-alternatives service for gold
-------------------------------------------------------------------
Tue Nov 27 12:44:19 UTC 2012 - adrian@suse.de
- update to version 2.23.1 release
- add aarch64 biarch patch
-------------------------------------------------------------------
Sat Nov 24 02:05:34 UTC 2012 - adrian@suse.de
- add cross-aarch64-binutils
-------------------------------------------------------------------
Thu Nov 22 19:38:33 UTC 2012 - jengelh@inai.de
- Have pre_checkin.sh create cross-sparc64-binutils
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com

View File

@ -35,7 +35,7 @@ BuildRequires: zlib-devel-static
%else %else
BuildRequires: zlib-devel BuildRequires: zlib-devel
%endif %endif
Version: 2.23.0 Version: 2.23.1
Release: 0 Release: 0
# #
# RUN_TESTS # RUN_TESTS
@ -46,7 +46,7 @@ Release: 0
# #
# handle test suite failures # handle test suite failures
# #
%ifarch alpha %arm hppa mips sh4 %sparc %ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true %define make_check_handling true
%else %else
# XXX check again # XXX check again
@ -58,12 +58,12 @@ Release: 0
%define make_check_handling false %define make_check_handling false
%endif %endif
# handle all binary object formats supported by SuSE (and a few more) # handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm ia64 ppc ppc64 s390 s390x x86_64 %ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%define build_multitarget 1 %define build_multitarget 1
%else %else
%define build_multitarget 0 %define build_multitarget 0
%endif %endif
%define target_list alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64 %define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
# #
# #
# #
@ -96,7 +96,9 @@ Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch Patch21: binutils-2.22-objalloc.patch
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
Patch101: aarch64-biarch.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -109,6 +111,7 @@ Summary: The gold linker
License: GPL-3.0+ License: GPL-3.0+
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100 %if 0%{suse_version} > 1100
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc %define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
@ -120,7 +123,6 @@ 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 and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker. a drop-in replacement for the older GNU linker.
%package devel %package devel
Summary: GNU binutils (BFD development files) Summary: GNU binutils (BFD development files)
License: GPL-3.0+ License: GPL-3.0+
@ -158,6 +160,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14 %patch14
%patch18 %patch18
%patch21 %patch21
%patch101 -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
%patch90 %patch90
@ -199,6 +202,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%ifarch %arm %ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif %endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\ %define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\ --prefix=%{_prefix} --libdir=%{_libdir} \\\
@ -249,6 +255,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%if "%{TARGET}" == "arm" %if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu" %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET} TARGET_OS=%{TARGET}
%else %else
@ -303,11 +312,14 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
make DESTDIR=$RPM_BUILD_ROOT install-info install make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
# we could eventually use alternatives for /usr/bin/ld if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then mv "%buildroot/%_bindir"/{ld,ld.bfd};
rm $RPM_BUILD_ROOT%{_bindir}/ld else
ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld; rm -f "%buildroot/%_bindir/ld";
fi fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
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
@ -360,23 +372,37 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang > ../binutils.lang
%endif %endif
%clean
rm -rf $RPM_BUILD_ROOT
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
"%_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}/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
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun %postun
%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
%preun
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;
%endif %endif
%files -f binutils.lang %files -f binutils.lang
@ -387,6 +413,7 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/%{HOST}/lib/ldscripts %{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts %{_libdir}/ldscripts
%{_bindir}/* %{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold

File diff suppressed because it is too large Load Diff

447
cross-aarch64-binutils.spec Normal file
View File

@ -0,0 +1,447 @@
#
# spec file for package cross-aarch64-binutils
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# 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-aarch64-binutils
ExcludeArch: aarch64
%define cross 1
%define TARGET aarch64
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
Version: 2.23.1
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 s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 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
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
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.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}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%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}
%if !%{test_vanilla}
%patch3
%patch4
%patch5
%patch6
%patch7 -p1
%patch8
%patch9
%patch10
%patch11
%patch14
%patch18
%patch21
%patch101 -p1
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
%patch92
%endif
#
# test_vanilla
%endif
sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' bfd/version.h
%build
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
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
%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 \\\
--with-pic --build=%{HOST}
mkdir build-dir
cd build-dir
../configure %common_flags \
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} \
--enable-plugins \
%ifarch %gold_archs
--enable-gold \
--enable-threads \
%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"
TARGET_OS=%{TARGET}
%else
%if "%{TARGET}" == "arm"
TARGET_OS=%{TARGET}-suse-linux-gnueabi
%else
TARGET_OS=%{TARGET}-suse-linux
%endif
%endif
../configure CFLAGS="${RPM_OPT_FLAGS}" \
--prefix=%{_prefix} \
--with-bugurl=http://bugs.opensuse.org/ \
--with-pkgversion="GNU Binutils; %{DIST}" \
--disable-nls \
--build=%{HOST} --target=$TARGET_OS \
%if "%{TARGET}" == "spu"
--with-sysroot=/usr/spu \
%else
--with-sysroot=%{_prefix}/$TARGET_OS/sys-root \
%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";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
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
rm $RPM_BUILD_ROOT%{_infodir}/configure* $RPM_BUILD_ROOT%{_infodir}/standards.info*
rm $RPM_BUILD_ROOT%{_mandir}/man1/dlltool.1 $RPM_BUILD_ROOT%{_mandir}/man1/windres.1 $RPM_BUILD_ROOT%{_mandir}/man1/windmc.1
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
T=$(basename %buildroot/usr/%{TARGET}*)
for f in %buildroot/usr/$T/bin/* ; do
ln -sf /usr/bin/$T-$(basename $f) $f
done
%if "%{TARGET}" == "avr"
install -c gas-nesc/as-new $RPM_BUILD_ROOT%{_prefix}/bin/%{TARGET}-nesc-as
ln -sf ../../bin/%{TARGET}-nesc-as $RPM_BUILD_ROOT%{_prefix}/%{TARGET}/bin/nesc-as
%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
"%_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
%postun
%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
%preun
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;
%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
%{_prefix}/%{TARGET}*
%{_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

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Nov 28 10:56:12 UTC 2012 - rguenther@suse.com
- Change update-alternative priorities to always prefer GNU ld
-------------------------------------------------------------------
Tue Nov 27 15:30:41 UTC 2012 - jengelh@inai.de
- Implement update-alternatives service for gold
-------------------------------------------------------------------
Tue Nov 27 12:44:19 UTC 2012 - adrian@suse.de
- update to version 2.23.1 release
- add aarch64 biarch patch
-------------------------------------------------------------------
Sat Nov 24 02:05:34 UTC 2012 - adrian@suse.de
- add cross-aarch64-binutils
-------------------------------------------------------------------
Thu Nov 22 19:38:33 UTC 2012 - jengelh@inai.de
- Have pre_checkin.sh create cross-sparc64-binutils
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else %else
BuildRequires: zlib-devel BuildRequires: zlib-devel
%endif %endif
Version: 2.23.0 Version: 2.23.1
Release: 0 Release: 0
# #
# RUN_TESTS # RUN_TESTS
@ -49,7 +49,7 @@ Release: 0
# #
# handle test suite failures # handle test suite failures
# #
%ifarch alpha %arm hppa mips sh4 %sparc %ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true %define make_check_handling true
%else %else
# XXX check again # XXX check again
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false %define make_check_handling false
%endif %endif
# handle all binary object formats supported by SuSE (and a few more) # handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm ia64 ppc ppc64 s390 s390x x86_64 %ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%define build_multitarget 1 %define build_multitarget 1
%else %else
%define build_multitarget 0 %define build_multitarget 0
%endif %endif
%define target_list alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64 %define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
# #
# #
# #
@ -99,7 +99,9 @@ Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch Patch21: binutils-2.22-objalloc.patch
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
Patch101: aarch64-biarch.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -112,6 +114,7 @@ Summary: The gold linker
License: GPL-3.0+ License: GPL-3.0+
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100 %if 0%{suse_version} > 1100
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc %define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
@ -123,7 +126,6 @@ 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 and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker. a drop-in replacement for the older GNU linker.
%package devel %package devel
Summary: GNU binutils (BFD development files) Summary: GNU binutils (BFD development files)
License: GPL-3.0+ License: GPL-3.0+
@ -161,6 +163,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14 %patch14
%patch18 %patch18
%patch21 %patch21
%patch101 -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
%patch90 %patch90
@ -202,6 +205,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%ifarch %arm %ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif %endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\ %define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\ --prefix=%{_prefix} --libdir=%{_libdir} \\\
@ -252,6 +258,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%if "%{TARGET}" == "arm" %if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu" %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET} TARGET_OS=%{TARGET}
%else %else
@ -306,11 +315,14 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
make DESTDIR=$RPM_BUILD_ROOT install-info install make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
# we could eventually use alternatives for /usr/bin/ld if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then mv "%buildroot/%_bindir"/{ld,ld.bfd};
rm $RPM_BUILD_ROOT%{_bindir}/ld else
ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld; rm -f "%buildroot/%_bindir/ld";
fi fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
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
@ -363,23 +375,37 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang > ../binutils.lang
%endif %endif
%clean
rm -rf $RPM_BUILD_ROOT
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
"%_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}/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
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun %postun
%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
%preun
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;
%endif %endif
%files -f binutils.lang %files -f binutils.lang
@ -390,6 +416,7 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/%{HOST}/lib/ldscripts %{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts %{_libdir}/ldscripts
%{_bindir}/* %{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Nov 28 10:56:12 UTC 2012 - rguenther@suse.com
- Change update-alternative priorities to always prefer GNU ld
-------------------------------------------------------------------
Tue Nov 27 15:30:41 UTC 2012 - jengelh@inai.de
- Implement update-alternatives service for gold
-------------------------------------------------------------------
Tue Nov 27 12:44:19 UTC 2012 - adrian@suse.de
- update to version 2.23.1 release
- add aarch64 biarch patch
-------------------------------------------------------------------
Sat Nov 24 02:05:34 UTC 2012 - adrian@suse.de
- add cross-aarch64-binutils
-------------------------------------------------------------------
Thu Nov 22 19:38:33 UTC 2012 - jengelh@inai.de
- Have pre_checkin.sh create cross-sparc64-binutils
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else %else
BuildRequires: zlib-devel BuildRequires: zlib-devel
%endif %endif
Version: 2.23.0 Version: 2.23.1
Release: 0 Release: 0
# #
# RUN_TESTS # RUN_TESTS
@ -49,7 +49,7 @@ Release: 0
# #
# handle test suite failures # handle test suite failures
# #
%ifarch alpha %arm hppa mips sh4 %sparc %ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true %define make_check_handling true
%else %else
# XXX check again # XXX check again
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false %define make_check_handling false
%endif %endif
# handle all binary object formats supported by SuSE (and a few more) # handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm ia64 ppc ppc64 s390 s390x x86_64 %ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%define build_multitarget 1 %define build_multitarget 1
%else %else
%define build_multitarget 0 %define build_multitarget 0
%endif %endif
%define target_list alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64 %define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
# #
# #
# #
@ -99,7 +99,9 @@ Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch Patch21: binutils-2.22-objalloc.patch
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
Patch101: aarch64-biarch.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -112,6 +114,7 @@ Summary: The gold linker
License: GPL-3.0+ License: GPL-3.0+
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100 %if 0%{suse_version} > 1100
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc %define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
@ -123,7 +126,6 @@ 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 and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker. a drop-in replacement for the older GNU linker.
%package devel %package devel
Summary: GNU binutils (BFD development files) Summary: GNU binutils (BFD development files)
License: GPL-3.0+ License: GPL-3.0+
@ -161,6 +163,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14 %patch14
%patch18 %patch18
%patch21 %patch21
%patch101 -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
%patch90 %patch90
@ -202,6 +205,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%ifarch %arm %ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif %endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\ %define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\ --prefix=%{_prefix} --libdir=%{_libdir} \\\
@ -252,6 +258,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%if "%{TARGET}" == "arm" %if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu" %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET} TARGET_OS=%{TARGET}
%else %else
@ -306,11 +315,14 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
make DESTDIR=$RPM_BUILD_ROOT install-info install make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
# we could eventually use alternatives for /usr/bin/ld if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then mv "%buildroot/%_bindir"/{ld,ld.bfd};
rm $RPM_BUILD_ROOT%{_bindir}/ld else
ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld; rm -f "%buildroot/%_bindir/ld";
fi fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
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
@ -363,23 +375,37 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang > ../binutils.lang
%endif %endif
%clean
rm -rf $RPM_BUILD_ROOT
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
"%_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}/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
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun %postun
%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
%preun
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;
%endif %endif
%files -f binutils.lang %files -f binutils.lang
@ -390,6 +416,7 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/%{HOST}/lib/ldscripts %{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts %{_libdir}/ldscripts
%{_bindir}/* %{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Nov 28 10:56:12 UTC 2012 - rguenther@suse.com
- Change update-alternative priorities to always prefer GNU ld
-------------------------------------------------------------------
Tue Nov 27 15:30:41 UTC 2012 - jengelh@inai.de
- Implement update-alternatives service for gold
-------------------------------------------------------------------
Tue Nov 27 12:44:19 UTC 2012 - adrian@suse.de
- update to version 2.23.1 release
- add aarch64 biarch patch
-------------------------------------------------------------------
Sat Nov 24 02:05:34 UTC 2012 - adrian@suse.de
- add cross-aarch64-binutils
-------------------------------------------------------------------
Thu Nov 22 19:38:33 UTC 2012 - jengelh@inai.de
- Have pre_checkin.sh create cross-sparc64-binutils
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else %else
BuildRequires: zlib-devel BuildRequires: zlib-devel
%endif %endif
Version: 2.23.0 Version: 2.23.1
Release: 0 Release: 0
# #
# RUN_TESTS # RUN_TESTS
@ -49,7 +49,7 @@ Release: 0
# #
# handle test suite failures # handle test suite failures
# #
%ifarch alpha %arm hppa mips sh4 %sparc %ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true %define make_check_handling true
%else %else
# XXX check again # XXX check again
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false %define make_check_handling false
%endif %endif
# handle all binary object formats supported by SuSE (and a few more) # handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm ia64 ppc ppc64 s390 s390x x86_64 %ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%define build_multitarget 1 %define build_multitarget 1
%else %else
%define build_multitarget 0 %define build_multitarget 0
%endif %endif
%define target_list alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64 %define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
# #
# #
# #
@ -99,7 +99,9 @@ Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch Patch21: binutils-2.22-objalloc.patch
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
Patch101: aarch64-biarch.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -112,6 +114,7 @@ Summary: The gold linker
License: GPL-3.0+ License: GPL-3.0+
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100 %if 0%{suse_version} > 1100
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc %define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
@ -123,7 +126,6 @@ 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 and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker. a drop-in replacement for the older GNU linker.
%package devel %package devel
Summary: GNU binutils (BFD development files) Summary: GNU binutils (BFD development files)
License: GPL-3.0+ License: GPL-3.0+
@ -161,6 +163,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14 %patch14
%patch18 %patch18
%patch21 %patch21
%patch101 -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
%patch90 %patch90
@ -202,6 +205,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%ifarch %arm %ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif %endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\ %define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\ --prefix=%{_prefix} --libdir=%{_libdir} \\\
@ -252,6 +258,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%if "%{TARGET}" == "arm" %if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu" %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET} TARGET_OS=%{TARGET}
%else %else
@ -306,11 +315,14 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
make DESTDIR=$RPM_BUILD_ROOT install-info install make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
# we could eventually use alternatives for /usr/bin/ld if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then mv "%buildroot/%_bindir"/{ld,ld.bfd};
rm $RPM_BUILD_ROOT%{_bindir}/ld else
ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld; rm -f "%buildroot/%_bindir/ld";
fi fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
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
@ -363,23 +375,37 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang > ../binutils.lang
%endif %endif
%clean
rm -rf $RPM_BUILD_ROOT
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
"%_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}/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
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun %postun
%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
%preun
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;
%endif %endif
%files -f binutils.lang %files -f binutils.lang
@ -390,6 +416,7 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/%{HOST}/lib/ldscripts %{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts %{_libdir}/ldscripts
%{_bindir}/* %{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Nov 28 10:56:12 UTC 2012 - rguenther@suse.com
- Change update-alternative priorities to always prefer GNU ld
-------------------------------------------------------------------
Tue Nov 27 15:30:41 UTC 2012 - jengelh@inai.de
- Implement update-alternatives service for gold
-------------------------------------------------------------------
Tue Nov 27 12:44:19 UTC 2012 - adrian@suse.de
- update to version 2.23.1 release
- add aarch64 biarch patch
-------------------------------------------------------------------
Sat Nov 24 02:05:34 UTC 2012 - adrian@suse.de
- add cross-aarch64-binutils
-------------------------------------------------------------------
Thu Nov 22 19:38:33 UTC 2012 - jengelh@inai.de
- Have pre_checkin.sh create cross-sparc64-binutils
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else %else
BuildRequires: zlib-devel BuildRequires: zlib-devel
%endif %endif
Version: 2.23.0 Version: 2.23.1
Release: 0 Release: 0
# #
# RUN_TESTS # RUN_TESTS
@ -49,7 +49,7 @@ Release: 0
# #
# handle test suite failures # handle test suite failures
# #
%ifarch alpha %arm hppa mips sh4 %sparc %ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true %define make_check_handling true
%else %else
# XXX check again # XXX check again
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false %define make_check_handling false
%endif %endif
# handle all binary object formats supported by SuSE (and a few more) # handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm ia64 ppc ppc64 s390 s390x x86_64 %ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%define build_multitarget 1 %define build_multitarget 1
%else %else
%define build_multitarget 0 %define build_multitarget 0
%endif %endif
%define target_list alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64 %define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
# #
# #
# #
@ -99,7 +99,9 @@ Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch Patch21: binutils-2.22-objalloc.patch
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
Patch101: aarch64-biarch.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -112,6 +114,7 @@ Summary: The gold linker
License: GPL-3.0+ License: GPL-3.0+
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100 %if 0%{suse_version} > 1100
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc %define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
@ -123,7 +126,6 @@ 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 and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker. a drop-in replacement for the older GNU linker.
%package devel %package devel
Summary: GNU binutils (BFD development files) Summary: GNU binutils (BFD development files)
License: GPL-3.0+ License: GPL-3.0+
@ -161,6 +163,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14 %patch14
%patch18 %patch18
%patch21 %patch21
%patch101 -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
%patch90 %patch90
@ -202,6 +205,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%ifarch %arm %ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif %endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\ %define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\ --prefix=%{_prefix} --libdir=%{_libdir} \\\
@ -252,6 +258,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%if "%{TARGET}" == "arm" %if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu" %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET} TARGET_OS=%{TARGET}
%else %else
@ -306,11 +315,14 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
make DESTDIR=$RPM_BUILD_ROOT install-info install make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
# we could eventually use alternatives for /usr/bin/ld if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then mv "%buildroot/%_bindir"/{ld,ld.bfd};
rm $RPM_BUILD_ROOT%{_bindir}/ld else
ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld; rm -f "%buildroot/%_bindir/ld";
fi fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
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
@ -363,23 +375,37 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang > ../binutils.lang
%endif %endif
%clean
rm -rf $RPM_BUILD_ROOT
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
"%_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}/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
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun %postun
%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
%preun
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;
%endif %endif
%files -f binutils.lang %files -f binutils.lang
@ -390,6 +416,7 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/%{HOST}/lib/ldscripts %{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts %{_libdir}/ldscripts
%{_bindir}/* %{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Nov 28 10:56:12 UTC 2012 - rguenther@suse.com
- Change update-alternative priorities to always prefer GNU ld
-------------------------------------------------------------------
Tue Nov 27 15:30:41 UTC 2012 - jengelh@inai.de
- Implement update-alternatives service for gold
-------------------------------------------------------------------
Tue Nov 27 12:44:19 UTC 2012 - adrian@suse.de
- update to version 2.23.1 release
- add aarch64 biarch patch
-------------------------------------------------------------------
Sat Nov 24 02:05:34 UTC 2012 - adrian@suse.de
- add cross-aarch64-binutils
-------------------------------------------------------------------
Thu Nov 22 19:38:33 UTC 2012 - jengelh@inai.de
- Have pre_checkin.sh create cross-sparc64-binutils
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else %else
BuildRequires: zlib-devel BuildRequires: zlib-devel
%endif %endif
Version: 2.23.0 Version: 2.23.1
Release: 0 Release: 0
# #
# RUN_TESTS # RUN_TESTS
@ -49,7 +49,7 @@ Release: 0
# #
# handle test suite failures # handle test suite failures
# #
%ifarch alpha %arm hppa mips sh4 %sparc %ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true %define make_check_handling true
%else %else
# XXX check again # XXX check again
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false %define make_check_handling false
%endif %endif
# handle all binary object formats supported by SuSE (and a few more) # handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm ia64 ppc ppc64 s390 s390x x86_64 %ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%define build_multitarget 1 %define build_multitarget 1
%else %else
%define build_multitarget 0 %define build_multitarget 0
%endif %endif
%define target_list alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64 %define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
# #
# #
# #
@ -99,7 +99,9 @@ Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch Patch21: binutils-2.22-objalloc.patch
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
Patch101: aarch64-biarch.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -112,6 +114,7 @@ Summary: The gold linker
License: GPL-3.0+ License: GPL-3.0+
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100 %if 0%{suse_version} > 1100
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc %define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
@ -123,7 +126,6 @@ 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 and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker. a drop-in replacement for the older GNU linker.
%package devel %package devel
Summary: GNU binutils (BFD development files) Summary: GNU binutils (BFD development files)
License: GPL-3.0+ License: GPL-3.0+
@ -161,6 +163,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14 %patch14
%patch18 %patch18
%patch21 %patch21
%patch101 -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
%patch90 %patch90
@ -202,6 +205,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%ifarch %arm %ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif %endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\ %define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\ --prefix=%{_prefix} --libdir=%{_libdir} \\\
@ -252,6 +258,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%if "%{TARGET}" == "arm" %if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu" %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET} TARGET_OS=%{TARGET}
%else %else
@ -306,11 +315,14 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
make DESTDIR=$RPM_BUILD_ROOT install-info install make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
# we could eventually use alternatives for /usr/bin/ld if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then mv "%buildroot/%_bindir"/{ld,ld.bfd};
rm $RPM_BUILD_ROOT%{_bindir}/ld else
ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld; rm -f "%buildroot/%_bindir/ld";
fi fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
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
@ -363,23 +375,37 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang > ../binutils.lang
%endif %endif
%clean
rm -rf $RPM_BUILD_ROOT
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
"%_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}/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
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun %postun
%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
%preun
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;
%endif %endif
%files -f binutils.lang %files -f binutils.lang
@ -390,6 +416,7 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/%{HOST}/lib/ldscripts %{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts %{_libdir}/ldscripts
%{_bindir}/* %{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Nov 28 10:56:12 UTC 2012 - rguenther@suse.com
- Change update-alternative priorities to always prefer GNU ld
-------------------------------------------------------------------
Tue Nov 27 15:30:41 UTC 2012 - jengelh@inai.de
- Implement update-alternatives service for gold
-------------------------------------------------------------------
Tue Nov 27 12:44:19 UTC 2012 - adrian@suse.de
- update to version 2.23.1 release
- add aarch64 biarch patch
-------------------------------------------------------------------
Sat Nov 24 02:05:34 UTC 2012 - adrian@suse.de
- add cross-aarch64-binutils
-------------------------------------------------------------------
Thu Nov 22 19:38:33 UTC 2012 - jengelh@inai.de
- Have pre_checkin.sh create cross-sparc64-binutils
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else %else
BuildRequires: zlib-devel BuildRequires: zlib-devel
%endif %endif
Version: 2.23.0 Version: 2.23.1
Release: 0 Release: 0
# #
# RUN_TESTS # RUN_TESTS
@ -49,7 +49,7 @@ Release: 0
# #
# handle test suite failures # handle test suite failures
# #
%ifarch alpha %arm hppa mips sh4 %sparc %ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true %define make_check_handling true
%else %else
# XXX check again # XXX check again
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false %define make_check_handling false
%endif %endif
# handle all binary object formats supported by SuSE (and a few more) # handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm ia64 ppc ppc64 s390 s390x x86_64 %ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%define build_multitarget 1 %define build_multitarget 1
%else %else
%define build_multitarget 0 %define build_multitarget 0
%endif %endif
%define target_list alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64 %define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
# #
# #
# #
@ -99,7 +99,9 @@ Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch Patch21: binutils-2.22-objalloc.patch
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
Patch101: aarch64-biarch.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -112,6 +114,7 @@ Summary: The gold linker
License: GPL-3.0+ License: GPL-3.0+
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100 %if 0%{suse_version} > 1100
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc %define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
@ -123,7 +126,6 @@ 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 and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker. a drop-in replacement for the older GNU linker.
%package devel %package devel
Summary: GNU binutils (BFD development files) Summary: GNU binutils (BFD development files)
License: GPL-3.0+ License: GPL-3.0+
@ -161,6 +163,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14 %patch14
%patch18 %patch18
%patch21 %patch21
%patch101 -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
%patch90 %patch90
@ -202,6 +205,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%ifarch %arm %ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif %endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\ %define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\ --prefix=%{_prefix} --libdir=%{_libdir} \\\
@ -252,6 +258,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%if "%{TARGET}" == "arm" %if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu" %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET} TARGET_OS=%{TARGET}
%else %else
@ -306,11 +315,14 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
make DESTDIR=$RPM_BUILD_ROOT install-info install make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
# we could eventually use alternatives for /usr/bin/ld if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then mv "%buildroot/%_bindir"/{ld,ld.bfd};
rm $RPM_BUILD_ROOT%{_bindir}/ld else
ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld; rm -f "%buildroot/%_bindir/ld";
fi fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
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
@ -363,23 +375,37 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang > ../binutils.lang
%endif %endif
%clean
rm -rf $RPM_BUILD_ROOT
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
"%_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}/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
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun %postun
%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
%preun
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;
%endif %endif
%files -f binutils.lang %files -f binutils.lang
@ -390,6 +416,7 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/%{HOST}/lib/ldscripts %{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts %{_libdir}/ldscripts
%{_bindir}/* %{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Nov 28 10:56:12 UTC 2012 - rguenther@suse.com
- Change update-alternative priorities to always prefer GNU ld
-------------------------------------------------------------------
Tue Nov 27 15:30:41 UTC 2012 - jengelh@inai.de
- Implement update-alternatives service for gold
-------------------------------------------------------------------
Tue Nov 27 12:44:19 UTC 2012 - adrian@suse.de
- update to version 2.23.1 release
- add aarch64 biarch patch
-------------------------------------------------------------------
Sat Nov 24 02:05:34 UTC 2012 - adrian@suse.de
- add cross-aarch64-binutils
-------------------------------------------------------------------
Thu Nov 22 19:38:33 UTC 2012 - jengelh@inai.de
- Have pre_checkin.sh create cross-sparc64-binutils
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else %else
BuildRequires: zlib-devel BuildRequires: zlib-devel
%endif %endif
Version: 2.23.0 Version: 2.23.1
Release: 0 Release: 0
# #
# RUN_TESTS # RUN_TESTS
@ -49,7 +49,7 @@ Release: 0
# #
# handle test suite failures # handle test suite failures
# #
%ifarch alpha %arm hppa mips sh4 %sparc %ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true %define make_check_handling true
%else %else
# XXX check again # XXX check again
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false %define make_check_handling false
%endif %endif
# handle all binary object formats supported by SuSE (and a few more) # handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm ia64 ppc ppc64 s390 s390x x86_64 %ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%define build_multitarget 1 %define build_multitarget 1
%else %else
%define build_multitarget 0 %define build_multitarget 0
%endif %endif
%define target_list alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64 %define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
# #
# #
# #
@ -99,7 +99,9 @@ Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch Patch21: binutils-2.22-objalloc.patch
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
Patch101: aarch64-biarch.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -112,6 +114,7 @@ Summary: The gold linker
License: GPL-3.0+ License: GPL-3.0+
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100 %if 0%{suse_version} > 1100
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc %define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
@ -123,7 +126,6 @@ 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 and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker. a drop-in replacement for the older GNU linker.
%package devel %package devel
Summary: GNU binutils (BFD development files) Summary: GNU binutils (BFD development files)
License: GPL-3.0+ License: GPL-3.0+
@ -161,6 +163,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14 %patch14
%patch18 %patch18
%patch21 %patch21
%patch101 -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
%patch90 %patch90
@ -202,6 +205,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%ifarch %arm %ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif %endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\ %define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\ --prefix=%{_prefix} --libdir=%{_libdir} \\\
@ -252,6 +258,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%if "%{TARGET}" == "arm" %if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu" %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET} TARGET_OS=%{TARGET}
%else %else
@ -306,11 +315,14 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
make DESTDIR=$RPM_BUILD_ROOT install-info install make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
# we could eventually use alternatives for /usr/bin/ld if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then mv "%buildroot/%_bindir"/{ld,ld.bfd};
rm $RPM_BUILD_ROOT%{_bindir}/ld else
ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld; rm -f "%buildroot/%_bindir/ld";
fi fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
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
@ -363,23 +375,37 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang > ../binutils.lang
%endif %endif
%clean
rm -rf $RPM_BUILD_ROOT
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
"%_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}/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
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun %postun
%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
%preun
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;
%endif %endif
%files -f binutils.lang %files -f binutils.lang
@ -390,6 +416,7 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/%{HOST}/lib/ldscripts %{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts %{_libdir}/ldscripts
%{_bindir}/* %{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Nov 28 10:56:12 UTC 2012 - rguenther@suse.com
- Change update-alternative priorities to always prefer GNU ld
-------------------------------------------------------------------
Tue Nov 27 15:30:41 UTC 2012 - jengelh@inai.de
- Implement update-alternatives service for gold
-------------------------------------------------------------------
Tue Nov 27 12:44:19 UTC 2012 - adrian@suse.de
- update to version 2.23.1 release
- add aarch64 biarch patch
-------------------------------------------------------------------
Sat Nov 24 02:05:34 UTC 2012 - adrian@suse.de
- add cross-aarch64-binutils
-------------------------------------------------------------------
Thu Nov 22 19:38:33 UTC 2012 - jengelh@inai.de
- Have pre_checkin.sh create cross-sparc64-binutils
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else %else
BuildRequires: zlib-devel BuildRequires: zlib-devel
%endif %endif
Version: 2.23.0 Version: 2.23.1
Release: 0 Release: 0
# #
# RUN_TESTS # RUN_TESTS
@ -49,7 +49,7 @@ Release: 0
# #
# handle test suite failures # handle test suite failures
# #
%ifarch alpha %arm hppa mips sh4 %sparc %ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true %define make_check_handling true
%else %else
# XXX check again # XXX check again
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false %define make_check_handling false
%endif %endif
# handle all binary object formats supported by SuSE (and a few more) # handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm ia64 ppc ppc64 s390 s390x x86_64 %ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%define build_multitarget 1 %define build_multitarget 1
%else %else
%define build_multitarget 0 %define build_multitarget 0
%endif %endif
%define target_list alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64 %define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
# #
# #
# #
@ -99,7 +99,9 @@ Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch Patch21: binutils-2.22-objalloc.patch
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
Patch101: aarch64-biarch.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -112,6 +114,7 @@ Summary: The gold linker
License: GPL-3.0+ License: GPL-3.0+
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100 %if 0%{suse_version} > 1100
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc %define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
@ -123,7 +126,6 @@ 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 and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker. a drop-in replacement for the older GNU linker.
%package devel %package devel
Summary: GNU binutils (BFD development files) Summary: GNU binutils (BFD development files)
License: GPL-3.0+ License: GPL-3.0+
@ -161,6 +163,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14 %patch14
%patch18 %patch18
%patch21 %patch21
%patch101 -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
%patch90 %patch90
@ -202,6 +205,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%ifarch %arm %ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif %endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\ %define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\ --prefix=%{_prefix} --libdir=%{_libdir} \\\
@ -252,6 +258,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%if "%{TARGET}" == "arm" %if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu" %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET} TARGET_OS=%{TARGET}
%else %else
@ -306,11 +315,14 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
make DESTDIR=$RPM_BUILD_ROOT install-info install make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
# we could eventually use alternatives for /usr/bin/ld if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then mv "%buildroot/%_bindir"/{ld,ld.bfd};
rm $RPM_BUILD_ROOT%{_bindir}/ld else
ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld; rm -f "%buildroot/%_bindir/ld";
fi fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
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
@ -363,23 +375,37 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang > ../binutils.lang
%endif %endif
%clean
rm -rf $RPM_BUILD_ROOT
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
"%_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}/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
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun %postun
%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
%preun
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;
%endif %endif
%files -f binutils.lang %files -f binutils.lang
@ -390,6 +416,7 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/%{HOST}/lib/ldscripts %{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts %{_libdir}/ldscripts
%{_bindir}/* %{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Nov 28 10:56:12 UTC 2012 - rguenther@suse.com
- Change update-alternative priorities to always prefer GNU ld
-------------------------------------------------------------------
Tue Nov 27 15:30:41 UTC 2012 - jengelh@inai.de
- Implement update-alternatives service for gold
-------------------------------------------------------------------
Tue Nov 27 12:44:19 UTC 2012 - adrian@suse.de
- update to version 2.23.1 release
- add aarch64 biarch patch
-------------------------------------------------------------------
Sat Nov 24 02:05:34 UTC 2012 - adrian@suse.de
- add cross-aarch64-binutils
-------------------------------------------------------------------
Thu Nov 22 19:38:33 UTC 2012 - jengelh@inai.de
- Have pre_checkin.sh create cross-sparc64-binutils
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else %else
BuildRequires: zlib-devel BuildRequires: zlib-devel
%endif %endif
Version: 2.23.0 Version: 2.23.1
Release: 0 Release: 0
# #
# RUN_TESTS # RUN_TESTS
@ -49,7 +49,7 @@ Release: 0
# #
# handle test suite failures # handle test suite failures
# #
%ifarch alpha %arm hppa mips sh4 %sparc %ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true %define make_check_handling true
%else %else
# XXX check again # XXX check again
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false %define make_check_handling false
%endif %endif
# handle all binary object formats supported by SuSE (and a few more) # handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm ia64 ppc ppc64 s390 s390x x86_64 %ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%define build_multitarget 1 %define build_multitarget 1
%else %else
%define build_multitarget 0 %define build_multitarget 0
%endif %endif
%define target_list alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64 %define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
# #
# #
# #
@ -99,7 +99,9 @@ Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch Patch21: binutils-2.22-objalloc.patch
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
Patch101: aarch64-biarch.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -112,6 +114,7 @@ Summary: The gold linker
License: GPL-3.0+ License: GPL-3.0+
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100 %if 0%{suse_version} > 1100
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc %define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
@ -123,7 +126,6 @@ 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 and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker. a drop-in replacement for the older GNU linker.
%package devel %package devel
Summary: GNU binutils (BFD development files) Summary: GNU binutils (BFD development files)
License: GPL-3.0+ License: GPL-3.0+
@ -161,6 +163,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14 %patch14
%patch18 %patch18
%patch21 %patch21
%patch101 -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
%patch90 %patch90
@ -202,6 +205,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%ifarch %arm %ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif %endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\ %define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\ --prefix=%{_prefix} --libdir=%{_libdir} \\\
@ -252,6 +258,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%if "%{TARGET}" == "arm" %if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu" %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET} TARGET_OS=%{TARGET}
%else %else
@ -306,11 +315,14 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
make DESTDIR=$RPM_BUILD_ROOT install-info install make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
# we could eventually use alternatives for /usr/bin/ld if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then mv "%buildroot/%_bindir"/{ld,ld.bfd};
rm $RPM_BUILD_ROOT%{_bindir}/ld else
ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld; rm -f "%buildroot/%_bindir/ld";
fi fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
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
@ -363,23 +375,37 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang > ../binutils.lang
%endif %endif
%clean
rm -rf $RPM_BUILD_ROOT
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
"%_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}/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
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun %postun
%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
%preun
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;
%endif %endif
%files -f binutils.lang %files -f binutils.lang
@ -390,6 +416,7 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/%{HOST}/lib/ldscripts %{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts %{_libdir}/ldscripts
%{_bindir}/* %{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Nov 28 10:56:12 UTC 2012 - rguenther@suse.com
- Change update-alternative priorities to always prefer GNU ld
-------------------------------------------------------------------
Tue Nov 27 15:30:41 UTC 2012 - jengelh@inai.de
- Implement update-alternatives service for gold
-------------------------------------------------------------------
Tue Nov 27 12:44:19 UTC 2012 - adrian@suse.de
- update to version 2.23.1 release
- add aarch64 biarch patch
-------------------------------------------------------------------
Sat Nov 24 02:05:34 UTC 2012 - adrian@suse.de
- add cross-aarch64-binutils
-------------------------------------------------------------------
Thu Nov 22 19:38:33 UTC 2012 - jengelh@inai.de
- Have pre_checkin.sh create cross-sparc64-binutils
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else %else
BuildRequires: zlib-devel BuildRequires: zlib-devel
%endif %endif
Version: 2.23.0 Version: 2.23.1
Release: 0 Release: 0
# #
# RUN_TESTS # RUN_TESTS
@ -49,7 +49,7 @@ Release: 0
# #
# handle test suite failures # handle test suite failures
# #
%ifarch alpha %arm hppa mips sh4 %sparc %ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true %define make_check_handling true
%else %else
# XXX check again # XXX check again
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false %define make_check_handling false
%endif %endif
# handle all binary object formats supported by SuSE (and a few more) # handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm ia64 ppc ppc64 s390 s390x x86_64 %ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%define build_multitarget 1 %define build_multitarget 1
%else %else
%define build_multitarget 0 %define build_multitarget 0
%endif %endif
%define target_list alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64 %define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
# #
# #
# #
@ -99,7 +99,9 @@ Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch Patch21: binutils-2.22-objalloc.patch
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
Patch101: aarch64-biarch.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -112,6 +114,7 @@ Summary: The gold linker
License: GPL-3.0+ License: GPL-3.0+
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100 %if 0%{suse_version} > 1100
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc %define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
@ -123,7 +126,6 @@ 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 and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker. a drop-in replacement for the older GNU linker.
%package devel %package devel
Summary: GNU binutils (BFD development files) Summary: GNU binutils (BFD development files)
License: GPL-3.0+ License: GPL-3.0+
@ -161,6 +163,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14 %patch14
%patch18 %patch18
%patch21 %patch21
%patch101 -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
%patch90 %patch90
@ -202,6 +205,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%ifarch %arm %ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif %endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\ %define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\ --prefix=%{_prefix} --libdir=%{_libdir} \\\
@ -252,6 +258,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%if "%{TARGET}" == "arm" %if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu" %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET} TARGET_OS=%{TARGET}
%else %else
@ -306,11 +315,14 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
make DESTDIR=$RPM_BUILD_ROOT install-info install make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
# we could eventually use alternatives for /usr/bin/ld if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then mv "%buildroot/%_bindir"/{ld,ld.bfd};
rm $RPM_BUILD_ROOT%{_bindir}/ld else
ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld; rm -f "%buildroot/%_bindir/ld";
fi fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
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
@ -363,23 +375,37 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang > ../binutils.lang
%endif %endif
%clean
rm -rf $RPM_BUILD_ROOT
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
"%_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}/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
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun %postun
%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
%preun
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;
%endif %endif
%files -f binutils.lang %files -f binutils.lang
@ -390,6 +416,7 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/%{HOST}/lib/ldscripts %{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts %{_libdir}/ldscripts
%{_bindir}/* %{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Nov 28 10:56:12 UTC 2012 - rguenther@suse.com
- Change update-alternative priorities to always prefer GNU ld
-------------------------------------------------------------------
Tue Nov 27 15:30:41 UTC 2012 - jengelh@inai.de
- Implement update-alternatives service for gold
-------------------------------------------------------------------
Tue Nov 27 12:44:19 UTC 2012 - adrian@suse.de
- update to version 2.23.1 release
- add aarch64 biarch patch
-------------------------------------------------------------------
Sat Nov 24 02:05:34 UTC 2012 - adrian@suse.de
- add cross-aarch64-binutils
-------------------------------------------------------------------
Thu Nov 22 19:38:33 UTC 2012 - jengelh@inai.de
- Have pre_checkin.sh create cross-sparc64-binutils
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else %else
BuildRequires: zlib-devel BuildRequires: zlib-devel
%endif %endif
Version: 2.23.0 Version: 2.23.1
Release: 0 Release: 0
# #
# RUN_TESTS # RUN_TESTS
@ -49,7 +49,7 @@ Release: 0
# #
# handle test suite failures # handle test suite failures
# #
%ifarch alpha %arm hppa mips sh4 %sparc %ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true %define make_check_handling true
%else %else
# XXX check again # XXX check again
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false %define make_check_handling false
%endif %endif
# handle all binary object formats supported by SuSE (and a few more) # handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm ia64 ppc ppc64 s390 s390x x86_64 %ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%define build_multitarget 1 %define build_multitarget 1
%else %else
%define build_multitarget 0 %define build_multitarget 0
%endif %endif
%define target_list alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64 %define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
# #
# #
# #
@ -99,7 +99,9 @@ Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch Patch21: binutils-2.22-objalloc.patch
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
Patch101: aarch64-biarch.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -112,6 +114,7 @@ Summary: The gold linker
License: GPL-3.0+ License: GPL-3.0+
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100 %if 0%{suse_version} > 1100
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc %define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
@ -123,7 +126,6 @@ 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 and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker. a drop-in replacement for the older GNU linker.
%package devel %package devel
Summary: GNU binutils (BFD development files) Summary: GNU binutils (BFD development files)
License: GPL-3.0+ License: GPL-3.0+
@ -161,6 +163,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14 %patch14
%patch18 %patch18
%patch21 %patch21
%patch101 -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
%patch90 %patch90
@ -202,6 +205,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%ifarch %arm %ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif %endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\ %define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\ --prefix=%{_prefix} --libdir=%{_libdir} \\\
@ -252,6 +258,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%if "%{TARGET}" == "arm" %if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu" %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET} TARGET_OS=%{TARGET}
%else %else
@ -306,11 +315,14 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
make DESTDIR=$RPM_BUILD_ROOT install-info install make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
# we could eventually use alternatives for /usr/bin/ld if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then mv "%buildroot/%_bindir"/{ld,ld.bfd};
rm $RPM_BUILD_ROOT%{_bindir}/ld else
ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld; rm -f "%buildroot/%_bindir/ld";
fi fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
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
@ -363,23 +375,37 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang > ../binutils.lang
%endif %endif
%clean
rm -rf $RPM_BUILD_ROOT
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
"%_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}/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
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun %postun
%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
%preun
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;
%endif %endif
%files -f binutils.lang %files -f binutils.lang
@ -390,6 +416,7 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/%{HOST}/lib/ldscripts %{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts %{_libdir}/ldscripts
%{_bindir}/* %{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Nov 28 10:56:12 UTC 2012 - rguenther@suse.com
- Change update-alternative priorities to always prefer GNU ld
-------------------------------------------------------------------
Tue Nov 27 15:30:41 UTC 2012 - jengelh@inai.de
- Implement update-alternatives service for gold
-------------------------------------------------------------------
Tue Nov 27 12:44:19 UTC 2012 - adrian@suse.de
- update to version 2.23.1 release
- add aarch64 biarch patch
-------------------------------------------------------------------
Sat Nov 24 02:05:34 UTC 2012 - adrian@suse.de
- add cross-aarch64-binutils
-------------------------------------------------------------------
Thu Nov 22 19:38:33 UTC 2012 - jengelh@inai.de
- Have pre_checkin.sh create cross-sparc64-binutils
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else %else
BuildRequires: zlib-devel BuildRequires: zlib-devel
%endif %endif
Version: 2.23.0 Version: 2.23.1
Release: 0 Release: 0
# #
# RUN_TESTS # RUN_TESTS
@ -49,7 +49,7 @@ Release: 0
# #
# handle test suite failures # handle test suite failures
# #
%ifarch alpha %arm hppa mips sh4 %sparc %ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true %define make_check_handling true
%else %else
# XXX check again # XXX check again
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false %define make_check_handling false
%endif %endif
# handle all binary object formats supported by SuSE (and a few more) # handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm ia64 ppc ppc64 s390 s390x x86_64 %ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%define build_multitarget 1 %define build_multitarget 1
%else %else
%define build_multitarget 0 %define build_multitarget 0
%endif %endif
%define target_list alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64 %define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
# #
# #
# #
@ -99,7 +99,9 @@ Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch Patch21: binutils-2.22-objalloc.patch
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
Patch101: aarch64-biarch.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -112,6 +114,7 @@ Summary: The gold linker
License: GPL-3.0+ License: GPL-3.0+
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100 %if 0%{suse_version} > 1100
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc %define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
@ -123,7 +126,6 @@ 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 and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker. a drop-in replacement for the older GNU linker.
%package devel %package devel
Summary: GNU binutils (BFD development files) Summary: GNU binutils (BFD development files)
License: GPL-3.0+ License: GPL-3.0+
@ -161,6 +163,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14 %patch14
%patch18 %patch18
%patch21 %patch21
%patch101 -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
%patch90 %patch90
@ -202,6 +205,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%ifarch %arm %ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif %endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\ %define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\ --prefix=%{_prefix} --libdir=%{_libdir} \\\
@ -252,6 +258,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%if "%{TARGET}" == "arm" %if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu" %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET} TARGET_OS=%{TARGET}
%else %else
@ -306,11 +315,14 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
make DESTDIR=$RPM_BUILD_ROOT install-info install make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
# we could eventually use alternatives for /usr/bin/ld if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then mv "%buildroot/%_bindir"/{ld,ld.bfd};
rm $RPM_BUILD_ROOT%{_bindir}/ld else
ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld; rm -f "%buildroot/%_bindir/ld";
fi fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
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
@ -363,23 +375,37 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang > ../binutils.lang
%endif %endif
%clean
rm -rf $RPM_BUILD_ROOT
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
"%_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}/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
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun %postun
%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
%preun
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;
%endif %endif
%files -f binutils.lang %files -f binutils.lang
@ -390,6 +416,7 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/%{HOST}/lib/ldscripts %{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts %{_libdir}/ldscripts
%{_bindir}/* %{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Nov 28 10:56:12 UTC 2012 - rguenther@suse.com
- Change update-alternative priorities to always prefer GNU ld
-------------------------------------------------------------------
Tue Nov 27 15:30:41 UTC 2012 - jengelh@inai.de
- Implement update-alternatives service for gold
-------------------------------------------------------------------
Tue Nov 27 12:44:19 UTC 2012 - adrian@suse.de
- update to version 2.23.1 release
- add aarch64 biarch patch
-------------------------------------------------------------------
Sat Nov 24 02:05:34 UTC 2012 - adrian@suse.de
- add cross-aarch64-binutils
-------------------------------------------------------------------
Thu Nov 22 19:38:33 UTC 2012 - jengelh@inai.de
- Have pre_checkin.sh create cross-sparc64-binutils
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else %else
BuildRequires: zlib-devel BuildRequires: zlib-devel
%endif %endif
Version: 2.23.0 Version: 2.23.1
Release: 0 Release: 0
# #
# RUN_TESTS # RUN_TESTS
@ -49,7 +49,7 @@ Release: 0
# #
# handle test suite failures # handle test suite failures
# #
%ifarch alpha %arm hppa mips sh4 %sparc %ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true %define make_check_handling true
%else %else
# XXX check again # XXX check again
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false %define make_check_handling false
%endif %endif
# handle all binary object formats supported by SuSE (and a few more) # handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm ia64 ppc ppc64 s390 s390x x86_64 %ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%define build_multitarget 1 %define build_multitarget 1
%else %else
%define build_multitarget 0 %define build_multitarget 0
%endif %endif
%define target_list alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64 %define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
# #
# #
# #
@ -99,7 +99,9 @@ Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch Patch21: binutils-2.22-objalloc.patch
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
Patch101: aarch64-biarch.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -112,6 +114,7 @@ Summary: The gold linker
License: GPL-3.0+ License: GPL-3.0+
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100 %if 0%{suse_version} > 1100
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc %define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
@ -123,7 +126,6 @@ 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 and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker. a drop-in replacement for the older GNU linker.
%package devel %package devel
Summary: GNU binutils (BFD development files) Summary: GNU binutils (BFD development files)
License: GPL-3.0+ License: GPL-3.0+
@ -161,6 +163,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14 %patch14
%patch18 %patch18
%patch21 %patch21
%patch101 -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
%patch90 %patch90
@ -202,6 +205,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%ifarch %arm %ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif %endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\ %define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\ --prefix=%{_prefix} --libdir=%{_libdir} \\\
@ -252,6 +258,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%if "%{TARGET}" == "arm" %if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu" %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET} TARGET_OS=%{TARGET}
%else %else
@ -306,11 +315,14 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
make DESTDIR=$RPM_BUILD_ROOT install-info install make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
# we could eventually use alternatives for /usr/bin/ld if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then mv "%buildroot/%_bindir"/{ld,ld.bfd};
rm $RPM_BUILD_ROOT%{_bindir}/ld else
ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld; rm -f "%buildroot/%_bindir/ld";
fi fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
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
@ -363,23 +375,37 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang > ../binutils.lang
%endif %endif
%clean
rm -rf $RPM_BUILD_ROOT
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
"%_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}/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
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun %postun
%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
%preun
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;
%endif %endif
%files -f binutils.lang %files -f binutils.lang
@ -390,6 +416,7 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/%{HOST}/lib/ldscripts %{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts %{_libdir}/ldscripts
%{_bindir}/* %{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold

File diff suppressed because it is too large Load Diff

447
cross-sparc64-binutils.spec Normal file
View File

@ -0,0 +1,447 @@
#
# spec file for package cross-sparc64-binutils
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# 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-sparc64-binutils
ExcludeArch: sparc64
%define cross 1
%define TARGET sparc64
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
Version: 2.23.1
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 s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 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
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
Patch14: binutils-build-as-needed.diff
Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch
Patch90: cross-avr-nesc-as.patch
Patch92: cross-avr-omit_section_dynsym.patch
Patch101: aarch64-biarch.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}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
%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}
%if !%{test_vanilla}
%patch3
%patch4
%patch5
%patch6
%patch7 -p1
%patch8
%patch9
%patch10
%patch11
%patch14
%patch18
%patch21
%patch101 -p1
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
%patch92
%endif
#
# test_vanilla
%endif
sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' bfd/version.h
%build
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
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
%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 \\\
--with-pic --build=%{HOST}
mkdir build-dir
cd build-dir
../configure %common_flags \
${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} \
--enable-plugins \
%ifarch %gold_archs
--enable-gold \
--enable-threads \
%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"
TARGET_OS=%{TARGET}
%else
%if "%{TARGET}" == "arm"
TARGET_OS=%{TARGET}-suse-linux-gnueabi
%else
TARGET_OS=%{TARGET}-suse-linux
%endif
%endif
../configure CFLAGS="${RPM_OPT_FLAGS}" \
--prefix=%{_prefix} \
--with-bugurl=http://bugs.opensuse.org/ \
--with-pkgversion="GNU Binutils; %{DIST}" \
--disable-nls \
--build=%{HOST} --target=$TARGET_OS \
%if "%{TARGET}" == "spu"
--with-sysroot=/usr/spu \
%else
--with-sysroot=%{_prefix}/$TARGET_OS/sys-root \
%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";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
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
rm $RPM_BUILD_ROOT%{_infodir}/configure* $RPM_BUILD_ROOT%{_infodir}/standards.info*
rm $RPM_BUILD_ROOT%{_mandir}/man1/dlltool.1 $RPM_BUILD_ROOT%{_mandir}/man1/windres.1 $RPM_BUILD_ROOT%{_mandir}/man1/windmc.1
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
T=$(basename %buildroot/usr/%{TARGET}*)
for f in %buildroot/usr/$T/bin/* ; do
ln -sf /usr/bin/$T-$(basename $f) $f
done
%if "%{TARGET}" == "avr"
install -c gas-nesc/as-new $RPM_BUILD_ROOT%{_prefix}/bin/%{TARGET}-nesc-as
ln -sf ../../bin/%{TARGET}-nesc-as $RPM_BUILD_ROOT%{_prefix}/%{TARGET}/bin/nesc-as
%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
"%_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
%postun
%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
%preun
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;
%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
%{_prefix}/%{TARGET}*
%{_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

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Nov 28 10:56:12 UTC 2012 - rguenther@suse.com
- Change update-alternative priorities to always prefer GNU ld
-------------------------------------------------------------------
Tue Nov 27 15:30:41 UTC 2012 - jengelh@inai.de
- Implement update-alternatives service for gold
-------------------------------------------------------------------
Tue Nov 27 12:44:19 UTC 2012 - adrian@suse.de
- update to version 2.23.1 release
- add aarch64 biarch patch
-------------------------------------------------------------------
Sat Nov 24 02:05:34 UTC 2012 - adrian@suse.de
- add cross-aarch64-binutils
-------------------------------------------------------------------
Thu Nov 22 19:38:33 UTC 2012 - jengelh@inai.de
- Have pre_checkin.sh create cross-sparc64-binutils
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else %else
BuildRequires: zlib-devel BuildRequires: zlib-devel
%endif %endif
Version: 2.23.0 Version: 2.23.1
Release: 0 Release: 0
# #
# RUN_TESTS # RUN_TESTS
@ -49,7 +49,7 @@ Release: 0
# #
# handle test suite failures # handle test suite failures
# #
%ifarch alpha %arm hppa mips sh4 %sparc %ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true %define make_check_handling true
%else %else
# XXX check again # XXX check again
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false %define make_check_handling false
%endif %endif
# handle all binary object formats supported by SuSE (and a few more) # handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm ia64 ppc ppc64 s390 s390x x86_64 %ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%define build_multitarget 1 %define build_multitarget 1
%else %else
%define build_multitarget 0 %define build_multitarget 0
%endif %endif
%define target_list alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64 %define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
# #
# #
# #
@ -99,7 +99,9 @@ Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch Patch21: binutils-2.22-objalloc.patch
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
Patch101: aarch64-biarch.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -112,6 +114,7 @@ Summary: The gold linker
License: GPL-3.0+ License: GPL-3.0+
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100 %if 0%{suse_version} > 1100
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc %define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
@ -123,7 +126,6 @@ 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 and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker. a drop-in replacement for the older GNU linker.
%package devel %package devel
Summary: GNU binutils (BFD development files) Summary: GNU binutils (BFD development files)
License: GPL-3.0+ License: GPL-3.0+
@ -161,6 +163,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14 %patch14
%patch18 %patch18
%patch21 %patch21
%patch101 -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
%patch90 %patch90
@ -202,6 +205,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%ifarch %arm %ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif %endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\ %define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\ --prefix=%{_prefix} --libdir=%{_libdir} \\\
@ -252,6 +258,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%if "%{TARGET}" == "arm" %if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu" %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET} TARGET_OS=%{TARGET}
%else %else
@ -306,11 +315,14 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
make DESTDIR=$RPM_BUILD_ROOT install-info install make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
# we could eventually use alternatives for /usr/bin/ld if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then mv "%buildroot/%_bindir"/{ld,ld.bfd};
rm $RPM_BUILD_ROOT%{_bindir}/ld else
ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld; rm -f "%buildroot/%_bindir/ld";
fi fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
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
@ -363,23 +375,37 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang > ../binutils.lang
%endif %endif
%clean
rm -rf $RPM_BUILD_ROOT
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
"%_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}/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
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun %postun
%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
%preun
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;
%endif %endif
%files -f binutils.lang %files -f binutils.lang
@ -390,6 +416,7 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/%{HOST}/lib/ldscripts %{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts %{_libdir}/ldscripts
%{_bindir}/* %{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Nov 28 10:56:12 UTC 2012 - rguenther@suse.com
- Change update-alternative priorities to always prefer GNU ld
-------------------------------------------------------------------
Tue Nov 27 15:30:41 UTC 2012 - jengelh@inai.de
- Implement update-alternatives service for gold
-------------------------------------------------------------------
Tue Nov 27 12:44:19 UTC 2012 - adrian@suse.de
- update to version 2.23.1 release
- add aarch64 biarch patch
-------------------------------------------------------------------
Sat Nov 24 02:05:34 UTC 2012 - adrian@suse.de
- add cross-aarch64-binutils
-------------------------------------------------------------------
Thu Nov 22 19:38:33 UTC 2012 - jengelh@inai.de
- Have pre_checkin.sh create cross-sparc64-binutils
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com Wed Oct 24 11:03:16 UTC 2012 - rguenther@suse.com

View File

@ -38,7 +38,7 @@ BuildRequires: zlib-devel-static
%else %else
BuildRequires: zlib-devel BuildRequires: zlib-devel
%endif %endif
Version: 2.23.0 Version: 2.23.1
Release: 0 Release: 0
# #
# RUN_TESTS # RUN_TESTS
@ -49,7 +49,7 @@ Release: 0
# #
# handle test suite failures # handle test suite failures
# #
%ifarch alpha %arm hppa mips sh4 %sparc %ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling true %define make_check_handling true
%else %else
# XXX check again # XXX check again
@ -61,12 +61,12 @@ Release: 0
%define make_check_handling false %define make_check_handling false
%endif %endif
# handle all binary object formats supported by SuSE (and a few more) # handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm ia64 ppc ppc64 s390 s390x x86_64 %ifarch %ix86 %arm aarch64 ia64 ppc ppc64 s390 s390x x86_64
%define build_multitarget 1 %define build_multitarget 1
%else %else
%define build_multitarget 0 %define build_multitarget 0
%endif %endif
%define target_list alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64 %define target_list aarch64 alpha armv5l armv7l armv8l hppa hppa64 i686 ia64 m68k mips powerpc powerpc64 s390 s390x sh4 sparc sparc64 x86_64
# #
# #
# #
@ -99,7 +99,9 @@ Patch18: gold-depend-on-opcodes.diff
Patch21: binutils-2.22-objalloc.patch Patch21: binutils-2.22-objalloc.patch
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
Patch101: aarch64-biarch.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: update-alternatives
%description %description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
@ -112,6 +114,7 @@ Summary: The gold linker
License: GPL-3.0+ License: GPL-3.0+
Group: Development/Tools/Building Group: Development/Tools/Building
Requires: binutils = %{version}-%{release} Requires: binutils = %{version}-%{release}
PreReq: update-alternatives
%if 0%{suse_version} > 1100 %if 0%{suse_version} > 1100
%if 0%{!?cross:1} %if 0%{!?cross:1}
%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc %define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc
@ -123,7 +126,6 @@ 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 and to run as fast as possible on modern systems. For normal use it is
a drop-in replacement for the older GNU linker. a drop-in replacement for the older GNU linker.
%package devel %package devel
Summary: GNU binutils (BFD development files) Summary: GNU binutils (BFD development files)
License: GPL-3.0+ License: GPL-3.0+
@ -161,6 +163,7 @@ echo "make check will return with %{make_check_handling} in case of testsuite fa
%patch14 %patch14
%patch18 %patch18
%patch21 %patch21
%patch101 -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
%patch90 %patch90
@ -202,6 +205,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%ifarch %arm %ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif %endif
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\ %define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
--prefix=%{_prefix} --libdir=%{_libdir} \\\ --prefix=%{_prefix} --libdir=%{_libdir} \\\
@ -252,6 +258,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%if "%{TARGET}" == "arm" %if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi" EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif %endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu" %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
TARGET_OS=%{TARGET} TARGET_OS=%{TARGET}
%else %else
@ -306,11 +315,14 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
make DESTDIR=$RPM_BUILD_ROOT install-info install make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
# we could eventually use alternatives for /usr/bin/ld if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then mv "%buildroot/%_bindir"/{ld,ld.bfd};
rm $RPM_BUILD_ROOT%{_bindir}/ld else
ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld; rm -f "%buildroot/%_bindir/ld";
fi fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
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
@ -363,23 +375,37 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang > ../binutils.lang
%endif %endif
%clean
rm -rf $RPM_BUILD_ROOT
%if 0%{!?cross:1} %if 0%{!?cross:1}
%post %post
"%_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}/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
%post gold
"%_sbindir/update-alternatives" --install \
"%_bindir/ld" ld "%_bindir/ld.gold" 1
%postun %postun
%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
%preun
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;
%endif %endif
%files -f binutils.lang %files -f binutils.lang
@ -390,6 +416,7 @@ rm -rf $RPM_BUILD_ROOT
%{_prefix}/%{HOST}/lib/ldscripts %{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts %{_libdir}/ldscripts
%{_bindir}/* %{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs %ifarch %gold_archs
%exclude %{_bindir}/gold %exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold %exclude %{_bindir}/ld.gold

View File

@ -1,6 +1,8 @@
--- gold/configure.orig 2011-01-11 12:22:06.000000000 +0100 Index: gold/configure
+++ gold/configure 2011-01-11 12:23:38.000000000 +0100 ===================================================================
@@ -3389,7 +3389,8 @@ --- gold/configure.orig
+++ gold/configure
@@ -3405,7 +3405,8 @@ for targ in $target $canon_targets; do
. ${srcdir}/configure.tgt . ${srcdir}/configure.tgt
if test "$targ_obj" = "UNKNOWN"; then if test "$targ_obj" = "UNKNOWN"; then
@ -10,5 +12,3 @@
else else
targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)" targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)"
if test "$targ_extra_obj" != ""; then if test "$targ_extra_obj" != ""; then

View File

@ -1,8 +1,8 @@
Index: Makefile.def Index: Makefile.def
=================================================================== ===================================================================
--- Makefile.def.orig 2011-07-26 20:48:02.000000000 +0200 --- Makefile.def.orig
+++ Makefile.def 2011-09-28 15:28:31.000000000 +0200 +++ Makefile.def
@@ -403,6 +403,7 @@ dependencies = { module=configure-gold; @@ -404,6 +404,7 @@ dependencies = { module=configure-gold;
dependencies = { module=all-gold; on=all-libiberty; }; dependencies = { module=all-gold; on=all-libiberty; };
dependencies = { module=all-gold; on=all-intl; }; dependencies = { module=all-gold; on=all-intl; };
dependencies = { module=all-gold; on=all-bfd; }; dependencies = { module=all-gold; on=all-bfd; };
@ -12,9 +12,9 @@ Index: Makefile.def
dependencies = { module=check-gold; on=all-gas; }; dependencies = { module=check-gold; on=all-gas; };
Index: Makefile.in Index: Makefile.in
=================================================================== ===================================================================
--- Makefile.in.orig 2011-07-26 20:48:03.000000000 +0200 --- Makefile.in.orig
+++ Makefile.in 2011-09-28 15:28:31.000000000 +0200 +++ Makefile.in
@@ -42856,6 +42856,14 @@ all-stage3-gold: maybe-all-stage3-bfd @@ -42851,6 +42851,14 @@ all-stage3-gold: maybe-all-stage3-bfd
all-stage4-gold: maybe-all-stage4-bfd all-stage4-gold: maybe-all-stage4-bfd
all-stageprofile-gold: maybe-all-stageprofile-bfd all-stageprofile-gold: maybe-all-stageprofile-bfd
all-stagefeedback-gold: maybe-all-stagefeedback-bfd all-stagefeedback-gold: maybe-all-stagefeedback-bfd

View File

@ -1,8 +1,8 @@
Index: binutils-2.20.0/ld/ld.texinfo Index: binutils-2.23.1/ld/ld.texinfo
=================================================================== ===================================================================
--- binutils-2.20.0.orig/ld/ld.texinfo 2009-11-23 14:02:48.000000000 +0100 --- binutils-2.23.1.orig/ld/ld.texinfo
+++ binutils-2.20.0/ld/ld.texinfo 2009-11-23 14:03:08.000000000 +0100 +++ binutils-2.23.1/ld/ld.texinfo
@@ -2026,7 +2026,7 @@ This linker can create the new dynamic t @@ -2089,7 +2089,7 @@ This linker can create the new dynamic t
systems may not understand them. If you specify systems may not understand them. If you specify
@option{--enable-new-dtags}, the dynamic tags will be created as needed. @option{--enable-new-dtags}, the dynamic tags will be created as needed.
If you specify @option{--disable-new-dtags}, no new dynamic tags will be If you specify @option{--disable-new-dtags}, no new dynamic tags will be
@ -11,11 +11,11 @@ Index: binutils-2.20.0/ld/ld.texinfo
those options are only available for ELF systems. those options are only available for ELF systems.
@kindex --hash-size=@var{number} @kindex --hash-size=@var{number}
Index: binutils-2.20.0/ld/ldmain.c Index: binutils-2.23.1/ld/ldmain.c
=================================================================== ===================================================================
--- binutils-2.20.0.orig/ld/ldmain.c 2009-11-23 14:02:48.000000000 +0100 --- binutils-2.23.1.orig/ld/ldmain.c
+++ binutils-2.20.0/ld/ldmain.c 2009-11-23 14:03:08.000000000 +0100 +++ binutils-2.23.1/ld/ldmain.c
@@ -262,6 +262,7 @@ main (int argc, char **argv) @@ -275,6 +275,7 @@ main (int argc, char **argv)
link_info.allow_undefined_version = TRUE; link_info.allow_undefined_version = TRUE;
link_info.keep_memory = TRUE; link_info.keep_memory = TRUE;

View File

@ -2,7 +2,7 @@
# the script takes binutils* and creates the cross-* packages # the script takes binutils* and creates the cross-* packages
# sh4 is stuck in the testsuite # sh4 is stuck in the testsuite
for arch in hppa hppa64 mips arm i386 x86_64 s390 s390x ppc ppc64 ia64 sparc alpha spu avr; do for arch in aarch64 hppa hppa64 mips arm i386 x86_64 s390 s390x ppc ppc64 ia64 sparc sparc64 alpha spu avr; do
echo -n "Building package for $arch --> cross-$arch-binutils ..." echo -n "Building package for $arch --> cross-$arch-binutils ..."

View File

@ -1,8 +1,8 @@
Index: ld/emulparams/elf_s390.sh Index: ld/emulparams/elf_s390.sh
=================================================================== ===================================================================
--- ld/emulparams/elf_s390.sh.orig 2009-11-23 14:02:48.000000000 +0100 --- ld/emulparams/elf_s390.sh.orig
+++ ld/emulparams/elf_s390.sh 2009-11-23 14:03:08.000000000 +0100 +++ ld/emulparams/elf_s390.sh
@@ -11,3 +11,18 @@ TEMPLATE_NAME=elf32 @@ -12,3 +12,18 @@ GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes GENERATE_PIE_SCRIPT=yes
NO_SMALL_DATA=yes NO_SMALL_DATA=yes
IREL_IN_PLT= IREL_IN_PLT=

View File

@ -1,7 +1,7 @@
Index: binutils/testsuite/binutils-all/windres/windres.exp Index: binutils/testsuite/binutils-all/windres/windres.exp
=================================================================== ===================================================================
--- binutils/testsuite/binutils-all/windres/windres.exp.orig 2009-11-23 14:02:48.000000000 +0100 --- binutils/testsuite/binutils-all/windres/windres.exp.orig
+++ binutils/testsuite/binutils-all/windres/windres.exp 2009-11-23 14:03:09.000000000 +0100 +++ binutils/testsuite/binutils-all/windres/windres.exp
@@ -36,6 +36,7 @@ set wr "$WINDRES --include-dir $srcdir/$ @@ -36,6 +36,7 @@ set wr "$WINDRES --include-dir $srcdir/$
if [file exists "$srcdir/../../winsup/w32api/include"] { if [file exists "$srcdir/../../winsup/w32api/include"] {
set wr "$wr --include-dir $srcdir/../../winsup/w32api/include" set wr "$wr --include-dir $srcdir/../../winsup/w32api/include"
@ -12,8 +12,8 @@ Index: binutils/testsuite/binutils-all/windres/windres.exp
Index: ld/testsuite/ld-srec/srec.exp Index: ld/testsuite/ld-srec/srec.exp
=================================================================== ===================================================================
--- ld/testsuite/ld-srec/srec.exp.orig 2009-11-23 14:02:48.000000000 +0100 --- ld/testsuite/ld-srec/srec.exp.orig
+++ ld/testsuite/ld-srec/srec.exp 2009-11-23 14:03:09.000000000 +0100 +++ ld/testsuite/ld-srec/srec.exp
@@ -20,6 +20,9 @@ @@ -20,6 +20,9 @@
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA. # MA 02110-1301, USA.
@ -26,9 +26,9 @@ Index: ld/testsuite/ld-srec/srec.exp
proc srec_off { l } { proc srec_off { l } {
Index: ld/testsuite/ld-undefined/undefined.exp Index: ld/testsuite/ld-undefined/undefined.exp
=================================================================== ===================================================================
--- ld/testsuite/ld-undefined/undefined.exp.orig 2009-11-23 14:02:48.000000000 +0100 --- ld/testsuite/ld-undefined/undefined.exp.orig
+++ ld/testsuite/ld-undefined/undefined.exp 2009-11-23 14:03:09.000000000 +0100 +++ ld/testsuite/ld-undefined/undefined.exp
@@ -136,7 +136,7 @@ setup_xfail "sh64-*-*" @@ -134,7 +134,7 @@ setup_xfail "sh64-*-*"
# the function. Therefore the line number in the error message is 8 instead # the function. Therefore the line number in the error message is 8 instead
# of 9. On 64 bit s/390 this works because of the new brasl instruction that # of 9. On 64 bit s/390 this works because of the new brasl instruction that
# doesn't need a literal pool entry. # doesn't need a literal pool entry.

View File

@ -1,8 +1,8 @@
Index: ld/testsuite/ld-selective/selective.exp Index: ld/testsuite/ld-selective/selective.exp
=================================================================== ===================================================================
--- ld/testsuite/ld-selective/selective.exp.orig 2011-02-10 04:41:11.000000000 +0100 --- ld/testsuite/ld-selective/selective.exp.orig
+++ ld/testsuite/ld-selective/selective.exp 2011-04-19 14:54:34.000000000 +0200 +++ ld/testsuite/ld-selective/selective.exp
@@ -59,8 +59,8 @@ set seltests { @@ -47,8 +47,8 @@ set seltests {
{A::foo() B::foo() dropme1() dropme2()} {*-*-*}} {A::foo() B::foo() dropme1() dropme2()} {*-*-*}}
} }

View File

@ -1,7 +1,7 @@
Index: ld/ldmain.c Index: ld/ldmain.c
=================================================================== ===================================================================
--- ld/ldmain.c.orig 2012-09-14 14:01:52.209165500 +0200 --- ld/ldmain.c.orig
+++ ld/ldmain.c 2012-09-14 14:01:52.273165498 +0200 +++ ld/ldmain.c
@@ -279,6 +279,7 @@ main (int argc, char **argv) @@ -279,6 +279,7 @@ main (int argc, char **argv)
link_info.combreloc = TRUE; link_info.combreloc = TRUE;
link_info.strip_discarded = TRUE; link_info.strip_discarded = TRUE;
@ -12,8 +12,8 @@ Index: ld/ldmain.c
/* SVR4 linkers seem to set DT_INIT and DT_FINI based on magic _init /* SVR4 linkers seem to set DT_INIT and DT_FINI based on magic _init
Index: ld/testsuite/config/default.exp Index: ld/testsuite/config/default.exp
=================================================================== ===================================================================
--- ld/testsuite/config/default.exp.orig 2012-09-14 14:01:52.223165499 +0200 --- ld/testsuite/config/default.exp.orig
+++ ld/testsuite/config/default.exp 2012-09-14 14:01:52.273165498 +0200 +++ ld/testsuite/config/default.exp
@@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
# #