rebuild bsnes, update link script / emulibc.h to work with clang-18

This commit is contained in:
CasualPokePlayer 2024-04-14 12:57:18 -07:00
parent 18a1fe4afd
commit 880d8d9f07
3 changed files with 22 additions and 6 deletions

Binary file not shown.

View File

@ -36,10 +36,10 @@ void *alloc_plain(size_t size);
void _debug_puts(const char *);
// put data in a section that will have similar behavior characteristics to alloc_sealed
#define ECL_SEALED __attribute__((section(".sealed")))
#define ECL_SEALED __attribute__((section(".ldata.sealed")))
// put data in a section that will have similar behavior characteristics to alloc_invisible
#define ECL_INVISIBLE __attribute__((section(".invis")))
#define ECL_INVISIBLE __attribute__((section(".ldata.invis")))
#ifdef __cplusplus
}

View File

@ -64,6 +64,15 @@ SECTIONS
/* .gnu.warning sections are handled specially by elf.em. */
*(.gnu.warning)
}
.ltext :
{
*(.ltext.unlikely .ltext.*_unlikely .ltext.unlikely.*)
*(.ltext.exit .ltext.exit.*)
*(.ltext.startup .ltext.startup.*)
*(.ltext.hot .ltext.hot.*)
*(SORT(.ltext.sorted.*))
*(.ltext .stub .ltext.*)
}
.fini :
{
KEEP (*(SORT_NONE(.fini)))
@ -163,10 +172,10 @@ SECTIONS
/* waterbox sections that are eventually RO at runtime */
. = ALIGN(CONSTANT (MAXPAGESIZE));
.wbxsyscall : { *(.wbxsyscall) }
.sealed : { *(.sealed) }
.sealed : { *(.ldata.sealed) }
. = ALIGN(CONSTANT (MAXPAGESIZE));
/* Put the invisible section by itself */
.invis : { *(.invis) }
.invis : { *(.ldata.invis) }
. = ALIGN(CONSTANT (MAXPAGESIZE));
.data :
{
@ -201,6 +210,7 @@ SECTIONS
{
*(.lrodata .lrodata.* .gnu.linkonce.lr.*)
}
. = ALIGN(64 / 8);
.ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) :
{
*(.ldata .ldata.* .gnu.linkonce.l.*)
@ -246,9 +256,15 @@ SECTIONS
/* DWARF 3 */
.debug_pubtypes 0 : { *(.debug_pubtypes) }
.debug_ranges 0 : { *(.debug_ranges) }
/* DWARF Extension. */
.debug_macro 0 : { *(.debug_macro) }
/* DWARF 5. */
.debug_addr 0 : { *(.debug_addr) }
.debug_line_str 0 : { *(.debug_line_str) }
.debug_loclists 0 : { *(.debug_loclists) }
.debug_macro 0 : { *(.debug_macro) }
.debug_names 0 : { *(.debug_names) }
.debug_rnglists 0 : { *(.debug_rnglists) }
.debug_str_offsets 0 : { *(.debug_str_offsets) }
.debug_sup 0 : { *(.debug_sup) }
.gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
}