Files

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")