aboutsummaryrefslogtreecommitdiffstats
path: root/testing/fpc/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'testing/fpc/APKBUILD')
-rw-r--r--testing/fpc/APKBUILD49
1 files changed, 19 insertions, 30 deletions
diff --git a/testing/fpc/APKBUILD b/testing/fpc/APKBUILD
index 027a29cdeb1..0d79296c073 100644
--- a/testing/fpc/APKBUILD
+++ b/testing/fpc/APKBUILD
@@ -3,15 +3,15 @@
# Maintainer: Maxim Karasev <begs@disroot.org>
pkgname=fpc
pkgver=3.2.2
-pkgrel=0
+pkgrel=2
pkgdesc="Free Pascal Compiler"
url="http://freepascal.org"
-arch="x86_64"
+# Build fails on ppc64le with compiler segfault
+arch="x86_64 aarch64 armv7 armhf x86" # limited by fpc-stage0
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
makedepends="fpc-bootstrap"
subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/sourceforge/freepascal/fpcbuild-$pkgver.tar.gz
- musl-__libc_csu.patch"
+source="https://downloads.sourceforge.net/sourceforge/freepascal/fpcbuild-$pkgver.tar.gz"
options="!check" # no tests
builddir="$srcdir/fpcbuild-$pkgver"
@@ -21,36 +21,25 @@ builddir="$srcdir/fpcbuild-$pkgver"
provides="fpc-bootstrap"
provider_priority=100 # highest
+# libpas2jslib.so contains textrels on some arches
case "$CARCH" in
- armel) _ld="ld-linux.so.3" ;;
- armhf | armv7) _ld="ld-linux-armhf.so.3" ;;
- aarch64) _ld="ld-linux-aarch64.so.1" ;;
- x86) _ld="ld-linux.so.2" ;;
- x86_64) _ld="ld-linux-x86-64.so.2" ;;
- mips*) _ld="ld.so.1" ;;
- s390x) _ld="ld64.so.1" ;;
- ppc64le) _ld="ld64.so.2" ;;
-esac
-
-case "$CARCH" in
- aarch64*) _ldarch="aarch64" ;;
- arm*) _ldarch="arm" ;;
- x86) _ldarch="i386" ;;
- x86_64) _ldarch="x86_64" ;;
- ppc) _ldarch="powerpc" ;;
- ppc64*) _ldarch="powerpc64" ;;
- s390*) _ldarch="s390x" ;;
- mips64*) _ldarch="mips64" ;;
- mips*) _ldarch="mips" ;;
- riscv64) _ldarch="riscv64" ;;
+ x86|armv7|armhf) options="$options textrels";;
esac
prepare() {
default_prepare
- # Otherwise all built binaries are referencing to glibc linker
- sed -i "s,/lib64/$_ld,/lib/ld-musl-$_ldarch.so.1," \
+ # Use correct linker path for produced binaries
+ sed -i -e "s,/lib64/ld-linux-x86-64\.so\..,/lib/ld-musl-x86_64.so.1," \
+ -e "s,/lib/ld-linux\.so\..,/lib/ld-musl-i386.so.1," \
+ -e "s,/lib/ld-linux-aarch64\.so\..,/lib/ld-musl-aarch64.so.1," \
+ -e "s,/lib/ld-linux-armhf\.so\..,/lib/ld-musl-armhf.so.1," \
+ -e "s,/lib64/ld64\.so\..,/lib/ld-musl-powerpc64le.so.1," \
"$builddir"/fpcsrc/compiler/systems/t_linux.pas
+
+ # Strip out any unsupported instructions
+ find "$builddir"/fpcsrc/rtl/linux -type f -print0 |
+ xargs -0 sed -i '/libc_csu/d'
}
build() {
@@ -66,18 +55,18 @@ package() {
PREFIX="$pkgdir"/usr \
INSTALL_MANDIR="$pkgdir"/usr/share/man
- # Create a symlink needed for fpc to find ppcx64
- ln -s /usr/lib/fpc/"$pkgver"/ppcx64 "$pkgdir"/usr/bin
+ # Create a symlink needed for fpc to find compiler
+ ln -s /usr/lib/fpc/"$pkgver"/ppc* "$pkgdir"/usr/bin
# Install configuration
mkdir -p "$pkgdir"/etc
"$pkgdir"/usr/lib/fpc/"$pkgver"/samplecfg \
"$pkgdir"/usr/lib/fpc/"$pkgver" "$pkgdir"/etc
+ # Strip pkgdir name from configs
find "$pkgdir"/etc/ -type f -exec sed -i "s|$pkgdir||g" {} \;
}
sha512sums="
75889bb54adc70a6e2cbd291476b9b12d61c8f943a05b7d16d2024de3215c935465ff43b1400c412e128e260c7f49a9c66e35c21f86cb866e671b5b60a282d82 fpcbuild-3.2.2.tar.gz
-5ea236d2a3fafbcc0fbdd1d2b14900bae6c00933d75faf5eda42be0bf73f949e4ba3a72777da327544e39561a84666f9cd29f237e0ec7c5a363225df144e6a93 musl-__libc_csu.patch
"