From acc6994c3e389e0e4851d549fd9ada564340a714 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 15 Sep 2022 07:39:11 -0700 Subject: clang: Upgrade to latest on release/15.x Drop objdump patch and git suffix patch as they are applied upstream brings in these changes * 29d395a1b7a8 [llvm-objdump] Change printSymbolVersionDependency to use ELFFile API * 4936d7ce4852 [llvm-objdump][test] Add verneed-invalid.test * 99882208e234 [compiler-rt] Handle non-canonical triples with new runtime lib layout * 8b75172a754e (origin/release/15.x) [NFC] Fix exception in version-check.py script * 3637f345d2ab Bump version to 15.0.1 * c0141f3c300f Downgrade implicit int and implicit function declaration to warning only * 6fe69891d15c [MachO] Don't fold compact unwind entries with LSDA * a5ae700c67ec [MachO] Fix dead-stripping __eh_frame * c51a59d8a947 [libc++][format] Updates feature-test macros. * 92e7ef99303f [LLD][COFF] Fix writing a map file when range extension thunks are inserted * c643956d69b1 [mlir] Fix building CRunnerUtils on OpenBSD with 15.x * 1a5c5e0f67be [DwarfEhPrepare] Assign dummy debug location for inserted _Unwind_Resume calls (PR57469) * 3a08ad21ce89 [Clang] Fix crash in coverage of if consteval. Signed-off-by: Khem Raj --- conf/layer.conf | 2 +- recipes-devtools/clang/clang.inc | 4 +- ...ind-libunwind-headers-when-LIBCXXABI_LIBU.patch | 2 +- ...p-Change-printSymbolVersionDependency-to-.patch | 157 --------------------- ...er-rt-support-a-new-embedded-linux-target.patch | 2 +- ...-Simplify-cross-compilation.-Don-t-use-na.patch | 2 +- ...LibraryInfo-Undefine-libc-functions-if-th.patch | 2 +- ...allow-env-override-of-exe-and-libdir-path.patch | 2 +- ...-clang-driver-Check-sysroot-for-ldso-path.patch | 2 +- ...iver-tools.cpp-Add-lssp_nonshared-on-musl.patch | 2 +- .../0008-clang-Prepend-trailing-to-sysroot.patch | 2 +- ...inside-the-target-sysroot-for-compiler-ru.patch | 2 +- ...ang-Define-releative-gcc-installation-dir.patch | 2 +- ...pthread-and-ldl-along-with-lunwind-for-st.patch | 2 +- ..._EXECUTABLE-when-cross-compiling-for-nati.patch | 2 +- .../0013-Check-for-atomic-double-intrinsics.patch | 2 +- ...compiler-runtime-library-to-link-step-for.patch | 2 +- ...cmake-Fix-configure-for-packages-using-fi.patch | 2 +- ...esource-dir-location-for-cross-toolchains.patch | 2 +- ...r-Add-dyld-prefix-when-checking-sysroot-f.patch | 2 +- .../0018-clang-Use-python3-in-python-scripts.patch | 2 +- ...4-set-Yocto-based-GCC-install-search-path.patch | 2 +- ...-llvm-Do-not-use-find_library-for-ncurses.patch | 2 +- ...-anchor-for-adding-OE-distro-vendor-names.patch | 2 +- ...-Do-not-use-backtrace-APIs-on-non-glibc-l.patch | 2 +- ...86-triple-for-non-debian-multiarch-linux-.patch | 2 +- ...-Link-scudo-with-SANITIZER_CXX_ABI_LIBRAR.patch | 2 +- ...0025-libunwind-Added-unw_backtrace-method.patch | 2 +- ...git-suffix-from-various-version-variables.patch | 26 ---- ...-Do-not-use-install-relative-libc-headers.patch | 32 +++++ ...-Do-not-use-install-relative-libc-headers.patch | 32 ----- ...ow-driver-finds-GCC-installation-path-on-.patch | 97 +++++++++++++ .../0028-Fix-lib-paths-for-OpenEmbedded-Host.patch | 79 +++++++++++ ...ow-driver-finds-GCC-installation-path-on-.patch | 97 ------------- ...library-search-path-for-OpenEmbedded-Host.patch | 84 +++++++++++ .../0029-Fix-lib-paths-for-OpenEmbedded-Host.patch | 79 ----------- ...library-search-path-for-OpenEmbedded-Host.patch | 84 ----------- .../0030-lldb-Link-with-libatomic-on-x86.patch | 33 +++++ ...de-openembedded-distributions-from-settin.patch | 35 +++++ .../0031-lldb-Link-with-libatomic-on-x86.patch | 33 ----- ...de-openembedded-distributions-from-settin.patch | 35 ----- ...032-compiler-rt-Enable-__int128-for-ppc32.patch | 73 ++++++++++ ...033-compiler-rt-Enable-__int128-for-ppc32.patch | 73 ---------- ...-Do-not-use-cmake-infra-to-detect-libzstd.patch | 44 ++++++ ...-compiler-rt-Fix-stat-struct-s-size-for-O.patch | 32 +++++ ...-Do-not-use-cmake-infra-to-detect-libzstd.patch | 44 ------ ...-compiler-rt-Fix-stat-struct-s-size-for-O.patch | 32 ----- recipes-devtools/clang/common.inc | 20 ++- 48 files changed, 546 insertions(+), 731 deletions(-) delete mode 100644 recipes-devtools/clang/clang/0001-llvm-objdump-Change-printSymbolVersionDependency-to-.patch delete mode 100644 recipes-devtools/clang/clang/0026-Drop-the-git-suffix-from-various-version-variables.patch create mode 100644 recipes-devtools/clang/clang/0026-clang-Do-not-use-install-relative-libc-headers.patch delete mode 100644 recipes-devtools/clang/clang/0027-clang-Do-not-use-install-relative-libc-headers.patch create mode 100644 recipes-devtools/clang/clang/0027-clang-Fix-how-driver-finds-GCC-installation-path-on-.patch create mode 100644 recipes-devtools/clang/clang/0028-Fix-lib-paths-for-OpenEmbedded-Host.patch delete mode 100644 recipes-devtools/clang/clang/0028-clang-Fix-how-driver-finds-GCC-installation-path-on-.patch create mode 100644 recipes-devtools/clang/clang/0029-Correct-library-search-path-for-OpenEmbedded-Host.patch delete mode 100644 recipes-devtools/clang/clang/0029-Fix-lib-paths-for-OpenEmbedded-Host.patch delete mode 100644 recipes-devtools/clang/clang/0030-Correct-library-search-path-for-OpenEmbedded-Host.patch create mode 100644 recipes-devtools/clang/clang/0030-lldb-Link-with-libatomic-on-x86.patch create mode 100644 recipes-devtools/clang/clang/0031-clang-exclude-openembedded-distributions-from-settin.patch delete mode 100644 recipes-devtools/clang/clang/0031-lldb-Link-with-libatomic-on-x86.patch delete mode 100644 recipes-devtools/clang/clang/0032-clang-exclude-openembedded-distributions-from-settin.patch create mode 100644 recipes-devtools/clang/clang/0032-compiler-rt-Enable-__int128-for-ppc32.patch delete mode 100644 recipes-devtools/clang/clang/0033-compiler-rt-Enable-__int128-for-ppc32.patch create mode 100644 recipes-devtools/clang/clang/0033-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch create mode 100644 recipes-devtools/clang/clang/0034-Revert-MIPS-compiler-rt-Fix-stat-struct-s-size-for-O.patch delete mode 100644 recipes-devtools/clang/clang/0034-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch delete mode 100644 recipes-devtools/clang/clang/0035-Revert-MIPS-compiler-rt-Fix-stat-struct-s-size-for-O.patch diff --git a/conf/layer.conf b/conf/layer.conf index bcd7abd..4e83cc1 100644 --- a/conf/layer.conf +++ b/conf/layer.conf @@ -31,7 +31,7 @@ INHERIT += "clang" # Do not include clang in SDK unless user wants to CLANGSDK ??= "0" -LLVMVERSION = "15.0.0" +LLVMVERSION = "15.0.1" require conf/nonclangable.conf require conf/nonscanable.conf diff --git a/recipes-devtools/clang/clang.inc b/recipes-devtools/clang/clang.inc index d431e72..6bed7ba 100644 --- a/recipes-devtools/clang/clang.inc +++ b/recipes-devtools/clang/clang.inc @@ -6,9 +6,9 @@ LLVM_GIT_PROTOCOL ?= "https" MAJOR_VER = "15" MINOR_VER = "0" -PATCH_VER = "0" +PATCH_VER = "1" -SRCREV ?= "1c73596d345481de957e5ccc0bedf1fb9d9f643a" +SRCREV ?= "29d395a1b7a8176abb1d6278f7df98301fbe7744" PV = "${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}" BRANCH = "release/15.x" diff --git a/recipes-devtools/clang/clang/0001-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch b/recipes-devtools/clang/clang/0001-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch index 33e53ca..5f64434 100644 --- a/recipes-devtools/clang/clang/0001-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch +++ b/recipes-devtools/clang/clang/0001-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch @@ -1,4 +1,4 @@ -From a597109434ba7ddc7750fac0b677f89a5f65fb86 Mon Sep 17 00:00:00 2001 +From 1c13b5111ba4d3d95a6f8aff712d3e12533f61eb Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 27 Aug 2017 10:37:49 -0700 Subject: [PATCH] libcxxabi: Find libunwind headers when diff --git a/recipes-devtools/clang/clang/0001-llvm-objdump-Change-printSymbolVersionDependency-to-.patch b/recipes-devtools/clang/clang/0001-llvm-objdump-Change-printSymbolVersionDependency-to-.patch deleted file mode 100644 index 6bcc951..0000000 --- a/recipes-devtools/clang/clang/0001-llvm-objdump-Change-printSymbolVersionDependency-to-.patch +++ /dev/null @@ -1,157 +0,0 @@ -From 1a4646b30f627ef92c1de6cd65f6d0cc87b0ef11 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 13 Sep 2022 00:24:10 -0700 -Subject: [PATCH] [llvm-objdump] Change printSymbolVersionDependency to use - ELFFile API - -When .gnu.version_r is empty (allowed by readelf but warned by objdump), -llvm-objdump -p may decode the next section as .gnu.version_r and may crash due -to out-of-bounds C string reference. ELFFile::getVersionDependencies -handles 0-entry .gnu.version_r gracefully. Just use it. - -Fix https://github.com/llvm/llvm-project/issues/57707 - -Upstream-Status: Submitted [https://reviews.llvm.org/D133751] -Signed-off-by: Khem Raj ---- - llvm/include/llvm/Object/ELF.h | 2 +- - .../llvm-objdump/ELF/verneed-invalid.test | 24 ++++++++++++ - llvm/test/tools/llvm-objdump/ELF/verneed.test | 20 ++++++++++ - llvm/tools/llvm-objdump/ELFDump.cpp | 39 ++++++++++--------- - 4 files changed, 65 insertions(+), 20 deletions(-) - create mode 100644 llvm/test/tools/llvm-objdump/ELF/verneed-invalid.test - -diff --git a/llvm/include/llvm/Object/ELF.h b/llvm/include/llvm/Object/ELF.h -index 16c9a1461f8d..8b8a574be090 100644 ---- a/llvm/include/llvm/Object/ELF.h -+++ b/llvm/include/llvm/Object/ELF.h -@@ -1038,7 +1038,7 @@ ELFFile::getVersionDependencies(const Elf_Shdr &Sec, - VN.Offset = VerneedBuf - Start; - - if (Verneed->vn_file < StrTab.size()) -- VN.File = std::string(StrTab.drop_front(Verneed->vn_file)); -+ VN.File = std::string(StrTab.data() + Verneed->vn_file); - else - VN.File = ("vn_file) + ">").str(); - -diff --git a/llvm/test/tools/llvm-objdump/ELF/verneed-invalid.test b/llvm/test/tools/llvm-objdump/ELF/verneed-invalid.test -new file mode 100644 -index 000000000000..4756a59ed107 ---- /dev/null -+++ b/llvm/test/tools/llvm-objdump/ELF/verneed-invalid.test -@@ -0,0 +1,24 @@ -+# RUN: yaml2obj %s -o %t -+# RUN: llvm-objdump -p %t 2>&1 | FileCheck %s --check-prefix=BROKEN-AUX -DFILE=%t -+ -+# BROKEN-AUX: Version References: -+# BROKEN-AUX-NEXT: warning: '[[FILE]]': invalid SHT_GNU_verneed section with index 2: found a misaligned auxiliary entry at offset 0x11 -+ -+--- !ELF -+FileHeader: -+ Class: ELFCLASS64 -+ Data: ELFDATA2LSB -+ Type: ET_EXEC -+Sections: -+ - Name: .gnu.version -+ Type: SHT_GNU_versym -+ Flags: [ SHF_ALLOC ] -+ Entries: [ 2 ] -+ - Name: .gnu.version_r -+ Type: SHT_GNU_verneed -+ Flags: [ SHF_ALLOC ] -+ Info: 1 -+ AddressAlign: 4 -+## The byte offset to the auxiliary entry is 0x11, i.e. it is not correctly aligned in memory. -+ Content: "0100010001000000110000000000000000000000" -+DynamicSymbols: [] -diff --git a/llvm/test/tools/llvm-objdump/ELF/verneed.test b/llvm/test/tools/llvm-objdump/ELF/verneed.test -index 57e856e542ad..7b38ef95fd41 100644 ---- a/llvm/test/tools/llvm-objdump/ELF/verneed.test -+++ b/llvm/test/tools/llvm-objdump/ELF/verneed.test -@@ -46,3 +46,23 @@ Sections: - DynamicSymbols: - - Name: f1 - Binding: STB_GLOBAL -+ -+# RUN: yaml2obj --docnum=2 %s -o %t.empty -+# RUN: llvm-objdump -p %t.empty 2>&1 | FileCheck %s --check-prefix=EMPTY --implicit-check-not=warning: -+ -+# EMPTY: Version References: -+# EMPTY-NOT: {{.}} -+ -+--- !ELF -+FileHeader: -+ Class: ELFCLASS64 -+ Data: ELFDATA2LSB -+ Type: ET_EXEC -+ Machine: EM_X86_64 -+Sections: -+ - Name: .gnu.version_r -+ Type: SHT_GNU_verneed -+ Flags: [ SHF_ALLOC ] -+DynamicSymbols: -+ - Name: f1 -+ Binding: STB_GLOBAL -diff --git a/llvm/tools/llvm-objdump/ELFDump.cpp b/llvm/tools/llvm-objdump/ELFDump.cpp -index ca73dafe2b8e..61676b4323d2 100644 ---- a/llvm/tools/llvm-objdump/ELFDump.cpp -+++ b/llvm/tools/llvm-objdump/ELFDump.cpp -@@ -282,27 +282,28 @@ static void printProgramHeaders(const ELFFile &Obj, StringRef FileName) { - } - - template --static void printSymbolVersionDependency(ArrayRef Contents, -- StringRef StrTab) { -+static void printSymbolVersionDependency(StringRef FileName, -+ const ELFFile &Obj, -+ const typename ELFT::Shdr &Sec) { - outs() << "\nVersion References:\n"; - -- const uint8_t *Buf = Contents.data(); -- while (Buf) { -- auto *Verneed = reinterpret_cast(Buf); -- outs() << " required from " -- << StringRef(StrTab.drop_front(Verneed->vn_file).data()) << ":\n"; -+ auto WarningHandler = [&](const Twine &Msg) { -+ reportWarning(Msg, FileName); -+ return Error::success(); -+ }; -+ Expected> V = -+ Obj.getVersionDependencies(Sec, WarningHandler); -+ if (!V) { -+ reportWarning(toString(V.takeError()), FileName); -+ return; -+ } - -- const uint8_t *BufAux = Buf + Verneed->vn_aux; -- while (BufAux) { -- auto *Vernaux = reinterpret_cast(BufAux); -- outs() << " " -- << format("0x%08" PRIx32 " ", (uint32_t)Vernaux->vna_hash) -- << format("0x%02" PRIx16 " ", (uint16_t)Vernaux->vna_flags) -- << format("%02" PRIu16 " ", (uint16_t)Vernaux->vna_other) -- << StringRef(StrTab.drop_front(Vernaux->vna_name).data()) << '\n'; -- BufAux = Vernaux->vna_next ? BufAux + Vernaux->vna_next : nullptr; -- } -- Buf = Verneed->vn_next ? Buf + Verneed->vn_next : nullptr; -+ raw_fd_ostream &OS = outs(); -+ for (const VerNeed &VN : *V) { -+ OS << " required from " << VN.File << ":\n"; -+ for (const VernAux &Aux : VN.AuxV) -+ OS << format(" 0x%08x 0x%02x %02u %s\n", Aux.Hash, Aux.Flags, -+ Aux.Other, Aux.Name.c_str()); - } - } - -@@ -355,7 +356,7 @@ static void printSymbolVersionInfo(const ELFFile &Elf, - StringRef StrTab = unwrapOrError(Elf.getStringTable(*StrTabSec), FileName); - - if (Shdr.sh_type == ELF::SHT_GNU_verneed) -- printSymbolVersionDependency(Contents, StrTab); -+ printSymbolVersionDependency(FileName, Elf, Shdr); - else - printSymbolVersionDefinition(Shdr, Contents, StrTab); - } --- -2.37.3 - diff --git a/recipes-devtools/clang/clang/0002-compiler-rt-support-a-new-embedded-linux-target.patch b/recipes-devtools/clang/clang/0002-compiler-rt-support-a-new-embedded-linux-target.patch index 5722035..57fcff6 100644 --- a/recipes-devtools/clang/clang/0002-compiler-rt-support-a-new-embedded-linux-target.patch +++ b/recipes-devtools/clang/clang/0002-compiler-rt-support-a-new-embedded-linux-target.patch @@ -1,4 +1,4 @@ -From 7f8dee01de2d4b100bb0639c78aba0fac887db30 Mon Sep 17 00:00:00 2001 +From 48e3dadba895cfe4f04ed42d344ecd310242a96c Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 19 Apr 2015 15:16:23 -0700 Subject: [PATCH] compiler-rt: support a new embedded linux target diff --git a/recipes-devtools/clang/clang/0003-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch b/recipes-devtools/clang/clang/0003-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch index 651ad29..b9de02b 100644 --- a/recipes-devtools/clang/clang/0003-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch +++ b/recipes-devtools/clang/clang/0003-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch @@ -1,4 +1,4 @@ -From c240bc35ac49a2165495771574ee46ffe06d222d Mon Sep 17 00:00:00 2001 +From bdb86e8431c362c356a79873c4591906983fc3f2 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 19 May 2016 23:11:45 -0700 Subject: [PATCH] compiler-rt: Simplify cross-compilation. Don't use diff --git a/recipes-devtools/clang/clang/0004-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch b/recipes-devtools/clang/clang/0004-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch index 9f496d1..ca9db11 100644 --- a/recipes-devtools/clang/clang/0004-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch +++ b/recipes-devtools/clang/clang/0004-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch @@ -1,4 +1,4 @@ -From 91624fded194e4e612a24ab820f7146cdff8b381 Mon Sep 17 00:00:00 2001 +From e0289613f7b5ea665c280b60cb18520e7fd25226 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 21 May 2016 00:33:20 +0000 Subject: [PATCH] llvm: TargetLibraryInfo: Undefine libc functions if they are diff --git a/recipes-devtools/clang/clang/0005-llvm-allow-env-override-of-exe-and-libdir-path.patch b/recipes-devtools/clang/clang/0005-llvm-allow-env-override-of-exe-and-libdir-path.patch index 05bf2b7..49d0e18 100644 --- a/recipes-devtools/clang/clang/0005-llvm-allow-env-override-of-exe-and-libdir-path.patch +++ b/recipes-devtools/clang/clang/0005-llvm-allow-env-override-of-exe-and-libdir-path.patch @@ -1,4 +1,4 @@ -From c76c80d752ce177327d6bb2d966afa673233a81c Mon Sep 17 00:00:00 2001 +From dc4c39aa59265898996d5b87f2bf93e3044200a4 Mon Sep 17 00:00:00 2001 From: Martin Kelly Date: Fri, 19 May 2017 00:22:57 -0700 Subject: [PATCH] llvm: allow env override of exe and libdir path diff --git a/recipes-devtools/clang/clang/0006-clang-driver-Check-sysroot-for-ldso-path.patch b/recipes-devtools/clang/clang/0006-clang-driver-Check-sysroot-for-ldso-path.patch index 0a3ffa9..43919cd 100644 --- a/recipes-devtools/clang/clang/0006-clang-driver-Check-sysroot-for-ldso-path.patch +++ b/recipes-devtools/clang/clang/0006-clang-driver-Check-sysroot-for-ldso-path.patch @@ -1,4 +1,4 @@ -From f91bea3f1be69123f7c5583568c1c2b35395af92 Mon Sep 17 00:00:00 2001 +From 74640beda7dea3e15b5cc4125ddd605a5f6a1eaf Mon Sep 17 00:00:00 2001 From: Dan McGregor Date: Wed, 26 Apr 2017 20:29:41 -0600 Subject: [PATCH] clang: driver: Check sysroot for ldso path diff --git a/recipes-devtools/clang/clang/0007-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch b/recipes-devtools/clang/clang/0007-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch index 0861ccb..9b08b56 100644 --- a/recipes-devtools/clang/clang/0007-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch +++ b/recipes-devtools/clang/clang/0007-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch @@ -1,4 +1,4 @@ -From 47060cd9744a21fb646ad9253ba79048d1055560 Mon Sep 17 00:00:00 2001 +From 7765c17ba67e63618b9780b6d9e2522b0788286a Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 19 May 2016 21:11:06 -0700 Subject: [PATCH] clang: Driver/tools.cpp: Add -lssp_nonshared on musl diff --git a/recipes-devtools/clang/clang/0008-clang-Prepend-trailing-to-sysroot.patch b/recipes-devtools/clang/clang/0008-clang-Prepend-trailing-to-sysroot.patch index c3246de..33373c7 100644 --- a/recipes-devtools/clang/clang/0008-clang-Prepend-trailing-to-sysroot.patch +++ b/recipes-devtools/clang/clang/0008-clang-Prepend-trailing-to-sysroot.patch @@ -1,4 +1,4 @@ -From 7cda368aa585872c0add06604215d39f2e7cb1b2 Mon Sep 17 00:00:00 2001 +From e37f165d1332d63bd63dd97467da666ffa93b4a8 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 16 Mar 2017 09:02:13 -0700 Subject: [PATCH] clang: Prepend trailing '/' to sysroot diff --git a/recipes-devtools/clang/clang/0009-clang-Look-inside-the-target-sysroot-for-compiler-ru.patch b/recipes-devtools/clang/clang/0009-clang-Look-inside-the-target-sysroot-for-compiler-ru.patch index 04742be..2cc78a0 100644 --- a/recipes-devtools/clang/clang/0009-clang-Look-inside-the-target-sysroot-for-compiler-ru.patch +++ b/recipes-devtools/clang/clang/0009-clang-Look-inside-the-target-sysroot-for-compiler-ru.patch @@ -1,4 +1,4 @@ -From f0a90c18f6f07b2f9c5b4c8178e48ab000f3be62 Mon Sep 17 00:00:00 2001 +From 8b05a5f70d655e19b010350f0b7b36a4d46cf7b5 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 16 Mar 2017 19:06:26 -0700 Subject: [PATCH] clang: Look inside the target sysroot for compiler runtime diff --git a/recipes-devtools/clang/clang/0010-clang-Define-releative-gcc-installation-dir.patch b/recipes-devtools/clang/clang/0010-clang-Define-releative-gcc-installation-dir.patch index fa4643c..63e7fbb 100644 --- a/recipes-devtools/clang/clang/0010-clang-Define-releative-gcc-installation-dir.patch +++ b/recipes-devtools/clang/clang/0010-clang-Define-releative-gcc-installation-dir.patch @@ -1,4 +1,4 @@ -From 9f62d38e65d80909484bbe2f2bd8e8c6443a8fb0 Mon Sep 17 00:00:00 2001 +From 19355c196fe9ec04f12bea0e5ac906fb9e6ea989 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 20 Mar 2021 16:09:16 -0700 Subject: [PATCH] clang: Define / releative gcc installation dir diff --git a/recipes-devtools/clang/clang/0011-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch b/recipes-devtools/clang/clang/0011-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch index 5334237..c5541cf 100644 --- a/recipes-devtools/clang/clang/0011-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch +++ b/recipes-devtools/clang/clang/0011-clang-Add-lpthread-and-ldl-along-with-lunwind-for-st.patch @@ -1,4 +1,4 @@ -From 7cd7eb2c942027a1c2ea1a26d30dcd524504a865 Mon Sep 17 00:00:00 2001 +From f1297af77dde87aafc5021efb6dd48317958fadf Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 31 Jul 2019 22:51:39 -0700 Subject: [PATCH] clang: Add -lpthread and -ldl along with -lunwind for static diff --git a/recipes-devtools/clang/clang/0012-Pass-PYTHON_EXECUTABLE-when-cross-compiling-for-nati.patch b/recipes-devtools/clang/clang/0012-Pass-PYTHON_EXECUTABLE-when-cross-compiling-for-nati.patch index 0563e9d..e765810 100644 --- a/recipes-devtools/clang/clang/0012-Pass-PYTHON_EXECUTABLE-when-cross-compiling-for-nati.patch +++ b/recipes-devtools/clang/clang/0012-Pass-PYTHON_EXECUTABLE-when-cross-compiling-for-nati.patch @@ -1,4 +1,4 @@ -From 9085bf817fc4d70a93838ea9350920c1e3f26295 Mon Sep 17 00:00:00 2001 +From ec928d7b1265694760107af10440b439806dd419 Mon Sep 17 00:00:00 2001 From: Anuj Mittal Date: Thu, 26 Dec 2019 12:56:16 -0800 Subject: [PATCH] Pass PYTHON_EXECUTABLE when cross compiling for native build diff --git a/recipes-devtools/clang/clang/0013-Check-for-atomic-double-intrinsics.patch b/recipes-devtools/clang/clang/0013-Check-for-atomic-double-intrinsics.patch index 3b8d878..8b9cf1e 100644 --- a/recipes-devtools/clang/clang/0013-Check-for-atomic-double-intrinsics.patch +++ b/recipes-devtools/clang/clang/0013-Check-for-atomic-double-intrinsics.patch @@ -1,4 +1,4 @@ -From 94e6043e68865806ecbde1d895d5ea724adcc7dc Mon Sep 17 00:00:00 2001 +From 6af5793a471873c8d9537610034f114539c46f64 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 18 Nov 2019 17:00:29 -0800 Subject: [PATCH] Check for atomic intrinsics diff --git a/recipes-devtools/clang/clang/0014-libcxx-Add-compiler-runtime-library-to-link-step-for.patch b/recipes-devtools/clang/clang/0014-libcxx-Add-compiler-runtime-library-to-link-step-for.patch index 210e309..6845e9e 100644 --- a/recipes-devtools/clang/clang/0014-libcxx-Add-compiler-runtime-library-to-link-step-for.patch +++ b/recipes-devtools/clang/clang/0014-libcxx-Add-compiler-runtime-library-to-link-step-for.patch @@ -1,4 +1,4 @@ -From b04023195b8649e6f51a7fcc09fe39736e494afb Mon Sep 17 00:00:00 2001 +From cee1e7e3f1c0a9676b8cdb22f792ad6ea3bf23c3 Mon Sep 17 00:00:00 2001 From: Jeremy Puhlman Date: Thu, 16 Jan 2020 21:16:10 +0000 Subject: [PATCH] libcxx: Add compiler runtime library to link step for libcxx diff --git a/recipes-devtools/clang/clang/0015-clang-llvm-cmake-Fix-configure-for-packages-using-fi.patch b/recipes-devtools/clang/clang/0015-clang-llvm-cmake-Fix-configure-for-packages-using-fi.patch index be0d088..73779d1 100644 --- a/recipes-devtools/clang/clang/0015-clang-llvm-cmake-Fix-configure-for-packages-using-fi.patch +++ b/recipes-devtools/clang/clang/0015-clang-llvm-cmake-Fix-configure-for-packages-using-fi.patch @@ -1,4 +1,4 @@ -From 9e1259310fdad1feebc5a0e80fb18afbea0fb49c Mon Sep 17 00:00:00 2001 +From 49789e8508d78bdc07111e3299905eda04a586ab Mon Sep 17 00:00:00 2001 From: Ovidiu Panait Date: Fri, 31 Jan 2020 10:56:11 +0200 Subject: [PATCH] clang,llvm: cmake: Fix configure for packages using diff --git a/recipes-devtools/clang/clang/0016-clang-Fix-resource-dir-location-for-cross-toolchains.patch b/recipes-devtools/clang/clang/0016-clang-Fix-resource-dir-location-for-cross-toolchains.patch index 164f64b..5d2f857 100644 --- a/recipes-devtools/clang/clang/0016-clang-Fix-resource-dir-location-for-cross-toolchains.patch +++ b/recipes-devtools/clang/clang/0016-clang-Fix-resource-dir-location-for-cross-toolchains.patch @@ -1,4 +1,4 @@ -From 9b847a7301907c040ad1a276386bf03245452ac1 Mon Sep 17 00:00:00 2001 +From e45504068746704992d5e0970f915d9fdb5dcfa8 Mon Sep 17 00:00:00 2001 From: Jim Broadus Date: Thu, 26 Mar 2020 16:05:53 -0700 Subject: [PATCH] clang: Fix resource dir location for cross toolchains diff --git a/recipes-devtools/clang/clang/0017-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch b/recipes-devtools/clang/clang/0017-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch index 4f69f61..889037c 100644 --- a/recipes-devtools/clang/clang/0017-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch +++ b/recipes-devtools/clang/clang/0017-clang-driver-Add-dyld-prefix-when-checking-sysroot-f.patch @@ -1,4 +1,4 @@ -From ddac3e45e06789d6d525e72782110f66334dadd5 Mon Sep 17 00:00:00 2001 +From 3e400ed60383f1f58902e78ce1fd9dd308e822c4 Mon Sep 17 00:00:00 2001 From: Oleksandr Ocheretnyi Date: Wed, 15 Apr 2020 00:08:39 +0300 Subject: [PATCH] clang: driver: Add dyld-prefix when checking sysroot for ldso diff --git a/recipes-devtools/clang/clang/0018-clang-Use-python3-in-python-scripts.patch b/recipes-devtools/clang/clang/0018-clang-Use-python3-in-python-scripts.patch index b969630..9255726 100644 --- a/recipes-devtools/clang/clang/0018-clang-Use-python3-in-python-scripts.patch +++ b/recipes-devtools/clang/clang/0018-clang-Use-python3-in-python-scripts.patch @@ -1,4 +1,4 @@ -From 4d5f0c87833256ac810b0702d3e3e128bd465bbe Mon Sep 17 00:00:00 2001 +From f1c0264db9590ae394e7d85c41df869cd295e3fe Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 14 Oct 2020 22:19:57 -0700 Subject: [PATCH] clang: Use python3 in python scripts diff --git a/recipes-devtools/clang/clang/0019-For-x86_64-set-Yocto-based-GCC-install-search-path.patch b/recipes-devtools/clang/clang/0019-For-x86_64-set-Yocto-based-GCC-install-search-path.patch index a8186c4..5dc4c45 100644 --- a/recipes-devtools/clang/clang/0019-For-x86_64-set-Yocto-based-GCC-install-search-path.patch +++ b/recipes-devtools/clang/clang/0019-For-x86_64-set-Yocto-based-GCC-install-search-path.patch @@ -1,4 +1,4 @@ -From 85a70f8d590a0f6b2257257b7c494846870b3466 Mon Sep 17 00:00:00 2001 +From 84b97ef7de5f051286d6fe8715eab16cff42206e Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Mon, 25 Jan 2021 16:14:35 +0800 Subject: [PATCH] For x86_64, set Yocto based GCC install search path diff --git a/recipes-devtools/clang/clang/0020-llvm-Do-not-use-find_library-for-ncurses.patch b/recipes-devtools/clang/clang/0020-llvm-Do-not-use-find_library-for-ncurses.patch index 60e533b..7b15cf5 100644 --- a/recipes-devtools/clang/clang/0020-llvm-Do-not-use-find_library-for-ncurses.patch +++ b/recipes-devtools/clang/clang/0020-llvm-Do-not-use-find_library-for-ncurses.patch @@ -1,4 +1,4 @@ -From 7572a3983fd02d37e67559af75a520056fbd2906 Mon Sep 17 00:00:00 2001 +From fe3a47e978779c33499d2998e7ae5c8351037674 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 7 Feb 2021 23:58:41 -0800 Subject: [PATCH] llvm: Do not use find_library for ncurses diff --git a/recipes-devtools/clang/clang/0021-llvm-Insert-anchor-for-adding-OE-distro-vendor-names.patch b/recipes-devtools/clang/clang/0021-llvm-Insert-anchor-for-adding-OE-distro-vendor-names.patch index 983fe38..ce58d7e 100644 --- a/recipes-devtools/clang/clang/0021-llvm-Insert-anchor-for-adding-OE-distro-vendor-names.patch +++ b/recipes-devtools/clang/clang/0021-llvm-Insert-anchor-for-adding-OE-distro-vendor-names.patch @@ -1,4 +1,4 @@ -From 126a93150c81c675d8a93c4f240e231bf1feeaf7 Mon Sep 17 00:00:00 2001 +From 6186142952f915529d8208fc795ba6dbdb6b7b7c Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 11 Feb 2021 16:42:49 -0800 Subject: [PATCH] llvm: Insert anchor for adding OE distro vendor names diff --git a/recipes-devtools/clang/clang/0022-compiler-rt-Do-not-use-backtrace-APIs-on-non-glibc-l.patch b/recipes-devtools/clang/clang/0022-compiler-rt-Do-not-use-backtrace-APIs-on-non-glibc-l.patch index 67537be..f2852ed 100644 --- a/recipes-devtools/clang/clang/0022-compiler-rt-Do-not-use-backtrace-APIs-on-non-glibc-l.patch +++ b/recipes-devtools/clang/clang/0022-compiler-rt-Do-not-use-backtrace-APIs-on-non-glibc-l.patch @@ -1,4 +1,4 @@ -From e3833b5a620d1e8743c53ebc724fd6cb6775b4a8 Mon Sep 17 00:00:00 2001 +From cecc6038935ef72e2b7a934af4a44f58946e40b2 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 19 May 2021 17:32:13 -0700 Subject: [PATCH] compiler-rt: Do not use backtrace APIs on non-glibc linux diff --git a/recipes-devtools/clang/clang/0023-clang-Fix-x86-triple-for-non-debian-multiarch-linux-.patch b/recipes-devtools/clang/clang/0023-clang-Fix-x86-triple-for-non-debian-multiarch-linux-.patch index 484c62a..f34079a 100644 --- a/recipes-devtools/clang/clang/0023-clang-Fix-x86-triple-for-non-debian-multiarch-linux-.patch +++ b/recipes-devtools/clang/clang/0023-clang-Fix-x86-triple-for-non-debian-multiarch-linux-.patch @@ -1,4 +1,4 @@ -From a9a28d1133089b29761a8a77910f5c5326be054c Mon Sep 17 00:00:00 2001 +From f076c8268225f64e4f4b988bd98009ad65b826a4 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 19 May 2021 17:56:03 -0700 Subject: [PATCH] clang: Fix x86 triple for non-debian multiarch linux distros diff --git a/recipes-devtools/clang/clang/0024-compiler-rt-Link-scudo-with-SANITIZER_CXX_ABI_LIBRAR.patch b/recipes-devtools/clang/clang/0024-compiler-rt-Link-scudo-with-SANITIZER_CXX_ABI_LIBRAR.patch index 9170b39..f55dae8 100644 --- a/recipes-devtools/clang/clang/0024-compiler-rt-Link-scudo-with-SANITIZER_CXX_ABI_LIBRAR.patch +++ b/recipes-devtools/clang/clang/0024-compiler-rt-Link-scudo-with-SANITIZER_CXX_ABI_LIBRAR.patch @@ -1,4 +1,4 @@ -From 071147ea1fa0f8cd9997b8ade9b33ae48831e9dd Mon Sep 17 00:00:00 2001 +From 82c77c7182f8eae12fc5d8bef7dbee59680d3007 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 19 May 2021 21:49:18 -0700 Subject: [PATCH] compiler-rt: Link scudo with SANITIZER_CXX_ABI_LIBRARIES diff --git a/recipes-devtools/clang/clang/0025-libunwind-Added-unw_backtrace-method.patch b/recipes-devtools/clang/clang/0025-libunwind-Added-unw_backtrace-method.patch index 430f336..39e5034 100644 --- a/recipes-devtools/clang/clang/0025-libunwind-Added-unw_backtrace-method.patch +++ b/recipes-devtools/clang/clang/0025-libunwind-Added-unw_backtrace-method.patch @@ -1,4 +1,4 @@ -From d8ac6d8eb8fdf5c89d008cb082961920ad15201f Mon Sep 17 00:00:00 2001 +From ace96582c3a9a9a0c22a94448930cf1e6413a45e Mon Sep 17 00:00:00 2001 From: Maksim Kita Date: Sun, 23 May 2021 10:27:29 +0000 Subject: [PATCH] libunwind: Added unw_backtrace method diff --git a/recipes-devtools/clang/clang/0026-Drop-the-git-suffix-from-various-version-variables.patch b/recipes-devtools/clang/clang/0026-Drop-the-git-suffix-from-various-version-variables.patch deleted file mode 100644 index 27d49de..0000000 --- a/recipes-devtools/clang/clang/0026-Drop-the-git-suffix-from-various-version-variables.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 3201dca689e5e3637501cacf9d01ec5a775207c5 Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Wed, 23 Jun 2021 16:25:06 +0800 -Subject: [PATCH] Drop the 'git' suffix from various version variables - -Upstream-Status: Backport [cherry-picked from branch 12.0.0] - -Signed-off-by: Changqing Li -Signed-off-by: Khem Raj ---- - .../llvm-project-overlay/llvm/include/llvm/Config/llvm-config.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/llvm-config.h b/utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/llvm-config.h -index e63369a56928..92162bddf9f1 100644 ---- a/utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/llvm-config.h -+++ b/utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/llvm-config.h -@@ -83,7 +83,7 @@ - #define LLVM_VERSION_PATCH 0 - - /* LLVM version string */ --#define LLVM_VERSION_STRING "15.0.0git" -+#define LLVM_VERSION_STRING "15.0.0" - - /* Whether LLVM records statistics for use with GetStatistics(), - * PrintStatistics() or PrintStatisticsJSON() diff --git a/recipes-devtools/clang/clang/0026-clang-Do-not-use-install-relative-libc-headers.patch b/recipes-devtools/clang/clang/0026-clang-Do-not-use-install-relative-libc-headers.patch new file mode 100644 index 0000000..daf0b3a --- /dev/null +++ b/recipes-devtools/clang/clang/0026-clang-Do-not-use-install-relative-libc-headers.patch @@ -0,0 +1,32 @@ +From 46a5e9b9467a5866fe0e9950b03f0b8aa0e4def2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 11 Aug 2021 18:37:11 -0700 +Subject: [PATCH] clang: Do not use install relative libc++ headers + +In OE we use same clang for native and cross builds, therefore we need +to ensure that native sysroot install of libc++ is not searched for +headers when doing cross compile instead it searches the target sysroot +this is especially troublesome when libcxx-native is staged along with +libcxx e.g. chromium + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + clang/lib/Driver/ToolChains/Gnu.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp +index 5b4271b58337..107ab8d78598 100644 +--- a/clang/lib/Driver/ToolChains/Gnu.cpp ++++ b/clang/lib/Driver/ToolChains/Gnu.cpp +@@ -3049,7 +3049,9 @@ Generic_GCC::addLibCxxIncludePaths(const llvm::opt::ArgList &DriverArgs, + + // Android never uses the libc++ headers installed alongside the toolchain, + // which are generally incompatible with the NDK libraries anyway. +- if (!getTriple().isAndroid()) ++ // And also do not add it when --sysroot is specified, since it would expect ++ // libc++ headers from sysroot ++ if (!getTriple().isAndroid() && SysRoot.empty()) + if (AddIncludePath(getDriver().Dir + "/../include")) + return; + // If this is a development, non-installed, clang, libcxx will diff --git a/recipes-devtools/clang/clang/0027-clang-Do-not-use-install-relative-libc-headers.patch b/recipes-devtools/clang/clang/0027-clang-Do-not-use-install-relative-libc-headers.patch deleted file mode 100644 index d162084..0000000 --- a/recipes-devtools/clang/clang/0027-clang-Do-not-use-install-relative-libc-headers.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 3b9c88e521e47f71ae888094537e7c6a039c9355 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 11 Aug 2021 18:37:11 -0700 -Subject: [PATCH] clang: Do not use install relative libc++ headers - -In OE we use same clang for native and cross builds, therefore we need -to ensure that native sysroot install of libc++ is not searched for -headers when doing cross compile instead it searches the target sysroot -this is especially troublesome when libcxx-native is staged along with -libcxx e.g. chromium - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- - clang/lib/Driver/ToolChains/Gnu.cpp | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp -index 5b4271b58337..107ab8d78598 100644 ---- a/clang/lib/Driver/ToolChains/Gnu.cpp -+++ b/clang/lib/Driver/ToolChains/Gnu.cpp -@@ -3049,7 +3049,9 @@ Generic_GCC::addLibCxxIncludePaths(const llvm::opt::ArgList &DriverArgs, - - // Android never uses the libc++ headers installed alongside the toolchain, - // which are generally incompatible with the NDK libraries anyway. -- if (!getTriple().isAndroid()) -+ // And also do not add it when --sysroot is specified, since it would expect -+ // libc++ headers from sysroot -+ if (!getTriple().isAndroid() && SysRoot.empty()) - if (AddIncludePath(getDriver().Dir + "/../include")) - return; - // If this is a development, non-installed, clang, libcxx will diff --git a/recipes-devtools/clang/clang/0027-clang-Fix-how-driver-finds-GCC-installation-path-on-.patch b/recipes-devtools/clang/clang/0027-clang-Fix-how-driver-finds-GCC-installation-path-on-.patch new file mode 100644 index 0000000..480beea --- /dev/null +++ b/recipes-devtools/clang/clang/0027-clang-Fix-how-driver-finds-GCC-installation-path-on-.patch @@ -0,0 +1,97 @@ +From 495e517236d2fd290c2b8244362401993f4fb8a4 Mon Sep 17 00:00:00 2001 +From: David Abdurachmanov +Date: Wed, 20 Oct 2021 17:30:36 -0700 +Subject: [PATCH] clang: Fix how driver finds GCC installation path on + OpenEmbedded + +Fix how Clang Driver finds GCC installation path on OpenEmbedded + +- For RISCV (riscv{32,64}) we define new two multi-lib options without any + subdirectories (e.g., lib32/ilp32d or lib64/lp64d). OpenEmbedded GCC + builds don't use them. +- Modify how Clang Driver finds GCC installation path. This is important + because GCC files on OpenEmbedded are in two different directories: + (1) /usr/bin/../lib/gcc/riscv64-oe-linux/9.2.0 + (2) /usr/lib/riscv64-oe-linux/9.2.0 + +Clang Driver will check (1) first. The directory exist, but will produce +no valid multi-libs and there will be no multi-lib selected. (2) contains +actual GCC run-time objects/libraries, but because the path has exact +same GCC version (9.2.0) it will be skipped. + +We modify the approach by allowing to check other directories with the same +GCC version. We also avoid picking GCC installation path if it results in +an empty multi-lib list. + +Upstream-Status: Pending +Signed-off-by: David Abdurachmanov +Signed-off-by: Khem Raj +--- + clang/lib/Driver/ToolChains/Gnu.cpp | 39 +++++++++++++++++++++-------- + 1 file changed, 28 insertions(+), 11 deletions(-) + +diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp +index 107ab8d78598..b5ee01c566e3 100644 +--- a/clang/lib/Driver/ToolChains/Gnu.cpp ++++ b/clang/lib/Driver/ToolChains/Gnu.cpp +@@ -1737,18 +1737,29 @@ static void findRISCVMultilibs(const Driver &D, + return findRISCVBareMetalMultilibs(D, TargetTriple, Path, Args, Result); + + FilterNonExistent NonExistent(Path, "/crtbegin.o", D.getVFS()); +- Multilib Ilp32 = makeMultilib("lib32/ilp32").flag("+m32").flag("+mabi=ilp32"); +- Multilib Ilp32f = ++ MultilibSet RISCVMultilibs; ++ ++ if (TargetTriple.getVendor() == llvm::Triple::OpenEmbedded) { ++ Multilib OpenEmbeddedIlp32d = makeMultilib("").flag("+m32").flag("+mabi=ilp32d"); ++ Multilib OpenEmbeddedLp64d = makeMultilib("").flag("+m64").flag("+mabi=lp64d"); ++ RISCVMultilibs = ++ MultilibSet() ++ .Either({OpenEmbeddedIlp32d, OpenEmbeddedLp64d}) ++ .FilterOut(NonExistent); ++ } else { ++ Multilib Ilp32 = makeMultilib("lib32/ilp32").flag("+m32").flag("+mabi=ilp32"); ++ Multilib Ilp32f = + makeMultilib("lib32/ilp32f").flag("+m32").flag("+mabi=ilp32f"); +- Multilib Ilp32d = ++ Multilib Ilp32d = + makeMultilib("lib32/ilp32d").flag("+m32").flag("+mabi=ilp32d"); +- Multilib Lp64 = makeMultilib("lib64/lp64").flag("+m64").flag("+mabi=lp64"); +- Multilib Lp64f = makeMultilib("lib64/lp64f").flag("+m64").flag("+mabi=lp64f"); +- Multilib Lp64d = makeMultilib("lib64/lp64d").flag("+m64").flag("+mabi=lp64d"); +- MultilibSet RISCVMultilibs = +- MultilibSet() +- .Either({Ilp32, Ilp32f, Ilp32d, Lp64, Lp64f, Lp64d}) +- .FilterOut(NonExistent); ++ Multilib Lp64 = makeMultilib("lib64/lp64").flag("+m64").flag("+mabi=lp64"); ++ Multilib Lp64f = makeMultilib("lib64/lp64f").flag("+m64").flag("+mabi=lp64f"); ++ Multilib Lp64d = makeMultilib("lib64/lp64d").flag("+m64").flag("+mabi=lp64d"); ++ RISCVMultilibs = ++ MultilibSet() ++ .Either({Ilp32, Ilp32f, Ilp32d, Lp64, Lp64f, Lp64d}) ++ .FilterOut(NonExistent); ++ } + + Multilib::flags_list Flags; + bool IsRV64 = TargetTriple.getArch() == llvm::Triple::riscv64; +@@ -2674,13 +2685,19 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( + continue; // Saw this path before; no need to look at it again. + if (CandidateVersion.isOlderThan(4, 1, 1)) + continue; +- if (CandidateVersion <= Version) ++ if (CandidateVersion < Version) + continue; + + if (!ScanGCCForMultilibs(TargetTriple, Args, LI->path(), + NeedsBiarchSuffix)) + continue; + ++ // We might have found existing directory with GCCVersion, but it ++ // might not have GCC libraries we are looking for (i.e. return an ++ // empty Mulilibs) ++ if (Multilibs.size() == 0) ++ continue; ++ + Version = CandidateVersion; + GCCTriple.setTriple(CandidateTriple); + // FIXME: We hack together the directory name here instead of diff --git a/recipes-devtools/clang/clang/0028-Fix-lib-paths-for-OpenEmbedded-Host.patch b/recipes-devtools/clang/clang/0028-Fix-lib-paths-for-OpenEmbedded-Host.patch new file mode 100644 index 0000000..5d7ea10 --- /dev/null +++ b/recipes-devtools/clang/clang/0028-Fix-lib-paths-for-OpenEmbedded-Host.patch @@ -0,0 +1,79 @@ +From 92b43296ccf451485ab5fed4c60a7d3caad42710 Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Tue, 7 Dec 2021 04:08:22 +0000 +Subject: [PATCH] Fix lib paths for OpenEmbedded Host + +Under OpenEmbedded Host, while building with clang-native, it cannot find +the GCCInstallPath, which causing following error: +[snip] +compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin/clang +-target x86_64-linux +-isystem/path/to/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/include +-O2 -pipe +/path/to/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/share/cmake-3.21/Modules/CMakeCCompilerABI.c` +hosttools/ld: cannot find crtbeginS.o: No such file or directory +[snip] + +Before this patch: +compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin/clang +clang version 13.0.1 (https://github.com/llvm/llvm-project 08e3a5ccd952edee36b3c002e3a29c6b1b5153de) +Target: x86_64-unknown-linux-gnu +Thread model: posix +InstalledDir: /build/tmp-glibc/work/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin +Found candidate GCC installation: /usr/lib/gcc/x86_64-wrs-linux/10.2.0 + +After this patch: +compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin/clang +clang version 13.0.1 (https://github.com/llvm/llvm-project 08e3a5ccd952edee36b3c002e3a29c6b1b5153de) +Thread model: posix +InstalledDir: /build/tmp-glibc/work/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin +Found candidate GCC installation: /usr/lib/gcc/x86_64-wrs-linux/10.2.0 +Found candidate GCC installation: /usr/lib/x86_64-wrs-linux/10.2.0 +Selected GCC installation: /usr/lib/x86_64-wrs-linux/10.2.0 +Candidate multilib: .;@m64 +Selected multilib: .;@m64 + +Summary: +For OpenEmbedded Host, sysroots are of the form/usr/lib//x.y.z. +Take x86-64 as example, the default triple is x86_64-unknown-linux-gnu. +For clang-native, the target vendor is '-unknown', need to test current distro +to follow above form. + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Changqing Li +Signed-off-by: Khem Raj +--- + clang/lib/Driver/ToolChains/Gnu.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp +index b5ee01c566e3..f9dce01b579f 100644 +--- a/clang/lib/Driver/ToolChains/Gnu.cpp ++++ b/clang/lib/Driver/ToolChains/Gnu.cpp +@@ -23,6 +23,7 @@ + #include "clang/Driver/Options.h" + #include "clang/Driver/Tool.h" + #include "clang/Driver/ToolChain.h" ++#include "clang/Driver/Distro.h" + #include "llvm/Option/ArgList.h" + #include "llvm/Support/CodeGen.h" + #include "llvm/Support/Path.h" +@@ -2643,6 +2644,7 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( + const llvm::Triple &TargetTriple, const ArgList &Args, + const std::string &LibDir, StringRef CandidateTriple, + bool NeedsBiarchSuffix, bool GCCDirExists, bool GCCCrossDirExists) { ++ Distro Distro(D.getVFS(), TargetTriple); + // Locations relative to the system lib directory where GCC's triple-specific + // directories might reside. + struct GCCLibSuffix { +@@ -2660,7 +2662,8 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( + // files in that location, not just GCC installation data. + {CandidateTriple.str(), "..", + TargetTriple.getVendor() == llvm::Triple::Freescale || +- TargetTriple.getVendor() == llvm::Triple::OpenEmbedded}, ++ TargetTriple.getVendor() == llvm::Triple::OpenEmbedded || ++ Distro.IsOpenEmbedded()}, + + // This is the normal place. + {"gcc/" + CandidateTriple.str(), "../..", GCCDirExists}, diff --git a/recipes-devtools/clang/clang/0028-clang-Fix-how-driver-finds-GCC-installation-path-on-.patch b/recipes-devtools/clang/clang/0028-clang-Fix-how-driver-finds-GCC-installation-path-on-.patch deleted file mode 100644 index 1f50ec0..0000000 --- a/recipes-devtools/clang/clang/0028-clang-Fix-how-driver-finds-GCC-installation-path-on-.patch +++ /dev/null @@ -1,97 +0,0 @@ -From fe9ef041f4a5885d4ce4caf6569cda2869ceb7a7 Mon Sep 17 00:00:00 2001 -From: David Abdurachmanov -Date: Wed, 20 Oct 2021 17:30:36 -0700 -Subject: [PATCH] clang: Fix how driver finds GCC installation path on - OpenEmbedded - -Fix how Clang Driver finds GCC installation path on OpenEmbedded - -- For RISCV (riscv{32,64}) we define new two multi-lib options without any - subdirectories (e.g., lib32/ilp32d or lib64/lp64d). OpenEmbedded GCC - builds don't use them. -- Modify how Clang Driver finds GCC installation path. This is important - because GCC files on OpenEmbedded are in two different directories: - (1) /usr/bin/../lib/gcc/riscv64-oe-linux/9.2.0 - (2) /usr/lib/riscv64-oe-linux/9.2.0 - -Clang Driver will check (1) first. The directory exist, but will produce -no valid multi-libs and there will be no multi-lib selected. (2) contains -actual GCC run-time objects/libraries, but because the path has exact -same GCC version (9.2.0) it will be skipped. - -We modify the approach by allowing to check other directories with the same -GCC version. We also avoid picking GCC installation path if it results in -an empty multi-lib list. - -Upstream-Status: Pending -Signed-off-by: David Abdurachmanov -Signed-off-by: Khem Raj ---- - clang/lib/Driver/ToolChains/Gnu.cpp | 39 +++++++++++++++++++++-------- - 1 file changed, 28 insertions(+), 11 deletions(-) - -diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp -index 107ab8d78598..b5ee01c566e3 100644 ---- a/clang/lib/Driver/ToolChains/Gnu.cpp -+++ b/clang/lib/Driver/ToolChains/Gnu.cpp -@@ -1737,18 +1737,29 @@ static void findRISCVMultilibs(const Driver &D, - return findRISCVBareMetalMultilibs(D, TargetTriple, Path, Args, Result); - - FilterNonExistent NonExistent(Path, "/crtbegin.o", D.getVFS()); -- Multilib Ilp32 = makeMultilib("lib32/ilp32").flag("+m32").flag("+mabi=ilp32"); -- Multilib Ilp32f = -+ MultilibSet RISCVMultilibs; -+ -+ if (TargetTriple.getVendor() == llvm::Triple::OpenEmbedded) { -+ Multilib OpenEmbeddedIlp32d = makeMultilib("").flag("+m32").flag("+mabi=ilp32d"); -+ Multilib OpenEmbeddedLp64d = makeMultilib("").flag("+m64").flag("+mabi=lp64d"); -+ RISCVMultilibs = -+ MultilibSet() -+ .Either({OpenEmbeddedIlp32d, OpenEmbeddedLp64d}) -+ .FilterOut(NonExistent); -+ } else { -+ Multilib Ilp32 = makeMultilib("lib32/ilp32").flag("+m32").flag("+mabi=ilp32"); -+ Multilib Ilp32f = - makeMultilib("lib32/ilp32f").flag("+m32").flag("+mabi=ilp32f"); -- Multilib Ilp32d = -+ Multilib Ilp32d = - makeMultilib("lib32/ilp32d").flag("+m32").flag("+mabi=ilp32d"); -- Multilib Lp64 = makeMultilib("lib64/lp64").flag("+m64").flag("+mabi=lp64"); -- Multilib Lp64f = makeMultilib("lib64/lp64f").flag("+m64").flag("+mabi=lp64f"); -- Multilib Lp64d = makeMultilib("lib64/lp64d").flag("+m64").flag("+mabi=lp64d"); -- MultilibSet RISCVMultilibs = -- MultilibSet() -- .Either({Ilp32, Ilp32f, Ilp32d, Lp64, Lp64f, Lp64d}) -- .FilterOut(NonExistent); -+ Multilib Lp64 = makeMultilib("lib64/lp64").flag("+m64").flag("+mabi=lp64"); -+ Multilib Lp64f = makeMultilib("lib64/lp64f").flag("+m64").flag("+mabi=lp64f"); -+ Multilib Lp64d = makeMultilib("lib64/lp64d").flag("+m64").flag("+mabi=lp64d"); -+ RISCVMultilibs = -+ MultilibSet() -+ .Either({Ilp32, Ilp32f, Ilp32d, Lp64, Lp64f, Lp64d}) -+ .FilterOut(NonExistent); -+ } - - Multilib::flags_list Flags; - bool IsRV64 = TargetTriple.getArch() == llvm::Triple::riscv64; -@@ -2674,13 +2685,19 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( - continue; // Saw this path before; no need to look at it again. - if (CandidateVersion.isOlderThan(4, 1, 1)) - continue; -- if (CandidateVersion <= Version) -+ if (CandidateVersion < Version) - continue; - - if (!ScanGCCForMultilibs(TargetTriple, Args, LI->path(), - NeedsBiarchSuffix)) - continue; - -+ // We might have found existing directory with GCCVersion, but it -+ // might not have GCC libraries we are looking for (i.e. return an -+ // empty Mulilibs) -+ if (Multilibs.size() == 0) -+ continue; -+ - Version = CandidateVersion; - GCCTriple.setTriple(CandidateTriple); - // FIXME: We hack together the directory name here instead of diff --git a/recipes-devtools/clang/clang/0029-Correct-library-search-path-for-OpenEmbedded-Host.patch b/recipes-devtools/clang/clang/0029-Correct-library-search-path-for-OpenEmbedded-Host.patch new file mode 100644 index 0000000..7a94078 --- /dev/null +++ b/recipes-devtools/clang/clang/0029-Correct-library-search-path-for-OpenEmbedded-Host.patch @@ -0,0 +1,84 @@ +From 48a2859c3d1730012f3553247ca67297e2d50271 Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Tue, 7 Dec 2021 04:55:48 +0000 +Subject: [PATCH] Correct library search path for OpenEmbedded Host + +For OpenEmbedded Host, the gcc install path is +/usr/lib/x86_64-[distroname]-linux/[gcc-version]. +So the library search path is not found with default triple +'x86_64-linux-gnu' for x86_64. Causing following error: +[snip] +compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin/clang +-target x86_64-linux +-isystem/path/to/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/include +-O2 -pipe +/path/to/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/share/cmake-3.21/Modules/CMakeCCompilerABI.c` +| /build/tmp-glibc/hosttools/ld: cannot find -lgcc +| /build/tmp-glibc/hosttools/ld: cannot find -lgcc +| clang-13: error: linker command failed with exit code 1 (use -v to see invocation) +[snip] + +before this patch: +b59da142f2b0:$ /path/to/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin/clang --print-search-dirs +programs: =/build/tmp-glibc/work/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin +libraries: =/build/tmp-glibc/work/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/lib/clang/13.0.1:/build/tmp-glibc/work/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin/../lib://lib://usr/lib + +after this patch: +b59da142f2b0:$ /path/to/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin/clang --print-search-dirs +programs: =/build/tmp-glibc/work/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin +libraries: =/build/tmp-glibc/work/x84_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/lib/clang/13.0.1:/usr/lib/x86_64-wrs-linux/10.2.0://lib/x86_64-wrs-linux://usr/lib/x86_64-wrs-linux:/build/tmp-glibc/work/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin/../lib://lib://usr/lib + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Changqing Li +Signed-off-by: Khem Raj +--- + clang/include/clang/Driver/Distro.h | 2 ++ + clang/lib/Driver/Distro.cpp | 1 + + clang/lib/Driver/ToolChains/Linux.cpp | 1 + + 3 files changed, 4 insertions(+) + +diff --git a/clang/include/clang/Driver/Distro.h b/clang/include/clang/Driver/Distro.h +index 01d66b30b038..4d5aa366a005 100644 +--- a/clang/include/clang/Driver/Distro.h ++++ b/clang/include/clang/Driver/Distro.h +@@ -45,6 +45,7 @@ public: + RHEL7, + Fedora, + Gentoo, ++ //CLANG_EXTRA_OE_DISTRO_NAME + OpenSUSE, + UbuntuHardy, + UbuntuIntrepid, +@@ -134,6 +135,7 @@ public: + + bool IsGentoo() const { return DistroVal == Gentoo; } + ++ //CLANG_EXTRA_OE_DISTRO_CHECK + /// @} + }; + +diff --git a/clang/lib/Driver/Distro.cpp b/clang/lib/Driver/Distro.cpp +index 1898667279cc..ab7bc8d45ac1 100644 +--- a/clang/lib/Driver/Distro.cpp ++++ b/clang/lib/Driver/Distro.cpp +@@ -44,6 +44,7 @@ static Distro::DistroType DetectOsRelease(llvm::vfs::FileSystem &VFS) { + .Case("sles", Distro::OpenSUSE) + .Case("opensuse", Distro::OpenSUSE) + .Case("exherbo", Distro::Exherbo) ++ //CLANG_EXTRA_OE_DISTRO_CASE + .Default(Distro::UnknownDistro); + return Version; + } +diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp +index aac45650f97b..3c4034ea4921 100644 +--- a/clang/lib/Driver/ToolChains/Linux.cpp ++++ b/clang/lib/Driver/ToolChains/Linux.cpp +@@ -77,6 +77,7 @@ std::string Linux::getMultiarchTriple(const Driver &D, + return "x86_64-linux-android"; + if (TargetEnvironment == llvm::Triple::GNUX32) + return "x86_64-linux-gnux32"; ++ //CLANG_EXTRA_OE_DISTRO_TRIPLE + return "x86_64-linux-gnu"; + case llvm::Triple::aarch64: + if (IsAndroid) diff --git a/recipes-devtools/clang/clang/0029-Fix-lib-paths-for-OpenEmbedded-Host.patch b/recipes-devtools/clang/clang/0029-Fix-lib-paths-for-OpenEmbedded-Host.patch deleted file mode 100644 index 4edcd97..0000000 --- a/recipes-devtools/clang/clang/0029-Fix-lib-paths-for-OpenEmbedded-Host.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 4a5e70c334ceb5e83d971d1a00067281d42ebaff Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Tue, 7 Dec 2021 04:08:22 +0000 -Subject: [PATCH] Fix lib paths for OpenEmbedded Host - -Under OpenEmbedded Host, while building with clang-native, it cannot find -the GCCInstallPath, which causing following error: -[snip] -compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin/clang --target x86_64-linux --isystem/path/to/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/include --O2 -pipe -/path/to/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/share/cmake-3.21/Modules/CMakeCCompilerABI.c` -hosttools/ld: cannot find crtbeginS.o: No such file or directory -[snip] - -Before this patch: -compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin/clang -clang version 13.0.1 (https://github.com/llvm/llvm-project 08e3a5ccd952edee36b3c002e3a29c6b1b5153de) -Target: x86_64-unknown-linux-gnu -Thread model: posix -InstalledDir: /build/tmp-glibc/work/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin -Found candidate GCC installation: /usr/lib/gcc/x86_64-wrs-linux/10.2.0 - -After this patch: -compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin/clang -clang version 13.0.1 (https://github.com/llvm/llvm-project 08e3a5ccd952edee36b3c002e3a29c6b1b5153de) -Thread model: posix -InstalledDir: /build/tmp-glibc/work/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin -Found candidate GCC installation: /usr/lib/gcc/x86_64-wrs-linux/10.2.0 -Found candidate GCC installation: /usr/lib/x86_64-wrs-linux/10.2.0 -Selected GCC installation: /usr/lib/x86_64-wrs-linux/10.2.0 -Candidate multilib: .;@m64 -Selected multilib: .;@m64 - -Summary: -For OpenEmbedded Host, sysroots are of the form/usr/lib//x.y.z. -Take x86-64 as example, the default triple is x86_64-unknown-linux-gnu. -For clang-native, the target vendor is '-unknown', need to test current distro -to follow above form. - -Upstream-Status: Inappropriate [oe specific] - -Signed-off-by: Changqing Li -Signed-off-by: Khem Raj ---- - clang/lib/Driver/ToolChains/Gnu.cpp | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp -index b5ee01c566e3..f9dce01b579f 100644 ---- a/clang/lib/Driver/ToolChains/Gnu.cpp -+++ b/clang/lib/Driver/ToolChains/Gnu.cpp -@@ -23,6 +23,7 @@ - #include "clang/Driver/Options.h" - #include "clang/Driver/Tool.h" - #include "clang/Driver/ToolChain.h" -+#include "clang/Driver/Distro.h" - #include "llvm/Option/ArgList.h" - #include "llvm/Support/CodeGen.h" - #include "llvm/Support/Path.h" -@@ -2643,6 +2644,7 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( - const llvm::Triple &TargetTriple, const ArgList &Args, - const std::string &LibDir, StringRef CandidateTriple, - bool NeedsBiarchSuffix, bool GCCDirExists, bool GCCCrossDirExists) { -+ Distro Distro(D.getVFS(), TargetTriple); - // Locations relative to the system lib directory where GCC's triple-specific - // directories might reside. - struct GCCLibSuffix { -@@ -2660,7 +2662,8 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( - // files in that location, not just GCC installation data. - {CandidateTriple.str(), "..", - TargetTriple.getVendor() == llvm::Triple::Freescale || -- TargetTriple.getVendor() == llvm::Triple::OpenEmbedded}, -+ TargetTriple.getVendor() == llvm::Triple::OpenEmbedded || -+ Distro.IsOpenEmbedded()}, - - // This is the normal place. - {"gcc/" + CandidateTriple.str(), "../..", GCCDirExists}, diff --git a/recipes-devtools/clang/clang/0030-Correct-library-search-path-for-OpenEmbedded-Host.patch b/recipes-devtools/clang/clang/0030-Correct-library-search-path-for-OpenEmbedded-Host.patch deleted file mode 100644 index d286791..0000000 --- a/recipes-devtools/clang/clang/0030-Correct-library-search-path-for-OpenEmbedded-Host.patch +++ /dev/null @@ -1,84 +0,0 @@ -From f336b9d079e5576ce6d98bb1650002eb107b824a Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Tue, 7 Dec 2021 04:55:48 +0000 -Subject: [PATCH] Correct library search path for OpenEmbedded Host - -For OpenEmbedded Host, the gcc install path is -/usr/lib/x86_64-[distroname]-linux/[gcc-version]. -So the library search path is not found with default triple -'x86_64-linux-gnu' for x86_64. Causing following error: -[snip] -compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin/clang --target x86_64-linux --isystem/path/to/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/include --O2 -pipe -/path/to/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/share/cmake-3.21/Modules/CMakeCCompilerABI.c` -| /build/tmp-glibc/hosttools/ld: cannot find -lgcc -| /build/tmp-glibc/hosttools/ld: cannot find -lgcc -| clang-13: error: linker command failed with exit code 1 (use -v to see invocation) -[snip] - -before this patch: -b59da142f2b0:$ /path/to/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin/clang --print-search-dirs -programs: =/build/tmp-glibc/work/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin -libraries: =/build/tmp-glibc/work/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/lib/clang/13.0.1:/build/tmp-glibc/work/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin/../lib://lib://usr/lib - -after this patch: -b59da142f2b0:$ /path/to/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin/clang --print-search-dirs -programs: =/build/tmp-glibc/work/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin -libraries: =/build/tmp-glibc/work/x84_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/lib/clang/13.0.1:/usr/lib/x86_64-wrs-linux/10.2.0://lib/x86_64-wrs-linux://usr/lib/x86_64-wrs-linux:/build/tmp-glibc/work/x86_64-linux/compiler-rt-native/13.0.1-r0/recipe-sysroot-native/usr/bin/../lib://lib://usr/lib - -Upstream-Status: Inappropriate [oe specific] - -Signed-off-by: Changqing Li -Signed-off-by: Khem Raj ---- - clang/include/clang/Driver/Distro.h | 2 ++ - clang/lib/Driver/Distro.cpp | 1 + - clang/lib/Driver/ToolChains/Linux.cpp | 1 + - 3 files changed, 4 insertions(+) - -diff --git a/clang/include/clang/Driver/Distro.h b/clang/include/clang/Driver/Distro.h -index 01d66b30b038..4d5aa366a005 100644 ---- a/clang/include/clang/Driver/Distro.h -+++ b/clang/include/clang/Driver/Distro.h -@@ -45,6 +45,7 @@ public: - RHEL7, - Fedora, - Gentoo, -+ //CLANG_EXTRA_OE_DISTRO_NAME - OpenSUSE, - UbuntuHardy, - UbuntuIntrepid, -@@ -134,6 +135,7 @@ public: - - bool IsGentoo() const { return DistroVal == Gentoo; } - -+ //CLANG_EXTRA_OE_DISTRO_CHECK - /// @} - }; - -diff --git a/clang/lib/Driver/Distro.cpp b/clang/lib/Driver/Distro.cpp -index 1898667279cc..ab7bc8d45ac1 100644 ---- a/clang/lib/Driver/Distro.cpp -+++ b/clang/lib/Driver/Distro.cpp -@@ -44,6 +44,7 @@ static Distro::DistroType DetectOsRelease(llvm::vfs::FileSystem &VFS) { - .Case("sles", Distro::OpenSUSE) - .Case("opensuse", Distro::OpenSUSE) - .Case("exherbo", Distro::Exherbo) -+ //CLANG_EXTRA_OE_DISTRO_CASE - .Default(Distro::UnknownDistro); - return Version; - } -diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp -index aac45650f97b..3c4034ea4921 100644 ---- a/clang/lib/Driver/ToolChains/Linux.cpp -+++ b/clang/lib/Driver/ToolChains/Linux.cpp -@@ -77,6 +77,7 @@ std::string Linux::getMultiarchTriple(const Driver &D, - return "x86_64-linux-android"; - if (TargetEnvironment == llvm::Triple::GNUX32) - return "x86_64-linux-gnux32"; -+ //CLANG_EXTRA_OE_DISTRO_TRIPLE - return "x86_64-linux-gnu"; - case llvm::Triple::aarch64: - if (IsAndroid) diff --git a/recipes-devtools/clang/clang/0030-lldb-Link-with-libatomic-on-x86.patch b/recipes-devtools/clang/clang/0030-lldb-Link-with-libatomic-on-x86.patch new file mode 100644 index 0000000..eac9c00 --- /dev/null +++ b/recipes-devtools/clang/clang/0030-lldb-Link-with-libatomic-on-x86.patch @@ -0,0 +1,33 @@ +From ab07c6a2b3c301560fc57d517db4b05eb11b672f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 8 Feb 2022 01:31:26 -0800 +Subject: [PATCH] lldb: Link with libatomic on x86 + +cmake atomic check is not sufficient for i686 target where clang14 still +generates __atomic_store calls but the check does not entail this +function and happily thinks that compiler can resolve all atomic via intrinsics +on i686, but thats not the case, ideally the check for determining +atomic operation should be make more robust but until then lets ask to +link with libatomic on i686/linux + +Upstream-Status: Inappropriate [OE-Specific] +Signed-off-by: Khem Raj +--- + lldb/source/Utility/CMakeLists.txt | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/lldb/source/Utility/CMakeLists.txt b/lldb/source/Utility/CMakeLists.txt +index 1a92c033fac4..a0d8f3288c06 100644 +--- a/lldb/source/Utility/CMakeLists.txt ++++ b/lldb/source/Utility/CMakeLists.txt +@@ -19,6 +19,10 @@ if (CMAKE_SYSTEM_NAME MATCHES "Windows") + list(APPEND LLDB_SYSTEM_LIBS ws2_32 rpcrt4) + endif () + ++if (CMAKE_SYSTEM_PROCESSOR MATCHES "i686" AND CMAKE_SYSTEM_NAME MATCHES "Linux") ++ list(APPEND LLDB_SYSTEM_LIBS atomic) ++endif() ++ + if (NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB ) + list(APPEND LLDB_SYSTEM_LIBS atomic) + endif() diff --git a/recipes-devtools/clang/clang/0031-clang-exclude-openembedded-distributions-from-settin.patch b/recipes-devtools/clang/clang/0031-clang-exclude-openembedded-distributions-from-settin.patch new file mode 100644 index 0000000..db13027 --- /dev/null +++ b/recipes-devtools/clang/clang/0031-clang-exclude-openembedded-distributions-from-settin.patch @@ -0,0 +1,35 @@ +From a41182fd8dff761175c295d8bfabc933179cb8f7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 11 Feb 2022 12:29:14 -0800 +Subject: [PATCH] clang: exclude openembedded distributions from setting rpath + on openmp executables + +OpenEmbedded based SDKs stage toolchains outsides the target rootfs and +libomp.so is part of the target rootfs and not part of compiler +toolchain install or relative to it. It finds the libraries via +--sysroot during compile. This ensures that -rpath is not added for such +systems, since it is adding cross-compile paths to rpath which is not +correct when the binaries are run on real targets. + +Upstream-Status: Submitted [https://reviews.llvm.org/D119590] +Signed-off-by: Khem Raj +--- + clang/lib/Driver/ToolChains/CommonArgs.cpp | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp +index c8eabfac21dc..6e1e626a90ea 100644 +--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp ++++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp +@@ -649,6 +649,11 @@ void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args, + void tools::addOpenMPRuntimeSpecificRPath(const ToolChain &TC, + const ArgList &Args, + ArgStringList &CmdArgs) { ++ // OpenEmbedded/Yocto installs libomp.so into /usr/lib ++ // therefore using -rpath is not needed, on the contrary it adds ++ // paths from cross compiler install location which is not correct ++ if (TC.getTriple().getVendor() == llvm::Triple::OpenEmbedded) ++ return; + + if (Args.hasFlag(options::OPT_fopenmp_implicit_rpath, + options::OPT_fno_openmp_implicit_rpath, true)) { diff --git a/recipes-devtools/clang/clang/0031-lldb-Link-with-libatomic-on-x86.patch b/recipes-devtools/clang/clang/0031-lldb-Link-with-libatomic-on-x86.patch deleted file mode 100644 index 9f94c20..0000000 --- a/recipes-devtools/clang/clang/0031-lldb-Link-with-libatomic-on-x86.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 27491fdfb14a3381800fbf2785a68e93363ff4da Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 8 Feb 2022 01:31:26 -0800 -Subject: [PATCH] lldb: Link with libatomic on x86 - -cmake atomic check is not sufficient for i686 target where clang14 still -generates __atomic_store calls but the check does not entail this -function and happily thinks that compiler can resolve all atomic via intrinsics -on i686, but thats not the case, ideally the check for determining -atomic operation should be make more robust but until then lets ask to -link with libatomic on i686/linux - -Upstream-Status: Inappropriate [OE-Specific] -Signed-off-by: Khem Raj ---- - lldb/source/Utility/CMakeLists.txt | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/lldb/source/Utility/CMakeLists.txt b/lldb/source/Utility/CMakeLists.txt -index 1a92c033fac4..a0d8f3288c06 100644 ---- a/lldb/source/Utility/CMakeLists.txt -+++ b/lldb/source/Utility/CMakeLists.txt -@@ -19,6 +19,10 @@ if (CMAKE_SYSTEM_NAME MATCHES "Windows") - list(APPEND LLDB_SYSTEM_LIBS ws2_32 rpcrt4) - endif () - -+if (CMAKE_SYSTEM_PROCESSOR MATCHES "i686" AND CMAKE_SYSTEM_NAME MATCHES "Linux") -+ list(APPEND LLDB_SYSTEM_LIBS atomic) -+endif() -+ - if (NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB ) - list(APPEND LLDB_SYSTEM_LIBS atomic) - endif() diff --git a/recipes-devtools/clang/clang/0032-clang-exclude-openembedded-distributions-from-settin.patch b/recipes-devtools/clang/clang/0032-clang-exclude-openembedded-distributions-from-settin.patch deleted file mode 100644 index 5d04625..0000000 --- a/recipes-devtools/clang/clang/0032-clang-exclude-openembedded-distributions-from-settin.patch +++ /dev/null @@ -1,35 +0,0 @@ -From aa89fb818fd69fa1ae2021acd91c3fcc5692daa8 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 11 Feb 2022 12:29:14 -0800 -Subject: [PATCH] clang: exclude openembedded distributions from setting rpath - on openmp executables - -OpenEmbedded based SDKs stage toolchains outsides the target rootfs and -libomp.so is part of the target rootfs and not part of compiler -toolchain install or relative to it. It finds the libraries via ---sysroot during compile. This ensures that -rpath is not added for such -systems, since it is adding cross-compile paths to rpath which is not -correct when the binaries are run on real targets. - -Upstream-Status: Submitted [https://reviews.llvm.org/D119590] -Signed-off-by: Khem Raj ---- - clang/lib/Driver/ToolChains/CommonArgs.cpp | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp -index c8eabfac21dc..6e1e626a90ea 100644 ---- a/clang/lib/Driver/ToolChains/CommonArgs.cpp -+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp -@@ -649,6 +649,11 @@ void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args, - void tools::addOpenMPRuntimeSpecificRPath(const ToolChain &TC, - const ArgList &Args, - ArgStringList &CmdArgs) { -+ // OpenEmbedded/Yocto installs libomp.so into /usr/lib -+ // therefore using -rpath is not needed, on the contrary it adds -+ // paths from cross compiler install location which is not correct -+ if (TC.getTriple().getVendor() == llvm::Triple::OpenEmbedded) -+ return; - - if (Args.hasFlag(options::OPT_fopenmp_implicit_rpath, - options::OPT_fno_openmp_implicit_rpath, true)) { diff --git a/recipes-devtools/clang/clang/0032-compiler-rt-Enable-__int128-for-ppc32.patch b/recipes-devtools/clang/clang/0032-compiler-rt-Enable-__int128-for-ppc32.patch new file mode 100644 index 0000000..e21aa30 --- /dev/null +++ b/recipes-devtools/clang/clang/0032-compiler-rt-Enable-__int128-for-ppc32.patch @@ -0,0 +1,73 @@ +From 4467235fed310d0c78cc71307ebd270136ed47d6 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 9 Mar 2022 16:28:16 -0800 +Subject: [PATCH] compiler-rt: Enable __int128 for ppc32 + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + compiler-rt/lib/builtins/CMakeLists.txt | 15 +++++++-------- + compiler-rt/lib/builtins/int_types.h | 2 +- + 2 files changed, 8 insertions(+), 9 deletions(-) + +diff --git a/compiler-rt/lib/builtins/CMakeLists.txt b/compiler-rt/lib/builtins/CMakeLists.txt +index ec668e294d6d..72556d2fc58e 100644 +--- a/compiler-rt/lib/builtins/CMakeLists.txt ++++ b/compiler-rt/lib/builtins/CMakeLists.txt +@@ -628,11 +628,9 @@ set(mips64_SOURCES ${GENERIC_TF_SOURCES} + set(mips64el_SOURCES ${GENERIC_TF_SOURCES} + ${mips_SOURCES}) + +-set(powerpc_SOURCES ${GENERIC_SOURCES}) +- + set(powerpcspe_SOURCES ${GENERIC_SOURCES}) + +-set(powerpc64_SOURCES ++set(powerpc_SOURCES + ppc/divtc3.c + ppc/fixtfdi.c + ppc/fixunstfdi.c +@@ -647,14 +645,15 @@ set(powerpc64_SOURCES + ) + # These routines require __int128, which isn't supported on AIX. + if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "AIX") +- set(powerpc64_SOURCES ++ set(powerpc_SOURCES + ppc/floattitf.c + ppc/fixtfti.c + ppc/fixunstfti.c +- ${powerpc64_SOURCES} ++ ${powerpc_SOURCES} + ) + endif() +-set(powerpc64le_SOURCES ${powerpc64_SOURCES}) ++set(powerpc64le_SOURCES ${powerpc_SOURCES}) ++set(powerpc64_SOURCES ${powerpc_SOURCES}) + + set(riscv_SOURCES + riscv/save.S +@@ -761,9 +760,9 @@ else () + list(APPEND BUILTIN_CFLAGS_${arch} -fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET) + endif() + +- # For RISCV32, we must force enable int128 for compiling long ++ # For RISCV32/PPC32, we must force enable int128 for compiling long + # double routines. +- if("${arch}" STREQUAL "riscv32") ++ if("${arch}" STREQUAL "riscv32" OR "${arch}" STREQUAL "powerpc" ) + list(APPEND BUILTIN_CFLAGS_${arch} -fforce-enable-int128) + endif() + +diff --git a/compiler-rt/lib/builtins/int_types.h b/compiler-rt/lib/builtins/int_types.h +index 7a72de480676..9ee5a327b28a 100644 +--- a/compiler-rt/lib/builtins/int_types.h ++++ b/compiler-rt/lib/builtins/int_types.h +@@ -64,7 +64,7 @@ typedef union { + } udwords; + + #if defined(__LP64__) || defined(__wasm__) || defined(__mips64) || \ +- defined(__riscv) || defined(_WIN64) ++ defined(__riscv) || defined(_WIN64) || defined(__powerpc__) + #define CRT_HAS_128BIT + #endif + diff --git a/recipes-devtools/clang/clang/0033-compiler-rt-Enable-__int128-for-ppc32.patch b/recipes-devtools/clang/clang/0033-compiler-rt-Enable-__int128-for-ppc32.patch deleted file mode 100644 index 89f62fa..0000000 --- a/recipes-devtools/clang/clang/0033-compiler-rt-Enable-__int128-for-ppc32.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 640b23ccdd2e8605a2cfa940f93619f02e2616f7 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 9 Mar 2022 16:28:16 -0800 -Subject: [PATCH] compiler-rt: Enable __int128 for ppc32 - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- - compiler-rt/lib/builtins/CMakeLists.txt | 15 +++++++-------- - compiler-rt/lib/builtins/int_types.h | 2 +- - 2 files changed, 8 insertions(+), 9 deletions(-) - -diff --git a/compiler-rt/lib/builtins/CMakeLists.txt b/compiler-rt/lib/builtins/CMakeLists.txt -index ec668e294d6d..72556d2fc58e 100644 ---- a/compiler-rt/lib/builtins/CMakeLists.txt -+++ b/compiler-rt/lib/builtins/CMakeLists.txt -@@ -628,11 +628,9 @@ set(mips64_SOURCES ${GENERIC_TF_SOURCES} - set(mips64el_SOURCES ${GENERIC_TF_SOURCES} - ${mips_SOURCES}) - --set(powerpc_SOURCES ${GENERIC_SOURCES}) -- - set(powerpcspe_SOURCES ${GENERIC_SOURCES}) - --set(powerpc64_SOURCES -+set(powerpc_SOURCES - ppc/divtc3.c - ppc/fixtfdi.c - ppc/fixunstfdi.c -@@ -647,14 +645,15 @@ set(powerpc64_SOURCES - ) - # These routines require __int128, which isn't supported on AIX. - if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "AIX") -- set(powerpc64_SOURCES -+ set(powerpc_SOURCES - ppc/floattitf.c - ppc/fixtfti.c - ppc/fixunstfti.c -- ${powerpc64_SOURCES} -+ ${powerpc_SOURCES} - ) - endif() --set(powerpc64le_SOURCES ${powerpc64_SOURCES}) -+set(powerpc64le_SOURCES ${powerpc_SOURCES}) -+set(powerpc64_SOURCES ${powerpc_SOURCES}) - - set(riscv_SOURCES - riscv/save.S -@@ -761,9 +760,9 @@ else () - list(APPEND BUILTIN_CFLAGS_${arch} -fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET) - endif() - -- # For RISCV32, we must force enable int128 for compiling long -+ # For RISCV32/PPC32, we must force enable int128 for compiling long - # double routines. -- if("${arch}" STREQUAL "riscv32") -+ if("${arch}" STREQUAL "riscv32" OR "${arch}" STREQUAL "powerpc" ) - list(APPEND BUILTIN_CFLAGS_${arch} -fforce-enable-int128) - endif() - -diff --git a/compiler-rt/lib/builtins/int_types.h b/compiler-rt/lib/builtins/int_types.h -index 7a72de480676..9ee5a327b28a 100644 ---- a/compiler-rt/lib/builtins/int_types.h -+++ b/compiler-rt/lib/builtins/int_types.h -@@ -64,7 +64,7 @@ typedef union { - } udwords; - - #if defined(__LP64__) || defined(__wasm__) || defined(__mips64) || \ -- defined(__riscv) || defined(_WIN64) -+ defined(__riscv) || defined(_WIN64) || defined(__powerpc__) - #define CRT_HAS_128BIT - #endif - diff --git a/recipes-devtools/clang/clang/0033-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch b/recipes-devtools/clang/clang/0033-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch new file mode 100644 index 0000000..8688edc --- /dev/null +++ b/recipes-devtools/clang/clang/0033-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch @@ -0,0 +1,44 @@ +From e8f426d6512bbedaa651c67915407c793bae3aec Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 12 Aug 2022 11:50:57 -0700 +Subject: [PATCH] llvm: Do not use cmake infra to detect libzstd + +OE's version is build using plain make not cmake as a result we do not +have the cmake support files and this probing method can get this info +from build host and force linking with libzstd from /usr/lib which is +not what we want when cross building. + +Fixes errors building llvm-config like +/usr/lib/libzstd.so.1.5.2: error adding symbols: file in wrong +format +| clang-15: error: linker command failed with exit code 1 (use -v to see invocation) +| ninja: build stopped: subcommand failed. + +Upstream-Status: Inappropriate [OE-Specific] +Signed-off-by: Khem Raj +--- + llvm/lib/Support/CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/llvm/lib/Support/CMakeLists.txt b/llvm/lib/Support/CMakeLists.txt +index 5044b2639a0f..9bdd35c4eae4 100644 +--- a/llvm/lib/Support/CMakeLists.txt ++++ b/llvm/lib/Support/CMakeLists.txt +@@ -26,7 +26,7 @@ if(LLVM_ENABLE_ZLIB) + endif() + + if(LLVM_ENABLE_ZSTD) +- list(APPEND imported_libs zstd::libzstd_shared) ++ list(APPEND imported_libs zstd) + endif() + + if( MSVC OR MINGW ) +@@ -305,7 +305,7 @@ if(LLVM_ENABLE_ZSTD) + if(NOT zstd_library) + get_property(zstd_library TARGET zstd::libzstd_shared PROPERTY LOCATION) + endif() +- set(llvm_system_libs ${llvm_system_libs} "${zstd_library}") ++ set(llvm_system_libs ${llvm_system_libs} "zstd") + endif() + + if(LLVM_ENABLE_TERMINFO) diff --git a/recipes-devtools/clang/clang/0034-Revert-MIPS-compiler-rt-Fix-stat-struct-s-size-for-O.patch b/recipes-devtools/clang/clang/0034-Revert-MIPS-compiler-rt-Fix-stat-struct-s-size-for-O.patch new file mode 100644 index 0000000..34c5f53 --- /dev/null +++ b/recipes-devtools/clang/clang/0034-Revert-MIPS-compiler-rt-Fix-stat-struct-s-size-for-O.patch @@ -0,0 +1,32 @@ +From 61d5f470438c780f3456a98d4d3da28e0174f450 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 11 Sep 2022 16:15:36 -0700 +Subject: [PATCH] Revert "[MIPS][compiler-rt] Fix stat struct's size for O32 + ABI" + +This reverts commit 2bfb0fcb51510f22723c8cdfefe2a796a0a5ab25. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + .../lib/sanitizer_common/sanitizer_platform_limits_posix.h | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h +index bd5692ed511b..a6091307bdce 100644 +--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -98,10 +98,9 @@ const unsigned struct_kernel_stat64_sz = 104; + const unsigned struct_kernel_stat_sz = 144; + const unsigned struct_kernel_stat64_sz = 104; + #elif defined(__mips__) +-const unsigned struct_kernel_stat_sz = +- SANITIZER_ANDROID +- ? FIRST_32_SECOND_64(104, 128) +- : FIRST_32_SECOND_64((_MIPS_SIM == _ABIN32) ? 160 : 144, 216); ++const unsigned struct_kernel_stat_sz = SANITIZER_ANDROID ++ ? FIRST_32_SECOND_64(104, 128) ++ : FIRST_32_SECOND_64(160, 216); + const unsigned struct_kernel_stat64_sz = 104; + #elif defined(__s390__) && !defined(__s390x__) + const unsigned struct_kernel_stat_sz = 64; diff --git a/recipes-devtools/clang/clang/0034-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch b/recipes-devtools/clang/clang/0034-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch deleted file mode 100644 index 88b0744..0000000 --- a/recipes-devtools/clang/clang/0034-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch +++ /dev/null @@ -1,44 +0,0 @@ -From dfff33f748b0335ccc2df25c45f3841d459b6345 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 12 Aug 2022 11:50:57 -0700 -Subject: [PATCH] llvm: Do not use cmake infra to detect libzstd - -OE's version is build using plain make not cmake as a result we do not -have the cmake support files and this probing method can get this info -from build host and force linking with libzstd from /usr/lib which is -not what we want when cross building. - -Fixes errors building llvm-config like -/usr/lib/libzstd.so.1.5.2: error adding symbols: file in wrong -format -| clang-15: error: linker command failed with exit code 1 (use -v to see invocation) -| ninja: build stopped: subcommand failed. - -Upstream-Status: Inappropriate [OE-Specific] -Signed-off-by: Khem Raj ---- - llvm/lib/Support/CMakeLists.txt | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/llvm/lib/Support/CMakeLists.txt b/llvm/lib/Support/CMakeLists.txt -index 5044b2639a0f..9bdd35c4eae4 100644 ---- a/llvm/lib/Support/CMakeLists.txt -+++ b/llvm/lib/Support/CMakeLists.txt -@@ -26,7 +26,7 @@ if(LLVM_ENABLE_ZLIB) - endif() - - if(LLVM_ENABLE_ZSTD) -- list(APPEND imported_libs zstd::libzstd_shared) -+ list(APPEND imported_libs zstd) - endif() - - if( MSVC OR MINGW ) -@@ -305,7 +305,7 @@ if(LLVM_ENABLE_ZSTD) - if(NOT zstd_library) - get_property(zstd_library TARGET zstd::libzstd_shared PROPERTY LOCATION) - endif() -- set(llvm_system_libs ${llvm_system_libs} "${zstd_library}") -+ set(llvm_system_libs ${llvm_system_libs} "zstd") - endif() - - if(LLVM_ENABLE_TERMINFO) diff --git a/recipes-devtools/clang/clang/0035-Revert-MIPS-compiler-rt-Fix-stat-struct-s-size-for-O.patch b/recipes-devtools/clang/clang/0035-Revert-MIPS-compiler-rt-Fix-stat-struct-s-size-for-O.patch deleted file mode 100644 index f1926f3..0000000 --- a/recipes-devtools/clang/clang/0035-Revert-MIPS-compiler-rt-Fix-stat-struct-s-size-for-O.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 2d3ac2fb6e291cd11ca482fa4843565c04d414f4 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 11 Sep 2022 16:15:36 -0700 -Subject: [PATCH] Revert "[MIPS][compiler-rt] Fix stat struct's size for O32 - ABI" - -This reverts commit 2bfb0fcb51510f22723c8cdfefe2a796a0a5ab25. - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- - .../lib/sanitizer_common/sanitizer_platform_limits_posix.h | 7 +++---- - 1 file changed, 3 insertions(+), 4 deletions(-) - -diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h -index bd5692ed511b..a6091307bdce 100644 ---- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h -+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h -@@ -98,10 +98,9 @@ const unsigned struct_kernel_stat64_sz = 104; - const unsigned struct_kernel_stat_sz = 144; - const unsigned struct_kernel_stat64_sz = 104; - #elif defined(__mips__) --const unsigned struct_kernel_stat_sz = -- SANITIZER_ANDROID -- ? FIRST_32_SECOND_64(104, 128) -- : FIRST_32_SECOND_64((_MIPS_SIM == _ABIN32) ? 160 : 144, 216); -+const unsigned struct_kernel_stat_sz = SANITIZER_ANDROID -+ ? FIRST_32_SECOND_64(104, 128) -+ : FIRST_32_SECOND_64(160, 216); - const unsigned struct_kernel_stat64_sz = 104; - #elif defined(__s390__) && !defined(__s390x__) - const unsigned struct_kernel_stat_sz = 64; diff --git a/recipes-devtools/clang/common.inc b/recipes-devtools/clang/common.inc index 7e6b1ef..a0f8a00 100644 --- a/recipes-devtools/clang/common.inc +++ b/recipes-devtools/clang/common.inc @@ -35,17 +35,15 @@ SRC_URI = "\ file://0023-clang-Fix-x86-triple-for-non-debian-multiarch-linux-.patch \ file://0024-compiler-rt-Link-scudo-with-SANITIZER_CXX_ABI_LIBRAR.patch \ file://0025-libunwind-Added-unw_backtrace-method.patch \ - file://0026-Drop-the-git-suffix-from-various-version-variables.patch \ - file://0027-clang-Do-not-use-install-relative-libc-headers.patch \ - file://0028-clang-Fix-how-driver-finds-GCC-installation-path-on-.patch \ - file://0029-Fix-lib-paths-for-OpenEmbedded-Host.patch \ - file://0030-Correct-library-search-path-for-OpenEmbedded-Host.patch \ - file://0031-lldb-Link-with-libatomic-on-x86.patch \ - file://0032-clang-exclude-openembedded-distributions-from-settin.patch \ - file://0033-compiler-rt-Enable-__int128-for-ppc32.patch \ - file://0034-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch \ - file://0035-Revert-MIPS-compiler-rt-Fix-stat-struct-s-size-for-O.patch \ - file://0001-llvm-objdump-Change-printSymbolVersionDependency-to-.patch \ + file://0026-clang-Do-not-use-install-relative-libc-headers.patch \ + file://0027-clang-Fix-how-driver-finds-GCC-installation-path-on-.patch \ + file://0028-Fix-lib-paths-for-OpenEmbedded-Host.patch \ + file://0029-Correct-library-search-path-for-OpenEmbedded-Host.patch \ + file://0030-lldb-Link-with-libatomic-on-x86.patch \ + file://0031-clang-exclude-openembedded-distributions-from-settin.patch \ + file://0032-compiler-rt-Enable-__int128-for-ppc32.patch \ + file://0033-llvm-Do-not-use-cmake-infra-to-detect-libzstd.patch \ + file://0034-Revert-MIPS-compiler-rt-Fix-stat-struct-s-size-for-O.patch \ " # Fallback to no-PIE if not set GCCPIE ??= "" -- cgit v1.2.3-54-g00ecf