From 25fc229753c5a2e04b1796b0cc9e5a05dc761a68 Mon Sep 17 00:00:00 2001 From: Robert Pengelly Date: Sat, 20 Jun 2026 19:30:43 +0100 Subject: [PATCH] Seperate formats --- link.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/link.c b/link.c index e6ae991..a453b5b 100644 --- a/link.c +++ b/link.c @@ -959,7 +959,29 @@ static void calculate_entry_point (void) { if (!state->entry_symbol_name) { - if (state->format == LD_FORMAT_I386_AOUT || state->format == LD_FORMAT_I386_ELKS || state->format == LD_FORMAT_IA16_ELKS || state->format == LD_FORMAT_AMD64_MACHO || state->format == LD_FORMAT_AARCH64_MACHO) { + if (state->format == LD_FORMAT_IA16_ELKS || state->format == LD_FORMAT_I386_AOUT || state->format == LD_FORMAT_I386_AXE || state->format == LD_FORMAT_I386_ELKS) { + + state->entry_symbol_name = xstrdup ("_start"); + + if ((symbol = symbol_find (state->entry_symbol_name))) { + + state->entry_point = symbol_get_value_no_base (symbol); + return; + + } + + } else if (state->format == LD_FORMAT_AMD64_AXE || state->format == LD_FORMAT_AMD64_ELF) { + + state->entry_symbol_name = xstrdup ("_start"); + + if ((symbol = symbol_find (state->entry_symbol_name))) { + + state->entry_point = symbol_get_value_no_base (symbol); + return; + + } + + } else if (state->format == LD_FORMAT_AARCH64_MACHO || state->format == LD_FORMAT_AMD64_MACHO) { state->entry_symbol_name = xstrdup ("_start"); -- 2.34.1