eth0s/lfs/pkgscripts/gcc
2018-12-01 00:12:45 +08:00

68 lines
1.5 KiB
Bash
Executable file

#!/bin/bash
set -e
. /etc/pkg/pkg.conf
. /var/lib/pkg/functions
name=$(basename $0)
version=8.2.0
url=http://ftp.gnu.org/gnu/gcc/gcc-$version/gcc-$version.tar.xz
fetch $url
rm -fr $WORK_DIR/$name-$version
tar -xvf $SOURCE_DIR/$(basename $url) -C $WORK_DIR
cd $WORK_DIR/$name-$version
{ time \
{
case $(uname -m) in
x86_64)
sed -e '/m64=/s/lib64/lib/' \
-i.orig gcc/config/i386/t-linux64
;;
esac
rm -f /usr/lib/gcc
mkdir -v build
cd build
SED=sed \
../configure --prefix=/usr \
--enable-languages=c,c++ \
--disable-multilib \
--disable-bootstrap \
--disable-libmpx \
--with-system-zlib
make
make install
ln -svf ../usr/bin/cpp /lib
ln -svf gcc /usr/bin/cc
install -v -dm755 /usr/lib/bfd-plugins
ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/8.2.0/liblto_plugin.so \
/usr/lib/bfd-plugins/
echo 'int main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep ': /lib'
grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
grep -B4 '^ /usr/include' dummy.log
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
grep "/lib.*/libc.so.6 " dummy.log
grep found dummy.log
rm -v dummy.c a.out dummy.log
mkdir -pv /usr/share/gdb/auto-load/usr/lib
mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib
}
} 2>&1 | tee -a $LOG_DIR/$(basename $0).log
if [ $PIPESTATUS -ne 0 ]; then exit 1; fi;
rm -fr $WORK_DIR/$name-$version
registerpkg $(basename $0) $version
exit 0