From nobody Sun Aug 9 09:07:40 2026 X-Original-To: dev-commits-src-all@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 4hHsVB48SMz6nMDX for ; Sun, 09 Aug 2026 09:07:46 +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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hHsV96JKhz3m36 for ; Sun, 09 Aug 2026 09:07:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786266465; 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=TUkGZhfJ8KwQ98BiqDCZXaCnAka5vjRgeI95LNyI4bI=; b=AfOTIZetg7try5ANEAU6gDZ0L0xaDDPVYzVDQt7cYKlwkwTLGBOOkP5yoND8xOlD8qYzzp g6im1gsft0ybxqh5WOruVMwOyFjzu1K8DYguoRILZgaNvw7K5gp8OvSPgQNLdpgaik6TnM rLADyielhKWaVZ39Jb3tYBIo1FFrjiogm5g7v+i8x+48VxYkPM4piD/M6yxF/Z7BplFZ+O 0YyCPgZWO4Lw2s8B50FWaUuP+hoVaijynSl4GtoG0oPG1ZwN0Rrtjzui71Bvd2tyTLYKxF VHVGT/fa6SJG7EOqEcYB32CDIhSW7Nz6TjZOG9Pl0eQzxqVxdLy27XId+mcK6g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786266465; a=rsa-sha256; cv=none; b=HEpIFWiB8yZtZB9rXKBERm5I0mhNR7SiZ0ks2oYZOyI/pk8xyGKas5Bbq1ECuiyqWh1cc5 62VNkOXv1uJIboK3i5Vuj9Op7KMq9qnEwwT+84m9c/wz/MYrDgS8KDC4BzPgtr7lN93YZ2 87pSUhd6mSBN/JXw4XNStGWuz5GIkusIjNizMQLKp92j3anT0xSH7s5i7q8UE+AKg+rdGR w3TX0gMYS8o+Wt3XldDssbld/kbouf6mH1zKoAa/ePJfawQvGcY/Crkl7vopHRoX0ntD4L w9yEQmgLJ+p4r7EYSm+oPSAD8mfpkxpxsPfC8b+VAfj6s2GxK0VLHwQNNjTsOg== 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=1786266465; 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=TUkGZhfJ8KwQ98BiqDCZXaCnAka5vjRgeI95LNyI4bI=; b=UKYDnbCuImKAEvKHUiYru8h1/pdj5uceM5CCS5CwU8ooxVVSTY7Lgm5FJNuYAQtjMh58Lc xoynUhWtubkAMmVR1BUJhzh5l1p+nG+7xnsGmRsh9BWo8uzfnROjTkxcNAkBW5b94ZL1Ed 79GR0+ugJexEEc5QsU57EQy9EE5bB24QI8ryEYL3T3N2fJ6C4iU0QpfseNRfFn1g8XIzcX 7u6rti3yUt/V3yii4ghfiexoK4kAmOvX2XfQls12zPwmg1OtzCf2hcb9wHwaKmNZzjsapU asS5WZyXLyKfZ2s6n6tXexs5sg0IWdANAUaiJk4ph9UNsYefC7o+AdBSvgVTPA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hHsV94By6z28n for ; Sun, 09 Aug 2026 09:07:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26b4c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 09 Aug 2026 09:07:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Piotr Kubaj Subject: git: 185a03ad8aa8 - main - libgcc_s: export the IEEE-128 long double runtime on powerpc64le List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@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: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 185a03ad8aa84baf6c644688fc7687d2a3ebf1c5 Auto-Submitted: auto-generated Date: Sun, 09 Aug 2026 09:07:40 +0000 Message-Id: <6a78435c.26b4c.125c331d@gitrepo.freebsd.org> The branch main has been updated by pkubaj: URL: https://cgit.FreeBSD.org/src/commit/?id=185a03ad8aa84baf6c644688fc7687d2a3ebf1c5 commit 185a03ad8aa84baf6c644688fc7687d2a3ebf1c5 Author: Piotr Kubaj AuthorDate: 2026-08-09 09:02:40 +0000 Commit: Piotr Kubaj CommitDate: 2026-08-09 09:07:30 +0000 libgcc_s: export the IEEE-128 long double runtime on powerpc64le On powerpc64le with IEEE-128 long double, the long-double compiler-runtime helpers are the *kf* soft-float functions (built from the tf sources, renamed via -D in lib/libcompiler_rt/Makefile.inc) plus the complex multc3/__divtc3. They are compiled into libgcc_s.so by the powerpc64le SRCF block, but were never added to Symbol.map, so they stayed local and unexported. Every other IEEE-128 architecture already exports its scalar long-double runtime -- aarch64 and riscv list the tf helpers in GCC_4.6.0. powerpc64le was simply missed. Because the helpers are unexported, any clang-built shared library that uses long double leaves them undefined (permitted in a DSO), and linking an executable against that DSO then fails under lld's default --no-allow-shlib-undefined. For example science/harminv fails to link its binary against its own libharminv.so with undefined multc3/divtc3; at -O0, mulkf3/addkf3/__subkf3/__unordkf2 appear as well. Export the full runtime, gated on the PowerPC-specific LONG_DOUBLE_IEEE128 predefine so no other architecture is affected: complex multc3/divtc3 in GCC_4.0.0 (beside the other complex mul*c3), and the 28 scalar *kf* functions in GCC_7.0.0. Node placement follows glibc/gcc symbol-versioning history. Differential Revision: https://reviews.freebsd.org/D58248 --- lib/libgcc_s/Symbol.map | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/lib/libgcc_s/Symbol.map b/lib/libgcc_s/Symbol.map index 91fdeac3f2cf..ba656383bd5c 100644 --- a/lib/libgcc_s/Symbol.map +++ b/lib/libgcc_s/Symbol.map @@ -161,6 +161,10 @@ GCC_4.0.0 { __mulsc3; #if defined(__amd64__) || defined(__i386__) __mulxc3; +#endif +#if defined(__LONG_DOUBLE_IEEE128__) + __divtc3; + __multc3; #endif __powidf2; __powisf2; @@ -233,4 +237,34 @@ GCC_7.0.0 { #ifdef __i386__ __divmoddi4; #endif +#if defined(__LONG_DOUBLE_IEEE128__) + __addkf3; + __subkf3; + __mulkf3; + __divkf3; + __eqkf2; + __gekf2; + __gtkf2; + __lekf2; + __ltkf2; + __nekf2; + __unordkf2; + __extendsfkf2; + __extenddfkf2; + __trunckfsf2; + __trunckfdf2; + __fixkfsi; + __fixkfdi; + __fixkfti; + __fixunskfsi; + __fixunskfdi; + __fixunskfti; + __floatsikf; + __floatdikf; + __floattikf; + __floatunsikf; + __floatundikf; + __floatuntikf; + __powikf2; +#endif };