Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid re-copying the startup object files #555

Merged
merged 1 commit into from
Nov 27, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 12 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -772,7 +772,7 @@ $(OBJDIR)/%.o: %.s $(INCLUDE_DIRS)
$(DLMALLOC_OBJS) $(DLMALLOC_SO_OBJS): CFLAGS += \
-I$(DLMALLOC_INC)

startup_files $(LIBC_BOTTOM_HALF_ALL_OBJS) $(LIBC_BOTTOM_HALF_ALL_SO_OBJS): CFLAGS += \
$(STARTUP_FILES) $(LIBC_BOTTOM_HALF_ALL_OBJS) $(LIBC_BOTTOM_HALF_ALL_SO_OBJS): CFLAGS += \
-I$(LIBC_BOTTOM_HALF_HEADERS_PRIVATE) \
-I$(LIBC_BOTTOM_HALF_CLOUDLIBC_SRC_INC) \
-I$(LIBC_BOTTOM_HALF_CLOUDLIBC_SRC) \
Expand Down Expand Up @@ -849,13 +849,18 @@ endif
@mkdir -p $(@D)
touch $@

startup_files: $(INCLUDE_DIRS) $(LIBC_BOTTOM_HALF_CRT_OBJS)
STARTUP_FILES := $(OBJDIR)/copy-startup-files.stamp
$(STARTUP_FILES): $(INCLUDE_DIRS) $(LIBC_BOTTOM_HALF_CRT_OBJS)
#
# Install the startup files (crt1.o etc).
# Install the startup files (crt1.o, etc.).
#
mkdir -p "$(SYSROOT_LIB)" && \
mkdir -p "$(SYSROOT_LIB)"
cp $(LIBC_BOTTOM_HALF_CRT_OBJS) "$(SYSROOT_LIB)"

# Stamp the startup file installation.
@mkdir -p $(@D)
touch $@

# TODO: As of this writing, wasi_thread_start.s uses non-position-independent
# code, and I'm not sure how to make it position-independent. Once we've done
# that, we can enable libc.so for the wasi-threads build.
Expand Down Expand Up @@ -907,7 +912,7 @@ $(DUMMY_LIBS):
$(AR) crs "$$lib"; \
done

finish: startup_files libc $(DUMMY_LIBS)
finish: $(STARTUP_FILES) libc $(DUMMY_LIBS)
#
# The build succeeded! The generated sysroot is in $(SYSROOT).
#
Expand Down Expand Up @@ -935,7 +940,7 @@ endif
endif


check-symbols: startup_files libc
check-symbols: $(STARTUP_FILES) libc
#
# Collect metadata on the sysroot and perform sanity checks.
#
Expand Down Expand Up @@ -1114,4 +1119,4 @@ clean:
$(RM) -r "$(OBJDIR)"
$(RM) -r "$(SYSROOT)"

.PHONY: default startup_files libc libc_so finish install clean check-symbols bindings
.PHONY: default libc libc_so finish install clean check-symbols bindings