]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
toolchain: gcc: Backport patch to fix mips16 linking 18688/head
authorHauke Mehrtens <hauke@hauke-m.de>
Fri, 2 May 2025 22:38:31 +0000 (00:38 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 3 May 2025 20:04:13 +0000 (22:04 +0200)
Backport patch from upstream GCC 14 branch which fixes linking with
MIPS16 on the pistachio target.

This fixes the following link problem:
```
/builder/shared-workdir/build/staging_dir/toolchain-mipsel_24kc+24kf_gcc-14.2.0_musl/lib/gcc/mipsel-openwrt-linux-musl/14.2.0/../../../../mipsel-openwrt-linux-musl/bin/ld.bfd: ./liblua.so: undefined reference to `__mips16_ledf2'
/builder/shared-workdir/build/staging_dir/toolchain-mipsel_24kc+24kf_gcc-14.2.0_musl/lib/gcc/mipsel-openwrt-linux-musl/14.2.0/../../../../mipsel-openwrt-linux-musl/bin/ld.bfd: ./liblua.so: undefined reference to `__mips16_call_stub_df_2'
/builder/shared-workdir/build/staging_dir/toolchain-mipsel_24kc+24kf_gcc-14.2.0_musl/lib/gcc/mipsel-openwrt-linux-musl/14.2.0/../../../../mipsel-openwrt-linux-musl/bin/ld.bfd: ./liblua.so: undefined reference to `__mips16_muldf3'
```

Link: https://github.com/openwrt/openwrt/pull/18688
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
toolchain/gcc/patches-14.x/020-MIPS-Include-missing-mips16.S-in-libgcc-lib1funcs.S.patch [new file with mode: 0644]

diff --git a/toolchain/gcc/patches-14.x/020-MIPS-Include-missing-mips16.S-in-libgcc-lib1funcs.S.patch b/toolchain/gcc/patches-14.x/020-MIPS-Include-missing-mips16.S-in-libgcc-lib1funcs.S.patch
new file mode 100644 (file)
index 0000000..00a4bf8
--- /dev/null
@@ -0,0 +1,34 @@
+From 75892d97979f397a66730b97e8279941169e0316 Mon Sep 17 00:00:00 2001
+From: YunQiang Su <syq@gcc.gnu.org>
+Date: Fri, 23 Aug 2024 23:46:16 +0800
+Subject: MIPS: Include missing mips16.S in libgcc/lib1funcs.S
+
+mips16.S was missing since
+commit 29b74545531f6afbee9fc38c267524326dbfbedf
+Date:   Thu Jun 1 10:14:24 2023 +0800
+
+    MIPS: Add speculation_barrier support
+
+Without mips16.S included, some symbols will miss for mips16, and
+so some software will fail to build.
+
+libgcc/ChangeLog:
+
+       * config/mips/lib1funcs.S: Includes mips16.S.
+
+(cherry picked from commit 9522fc8bb7812f2ad50eb038e0938bfd958e730f)
+---
+ libgcc/config/mips/lib1funcs.S | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/libgcc/config/mips/lib1funcs.S
++++ b/libgcc/config/mips/lib1funcs.S
+@@ -19,7 +19,7 @@ a copy of the GCC Runtime Library Except
+ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ <http://www.gnu.org/licenses/>.  */
+-//#include "mips16.S"
++#include "mips16.S"
+ #ifdef L_speculation_barrier