From nobody Thu Jun 11 07:48:25 2026 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gbZWv0c8rz6hr1c for ; Thu, 11 Jun 2026 07:48:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gbZWs5tlwz3b3h for ; Thu, 11 Jun 2026 07:48:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1781164105; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/nhbHybZhVdclUIziMULMjyoiva00ymcTyHOelTBeYk=; b=yzYW6qol7GiKWy4qOZuUHZxcWHEVfJwfxLx6XgjpBN52xWBGH/9HCSlipWvDUQ9oyXmsQC PolAZ93VMUt23tQ1EJMRGTBe5JKsWIG+UoR9VZZQ04IjhkxcThBEgyFPNQDdy62QF3/0f+ Xtt3ODTwJTVHR81c0kUTB6Mo5IxvJZ+P3OhkUvL1Gp8PmA1z3jl7sWl4zfdOSTzMo7Ilwf JJx5KVMr8PvUHJ/g9gEWREavIEjOQyd30nK4QgTnHeCfkX8XlCv2hAPIdj8AgVjjoqzff+ urmbCm1A9WE3YLYknQjpdaxVjwGahr1BI0+h2kk/zZB+q9p7b3+AX48GZxC2Rg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1781164105; a=rsa-sha256; cv=none; b=sXGdGvKzfF2irvPNhZZqUbvsi4dxFtB8fMOMyQC2tlEIbS6ttB4uwsvj765bGwoYIKmq5W lNe9e92PS/G0DueoQSSYfFncn1fwQIfeluGjbYCvCFVlAdfvIQFEZRw2soAlLwHo9Q0R4u qRyCYJamjmcE2CF/0u9Ul7f3Ex1XO6kcg8CN031Wl41aTP+0BWdckqQjmO0n3O3npro+Z+ UHhqlAdZxKAY5GQ2LM8aenYD8ppoM3ZyCHWIgI/EKiiO4s04nR0UDs0nSe+zdMR0EM+vrL RRDbABWeOg8ybdH8pkOVzpX2zCgnFphj+WvO6F3txRXL/x/wopB6/llSTy2C3w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1781164105; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/nhbHybZhVdclUIziMULMjyoiva00ymcTyHOelTBeYk=; b=w/fedD+R+DXYKe5w0/PkyLAw6zgTxCb/iP2k0xA7/W3c8VsuFfadSrSKzbmeyTlbgGqsPX DdUsQwnF6ZktkufD29vlt+DoIkUaR5ElV9VAO/ThaChz3VbmTpKH9UPN6IbQVw6Sa4yasA 1DnbZaAlUWEC8MiiXETAIwot/T5oervN/1NO9XSiRmaVjOlfzSS8m12kQL4IhguGZGgzou e8mLBi5TsbRqVNtlAi1j//copbHXP5ZoBnlmijRu3thLpmEfqfK/Z3njY0Oh79KK4ODOyZ viYObyLWZ+uIK+j1f6LEbhkvmqtje+jVqMTGNyvuWprWJk+uKtyJoctBaepyYQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gbZWs5LWHzjRv for ; Thu, 11 Jun 2026 07:48:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1fde0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 11 Jun 2026 07:48:25 +0000 To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Piotr Kubaj Subject: git: 0ba22c657d00 - main - lang/libobjc2: update to 2.3, add msdSend for powerpc64* List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-main@freebsd.org Sender: owner-dev-commits-ports-main@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: pkubaj X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0ba22c657d00fa5006765f2eaf5062d6961299e1 Auto-Submitted: auto-generated Date: Thu, 11 Jun 2026 07:48:25 +0000 Message-Id: <6a2a6849.1fde0.30c1d8e8@gitrepo.freebsd.org> The branch main has been updated by pkubaj: URL: https://cgit.FreeBSD.org/ports/commit/?id=0ba22c657d00fa5006765f2eaf5062d6961299e1 commit 0ba22c657d00fa5006765f2eaf5062d6961299e1 Author: Piotr Kubaj AuthorDate: 2026-06-08 11:30:59 +0000 Commit: Piotr Kubaj CommitDate: 2026-06-11 07:47:57 +0000 lang/libobjc2: update to 2.3, add msdSend for powerpc64* Changelog: https://github.com/gnustep/libobjc2/releases/tag/v2.3 --- lang/libobjc2/Makefile | 19 +- lang/libobjc2/distinfo | 6 +- lang/libobjc2/files/patch-CMakeLists.txt | 21 +- lang/libobjc2/files/patch-objc__msgSend.S | 11 + .../libobjc2/files/patch-objc__msgSend.powerpc64.S | 301 +++++++++++++++++++++ lang/libobjc2/files/patch-objc_message.h | 12 + lang/libobjc2/pkg-plist | 5 + 7 files changed, 345 insertions(+), 30 deletions(-) diff --git a/lang/libobjc2/Makefile b/lang/libobjc2/Makefile index 957eff74d84d..90c436fb0970 100644 --- a/lang/libobjc2/Makefile +++ b/lang/libobjc2/Makefile @@ -1,6 +1,6 @@ PORTNAME= libobjc2 DISTVERSIONPREFIX=v -DISTVERSION= 2.2.1 +DISTVERSION= 2.3 CATEGORIES= lang devel gnustep MAINTAINER= pkubaj@FreeBSD.org @@ -10,7 +10,7 @@ LICENSE= MIT BUILD_DEPENDS= ${LOCALBASE}/include/tsl/robin_map.h:devel/robin-map -USES= cmake compiler objc:compiler +USES= cmake:testing compiler objc:compiler USE_GITHUB= yes GH_ACCOUNT= gnustep @@ -19,10 +19,9 @@ USE_LDCONFIG= yes LDFLAGS+= -lm -TEST_TARGET= test - CMAKE_ARGS+= -DLIB_INSTALL_PATH=lib \ -DLOCALBASE=${LOCALBASE} +CMAKE_TESTING_ON= TESTS LDFLAGS_armv7= -Wl,-znotext SSP_UNSAFE= yes @@ -32,17 +31,7 @@ PLIST_SUB+= SHLIB_MAJOR=${SHLIB_MAJOR} SHLIB_MINOR=${SHLIB_MINOR} SHLIB_MAJOR= 4 SHLIB_MINOR= 6 -.include - -.if ${ARCH:Mpowerpc*} || ${ARCH:Mriscv64*} -CMAKE_ARGS+= -DTESTS:BOOL=OFF -.endif - -.if ${CHOSEN_COMPILER_TYPE} == gcc -CXXFLAGS+= -stdlib=libstdc++ -.endif - post-install: ${LN} -sf libobjc.so.${SHLIB_MAJOR}.${SHLIB_MINOR} ${STAGEDIR}${PREFIX}/lib/libobjc.so.${SHLIB_MAJOR} -.include +.include diff --git a/lang/libobjc2/distinfo b/lang/libobjc2/distinfo index 9b8b43d151de..78eafc9ed5b7 100644 --- a/lang/libobjc2/distinfo +++ b/lang/libobjc2/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1717156055 -SHA256 (gnustep-libobjc2-v2.2.1_GH0.tar.gz) = 768ea8c5bd0999a29b5d15781125494f986456c1dc5c51d370fb31852cd31ea1 -SIZE (gnustep-libobjc2-v2.2.1_GH0.tar.gz) = 205087 +TIMESTAMP = 1780915583 +SHA256 (gnustep-libobjc2-v2.3_GH0.tar.gz) = 5ead2276b42a534ac40437ce53b2231320b985539dc325453d93874be8d92869 +SIZE (gnustep-libobjc2-v2.3_GH0.tar.gz) = 213139 diff --git a/lang/libobjc2/files/patch-CMakeLists.txt b/lang/libobjc2/files/patch-CMakeLists.txt index ad0d5232999b..99cfac956e02 100644 --- a/lang/libobjc2/files/patch-CMakeLists.txt +++ b/lang/libobjc2/files/patch-CMakeLists.txt @@ -1,18 +1,15 @@ ---- CMakeLists.txt.orig 2024-03-21 16:06:36 UTC +--- CMakeLists.txt.orig 2026-06-08 10:48:43 UTC +++ CMakeLists.txt -@@ -29,9 +29,10 @@ INCLUDE (FetchContent) - INCLUDE (CheckCXXSourceCompiles) +@@ -30,6 +30,8 @@ INCLUDE (CheckSymbolExists) INCLUDE (FetchContent) + INCLUDE (CheckSymbolExists) +include_directories(${LOCALBASE}/include) + set(libobjc_VERSION 4.6) -- - if (MSVC) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /EHas") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHas") -@@ -128,17 +129,6 @@ endif () + +@@ -112,17 +114,6 @@ endif () list(APPEND libobjc_C_SRCS eh_personality.c) endif () @@ -22,7 +19,7 @@ - FetchContent_Declare( - robinmap - GIT_REPOSITORY https://github.com/Tessil/robin-map/ -- GIT_TAG v1.2.1) +- GIT_TAG v1.4.0) - - FetchContent_MakeAvailable(robinmap) -endif() @@ -30,12 +27,12 @@ if (WIN32) set(OLD_ABI_COMPAT_DEFAULT false) else() -@@ -255,8 +245,6 @@ endif() +@@ -269,8 +260,6 @@ endif() if (WIN32 AND NOT MINGW) - target_link_libraries(objc ntdll.dll) + target_link_libraries(objc PUBLIC ntdll.dll) endif() - --target_link_libraries(objc tsl::robin_map) +-target_link_libraries(objc PRIVATE tsl::robin_map) set_target_properties(objc PROPERTIES LINKER_LANGUAGE C diff --git a/lang/libobjc2/files/patch-objc__msgSend.S b/lang/libobjc2/files/patch-objc__msgSend.S new file mode 100644 index 000000000000..443ea4d608bb --- /dev/null +++ b/lang/libobjc2/files/patch-objc__msgSend.S @@ -0,0 +1,11 @@ +--- objc_msgSend.S.orig 2025-09-16 15:03:00 UTC ++++ objc_msgSend.S +@@ -12,6 +12,8 @@ + #include "objc_msgSend.riscv64.S" + #elif defined(__mips_n64) || defined(__mips_n32) + #include "objc_msgSend.mips.S" ++#elif defined(__powerpc64__) && _CALL_ELF == 2 ++#include "objc_msgSend.powerpc64.S" + #else + #warning objc_msgSend() not implemented for your architecture + #endif diff --git a/lang/libobjc2/files/patch-objc__msgSend.powerpc64.S b/lang/libobjc2/files/patch-objc__msgSend.powerpc64.S new file mode 100644 index 000000000000..9e03cade637a --- /dev/null +++ b/lang/libobjc2/files/patch-objc__msgSend.powerpc64.S @@ -0,0 +1,301 @@ +--- objc_msgSend.powerpc64.S.orig 2026-06-08 11:30:27 UTC ++++ objc_msgSend.powerpc64.S +@@ -0,0 +1,298 @@ ++/* objc_msgSend.powerpc64.S - PowerPC64 ELFv2 fast-path dispatch for GNUstep libobjc2. ++ * ++ * Included from objc_msgSend.S after common.S and asmconstants.h. ++ * Works for both ppc64le (LE) and ppc64 BE with the ELFv2 ABI. ++ * ++ * Dispatch overview: ++ * Fast path (no frame): nil-check → small-obj-check → isa → dtable lookup → IMP → bctr ++ * Slow path (frame + spill): for nil slots (cache miss), calls slowMsgLookup ++ * ++ * ELFv2 frame layout used on the slow path (FRAME_SIZE = 208): ++ * +0 back chain +8 CR save +24 TOC (r2) ++ * +32 r3 +40 r4 +48 r5 +56 r6 +64 r7 +72 r8 +80 r9 +88 r10 ++ * +96 f1 ... +192 f13 ++ * LR saved at (FRAME_SIZE+16)(r1) = old_sp+16 per ELFv2 convention. ++ */ ++ ++#define FRAME_SIZE 208 ++ ++.globl CDECL(objc_msgSend) ++TYPE_DIRECTIVE(CDECL(objc_msgSend), %function) ++.globl CDECL(objc_msgSend_fpret) ++TYPE_DIRECTIVE(CDECL(objc_msgSend_fpret), %function) ++ ++CDECL(objc_msgSend_fpret): ++CDECL(objc_msgSend): ++.Lgep_objc_msgSend: ++ .cfi_startproc ++ addis 2, 12, .TOC.-.Lgep_objc_msgSend@ha ++ addi 2, 2, .TOC.-.Lgep_objc_msgSend@l ++.localentry CDECL(objc_msgSend), .-.Lgep_objc_msgSend ++ ++ /* Nil receiver */ ++ cmpdi cr0, 3, 0 ++ beq- cr0, .Lnil_msgSend ++ ++ /* Small-object check: r3 & SMALLOBJ_MASK → r11, sets CR0 */ ++ andi. 11, 3, SMALLOBJ_MASK ++ bne- cr0, .Lsmall_msgSend ++ ++ /* Load isa from normal receiver */ ++ ld 11, 0(3) ++ ++.LclassLoaded: ++ /* dtable → r11; sel->index (uint32_t) → r12; dtable->shift → r0 */ ++ ld 11, DTABLE_OFFSET(11) ++ lwz 12, 0(4) ++ lwz 0, SHIFT_OFFSET(11) ++ ++ /* Three-level sparse-array lookup. ++ * Each rlwinm extracts one byte of the selector index and scales by 8. ++ * shift=0: single level (8-bit); shift=8: two levels (16-bit); ++ * anything else: three levels (24-bit, the common case). */ ++ cmpwi cr0, 0, 8 ++ beq- cr0, .Ldtable16 ++ cmpwi cr0, 0, 0 ++ beq- cr0, .Ldtable8 ++ ++ /* Level 1: bits [23:16] of index, scaled by 8 */ ++ rlwinm 0, 12, 19, 21, 28 /* r0 = (index >> 16 & 0xFF) << 3 */ ++ add 11, 11, 0 /* r11 = dtable + offset (r0 can't be mem base) */ ++ ld 11, DATA_OFFSET(11) ++ ++.Ldtable16: ++ /* Level 2: bits [15:8] */ ++ rlwinm 0, 12, 27, 21, 28 /* r0 = (index >> 8 & 0xFF) << 3 */ ++ add 11, 11, 0 ++ ld 11, DATA_OFFSET(11) ++ ++.Ldtable8: ++ /* Level 3: bits [7:0] → slot pointer */ ++ rlwinm 0, 12, 3, 21, 28 /* r0 = (index & 0xFF) << 3 */ ++ add 11, 11, 0 ++ ld 11, DATA_OFFSET(11) ++ ++ cmpdi cr0, 11, 0 ++ beq- cr0, .Lslow_msgSend ++ ++ /* Load IMP from slot, tail-call (r12 = entry for ELFv2 global-entry TOC setup) */ ++ ld 12, SLOT_OFFSET(11) ++ mtctr 12 ++ bctr ++ ++.Lnil_msgSend: ++ /* Nil receiver: zero integer (r3:r4) and FP (f1:f2) return registers. ++ * objc_msgSend_fpret shares this entry, so a nil send returning ++ * float/double must yield 0.0 — clear f1:f2 via the ELFv2 red zone. */ ++ li 3, 0 ++ li 4, 0 ++ std 3, -8(1) ++ lfd 1, -8(1) ++ lfd 2, -8(1) ++ blr ++ ++.Lslow_msgSend: ++ /* Slow path: spill all argument registers around the lookup call. ++ * CFI lets exceptions from +initialize (run inside slowMsgLookup) ++ * unwind through this frame. */ ++ .cfi_remember_state ++ mflr 0 ++ stdu 1, -FRAME_SIZE(1) ++ .cfi_def_cfa_offset FRAME_SIZE ++ std 0, (FRAME_SIZE + 16)(1) ++ .cfi_offset 65, 16 ++ std 2, 24(1) ++ std 3, 32(1) /* self at +32; &self = r1+32 for slowMsgLookup */ ++ std 4, 40(1) ++ std 5, 48(1) ++ std 6, 56(1) ++ std 7, 64(1) ++ std 8, 72(1) ++ std 9, 80(1) ++ std 10, 88(1) ++ stfd 1, 96(1) ++ stfd 2, 104(1) ++ stfd 3, 112(1) ++ stfd 4, 120(1) ++ stfd 5, 128(1) ++ stfd 6, 136(1) ++ stfd 7, 144(1) ++ stfd 8, 152(1) ++ stfd 9, 160(1) ++ stfd 10, 168(1) ++ stfd 11, 176(1) ++ stfd 12, 184(1) ++ stfd 13, 192(1) ++ ++ /* slowMsgLookup(id *receiver, SEL cmd) — may modify *receiver for forwarding */ ++ addi 3, 1, 32 ++ /* r4 = sel (already set) */ ++ bl CDECL(slowMsgLookup) ++ nop /* linker patches to: ld 2, 24(1) */ ++ ++ mr 12, 3 ++ ld 3, 32(1) /* reload (possibly-modified) self */ ++ ld 4, 40(1) ++ ld 5, 48(1) ++ ld 6, 56(1) ++ ld 7, 64(1) ++ ld 8, 72(1) ++ ld 9, 80(1) ++ ld 10, 88(1) ++ lfd 1, 96(1) ++ lfd 2, 104(1) ++ lfd 3, 112(1) ++ lfd 4, 120(1) ++ lfd 5, 128(1) ++ lfd 6, 136(1) ++ lfd 7, 144(1) ++ lfd 8, 152(1) ++ lfd 9, 160(1) ++ lfd 10, 168(1) ++ lfd 11, 176(1) ++ lfd 12, 184(1) ++ lfd 13, 192(1) ++ addi 1, 1, FRAME_SIZE ++ ld 0, 16(1) ++ mtlr 0 ++ mtctr 12 ++ bctr ++ .cfi_restore_state ++ ++.Lsmall_msgSend: ++ /* r11 = receiver & SMALLOBJ_MASK = tag (1-7); look up class in global array */ ++ addis 12, 2, CDECL(SmallObjectClasses)@toc@ha ++ addi 12, 12, CDECL(SmallObjectClasses)@toc@l ++ sldi 11, 11, 3 /* tag * 8 (pointer size) */ ++ ldx 11, 12, 11 /* r11 = SmallObjectClasses[tag] */ ++ b .LclassLoaded ++ ++ .cfi_endproc ++ ++ ++.globl CDECL(objc_msgSend_stret) ++TYPE_DIRECTIVE(CDECL(objc_msgSend_stret), %function) ++ ++/* stret: r3 = hidden struct ptr, r4 = self, r5 = sel */ ++CDECL(objc_msgSend_stret): ++.Lgep_objc_msgSend_stret: ++ .cfi_startproc ++ addis 2, 12, .TOC.-.Lgep_objc_msgSend_stret@ha ++ addi 2, 2, .TOC.-.Lgep_objc_msgSend_stret@l ++.localentry CDECL(objc_msgSend_stret), .-.Lgep_objc_msgSend_stret ++ ++ cmpdi cr0, 4, 0 ++ beq- cr0, .Lnil_stret ++ ++ andi. 11, 4, SMALLOBJ_MASK ++ bne- cr0, .Lsmall_stret ++ ++ ld 11, 0(4) ++ ++.LclassLoaded_stret: ++ ld 11, DTABLE_OFFSET(11) ++ lwz 12, 0(5) /* sel index from r5 */ ++ lwz 0, SHIFT_OFFSET(11) ++ ++ cmpwi cr0, 0, 8 ++ beq- cr0, .Ldtable16_stret ++ cmpwi cr0, 0, 0 ++ beq- cr0, .Ldtable8_stret ++ ++ rlwinm 0, 12, 19, 21, 28 ++ add 11, 11, 0 ++ ld 11, DATA_OFFSET(11) ++ ++.Ldtable16_stret: ++ rlwinm 0, 12, 27, 21, 28 ++ add 11, 11, 0 ++ ld 11, DATA_OFFSET(11) ++ ++.Ldtable8_stret: ++ rlwinm 0, 12, 3, 21, 28 ++ add 11, 11, 0 ++ ld 11, DATA_OFFSET(11) ++ ++ cmpdi cr0, 11, 0 ++ beq- cr0, .Lslow_stret ++ ++ ld 12, SLOT_OFFSET(11) ++ mtctr 12 ++ bctr ++ ++.Lnil_stret: ++ blr ++ ++.Lslow_stret: ++ /* See .Lslow_msgSend for why this frame carries CFI. */ ++ .cfi_remember_state ++ mflr 0 ++ stdu 1, -FRAME_SIZE(1) ++ .cfi_def_cfa_offset FRAME_SIZE ++ std 0, (FRAME_SIZE + 16)(1) ++ .cfi_offset 65, 16 ++ std 2, 24(1) ++ std 3, 32(1) /* struct ptr */ ++ std 4, 40(1) /* self at +40; &self = r1+40 */ ++ std 5, 48(1) /* sel */ ++ std 6, 56(1) ++ std 7, 64(1) ++ std 8, 72(1) ++ std 9, 80(1) ++ std 10, 88(1) ++ stfd 1, 96(1) ++ stfd 2, 104(1) ++ stfd 3, 112(1) ++ stfd 4, 120(1) ++ stfd 5, 128(1) ++ stfd 6, 136(1) ++ stfd 7, 144(1) ++ stfd 8, 152(1) ++ stfd 9, 160(1) ++ stfd 10, 168(1) ++ stfd 11, 176(1) ++ stfd 12, 184(1) ++ stfd 13, 192(1) ++ ++ addi 3, 1, 40 /* r3 = &self */ ++ mr 4, 5 /* r4 = sel */ ++ bl CDECL(slowMsgLookup) ++ nop ++ ++ mr 12, 3 ++ ld 3, 32(1) ++ ld 4, 40(1) /* reload (possibly-modified) self */ ++ ld 5, 48(1) ++ ld 6, 56(1) ++ ld 7, 64(1) ++ ld 8, 72(1) ++ ld 9, 80(1) ++ ld 10, 88(1) ++ lfd 1, 96(1) ++ lfd 2, 104(1) ++ lfd 3, 112(1) ++ lfd 4, 120(1) ++ lfd 5, 128(1) ++ lfd 6, 136(1) ++ lfd 7, 144(1) ++ lfd 8, 152(1) ++ lfd 9, 160(1) ++ lfd 10, 168(1) ++ lfd 11, 176(1) ++ lfd 12, 184(1) ++ lfd 13, 192(1) ++ addi 1, 1, FRAME_SIZE ++ ld 0, 16(1) ++ mtlr 0 ++ mtctr 12 ++ bctr ++ .cfi_restore_state ++ ++.Lsmall_stret: ++ addis 12, 2, CDECL(SmallObjectClasses)@toc@ha ++ addi 12, 12, CDECL(SmallObjectClasses)@toc@l ++ sldi 11, 11, 3 ++ ldx 11, 12, 11 ++ b .LclassLoaded_stret ++ ++ .cfi_endproc diff --git a/lang/libobjc2/files/patch-objc_message.h b/lang/libobjc2/files/patch-objc_message.h new file mode 100644 index 000000000000..a28a84ee1f88 --- /dev/null +++ b/lang/libobjc2/files/patch-objc_message.h @@ -0,0 +1,12 @@ +--- objc/message.h.orig 2025-09-16 15:03:00 UTC ++++ objc/message.h +@@ -10,7 +10,8 @@ + defined(__mips_n64) || defined(__mips_n32) || \ + defined(__ARM_ARCH_ISA_A64) || \ + (defined(__riscv) && __riscv_xlen == 64 && \ +- defined(__riscv_float_abi_double)) ++ defined(__riscv_float_abi_double)) || \ ++ (defined(__powerpc64__) && _CALL_ELF == 2) + + // Define __GNUSTEP_MSGSEND__ if available + #ifndef __GNUSTEP_MSGSEND__ diff --git a/lang/libobjc2/pkg-plist b/lang/libobjc2/pkg-plist index 01d049d3c663..8d814850eeec 100644 --- a/lang/libobjc2/pkg-plist +++ b/lang/libobjc2/pkg-plist @@ -14,6 +14,7 @@ include/objc/objc-api.h include/objc/objc-arc.h include/objc/objc-auto.h include/objc/objc-class.h +include/objc/objc-config.h include/objc/objc-exception.h include/objc/objc-runtime.h include/objc/objc-visibility.h @@ -21,6 +22,10 @@ include/objc/objc.h include/objc/runtime-deprecated.h include/objc/runtime.h include/objc/slot.h +lib/cmake/libobjc/libobjcConfig.cmake +lib/cmake/libobjc/libobjcConfigVersion.cmake +lib/cmake/libobjc/libobjcTargets-%%CMAKE_BUILD_TYPE%%.cmake +lib/cmake/libobjc/libobjcTargets.cmake lib/libobjc.so lib/libobjc.so.%%SHLIB_MAJOR%% lib/libobjc.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%%