Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2022-12-09 11:12:34 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2022-12-09 11:12:34 +0100
commit0c850233e40cf44be6eebd8f28a689a688985752 (patch)
tree11e2883f63481533a442a0ec5c603c88b5021694
parent9c720d54b2114cbab496504f825fbcd458080fc3 (diff)
community/gcc11: readded for trying to build protobuf
-rw-r--r--blacklist/pentium4/gcc11/gcc111
-rw-r--r--community/gcc11/PKGBUILD130
2 files changed, 130 insertions, 1 deletions
diff --git a/blacklist/pentium4/gcc11/gcc11 b/blacklist/pentium4/gcc11/gcc11
deleted file mode 100644
index 1c3fc921..00000000
--- a/blacklist/pentium4/gcc11/gcc11
+++ /dev/null
@@ -1 +0,0 @@
-only needed for cuda
diff --git a/community/gcc11/PKGBUILD b/community/gcc11/PKGBUILD
new file mode 100644
index 00000000..610273fa
--- /dev/null
+++ b/community/gcc11/PKGBUILD
@@ -0,0 +1,130 @@
+# remove tsan (thread sanitizer) plugin, not available for i686
+pkgname=(
+ $(
+ printf '%s\n' "${pkgname[@]}" | \
+ grep -vFx 'lib32-gcc-libs'
+ )
+)
+unset -f 'package_lib32-gcc-libs'
+eval "$(
+ declare -f prepare | \
+ sed '
+ \,/s/lib64/lib/, d
+ '
+ declare -f build | \
+ sed '
+ /configure/ s/--enable-multilib/--disable-multilib/
+ /configure/ s,--with-bugurl=https://bugs\.archlinux\.org/,--with-bugurl=https://bugs.archlinux32.org/,
+ /configure/ s/;$/ --build=$CHOST;/
+ '
+ declare -f package_gcc-libs | \
+ sed '
+ s/\$pkgname-multilib//
+ s@libsanitizer/{a,l,ub,t}san@libsanitizer/{a,l,ub}san@
+ /provides=/s/libtsan.so//
+ \@/usr/lib32/@ d
+ '
+ declare -f package_gcc | \
+ sed '
+ s/"lib32-gcc-libs[^"]*"//g
+ s@make.*tsan.*install@#\0@
+ '
+ declare -f package_gcc-ada | \
+ sed '
+ \,cd .*/32/libada,{
+ N
+ d
+ }
+ '
+)"
+eval "$(
+ for name in "${pkgname[@]}"; do
+ declare -f package_${name} | \
+ sed '
+ s/$pkgname-multilib//
+ s/{,32}//
+ \,/lib32/,d
+ \,/32/,d
+ '
+ done
+)"
+
+# i486-specific
+
+# no ADA
+makedepends=(${makedepends[@]//gcc-ada/})
+makedepends_i686+=('gcc-ada')
+makedepends_pentium4+=('gcc-ada')
+
+if [ "${CARCH}" = "i486" ]; then
+ package_gcc-ada() {
+ touch "$pkgdir/this-is-a-dummy-package"
+ }
+
+ eval "$(
+ declare -f build | \
+ sed '
+ /enable-languages/ s/,ada//
+ '
+ )"
+
+ eval "$(
+ declare -f package_gcc | \
+ sed '
+ s/,gnat-style,gnat_rm,gnat_ugn//
+ '
+ )"
+
+ # building toolchain (gcc): again, lobtool problems
+ # /usr/lib/gcc/i486-pc-linux-gnu/7.3.0/ld: cannot find -lquadmath
+ # collect2: error: ld returned 1 exit status
+ # libtool: install: error: relink `libgfortran.la' with the above command before installing it
+ # make: Leaving directory '/build/gcc/src/gcc-build/i486-pc-linux-gnu/libgfortran'
+ # => wrong link order: libgfortran requires libquadmath
+ eval "$(
+ declare -f package_gcc-libs | \
+ sed '
+ /for lib in / s/libgfortran/libquadmath libgfortran/
+ '
+ )"
+
+ # disable CET (Control Flow instructions endbr32/enbr64)
+ eval "$(
+ declare -f build | \
+ sed '
+ s/--enable-cet=auto/--disable-cet/
+ '
+ )"
+
+else
+
+ # force enable CET (Control Flow instructions endbr32/enbr64)
+ eval "$(
+ declare -f build | \
+ sed '
+ s/--enable-cet=auto/--enable-cet/
+ '
+ )"
+
+fi
+
+makedepends=(${makedepends[@]//lib32-glibc/})
+makedepends=(${makedepends[@]//lib32-gcc-libs/})
+
+# i486-specific: disable PGO/LTO build, uses too much resources,
+# also disabling LTO for now
+if [ "${CARCH}" = "i486" ]; then
+ eval "$(
+ declare -f build | \
+ sed '
+ s/--enable-pgo-build=.*/--disable-pgo-build/
+ s/--enable-lto/--disable-lto/
+ s/--with-build-config=bootstrap-lto//
+ '
+ declare -f package_gcc | \
+ sed '
+ /make.*lto-plugin.*install/d
+ /ln.*liblto_plugin.so/d
+ '
+ )"
+fi