Summary: PPU binary utilities Name: ppu-binutils Version: 2.17.50 Release: 8 License: GPL Group: Development/Languages Source0: binutils-2.17.50-20070112.tar.bz2 Patch1: binutils-soma.diff Patch2: binutils-embed.diff Patch3: binutils-spuerr.diff Patch4: binutils-ppc64reloc.diff Patch5: binutils-execstack.diff Patch6: binutils-miscfixes.diff Patch7: binutils-bin2c.diff Patch8: binutils-spuovl.diff Patch9: binutils-embedsym.diff Patch10: binutils-cygbuild.diff BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: dejagnu, bison, flex, texinfo %define _unpackaged_files_terminate_build 1 %description The ppu-binutils package contains GNU binutils version 2.17.50. # Don't strip as the host binutils may be unable to handle SPU objects. %define __os_install_post /usr/lib/rpm/brp-compress # When building the cross-toolchain, reset prefix directory and use sysroot %ifnarch ppc ppc64 %define _prefix /opt/cell %define _mandir %{_prefix}/man %define _infodir %{_prefix}/info %define with_sysroot 1 %else %define with_sysroot 0 %endif %prep %setup -c -q %patch1 -p0 %patch2 -p0 %patch3 -p0 %patch4 -p0 %patch5 -p0 %patch6 -p0 %patch7 -p0 -E %patch8 -p0 %patch9 -p0 %patch10 -p0 # Don't build gprof. rm -rf src/gprof %build %define ppu_target_platform powerpc64-linux %define ppu_prefix ppu- %define ppu32_prefix ppu32- rm -fr obj-%{ppu_target_platform} mkdir obj-%{ppu_target_platform} cd obj-%{ppu_target_platform} OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g'` PPU_OPT_FLAGS="-O2 -g -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" CC="gcc $OPT_FLAGS" CC="$CC" CFLAGS="$PPU_OPT_FLAGS" CXXFLAGS="$PPU_OPT_FLAGS" XCFLAGS="$OPT_FLAGS" TCFLAGS="$PPU_OPT_FLAGS" \ ../src/configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ %if %{with_sysroot} --with-sysroot=%{_prefix}/sysroot \ %endif %ifarch ppc ppc64 --enable-install-libbfd \ %else --disable-install-libbfd \ %endif --disable-shared --disable-nls --disable-werror \ --program-prefix=%{ppu_prefix} \ --target=%{ppu_target_platform} \ --enable-targets=spu make %{?_smp_mflags} %install rm -fr $RPM_BUILD_ROOT cd obj-%{ppu_target_platform} TARGET_PLATFORM=%{ppu_target_platform} make DESTDIR=$RPM_BUILD_ROOT install # Fix ups. rm -f $RPM_BUILD_ROOT%{_prefix}/lib/libiberty.a # Create ppu32- wrapper scripts cat > $RPM_BUILD_ROOT%{_prefix}/bin/%{ppu32_prefix}as <<"EOF" #!/bin/sh exec $(dirname $0)/%{ppu_prefix}as -a32 ${1+"$@"} EOF cat > $RPM_BUILD_ROOT%{_prefix}/bin/%{ppu32_prefix}ld <<"EOF" #!/bin/sh exec $(dirname $0)/%{ppu_prefix}ld -m elf32ppclinux ${1+"$@"} EOF cat > $RPM_BUILD_ROOT%{_prefix}/bin/%{ppu32_prefix}embedspu <<"EOF" #!/bin/sh exec $(dirname $0)/%{ppu_prefix}embedspu -m32 ${1+"$@"} EOF chmod 755 $RPM_BUILD_ROOT%{_prefix}/bin/%{ppu32_prefix}* # Remove Windows/Novell only man pages rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{ppu_prefix}{dlltool,nlmconv,windres}* # Info and man7 files conflict with host toolchain files, # just remove them for now. rm -rf $RPM_BUILD_ROOT%{_infodir} rm -rf $RPM_BUILD_ROOT%{_mandir}/man7 # Move the installed libbfd files to avoid conflicts with the system binutils %ifarch ppc ppc64 rm $RPM_BUILD_ROOT%{_prefix}/lib/lib{bfd,opcodes}.la mv $RPM_BUILD_ROOT%{_prefix}/lib/lib{bfd,opcodes}.a $RPM_BUILD_ROOT%{_prefix}/%{ppu_target_platform}/lib mv $RPM_BUILD_ROOT%{_prefix}/include $RPM_BUILD_ROOT%{_prefix}/%{ppu_target_platform} %endif cd .. %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) %dir %{_prefix} %dir %{_prefix}/bin %dir %{_mandir} %dir %{_mandir}/man1 %{_prefix}/bin/%{ppu_prefix}addr2line %{_prefix}/bin/%{ppu_prefix}ar %{_prefix}/bin/%{ppu_prefix}as %{_prefix}/bin/%{ppu_prefix}c++filt %{_prefix}/bin/%{ppu_prefix}ld %{_prefix}/bin/%{ppu_prefix}nm %{_prefix}/bin/%{ppu_prefix}objcopy %{_prefix}/bin/%{ppu_prefix}objdump %{_prefix}/bin/%{ppu_prefix}ranlib %{_prefix}/bin/%{ppu_prefix}readelf %{_prefix}/bin/%{ppu_prefix}size %{_prefix}/bin/%{ppu_prefix}strings %{_prefix}/bin/%{ppu_prefix}strip %{_prefix}/bin/%{ppu_prefix}embedspu %{_prefix}/bin/%{ppu32_prefix}as %{_prefix}/bin/%{ppu32_prefix}embedspu %{_prefix}/bin/%{ppu32_prefix}ld %dir %{_prefix}/%{ppu_target_platform} %dir %{_prefix}/%{ppu_target_platform}/bin %dir %{_prefix}/%{ppu_target_platform}/lib %{_prefix}/%{ppu_target_platform}/bin/* %{_prefix}/%{ppu_target_platform}/lib/ldscripts %ifarch ppc ppc64 %dir %{_prefix}/%{ppu_target_platform}/include %{_prefix}/%{ppu_target_platform}/include/* %{_prefix}/%{ppu_target_platform}/lib/libbfd.a %{_prefix}/%{ppu_target_platform}/lib/libopcodes.a %endif %{_mandir}/man1/%{ppu_prefix}addr2line.1* %{_mandir}/man1/%{ppu_prefix}ar.1* %{_mandir}/man1/%{ppu_prefix}as.1* %{_mandir}/man1/%{ppu_prefix}c++filt.1* %{_mandir}/man1/%{ppu_prefix}ld.1* %{_mandir}/man1/%{ppu_prefix}nm.1* %{_mandir}/man1/%{ppu_prefix}objcopy.1* %{_mandir}/man1/%{ppu_prefix}objdump.1* %{_mandir}/man1/%{ppu_prefix}ranlib.1* %{_mandir}/man1/%{ppu_prefix}readelf.1* %{_mandir}/man1/%{ppu_prefix}size.1* %{_mandir}/man1/%{ppu_prefix}strings.1* %{_mandir}/man1/%{ppu_prefix}strip.1* %changelog * Fri Mar 02 2007 Alan Modra 2.17.50-8 - cygwin build fix. * Thu Mar 01 2007 Alan Modra 2.17.50-7 - Fix #32302 - Arrange for new ld/emultemp/spu_ovl.o to be built. * Wed Feb 28 2007 Alan Modra 2.17.50-5 - Apply soma patch. - Stop embedspu truncating symbol names. #21673 - Fix spu-ld segfault. #31896 - ppc64 --emit-relocs fix. #27823 - Default ppc64 object file without .note.GNU-stack to non-execstack. - A bunch of miscellaneous fixes from binutils mainline. - Cross-compile build fixes for spu-ld. * Thu Feb 22 2007 Ben Elliston 2.17.50-4 - Pass --enable-targets=spu to configure. - Do not include -DBPA in $CC. * Mon Jan 22 2007 Ben Elliston 2.17.50-3 - Change the cross-prefix to /opt/cell. * Thu Jan 18 2007 Ben Elliston 2.17.50-2 - Do configure the tree with --disable-werror after all. It is just too problematic! * Thu Jan 11 2007 Ben Elliston 2.17.50-1 - New spec file.