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 <huangqi3@xiaomi.com>
This commit is contained in:
Huang Qi 2023-06-07 17:57:14 +08:00 committed by Xiang Xiao
parent 8e71885ee5
commit 712d008f66
2 changed files with 17 additions and 1 deletions

1
include/wasm/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
math.h

View File

@ -57,6 +57,11 @@ CFLAGS_STRIP += $(ARCHCPUFLAGS) $(ARCHCFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(A
WCFLAGS += $(filter-out $(CFLAGS_STRIP),$(CFLAGS)) WCFLAGS += $(filter-out $(CFLAGS_STRIP),$(CFLAGS))
WCFLAGS += --sysroot=$(WSYSROOT) -nostdlib -D__NuttX__ 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 = -z stack-size=$(STACKSIZE) -Wl,--initial-memory=$(INITIAL_MEMORY)
WLDFLAGS += -Wl,--export=main -Wl,--export=__main_argc_argv WLDFLAGS += -Wl,--export=main -Wl,--export=__main_argc_argv
WLDFLAGS += -Wl,--export=__heap_base -Wl,--export=__data_end WLDFLAGS += -Wl,--export=__heap_base -Wl,--export=__data_end
@ -121,8 +126,18 @@ WAMR_MODE ?= INT
WSRCS := $(MAINSRC) $(CSRCS) WSRCS := $(MAINSRC) $(CSRCS)
WOBJS := $(WSRCS:=$(SUFFIX).wo) 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) all:: $(WBIN)
depend:: $(APPDIR)$(DELIM)include$(DELIM)wasm$(DELIM)math.h
$(WOBJS): %.c$(SUFFIX).wo : %.c $(WOBJS): %.c$(SUFFIX).wo : %.c
$(Q) $(WCC) $(WCFLAGS) -c $^ -o $@ $(Q) $(WCC) $(WCFLAGS) -c $^ -o $@
@ -140,7 +155,7 @@ $(WBIN): $(WOBJS)
clean:: clean::
$(call DELFILE, $(WOBJS)) $(call DELFILE, $(WOBJS))
$(call DELFILE, $(WBIN)) $(call DELFILE, $(WBIN))
$(call DELFILE, $(APPDIR)$(DELIM)include$(DELIM)wasm$(DELIM)math.h)
endif # WASM_BUILD endif # WASM_BUILD