liblinux++

A hosted C++ runtime without any libc.
git clone git://henryandlizzy.uk/liblinux++
Log | Files | Refs

commit d48eb4fcb93bf2cca56e0923154dc0127f2d981d
parent a44b5e951b4a75677a0b2ade58861380106d4b88
Author: Henry Wilson <henry@henryandlizzy.uk>
Date:   Tue, 23 Dec 2025 19:08:48 +0000

Use as and ld, no CC!

Diffstat:
MTupfile | 9+++------
Mgen.sh | 4++--
2 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/Tupfile b/Tupfile @@ -1,10 +1,7 @@ -CFLAGS = -g -Os -fno-asynchronous-unwind-tables -fno-pic -fno-pie -no-pie -g -fno-stack-protector -fdiagnostics-color=always -LDFLAGS = -static -nostartfiles -nolibc -nodefaultlibs -nostdlib -fno-pic -fno-pie -no-pie -Xlinker --gc-sections +CXXFLAGS = -g -Os -fno-asynchronous-unwind-tables -fno-pic -fno-pie -no-pie -fno-stack-protector -fdiagnostics-color=always +LDFLAGS = --gc-sections -!cc = |> cc $(CFLAGS) -c -o %o %f |> obj/%B.o -!c++ = |> c++ $(CFLAGS) -c -o %o %f |> obj/%B.o - -: foreach *.cpp |> !c++ |> {objs} +: foreach *.cpp |> c++ $(CXXFLAGS) -c -o %o %f |> obj/%B.o {objs} run ./gen.sh .gitignore diff --git a/gen.sh b/gen.sh @@ -2,5 +2,5 @@ ARCH=`uname -m` -echo ": $ARCH.s |> !cc |>" -echo ": foreach {objs} | $ARCH.ld obj/$ARCH.o |> cc "'$(LDFLAGS)'" -o %o -T $ARCH.ld obj/$ARCH.o %f |> %B" +echo ": $ARCH.s |> as -o %o <%f |> obj/%B.o" +echo ": foreach {objs} | $ARCH.ld obj/$ARCH.o |> ld "'$(LDFLAGS)'" -o %o -T $ARCH.ld obj/$ARCH.o %f |> %B"