summaryrefslogtreecommitdiff
path: root/devel/gcc-compat
diff options
context:
space:
mode:
Diffstat (limited to 'devel/gcc-compat')
-rw-r--r--devel/gcc-compat/.footprint10
-rw-r--r--devel/gcc-compat/.signature5
-rw-r--r--devel/gcc-compat/MAKEPKG47
3 files changed, 62 insertions, 0 deletions
diff --git a/devel/gcc-compat/.footprint b/devel/gcc-compat/.footprint
new file mode 100644
index 0000000..3a8163f
--- /dev/null
+++ b/devel/gcc-compat/.footprint
@@ -0,0 +1,10 @@
+drwxr-xr-x root/root usr/
+drwxr-xr-x root/root usr/bin/
+-rwxr-xr-x root/root usr/bin/rustc-wrapper
+drwxr-xr-x root/root usr/lib/
+-rw-r--r-- root/root usr/lib/libgcc.a
+-rw-r--r-- root/root usr/lib/libgcc_s.so
+-rw-r--r-- root/root usr/lib/libstdc++.a
+-rw-r--r-- root/root usr/lib/libstdc++.so
+lrwxrwxrwx root/root usr/lib/libgcc_s.so.1 -> libunwind.so.1
+lrwxrwxrwx root/root usr/lib/libstdc++.so.6 -> libc++.so.1
diff --git a/devel/gcc-compat/.signature b/devel/gcc-compat/.signature
new file mode 100644
index 0000000..0881125
--- /dev/null
+++ b/devel/gcc-compat/.signature
@@ -0,0 +1,5 @@
+RWTZ9IduCSQ/mO9ZkiCZCWCa3T15Th07nPND88IZrynPp+8A5uRLYJyPfAP9Hbz/nQjBHCCQcgzV0n7BV3hOswYcozsgB2Y0QAU=
+
+SHA256 (MAKEPKG) = e4e35e886e87797ce1a98ae8fd73958efc808300bf889c3d8c5dc713e9f384ac
+SHA256 (.footprint) = 514ea49ead6767355b92cc720ec72544c1e06c43a0ff5ec3991234548ed48c0a
+SHA256 (gcc-compat#1.0.0-2.pkg.tar.gz) = 0612bc9af6afb809341968e7bc491e9e095aa187bf5952543ede06318cbfee5f
diff --git a/devel/gcc-compat/MAKEPKG b/devel/gcc-compat/MAKEPKG
new file mode 100644
index 0000000..4d0fceb
--- /dev/null
+++ b/devel/gcc-compat/MAKEPKG
@@ -0,0 +1,47 @@
+#!/bin/mkpkg
+# description: GCC compatibility shims for pure LLVM/musl systems
+name=gcc-compat
+version=1.0.0
+release=2
+#depends=(llvm-toolchain)
+depends=()
+source=()
+
+sha256sums=(
+)
+
+build() {
+ mkdir -p $PKG/usr/lib
+ mkdir -p $PKG/usr/bin
+
+ # libgcc_s → libunwind
+ ln -s libunwind.so.1 $PKG/usr/lib/libgcc_s.so.1
+ printf 'INPUT(-lunwind)\n' > $PKG/usr/lib/libgcc_s.so
+
+ # libgcc.a → compiler-rt builtins
+ _builtins=$(clang --print-libgcc-file-name 2>/dev/null || true)
+ if [ -n "$_builtins" ] && [ -f "$_builtins" ]; then
+ printf 'INPUT(%s)\n' "$_builtins" > $PKG/usr/lib/libgcc.a
+ else
+ llvm-ar cr $PKG/usr/lib/libgcc.a
+ fi
+
+ # libstdc++ → libc++
+ printf 'INPUT(-lc++)\n' > $PKG/usr/lib/libstdc++.so
+ ln -s libc++.so.1 $PKG/usr/lib/libstdc++.so.6
+ if [ -f /usr/lib/libc++.a ]; then
+ printf 'INPUT(-lc++ -lc++abi)\n' > $PKG/usr/lib/libstdc++.a
+ fi
+
+ # rustc-wrapper — force dynamic linking on musl
+ printf '#!/bin/sh\nexec /usr/bin/rustc -C target-feature=-crt-static "$@"\n' \
+ > $PKG/usr/bin/rustc-wrapper
+ chmod 755 $PKG/usr/bin/rustc-wrapper
+}
+
+signify() {
+ untrusted comment: public key
+ RWTZ9IduCSQ/mL8337TEUinPwT92xFEUpD92hkS7IxcOnzTt9QdpohT3
+}
+
+# vim: filetype=sh