Skip to content

Commit

Permalink
Avoid re-copying the startup object files (#555)
Browse files Browse the repository at this point in the history
This adds a `.stamp` file to the process of copying over the `crt` files
to the sysroot directory to avoid re-copying on each `make` invocation.
  • Loading branch information
abrown authored Nov 27, 2024
1 parent c47daaf commit 777361d
Showing 1 changed file with 12 additions and 7 deletions.
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

0 comments on commit 777361d

Please sign in to comment.