Make fatcosmocc good enough to build ncurses 6.4

This commit is contained in:
Justine Tunney 2023-08-12 22:30:05 -07:00
parent 399d14aadf
commit 3f2f0e3a74
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
20 changed files with 295 additions and 139 deletions

View file

@ -3,8 +3,8 @@
CC="$COSMO/o/third_party/gcc/bin/aarch64-linux-musl-gcc"
CCFLAGS="-ffixed-x18 -ffixed-x28 -mno-outline-atomics"
LDFLAGS="-static -nostdlib -no-pie -Wl,-z,norelro"
APEFLAGS="-L$COSMOS/lib/.aarch64 -Wl,--gc-sections -Wl,-T,$COSMO/o/$MODE/ape/aarch64.lds $COSMO/o/$MODE/libc/crt/crt.o"
LDFLAGS="-static -nostdlib -no-pie -Wl,-z,norelro -Wl,-z,common-page-size=16384 -Wl,-z,max-page-size=16384"
APEFLAGS="-L$COSMOS/lib/.aarch64 -Wl,--gc-sections -Wl,-T,$COSMO/o/$MODE/ape/aarch64.lds"
LDLIBS="$COSMO/o/$MODE/cosmopolitan.a"
if [ x"$PROG" != x"${PROG%++}" ]; then
@ -34,6 +34,8 @@ for x; do
INTENT=cc
elif [ x"$x" != x"${x#-o}" ]; then
OUTPUT=${x#-o}
elif [ x"$x" != x"${x#-L}" ]; then
x="$x/.aarch64"
elif [ x"$x" = x"-march=native" ]; then
continue # doesn't make sense for a cross compiler
fi
@ -53,12 +55,11 @@ if [ $INTENT = cc ]; then
else
set -- \
"$CC" \
"$COSMO/o/$MODE/libc/crt/crt.o" \
"$@" \
$LDFLAGS \
$APEFLAGS \
"$@" \
$LDLIBS \
-Wl,-z,common-page-size=16384 \
-Wl,-z,max-page-size=16384
$LDLIBS
fi
log_command "$@"

View file

@ -3,8 +3,8 @@
CC="$COSMO/o/third_party/gcc/bin/x86_64-linux-musl-gcc"
CFLAGS="-mno-tls-direct-seg-refs -mno-red-zone"
LDFLAGS="-static -nostdlib -no-pie -Wl,-melf_x86_64"
APEFLAGS="-L$COSMOS/lib -Wl,--gc-sections -Wl,-T,$COSMO/o/$MODE/ape/public/ape.lds $COSMO/o/$MODE/ape/ape.o $COSMO/o/$MODE/libc/crt/crt.o"
LDFLAGS="-static -nostdlib -no-pie -Wl,-melf_x86_64 -Wl,-z,common-page-size=4096 -Wl,-z,max-page-size=4096 -fuse-ld=bfd"
APEFLAGS="-L$COSMOS/lib -Wl,--gc-sections -Wl,-T,$COSMO/o/$MODE/ape/public/ape.lds $COSMO/o/$MODE/ape/ape.o"
LDLIBS="$COSMO/o/$MODE/cosmopolitan.a"
if [ x"$PROG" != x"${PROG%++}" ]; then
@ -57,13 +57,11 @@ if [ $INTENT = cc ]; then
else
set -- \
"$CC" \
"$COSMO/o/$MODE/libc/crt/crt.o" \
"$@" \
$LDFLAGS \
$APEFLAGS \
"$@" \
$LDLIBS \
-Wl,-z,common-page-size=4096 \
-Wl,-z,max-page-size=4096 \
-fuse-ld=bfd
$LDLIBS
fi
log_command "$@"