./src/internal/version.o: build/version.h ./src/internal/version.lo: build/version.h
SHARED_OBJS += $(LDSO_OBJS) SHARED_LIB_DEPS += $(LIBC_DEPS)
LDFLAGS_COMMON += -nostdlib LDFLAGS_COMMON += -Wl,-Bsymbolic-functions LDFLAGS_COMMON += -Wl,--sort-common LDFLAGS_COMMON += -Wl,--gc-sections LDFLAGS_COMMON += -Wl,--no-undefined LDFLAGS_COMMON += -Wl,--exclude-libs=ALL
LDFLAGS_COMMON += -Wl,-e -Wl,_dlstart LDFLAGS_COMMON += -Wl,--sort-section -Wl,alignment
ifeq ($(CC_BINFMT),ELF) LDFLAGS_COMMON += -Wl,--hash-style -Wl,both endif
CFLAGS_COMMON += -fdata-sections CFLAGS_COMMON += -ffunction-sections CFLAGS_COMMON += -fno-unwind-tables CFLAGS_COMMON += -fno-asynchronous-unwind-tables CFLAGS_COMMON += -frounding-math CFLAGS_COMMON += -fexcess-precision=standard
ifeq ($(CC_BINFMT),ELF) CFLAGS_ASM += -Wa,--noexecstack CFLAGS_CONFIG += $(CFLAGS_ASM) endif
libc_mem_modules = \ ./src/string/memcpy.c \ ./src/string/memmove.c \ ./src/string/memcmp.c \ ./src/string/memset.c
libc_mem_objs = $(libc_mem_modules:%.c=%.o) libc_mem_lobjs = $(libc_mem_modules:%.c=%.lo)
$(libc_mem_objs): CFLAGS_CONFIG += -fno-tree-loop-distribute-patterns $(libc_mem_lobjs): CFLAGS_CONFIG += -fno-tree-loop-distribute-patterns
$(DESTDIR)$(LIBDIR): mkdir -p $@
LIBC_EMPTY_LIBS_NAMES = m rt dl crypt util pthread xnet resolv LIBC_EMPTY_LIBS = $(LIBC_EMPTY_LIBS_NAMES:%=lib/lib%.a) LIBC_EMPTY_LIBS_TARGET = $(LIBC_EMPTY_LIBS_NAMES:%=$(DESTDIR)$(LIBDIR)/lib%.a)
shared-lib: $(LIBC_EMPTY_LIBS) static-lib: $(LIBC_EMPTY_LIBS)
$(DESTDIR)$(LIBDIR)/%.a: lib/%.a $(DESTDIR)$(LIBDIR) cp $< $@.tmp chmod 0644 $@.tmp mv $@.tmp $@
install-shared: $(LIBC_EMPTY_LIBS_TARGET) install-static: $(LIBC_EMPTY_LIBS_TARGET)
CRT_OBJS_REFS = $(subst $(ARCH)/,,$(CRT_OBJS)) CRT_OBJS_TARGET = $(subst ./crt/,$(DESTDIR)$(LIBDIR)/,$(CRT_OBJS_REFS))
$(DESTDIR)$(LIBDIR)/%.o: crt/$(ARCH)/%.o $(DESTDIR)$(LIBDIR) cp $< $@.tmp chmod 0644 $@.tmp mv $@.tmp $@
$(DESTDIR)$(LIBDIR)/%.o: crt/%.o $(DESTDIR)$(LIBDIR) cp $< $@.tmp chmod 0644 $@.tmp mv $@.tmp $@
install-shared: $(CRT_OBJS_TARGET) install-static: $(CRT_OBJS_TARGET)