Skip to content

Commit 7fcc4f2

Browse files
authored
Revamp and simplify the libpreopen code. (#110)
wasi-libc's copy of libpreopen has evolved so many local changes that it's no longer worth keeping the upstream code structure and marking changes with __wasilibc_unmodified_upstream. This PR merges the source files into a single file, removes all __wasilibc_unmodified_upstream code, eliminates the ability to allocate multiple preopen lists, eliminates the need for __wasilibc_init_preopen, eliminates the non-standard eaccess, and makes several other cleanups. It also enables NDEBUG so that internal assertions are disabled in release builds.
1 parent eb7230c commit 7fcc4f2

File tree

12 files changed

+558
-1607
lines changed

12 files changed

+558
-1607
lines changed

Makefile

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
WASM_CC ?= clang
44
WASM_NM ?= $(patsubst %clang,%llvm-nm,$(WASM_CC))
55
WASM_AR ?= $(patsubst %clang,%llvm-ar,$(WASM_CC))
6-
WASM_CFLAGS ?= -O2
6+
WASM_CFLAGS ?= -O2 -DNDEBUG
77
# The directory where we build the sysroot.
88
SYSROOT ?= $(CURDIR)/sysroot
99
# A directory to install to for "make install".
@@ -45,12 +45,10 @@ LIBC_BOTTOM_HALF_CLOUDLIBC_SRC_INC = $(LIBC_BOTTOM_HALF_CLOUDLIBC_SRC)/include
4545
LIBC_BOTTOM_HALF_HEADERS_PUBLIC = $(LIBC_BOTTOM_HALF_DIR)/headers/public
4646
LIBC_BOTTOM_HALF_HEADERS_PRIVATE = $(LIBC_BOTTOM_HALF_DIR)/headers/private
4747
LIBC_BOTTOM_HALF_LIBPREOPEN_DIR = $(LIBC_BOTTOM_HALF_DIR)/libpreopen
48-
LIBC_BOTTOM_HALF_LIBPREOPEN_LIB = $(LIBC_BOTTOM_HALF_LIBPREOPEN_DIR)/lib
49-
LIBC_BOTTOM_HALF_LIBPREOPEN_INC = $(LIBC_BOTTOM_HALF_LIBPREOPEN_DIR)/include
5048
LIBC_BOTTOM_HALF_SOURCES = $(LIBC_BOTTOM_HALF_DIR)/sources
5149
LIBC_BOTTOM_HALF_ALL_SOURCES = \
5250
$(shell find $(LIBC_BOTTOM_HALF_CLOUDLIBC_SRC) -name \*.c) \
53-
$(LIBC_BOTTOM_HALF_LIBPREOPEN_LIB)/po_libc_wrappers.c \
51+
$(LIBC_BOTTOM_HALF_LIBPREOPEN_DIR)/libpreopen.c \
5452
$(shell find $(LIBC_BOTTOM_HALF_SOURCES) -name \*.c)
5553
LIBWASI_EMULATED_MMAN_SOURCES = \
5654
$(shell find $(LIBC_BOTTOM_HALF_DIR)/mman -name \*.c)
@@ -364,9 +362,7 @@ $(DLMALLOC_OBJS): override WASM_CFLAGS += \
364362
startup_files $(LIBC_BOTTOM_HALF_ALL_OBJS): override WASM_CFLAGS += \
365363
-I$(LIBC_BOTTOM_HALF_HEADERS_PRIVATE) \
366364
-I$(LIBC_BOTTOM_HALF_CLOUDLIBC_SRC_INC) \
367-
-I$(LIBC_BOTTOM_HALF_CLOUDLIBC_SRC) \
368-
-I$(LIBC_BOTTOM_HALF_LIBPREOPEN_LIB) \
369-
-I$(LIBC_BOTTOM_HALF_LIBPREOPEN_INC)
365+
-I$(LIBC_BOTTOM_HALF_CLOUDLIBC_SRC)
370366

371367
$(LIBC_TOP_HALF_ALL_OBJS) $(MUSL_PRINTSCAN_LONG_DOUBLE_OBJS) $(MUSL_PRINTSCAN_NO_FLOATING_POINT_OBJS): override WASM_CFLAGS += \
372368
-I$(LIBC_TOP_HALF_MUSL_SRC_DIR)/include \

expected/wasm32-wasi/defined-symbols.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,6 @@ __uselocale
251251
__utc
252252
__wasilibc_fd_renumber
253253
__wasilibc_find_relpath
254-
__wasilibc_init_preopen
255254
__wasilibc_populate_environ
256255
__wasilibc_register_preopened_fd
257256
__wasilibc_rmdirat
@@ -428,7 +427,6 @@ drand48
428427
drem
429428
dremf
430429
duplocale
431-
eaccess
432430
ecvt
433431
encrypt
434432
environ

expected/wasm32-wasi/predefined-macros.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1143,6 +1143,7 @@
11431143
#define NAN (0.0f/0.0f)
11441144
#define NBBY 8
11451145
#define NCARGS 131072
1146+
#define NDEBUG 1
11461147
#define ND_NA_FLAG_OVERRIDE 0x00000020
11471148
#define ND_NA_FLAG_ROUTER 0x00000080
11481149
#define ND_NA_FLAG_SOLICITED 0x00000040
@@ -3171,7 +3172,7 @@
31713172
#define and_eq &=
31723173
#define asin(x) __tg_real_complex(asin, (x))
31733174
#define asinh(x) __tg_real_complex(asinh, (x))
3174-
#define assert(x) ((void)((x) || (__assert_fail(#x, __FILE__, __LINE__, __func__),0)))
3175+
#define assert(x) (void)0
31753176
#define atan(x) __tg_real_complex(atan, (x))
31763177
#define atan2(x,y) __tg_real_2(atan2, (x), (y))
31773178
#define atanh(x) __tg_real_complex(atanh, (x))

libc-bottom-half/crt/crt1.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ extern void __prepare_for_exit(void);
1111
void _Exit(int) __attribute__((noreturn));
1212

1313
static __wasi_errno_t populate_libpreopen(void) {
14-
__wasilibc_init_preopen();
15-
1614
// Skip stdin, stdout, and stderr, and count up until we reach an invalid
1715
// file descriptor.
1816
for (__wasi_fd_t fd = 3; fd != 0; ++fd) {

libc-bottom-half/libpreopen/include/libpreopen.h

Lines changed: 0 additions & 215 deletions
This file was deleted.

0 commit comments

Comments
 (0)