ObjFW  Check-in [b610a6165c]

Overview
Comment:Adjust Amiga .library to amiga-gcc changes
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: b610a6165c00888647bb001ddc16866a19c4c42e84e57dec8634d4fdd7e6b2f3
User & Date: js on 2022-10-14 19:15:18
Other Links: manifest | tags
Context
2022-10-14
19:36
Document more exceptions check-in: 6c6c413432 user: js tags: trunk
19:15
Adjust Amiga .library to amiga-gcc changes check-in: b610a6165c user: js tags: trunk
16:11
OFOpenItemFailedException: Improve description check-in: 67b1d67088 user: js tags: trunk
Changes

Modified src/runtime/amiga-library.m from [0f1cc9582a] to [db6b5f4a82].

290
291
292
293
294
295
296
297
298



299
300
301
302
303
304
305
306
290
291
292
293
294
295
296


297
298
299

300
301
302
303
304
305
306







-
-
+
+
+
-







	OBJC_M68K_ARG(struct ObjFWRTBase *, base, a6)

	if (base->parent != NULL) {
		struct ObjFWRTBase *parent;

#ifdef OF_AMIGAOS_M68K
		if (base->initialized)
			for (size_t i = 1; i <= (size_t)_EH_FRAME_BEGINS__; i++)
				libc.__deregister_frame_info(
			for (void *const *frame = _EH_FRAME_BEGINS__;
			    *frame != NULL;)
				libc.__deregister_frame_info(*frame++);
				    (&_EH_FRAME_BEGINS__)[i]);
#endif

		parent = base->parent;

		FreeMem(base->dataSeg - DATA_OFFSET, getDataSize());
		FreeMem((char *)base - base->library.lib_NegSize,
		    base->library.lib_NegSize + base->library.lib_PosSize);
338
339
340
341
342
343
344
345

346
347

348
349

350
351
352
353
354
355
356
357
338
339
340
341
342
343
344

345


346


347

348
349
350
351
352
353
354







-
+
-
-
+
-
-
+
-








	if (version > 1)
		return false;

	memcpy(&libc, libc_, sizeof(libc));

#ifdef OF_AMIGAOS_M68K
	if ((size_t)_EH_FRAME_BEGINS__ != (size_t)_EH_FRAME_OBJECTS__)
	for (void *const *frame = _EH_FRAME_OBJECTS__,
		return false;

	    **object = _EH_FRAME_OBJECTS__; *frame != NULL;)
	for (size_t i = 1; i <= (size_t)_EH_FRAME_BEGINS__; i++)
		libc.__register_frame_info((&_EH_FRAME_BEGINS__)[i],
		libc.__register_frame_info(*frame++, *object++);
		    (&_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"
	    "lis	%1, __CTOR_LIST__@ha\n\t"