%define dotests 1 Summary: The GNU binutils development utilities Name: binutils Version: 2.32 Release: 1 License: GPL Group: Development/Tools URL: http://www.gnu.org/software/binutils/ Source0: http://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.gz #Source1: %{name}-%{version}-%{release}.build.log #Patch0: %{name}-ppccore.patch Prefix: %{_prefix} #BuildRequires: bzip2 BuildRoot: %{_tmppath}/binutils-%{version}-root Prereq: /sbin/install-info BuildRequires: gettext-devel >= 0.19.8.1-1 Requires: gettext >= 0.19.8.1-1 Requires: AIX-rpm >= 6.1.0.0 Requires: flex >= 2.6.4-1 #%define DEFCC cc %description GNU binutils package contains utilities useful for development during compilation. Utilities such as nm, ar, elfdump, size, and others are included. %prep /usr/bin/lslpp -l bos.adt.libm >/dev/null 2>&1 if [[ $? -ne 0 ]] ; then echo "Build will fail without bos.adt.libm installed!" exit 1 fi /usr/bin/lslpp -l bos.adt.include >/dev/null 2>&1 if [[ $? -ne 0 ]] ; then echo "Build will fail without bos.adt.include installed!" exit 1 fi %setup -q #%patch0 -b .ppccore rm -rf /tmp/%{name}-%{version}-32bit cp -pr . /tmp/%{name}-%{version}-32bit rm -fr * mv /tmp/%{name}-%{version}-32bit 32bit cp -pr 32bit 64bit %build export RM="/usr/bin/rm -f" CC=gcc CXX=g++ ## build on 64bit mode cd 64bit export OBJECT_MODE=64 export CFLAGS="$RPM_OPT_FLAGS -O2 -maix64 " ./configure --prefix=%{_prefix} \ --libdir=%{_libdir}64 \ --mandir=%{_prefix}/man \ --infodir=%{_prefix}/info #--disable-largefile make # remove the "-print-multi-os-directory" flag sed -e "s/MULTIOSDIR = \`\$(CC) \$(CFLAGS) -print-multi-os-directory\`/MULTIOSDIR = ./" libiberty/Makefile > Makefile.tmp mv -f Makefile.tmp libiberty/Makefile if [ "%{dotests}" == 1 ] then (gmake -k check || true) fi ## build on 32bit mode cd ../32bit export OBJECT_MODE=32 export CFLAGS="$RPM_OPT_FLAGS -O2 -maix32 -D_LARGE_FILES " export LDFLAGS="-Wl,-bmaxdata:0x80000000" ./configure --prefix=%{_prefix} \ --libdir=%{_libdir} \ --mandir=%{_prefix}/man \ --infodir=%{_prefix}/info #--disable-largefile make # remove the "-print-multi-os-directory" flag sed -e "s/MULTIOSDIR = \`\$(CC) \$(CFLAGS) -print-multi-os-directory\`/MULTIOSDIR = ./" libiberty/Makefile > Makefile.tmp mv -f Makefile.tmp libiberty/Makefile if [ "%{dotests}" == 1 ] then (gmake -k check || true) fi %install [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} # install on 64bit mode cd 64bit export OBJECT_MODE=64 make prefix=$RPM_BUILD_ROOT%{_prefix} \ mandir=${RPM_BUILD_ROOT}%{_prefix}/man \ infodir=${RPM_BUILD_ROOT}%{_prefix}/info \ libdir=${RPM_BUILD_ROOT}%{_prefix}/lib64 \ install cd $RPM_BUILD_ROOT%{_prefix} # Strip all of the executables /usr/bin/strip -X32_64 bin/* 2>/dev/null || : # The "ld" command is renamed to "gld". For proper linking, please # use the native AIX ld command, /usr/bin/ld. # The "strip" command is not functioning correctly in all cases, so # it has been renamed to "gstrip". We strongly recommend the use # of the native AIX strip command, /usr/bin/strip. # Ditto for ranlib. mv bin/ld bin/gld mv bin/strip bin/gstrip mv bin/ranlib bin/granlib mv bin/as bin/gas chmod 444 bin/gld bin/gstrip bin/granlib bin/gas ( cd ${RPM_BUILD_ROOT}/%{_prefix}/bin for fic in $(ls -1| grep -v -e _32 -e _64) do mv $fic "$fic"_64 done ) cd - # install on 32bit mode cd ../32bit export OBJECT_MODE=32 make prefix=$RPM_BUILD_ROOT%{_prefix} \ mandir=${RPM_BUILD_ROOT}%{_prefix}/man \ infodir=${RPM_BUILD_ROOT}%{_prefix}/info \ libdir=${RPM_BUILD_ROOT}%{_prefix}/lib \ install cd $RPM_BUILD_ROOT%{_prefix} # Strip all of the executables /usr/bin/strip -X32_64 bin/* 2>/dev/null || : # compress the info files gzip -9nf info/* # The "ld" command is renamed to "gld". For proper linking, please # use the native AIX ld command, /usr/bin/ld. # The "strip" command is not functioning correctly in all cases, so # it has been renamed to "gstrip". We strongly recommend the use # of the native AIX strip command, /usr/bin/strip. # Ditto for ranlib. mv bin/ld bin/gld mv bin/strip bin/gstrip mv bin/ranlib bin/granlib mv bin/as bin/gas chmod 444 bin/gld bin/gstrip bin/granlib bin/gas ( cd ${RPM_BUILD_ROOT}/%{_prefix}/bin for fic in $(ls -1| grep -v -e _32 -e _64) do mv $fic "$fic"_32 ln -sf "$fic"_64 $fic done ) # Create links into /usr/bin and /usr/linux/bin. ( cd $RPM_BUILD_ROOT mkdir -p usr/bin cd usr/bin for fname in addr2line objcopy objdump readelf do ln -sf ../..%{_prefix}/bin/$fname* . done cd - mkdir -p usr/linux/bin cd usr/linux/bin for fname in gas c++filt nm size strings do ln -sf ../../..%{_prefix}/bin/$fname* . done cd - mkdir -p usr/lib cd usr/lib ln -sf ../..%{_prefix}/lib/* . cd - mkdir -p usr/lib64 cd usr/lib64 ln -sf ../..%{_prefix}/lib64/* . ) %clean [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %post /sbin/install-info %{_prefix}/info/as.info.gz %{_prefix}/info/dir /sbin/install-info %{_prefix}/info/bfd.info.gz %{_prefix}/info/dir /sbin/install-info %{_prefix}/info/binutils.info.gz %{_prefix}/info/dir /sbin/install-info %{_prefix}/info/configure.info.gz %{_prefix}/info/dir /sbin/install-info %{_prefix}/info/standards.info.gz %{_prefix}/info/dir /sbin/install-info %{_prefix}/info/ld.info.gz %{_prefix}/info/dir %preun if [ ${1} = 0 ] ; then [ -f %{_prefix}/info/as.info.gz ] && /sbin/install-info --delete %{_prefix}/info/as.info.gz %{_prefix}/info/dir [ -f %{_prefix}/info/bfd.info.gz ] && /sbin/install-info --delete %{_prefix}/info/bfd.info.gz %{_prefix}/info/dir [ -f %{_prefix}/info/binutils.info.gz ] && /sbin/install-info --delete %{_prefix}/info/binutils.info.gz %{_prefix}/info/dir [ -f %{_prefix}/info/configure.info.gz ] && /sbin/install-info --delete %{_prefix}/info/configure.info.gz %{_prefix}/info/dir [ -f %{_prefix}/info/standards.info.gz ] && /sbin/install-info --delete %{_prefix}/info/standards.info.gz %{_prefix}/info/dir [ -f %{_prefix}/info/ld.info.gz ] && /sbin/install-info --delete %{_prefix}/info/ld.info.gz %{_prefix}/info/dir fi %files %defattr(-,root,system) %doc 32bit/COPYING 32bit/COPYING.LIB 32bit/COPYING3 32bit/COPYING3.LIB 32bit/binutils/README 32bit/binutils/NEWS %doc %{_prefix}/man/man1/* %{_prefix}/bin/* %{_prefix}/lib/* %{_prefix}/lib64/* %{_prefix}/share/locale/*/*/* %{_prefix}/include/* %{_prefix}/info/* /usr/bin/* /usr/linux/bin/* %changelog * Wed Feb 06 2019 Reshma V Kumar 2.32-1 - Update to fix security vulnerabilities * Tue Nov 20 2018 Reshma V Kumar 2.31.1-1 - Updated to latest version to fix security vulnerabilities * Mon Apr 30 2018 Reshma V Kumar 2.30-1 - Update to latest version * Tue Apr 05 2016 Ravi Hirekurabar 2.25.1-1 - Changed path for mandir and infodir. * Tue Jul 04 2012 Sangamesh Mallayya 2.14-4 - rename as to gas. This is done as it has some compatibility concerns - with AIX as in case of ranlib, strip, ld. * Tue Oct 26 2004 David Clissold 2.14-3 - Ranlib has problems; rename to granlib and make nonexecutable. - Users should use native AIX ranlib, but granlib will be present if - anyone really wants it for whatever reason. * Tue Jun 22 2004 David Clissold 2.14-2 - Fix "prereq" of install-info to be /sbin/install-info. * Wed Jan 21 2004 David Clissold 2.14-1 - Initial version, adapted from old GNUPro.spec.