Message ID | 20250518-clang-toolchain-v1-0-5be46f8c4af5@gmail.com |
---|---|
Headers | show
Return-Path: <raj.khem@gmail.com> X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3CABCC3ABC9 for <webhook@archiver.kernel.org>; Sun, 18 May 2025 21:30:58 +0000 (UTC) Received: from mail-pg1-f176.google.com (mail-pg1-f176.google.com [209.85.215.176]) by mx.groups.io with SMTP id smtpd.web11.37974.1747603851087401293 for <openembedded-core@lists.openembedded.org>; Sun, 18 May 2025 14:30:51 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=Yd6JDF+k; spf=pass (domain: gmail.com, ip: 209.85.215.176, mailfrom: raj.khem@gmail.com) Received: by mail-pg1-f176.google.com with SMTP id 41be03b00d2f7-af6a315b491so3226792a12.1 for <openembedded-core@lists.openembedded.org>; Sun, 18 May 2025 14:30:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747603850; x=1748208650; darn=lists.openembedded.org; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:from:to:cc:subject:date:message-id:reply-to; bh=QzltuIBg7EHwpUdPioZEpKWJcIN2rLxUu6ik7JOYTXA=; b=Yd6JDF+ks4MRn0NSDRnBSELa/bHEUQPEH1uZNKSggrPVpl1jHmV1bDSjX1UCZwuMko YIVhT1O25ZvsAdxDm5HrV6dwqqugSYEZY92Ogdp2r/6dKvYo3Iq1NXf27twbnhWB4HM0 7V7f8OWYER4865bxHPI50PD5dqRzbRNrmBGnXaOeJDD1pCGoJTbCNAZQg+UjR3l6uqXu u68fj3Zx7BDUuI7zJryWaV6u1Zn+o6m5t/0Cs8F78Vd6TlLX4TozCpnvqquk2e0WyTyE ah15swaMNjxojp/QyvbhASrXk0ImBjaXlNoI+nLAP0dCWuX0YVrNI5CYubFSk7IFX/am u79Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747603850; x=1748208650; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=QzltuIBg7EHwpUdPioZEpKWJcIN2rLxUu6ik7JOYTXA=; b=ZwuIIX1rr6Uc/nBCo6eyv3ZbbCSS1GNNFw0vIdbb8HnbfC7c/4X/l1GCdN7riPLZfb VmdPSMGfl288/br4y9WKE6Hboj8CpaOAqF3ZyNEjPJiUUrUOFD81BAk8VhQypFwAg1x3 XA5KrmzHZMq8WF0/IyzzPr69kpCqF0OBKVgkDkBogfSdEOPzSsVR5MmjpXBb1HZUWDeA LjYQGxrFSIHM+Og3eRNZ6CatU1c2j3ejFE2+DosStaqgBLteX9pt0a9KbRynY7ocIl4y OgpUxfM0nUIVJQ5D3UiTMq+au5TSvXhx8hP3Ckv+OSx4cHfISUHRxAiZMV4jjOa1J6RF sMpw== X-Gm-Message-State: AOJu0Yw5Woe04Rlsn6rR+A+pZqHuaqyXYIICBJifwWOyMocrD3CDdiVZ DZ4d+ppWHJhFxUFQ4pcfMaljyhGqoj318QkJE1jzuBTQt1iXN6QGNCttE9F4w50x X-Gm-Gg: ASbGnctyIX+2t5pS4657uj3A3nXTzljDpWKnPX8deLNk0o/PzOG6kuFXNVS+jZ5dGkq g1oC1gUK8CxrS6BSiMEwTUKFCnWDJPadtva0e39qlb8kppMaScH3SXXXl7e6+vtllZaqG5XjQdT SzcgNiIuXd5bSnBQQFoPM1rPeSPR7sR+ihHD+IV4D/f6l5GyKdIkxq+WnV6M39dchA3TvhzrYa0 fTrh5FQ5lAaQ5UJNwzfQ26z5+Z5RFy7pidbSibI5aacLWI4KIoMVNWoszh4u+lgya1y/oI0usUc H+LnQYdRGKAzHETgPjUiJJqyTrcu4s2RW12Gx1O/Gc0= X-Google-Smtp-Source: AGHT+IFQA2VEodiR9oKBd1GZSCh8CClknq7K7J8HHpnX3Zd61wePHzDCGdXKW/5i95lW03f97JLUbQ== X-Received: by 2002:a05:6a21:31c8:b0:20d:df67:4830 with SMTP id adf61e73a8af0-216f85ac739mr14644948637.0.1747603849860; Sun, 18 May 2025 14:30:49 -0700 (PDT) Received: from apollo.localdomain ([2601:646:8201:fd20::5209]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b26eb081aa2sm4976849a12.48.2025.05.18.14.30.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 18 May 2025 14:30:49 -0700 (PDT) From: Khem Raj <raj.khem@gmail.com> Subject: [PATCH 00/21] clang: Add clang C/C++ toolchain Date: Sun, 18 May 2025 14:30:35 -0700 Message-Id: <20250518-clang-toolchain-v1-0-5be46f8c4af5@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAHtRKmgC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE vPSU3UzU4B8JSMDI1MDU0ML3eQcoKhuSX5+DlA+M083zTLRItHA1NzI2MBMCairoCg1LbMCbGJ 0bG0tAHYU/JBhAAAA X-Change-ID: 20250518-clang-toolchain-f9a8a0572306 To: openembedded-core@lists.openembedded.org Cc: Khem Raj <raj.khem@gmail.com> X-Mailer: b4 0.14.2 List-Id: <openembedded-core.lists.openembedded.org> X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for <openembedded-core@lists.openembedded.org>; Sun, 18 May 2025 21:30:58 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/216784 |
Series |
clang: Add clang C/C++ toolchain
|
expand
|
Clang also provided a full fledged C/C++ cross compiler which is capable of building any C/C++ components. A mechanism is added to select the toolchain using TOOLCHAIN = "clang" in config metadata. This will also add an entry into OVERRIDES 'toolchain-<COMPILER>', e.g. toolchain-clang which can be used to define clang-specific aspects in metadata. All packages are not full buildable with clang, e.g. glibc which rely on some extentions which are only available in gcc. Such exceptions are made in config metadata using a global file called meta/conf/distro/include/default-toolchain.inc This file can be added in every layer to define these details themselves bitbake will include all such files auotmaticlally. Defaults are kept as it is, nothing is expected to change if its not enabled World builds for qemuarm/qemuarm64/qemuppc/qemumips/qemux86_64 are successful with some exceptions vulkan-samples - qemuarm64/qemux86-64 bluez - qemuppc compiler-rt-sanitizers - qemumips Signed-off-by: Khem Raj <raj.khem@gmail.com> --- Khem Raj (21): toolchain: Provide abstraction for choosing per-recipe toolchain default-toolchains.inc: Add a global file to pin TOOLCHAIN variable clang.bbclass: Specify ldso when using usermerge pulseaudio: Pin to use GCC compiler vte: Disable gi data generation when using clang on arm rpm: Add openmp dependency when using clang clang: Add compiler-rt to default deps when using clang compiler rpm: Always use gcc compiler pseudo: Pin to using GCC compiler webkitgtk: Use gcc to compile for arm target gnu-efi: Use objcopy from GNU binutils with clang tcf-agent: Fix ranlib call when using llvm-ranlib systemtap: Pin to build with GCC valgrind: Use gcc to compile on riscv64 pulseaudio: Treat -Wunused-command-line-argument as error syslinux: Pin to using GCC toolchain libjpeg-turbo: Fix build on mips/clang pixman: Fix build with mips/clang systemd-boot: Remove -mfpmath=sse option from cflags vulkan-samples: Disable overriding-option as error grub,grub-efi: Pin to using gcc on aarch64 meta/classes-global/base.bbclass | 5 ++ meta/classes-recipe/cross-canadian.bbclass | 2 + meta/classes-recipe/cross.bbclass | 2 + meta/classes-recipe/crosssdk.bbclass | 2 + meta/classes-recipe/native.bbclass | 2 + meta/classes-recipe/nativesdk.bbclass | 2 + meta/classes/clang-native.bbclass | 28 +++++++++++ .../toolchain/clang.inc => classes/clang.bbclass} | 17 +++++-- .../build-gcc.inc => classes/gcc-native.bbclass} | 1 - .../toolchain/gcc.inc => classes/gcc.bbclass} | 1 + meta/conf/bitbake.conf | 7 ++- meta/conf/distro/defaultsetup.conf | 1 + meta/conf/distro/include/default-toolchains.inc | 55 ++++++++++++++++++++++ meta/recipes-bsp/gnu-efi/gnu-efi_4.0.0.bb | 4 ++ meta/recipes-core/systemd/systemd-boot_257.5.bb | 5 ++ meta/recipes-devtools/rpm/rpm_4.20.0.bb | 1 + meta/recipes-devtools/tcf-agent/tcf-agent_git.bb | 5 ++ meta/recipes-graphics/jpeg/libjpeg-turbo_3.1.0.bb | 6 +++ meta/recipes-graphics/vulkan/vulkan-samples_git.bb | 4 ++ meta/recipes-graphics/xorg-lib/pixman_0.46.0.bb | 3 ++ meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 3 ++ meta/recipes-support/vte/vte_0.78.2.bb | 4 ++ 22 files changed, 151 insertions(+), 9 deletions(-) --- base-commit: e3d24e5cd8eee5d0d232abdfef33cacf0ad96787 change-id: 20250518-clang-toolchain-f9a8a0572306 Best regards,