================
@@ -143,6 +143,20 @@
// RUN: | FileCheck %s --check-prefix=CHECK-RTLIB-GCC
// CHECK-RTLIB-GCC: -lgcc
+// RUN: %clang -### --target=arm-none-eabi -nolibc %s 2>&1 \
+// RUN: | FileCheck %s --check-prefix=CHECK-NOLIBC
+// CHECK-NOLIBC-NOT: "-lc"
+// CHECK-NOLIBC-NOT: "-lm"
+// CHECK-NOLIBC-NOT: "-lc++"
+// CHECK-NOLIBC: "{{[^"]*}}libclang_rt.builtins.a"
----------------
saturn691 wrote:
The thing I'm trying to test is the follows, I think it _still_ makes sense to
test `libclang_rt.builtings.a`:
-nolibc
Do not use the C library or system libraries tightly coupled with it when
linking. **Still link with the startup files, libgcc** or toolchain provided
language support libraries such as libgnat, libgfortran or libstdc++ unless
options preventing their inclusion are used as well.
-nostdlib
Do not use the standard system startup files or libraries when linking. No
startup files and only the libraries you specify are passed to the linker, and
options specifying linkage of the system libraries, such as -static-libgcc or
-shared-libgcc, are ignored.
The compiler may generate calls to memcmp, memset, memcpy and memmove. These
entries are usually resolved by entries in libc. These entry points should be
supplied through some other mechanism when this option is specified.
**One of the standard libraries bypassed by -nostdlib and -nodefaultlibs is
libgcc.a**, a library of internal subroutines which GCC uses to overcome
shortcomings of particular machines, or special needs for some languages.
https://github.com/llvm/llvm-project/pull/145700
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits