538903183d
Turns on deterministic mode by default. From the manpage: Operate in deterministic mode. When adding files and the archive index use zero for UIDs, GIDs, timestamps, and use consistent file modes for all files. When this option is used, if ar is used with identical options and identical input files, multiple runs will create identical output files regardless of the input files' owners, groups, file modes, or modification times.
112 lines
3.4 KiB
Bash
112 lines
3.4 KiB
Bash
# Template file for 'binutils'
|
|
pkgname=binutils
|
|
version=2.26
|
|
revision=2
|
|
bootstrap=yes
|
|
short_desc="GNU binary utilities"
|
|
maintainer="Juan RP <xtraeme@voidlinux.eu>"
|
|
homepage="http://www.gnu.org/software/binutils/"
|
|
license="GPL-3"
|
|
distfiles="${GNU_SITE}/$pkgname/$pkgname-$version.tar.bz2"
|
|
checksum=c2ace41809542f5237afc7e3b8f32bb92bc7bc53c6232a84463c423b0714ecd9
|
|
|
|
if [ "$CHROOT_READY" ]; then
|
|
hostmakedepends="flex perl"
|
|
fi
|
|
makedepends+=" zlib-devel"
|
|
|
|
pre_configure() {
|
|
sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure
|
|
# Drop bashism!
|
|
sed -e 's,source,\.,g' -i ld/scripttempl/elf32msp430.sc
|
|
}
|
|
do_configure() {
|
|
if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
|
|
CONFIGFLAG="--enable-64-bit-bfd --enable-multilib"
|
|
fi
|
|
if [ "$CROSS_BUILD" ]; then
|
|
# Do not use configure_args nor build_style=gnu-configure,
|
|
# avoiding --with-sysroot to $XBPS_CROSS_BASE.
|
|
CONFIGFLAG="--host=$XBPS_CROSS_TRIPLET --with-build-sysroot=$XBPS_CROSS_BASE"
|
|
fi
|
|
if [ "$XBPS_TARGET_MACHINE" = "mipsel-musl" ]; then
|
|
CONFIGFLAG+=" --with-float=soft --without-fp"
|
|
fi
|
|
./configure --build=$XBPS_TRIPLET --prefix=/usr --enable-threads \
|
|
--enable-plugins --enable-secureplt --with-mmap \
|
|
--disable-shared --enable-gold --disable-werror \
|
|
--enable-deterministic-archives --enable-ld=default \
|
|
--disable-nls $CONFIGFLAG LDFLAGS=
|
|
}
|
|
do_build() {
|
|
make ${makejobs}
|
|
|
|
# Rebuild libiberty.a with -fPIC
|
|
cp -a libiberty libiberty-pic
|
|
make -C libiberty-pic clean
|
|
make CFLAGS="$CFLAGS -fPIC" -C libiberty-pic
|
|
|
|
# Rebuild libbfd.a with -fPIC
|
|
# hidden visability prevent 3rd party shared libraries exporting bfd non-stable API
|
|
cp -a bfd bfd-pic
|
|
make -C bfd-pic clean
|
|
make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd-pic
|
|
|
|
# Rebuild libopcodes.a with -fPIC
|
|
cp -a opcodes opcodes-pic
|
|
make -C opcodes-pic clean
|
|
make CFLAGS="$CFLAGS -fPIC" -C opcodes-pic
|
|
}
|
|
do_install() {
|
|
if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
|
|
mkdir -p ${DESTDIR}/usr/lib
|
|
cd ${DESTDIR}/usr
|
|
ln -s lib lib64
|
|
cd ${wrksrc}
|
|
fi
|
|
make DESTDIR=${DESTDIR} tooldir=/usr install
|
|
|
|
# Remove ld (hardlink) and make a symlink to ld.bfd.
|
|
rm -f ${DESTDIR}/usr/bin/ld
|
|
ln -sfr ${DESTDIR}/usr/bin/ld.bfd ${DESTDIR}/usr/bin/ld
|
|
|
|
# Add some useful headers
|
|
install -m644 include/libiberty.h ${DESTDIR}/usr/include
|
|
install -m644 include/demangle.h ${DESTDIR}/usr/include
|
|
|
|
# install libraries rebuilt with -fPIC
|
|
install -m644 libiberty-pic/libiberty.a ${DESTDIR}/usr/lib
|
|
install -m644 bfd-pic/libbfd.a ${DESTDIR}/usr/lib
|
|
install -m644 opcodes-pic/libopcodes.a ${DESTDIR}/usr/lib
|
|
|
|
# Remove these symlinks, they are not ABI stable.
|
|
# Programs should compile static to the .a file.
|
|
rm -f ${DESTDIR}/usr/lib/lib{bfd,opcodes}.so
|
|
echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" \
|
|
>${DESTDIR}/usr/lib/libbfd.so
|
|
echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" \
|
|
>${DESTDIR}/usr/lib/libopcodes.so
|
|
|
|
# Remove info file that conflicts with autoconf.
|
|
rm -f ${DESTDIR}/usr/share/info/standards.info
|
|
rm -f ${DESTDIR}/usr/lib64
|
|
|
|
# Remove useless manpages.
|
|
for f in dlltool nlmconv windres windmc; do
|
|
rm -f ${DESTDIR}/usr/share/man/man1/${f}.1
|
|
done
|
|
# Create triplet symlinks
|
|
for f in ${DESTDIR}/usr/bin/*; do
|
|
ln -s ${f##*/} ${DESTDIR}/usr/bin/${XBPS_CROSS_TRIPLET:-${XBPS_TRIPLET}}-${f##*/}
|
|
done
|
|
}
|
|
|
|
binutils-devel_package() {
|
|
depends="zlib-devel"
|
|
short_desc+=" - development files"
|
|
pkg_install() {
|
|
vmove usr/include
|
|
vmove "usr/lib/*.a"
|
|
vmove "usr/lib/*.so"
|
|
}
|
|
}
|