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:
Justine Tunney 2023-06-05 23:35:31 -07:00
parent 5b908bc756
commit eb40cb371d
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
934 changed files with 2259 additions and 1268 deletions

View file

@ -1,5 +1,6 @@
#ifndef COSMOPOLITAN_LIBC_INTRIN_AARCH64_ASMDEFS_H_
#define COSMOPOLITAN_LIBC_INTRIN_AARCH64_ASMDEFS_H_
#include "libc/macros.internal.h"
#ifdef __ASSEMBLER__
// clang-format off
@ -44,7 +45,9 @@ GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI|FEATURE_1_PAC)
.global name; \
.type name,%function; \
.align alignment; \
.ftrace1; \
name: \
.ftrace2; \
.cfi_startproc; \
BTI_C;

View file

@ -25,7 +25,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "libc/intrin/aarch64/asmdefs.h"
#include "libc/intrin/aarch64/asmdefs.internal.h"
#define __memchr_aarch64 memchr

View file

@ -25,7 +25,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "libc/intrin/aarch64/asmdefs.h"
#include "libc/intrin/aarch64/asmdefs.internal.h"
#define __memcmp_aarch64 memcmp

View file

@ -25,7 +25,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "libc/intrin/aarch64/asmdefs.h"
#include "libc/intrin/aarch64/asmdefs.internal.h"
#define __memcpy_aarch64_simd memcpy
#define __memmove_aarch64_simd memmove

View file

@ -25,7 +25,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "libc/intrin/aarch64/asmdefs.h"
#include "libc/intrin/aarch64/asmdefs.internal.h"
#define __memrchr_aarch64 memrchr

View file

@ -25,7 +25,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "libc/intrin/aarch64/asmdefs.h"
#include "libc/intrin/aarch64/asmdefs.internal.h"
#define __memset_aarch64 memset

View file

@ -25,7 +25,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "libc/intrin/aarch64/asmdefs.h"
#include "libc/intrin/aarch64/asmdefs.internal.h"
#define __stpcpy_aarch64 stpcpy

View file

@ -25,7 +25,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "libc/intrin/aarch64/asmdefs.h"
#include "libc/intrin/aarch64/asmdefs.internal.h"
#define __strchr_aarch64 strchr

View file

@ -25,7 +25,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "libc/intrin/aarch64/asmdefs.h"
#include "libc/intrin/aarch64/asmdefs.internal.h"
#define __strchrnul_aarch64 strchrnul

View file

@ -25,7 +25,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "libc/intrin/aarch64/asmdefs.h"
#include "libc/intrin/aarch64/asmdefs.internal.h"
#define __strcmp_aarch64 strcmp

View file

@ -25,7 +25,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "libc/intrin/aarch64/asmdefs.h"
#include "libc/intrin/aarch64/asmdefs.internal.h"
#define __strcpy_aarch64 strcpy

View file

@ -25,7 +25,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "libc/intrin/aarch64/asmdefs.h"
#include "libc/intrin/aarch64/asmdefs.internal.h"
#define __strlen_aarch64 strlen

View file

@ -25,7 +25,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "libc/intrin/aarch64/asmdefs.h"
#include "libc/intrin/aarch64/asmdefs.internal.h"
#define __strncmp_aarch64 strncmp

View file

@ -25,7 +25,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "libc/intrin/aarch64/asmdefs.h"
#include "libc/intrin/aarch64/asmdefs.internal.h"
#define __strnlen_aarch64 strnlen

View file

@ -25,7 +25,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "libc/intrin/aarch64/asmdefs.h"
#include "libc/intrin/aarch64/asmdefs.internal.h"
#define __strrchr_aarch64 strrchr