From 712d008f66afae174ddb3786ad2e4962dbc0a5a1 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 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