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

@ -16,10 +16,10 @@
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
#include "tool/build/lib/asmdown.h"
#include "libc/mem/alg.h"
#include "libc/mem/mem.h"
#include "libc/str/str.h"
#include "tool/build/lib/asmdown.h"
#include "tool/build/lib/javadown.h"
static bool IsSymbolChar1(char c) {
@ -76,6 +76,8 @@ struct Asmdown *ParseAsmdown(const char *code, size_t size) {
state = SYM;
} else if (code[i] == '\n') {
++line;
} else if (i + 10 < size && !memcmp(code + i, "\t.ftrace1\t", 10)) {
++line;
} else if (i + 8 < size && !memcmp(code + i, "\t.alias\t", 8)) {
p1 = code + i + 8;
if ((p2 = strchr(p1, ',')) && (p3 = strchr(p2, '\n'))) {