Message ID | 20250520-clang-toolchain-v2-0-db97c2eb3756@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 C6DD9C2D0CD for <webhook@archiver.kernel.org>; Wed, 21 May 2025 06:19:53 +0000 (UTC) Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) by mx.groups.io with SMTP id smtpd.web11.4692.1747808392162719510 for <openembedded-core@lists.openembedded.org>; Tue, 20 May 2025 23:19:52 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=eGG3iidn; spf=pass (domain: gmail.com, ip: 209.85.210.171, mailfrom: raj.khem@gmail.com) Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-742b0840d98so3658226b3a.1 for <openembedded-core@lists.openembedded.org>; Tue, 20 May 2025 23:19:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747808391; x=1748413191; 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=xGN2JmQMJTlTSuLY9pnp9Hfa8TmD9QOIa0W4uLBgF3k=; b=eGG3iidnrw1Mry/SAZ6wyO7MyyMTO7SRU39s1R+flH/zWXL6EZ9nETCs3DU+RpPiB4 1foAnqH18dm74f6RiXlQWjXfSWH/vp4GbEXGRIty1s1y9wH2UWWvMafw0g0NOJ4pSvRr qwQDGlCOKJ8LL9I1kweKwZ2Go0gPaS3j0nAWYxHPUb2+XdaJn7/7pCy9PrDr6LAPGVB/ frlLiwj0ClMSeznPYBCnUh55QJHYShZJcxspNiTVRGA8bUAoyNMhIjoASdRXAFcLv6tl VdqQGLSaE8m4Mtl54510Ow2V5KjY7aIjKOp1GEDiwdeXaSG0xfbxTOMpSshpaDggkxUp vTrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747808391; x=1748413191; 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=xGN2JmQMJTlTSuLY9pnp9Hfa8TmD9QOIa0W4uLBgF3k=; b=Vqk8J9emXHuf4Vi8CLVXtEG4UHi8EyUXdc2/3MqaY4UEJNm9uK5SiosiX4b93AzBr/ tz0w0QNRH/qtbcskhiQVtZaalY6+IQwftKRe7A9QaaPToXHUitM9R+g0dePjfkQKsYx6 SqwqrO4tvG6PGVytfWvaNS357e0ggPjFzmJBWTt+sIlqIri92td2JtfC1qGzNe/wNXLQ REgTutOpxZIezVYyGCTowq/d5D6KkO2gfe43cFrOa6VphH0eJawjmW0vyabt0Yt9dDeH oyMB25n5IVe/gFI/88xHtc+cg2yc7cV8EhE1J6vyWZhGKTGNuJAHcnA0y+Hwcz5JPT0D iFpQ== X-Gm-Message-State: AOJu0YxTIciL/KXThFfAKf9daMTF8KH8HhI/6XXlrDceEgWzhVk9KrYj Pn/Z0CiIIcMaf7GfKDezq+32S7dNeSMNFA08C65CfFpBOXZlNYxDrQX7kxP8NbcP X-Gm-Gg: ASbGncu40KqQo2Iyz6unsHZWTi/9IWfNp+zCKnsfGt1dDR+M2TSVjNLPrVnTAbsPe2Q znCFOT/qb/bbSG1NSGS2KiW7Zf/yEvBsmx3fK7R5Jd4dmq+eex114VWFJG32pioXdHbMLuzJx+Z 29cd9RGhMQvCU/WfO43CAVhuy1WoIdqE6Uls12K7NfCbPfOnvFtE8NPIdgQ5cOyrA1eZYqQrEKy gvn6JHn7tow6L4/ujTawqgR+EgMXC9g0EGoAdv0mzKNkhgqq3fLSRoUUS2vuMPOPbkChT+tEhbO yMUC/aAkTF+t5CVZb2Pa2J4peAPcUr20bP9sa3rmilA= X-Google-Smtp-Source: AGHT+IGZp2RojPdoTctw5pg5htZzxjMXFclOS7QdjB3UErYyw9Zh9Vy7G/ZP/IL3OEC1R8xekJ5Vhg== X-Received: by 2002:a05:6a21:3a89:b0:215:d9fc:382e with SMTP id adf61e73a8af0-2170cc5f59bmr27642635637.13.1747808391036; Tue, 20 May 2025 23:19:51 -0700 (PDT) Received: from apollo.localdomain ([2601:646:8201:fd20::5209]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-742a970954asm8888812b3a.46.2025.05.20.23.19.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 23:19:50 -0700 (PDT) From: Khem Raj <raj.khem@gmail.com> Subject: [PATCH v2 00/28] clang: Add clang C/C++ toolchain Date: Tue, 20 May 2025 23:19:36 -0700 Message-Id: <20250520-clang-toolchain-v2-0-db97c2eb3756@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAHlwLWgC/3WNQQ7CIBREr9L8td8AloquvIfpAhHan1Aw0BBNw 93F7l2+N5mZDbJNZDNcuw2SLZQphgbi0IGZdZgs0rMxCCYkk1yh8c3iGqNvOQV0F600k2dxYgO 01itZR+998T42nimvMX32g8J/9v9W4chQPmw/OGV67eRtWjT5o4kLjLXWL+XyXVKuAAAA 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>; Wed, 21 May 2025 06:19:53 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/216968 |
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> --- Changes in v2: - Move the changed from default-toolchains.inc file into respective recipes - Drop adding libomp as toolchain-clang dependency for rpm, it will be needed when clang is used for rpm, as of now it does not - Fix musl world builds for qemuarm/qemuarm64/qemuriscv64/qemuriscv32 - Link to v1: https://lore.kernel.org/r/20250518-clang-toolchain-v1-0-5be46f8c4af5@gmail.com --- Khem Raj (28): toolchain: Provide abstraction for choosing per-recipe toolchain clang.bbclass: Specify ldso when using usermerge vte: Disable gi data generation when using clang on arm clang: Add compiler-rt to default deps when using clang compiler gnu-efi: Use objcopy from GNU binutils with clang tcf-agent: Fix ranlib call when using llvm-ranlib pulseaudio: Treat -Wunused-command-line-argument as error 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 openssl: Link with libatomic on x86/clang qemu: Link with libatomic on x86/clang bluez: Disable invalid-pp-token warning with clang gcc: Always use GCC toolchain glibc: Always use GCC toolchain grub,grub-efi: Pin to using gcc on aarch64 valgrind: Use gcc to compile on riscv64 syslinux: Pin to using GCC toolchain systemtap: Pin to build with GCC webkitgtk: Use gcc to compile for arm target pseudo: Pin to using GCC compiler rpm: Always use gcc compiler pulseaudio: Pin to use GCC compiler seatd: Disable sign-compare warning as error on clang busybox: Fix build on architectures without SYS_settimeofday systemd-boot: Use gcc on musl/arm perf: Do not treat maybe-uninitialized warnings as errors 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/recipes-bsp/gnu-efi/gnu-efi_4.0.0.bb | 4 ++ meta/recipes-bsp/grub/grub2.inc | 4 ++ meta/recipes-connectivity/bluez5/bluez5.inc | 1 + meta/recipes-connectivity/openssl/openssl_3.5.0.bb | 3 ++ ...ck-for-SYS_settimeofday-before-calling-sy.patch | 52 ++++++++++++++++++++++ meta/recipes-core/busybox/busybox_1.37.0.bb | 1 + meta/recipes-core/glibc/glibc-common.inc | 2 + meta/recipes-core/seatd/seatd_0.9.1.bb | 8 ++++ meta/recipes-core/systemd/systemd-boot_257.5.bb | 8 ++++ meta/recipes-devtools/gcc/gcc-15.1.inc | 2 + meta/recipes-devtools/pseudo/pseudo_git.bb | 7 +++ meta/recipes-devtools/qemu/qemu_10.0.0.bb | 1 + meta/recipes-devtools/rpm/rpm_4.20.0.bb | 4 ++ .../syslinux/syslinux_6.04-pre2.bb | 5 +++ meta/recipes-devtools/tcf-agent/tcf-agent_git.bb | 5 +++ meta/recipes-devtools/valgrind/valgrind_3.25.0.bb | 8 ++++ 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-kernel/perf/perf.bb | 10 +++++ meta/recipes-kernel/systemtap/systemtap_git.bb | 4 ++ meta/recipes-multimedia/pulseaudio/pulseaudio.inc | 8 ++++ meta/recipes-sato/webkit/webkitgtk_2.48.1.bb | 2 + meta/recipes-support/vte/vte_0.78.2.bb | 4 ++ 35 files changed, 216 insertions(+), 9 deletions(-) --- base-commit: e3402fe00ca5602dbcfd151ab3fd4bfb3371f76c change-id: 20250518-clang-toolchain-f9a8a0572306 Best regards,