mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-06 03:08:31 +00:00
Get --ftrace working on aarch64
This change implements a new approach to function call logging, that's based on the GCC flag: -fpatchable-function-entry. Read the commentary in build/config.mk to learn how it works.
This commit is contained in:
parent
5b908bc756
commit
eb40cb371d
934 changed files with 2259 additions and 1268 deletions
|
@ -69,7 +69,7 @@ o/$(MODE)/test/libc/intrin/lock_test.com.dbg: \
|
|||
@$(APELINK)
|
||||
|
||||
$(TEST_LIBC_INTRIN_OBJS): private \
|
||||
OVERRIDE_CFLAGS += \
|
||||
CFLAGS += \
|
||||
-fno-builtin
|
||||
|
||||
.PHONY: o/$(MODE)/test/libc/intrin
|
||||
|
|
|
@ -77,7 +77,7 @@ o/$(MODE)/test/libc/runtime/getenv_test.com.runs: \
|
|||
@HELLO=THERE build/runit $@ $<
|
||||
|
||||
o/$(MODE)/test/libc/runtime/itsatrap_test.o: private \
|
||||
OVERRIDE_CFLAGS += \
|
||||
CFLAGS += \
|
||||
-fno-sanitize=all \
|
||||
-ftrapv
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ o/$(MODE)/test/libc/str/str.pkg: \
|
|||
$(foreach x,$(TEST_LIBC_STR_DIRECTDEPS),$($(x)_A).pkg)
|
||||
|
||||
o/$(MODE)/test/libc/str/tpenc_test.o: private \
|
||||
OVERRIDE_CFLAGS += \
|
||||
CFLAGS += \
|
||||
$(TRADITIONAL)
|
||||
|
||||
o/$(MODE)/test/libc/str/%.com.dbg: \
|
||||
|
@ -80,7 +80,7 @@ $(TEST_LIBC_STR_OBJS): private \
|
|||
-fno-builtin
|
||||
|
||||
o/$(MODE)/test/libc/str/memmove_test.o: private \
|
||||
OVERRIDE_CFLAGS += \
|
||||
CFLAGS += \
|
||||
-O2 -D_FORTIFY_SOURCE=2
|
||||
|
||||
.PHONY: o/$(MODE)/test/libc/str
|
||||
|
|
|
@ -56,7 +56,7 @@ o/$(MODE)/test/libc/thread/%.com.dbg: \
|
|||
@$(APELINK)
|
||||
|
||||
o/$(MODE)/test/libc/thread/pthread_create_test.o: \
|
||||
private OVERRIDE_CPPFLAGS += \
|
||||
private CPPFLAGS += \
|
||||
-DSTACK_FRAME_UNLIMITED
|
||||
|
||||
.PHONY: o/$(MODE)/test/libc/thread
|
||||
|
|
|
@ -58,7 +58,7 @@ o/$(MODE)/test/libc/tinymath/%.com.dbg: \
|
|||
@$(APELINK)
|
||||
|
||||
$(TEST_LIBC_TINYMATH_OBJS): private \
|
||||
OVERRIDE_CFLAGS += \
|
||||
CFLAGS += \
|
||||
-fno-builtin
|
||||
|
||||
.PHONY: o/$(MODE)/test/libc/tinymath
|
||||
|
|
|
@ -16,9 +16,9 @@
|
|||
│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │
|
||||
│ PERFORMANCE OF THIS SOFTWARE. │
|
||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||
#include "tool/build/lib/asmdown.h"
|
||||
#include "libc/str/str.h"
|
||||
#include "libc/testlib/testlib.h"
|
||||
#include "tool/build/lib/asmdown.h"
|
||||
|
||||
TEST(ParseAsmdown, test) {
|
||||
struct Asmdown *ad;
|
||||
|
@ -30,8 +30,9 @@ TEST(ParseAsmdown, test) {
|
|||
/\n\
|
||||
/ @param xmm0 has double in lower half\n\
|
||||
/ @return xmm0 has result in lower half\n\
|
||||
fabs: .leafprologue\n\
|
||||
.profilable\n\
|
||||
.ftrace1\n\
|
||||
fabs: .ftrace2\n\
|
||||
.leafprologue\n\
|
||||
mov $0x7fffffffffffffff,%rax\n\
|
||||
movq %xmm0,%rdx\n\
|
||||
and %rax,%rdx\n\
|
||||
|
@ -67,7 +68,7 @@ tinymath_acos:\n\
|
|||
EXPECT_STREQ("xmm0 has result in lower half",
|
||||
ad->symbols.p[0].javadown->tags.p[1].text);
|
||||
|
||||
EXPECT_EQ(17, ad->symbols.p[1].line);
|
||||
EXPECT_EQ(18, ad->symbols.p[1].line);
|
||||
EXPECT_STREQ("tinymath_acos", ad->symbols.p[1].name);
|
||||
EXPECT_FALSE(ad->symbols.p[1].javadown->isfileoverview);
|
||||
EXPECT_STREQ("Returns arc cosine of 𝑥.", ad->symbols.p[1].javadown->title);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue