88 lines
3.1 KiB
Python
88 lines
3.1 KiB
Python
#!/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")
|
|
|