Fix the wasm build

This commit is contained in:
pancake
2026-05-14 22:52:34 +02:00
parent a92990e3a1
commit 3a464ff95b
7 changed files with 19 additions and 1 deletions

View File

@@ -8,8 +8,10 @@ include ../../libr/util/deps.mk
LDFLAGS+=${DL_LIBS}
LDFLAGS+=$(CLOCK_LDFLAGS)
ifeq (,$(filter 1,$(WASM)))
ifeq (,$(filter wasi wasm emscripten,$(COMPILER)))
LDFLAGS+=$(LIBATOMIC)
endif
endif
include ../shlr.mk

View File

@@ -6,11 +6,14 @@ include ../../shlr/sdb.mk
# despite libs are pic, some systems/compilers dont
# like relocatable executables, so here we do the magic
USE_PIE=$(shell echo "$(CC)" | grep -E "emcc|ios-sdk|macos-sdk|tcc|vinix|wasm" >/dev/null && echo 0 || echo 1)
USE_PIE=$(shell echo "$(CC) $(COMPILER) $(OSTYPE)" | grep -E "emcc|ios-sdk|macos-sdk|tcc|vinix|wasm|wasi" >/dev/null && echo 0 || echo 1)
ifeq (${OSTYPE},solaris)
USE_PIE := 0
endif
ifeq ($(WASM),1)
USE_PIE := 0
endif
ifeq ($(USE_PIE),1)
CFLAGS+=-pie

View File

@@ -70,7 +70,11 @@ LINK+=$(subst r_,-L$(LIBR)/,$(BINDEPS))
LINK+=$(subst r_,-lr_,$(BINDEPS))
CFLAGS+=${PIC_CFLAGS}
LINK+=${PIC_CFLAGS}
ifeq (,$(filter 1,$(WASM)))
ifeq (,$(filter wasi wasm emscripten,$(COMPILER)))
LINK+=$(LIBATOMIC)
endif
endif
else
ifneq ($(R2DEPS),)
LINK+=$(shell echo ${R2DEPS} | sed -e 's:r_\([^ ]\+\):$(LIBR)/\1/libr_\1.${EXT_AR}:g')

View File

@@ -17,7 +17,11 @@ R2DEPS+=r_syscall
R2DEPS+=r_flag
CFLAGS+=-DR2_PLUGIN_INCORE
CFLAGS+=-DCONFIG_VERSION=\"0.0.0\"
ifeq (,$(filter 1,$(WASM)))
ifeq (,$(filter wasi wasm emscripten,$(COMPILER)))
LDFLAGS+=$(LIBATOMIC)
endif
endif
LDFLAGS+=-lm
ifeq ($(WANT_QJS),1)

View File

@@ -5,6 +5,7 @@ EXT_SO=.bc
EXT_AR=a
CC=emcc -DR2_NO_LONG_DOUBLE=1
AR=emar
LIBATOMIC=
LINK=
RANLIB=emranlib
ONELIB=0
@@ -20,6 +21,7 @@ CFLAGS_OPT1=-O1
CFLAGS_OPT2=-O2
CFLAGS_OPT3=-O3
CFLAGS_DEBUG=-g
WASM=1
ifeq ($(OSTYPE),auto)
OSTYPE=$(shell uname | tr 'A-Z' 'a-z')

View File

@@ -7,6 +7,7 @@ EXT_AR=a
CC=$(WASI_SDK)/bin/clang --sysroot=$(WASI_SYSROOT) -DHAVE_PTHREAD=0 -D_WASI_EMULATED_SIGNAL -D_WASI_EMULATED_MMAN -DHAVE_PTY=0 -DR2_NO_LONG_DOUBLE=1
# -lc-printscan-long-double
AR=$(WASI_SDK)/bin/ar
LIBATOMIC=
LINK=
RANLIB=$(WASI_SDK)/bin/ranlib
ONELIB=0
@@ -23,6 +24,7 @@ CFLAGS_OPT1=-Os
CFLAGS_OPT2=-Os
CFLAGS_OPT3=-Os
CFLAGS_DEBUG=-g
WASM=1
ifeq ($(OSTYPE),auto)
OSTYPE=$(shell uname | tr 'A-Z' 'a-z')

View File

@@ -5,6 +5,7 @@ EXT_SO=wasm
EXT_AR=a
CC=emcc -DR2_NO_LONG_DOUBLE=1
AR=emar
LIBATOMIC=
RANLIB=emranlib
ONELIB=0
CC_AR=emar q ${LIBAR}