sim: smp: plumb igen flag down to all users
authorMike Frysinger <vapier@gentoo.org>
Sun, 25 Dec 2022 06:05:09 +0000 (01:05 -0500)
committerMike Frysinger <vapier@gentoo.org>
Sun, 25 Dec 2022 07:13:32 +0000 (02:13 -0500)
While mips has respected sim_igen_smp at configure time (which was
always empty since it defaulted smp to off), no other igen port did.
Move this to a makefile variable and plumb it through the common
IGEN_RUN variable instead so everyone gets it by default.  We also
clean up some redundant -N0 setting with multirun mips.

sim/Makefile.in
sim/arch-subdir.mk.in
sim/common/Make-common.in
sim/configure
sim/igen/local.mk
sim/m4/sim_ac_option_smp.m4
sim/mips/Makefile.in
sim/mips/acinclude.m4

index 0693572987e54d063dba33f4db5ab5e779f09d91..08e0f7cc24e2202acf62a0d4f797950f1f8229db 100644 (file)
@@ -1022,6 +1022,7 @@ EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
 GREP = @GREP@
+IGEN_FLAGS_SMP = @IGEN_FLAGS_SMP@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -1282,7 +1283,7 @@ SIM_COMMON_LIBS = \
 # igen leaks memory, and therefore makes AddressSanitizer unhappy.  Disable
 # leak detection while running it.
 @SIM_ENABLE_IGEN_TRUE@IGEN = igen/igen$(EXEEXT)
-@SIM_ENABLE_IGEN_TRUE@IGEN_RUN = ASAN_OPTIONS=detect_leaks=0 $(IGEN)
+@SIM_ENABLE_IGEN_TRUE@IGEN_RUN = ASAN_OPTIONS=detect_leaks=0 $(IGEN) $(IGEN_FLAGS_SMP)
 @SIM_ENABLE_IGEN_TRUE@igen_libigen_a_SOURCES = \
 @SIM_ENABLE_IGEN_TRUE@ igen/table.c \
 @SIM_ENABLE_IGEN_TRUE@ igen/lf.c \
index cfde3f3fb785d3ced05e5f94c80eca97a55bf1b9..e6c779a20d573a8a418660cfa5fd4a495ac1bb46 100644 (file)
@@ -73,3 +73,6 @@ SIM_INLINE = @SIM_INLINE@
 SIM_HW_CFLAGS = @SIM_HW_CFLAGS@
 SIM_HW_OBJS = $(SIM_HW_DEVICES:%=dv-%.o)
 @SIM_ENABLE_HW_FALSE@SIM_HW_OBJS =
+
+# TODO: Delete this once mips/Makefile.in igen moves to mips/local.mk.
+IGEN_FLAGS_SMP = @IGEN_FLAGS_SMP@
index 52cc3c926f7f83d69c3b203b845dedd91833ec98..7b1caa0781f1bf08e04504bbc723db8eac56e702 100644 (file)
@@ -82,7 +82,7 @@ POSTCOMPILE = @true
 # igen leaks memory, and therefore makes AddressSanitizer unhappy.  Disable
 # leak detection while running it.
 IGEN = ../igen/igen$(EXEEXT)
-IGEN_RUN = ASAN_OPTIONS=detect_leaks=0 $(IGEN)
+IGEN_RUN = ASAN_OPTIONS=detect_leaks=0 $(IGEN) $(IGEN_FLAGS_SMP)
 
 # Each simulator's Makefile.in defines one or more of these variables
 # to override our settings as necessary.  There is no need to define these
index 6329dfd6797ef5ffa9d2b26ab2dad2e953bc5542..34a8d59d92d74ba330b1b760a583ad3f05348b5c 100755 (executable)
@@ -656,6 +656,7 @@ SIM_MIPS_SUBTARGET
 SIM_FRV_TRAPDUMP_FLAGS
 sim_float
 sim_bitsize
+IGEN_FLAGS_SMP
 SIM_INLINE
 SIM_HW_SOCKSER
 SIM_HW_CFLAGS
@@ -12445,7 +12446,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12448 "configure"
+#line 12449 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12551,7 +12552,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12554 "configure"
+#line 12555 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -16095,7 +16096,8 @@ if test "${enable_sim_smp+set}" = set; then :
   *)   sim_smp="$enableval";;
 esac
 fi
-sim_igen_smp="-N ${sim_smp}"
+IGEN_FLAGS_SMP="-N ${sim_smp}"
+
 if test "x$sim_smp" = x0; then :
 
 else
@@ -16603,10 +16605,10 @@ else
       SIM_MIPS_MULTI_SRC=doesnt-exist.c
 
 fi
-SIM_MIPS_IGEN_FLAGS="-F ${sim_mips_igen_filter} ${sim_mips_igen_machine} ${sim_igen_smp}"
-SIM_MIPS_M16_FLAGS="-F ${sim_mips_m16_filter} ${sim_mips_m16_machine} ${sim_igen_smp}"
-SIM_MIPS_MICROMIPS16_FLAGS="-F ${sim_mips_micromips16_filter} ${sim_mips_micromips16_machine} ${sim_igen_smp}"
-SIM_MIPS_MICROMIPS_FLAGS="-F ${sim_mips_micromips_filter} ${sim_mips_micromips_machine} ${sim_igen_smp}"
+SIM_MIPS_IGEN_FLAGS="-F ${sim_mips_igen_filter} ${sim_mips_igen_machine}"
+SIM_MIPS_M16_FLAGS="-F ${sim_mips_m16_filter} ${sim_mips_m16_machine}"
+SIM_MIPS_MICROMIPS16_FLAGS="-F ${sim_mips_micromips16_filter} ${sim_mips_micromips16_machine}"
+SIM_MIPS_MICROMIPS_FLAGS="-F ${sim_mips_micromips_filter} ${sim_mips_micromips_machine}"
 
 
 
index bf984db5edfc1ae159ad249f52144f66650608e9..5d552952b990d6f8e74110eb9793a35777e363bf 100644 (file)
@@ -22,7 +22,7 @@
 # igen leaks memory, and therefore makes AddressSanitizer unhappy.  Disable
 # leak detection while running it.
 IGEN = %D%/igen$(EXEEXT)
-IGEN_RUN = ASAN_OPTIONS=detect_leaks=0 $(IGEN)
+IGEN_RUN = ASAN_OPTIONS=detect_leaks=0 $(IGEN) $(IGEN_FLAGS_SMP)
 
 ## This makes sure igen is available before building the arch-subdirs which
 ## need to run the igen tool.
index 5c2b35f9d846bddde0700a2ef67777ad1f0d59cc..47ddabd05f4ac76dbc012ed09c16182a68e9d5e3 100644 (file)
@@ -27,7 +27,8 @@ AC_ARG_ENABLE(sim-smp,
   no)  sim_smp="0";;
   *)   sim_smp="$enableval";;
 esac])dnl
-sim_igen_smp="-N ${sim_smp}"
+IGEN_FLAGS_SMP="-N ${sim_smp}"
+AC_SUBST(IGEN_FLAGS_SMP)
 dnl NB: The ppc code uses a diff default because its smp works.  That is why
 dnl we don't unconditionally enable WITH_SMP here.  Once we unify ppc, we can
 dnl make this unconditional.
index c287a632ae73be2862f59ede712c970f4e2841c1..8493f8780dc3ede4ee7ad345055a5841c4addb6d 100644 (file)
@@ -422,7 +422,6 @@ tmp-mach-multi: $(IGEN_INSN) $(IGEN_DC) $(IGEN) $(IGEN_INCLUDE)
                -I $(srcdir) \
                -Werror \
                -Wnodiscard \
-               -N 0 \
                -M $${m} \
                -G gen-direct-access \
                -G gen-zero-r0 \
@@ -451,7 +450,6 @@ tmp-itable-multi: $(IGEN_INSN) $(IGEN_DC) $(IGEN) $(IGEN_INCLUDE)
                -Werror \
                -Wnodiscard \
                -Wnowidth \
-               -N 0 \
                $(SIM_MIPS_MULTI_FLAGS) \
                -G gen-direct-access \
                -G gen-zero-r0 \
index 0a8bf97ba854662d0a3d48cfe234e6f6f41271bc..ae5cc294a0316bdd15c0465a7a2f3ec834fffc4a 100644 (file)
@@ -322,10 +322,10 @@ __EOF__
   dnl For clean-extra target.
   SIM_MIPS_MULTI_SRC=doesnt-exist.c
 ])
-SIM_MIPS_IGEN_FLAGS="-F ${sim_mips_igen_filter} ${sim_mips_igen_machine} ${sim_igen_smp}"
-SIM_MIPS_M16_FLAGS="-F ${sim_mips_m16_filter} ${sim_mips_m16_machine} ${sim_igen_smp}"
-SIM_MIPS_MICROMIPS16_FLAGS="-F ${sim_mips_micromips16_filter} ${sim_mips_micromips16_machine} ${sim_igen_smp}"
-SIM_MIPS_MICROMIPS_FLAGS="-F ${sim_mips_micromips_filter} ${sim_mips_micromips_machine} ${sim_igen_smp}"
+SIM_MIPS_IGEN_FLAGS="-F ${sim_mips_igen_filter} ${sim_mips_igen_machine}"
+SIM_MIPS_M16_FLAGS="-F ${sim_mips_m16_filter} ${sim_mips_m16_machine}"
+SIM_MIPS_MICROMIPS16_FLAGS="-F ${sim_mips_micromips16_filter} ${sim_mips_micromips16_machine}"
+SIM_MIPS_MICROMIPS_FLAGS="-F ${sim_mips_micromips_filter} ${sim_mips_micromips_machine}"
 AC_SUBST(SIM_MIPS_IGEN_FLAGS)
 AC_SUBST(SIM_MIPS_M16_FLAGS)
 AC_SUBST(SIM_MIPS_MICROMIPS_FLAGS)