commit:     c7f5ca73ddfab78834c5bf240cb544e07a6d61ab
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 10 14:02:39 2024 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Sat Aug 10 14:06:07 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c7f5ca73

eclass/toolchain-funcs: add support for Prefix targets

- support Darwin
- support arm64 (Apple Silicon) Darwin
- skip gen_usr_ldscript on Prefix targets

Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 eclass/toolchain-funcs.eclass | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass
index 9f0953c079e3..50eb310b4bf1 100644
--- a/eclass/toolchain-funcs.eclass
+++ b/eclass/toolchain-funcs.eclass
@@ -251,7 +251,7 @@ tc-detect-is-softfloat() {
 
        case ${CTARGET:-${CHOST}} in
                # Avoid autodetection for bare-metal targets. bug #666896
-               *-newlib|*-elf|*-eabi)
+               *-newlib|*-elf|*-eabi|arm64-apple-darwin*)
                        return 1 ;;
 
                # arm-unknown-linux-gnueabi is ambiguous. We used to treat it as
@@ -295,6 +295,8 @@ tc-tuple-is-softfloat() {
                # bare-metal targets have their defaults. bug #666896
                *-newlib|*-elf|*-eabi)
                        echo "no" ;;
+               arm64-apple-darwin*)
+                       echo "no" ;;
                arm*)
                        echo "yes" ;;
                *)
@@ -626,7 +628,14 @@ tc-has-tls() {
                -*) die "Usage: tc-has-tls [-c|-l] [toolchain prefix]";;
        esac
 
-       : "${flags:=-fPIC -shared -Wl,-z,defs}"
+       case "${CHOST}" in
+               *-darwin*)
+                       # bug #612370
+                       : ${flags:=-dynamiclib}
+                       ;;
+               *)
+                       : ${flags:=-fPIC -shared -Wl,-z,defs}
+       esac
        [[ $1 == -* ]] && shift
        $(tc-getCC "$@") ${flags} "${base}.c" -o "${base}" >&/dev/null
        local ret=$?
@@ -645,6 +654,7 @@ tc-ninja_magic_to_arch() {
        [[ -z ${host} ]] && host=${CTARGET:-${CHOST}}
 
        case ${host} in
+               arm64*)         echo arm64;;
                aarch64*)       echo arm64;;
                alpha*)         echo alpha;;
                arc*)           echo arc;;
@@ -1032,6 +1042,7 @@ gen_usr_ldscript() {
        [[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/
 
        tc-is-static-only && return
+       use prefix && return
 
        # We only care about stuffing / for the native ABI, bug #479448
        if [[ $(type -t multilib_is_native_abi) == "function" ]] ; then

Reply via email to