* [meta-darwin][PATCH 1/2] gcc: rely on loader_path instead of rpath
@ 2025-05-27 13:24 ecordonnier
2025-05-27 13:24 ` [meta-darwin][PATCH 2/2] arm64-darwin: use require to reduce duplication ecordonnier
0 siblings, 1 reply; 2+ messages in thread
From: ecordonnier @ 2025-05-27 13:24 UTC (permalink / raw)
To: yocto-patches; +Cc: Dominik Schnitzer, Etienne Cordonnier
From: Dominik Schnitzer <dominik@snap.com>
"--disable-darwin-at-rpath" causes the "loader_path" to be used instead of the "rpath" for finding libraries.
This allows to use the SDK without calling the relocate script which is changing the rpath values (LC_RPATH on MacOS).
Also add "Signed-off-by" line to aarch64-Darwin patch.
Before:
```
$ llvm-objdump -p ./sysroots/x86_64-pokysdk-darwin21/usr/bin/clang-18 | grep -A2 -i libstdc++
name @loader_path/../lib/libstdc++.6.dylib (offset 24)
```
After:
```
$ llvm-objdump -p ./sysroots/x86_64-pokysdk-darwin21/usr/bin/clang-18 | grep -A2 libstdc++
name @rpath/libstdc++.6.dylib (offset 24)
```
Signed-off-by: Dominik Schnitzer <dominik@snap.com>
Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
---
.../gcc/files/0101-aarch64-Darwin-support-gcc-13-3-darwin.patch | 1 +
recipes-devtools/gcc/gcc-runtime_%.bbappend | 1 +
2 files changed, 2 insertions(+)
diff --git a/recipes-devtools/gcc/files/0101-aarch64-Darwin-support-gcc-13-3-darwin.patch b/recipes-devtools/gcc/files/0101-aarch64-Darwin-support-gcc-13-3-darwin.patch
index 4599f52..23d36b3 100644
--- a/recipes-devtools/gcc/files/0101-aarch64-Darwin-support-gcc-13-3-darwin.patch
+++ b/recipes-devtools/gcc/files/0101-aarch64-Darwin-support-gcc-13-3-darwin.patch
@@ -6,6 +6,7 @@ Upstream-Status: Pending
aarch64 Darwin support for GCC 13.3 from:
https://github.com/iains/gcc-13-branch/
+Signed-off-by: Iain Sandoe <iains@gcc.gnu.org>
Signed-off-by: Dominik Schnitzer <dominik@snap.com>
---
diff --git a/recipes-devtools/gcc/gcc-runtime_%.bbappend b/recipes-devtools/gcc/gcc-runtime_%.bbappend
index 7f61e92..ce9dd1f 100644
--- a/recipes-devtools/gcc/gcc-runtime_%.bbappend
+++ b/recipes-devtools/gcc/gcc-runtime_%.bbappend
@@ -1,5 +1,6 @@
EXTRA_OECONF:remove:darwin21 = "--enable-clocale=gnu"
EXTRA_OECONF:remove:darwin21 = "--enable-clocale=generic"
+EXTRA_OECONF:append:darwin21 = " --disable-darwin-at-rpath"
RUNTIMETARGET:remove:darwin21 = "libmpx"
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [meta-darwin][PATCH 2/2] arm64-darwin: use require to reduce duplication
2025-05-27 13:24 [meta-darwin][PATCH 1/2] gcc: rely on loader_path instead of rpath ecordonnier
@ 2025-05-27 13:24 ` ecordonnier
0 siblings, 0 replies; 2+ messages in thread
From: ecordonnier @ 2025-05-27 13:24 UTC (permalink / raw)
To: yocto-patches; +Cc: Dominik Schnitzer, Etienne Cordonnier
From: Dominik Schnitzer <dominik@snap.com>
Signed-off-by: Dominik Schnitzer <dominik@snap.com>
Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
---
conf/machine-sdk/arm64-darwin.conf | 39 +----------------------------
conf/machine-sdk/darwin-common.inc | 37 +++++++++++++++++++++++++++
conf/machine-sdk/x86_64-darwin.conf | 39 +----------------------------
3 files changed, 39 insertions(+), 76 deletions(-)
create mode 100644 conf/machine-sdk/darwin-common.inc
diff --git a/conf/machine-sdk/arm64-darwin.conf b/conf/machine-sdk/arm64-darwin.conf
index 1843f64..d91a78f 100644
--- a/conf/machine-sdk/arm64-darwin.conf
+++ b/conf/machine-sdk/arm64-darwin.conf
@@ -1,40 +1,3 @@
SDK_ARCH = "aarch64"
-SDK_OS = "darwin21"
-SOLIBS:darwin21 = ".dylib"
-SOLIBSDEV:darwin21 = ".dylibbroken"
-
-PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-for-gcc = "nativesdk-osx-runtime"
-PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-initial = "nativesdk-osx-runtime"
-PREFERRED_PROVIDER_virtual/${SDK_PREFIX}binutils = "cctools-port-crosssdk"
-PREFERRED_PROVIDER_virtual/nativesdk-libc = "nativesdk-osx-runtime"
-PREFERRED_PROVIDER_virtual/nativesdk-libintl = "nativesdk-osx-runtime"
-PREFERRED_PROVIDER_virtual/nativesdk-libiconv = "nativesdk-osx-runtime"
-
-SDKUSE_NLS = "no"
-SDKIMAGE_LINGUAS = ""
-SDK_DEPENDS:remove = "nativesdk-glibc-locale nativesdk-qemuwrapper-cross"
-
-SDKPKGSUFFIX = "nativesdk-darwin"
-
-OSX_TOOLCHAIN_OPTIONS = " \
- -mmacosx-version-min=12.3 \
- -L${STAGING_DIR_TARGET}${SDKPATHNATIVE}/usr/lib \
- -L${STAGING_DIR_TARGET}${SDKPATHNATIVE}/runtime/usr/lib \
- -L${STAGING_DIR_TARGET}${SDKPATHNATIVE}/runtime/usr/lib/system \
-"
-
-TOOLCHAIN_OPTIONS:append:darwin21 = " \
- ${OSX_TOOLCHAIN_OPTIONS}"
-TOOLCHAIN_OPTIONS:append:class-cross-canadian = " \
- ${OSX_TOOLCHAIN_OPTIONS}"
-
-# Remove -rpath-link
-BUILDSDK_LDFLAGS = " \
- -L${STAGING_LIBDIR} \
- -Wl,-rpath,${libdir} \
- -L${STAGING_DIR_HOST}${base_libdir} \
- -Wl,-rpath,${base_libdir} \
-"
-
-MACHINEOVERRIDES .= ":darwinsdk"
+require darwin-common.inc
diff --git a/conf/machine-sdk/darwin-common.inc b/conf/machine-sdk/darwin-common.inc
new file mode 100644
index 0000000..cec76a5
--- /dev/null
+++ b/conf/machine-sdk/darwin-common.inc
@@ -0,0 +1,37 @@
+SDK_OS = "darwin21"
+
+SOLIBS:darwin21 = ".dylib"
+SOLIBSDEV:darwin21 = ".dylibbroken"
+
+PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-for-gcc = "nativesdk-osx-runtime"
+PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-initial = "nativesdk-osx-runtime"
+PREFERRED_PROVIDER_virtual/${SDK_PREFIX}binutils = "cctools-port-crosssdk"
+PREFERRED_PROVIDER_virtual/nativesdk-libc = "nativesdk-osx-runtime"
+PREFERRED_PROVIDER_virtual/nativesdk-libintl = "nativesdk-osx-runtime"
+PREFERRED_PROVIDER_virtual/nativesdk-libiconv = "nativesdk-osx-runtime"
+
+SDKUSE_NLS = "no"
+SDKIMAGE_LINGUAS = ""
+SDK_DEPENDS:remove = "nativesdk-glibc-locale nativesdk-qemuwrapper-cross"
+
+SDKPKGSUFFIX = "nativesdk-darwin"
+
+OSX_TOOLCHAIN_OPTIONS = " \
+ -mmacosx-version-min=12.3 \
+ -L${STAGING_DIR_TARGET}${SDKPATHNATIVE}/usr/lib \
+ -L${STAGING_DIR_TARGET}${SDKPATHNATIVE}/runtime/usr/lib \
+ -L${STAGING_DIR_TARGET}${SDKPATHNATIVE}/runtime/usr/lib/system \
+"
+
+TOOLCHAIN_OPTIONS:append:darwin21 = " \
+ ${OSX_TOOLCHAIN_OPTIONS}"
+TOOLCHAIN_OPTIONS:append:class-cross-canadian = " \
+ ${OSX_TOOLCHAIN_OPTIONS}"
+
+# Remove -rpath-link
+BUILDSDK_LDFLAGS = " \
+ -L${STAGING_LIBDIR} \
+ -Wl,-rpath,${libdir} \
+"
+
+MACHINEOVERRIDES .= ":darwinsdk"
diff --git a/conf/machine-sdk/x86_64-darwin.conf b/conf/machine-sdk/x86_64-darwin.conf
index 89f3e0a..199cab7 100644
--- a/conf/machine-sdk/x86_64-darwin.conf
+++ b/conf/machine-sdk/x86_64-darwin.conf
@@ -1,40 +1,3 @@
SDK_ARCH = "x86_64"
-SDK_OS = "darwin21"
-SOLIBS:darwin21 = ".dylib"
-SOLIBSDEV:darwin21 = ".dylibbroken"
-
-PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-for-gcc = "nativesdk-osx-runtime"
-PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-initial = "nativesdk-osx-runtime"
-PREFERRED_PROVIDER_virtual/${SDK_PREFIX}binutils = "cctools-port-crosssdk"
-PREFERRED_PROVIDER_virtual/nativesdk-libc = "nativesdk-osx-runtime"
-PREFERRED_PROVIDER_virtual/nativesdk-libintl = "nativesdk-osx-runtime"
-PREFERRED_PROVIDER_virtual/nativesdk-libiconv = "nativesdk-osx-runtime"
-
-SDKUSE_NLS = "no"
-SDKIMAGE_LINGUAS = ""
-SDK_DEPENDS:remove = "nativesdk-glibc-locale nativesdk-qemuwrapper-cross"
-
-SDKPKGSUFFIX = "nativesdk-darwin"
-
-OSX_TOOLCHAIN_OPTIONS = " \
- -mmacosx-version-min=12.3 \
- -L${STAGING_DIR_TARGET}${SDKPATHNATIVE}/usr/lib \
- -L${STAGING_DIR_TARGET}${SDKPATHNATIVE}/runtime/usr/lib \
- -L${STAGING_DIR_TARGET}${SDKPATHNATIVE}/runtime/usr/lib/system \
-"
-
-TOOLCHAIN_OPTIONS:append:darwin21 = " \
- ${OSX_TOOLCHAIN_OPTIONS}"
-TOOLCHAIN_OPTIONS:append:class-cross-canadian = " \
- ${OSX_TOOLCHAIN_OPTIONS}"
-
-# Remove -rpath-link
-BUILDSDK_LDFLAGS = " \
- -L${STAGING_LIBDIR} \
- -Wl,-rpath,${libdir} \
- -L${STAGING_DIR_HOST}${base_libdir} \
- -Wl,-rpath,${base_libdir} \
-"
-
-MACHINEOVERRIDES .= ":darwinsdk"
+require darwin-common.inc
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-05-27 13:24 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-27 13:24 [meta-darwin][PATCH 1/2] gcc: rely on loader_path instead of rpath ecordonnier
2025-05-27 13:24 ` [meta-darwin][PATCH 2/2] arm64-darwin: use require to reduce duplication ecordonnier
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.