Skip to content

Commit 98897e2

Browse files
authoredOct 16, 2024
Fix fts build for shared library (#544)
#522 did not include the necessary changes to the Makefile for libc_so build. Additionally, updated CI to check `libc_so` build too to avoid future breakage.
1 parent a05277a commit 98897e2

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed
 

‎.github/workflows/main.yml

+11-3
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,13 @@ jobs:
2323
- os: ubuntu-latest
2424
clang_version: 16.0.0
2525
llvm_asset_suffix: x86_64-linux-gnu-ubuntu-18.04
26+
enable_pic: true
2627
- os: macos-latest
2728
clang_version: 15.0.7
2829
llvm_asset_suffix: x86_64-apple-darwin21.0
2930
- os: windows-latest
3031
clang_version: 16.0.0
32+
enable_pic: true
3133
steps:
3234
- uses: actions/checkout@v4.1.7
3335
with:
@@ -88,12 +90,18 @@ jobs:
8890
echo "BUILD_LIBSETJMP=no" >> $GITHUB_ENV
8991
if: matrix.clang_version == '10.0.0'
9092

93+
- name: Enable PIC build for new LLVM
94+
shell: bash
95+
run: |
96+
echo "MAKE_TARGETS=default libc_so" >> $GITHUB_ENV
97+
if: matrix.enable_pic
98+
9199
- name: Build libc
92100
shell: bash
93101
run: |
94-
make -j4 TARGET_TRIPLE=wasm32-wasi
95-
make -j4 TARGET_TRIPLE=wasm32-wasip1
96-
make -j4 TARGET_TRIPLE=wasm32-wasip2 WASI_SNAPSHOT=p2
102+
make -j4 TARGET_TRIPLE=wasm32-wasi $MAKE_TARGETS
103+
make -j4 TARGET_TRIPLE=wasm32-wasip1 $MAKE_TARGETS
104+
make -j4 TARGET_TRIPLE=wasm32-wasip2 WASI_SNAPSHOT=p2 $MAKE_TARGETS
97105
98106
- name: Build libc + threads
99107
# Only build the thread-capable wasi-libc in the latest supported Clang

‎Makefile

+4-2
Original file line numberDiff line numberDiff line change
@@ -619,6 +619,7 @@ BULK_MEMORY_SO_OBJS = $(patsubst %.o,%.pic.o,$(BULK_MEMORY_OBJS))
619619
DLMALLOC_SO_OBJS = $(patsubst %.o,%.pic.o,$(DLMALLOC_OBJS))
620620
LIBC_BOTTOM_HALF_ALL_SO_OBJS = $(patsubst %.o,%.pic.o,$(LIBC_BOTTOM_HALF_ALL_OBJS))
621621
LIBC_TOP_HALF_ALL_SO_OBJS = $(patsubst %.o,%.pic.o,$(LIBC_TOP_HALF_ALL_OBJS))
622+
FTS_SO_OBJS = $(patsubst %.o,%.pic.o,$(FTS_OBJS))
622623

623624
PIC_OBJS = \
624625
$(LIBC_SO_OBJS) \
@@ -635,7 +636,8 @@ PIC_OBJS = \
635636
$(DLMALLOC_SO_OBJS) \
636637
$(LIBC_BOTTOM_HALF_ALL_SO_OBJS) \
637638
$(LIBC_TOP_HALF_ALL_SO_OBJS) \
638-
$(LIBC_BOTTOM_HALF_CRT_OBJS)
639+
$(LIBC_BOTTOM_HALF_CRT_OBJS) \
640+
$(FTS_SO_OBJS)
639641

640642
# TODO: Specify SDK version, e.g. libc.so.wasi-sdk-21, as SO_NAME once `wasm-ld`
641643
# supports it.
@@ -787,7 +789,7 @@ $(LIBC_TOP_HALF_ALL_OBJS) $(LIBC_TOP_HALF_ALL_SO_OBJS) $(MUSL_PRINTSCAN_LONG_DOU
787789
-Wno-dangling-else \
788790
-Wno-unknown-pragmas
789791

790-
$(FTS_OBJS): CFLAGS += \
792+
$(FTS_OBJS) $(FTS_SO_OBJS): CFLAGS += \
791793
-I$(MUSL_FTS_SRC_DIR) \
792794
-I$(FTS_SRC_DIR) # for config.h
793795

0 commit comments

Comments
 (0)