X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=packaging%2Fcross-arm-binutils.spec;h=0b00125372fe812a82a51584b7310bd118c98093;hb=HEAD;hp=610007b8722f5e639908f0e7ac9de0a03b400efb;hpb=d8e34cd3ac4303e82ff9de51b7909b6ffde5b9c6;p=platform%2Fupstream%2Fbinutils.git diff --git a/packaging/cross-arm-binutils.spec b/packaging/cross-arm-binutils.spec index 610007b..0b00125 100644 --- a/packaging/cross-arm-binutils.spec +++ b/packaging/cross-arm-binutils.spec @@ -1,23 +1,5 @@ -# -# spec file for package cross-arm-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-arm-binutils -ExcludeArch: %arm +Name: cross-arm-binutils +ExclusiveArch: %{ix86} x86_64 %define cross 1 %define TARGET arm BuildRequires: bison @@ -27,9 +9,10 @@ BuildRequires: gcc-c++ BuildRequires: glibc-devel-static # for some gold tests BuildRequires: bc -BuildRequires: makeinfo +BuildRequires: makeinfo ncurses-devel BuildRequires: zlib-devel-static -Version: 2.22 +Requires(pre): update-alternatives +Version: 2.25 Release: 0 # # RUN_TESTS @@ -40,7 +23,7 @@ Release: 0 # # handle test suite failures # -%ifarch alpha %arm hppa mips sh4 %sparc +%ifarch alpha %arm aarch64 hppa mips sh4 %sparc %define make_check_handling true %else # XXX check again @@ -52,42 +35,23 @@ Release: 0 %define make_check_handling false %endif # 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 %else %define build_multitarget 0 %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 # # # Url: http://www.gnu.org/software/binutils/ -%define binutils_version %(echo %version | sed 's/\\.[0-9]\\{8\\}$//') +#%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 +Group: Development/Building +Source: 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 -Patch15: fixup-testcase-perturb.diff -Patch18: gold-depend-on-opcodes.diff -Patch19: bso12451.diff -Patch20: bso13449.diff -Patch90: cross-avr-nesc-as.patch -Patch92: cross-avr-omit_section_dynsym.patch -Patch93: avr-binutils-relocs.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-build %description C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib, @@ -98,11 +62,9 @@ to compile a program or kernel. %package gold Summary: The gold linker License: GPL-3.0+ -Group: Development/Tools/Building -Requires: binutils = %{version}-%{release} -%if 0%{!?cross:1} -%define gold_archs %ix86 %arm x86_64 ppc ppc64 %sparc -%endif +Group: Development/Building +Requires: %{name} = %{version}-%{release} +%define gold_archs %ix86 %arm aarch64 x86_64 ppc ppc64 %sparc %description gold gold is an ELF linker. It is intended to have complete support for ELF @@ -113,7 +75,7 @@ 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++ +Group: Development/Building Requires: binutils = %{version}-%{release} Requires: zlib-devel Provides: binutils:/usr/include/bfd.h @@ -133,35 +95,20 @@ binutils. %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 -%patch15 -%patch18 -%patch19 -p1 -%patch20 -p1 -%if "%{TARGET}" == "avr" -cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h -%patch90 -%patch92 -%patch93 -p1 +%setup -q -n binutils-%{version} + +%if 0%{!?cross:1} +%ifarch %arm +ulimit -Hs unlimited +ulimit -s unlimited %endif -# -# test_vanilla %endif -sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' bfd/version.h +sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' bfd/version.h %build +RPM_OPT_FLAGS="$RPM_OPT_FLAGS -DBFD_PLUGIN_LTO_NAME=liblto_plugin_%{_arch}.so" RPM_OPT_FLAGS="$RPM_OPT_FLAGS -Wno-error" +RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS |sed -e 's/atom/i686/g'` %if 0%{!?cross:1} # Building native binutils echo "Building native binutils." @@ -191,6 +138,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf" %ifarch %arm EXTRA_TARGETS="$EXTRA_TARGETS,arm-tizen-linux-gnueabi" %endif +%ifarch aarch64 +EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-tizen-linux" +%endif %endif %define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\ --prefix=%{_prefix} --libdir=%{_libdir} \\\ @@ -202,6 +152,12 @@ EXTRA_TARGETS="$EXTRA_TARGETS,arm-tizen-linux-gnueabi" --with-pic --build=%{HOST} mkdir build-dir cd build-dir + +%ifarch %arm +export CONFIG_SHELL="/bin/bash" +export SHELL="/bin/bash" +%endif + ../configure %common_flags \ ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} \ --enable-plugins \ @@ -241,6 +197,9 @@ EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-tizen-linux" %if "%{TARGET}" == "arm" EXTRA_TARGETS="$EXTRA_TARGETS,arm-tizen-linux-gnueabi" %endif +%if "%{TARGET}" == "aarch64" +EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-tizen-linux" +%endif %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu" TARGET_OS=%{TARGET} %else @@ -251,6 +210,10 @@ TARGET_OS=%{TARGET}-tizen-linux %endif %endif ../configure CFLAGS="${RPM_OPT_FLAGS}" \ + --enable-plugins \ +%ifarch %gold_archs + --enable-gold \ +%endif --prefix=%{_prefix} \ --with-bugurl=http://bugs.opensuse.org/ \ --with-pkgversion="GNU Binutils; %{DIST}" \ @@ -292,19 +255,33 @@ cd build-dir 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 -# we could eventually use alternatives for /usr/bin/ld -if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then - rm $RPM_BUILD_ROOT%{_bindir}/ld - ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld; + +# We have gdb in separate package +rm -f %buildroot/%_bindir/gdb* +rm -f %buildroot/%_bindir/gcore* + +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 +%ifarch %gold_archs +ln -sf ../../bin/ld.gold $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin +%endif + +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 @@ -313,11 +290,10 @@ 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 +rm -f $RPM_BUILD_ROOT%{_libdir}/lib{bfd,opcodes,inproctrace}.so +rm -f $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 +rm -f $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 @@ -349,15 +325,38 @@ 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 + +# We have gdb in separate package +rm -f $RPM_BUILD_ROOT%{_bindir}/gdb* +rm -f $RPM_BUILD_ROOT%{_bindir}/gcore* +rm -rf $RPM_BUILD_ROOT%{_datadir}/gdb + > ../binutils.lang %endif cd $RPM_BUILD_DIR/binutils-%version -%clean -rm -rf $RPM_BUILD_ROOT %if 0%{!?cross:1} %docs_package +%post +"%_sbindir/update-alternatives" --install \ + "%_bindir/ld" ld "%_bindir/ld.bfd" 1 + +%post gold +"%_sbindir/update-alternatives" --install \ + "%_bindir/ld" ld "%_bindir/ld.gold" 2 + + +%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 @@ -366,11 +365,11 @@ rm -rf $RPM_BUILD_ROOT %{_docdir}/%{name} %{_prefix}/%{HOST}/bin/* %{_prefix}/%{HOST}/lib/ldscripts -#%{_libdir}/ldscripts +%ghost %_sysconfdir/alternatives/ld +%{_libdir}/ldscripts %{_bindir}/* %ifarch %gold_archs -%exclude %{_bindir}/gold -%exclude %{_bindir}/ld.gold +%exclude %{_bindir}/*gold %endif %doc %{_infodir}/*.gz %{_libdir}/lib*-%{version}*.so @@ -382,16 +381,25 @@ rm -rf $RPM_BUILD_ROOT %ifarch %gold_archs %files gold %defattr(-,root,root) -%doc gold/NEWS gold/README -%{_bindir}/gold -%{_bindir}/ld.gold +%{_bindir}/*gold +%if 0%{?cross:1} +%if "%{TARGET}" == "arm" +%{_prefix}/%{TARGET}-tizen-linux-gnueabi/bin/*gold +%else +%{_prefix}/%{TARGET}-tizen-linux/bin/*gold +%endif +%else +%{_prefix}/%{HOST}/bin/*gold +%endif %endif %if 0%{!?cross:1} %files devel %defattr(-,root,root) %{_prefix}/include/*.h +%{_prefix}/include/gdb/*.h %{_libdir}/lib*.*a +%{_datadir}/gdb/* %endif %changelog