diff --git a/libc/nt/systeminfo.h b/libc/nt/systeminfo.h index daaf6f0dc..c569a07b2 100644 --- a/libc/nt/systeminfo.h +++ b/libc/nt/systeminfo.h @@ -17,5 +17,6 @@ bool32 GetComputerNameEx(/* enum/computernameformat.h */ int NameType, #if ShouldUseMsabiAttribute() #include "libc/nt/thunk/systeminfo.inc" #endif /* ShouldUseMsabiAttribute() */ +COSMOPOLITAN_C_END_ #endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ #endif /* COSMOPOLITAN_LIBC_NT_INFO_H_ */ diff --git a/test/libc/release/smokecxx.cc b/test/libc/release/smokecxx.cc new file mode 100644 index 000000000..793bd4bc9 --- /dev/null +++ b/test/libc/release/smokecxx.cc @@ -0,0 +1,11 @@ +int main() { + int rc; + FILE *f; + f = fopen("/dev/null", "w"); + fprintf(f, "hello world\n"); + fclose(f); + rc = system("exit 42"); + CHECK_NE(-1, rc); + CHECK_EQ(42, WEXITSTATUS(rc)); + return 0; +} diff --git a/test/libc/release/test.mk b/test/libc/release/test.mk index de3c7f8a7..a7850ca27 100644 --- a/test/libc/release/test.mk +++ b/test/libc/release/test.mk @@ -38,7 +38,38 @@ o/$(MODE)/test/libc/release/smoke.com.dbg: \ o/$(MODE)/ape/ape.o \ o/$(MODE)/cosmopolitan.a +o/$(MODE)/test/libc/release/smokecxx.com: \ + o/$(MODE)/test/libc/release/smokecxx.com.dbg + @objcopy -SO binary $< $@ + +o/$(MODE)/test/libc/release/smokecxx.com.dbg: \ + test/libc/release/smokecxx.cc \ + o/cosmopolitan.h \ + o/$(MODE)/ape/ape.lds \ + o/$(MODE)/libc/crt/crt.o \ + o/$(MODE)/ape/ape.o \ + o/$(MODE)/cosmopolitan.a + @ACTION=CXX build/compile $(CXX) \ + -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/smokecxx.cc \ + 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 + o/$(MODE)/test/libc/release/smoke.com.runs \ + o/$(MODE)/test/libc/release/smokecxx.com \ + o/$(MODE)/test/libc/release/smokecxx.com.runs