12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- #
- # Licensed under the GNU General Public License, version 3.
- # See the file http://www.gnu.org/licenses/gpl.txt
- from pisi.actionsapi import autotools
- from pisi.actionsapi import pisitools
- from pisi.actionsapi import shelltools
- from pisi.actionsapi import get
- # linker = "gold"
- linker = "ld"
- multilib = "--enable-multilib" if get.ARCH() == "x86_64" else ""
- # WorkDir = "binutils-2.20.51"
- def setup():
- # Build binutils with LD_SYMBOLIC_FUNCTIONS=1 and reduce PLT relocations in libfd.so by 84%.
- #shelltools.export("LD_SYMBOLIC_FUNCTIONS", "1")
- shelltools.system('sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure')
- shelltools.system("sed -i '/^development=/s/true/false/' bfd/development.sh")
-
- autotools.configure('--enable-shared \
- --build=%s \
- --enable-threads \
- --enable-ld=default \
- --enable-gold \
- --enable-plugins \
- --enable-targets=x86_64-pep \
- --with-pkgversion="Pisi Linux" \
- --with-bugurl=https://bugs.pisilinux.org/ \
- --without-stage1-ldflags \
- %s \
- --with-pic \
- --disable-nls \
- --disable-werror' % (get.HOST(), multilib))
- #--enable-targets="i386-linux" \
- def build():
- autotools.make("configure-host")
- autotools.make()
- # check fails because of LD_LIBRARY_PATH
- #def check():
- #autotools.make("-k LDFLAGS="" check || true")
- # autotools.make("check -j1")
- def install():
- autotools.rawInstall("DESTDIR=%s tooldir=/usr" % get.installDIR())
- # Rebuild libbfd.a and libiberty.a with -fPIC
- #pisitools.remove("/usr/lib/libbfd.a")
- #pisitools.remove("/usr/lib/libiberty.a")
- # pisitools.remove("/usr/include/libiberty.h")
- autotools.make("-C libiberty clean")
- autotools.make('CFLAGS="-fPIC %s" -C libiberty' % get.CFLAGS())
- autotools.make("-C bfd clean")
- autotools.make('CFLAGS="-fPIC %s" -C bfd' % get.CFLAGS())
- # pisitools.insinto("/usr/lib", "bfd/libbfd.a")
- pisitools.insinto("/usr/lib", "libiberty/libiberty.a")
- pisitools.insinto("/usr/include", "include/libiberty.h")
- pisitools.insinto("/usr/include", "include/demangle.h")
- # Copy plugin-api.h file to build LLVM with LLVM gold plugin
- pisitools.insinto("/usr/include", "include/plugin-api.h")
- # Prevent programs to link against libbfd and libopcodes dynamically,
- # they are changing far too often
- pisitools.remove("/usr/lib/libopcodes.so")
- pisitools.remove("/usr/lib/libbfd.so")
- # Remove libtool files, which reference the .so libs
- pisitools.remove("/usr/lib/libopcodes.la")
- pisitools.remove("/usr/lib/libbfd.la")
- # Remove unneded man , info
- unneeded_man={"dlltool.1"}
- for i in unneeded_man:
- pisitools.remove("/usr/share/man/man1/%s" %i)
-
- #pisitools.remove("/usr/share/info/configure.info")
- #pisitools.remove("/usr/share/info/standards.info")
|