Overview
Comment: | Amiga library: Add __(de)register_frame symbol |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | amiga-library |
Files: | files | file ages | folders |
SHA3-256: |
3c100bc6a72432efc97381c7a5d71329 |
User & Date: | js on 2020-12-19 10:25:36 |
Other Links: | branch diff | manifest | tags |
Context
2020-12-19
| ||
13:46 | Use -lmath on MorphOS for .library check-in: 9510e204b4 user: js tags: amiga-library | |
10:25 | Amiga library: Add __(de)register_frame symbol check-in: 3c100bc6a7 user: js tags: amiga-library | |
2020-12-18
| ||
17:30 | amiga-library.m: Open dos.library check-in: 2d0b2c1120 user: js tags: amiga-library | |
Changes
Modified src/amiga-library.m from [7777d822b1] to [0e90e7af65].
︙ | ︙ | |||
64 65 66 67 68 69 70 | bool initialized; }; #ifdef OF_AMIGAOS_M68K extern uintptr_t __CTOR_LIST__[]; extern const void *_EH_FRAME_BEGINS__; extern void *_EH_FRAME_OBJECTS__; | < < | 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | bool initialized; }; #ifdef OF_AMIGAOS_M68K extern uintptr_t __CTOR_LIST__[]; extern const void *_EH_FRAME_BEGINS__; extern void *_EH_FRAME_OBJECTS__; #endif extern bool glue_of_init(void); extern void *glue_of_alloc(void); extern void *glue_of_alloc_zeroed(void); extern void *glue_of_realloc(void); extern uint32_t *glue_of_hash_seed_ref(void); |
︙ | ︙ | |||
350 351 352 353 354 355 356 | if (base->parent != NULL) { struct ObjFWBase *parent; #ifdef OF_AMIGAOS_M68K if (base->initialized) for (size_t i = 1; i <= (size_t)_EH_FRAME_BEGINS__; i++) | | | 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 | if (base->parent != NULL) { struct ObjFWBase *parent; #ifdef OF_AMIGAOS_M68K if (base->initialized) for (size_t i = 1; i <= (size_t)_EH_FRAME_BEGINS__; i++) libc.__deregister_frame_info( (&_EH_FRAME_BEGINS__)[i]); #endif parent = base->parent; FreeMem(base->dataSeg - DATA_OFFSET, getDataSize()); FreeMem((char *)base - base->library.lib_NegSize, |
︙ | ︙ | |||
408 409 410 411 412 413 414 | __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++) | | | 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 | __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], (&_EH_FRAME_OBJECTS__)[i]); iter0 = &__CTOR_LIST__[1]; #elif defined(OF_MORPHOS) __asm__ ( "lis %0, __EH_FRAME_BEGIN__@ha\n\t" "la %0, __EH_FRAME_BEGIN__@l(%0)\n\t" |
︙ | ︙ | |||
588 589 590 591 592 593 594 595 596 597 598 599 600 601 | void *__deregister_frame_info(const void *begin) { return libc.__deregister_frame_info(begin); } #endif int * of_get_errno(void) { return libc.get_errno(); } | > > > > > > > > > > > > | 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 | void *__deregister_frame_info(const void *begin) { return libc.__deregister_frame_info(begin); } #endif #ifdef OF_MORPHOS void __register_frame(void *frame) { libc.__register_frame(frame); } void __deregister_frame(void *frame) { libc.__deregister_frame(frame); } #endif int * of_get_errno(void) { return libc.get_errno(); } |
︙ | ︙ |