NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-sgimips/59925: databases/db4: doesn't build on mips1 (sgimips) again



>Number:         59925
>Category:       port-sgimips
>Synopsis:       databases/db4: doesn't build on mips1 (sgimips) again
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    port-sgimips-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Jan 17 04:55:00 +0000 2026
>Originator:     Adrian Chadd
>Release:        11.99.4
>Organization:
>Environment:
sgimips-o2-r5000$ uname -a
NetBSD sgimips-o2-r5000.home.cacheboy.io 11.99.4 NetBSD 11.99.4 (GENERIC32_IP3x) #1: Fri Jan 16 20:00:39 PST 2026  adrian@test-3:/data/1/adrian/netbsd/netbsd-obj-sgimips/sys/arch/sgimips/compile/GENERIC32_IP3x sgimips
sgimips-o2-r5000$ 
>Description:
databases/db4/patches/patch-ae talks about mips-1 compile fixes, but there's nothing in that file anymore to patch for mips.


>How-To-Repeat:

/home/adrian/work/netbsd/pkgsrc/pkgsrc/databases/db4
sgimips-o2-r5000$ bmake
=> Bootstrap dependency digest>=20211023: found digest-20220214
===> Skipping vulnerability checks.
WARNING: No /home/adrian/pkg/pkgdb/pkg-vulnerabilities file found.
WARNING: To fix run: `/home/adrian/pkg/sbin/pkg_admin -K /home/adrian/pkg/pkgdb fetch-pkg-vulnerabilities'.
===> Building for db4-4.8.30nb1
./libtool --mode=compile cc -c -I. -I../dist/.. -I/usr/include -O2 -I/usr/include ../dist/../mutex/mut_tas.c
libtool: compile:  cc -c -I. -I../dist/.. -O2 ../dist/../mutex/mut_tas.c  -fPIC -DPIC -o .libs/mut_tas.o
/tmp//cc7hBX6Y.s: Assembler messages:
/tmp//cc7hBX6Y.s:944: Error: opcode not supported on this processor: mips1 (mips1) `sync'
*** Error code 1

Stop.
bmake: stopped making "all" in /home/adrian/work/netbsd/pkgsrc/pkgsrc/databases/db4/work/db-4.8.30/build_unix
*** Error code 1

Stop.
bmake[1]: stopped making "all" in /home/adrian/work/netbsd/pkgsrc/pkgsrc/databases/db4

>Fix:
likely need to update patch-ae to look something like this:

sgimips-o2-r5000$ diff -u dbinc/mutex_int.h.orig dbinc/mutex_int.h
--- dbinc/mutex_int.h.orig      2010-04-12 20:25:22.000000000 +0000
+++ dbinc/mutex_int.h   2026-01-17 04:47:48.036939874 +0000
@@ -714,14 +714,24 @@
        !__r;                                                           \
 })
 
+#if defined (__sparc_v9__)
 #define        MUTEX_UNSET(tsl)        (*(tsl) = 0, MUTEX_MEMBAR(tsl))
-#define        MUTEX_INIT(tsl)         (MUTEX_UNSET(tsl), 0)
 #define        MUTEX_MEMBAR(x) \
        ({ __asm__ volatile ("membar #StoreStore|#StoreLoad|#LoadStore"); })
 #define        MEMBAR_ENTER() \
        ({ __asm__ volatile ("membar #StoreStore|#StoreLoad"); })
 #define        MEMBAR_EXIT() \
        ({ __asm__ volatile ("membar #StoreStore|#LoadStore"); })
+#else
+#define        MUTEX_UNSET(tsl) ({                                             \
+       __asm__ volatile ("stbar");                                     \
+       *(tsl) = 0; })
+#define        MUTEX_MEMBAR(x) \
+       ({ __asm__ volatile ("stbar"); })
+#define        MEMBAR_ENTER()
+#define        MEMBAR_EXIT()
+#endif
+#define        MUTEX_INIT(tsl)         (MUTEX_UNSET(tsl), 0)
 #endif
 #endif
 
@@ -778,10 +788,13 @@
 static inline void
 MUTEX_UNSET(tsl_t *tsl) {
        __asm__ volatile(
+              "       .set push           \n"
+              "       .set mips2          \n"
               "       .set noreorder      \n"
               "       sync                \n"
               "       sw      $0, %0      \n"
               "       .set reorder        \n"
+              "       .set pop            \n"
               : "=m" (*tsl)
               : "m" (*tsl)
               : "memory");
sgimips-o2-r5000$ 



Home | Main Index | Thread Index | Old Index