123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #!/bin/bash
- [% c("var/set_default_env") -%]
- distdir=/var/tmp/dist/binutils
- [% IF c("var/linux") %]
- # Config options for hardening-wrapper
- export DEB_BUILD_HARDENING=1
- export DEB_BUILD_HARDENING_STACKPROTECTOR=1
- export DEB_BUILD_HARDENING_FORTIFY=1
- export DEB_BUILD_HARDENING_FORMAT=1
- export DEB_BUILD_HARDENING_PIE=1
- [% END -%]
- [% IF c("var/linux-x86_64") %]
- # The libstdc++ shipped by default is non-PIC which breaks the binutils build
- # if we build with DEB_BUILD_HARDENING_PIE=1. We need to install a PIC one AND
- # make sure it gets used before the non-PIC one would.
- ln -s /usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++_pic.a libstdc++.a
- export LDFLAGS="-L$rootdir -lstdc++"
- [% END %]
- tar xf [% project %]-[% c("version") %].tar.bz2
- cd [% project %]-[% c("version") %]
- [% IF c('var/windows') -%]
- # XXX: This is needed due to bug 10102.
- sed 's/= extern_rt_rel_d;/= extern_rt_rel_d;\n memset (extern_rt_rel_d, 0, PE_IDATA5_SIZE);/' -i ld/pe-dll.c
- # Zeroing timestamps in PE headers reliably, see bug 12753.
- patch -p1 < ../peXXigen.patch
- # Needed for the hardening...
- patch -p1 < ../enable-reloc-section-ld.patch
- # fix build reproducibility of Windows builds by reverting commit 13e570f80c.
- # See bug 16472.
- patch -p1 < ../fix-windows-reproducibility.patch
- [% END -%]
- [% IF c('var/windows-x86_64') -%]
- patch -p1 < ../64bit-fixups.patch
- [% END -%]
- ./configure --prefix=$distdir [% c('var/configure_opt') %]
- make -j[% c("buildconf/num_procs") %]
- make install
- [% IF c("var/linux") && ! c("var/linux-armhf") && ! c("var/linux-arm64") %]
- # Make sure gold is used with the hardening wrapper for full RELRO, see #13031.
- cd $distdir/bin
- rm ld
- cp /usr/bin/hardened-ld ./
- mv ld.gold ld.gold.real
- ln -sf hardened-ld ld.gold
- ln -sf ld.gold ld
- [% END %]
- cd /var/tmp/dist
- [% c('tar', {
- tar_src => [ project ],
- tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
- }) %]
|