diff options
Diffstat (limited to 'testing/fpc/APKBUILD')
-rw-r--r-- | testing/fpc/APKBUILD | 49 |
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 " |