diff options
author | Oliver Reiche <oliver.reiche@huawei.com> | 2025-03-20 12:49:00 +0100 |
---|---|---|
committer | Oliver Reiche <oliver.reiche@huawei.com> | 2025-04-02 15:32:09 +0200 |
commit | e954e9e0d78413f32d8c11fcb2c96d17e157484b (patch) | |
tree | 9b614cb9692781931ed155ee23bec05c143da306 /etc | |
parent | 9fb01463bf1e829e38ac2ec24eb474017ce6709f (diff) | |
download | bootstrappable-toolchain-e954e9e0d78413f32d8c11fcb2c96d17e157484b.tar.gz |
Add Clang 19.1.1
Diffstat (limited to 'etc')
-rw-r--r-- | etc/patches/TARGETS | 1 | ||||
-rw-r--r-- | etc/patches/clang-19/libcxx-musl-support.patch | 57 | ||||
-rw-r--r-- | etc/repos.json | 58 |
3 files changed, 115 insertions, 1 deletions
diff --git a/etc/patches/TARGETS b/etc/patches/TARGETS index 6eab87b..f52388c 100644 --- a/etc/patches/TARGETS +++ b/etc/patches/TARGETS @@ -7,4 +7,5 @@ , "clang-16": {"type": "install", "deps": [["TREE", null, "clang-16"]]} , "clang-17": {"type": "install", "deps": [["TREE", null, "clang-17"]]} , "clang-18": {"type": "install", "deps": [["TREE", null, "clang-18"]]} +, "clang-19": {"type": "install", "deps": [["TREE", null, "clang-19"]]} } diff --git a/etc/patches/clang-19/libcxx-musl-support.patch b/etc/patches/clang-19/libcxx-musl-support.patch new file mode 100644 index 0000000..f19a221 --- /dev/null +++ b/etc/patches/clang-19/libcxx-musl-support.patch @@ -0,0 +1,57 @@ +From cfceef12ffa2963ffc32a0e2797dfc7e5ff7a2ac Mon Sep 17 00:00:00 2001 +From: Oliver Reiche <oliver.reiche@huawei.com> +Date: Thu, 20 Mar 2025 12:05:42 +0200 +Subject: [PATCH] libcxx: Add musl support for __locale + +... which does not provide a known rune table and uses +missing locale-based string to integer conversion functions. +--- + libcxx/include/__locale | 32 ++++++++++++++++++++++++++++++++ + 1 file changed, 32 insertions(+) + +diff --git a/libcxx/include/__locale b/libcxx/include/__locale +index 3ba7ac1..98563b6 100644 +--- a/libcxx/include/__locale ++++ b/libcxx/include/__locale +@@ -27,6 +27,38 @@ + #include <cstddef> + #include <cstring> + ++// Detect musl libc (inspired by musl detection from gcc's config.guess) ++#include <features.h> ++#if !(defined(__UCLIBC__) || defined(__dietlibc__) || defined(__GLIBC__)) ++# include <stdarg.h> ++# ifdef __DEFINED_va_list ++# ifndef __MUSL_LIBC__ ++# define __MUSL_LIBC__ ++# endif ++# endif ++#endif ++ ++#ifdef __MUSL_LIBC__ ++// Fall back to default rune table for musl libc ++# ifndef _LIBCPP_PROVIDES_DEFAULT_RUNE_TABLE ++# define _LIBCPP_PROVIDES_DEFAULT_RUNE_TABLE ++# endif ++// Implement missing strto*_l functions for musl libc ++# define __MUSL_LIBC_CREATE_STRTOX_L(X) \ ++ static inline auto \ ++ strto ## X ## _l(const char* str, char** end, int base, locale_t l) { \ ++ locale_t old = uselocale(l); \ ++ auto result = strto ## X(str, end, base); \ ++ uselocale(old); \ ++ return result; \ ++ } ++__MUSL_LIBC_CREATE_STRTOX_L(l) ++__MUSL_LIBC_CREATE_STRTOX_L(ll) ++__MUSL_LIBC_CREATE_STRTOX_L(ul) ++__MUSL_LIBC_CREATE_STRTOX_L(ull) ++# undef __MUSL_LIBC_CREATE_STRTOX_L ++#endif ++ + #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS + # include <cwchar> + #else +-- +2.30.2 + diff --git a/etc/repos.json b/etc/repos.json index c5d338f..dab8c31 100644 --- a/etc/repos.json +++ b/etc/repos.json @@ -80,6 +80,19 @@ , "stage-0": "rules/stage-0" } } + , "rules/clang_with_gcc14": + { "repository": "rules" + , "target_root": "defaults" + , "target_file_name": "clang.TARGETS" + , "rule_root": "rules" + , "bindings": + { "base": "rules/gcc" + , "gcc": "compilers/gcc-14.2.0-native" + , "cmake": "cmake-3.27.1" + , "python": "python-3.12.0" + , "stage-0": "rules/stage-0" + } + } , "rules/tools": { "repository": "rules" , "target_root": "defaults" @@ -479,6 +492,24 @@ , "iwyu": "iwyu-18" } } + , "compilers/clang-19.1.1-native": + { "repository": + { "type": "archive" + , "content": "6fbd4ba1578adadde3ab0d215c93bbda30be61c5" + , "fetch": "https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-19.1.1.tar.gz" + , "sha256": "115dfd98a353d05bffdab3f80db22f159da48aca0124e8c416f437adcd54b77f" + , "subdir": "llvm-project-llvmorg-19.1.1" + , "pragma": {"special": "resolve-partially"} + } + , "target_root": "compilers" + , "target_file_name": "clang-19-native.TARGETS" + , "bindings": + { "rules": "rules/clang_with_gcc14" + , "binutils": "imports/binutils-latest" + , "patches": "patches" + , "iwyu": "iwyu-19" + } + } , "tools/busybox-1.36.1": { "repository": { "type": "archive" @@ -575,7 +606,12 @@ , "clang-latest-native": { "repository": "toolchains" , "target_file_name": "clang.TARGETS" - , "bindings": {"rules": "rules", "clang": "compilers/clang-18.1.8-native"} + , "bindings": {"rules": "rules", "clang": "compilers/clang-19.1.1-native"} + } + , "clang-19.1.1-native": + { "repository": "toolchains" + , "target_file_name": "clang.TARGETS" + , "bindings": {"rules": "rules", "clang": "compilers/clang-19.1.1-native"} } , "clang-18.1.8-native": { "repository": "toolchains" @@ -715,6 +751,15 @@ , "compiler": "clang-latest-native" } } + , "clang-19.1.1-native+tools": + { "repository": "toolchains" + , "target_file_name": "compiler+tools.TARGETS" + , "bindings": + { "rules": "rules" + , "tools": "tools-all" + , "compiler": "clang-19.1.1-native" + } + } , "clang-18.1.8-native+tools": { "repository": "toolchains" , "target_file_name": "compiler+tools.TARGETS" @@ -817,6 +862,17 @@ , "target_file_name": "iwyu.TARGETS" , "target_root": "imports" } + , "iwyu-19": + { "repository": + { "type": "archive" + , "content": "66888a7220ad0939788b49e12fe1909b68483ee7" + , "fetch": "https://github.com/include-what-you-use/include-what-you-use/archive/refs/tags/0.23.tar.gz" + , "sha256": "16672743fdf781d7db313f48c7f4b34bc6517eddfd92d7db793790fe793a306c" + , "subdir": "include-what-you-use-0.23" + } + , "target_file_name": "iwyu.TARGETS" + , "target_root": "imports" + } , "patches/busybox-1593": { "repository": { "type": "foreign file" |