From patchwork Thu May 1 13:29:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?UmFwaGHDq2wgTcOpbG90dGU=?= X-Patchwork-Id: 2079836 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=patchwork.ozlabs.org) Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4ZpFKX1njzz1yMy for ; Thu, 1 May 2025 23:30:06 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 0A0ED41725; Thu, 1 May 2025 13:30:21 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id dP2LoHIn8mSw; Thu, 1 May 2025 13:30:20 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.166.142; helo=lists1.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org EDCC441A6B Received: from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142]) by smtp4.osuosl.org (Postfix) with ESMTP id EDCC441A6B; Thu, 1 May 2025 13:30:19 +0000 (UTC) X-Original-To: buildroot@buildroot.org Delivered-To: buildroot@buildroot.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138]) by lists1.osuosl.org (Postfix) with ESMTP id 5483622D for ; Thu, 1 May 2025 13:30:18 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 4633E83DC2 for ; Thu, 1 May 2025 13:30:18 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id xqT3qkff2-PT for ; Thu, 1 May 2025 13:30:17 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2a00:1450:4864:20::32f; helo=mail-wm1-x32f.google.com; envelope-from=raphael.melotte@essensium.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp1.osuosl.org 53EDB83DC1 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 53EDB83DC1 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by smtp1.osuosl.org (Postfix) with ESMTPS id 53EDB83DC1 for ; Thu, 1 May 2025 13:30:15 +0000 (UTC) Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-43d0618746bso5101875e9.2 for ; Thu, 01 May 2025 06:30:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746106214; x=1746711014; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oHaqgjfYPZGqGyNZaOo3UZ8ehWLOD24mjYUJFTHap0k=; b=Zg/HrEl/2NFwQ/PvpdcTmTaWh3cfClvtqhkHbv1bAKygM9ix6AIOsPF+TiHZMYdW/j 1OGdTwPHmJc8vXCIFbocEQorqTBF4fqaPY6vdJzWM31XZF80HboNDeTvBnTz8NaTT4cK +vxKum5PiV+9dM7SmcwVu52dtIc9uX2EwBg24BipJYgL6EGRFUZ+aLWNW6JHcLpnD18z NrEa+IQj3wkw7mWTQn3Umxot830bZCW8lgKxViqZK0qH3PUbD0t25dgxDD6c3vxAgx2U OHYf0jSAQ7kN/jUmyp+V1hqbtSWY+Wke/Ur827rqOCrBN6lLmHpMa84AtF4dELyfkHA4 8+lA== X-Gm-Message-State: AOJu0YwdjHT5uNbhass6igAjJK+BvUmq4Ehc82x9zVSJPe5ImvqtKdCa VnLkqVAU/TIf5JBr4NTDYZRbIaBCRConr5uQmr5FRlO9orKb+vAp4GUswCReBOau9/3x6txj+7c wxJU= X-Gm-Gg: ASbGncu0oJTlDi/d52yfkOMzOOHgI91GeNcKObMp+Y6Al5qcHe6u+UAfqu+OLjkhgeO drLGDmLBH5FwOHtt36ETCW0sEoJSccw3WLF/JDkQMXKxb7OWXkhp7Gh1DUf7SHw0GnwDCiNNtwt 8B4WdDVhxn1y+kAzuZT7ut9AY3StdknEnhLTX6dDxfUPnT+lvyVZ/tHz3kIuoG8D+Ct7gDwwGZL eTUyATcMO4Z614EgfcOPtWEUwe81W3lIlwdJaFG3SgfVZo7LRw6Hx96If7BqVMvN9R+MEjrkMnZ pkLA5fz3u+2SNPo6VhtlMRTDiSlnj9LaTlyma1qGi8Hp96imx7Iq/tjr7iipxSXjUpemXvdVNEx FT6O7ur2TvxsWoI/HCgoeSCr0wUM= X-Google-Smtp-Source: AGHT+IG13MKd73riwsZ5EMGP8q4xWvnhNmRRsfOJ0twSvDLW1y0fSv+RDdCEYXxgYsto66nu3tPO6A== X-Received: by 2002:a05:600c:3d08:b0:43d:46de:b0eb with SMTP id 5b1f17b1804b1-441b64f65e9mr24770825e9.12.1746106213630; Thu, 01 May 2025 06:30:13 -0700 (PDT) Received: from mind2.local.ess-mail.com (ip-94-140-185-241.reverse.destiny.be. [94.140.185.241]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-441b2af2922sm57867655e9.17.2025.05.01.06.30.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 May 2025 06:30:12 -0700 (PDT) To: buildroot@buildroot.org Cc: =?utf-8?b?UmFwaGHDq2wgTcOpbG90dGU=?= , Valentin Korenblit , Romain Naour , Joseph Kogut , Daniel Lang Date: Thu, 1 May 2025 13:29:55 +0000 Message-Id: <20250501133002.1408454-1-raphael.melotte@mind.be> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250407103959.2361659-2-raphael.melotte@mind.be> References: <20250407103959.2361659-2-raphael.melotte@mind.be> MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mind.be; s=google; t=1746106214; x=1746711014; darn=buildroot.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oHaqgjfYPZGqGyNZaOo3UZ8ehWLOD24mjYUJFTHap0k=; b=MhpvoqyTVJWQ4FaWl6XbeohEoixYDE92toOGHMkz6c2025wJCTI01E5zCERvH9wt1a B71FKtm500t7VX0PVhv4YPF6xwPQcjQYbbSEoSOZ9+lCN1/HfIH1KEveWD4ECJBs7vAP VMhNOp1Jp+ndwb8B+WlDro1eSE9VMVvD9HtqzqofaeNBkaqphLzujLXOnrARJwzVGYTs 5XKL6w2SrifkL7NF8F6redfKp2YBXFQaCm+6NoPGDMaUE5gDVWe69SMrj0uDcdytFJUv qEpkJLrndGHbUybvWGOBYxoBA9li+ncy/1AgArMAqxjAVvRupI4RxxtyPXitmf+7F+S8 ZVIg== X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; dmarc=pass (p=quarantine dis=none) header.from=mind.be X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; dkim=pass (2048-bit key, unprotected) header.d=mind.be header.i=@mind.be header.a=rsa-sha256 header.s=google header.b=MhpvoqyT Subject: [Buildroot] [PATCH v2 1/3] package/llvm-project: add support for clang python bindings X-BeenThere: buildroot@buildroot.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: =?utf-8?q?Rapha=C3=ABl_M=C3=A9lotte_via_buildroot?= From: =?utf-8?b?UmFwaGHDq2wgTcOpbG90dGU=?= Reply-To: =?utf-8?b?UmFwaGHDq2wgTcOpbG90dGU=?= Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" Add two upstream patches that were required for building and enable the bindings for our python version. It should be noted that because the python bindings have wrong default include dirs, they are useless if the includes are not provided externally. Signed-off-by: Raphaël Mélotte Reviewed-by: Daniel Lang Tested-by: El Mehdi YOUNES --- Changes v1 -> v2: - Remove BR2_PACKAGE_HOST_CLANG_PYTHON_BINDINGS (use BR2_PACKAGE_HOST_PYTHON3). --- ...sic-against-libatomic-when-necessary.patch | 48 ++++++++++ package/llvm-project/clang/clang.mk | 5 + ...LIB-variable-for-convenient-linking-.patch | 91 +++++++++++++++++++ 3 files changed, 144 insertions(+) create mode 100644 package/llvm-project/clang/0001-Link-libclangBasic-against-libatomic-when-necessary.patch create mode 100644 package/llvm-project/llvm/0001-Set-LLVM_ATOMIC_LIB-variable-for-convenient-linking-.patch diff --git a/package/llvm-project/clang/0001-Link-libclangBasic-against-libatomic-when-necessary.patch b/package/llvm-project/clang/0001-Link-libclangBasic-against-libatomic-when-necessary.patch new file mode 100644 index 0000000000..d3068ea28b --- /dev/null +++ b/package/llvm-project/clang/0001-Link-libclangBasic-against-libatomic-when-necessary.patch @@ -0,0 +1,48 @@ +From 20132d8eaa68a6c53e152718beda1dc0f4c9ff6c Mon Sep 17 00:00:00 2001 +From: Sam James +Date: Wed, 19 Oct 2022 20:12:10 +0100 +Subject: [PATCH] Link libclangBasic against libatomic when necessary. + +This is necessary at least on PPC32. + +Depends on D136280. + +Bug: https://bugs.gentoo.org/874024 +Thanks-to: Arfrever Frehtes Taifersar Arahesis +Tested-by: erhard_f@mailbox.org + +Differential Revision: https://reviews.llvm.org/D136282 +Upstream: https://github.com/llvm/llvm-project/commit/20132d8eaa68a6c53e152718beda1dc0f4c9ff6c +Signed-off-by: Raphaël Mélotte +--- + CMakeLists.txt | 1 + + lib/Basic/CMakeLists.txt | 4 ++++ + 2 files changed, 5 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2ca81e506338..236e6fbaca28 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -63,6 +63,7 @@ if(CLANG_BUILT_STANDALONE) + include(TableGen) + include(HandleLLVMOptions) + include(VersionFromVCS) ++ include(CheckAtomic) + include(GetErrcMessages) + include(LLVMDistributionSupport) + +diff --git a/lib/Basic/CMakeLists.txt b//lib/Basic/CMakeLists.txt +index 5d197f59ac4f..f0f3839a7e2c 100644 +--- a/lib/Basic/CMakeLists.txt ++++ b/lib/Basic/CMakeLists.txt +@@ -111,3 +111,7 @@ add_clang_library(clangBasic + omp_gen + ) + ++target_link_libraries(clangBasic ++ PRIVATE ++ ${LLVM_ATOMIC_LIB} ++) +-- +2.45.2 + diff --git a/package/llvm-project/clang/clang.mk b/package/llvm-project/clang/clang.mk index 0bafd6461b..342f79ed24 100644 --- a/package/llvm-project/clang/clang.mk +++ b/package/llvm-project/clang/clang.mk @@ -105,6 +105,11 @@ ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y) HOST_CLANG_CONF_OPTS += -DGCC_INSTALL_PREFIX:PATH=`realpath --relative-to=$(HOST_DIR)/bin/ $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)` endif +ifeq ($(BR2_PACKAGE_HOST_PYTHON3),y) +HOST_CLANG_DEPENDENCIES += host-python3 +HOST_CLANG_CONF_OPTS += -DCLANG_PYTHON_BINDINGS_VERSIONS=$(PYTHON3_VERSION_MAJOR) +endif + define HOST_CLANG_INSTALL_WRAPPER_AND_SIMPLE_SYMLINKS $(Q)cd $(HOST_DIR)/bin; \ rm -f clang-$(CLANG_VERSION_MAJOR).br_real; \ diff --git a/package/llvm-project/llvm/0001-Set-LLVM_ATOMIC_LIB-variable-for-convenient-linking-.patch b/package/llvm-project/llvm/0001-Set-LLVM_ATOMIC_LIB-variable-for-convenient-linking-.patch new file mode 100644 index 0000000000..07fca7710e --- /dev/null +++ b/package/llvm-project/llvm/0001-Set-LLVM_ATOMIC_LIB-variable-for-convenient-linking-.patch @@ -0,0 +1,91 @@ +From fa981b541365190ae646d2dce575706cd0626cf7 Mon Sep 17 00:00:00 2001 +From: Sam James +Date: Wed, 19 Oct 2022 19:50:20 +0100 +Subject: [PATCH] Set LLVM_ATOMIC_LIB variable for convenient linking against + libatomic + +* Set LLVM_ATOMIC_LIB to keep track of when we need to link against libatomic. +* Add detection of mold linker which is required for this. +* Use --as-needed when linking against libatomic as a bonus. On some platforms, + libatomic may be required only sometimes. + +Bug: https://bugs.gentoo.org/832675 +Thanks-to: Arfrever Frehtes Taifersar Arahesis +Tested-by: erhard_f@mailbox.org + +Differential Revision: https://reviews.llvm.org/D136280 +Upstream: https://github.com/llvm/llvm-project/commit/fa981b541365190ae646d2dce575706cd0626cf7 +Signed-off-by: Raphaël Mélotte +--- + cmake/modules/AddLLVM.cmake | 1 + + cmake/modules/CheckAtomic.cmake | 13 +++++++++++++ + lib/Support/CMakeLists.txt | 4 +--- + tools/dsymutil/CMakeLists.txt | 4 +--- + 4 files changed, 16 insertions(+), 6 deletions(-) + +diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake +index 30ac0040e565..428a22422e28 100644 +--- a/cmake/modules/AddLLVM.cmake ++++ b/cmake/modules/AddLLVM.cmake +@@ -219,6 +219,7 @@ if (NOT DEFINED LLVM_LINKER_DETECTED AND NOT WIN32) + else() + if("${stdout}" MATCHES "^mold") + set(LLVM_LINKER_DETECTED YES CACHE INTERNAL "") ++ set(LLVM_LINKER_IS_MOLD YES CACHE INTERNAL "") + message(STATUS "Linker detection: mold") + elseif("${stdout}" MATCHES "GNU gold") + set(LLVM_LINKER_DETECTED YES CACHE INTERNAL "") +diff --git a/cmake/modules/CheckAtomic.cmake b/cmake/modules/CheckAtomic.cmake +index 3c5ba72993a3..f11cadf39ff6 100644 +--- a/cmake/modules/CheckAtomic.cmake ++++ b/cmake/modules/CheckAtomic.cmake +@@ -82,6 +82,19 @@ elseif(LLVM_COMPILER_IS_GCC_COMPATIBLE OR CMAKE_CXX_COMPILER_ID MATCHES "XL") + endif() + endif() + ++# Set variable LLVM_ATOMIC_LIB specifying flags for linking against libatomic. ++if(HAVE_CXX_ATOMICS_WITH_LIB OR HAVE_CXX_ATOMICS64_WITH_LIB) ++ # Use options --push-state, --as-needed and --pop-state if linker is known to support them. ++ # Use single option -Wl of compiler driver to avoid incorrect re-ordering of options by CMake. ++ if(LLVM_LINKER_IS_GNULD OR LLVM_LINKER_IS_GOLD OR LLVM_LINKER_IS_LLD OR LLVM_LINKER_IS_MOLD) ++ set(LLVM_ATOMIC_LIB "-Wl,--push-state,--as-needed,-latomic,--pop-state") ++ else() ++ set(LLVM_ATOMIC_LIB "-latomic") ++ endif() ++else() ++ set(LLVM_ATOMIC_LIB) ++endif() ++ + ## TODO: This define is only used for the legacy atomic operations in + ## llvm's Atomic.h, which should be replaced. Other code simply + ## assumes C++11 works. +diff --git a/lib/Support/CMakeLists.txt b/lib/Support/CMakeLists.txt +index bc19b5be2140..023d50793eff 100644 +--- a/lib/Support/CMakeLists.txt ++++ b/lib/Support/CMakeLists.txt +@@ -59,9 +59,7 @@ elseif( CMAKE_HOST_UNIX ) + if( LLVM_ENABLE_TERMINFO ) + set(imported_libs ${imported_libs} Terminfo::terminfo) + endif() +- if( LLVM_ENABLE_THREADS AND (HAVE_LIBATOMIC OR HAVE_CXX_LIBATOMICS64) ) +- set(system_libs ${system_libs} atomic) +- endif() ++ set(system_libs ${system_libs} ${LLVM_ATOMIC_LIB}) + set(system_libs ${system_libs} ${LLVM_PTHREAD_LIB}) + if( UNIX AND NOT (BEOS OR HAIKU) ) + set(system_libs ${system_libs} m) +diff --git a/tools/dsymutil/CMakeLists.txt b/tools/dsymutil/CMakeLists.txt +index a255c1c5daf5..38028cd3d80a 100644 +--- a/tools/dsymutil/CMakeLists.txt ++++ b/tools/dsymutil/CMakeLists.txt +@@ -40,6 +40,4 @@ if(APPLE) + target_link_libraries(dsymutil PRIVATE "-framework CoreFoundation") + endif(APPLE) + +-if(HAVE_CXX_ATOMICS_WITH_LIB OR HAVE_CXX_ATOMICS64_WITH_LIB) +- target_link_libraries(dsymutil PRIVATE atomic) +-endif() ++target_link_libraries(dsymutil PRIVATE ${LLVM_ATOMIC_LIB}) +-- +2.34.1 +