Source: Chloe "SpaceToast" Kudryavtsev Remove When: The default Makefile doesn't enforce 32 bit binaries and allows for static linking. 1. Make M32 mode conditional and not dependent on cross-compilation (off by default). 2. Fix up LIBS. 3. Allow for static linking. --- a/Makefile 2019-09-04 19:14:04.134679886 -0400 +++ b/Makefile 2019-09-04 19:15:42.761338716 -0400 @@ -32,9 +32,8 @@ # consider warnings as errors (for development) #CONFIG_WERROR=y - -ifndef CONFIG_WIN32 # force 32 bit build for some utilities -CONFIG_M32=y -endif +#CONFIG_M32=y +#CONFIG_STATIC=y + ifdef CONFIG_DARWIN # use clang instead of gcc @@ -100,4 +99,7 @@ CFLAGS_NOLTO:=$(CFLAGS_OPT) LDFLAGS=-g +ifdef CONFIG_STATIC +LDFLAGS+=-static +endif ifdef CONFIG_LTO CFLAGS_SMALL+=-flto @@ -113,9 +115,9 @@ LDFLAGS+=-fsanitize=address endif -ifdef CONFIG_WIN32 -LDEXPORT= -else +ifndef CONFIG_WIN32 +ifndef CONFIG_STATIC LDEXPORT=-rdynamic endif +endif PROGS=qjs$(EXE) qjsbn$(EXE) qjsc qjsbnc run-test262 run-test262-bn @@ -149,5 +151,5 @@ QJSBN_OBJS=$(OBJDIR)/qjs.bn.o $(OBJDIR)/repl-bn.bn.o $(OBJDIR)/qjscalc.bn.o $(QJSBN_LIB_OBJS) -LIBS=-lm +LIBS=-lm -pthread ifndef CONFIG_WIN32 LIBS+=-ldl @@ -235,17 +237,17 @@ run-test262: $(OBJDIR)/run-test262.o $(QJS_LIB_OBJS) - $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) -lpthread + $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) run-test262-bn: $(OBJDIR)/run-test262.bn.o $(QJSBN_LIB_OBJS) - $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) -lpthread + $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) run-test262-debug: $(patsubst %.o, %.debug.o, $(OBJDIR)/run-test262.o $(QJS_LIB_OBJS)) - $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) -lpthread + $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) run-test262-32: $(patsubst %.o, %.m32.o, $(OBJDIR)/run-test262.o $(QJS_LIB_OBJS)) - $(CC) -m32 $(LDFLAGS) -o $@ $^ $(LIBS) -lpthread + $(CC) -m32 $(LDFLAGS) -o $@ $^ $(LIBS) run-test262-bn32: $(patsubst %.o, %.m32.o, $(OBJDIR)/run-test262.bn.o $(QJSBN_LIB_OBJS)) - $(CC) -m32 $(LDFLAGS) -o $@ $^ $(LIBS) -lpthread + $(CC) -m32 $(LDFLAGS) -o $@ $^ $(LIBS) # object suffix order: bn, nolto, [m32|m32s]