Add support for apple m1
commitc8ef84c854384b84aa89540e89fc4f9e908b054b
authorherman ten brugge <hermantenbrugge@home.nl>
Wed, 16 Nov 2022 18:52:51 +0000 (16 12:52 -0600)
committerherman ten brugge <hermantenbrugge@home.nl>
Wed, 16 Nov 2022 18:52:51 +0000 (16 12:52 -0600)
tree6472d229d906887b80891b12f3a9cf6e607d08ab
parentc6b722f3f8acf38bb196b3a2db17c3a410a0a807
Add support for apple m1

The apple m1 uses position independent executables (pie).
I have implemented this in tccmacho.c

Apple also uses the stack different for var_args.
Also characters are signed instead of unsigned.
This is implemented in arm64-gen.c/tccdefs.h

Add bounds checking lib to lib/Makefile.

Add underscore support in lib/atomic.S and lib/fetch_and_add.S

Disable __clear_cache in lib/lib-arm64.c (Use system version).
I will try to fix this in future push.

Disable test_asm_call in tests/tcctest.c. Clang does not support @plt.
Also disable weak symbols test.
I will try to fix weak support in future push.

Disable tests/tests2/124_atomic_counter.c for 64BITS.
This is a bug in the atomic code and will be fixed in future push.

You have to use --dwarf configure option. stabs only works with -run.

tested on apple x86_64(10.5) and arm64(12.3).
arm64-gen.c
include/tccdefs.h
lib/Makefile
lib/atomic.S
lib/fetch_and_add.S
lib/lib-arm64.c
tccelf.c
tccmacho.c
tests/tcctest.c
tests/tests2/124_atomic_counter.c