]> git.proxmox.com Git - wasi-libc.git/blobdiff - Makefile
feat: add support for accept and accept4
[wasi-libc.git] / Makefile
index 6d5f8dd6e8107d0d29d06f5ab0bc9f2fc823bda9..98aa995bc124269057925838a534e14f8d2e33e5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 # These variables are specifically meant to be overridable via the make
 # command-line.
 CC ?= clang
-WASM_NM ?= $(patsubst %clang,%llvm-nm,$(filter-out ccache sccache,$(WASM_CC)))
+NM ?= $(patsubst %clang,%llvm-nm,$(filter-out ccache sccache,$(CC)))
 AR ?= $(patsubst %clang,%llvm-ar,$(filter-out ccache sccache,$(CC)))
 EXTRA_CFLAGS ?= -O2 -DNDEBUG
 # The directory where we build the sysroot.
@@ -498,9 +498,9 @@ check-symbols: startup_files libc
        @# LLVM PR40497, which is fixed in 9.0, but not in 8.0.
        @# Ignore certain llvm builtin symbols such as those starting with __mul
        @# since these dependencies can vary between llvm versions.
-       "$(WASM_NM)" --defined-only "$(SYSROOT_LIB)"/libc.a "$(SYSROOT_LIB)"/libwasi-emulated-*.a "$(SYSROOT_LIB)"/*.o \
+       "$(NM)" --defined-only "$(SYSROOT_LIB)"/libc.a "$(SYSROOT_LIB)"/libwasi-emulated-*.a "$(SYSROOT_LIB)"/*.o \
            |grep ' [[:upper:]] ' |sed 's/.* [[:upper:]] //' |LC_ALL=C sort > "$(DEFINED_SYMBOLS)"
-       for undef_sym in $$("$(WASM_NM)" --undefined-only "$(SYSROOT_LIB)"/libc.a "$(SYSROOT_LIB)"/libc-*.a "$(SYSROOT_LIB)"/*.o \
+       for undef_sym in $$("$(NM)" --undefined-only "$(SYSROOT_LIB)"/libc.a "$(SYSROOT_LIB)"/libc-*.a "$(SYSROOT_LIB)"/*.o \
            |grep ' U ' |sed 's/.* U //' |LC_ALL=C sort |uniq); do \
            grep -q '\<'$$undef_sym'\>' "$(DEFINED_SYMBOLS)" || echo $$undef_sym; \
        done | grep -v "^__mul" > "$(UNDEFINED_SYMBOLS)"
@@ -535,6 +535,9 @@ check-symbols: startup_files libc
        @#
        @# TODO: Undefine __FLOAT128__ for now since it's not in clang 8.0.
        @# TODO: Filter out __FLT16_* for now, as not all versions of clang have these.
+       @# TODO: Filter out __NO_MATH_ERRNO_ and a few __*WIDTH__ that are new to clang 14.
+       @# TODO: clang defined __FLT_EVAL_METHOD__ until clang 15, so we force-undefine it
+       @# for older versions.
        $(CC) $(CFLAGS) "$(SYSROOT_SHARE)/include-all.c" \
            -isystem $(SYSROOT_INC) \
            -std=gnu17 \
@@ -553,8 +556,12 @@ check-symbols: startup_files libc
            -U__GNUC_PATCHLEVEL__ \
            -U__VERSION__ \
            -U__FLOAT128__ \
+           -U__NO_MATH_ERRNO__ \
+           -U__BITINT_MAXWIDTH__ \
+           -U__FLT_EVAL_METHOD__ -Wno-builtin-macro-redefined \
            | sed -e 's/__[[:upper:][:digit:]]*_ATOMIC_\([[:upper:][:digit:]_]*\)_LOCK_FREE/__compiler_ATOMIC_\1_LOCK_FREE/' \
            | grep -v '^#define __FLT16_' \
+           | grep -v '^#define __\(BOOL\|INT_\(LEAST\|FAST\)\(8\|16\|32\|64\)\|INT\|LONG\|LLONG\|SHRT\)_WIDTH__' \
            > "$(SYSROOT_SHARE)/predefined-macros.txt"
 
        # Check that the computed metadata matches the expected metadata.