mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-02-07 23:13:34 +00:00
It turned out that the linker was doing the wrong with the amalgamation library concerning weak stubs. A regression test has been added and new binaries have been uploaded to https://justine.lol/cosmopolitan/ Ideally this should be fixed by building a tool that turns multiple .a files into a single .a file with deduplication. As a workaround for now the cosmopolitan.a build is restructured to not include LIBC_STUBS which meant technical debt needed to be paid off where non-stub interfaces were moved to LIBC_INTRIN and LIBC_NEXGEN32E. Thank @PerfectProductions in #31 for the report!
44 lines
1.3 KiB
Makefile
44 lines
1.3 KiB
Makefile
#-*-mode:makefile-gmake;indent-tabs-mode:t;tab-width:8;coding:utf-8-*-┐
|
|
#───vi: set et ft=make ts=8 tw=8 fenc=utf-8 :vi───────────────────────┘
|
|
|
|
o/$(MODE)/test/libc/release/cosmopolitan.zip: \
|
|
o/cosmopolitan.h \
|
|
o/$(MODE)/ape/ape.lds \
|
|
o/$(MODE)/libc/crt/crt.o \
|
|
o/$(MODE)/ape/ape.o \
|
|
o/$(MODE)/cosmopolitan.a
|
|
@zip -j $@ $^
|
|
|
|
o/$(MODE)/test/libc/release/smoke.com: \
|
|
o/$(MODE)/test/libc/release/smoke.com.dbg
|
|
@objcopy -SO binary $< $@
|
|
|
|
o/$(MODE)/test/libc/release/smoke.com.dbg: \
|
|
test/libc/release/smoke.c \
|
|
o/cosmopolitan.h \
|
|
o/$(MODE)/ape/ape.lds \
|
|
o/$(MODE)/libc/crt/crt.o \
|
|
o/$(MODE)/ape/ape.o \
|
|
o/$(MODE)/cosmopolitan.a
|
|
@ACTION=CC build/compile $(CC) \
|
|
-o $@ \
|
|
-Os \
|
|
-static \
|
|
-no-pie \
|
|
-fno-pie \
|
|
-nostdlib \
|
|
-nostdinc \
|
|
-mno-red-zone \
|
|
-Wl,--gc-sections \
|
|
-Wl,-z,max-page-size=0x1000 \
|
|
-Wl,-T,o/$(MODE)/ape/ape.lds \
|
|
-include o/cosmopolitan.h \
|
|
test/libc/release/smoke.c \
|
|
o/$(MODE)/libc/crt/crt.o \
|
|
o/$(MODE)/ape/ape.o \
|
|
o/$(MODE)/cosmopolitan.a
|
|
|
|
.PHONY: o/$(MODE)/test/libc/release
|
|
o/$(MODE)/test/libc/release: \
|
|
o/$(MODE)/test/libc/release/smoke.com \
|
|
o/$(MODE)/test/libc/release/smoke.com.runs
|