From 501907ac001e3441e021f9519d2b26108020169a Mon Sep 17 00:00:00 2001 From: Huang Qi Date: Wed, 7 Jun 2023 17:57:14 +0800 Subject: [PATCH] tools: Using math.h from NuttX for wasm build wasm clang can't find math.h if using libm from toolchain. It's OK to using math.h from NuttX since only declaration is needed for wasm build. Signed-off-by: Huang Qi --- include/wasm/.gitignore | 1 + tools/Wasm.mk | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 include/wasm/.gitignore diff --git a/include/wasm/.gitignore b/include/wasm/.gitignore new file mode 100644 index 0000000000..e27b5465e7 --- /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 77497c19d9..a26ee334aa 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