diff mbox series

[meta-darwin] Add GDB and CLANG (conditionally) to the SDK builds

Message ID 20260128063200.99314-1-dev@qinc.tv
State New
Headers show
Series [meta-darwin] Add GDB and CLANG (conditionally) to the SDK builds | expand

Commit Message

Eric L. Hernes Jan. 28, 2026, 6:32 a.m. UTC
From: "Eric L. Hernes" <eric@qinc.tv>

GDB and CLANG are not included in the SDK builds on Darwin. This patch
adds them. GDB is added to the packagegroup files.  I had to disable
some of the advanced options for gdb to get a compile.

CLANG is added conditionally from the `CLANGSDK=1` variable.  This
also was missing from the *packagegroup* files.

Signed-off-by: Eric L. Hernes <dev@qinc.tv>
---
 .../openssl/openssl_%.bbappend                | 25 +++++++++++++++++++
 .../nativesdk-packagegroup-sdk-host.bbappend  |  3 +++
 .../packagegroup-cross-canadian.bbappend      |  5 ++++
 .../gcc/gcc-cross-canadian_%.bbappend         |  2 +-
 .../gdb/gdb-cross-canadian_%.bbappend         | 19 ++++++++++++++
 5 files changed, 53 insertions(+), 1 deletion(-)
 create mode 100644 recipes-connectivity/openssl/openssl_%.bbappend
 create mode 100644 recipes-devtools/gdb/gdb-cross-canadian_%.bbappend

Comments

Etienne Cordonnier Jan. 31, 2026, 8:19 p.m. UTC | #1
Hi Eric,
thanks for the patch! Applied as
https://git.yoctoproject.org/meta-darwin/commit/?id=c6cd4d7f83d079bc03419872c57269e8bbded95b

On Wed, Jan 28, 2026 at 7:32 AM Eric L. Hernes via lists.yoctoproject.org
<dev=qinc.tv@lists.yoctoproject.org> wrote:

> From: "Eric L. Hernes" <eric@qinc.tv>
>
> GDB and CLANG are not included in the SDK builds on Darwin. This patch
> adds them. GDB is added to the packagegroup files.  I had to disable
> some of the advanced options for gdb to get a compile.
>
> CLANG is added conditionally from the `CLANGSDK=1` variable.  This
> also was missing from the *packagegroup* files.
>
> Signed-off-by: Eric L. Hernes <dev@qinc.tv>
> ---
>  .../openssl/openssl_%.bbappend                | 25 +++++++++++++++++++
>  .../nativesdk-packagegroup-sdk-host.bbappend  |  3 +++
>  .../packagegroup-cross-canadian.bbappend      |  5 ++++
>  .../gcc/gcc-cross-canadian_%.bbappend         |  2 +-
>  .../gdb/gdb-cross-canadian_%.bbappend         | 19 ++++++++++++++
>  5 files changed, 53 insertions(+), 1 deletion(-)
>  create mode 100644 recipes-connectivity/openssl/openssl_%.bbappend
>  create mode 100644 recipes-devtools/gdb/gdb-cross-canadian_%.bbappend
>
> diff --git a/recipes-connectivity/openssl/openssl_%.bbappend
> b/recipes-connectivity/openssl/openssl_%.bbappend
> new file mode 100644
> index 0000000..3b0674c
> --- /dev/null
> +++ b/recipes-connectivity/openssl/openssl_%.bbappend
> @@ -0,0 +1,25 @@
> +
> +do_configure:darwin21 () {
> +    target="${@'darwin64-arm64-cc' if d.getVar('SDK_ARCH') == 'aarch64'
> else 'darwin64-x86_64-cc'}"
> +
> +    useprefix=${prefix}
> +    if [ "x$useprefix" = "x" ]; then
> +        useprefix=/
> +    fi
> +    # WARNING: do not set compiler/linker flags (-I/-D etc.) in
> EXTRA_OECONF, as they will fully replace the
> +    # environment variables set by bitbake. Adjust the environment
> variables instead.
> +    PERLEXTERNAL="$(realpath ${S}/external/perl/Text-Template-*/lib)"
> +    test -d "$PERLEXTERNAL" || bberror "PERLEXTERNAL '$PERLEXTERNAL' not
> found!"
> +    HASHBANGPERL="/usr/bin/env perl" PERL=perl PERL5LIB="$PERLEXTERNAL" \
> +    perl ${S}/Configure ${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS}
> ${DEPRECATED_CRYPTO_FLAGS} --prefix=$useprefix --openssldir=${libdir}/ssl-3
> --libdir=${libdir} $target
> +    perl ${B}/configdata.pm --dump
> +}
> +
> +RDEPENDS:remove:${PN}-misc = "perl"
> +RDEPENDS:remove:${PN}-ptest = "openssl-bin"
> +RDEPENDS:remove:${PN}-ptest = "perl"
> +RDEPENDS:remove:${PN}-ptest = "perl-modules"
> +RDEPENDS:remove:${PN}-ptest = "bash"
> +RDEPENDS:remove:${PN}-ptest = "sed"
> +RDEPENDS:remove:${PN}-ptest = "openssl-engines"
> +RDEPENDS:remove:${PN}-ptest = "openssl-ossl-module-legacy"
> diff --git
> a/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
> b/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
> index 170a8c1..d1191e7 100644
> --- a/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
> +++ b/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
> @@ -4,3 +4,6 @@ RDEPENDS:${PN}:darwin21 = "\
>      nativesdk-bison \
>      nativesdk-sdk-provides-dummy \
>      "
> +
> +RDEPENDS:${PN}:darwin21 += "${@bb.utils.contains('CLANGSDK', '1',
> 'nativesdk-clang', '', d)}"
> +
> diff --git
> a/recipes-core/packagegroups/packagegroup-cross-canadian.bbappend
> b/recipes-core/packagegroups/packagegroup-cross-canadian.bbappend
> index de29f47..4e46eae 100644
> --- a/recipes-core/packagegroups/packagegroup-cross-canadian.bbappend
> +++ b/recipes-core/packagegroups/packagegroup-cross-canadian.bbappend
> @@ -1,9 +1,14 @@
>  # Use indirection to stop these being expanded prematurely
>  BINUTILS = "binutils-cross-canadian-${TRANSLATED_TARGET_ARCH}"
>  GCC = "gcc-cross-canadian-${TRANSLATED_TARGET_ARCH}"
> +GDB = "gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}"
> +CLANG = "clang-cross-canadian-${TRANSLATED_TARGET_ARCH}"
>
>  RDEPENDS:${PN}:darwinsdk = "\
>      ${@all_multilib_tune_values(d, 'BINUTILS')} \
>      ${@all_multilib_tune_values(d, 'GCC')} \
> +    ${GDB} \
>      meta-environment-${MACHINE} \
>      "
> +
> +RDEPENDS:${PN}:darwinsdk += "${@bb.utils.contains('CLANGSDK', '1',
> '${CLANGCROSSCANADIANDEPS}', '', d)}"
> diff --git a/recipes-devtools/gcc/gcc-cross-canadian_%.bbappend
> b/recipes-devtools/gcc/gcc-cross-canadian_%.bbappend
> index 192ee0d..5a4b8f9 100644
> --- a/recipes-devtools/gcc/gcc-cross-canadian_%.bbappend
> +++ b/recipes-devtools/gcc/gcc-cross-canadian_%.bbappend
> @@ -3,7 +3,7 @@ ELFUTILS:darwinsdk = ""
>
>  EXTRA_OECONF:append:darwinsdk = " \
>      --with-gmp=${STAGING_EXECPREFIXDIR} \
> -    --with-mpft=${STAGING_EXECPREFIXDIR} \
> +    --with-mpfr=${STAGING_EXECPREFIXDIR} \
>      --with-mpc=${STAGING_EXECPREFIXDIR} \
>  "
>
> diff --git a/recipes-devtools/gdb/gdb-cross-canadian_%.bbappend
> b/recipes-devtools/gdb/gdb-cross-canadian_%.bbappend
> new file mode 100644
> index 0000000..3f69019
> --- /dev/null
> +++ b/recipes-devtools/gdb/gdb-cross-canadian_%.bbappend
> @@ -0,0 +1,19 @@
> +PACKAGECONFIG:remove = "python"
> +PACKAGECONFIG:remove = "debuginfod"
> +
> +EXTRA_OECONF:append:darwinsdk = " \
> +    --with-gmp=${STAGING_EXECPREFIXDIR} \
> +    --with-mpfr=${STAGING_EXECPREFIXDIR} \
> +    --with-mpc=${STAGING_EXECPREFIXDIR} \
> +"
> +
> +EXTRA_OECONF:remove:darwinsdk = "--disable-gas"
> +EXTRA_OECONF:remove:darwinsdk = "--disable-binutils"
> +EXTRA_OECONF:remove:darwinsdk = "--disable-ld"
> +EXTRA_OECONF:remove:darwinsdk = "--disable-gold"
> +EXTRA_OECONF:remove:darwinsdk = "--with-system-readline"
> +
> +# Remove -rpath-link and -rpath
> +LDFLAGS:darwinsdk = "${BUILDSDK_LDFLAGS}"
> +
> +INSANE_SKIP:append:darwin21 = " buildpaths"
> --
> 2.50.1 (Apple Git-155)
>
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#3124):
> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.yoctoproject.org_g_yocto-2Dpatches_message_3124&d=DwIFAg&c=ncDTmphkJTvjIDPh0hpF_4vCHvabgGkICC2epckfdiw&r=AhkbNonVuMIGRfPx_Qj9TsRih1DULJTKUkSGa66m67E&m=Fp2eoTk4Zck92dmwd9nMaE-SHRvw9vw8S8ErdK_olZxHo2hZ8DjEEFQys_fZni3S&s=hj8tOSn4d9fQ908oAmpEbnRkgmin_r0W0NVabMqJSgc&e=
> Mute This Topic:
> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.yoctoproject.org_mt_117366396_7048771&d=DwIFAg&c=ncDTmphkJTvjIDPh0hpF_4vCHvabgGkICC2epckfdiw&r=AhkbNonVuMIGRfPx_Qj9TsRih1DULJTKUkSGa66m67E&m=Fp2eoTk4Zck92dmwd9nMaE-SHRvw9vw8S8ErdK_olZxHo2hZ8DjEEFQys_fZni3S&s=xeJ1pU9u9JWzdF43UkuTGVRK_mS6RIG-x0s5uXn6Wy4&e=
> Group Owner: yocto-patches+owner@lists.yoctoproject.org
> Unsubscribe:
> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.yoctoproject.org_g_yocto-2Dpatches_leave_13184993_7048771_1814342232_xyzzy&d=DwIFAg&c=ncDTmphkJTvjIDPh0hpF_4vCHvabgGkICC2epckfdiw&r=AhkbNonVuMIGRfPx_Qj9TsRih1DULJTKUkSGa66m67E&m=Fp2eoTk4Zck92dmwd9nMaE-SHRvw9vw8S8ErdK_olZxHo2hZ8DjEEFQys_fZni3S&s=rx3_LvbCd61-o8p9w2FT181MqA-v-vky8JEbc8kjyW0&e=
> [ecordonnier@snap.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
>
diff mbox series

Patch

diff --git a/recipes-connectivity/openssl/openssl_%.bbappend b/recipes-connectivity/openssl/openssl_%.bbappend
new file mode 100644
index 0000000..3b0674c
--- /dev/null
+++ b/recipes-connectivity/openssl/openssl_%.bbappend
@@ -0,0 +1,25 @@ 
+
+do_configure:darwin21 () {
+    target="${@'darwin64-arm64-cc' if d.getVar('SDK_ARCH') == 'aarch64' else 'darwin64-x86_64-cc'}"
+
+    useprefix=${prefix}
+    if [ "x$useprefix" = "x" ]; then
+        useprefix=/
+    fi
+    # WARNING: do not set compiler/linker flags (-I/-D etc.) in EXTRA_OECONF, as they will fully replace the
+    # environment variables set by bitbake. Adjust the environment variables instead.
+    PERLEXTERNAL="$(realpath ${S}/external/perl/Text-Template-*/lib)"
+    test -d "$PERLEXTERNAL" || bberror "PERLEXTERNAL '$PERLEXTERNAL' not found!"
+    HASHBANGPERL="/usr/bin/env perl" PERL=perl PERL5LIB="$PERLEXTERNAL" \
+    perl ${S}/Configure ${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS} ${DEPRECATED_CRYPTO_FLAGS} --prefix=$useprefix --openssldir=${libdir}/ssl-3 --libdir=${libdir} $target
+    perl ${B}/configdata.pm --dump
+}
+
+RDEPENDS:remove:${PN}-misc = "perl"
+RDEPENDS:remove:${PN}-ptest = "openssl-bin"
+RDEPENDS:remove:${PN}-ptest = "perl"
+RDEPENDS:remove:${PN}-ptest = "perl-modules"
+RDEPENDS:remove:${PN}-ptest = "bash"
+RDEPENDS:remove:${PN}-ptest = "sed"
+RDEPENDS:remove:${PN}-ptest = "openssl-engines"
+RDEPENDS:remove:${PN}-ptest = "openssl-ossl-module-legacy"
diff --git a/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend b/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
index 170a8c1..d1191e7 100644
--- a/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
+++ b/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
@@ -4,3 +4,6 @@  RDEPENDS:${PN}:darwin21 = "\
     nativesdk-bison \
     nativesdk-sdk-provides-dummy \
     "
+
+RDEPENDS:${PN}:darwin21 += "${@bb.utils.contains('CLANGSDK', '1', 'nativesdk-clang', '', d)}"
+
diff --git a/recipes-core/packagegroups/packagegroup-cross-canadian.bbappend b/recipes-core/packagegroups/packagegroup-cross-canadian.bbappend
index de29f47..4e46eae 100644
--- a/recipes-core/packagegroups/packagegroup-cross-canadian.bbappend
+++ b/recipes-core/packagegroups/packagegroup-cross-canadian.bbappend
@@ -1,9 +1,14 @@ 
 # Use indirection to stop these being expanded prematurely
 BINUTILS = "binutils-cross-canadian-${TRANSLATED_TARGET_ARCH}"
 GCC = "gcc-cross-canadian-${TRANSLATED_TARGET_ARCH}"
+GDB = "gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}"
+CLANG = "clang-cross-canadian-${TRANSLATED_TARGET_ARCH}"
 
 RDEPENDS:${PN}:darwinsdk = "\
     ${@all_multilib_tune_values(d, 'BINUTILS')} \
     ${@all_multilib_tune_values(d, 'GCC')} \
+    ${GDB} \
     meta-environment-${MACHINE} \
     "
+
+RDEPENDS:${PN}:darwinsdk += "${@bb.utils.contains('CLANGSDK', '1', '${CLANGCROSSCANADIANDEPS}', '', d)}"
diff --git a/recipes-devtools/gcc/gcc-cross-canadian_%.bbappend b/recipes-devtools/gcc/gcc-cross-canadian_%.bbappend
index 192ee0d..5a4b8f9 100644
--- a/recipes-devtools/gcc/gcc-cross-canadian_%.bbappend
+++ b/recipes-devtools/gcc/gcc-cross-canadian_%.bbappend
@@ -3,7 +3,7 @@  ELFUTILS:darwinsdk = ""
 
 EXTRA_OECONF:append:darwinsdk = " \
     --with-gmp=${STAGING_EXECPREFIXDIR} \
-    --with-mpft=${STAGING_EXECPREFIXDIR} \
+    --with-mpfr=${STAGING_EXECPREFIXDIR} \
     --with-mpc=${STAGING_EXECPREFIXDIR} \
 "
 
diff --git a/recipes-devtools/gdb/gdb-cross-canadian_%.bbappend b/recipes-devtools/gdb/gdb-cross-canadian_%.bbappend
new file mode 100644
index 0000000..3f69019
--- /dev/null
+++ b/recipes-devtools/gdb/gdb-cross-canadian_%.bbappend
@@ -0,0 +1,19 @@ 
+PACKAGECONFIG:remove = "python"
+PACKAGECONFIG:remove = "debuginfod"
+
+EXTRA_OECONF:append:darwinsdk = " \
+    --with-gmp=${STAGING_EXECPREFIXDIR} \
+    --with-mpfr=${STAGING_EXECPREFIXDIR} \
+    --with-mpc=${STAGING_EXECPREFIXDIR} \
+"
+
+EXTRA_OECONF:remove:darwinsdk = "--disable-gas"
+EXTRA_OECONF:remove:darwinsdk = "--disable-binutils"
+EXTRA_OECONF:remove:darwinsdk = "--disable-ld"
+EXTRA_OECONF:remove:darwinsdk = "--disable-gold"
+EXTRA_OECONF:remove:darwinsdk = "--with-system-readline"
+
+# Remove -rpath-link and -rpath
+LDFLAGS:darwinsdk = "${BUILDSDK_LDFLAGS}"
+
+INSANE_SKIP:append:darwin21 = " buildpaths"