summaryrefslogtreecommitdiff
path: root/repo/devel/gcc.xibuild
diff options
context:
space:
mode:
Diffstat (limited to 'repo/devel/gcc.xibuild')
-rw-r--r--repo/devel/gcc.xibuild78
1 files changed, 78 insertions, 0 deletions
diff --git a/repo/devel/gcc.xibuild b/repo/devel/gcc.xibuild
new file mode 100644
index 0000000..ab9830d
--- /dev/null
+++ b/repo/devel/gcc.xibuild
@@ -0,0 +1,78 @@
+#!/bin/bash
+
+DEPS=(glibc)
+
+SOURCE=https://mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-11.2.0/gcc-11.2.0.tar.xz
+
+DESC="The GNU Compiler Collection - C and C++ frontends"
+
+
+build () {
+ #fix an issue breaking libasan.a
+
+ sed -e '/static.*SIGSTKSZ/d' \
+ -e 's/return kAltStackSize/return SIGSTKSZ * 4/' \
+ -i libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
+
+ case $(uname -m) in
+ x86_64)
+ sed -e '/m64=/s/lib64/lib/' \
+ -i.orig gcc/config/i386/t-linux64
+ ;;
+ esac
+
+
+ mkdir -v build
+ cd build
+
+ ../configure --prefix=/usr \
+ LD=ld \
+ --enable-languages=c,c++ \
+ --disable-multilib \
+ --disable-bootstrap \
+ --with-system-zlib
+
+ make
+
+ ulimit -s 32768
+
+ if id -u tester; then
+ chown -Rv tester .
+ su tester -c "PATH=$PATH make $MAKEFLAGS -k check"
+ ../contrib/test_summary | grep -A7 Summ
+ fi
+
+}
+
+
+package () {
+ make DESTDIR=$PKG_DEST install
+
+ rm -rf $PKG_DEST/usr/lib/gcc/$(gcc -dumpmachine)/11.2.0/include-fixed/bits/
+
+ chown -v -R root:root \
+ $PKG_DEST/usr/lib/gcc/*linux-gnu/11.2.0/include{,-fixed}
+ ln -sv cpp $PKG_DEST/usr/lib/cpp
+
+ ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/11.2.0/liblto_plugin.so \
+ $PKG_DEST/usr/lib/bfd-plugins/
+
+
+ # sanity checks
+ 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
+
+ # move a misplaced file
+ mkdir -pv $PKG_DEST/usr/share/gdb/auto-load/usr/lib
+ mv -v $PKG_DEST/usr/lib/*gdb.py $PKG_DEST/usr/share/gdb/auto-load/usr/lib
+
+ # set gcc as the default c compiler
+ ln -s gcc $PKG_DEST/usr/bin/cc
+}