Comment: | Merge trunk into branch "amiga-library" |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | amiga-library |
Files: | files | file ages | folders |
SHA3-256: |
637ca0be9f42fcc2aa882c9b31c9960f |
User & Date: | js on 2020-12-12 21:08:28 |
Other Links: | branch diff | manifest | tags |
2020-12-12
| ||
21:25 | Pass errno to Amiga library check-in: 1712033509 user: js tags: amiga-library | |
21:08 | Merge trunk into branch "amiga-library" check-in: 637ca0be9f user: js tags: amiga-library | |
2020-12-06
| ||
17:52 | PLATFORMS.md: Change MorphOS version to 3.14 check-in: e55c278266 user: js tags: trunk | |
2020-11-16
| ||
00:17 | configure: Fix --disable-shared check-in: b1163c95ae user: js tags: amiga-library | |
Modified .github/ISSUE_TEMPLATE/config.yml from [c578ed1d2f] to [ca7ebb224c].
︙ | |||
11 12 13 14 15 16 17 | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | + + + + + + + + + + + + + + + - + | - name: ObjFW Forum url: https://objfw.nil.im/forum about: Please use this if you have questions or want support. - name: ObjFW Matrix Room url: https://matrix.to/#/%23objfw:nil.im about: Please use this for interactive questions and support. - name: ObjFW IRC Channel url: https://webchat.oftc.net/?channels=%23objfw about: Please use this for interactive questions and support - it is bridged to the Matrix room above. - name: ObjFW Slack Channel url: https://objfw.nil.im/slack about: Please use this for interactive questions and support - it is bridged to the Matrix room above. - name: ObjFW Discord Channel url: https://objfw.nil.im/discord about: Please use this for interactive questions and support - it is bridged to the Matrix room above. - name: ObjFW Telegram Room |
Modified PLATFORMS.md from [d1e497fd99] to [13723754e6].
︙ | |||
94 95 96 97 98 99 100 | 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | - + - + - | * Compilers: Clang 3.1-10.0, Apple GCC 4.0.1 & 4.2.1 * Runtimes: Apple, ObjFW MorphOS ------- |
︙ |
Modified README.md from [f866fd61d7] to [9d8e18dd0e].
︙ | |||
334 335 336 337 338 339 340 | 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 | - + - - - + + + + + + + + | [here](https://objfw.nil.im/docs/). In order to build the documentation yourself (necessary to have documentation for trunk / master), you need to have [Doxygen](https://www.doxygen.nl) installed. Once installed, you can build the documentation from the root directory of the repository: |
Modified build-aux/m4/buildsys.m4 from [74391b1263] to [647753f85b].
︙ | |||
45 46 47 48 49 50 51 | 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | + + + + + + + + + - + + + | [AC_SUBST(DEP_OBJCFLAGS, '-MD -MF $${out%.o}.dep')]) AS_IF([test x"$GOBJCXX" = x"yes"], [AC_SUBST(DEP_OBJCXXFLAGS, '-MD -MF $${out%.o}.dep')]) AC_SUBST(AMIGA_LIB_CFLAGS) AC_SUBST(AMIGA_LIB_LDFLAGS) case "$build_os" in morphos*) dnl Don't use tput on MorphOS: The colored dnl output is quite unreadable and in some dnl MorphOS versions, the output from tput is dnl not 8-bit safe, with awk (for AC_SUBST) dnl failing as a result. ;; *) |
︙ | |||
305 306 307 308 309 310 311 312 313 314 315 316 | 316 317 318 319 320 321 322 323 324 325 326 327 328 | + | ], [ FRAMEWORK_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}' FRAMEWORK_LDFLAGS_INSTALL_NAME='-Wl,-install_name,@executable_path/../Frameworks/$$out/$${out%.framework}' ]) AC_SUBST(FRAMEWORK_LDFLAGS) AC_SUBST(FRAMEWORK_LDFLAGS_INSTALL_NAME) AC_SUBST(FRAMEWORK_LIBS) $1 ;; esac ]) |
Modified buildsys.mk.in from [0dd86557eb] to [1766cbea3c].
︙ | |||
59 60 61 62 63 64 65 66 67 68 69 70 71 72 | 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | + | AMIGA_LIB_CFLAGS = @AMIGA_LIB_CFLAGS@ AMIGA_LIB_LDFLAGS = @AMIGA_LIB_LDFLAGS@ PLUGIN_CFLAGS = @PLUGIN_CFLAGS@ PLUGIN_LDFLAGS = @PLUGIN_LDFLAGS@ PLUGIN_SUFFIX = @PLUGIN_SUFFIX@ FRAMEWORK_LDFLAGS = @FRAMEWORK_LDFLAGS@ FRAMEWORK_LDFLAGS_INSTALL_NAME = @FRAMEWORK_LDFLAGS_INSTALL_NAME@ FRAMEWORK_LIBS = @FRAMEWORK_LIBS@ CODESIGN = @CODESIGN@ CODESIGN_IDENTITY ?= - CLEAN_LIB = @CLEAN_LIB@ DEP_ASFLAGS = @DEP_ASFLAGS@ DEP_CFLAGS = @DEP_CFLAGS@ DEP_CXXFLAGS = @DEP_CXXFLAGS@ DEP_OBJCFLAGS = @DEP_OBJCFLAGS@ |
︙ |
Modified configure.ac from [8850121404] to [b26f7b574a].
︙ | |||
101 102 103 104 105 106 107 | 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | - | AC_SUBST(AMIGA_LIB_LDFLAGS, $t) ]) AC_SUBST(LIBBASES_M, libbases.m) ]) enable_shared="no" |
︙ | |||
148 149 150 151 152 153 154 | 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 | + + + + + + + - + + + + | dnl Hack to make configure find these on DOS. : ${AR:=ar.exe} : ${GREP:=grep.exe} : ${RANLIB:=ranlib.exe} ]) AC_LANG([Objective C]) case "$host_os" in morphos*) dnl Don't use clang on MorphOS - it does not support baserel, dnl which is required for the .library. potential_compilers="gcc" ;; *) |
︙ | |||
363 364 365 366 367 368 369 | 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 | - - - - | AC_ARG_ENABLE(shared, AS_HELP_STRING([--disable-shared], [do not build shared library])) AS_IF([test x"$enable_shared" != x"no"], [ BUILDSYS_SHARED_LIB AC_SUBST(OBJFW_SHARED_LIB, "${LIB_PREFIX}objfw${LIB_SUFFIX}") AC_SUBST(EXCEPTIONS_LIB_A, "exceptions.lib.a") |
︙ | |||
401 402 403 404 405 406 407 | 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 | + + + - - + + + + + + + + + - + - - - - | TESTS_LIBS="-F../src -F../src/runtime $TESTS_LIBS" ], [ TESTS_LIBS="\${OBJFW_LIBS} \${RUNTIME_LIBS} $TESTS_LIBS" TESTS_LIBS="-L../src/runtime -L../src/runtime/linklib $TESTS_LIBS" TESTS_LIBS="-L../src -L../src/linklib $TESTS_LIBS" ]) AC_ARG_ENABLE(amiga-lib, AS_HELP_STRING([--disable-amiga-lib], [do not build Amiga library])) AS_IF([test x"$supports_amiga_lib" != x"yes"], [enable_amiga_lib="no"]) |
︙ | |||
1077 1078 1079 1080 1081 1082 1083 | 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 | - + + + + + | [disable compiler thread local storage])) case "$host" in aarch64*-*-android*) # Compiler TLS is broken on AArch64 Android with Clang enable_compiler_tls="no" ;; |
︙ | |||
1347 1348 1349 1350 1351 1352 1353 | 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 | - - - - - - - + + + - - | [Whether strerror_r returns char *]) ]) ]) AC_CHECK_HEADERS(sys/utsname.h) AC_CHECK_FUNCS(uname) |
︙ | |||
1600 1601 1602 1603 1604 1605 1606 | 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 | - - - + + + + + + + + + + + + + + + + + + + - + - + | AC_MSG_RESULT(no) ]) ]) CHECK_BUILTIN_BSWAP(16) CHECK_BUILTIN_BSWAP(32) CHECK_BUILTIN_BSWAP(64) |
︙ |
Modified extra.mk.in from [b541e12708] to [0772774b93].
︙ | |||
27 28 29 30 31 32 33 | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | - - - - - - - - - - - - | ENCODINGS_ENCODINGS_A = @ENCODINGS_ENCODINGS_A@ ENCODINGS_ENCODINGS_AMIGALIB_A = @ENCODINGS_ENCODINGS_AMIGALIB_A@ ENCODINGS_ENCODINGS_LIB_A = @ENCODINGS_ENCODINGS_LIB_A@ ENCODINGS_LIB_A = @ENCODINGS_LIB_A@ ENCODINGS_SRCS = @ENCODINGS_SRCS@ EXCEPTIONS_A = @EXCEPTIONS_A@ EXCEPTIONS_AMIGALIB_A = @EXCEPTIONS_AMIGALIB_A@ |
︙ |
Modified src/Makefile from [1a1780d585] to [aa432fa8f9].
︙ | |||
235 236 237 238 239 240 241 | 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 | - + - - + + - - - - + + + + - - - + - - - + + + + + - - | OFKernelEventObserver.m \ ${OF_EPOLL_KERNEL_EVENT_OBSERVER_M} \ ${OF_KQUEUE_KERNEL_EVENT_OBSERVER_M} \ ${OF_POLL_KERNEL_EVENT_OBSERVER_M} \ ${OF_SELECT_KERNEL_EVENT_OBSERVER_M} \ OFTCPSocketSOCKS5Connector.m |
︙ |
Modified src/OFApplication.m from [ba8b4a32b1] to [9bf3f4dbf0].
︙ | |||
92 93 94 95 96 97 98 | 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | - + + | id <OFApplicationDelegate> delegate = app.delegate; if ([delegate respondsToSelector: @selector(applicationWillTerminate)]) [delegate applicationWillTerminate]; [delegate release]; |
︙ | |||
256 257 258 259 260 261 262 | 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 | - + | fprintf(stderr, "Warning: Invalid environment " "variable: %s\n", tmp.UTF8String); continue; } key = [tmp substringToIndex: pos]; |
︙ |
Modified src/OFBitSetCharacterSet.m from [a0186359ac] to [b1c313bb58].
︙ | |||
36 37 38 39 40 41 42 | 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | - + - + + | void *pool = objc_autoreleasePoolPush(); const of_unichar_t *characters = string.characters; size_t length = string.length; for (size_t i = 0; i < length; i++) { of_unichar_t c = characters[i]; |
︙ | |||
72 73 74 75 76 77 78 | 73 74 75 76 77 78 79 80 81 82 83 84 85 | - + | free(_bitset); [super dealloc]; } - (bool)characterIsMember: (of_unichar_t)character { |
Modified src/OFFileURLHandler.m from [987947edfd] to [9e0a7e3741].
︙ | |||
733 734 735 736 737 738 739 | 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 | - + - - + + | lastAccessDate.timeIntervalSince1970; of_time_interval_t modificationTime = modificationDate.timeIntervalSince1970; struct timeval times[2] = { { .tv_sec = (time_t)lastAccessTime, .tv_usec = |
︙ |
Modified src/OFKernelEventObserver.h from [74da8f3153] to [e557d74842].
︙ | |||
120 121 122 123 124 125 126 | 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | - + - - + + | @interface OFKernelEventObserver: OFObject { OFMutableArray OF_GENERIC(id <OFReadyForReadingObserving>) *_readObjects; OFMutableArray OF_GENERIC(id <OFReadyForWritingObserving>) *_writeObjects; id <OFKernelEventObserverDelegate> _Nullable _delegate; |
︙ |
Modified src/OFKernelEventObserver.m from [0cbb2bba17] to [451fcb3cdf].
︙ | |||
111 112 113 114 115 116 117 | 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | - + | !defined(OF_NINTENDO_3DS) socklen_t cancelAddrLen; #endif _readObjects = [[OFMutableArray alloc] init]; _writeObjects = [[OFMutableArray alloc] init]; |
︙ | |||
172 173 174 175 176 177 178 | 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 | - + | } return self; } - (void)dealloc { |
︙ | |||
255 256 257 258 259 260 261 | 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 | - + - - + + | - (void)observeUntilDate: (OFDate *)date { [self observeForTimeInterval: date.timeIntervalSinceNow]; } - (void)cancel { |
Modified src/OFOptionsParser.m from [a5d08e3dd3] to [f95cee8e97].
︙ | |||
138 139 140 141 142 143 144 | 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | + - + + + + - - - - - - | } return self; } - (void)dealloc { if (_options != NULL) |
︙ |
Modified src/OFSecureData.m from [960649af1d] to [7de8ab3a25].
︙ | |||
97 98 99 100 101 102 103 | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | - + + | munmap(pointer, numPages * pageSize); } static struct page * addPage(bool allowPreallocated) { size_t pageSize = [OFSystemInfo pageSize]; |
︙ | |||
182 183 184 185 186 187 188 | 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 | - + + | } static void removePageIfEmpty(struct page *page) { unsigned char *map = page->map; size_t pageSize = [OFSystemInfo pageSize]; |
︙ |
Modified src/OFSelectKernelEventObserver.m from [22b01117bc] to [286735673c].
︙ | |||
46 47 48 49 50 51 52 53 | 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | + + + - + - - | @implementation OFSelectKernelEventObserver - (instancetype)init { self = [super init]; @try { FD_ZERO(&_readFDs); FD_ZERO(&_writeFDs); #ifdef OF_AMIGAOS |
︙ | |||
168 169 170 171 172 173 174 | 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 | + - + | - (void)observeForTimeInterval: (of_time_interval_t)timeInterval { fd_set readFDs; fd_set writeFDs; struct timeval timeout; int events; #ifdef OF_AMIGAOS BYTE cancelSignal; |
︙ | |||
194 195 196 197 198 199 200 | 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 | - + - + | * satisfy the required range, we just cast to int. */ #ifndef OF_WINDOWS timeout.tv_sec = (time_t)timeInterval; #else timeout.tv_sec = (long)timeInterval; #endif |
︙ |
Modified src/OFThread.m from [690c42ccaa] to [fe4bfba4ee].
︙ | |||
142 143 144 145 146 147 148 | 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | - + | #ifdef OF_OBJFW_RUNTIME objc_autoreleasePoolPop((void *)(uintptr_t)-1); #else objc_autoreleasePoolPop(thread->_pool); #endif |
︙ |
Modified src/OFWindowsRegistryKey.m from [db8bc56ab6] to [ae5fc782fa].
︙ | |||
357 358 359 360 361 362 363 | 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 | + - + - | type: (DWORD)type { void *pool = objc_autoreleasePoolPush(); OFData *data; if ([OFSystemInfo isWindowsNT]) data = [OFData dataWithItems: string.UTF16String count: string.UTF16StringLength + 1 |
︙ |
Modified src/forwarding/forwarding-powerpc-elf.S from [765ed4e505] to [40eb7ee848].
︙ | |||
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | + + | .globl of_forward_stret .section .text of_forward: stwu %r1, -112(%r1) mflr %r0 stw %r0, 116(%r1) #ifdef OF_PIC stw %r30, 104(%r1) bl 0f 0: mflr %r30 addis %r30, %r30, .Lbiased_got2-0b@ha addi %r30, %r30, .Lbiased_got2-0b@l #endif /* Save all arguments */ stw %r3, 8(%r1) stw %r4, 12(%r1) stw %r5, 16(%r1) stw %r6, 20(%r1) stw %r7, 24(%r1) |
︙ | |||
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | + + + + + + + + + + + + + + + + + + + + + + + | stfd %f3, 56(%r1) stfd %f4, 64(%r1) stfd %f5, 72(%r1) stfd %f6, 80(%r1) stfd %f7, 88(%r1) stfd %f8, 96(%r1) #ifdef OF_PIC bl object_getClass+0x8000@plt lwz %r4, .Lgot_sel_forwardingTargetForSelector_-.Lbiased_got2(%r30) bl class_respondsToSelector+0x8000@plt #else bl object_getClass lis %r4, sel_forwardingTargetForSelector_@ha addi %r4, %r4, sel_forwardingTargetForSelector_@l bl class_respondsToSelector #endif cmpwi %r3, 0 beq- 0f lwz %r3, 8(%r1) #ifdef OF_PIC lwz %r4, .Lgot_sel_forwardingTargetForSelector_-.Lbiased_got2(%r30) bl objc_msg_lookup+0x8000@plt #else lis %r4, sel_forwardingTargetForSelector_@ha addi %r4, %r4, sel_forwardingTargetForSelector_@l bl objc_msg_lookup #endif mtctr %r3 lwz %r3, 8(%r1) #ifdef OF_PIC lwz %r4, .Lgot_sel_forwardingTargetForSelector_-.Lbiased_got2(%r30) #else lis %r4, sel_forwardingTargetForSelector_@ha addi %r4, %r4, sel_forwardingTargetForSelector_@l #endif lwz %r5, 12(%r1) bctrl cmpwi %r3, 0 beq- 0f lwz %r4, 8(%r1) cmpw %r3, %r4 beq- 0f stw %r3, 8(%r1) lwz %r4, 12(%r1) #ifdef OF_PIC bl objc_msg_lookup+0x8000@plt #else bl objc_msg_lookup #endif mtctr %r3 /* Restore all arguments */ lwz %r3, 8(%r1) lwz %r4, 12(%r1) lwz %r5, 16(%r1) lwz %r6, 20(%r1) |
︙ | |||
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 | + + + + - + + + + + + + + | lfd %f3, 56(%r1) lfd %f4, 64(%r1) lfd %f5, 72(%r1) lfd %f6, 80(%r1) lfd %f7, 88(%r1) lfd %f8, 96(%r1) #ifdef OF_PIC lwz %r30, 104(%r1) #endif lwz %r0, 116(%r1) mtlr %r0 addi %r1, %r1, 112 bctr 0: lwz %r3, 8(%r1) lwz %r4, 12(%r1) #ifdef OF_PIC lwz %r0, .Lgot_of_method_not_found-.Lbiased_got2(%r30) mtctr %r0 |
︙ | |||
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 | 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 | + + + + + + + + + + + + + + + + + + + + + + + | stfd %f4, 64(%r1) stfd %f5, 72(%r1) stfd %f6, 80(%r1) stfd %f7, 88(%r1) stfd %f8, 96(%r1) mr %r3, %r4 #ifdef OF_PIC bl object_getClass+0x800@plt lwz %r4, .Lgot_sel_forwardingTargetForSelector_-.Lbiased_got2(%r30) bl class_respondsToSelector+0x8000@plt #else bl object_getClass lis %r4, sel_forwardingTargetForSelector_@ha addi %r4, %r4, sel_forwardingTargetForSelector_@l bl class_respondsToSelector #endif cmpwi %r3, 0 beq- 0f lwz %r3, 12(%r1) #ifdef OF_PIC lwz %r4, .Lgot_sel_forwardingTargetForSelector_-.Lbiased_got2(%r30) bl objc_msg_lookup+0x8000@plt #else lis %r4, sel_forwardingTargetForSelector_@ha addi %r4, %r4, sel_forwardingTargetForSelector_@l bl objc_msg_lookup #endif mtctr %r3 lwz %r3, 12(%r1) #ifdef OF_PIC lwz %r4, .Lgot_sel_forwardingTargetForSelector_-.Lbiased_got2(%r30) #else lis %r4, sel_forwardingTargetForSelector_@ha addi %r4, %r4, sel_forwardingTargetForSelector_@l #endif lwz %r5, 16(%r1) bctrl cmpwi %r3, 0 beq- 0f lwz %r4, 12(%r1) cmpw %r3, %r4 beq- 0f stw %r3, 12(%r1) lwz %r4, 16(%r1) #ifdef OF_PIC bl objc_msg_lookup_stret+0x8000@plt #else bl objc_msg_lookup_stret #endif mtctr %r3 /* Restore all arguments */ lwz %r3, 8(%r1) lwz %r4, 12(%r1) lwz %r5, 16(%r1) lwz %r6, 20(%r1) |
︙ | |||
205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 | 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 | + + + + + - + + + + + + + + + + + + + | lfd %f3, 56(%r1) lfd %f4, 64(%r1) lfd %f5, 72(%r1) lfd %f6, 80(%r1) lfd %f7, 88(%r1) lfd %f8, 96(%r1) #ifdef OF_PIC lwz %r30, 104(%r1) #endif lwz %r0, 116(%r1) mtlr %r0 addi %r1, %r1, 112 bctr 0: lwz %r3, 8(%r1) lwz %r4, 12(%r1) lwz %r5, 16(%r1) #ifdef OF_PIC lwz %r0, .Lgot_of_method_not_found_stret-.Lbiased_got2(%r30) mtctr %r0 |
︙ | |||
266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 | 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 | + + | .long 0, sel_forwardingTargetForSelector_ .short 0, 0 .long 0 .long 0 module: .long 8, 16, 0, symtab #ifdef OF_PIC .section .got2, "aw" .Lbiased_got2 = .+0x8000 .Lgot_module: .long module .Lgot_sel_forwardingTargetForSelector_: .long sel_forwardingTargetForSelector_ .Lgot_of_method_not_found: .long of_method_not_found .Lgot_of_method_not_found_stret: .long of_method_not_found_stret #endif #ifdef OF_LINUX .section .note.GNU-stack, "", @progbits #endif |
Modified src/macros.h from [43e7dc4d8f] to [7383bf6570].
︙ | |||
23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | + | #ifndef __STDC_LIMIT_MACROS # define __STDC_LIMIT_MACROS #endif #ifndef __STDC_CONSTANT_MACROS # define __STDC_CONSTANT_MACROS #endif #include <limits.h> #include <stdbool.h> #include <stddef.h> #include <stdint.h> #include <stdio.h> #include <stdlib.h> #include <string.h> |
︙ | |||
820 821 822 823 824 825 826 | 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 | - + - + - + | OF_HASH_ADD(hash, (otherCopy >> 8) & 0xFF); \ OF_HASH_ADD(hash, otherCopy & 0xFF); \ } static OF_INLINE bool of_bitset_isset(unsigned char *_Nonnull storage, size_t idx) { |
︙ |
Modified src/platform/amiga/thread.m from [de7e15e20a] to [1416763f86].
︙ | |||
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | + + | #import "thread.h" #import "tlskey.h" #include <dos/dostags.h> #include <proto/dos.h> #include <proto/exec.h> #ifndef OF_MORPHOS extern void of_tlskey_thread_exited(void); #endif static of_tlskey_t threadKey; OF_CONSTRUCTOR() { OF_ENSURE(of_tlskey_new(&threadKey)); } |
︙ | |||
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | + + | thread->function(thread->object); ObtainSemaphore(&thread->semaphore); @try { thread->done = true; #ifndef OF_MORPHOS of_tlskey_thread_exited(); #endif if (thread->detached) detached = true; else if (thread->joinTask != NULL) Signal(thread->joinTask, (1ul << thread->joinSigBit)); } @finally { ReleaseSemaphore(&thread->semaphore); |
︙ |
Added src/platform/morphos/tlskey.m version [b6a6f32a2b].
|
Modified src/runtime/Makefile from [1a8c4ba094] to [ad011fe90c].
︙ | |||
36 37 38 39 40 41 42 | 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | - + - - - + + + - - + + - - + + | protocol.m \ selector.m \ sparsearray.m \ static-instances.m \ synchronized.m \ tagged-pointer.m \ ${USE_SRCS_THREADS} |
︙ |
Modified src/runtime/amiga-end.m from [0d112ca98e] to [c87f18bf9e].
︙ | |||
17 18 19 20 21 22 23 | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | + + - - + + | #include "config.h" #import "platform.h" #ifdef OF_MORPHOS __asm__ ( ".section .eh_frame, \"aw\"\n" " .long 0\n" |
Modified src/runtime/amiga-glue.m from [93b307fc57] to [a6b9e2e9b8].
︙ | |||
818 819 820 821 822 823 824 | 818 819 820 821 822 823 824 825 826 827 828 829 830 831 | - - - - - - - - | glue_object_isTaggedPointer PPC_PARAMS(id object) { M68K_ARG(id, object, a0) return object_isTaggedPointer(object); } |
︙ |
Modified src/runtime/amiga-library.h from [883465926f] to [ec8329e2f4].
︙ | |||
27 28 29 30 31 32 33 | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | - + - - + - + - + - + - + - - + + - - - + + + + + + + | #endif struct objc_libc { void *_Nullable (*_Nonnull malloc)(size_t); void *_Nullable (*_Nonnull calloc)(size_t, size_t); void *_Nullable (*_Nonnull realloc)(void *_Nullable, size_t); void (*_Nonnull free)(void *_Nullable); |
Modified src/runtime/amiga-library.m from [9659acef0b] to [38940433a9].
︙ | |||
147 148 149 150 151 152 153 | 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | - | extern void glue_objc_hashtable_set(void); extern void *glue_objc_hashtable_get(void); extern void glue_objc_hashtable_delete(void); extern void glue_objc_hashtable_free(void); extern void glue_objc_setTaggedPointerSecret(void); extern int glue_objc_registerTaggedPointerClass(void); extern bool glue_object_isTaggedPointer(void); |
︙ | |||
413 414 415 416 417 418 419 420 421 422 423 424 425 426 | 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 | + + + | 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 #ifdef OF_MORPHOS void *frame; #endif uintptr_t *iter, *iter0; if (version > 1) return false; if (base->initialized) |
︙ | |||
436 437 438 439 440 441 442 | 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 | - - - + + + + + + + | 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__ ( |
︙ | |||
586 587 588 589 590 591 592 593 594 595 596 597 598 599 | 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 | + + + + + + | #else void _Unwind_Resume(void *ex) { libc._Unwind_Resume(ex); } #endif int * objc_get_errno(void) { return libc.get_errno(); } #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wpedantic" static CONST_APTR functionTable[] = { #ifdef OF_MORPHOS (CONST_APTR)FUNCARRAY_BEGIN, (CONST_APTR)FUNCARRAY_32BIT_NATIVE, |
︙ | |||
689 690 691 692 693 694 695 | 701 702 703 704 705 706 707 708 709 710 711 712 713 714 | - | (CONST_APTR)glue_objc_hashtable_set, (CONST_APTR)glue_objc_hashtable_get, (CONST_APTR)glue_objc_hashtable_delete, (CONST_APTR)glue_objc_hashtable_free, (CONST_APTR)glue_objc_setTaggedPointerSecret, (CONST_APTR)glue_objc_registerTaggedPointerClass, (CONST_APTR)glue_object_isTaggedPointer, |
︙ | |||
738 739 740 741 742 743 744 | 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 | + + + + - - - + + + + | .rt_Revision = OBJFWRT_LIB_MINOR, .rt_Tags = NULL, #endif }; #ifdef OF_MORPHOS __asm__ ( ".section .eh_frame, \"aw\"\n" ".globl __EH_FRAME_BEGIN__\n" ".type __EH_FRAME_BEGIN__, @object\n" "__EH_FRAME_BEGIN__:\n" |
Modified src/runtime/amigaos3.sfd from [8fdc3b2ef4] to [9aed232916].
︙ | |||
89 90 91 92 93 94 95 | 89 90 91 92 93 94 95 96 97 98 | - | void *_Nullable glue_objc_hashtable_get(struct objc_hashtable *_Nonnull table, const void *_Nonnull key)(a0,a1) void glue_objc_hashtable_delete(struct objc_hashtable *_Nonnull table, const void *_Nonnull key)(a0,a1) void glue_objc_hashtable_free(struct objc_hashtable *_Nonnull table)(a0) * Public functions again void glue_objc_setTaggedPointerSecret(uintptr_t secret)(d0) int glue_objc_registerTaggedPointerClass(Class _Nonnull class_)(a0) bool glue_object_isTaggedPointer(id _Nullable object)(a0) |
Modified src/runtime/linklib/linklib.m from [580e2c5eca] to [df451058ad].
︙ | |||
24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | + | #include <proto/exec.h> struct ObjFWRTBase; #import "inline.h" #include <errno.h> #include <stdio.h> #include <stdlib.h> #if defined(OF_AMIGAOS_M68K) # include <stabs.h> # define SYM(name) __asm__("_" name) #elif defined(OF_MORPHOS) |
︙ | |||
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | + + + + + + + + + + | #else extern void _Unwind_Resume(void *); #endif #ifdef OF_AMIGAOS_M68K extern void __register_frame_info(const void *, void *); extern void *__deregister_frame_info(const void *); #endif #ifdef OF_MORPHOS extern void __register_frame(void *); extern void __deregister_frame(void *); #endif struct Library *ObjFWRTBase; void *__objc_class_name_Protocol; static int * get_errno(void) { return &errno; } static void __attribute__((__used__)) ctor(void) { static bool initialized = false; struct objc_libc libc = { .malloc = malloc, |
︙ | |||
98 99 100 101 102 103 104 105 106 107 108 109 110 111 | 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | + + + + + | #else ._Unwind_Resume = _Unwind_Resume, #endif #ifdef OF_AMIGAOS_M68K .__register_frame_info = __register_frame_info, .__deregister_frame_info = __deregister_frame_info, #endif #ifdef OF_MORPHOS .__register_frame = __register_frame, .__deregister_frame = __deregister_frame, #endif .get_errno = get_errno, }; if (initialized) return; if ((ObjFWRTBase = OpenLibrary(OBJFWRT_AMIGA_LIB, OBJFWRT_LIB_MINOR)) == NULL) { |
︙ | |||
738 739 740 741 742 743 744 | 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 | - - - - - - | bool object_isTaggedPointer(id object) { return glue_object_isTaggedPointer(object); } |
Modified src/runtime/lookup-asm/Makefile from [f836e9f07c] to [81611c981c].
1 2 3 4 5 6 7 8 9 10 11 | 1 2 3 4 5 6 7 8 9 10 11 12 13 | + + | include ../../../extra.mk STATIC_PIC_LIB_NOINST = ${LOOKUP_ASM_LIB_A} STATIC_AMIGA_LIB_NOINST = ${LOOKUP_ASM_AMIGALIB_A} STATIC_LIB_NOINST = ${LOOKUP_ASM_A} STATIC_AMIGA_LIB_NOINST = ${LOOKUP_ASM_AMIGALIB_A} SRCS = lookup-asm.S include ../../../buildsys.mk ASFLAGS += -I../../.. -I../.. ASFLAGS_lookup-asm.amigalib.o += -DOF_BASEREL |
Modified src/runtime/lookup-asm/lookup-asm-powerpc-elf.S from [6a0efd2f1b] to [8af7ae3da5].
︙ | |||
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | + + + + + + + + + + + + + + + + + + + + | cmpwi %r5, 0 beq- 0f mr %r3, %r5 blr 0: #ifdef OF_PIC stwu %r1, -16(%r1) mflr %r0 stw %r0, 20(%r1) stw %r30, 8(%r1) bl 0f 0: mflr %r30 addis %r30, %r30, .Lbiased_got2-0b@ha addi %r30, %r30, .Lbiased_got2-0b@l lwz %r0, .Lgot_\not_found-.Lbiased_got2(%r30) mtctr %r0 lwz %r30, 8(%r1) lwz %r0, 20(%r1) addi %r1, %r1, 16 mtlr %r0 bctr #else b \not_found #endif .Ltagged_pointer_\name: #if defined(OF_PIC) mflr %r7 bl 0f 0: mflr %r6 mtlr %r7 addis %r6, %r6, .Lbiased_got2-0b@ha addi %r6, %r6, .Lbiased_got2-0b@l lwz %r5, .Lgot_objc_tagged_pointer_secret-.Lbiased_got2(%r6) lwz %r5, 0(%r5) #elif defined(OF_BASEREL) addis %r5, %r13, objc_tagged_pointer_secret@drel@ha lwz %r5, objc_tagged_pointer_secret@drel@l(%r5) #else lis %r5, objc_tagged_pointer_secret@ha lwz %r5, objc_tagged_pointer_secret@l(%r5) #endif xor %r5, %r3, %r5 rlwinm %r5, %r5, 1, 0x1C #if defined(OF_PIC) lwz %r6, .Lgot_objc_tagged_pointer_classes-.Lbiased_got2(%r6) #elif defined(OF_BASEREL) addis %r6, %r13, objc_tagged_pointer_classes@drel@ha addi %r6, %r6, objc_tagged_pointer_classes@drel@l #else lis %r6, objc_tagged_pointer_classes@ha addi %r6, %r6, objc_tagged_pointer_classes@l #endif lwzx %r5, %r6, %r5 lwz %r5, 32(%r5) b .Lmain_\name .type \name, @function .size \name, .-\name .endm |
︙ | |||
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 | + + | li %r3, 0 blr get_pc: mflr %r3 blr #ifdef OF_PIC .section .got2, "aw" .Lbiased_got2 = .+0x8000 .Lgot_objc_method_not_found: .long objc_method_not_found .Lgot_objc_method_not_found_stret: .long objc_method_not_found_stret .Lgot_objc_tagged_pointer_secret: .long objc_tagged_pointer_secret .Lgot_objc_tagged_pointer_classes: .long objc_tagged_pointer_classes #endif #ifdef OF_LINUX .section .note.GNU-stack, "", @progbits #endif |
Modified src/runtime/morphos-clib.h from [539c7a8b84] to [6d0fa4e01f].
︙ | |||
84 85 86 87 88 89 90 | 84 85 86 87 88 89 90 91 92 | - | void *glue_objc_hashtable_get(struct objc_hashtable *, const void *); void glue_objc_hashtable_delete(struct objc_hashtable *, const void *); void glue_objc_hashtable_free(struct objc_hashtable *); /* Public functions again */ void glue_objc_setTaggedPointerSecret(uintptr_t); int glue_objc_registerTaggedPointerClass(Class); bool glue_object_isTaggedPointer(id); |
Modified src/runtime/morphos.fd from [3e24e234fc] to [708829bde1].
︙ | |||
87 88 89 90 91 92 93 | 87 88 89 90 91 92 93 94 95 96 | - | glue_objc_hashtable_get(table,key)(sysv,r12base) glue_objc_hashtable_delete(table,key)(sysv,r12base) glue_objc_hashtable_free(table)(sysv,r12base) * Public functions again glue_objc_setTaggedPointerSecret(secret)(sysv,r12base) glue_objc_registerTaggedPointerClass(class_)(sysv,r12base) glue_object_isTaggedPointer(object)(sysv,r12base) |
Added src/runtime/mutex.m version [02475a3c36].
|
Added src/runtime/once.m version [fbcc5fceb4].
|
Modified src/runtime/private.h from [c83cd873a0] to [90f4d071ef].
︙ | |||
211 212 213 214 215 216 217 218 219 220 221 222 223 224 | 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 | + + + + + + | IMP _Nullable buckets[256]; } *_Nonnull buckets[256]; #else IMP _Nullable buckets[256]; #endif } *_Nonnull buckets[256]; }; #ifdef OBJC_COMPILING_AMIGA_LIBRARY # undef errno extern int *_Nonnull objc_get_errno(void); # define errno (*objc_get_errno()) #endif extern void objc_register_all_categories(struct objc_symtab *_Nonnull); extern struct objc_category *_Nullable *_Nullable objc_categories_for_class(Class _Nonnull); extern void objc_unregister_all_categories(void); extern void objc_initialize_class(Class _Nonnull); extern void objc_update_dtable(Class _Nonnull); |
︙ |
Added src/runtime/tlskey.m version [805621a000].
|
Modified src/socket.h from [750c66c5d1] to [fc5416a7db].
︙ | |||
288 289 290 291 292 293 294 | 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 | - + - + | * @param node A byte array to store the IPX node of the address */ extern void of_socket_address_get_ipx_node( const of_socket_address_t *_Nonnull address, unsigned char node[_Nonnull IPX_NODE_LEN]); extern bool of_socket_init(void); |
Modified src/socket.m from [2544d0730b] to [d03343d8fd].
︙ | |||
34 35 36 37 38 39 40 | 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | - + - + - + - - + + + + - + - + | #import "OFInvalidFormatException.h" #import "OFLockFailedException.h" #import "OFUnlockFailedException.h" #import "socket.h" #import "socket_helpers.h" #ifdef OF_HAVE_THREADS |
︙ | |||
118 119 120 121 122 123 124 | 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | - + | if (socInit(ctx, 0x100000) != 0) return; atexit((void (*)(void))socExit); # endif |
︙ | |||
148 149 150 151 152 153 154 | 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | - + | } # endif #endif bool of_socket_init(void) { |
︙ | |||
197 198 199 200 201 202 203 | 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 | - + | } # endif return true; #endif } |
︙ | |||
322 323 324 325 326 327 328 | 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 | - + - + | #ifndef OF_WII int of_getsockname(of_socket_t sock, struct sockaddr *restrict addr, socklen_t *restrict addrLen) { int ret; |
︙ |
Modified src/socket_helpers.h from [76048c8293] to [c2b374f2db].
︙ | |||
55 56 57 58 59 60 61 | 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | - + | # include <proto/bsdsocket.h> # endif # include <sys/filio.h> # define closesocket(sock) CloseSocket(sock) # define ioctlsocket(fd, req, arg) IoctlSocket(fd, req, arg) # define hstrerror(err) "unknown (no hstrerror)" # define SOCKET_ERROR -1 |
︙ |
Modified src/tlskey.h from [32bd25a13e] to [19e6f1fad4].
︙ | |||
28 29 30 31 32 33 34 35 36 37 38 39 40 41 | 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | + + + | #if defined(OF_HAVE_PTHREADS) # include <pthread.h> typedef pthread_key_t of_tlskey_t; #elif defined(OF_WINDOWS) # include <windows.h> typedef DWORD of_tlskey_t; #elif defined(OF_MORPHOS) # include <proto/exec.h> typedef ULONG of_tlskey_t; #elif defined(OF_AMIGAOS) typedef struct of_tlskey { struct objc_hashtable *table; struct of_tlskey *next, *previous; } *of_tlskey_t; #endif |
︙ | |||
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | + + + + + + + + + + + + | } static OF_INLINE bool of_tlskey_set(of_tlskey_t key, void *ptr) { return TlsSetValue(key, ptr); } #elif defined(OF_MORPHOS) static OF_INLINE void * of_tlskey_get(of_tlskey_t key) { return (void *)TLSGetValue(key); } static OF_INLINE bool of_tlskey_set(of_tlskey_t key, void *ptr) { return TLSSetValue(key, (APTR)ptr); } #elif defined(OF_AMIGAOS) /* Those are too big too inline. */ # ifdef __cplusplus extern "C" { # endif extern void *of_tlskey_get(of_tlskey_t key); extern bool of_tlskey_set(of_tlskey_t key, void *ptr); # ifdef __cplusplus } # endif #endif |
Modified src/tlskey.m from [abedce4e93] to [6e9b57ccc9].
︙ | |||
19 20 21 22 23 24 25 26 27 28 | 19 20 21 22 23 24 25 26 27 28 29 30 | + + | #include "platform.h" #if defined(OF_HAVE_PTHREADS) # include "platform/posix/tlskey.m" #elif defined(OF_WINDOWS) # include "platform/windows/tlskey.m" #elif defined(OF_MORPHOS) # include "platform/morphos/tlskey.m" #elif defined(OF_AMIGAOS) # include "platform/amiga/tlskey.m" #endif |