diff --git a/include/wasm/.gitignore b/include/wasm/.gitignore new file mode 100644 index 000000000..e27b5465e --- /dev/null +++ b/include/wasm/.gitignore @@ -0,0 +1 @@ +math.h \ No newline at end of file diff --git a/tools/Wasm.mk b/tools/Wasm.mk index 77497c19d..a26ee334a 100644 --- a/tools/Wasm.mk +++ b/tools/Wasm.mk @@ -57,6 +57,11 @@ CFLAGS_STRIP += $(ARCHCPUFLAGS) $(ARCHCFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(A WCFLAGS += $(filter-out $(CFLAGS_STRIP),$(CFLAGS)) WCFLAGS += --sysroot=$(WSYSROOT) -nostdlib -D__NuttX__ +# If CONFIG_LIBM not defined, then define it to 1 +ifeq ($(CONFIG_LIBM),) +WCFLAGS += -DCONFIG_LIBM=1 -I$(APPDIR)$(DELIM)include$(DELIM)wasm +endif + WLDFLAGS = -z stack-size=$(STACKSIZE) -Wl,--initial-memory=$(INITIAL_MEMORY) WLDFLAGS += -Wl,--export=main -Wl,--export=__main_argc_argv WLDFLAGS += -Wl,--export=__heap_base -Wl,--export=__data_end @@ -121,8 +126,18 @@ WAMR_MODE ?= INT WSRCS := $(MAINSRC) $(CSRCS) WOBJS := $(WSRCS:=$(SUFFIX).wo) +# Copy math.h from $(TOPDIR)/include/nuttx/lib/math.h to $(APPDIR)/include/wasm/math.h +# Using declaration of math.h is OK for Wasm build + +$(APPDIR)$(DELIM)include$(DELIM)wasm$(DELIM)math.h: +ifeq ($(CONFIG_LIBM),) + $(call COPYFILE,$(TOPDIR)$(DELIM)include$(DELIM)nuttx$(DELIM)lib$(DELIM)math.h,$@) +endif + all:: $(WBIN) +depend:: $(APPDIR)$(DELIM)include$(DELIM)wasm$(DELIM)math.h + $(WOBJS): %.c$(SUFFIX).wo : %.c $(Q) $(WCC) $(WCFLAGS) -c $^ -o $@ @@ -140,7 +155,7 @@ $(WBIN): $(WOBJS) clean:: $(call DELFILE, $(WOBJS)) $(call DELFILE, $(WBIN)) - + $(call DELFILE, $(APPDIR)$(DELIM)include$(DELIM)wasm$(DELIM)math.h) endif # WASM_BUILD