Differences From Artifact [6c73132350]:
- File src/runtime/amiga-library.m — part of check-in [964b5ed33c] at 2020-06-05 00:17:28 on branch amiga-library — Add of_init() for Amiga .library (user: js, size: 17832) [annotate] [blame] [check-ins using]
To Artifact [750189a19b]:
- File
src/runtime/amiga-library.m
— part of check-in
[514944f1ea]
at
2020-06-07 16:34:48
on branch amiga-library
— Pass __sF around instead of std* individually
This avoids needing to #undef std{in,out,err} and then providing a new
symbol. (user: js, size: 17773) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
149 150 151 152 153 154 155 | extern void glue_objc_hashtable_free(void); #ifdef OF_MORPHOS const ULONG __abox__ = 1; #endif struct ExecBase *SysBase; struct objc_libc libc; | | | 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | extern void glue_objc_hashtable_free(void); #ifdef OF_MORPHOS const ULONG __abox__ = 1; #endif struct ExecBase *SysBase; struct objc_libc libc; FILE **__sF; #if defined(OF_AMIGAOS_M68K) __asm__ ( ".text\n" ".globl ___restore_a4\n" ".align 1\n" "___restore_a4:\n" |
︙ | ︙ | |||
389 390 391 392 393 394 395 | static void * lib_null(void) { return NULL; } bool | | < | < | 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 | static void * lib_null(void) { return NULL; } bool objc_init(unsigned int version, struct objc_libc *libc_, FILE **sF) { #ifdef OF_AMIGAOS_M68K OBJC_M68K_ARG(struct ObjFWRTBase *, base, a6) #else register struct ObjFWRTBase *r12 __asm__("r12"); struct ObjFWRTBase *base = r12; #endif uintptr_t *iter, *iter0; if (version > 1) return false; if (base->initialized) return true; memcpy(&libc, libc_, sizeof(libc)); __sF = sF; #ifdef OF_AMIGAOS_M68K if ((size_t)_EH_FRAME_BEGINS__ != (size_t)_EH_FRAME_OBJECTS__) return false; for (size_t i = 1; i <= (size_t)_EH_FRAME_BEGINS__; i++) libc.__register_frame_info((&_EH_FRAME_BEGINS__)[i], |
︙ | ︙ |