Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
d41a1f6
updated v16.0.0
regro-cf-autotick-bot Mar 18, 2023
c34a7d6
MNT: Re-rendered with conda-build 3.23.3, conda-smithy 3.23.0, and co…
regro-cf-autotick-bot Mar 18, 2023
0eab233
Merge remote-tracking branch 'upstream/rc' into 16.0.0_hd703d8
h-vetinari Mar 18, 2023
7a836a5
remove rc-channels
h-vetinari Mar 18, 2023
81028e3
update link to compiler support policy
h-vetinari Mar 18, 2023
8bc22ef
MNT: Re-rendered with conda-build 3.23.3, conda-smithy 3.23.0, and co…
h-vetinari Mar 18, 2023
f6d267b
libcxx v16.0.0 (#113)
github-actions[bot] Mar 28, 2023
4beaa46
retrigger CI
h-vetinari Mar 29, 2023
43c6a1d
updated v16.0.1
regro-cf-autotick-bot Apr 5, 2023
759acc3
libcxx v16.0.1 (#115)
github-actions[bot] Apr 7, 2023
aca5051
updated v16.0.2
regro-cf-autotick-bot Apr 20, 2023
cc0c2fa
MNT: Re-rendered with conda-build 3.24.0, conda-smithy 3.23.1, and co…
regro-cf-autotick-bot Apr 20, 2023
64e22f8
libcxx v16.0.2 (#116)
github-actions[bot] Apr 22, 2023
ac8f76d
updated v16.0.3
regro-cf-autotick-bot May 3, 2023
602fc94
Merge pull request #117 from regro-cf-autotick-bot/16.0.3_h28ca08
h-vetinari May 7, 2023
d8ab787
updated v16.0.4
regro-cf-autotick-bot May 17, 2023
152dc4d
[ci skip] add abi_migration_branches
h-vetinari May 17, 2023
caf6520
libcxx v16.0.4 (#118)
github-actions[bot] May 18, 2023
eb3ee83
updated v16.0.5
regro-cf-autotick-bot Jun 2, 2023
8390fb9
Merge pull request #123 from regro-cf-autotick-bot/16.0.5_hafa4de
h-vetinari Jun 3, 2023
a3c5cc7
updated v16.0.6
regro-cf-autotick-bot Jun 14, 2023
0ec7cd6
libcxx v16.0.6 (#124)
github-actions[bot] Jun 16, 2023
f53c65c
Merge remote-tracking branch 'upstream/main' into rc
h-vetinari Jul 21, 2023
501a3a2
Revert "remove rc-channels"
h-vetinari Jul 21, 2023
2d8b590
build from upstream main branch
h-vetinari Jul 21, 2023
aa535c3
require MacOS >=10.13
h-vetinari Jul 21, 2023
d120f1f
depend on glibc 2.17
h-vetinari Jul 21, 2023
b3ff0a4
rebase patches
h-vetinari Jul 21, 2023
ead0467
MNT: Re-rendered with conda-build 3.25.0, conda-smithy 3.24.0, and co…
h-vetinari Jul 21, 2023
d45216b
update test for patch to __availability
h-vetinari Jul 30, 2023
1778fc8
libcxx 17.0.0.rc1
h-vetinari Jul 30, 2023
e1219de
ensure we don't use old sysroot at runtime
h-vetinari Jul 30, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .ci_support/osx_64_.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
MACOSX_DEPLOYMENT_TARGET:
- '10.9'
- '10.13'
MACOSX_SDK_VERSION:
- '10.14'
channel_sources:
Expand All @@ -9,7 +9,7 @@ channel_targets:
cxx_compiler:
- clang_bootstrap
cxx_compiler_version:
- '14'
- '15'
dummy_var:
- '0'
macos_machine:
Expand Down
2 changes: 1 addition & 1 deletion .ci_support/osx_arm64_.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ channel_targets:
cxx_compiler:
- clang_bootstrap
cxx_compiler_version:
- '14'
- '15'
dummy_var:
- '1'
macos_machine:
Expand Down
10 changes: 5 additions & 5 deletions .scripts/run_osx_build.sh

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions conda-forge.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
bot:
abi_migration_branches:
- 15.x
- 14.x
provider: {linux_aarch64: default, linux_ppc64le: default}
travis:
osx_image: xcode6.4
Expand Down
8 changes: 5 additions & 3 deletions recipe/conda_build_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,16 @@ channel_sources:
- conda-forge/label/llvm_rc,conda-forge

# libcxx only supports the last released GCC version, see
# https://releases.llvm.org/13.0.0/projects/libcxx/docs/index.html#platform-and-compiler-support
# https://libcxx.llvm.org/index.html#platform-and-compiler-support
c_compiler_version: # [linux]
- 12 # [linux]
cxx_compiler_version: # [linux]
- 12 # [linux]

MACOSX_SDK_VERSION: # [osx and x86_64]
- 10.14 # [osx and x86_64]
MACOSX_SDK_VERSION: # [osx and x86_64]
- "10.14" # [osx and x86_64]
MACOSX_DEPLOYMENT_TARGET: # [osx and x86_64]
- "10.13" # [osx and x86_64]

dummy_var: # [osx]
- 0 # [osx and x86_64]
Expand Down
28 changes: 15 additions & 13 deletions recipe/meta.yaml
Original file line number Diff line number Diff line change
@@ -1,22 +1,17 @@
{% set version = "16.0.0.rc4" %}
{% set version = "17.0.0.rc1" %}

package:
name: libcxx_and_libcxxabi
version: {{ version }}

source:
- url: https://github.com/llvm/llvm-project/releases/download/llvmorg-{{ version.replace(".rc", "-rc") }}/llvm-project-{{ version.replace(".rc", "rc") }}.src.tar.xz
sha256: 36e723b0befd0874a799253f5cfac8b00fe5bbfec3020ccf7b4fdae566a7e089
sha256: 01b80625c131b8281dcf76a4e6395d10f45835c60e27357c92abf5a98c9a0337
patches:
- patches/0001-libcxxabi-10.9-compatibility.patch # [osx and x86_64]
- patches/0002-Support-legacy-standalone-builds.patch
- patches/0001-Support-legacy-standalone-builds.patch
# See https://lists.llvm.org/pipermail/libcxx-dev/2021-July/001172.html
- patches/0003-Fix-ABI-compatibility-with-system.patch
- patches/0004-custom-error-message-for-old-sdk.patch
# upstream removed fallbacks in case the underlying libc didn't support C11 in
# https://github.com/llvm/llvm-project/commit/21f73d5826fb5024a27eaacafadfa316f58949c5;
# however, it seems that the then-required using_if_exists does not work as desired yet
- patches/0005-Revert-libc-Remove-workaround-for-C11-features-on-co.patch
- patches/0002-Fix-ABI-compatibility-with-system.patch
- patches/0003-custom-error-message-for-old-sdk.patch

build:
number: 0
Expand All @@ -33,6 +28,8 @@ requirements:
- ninja
- {{ compiler('cxx') }}
- python >3 # [not osx]
# actually would need >=2.24, but we don't have that in conda-forge yet
- sysroot_linux-64 2.17 # [linux64]
host:
- clangdev {{ version }} # [not osx]
- llvmdev {{ version }} # [not osx]
Expand All @@ -51,9 +48,14 @@ outputs:
requirements:
build:
- {{ compiler('cxx') }}
# actually would need >=2.24, but we don't have that in conda-forge yet
- sysroot_linux-64 2.17 # [linux64]
host:
run:
- {{ pin_subpackage("libcxxabi", exact=True) }} # [linux]
run_constrained:
- sysroot_linux-64 >=2.17 # [linux64]
- __osx >={{ MACOSX_DEPLOYMENT_TARGET }} # [osx and x86_64]
test:
requires:
- clang # [osx]
Expand All @@ -74,10 +76,10 @@ outputs:
- bash compile_test.sh # [unix]
- compile_test.bat # [win]
# make sure we inserted link to our docs wherever it is necessary;
# i.e. everywhere there's a string "availability(macos,...,introduced=<ver>)" for osx version >10.9;
# i.e. everywhere there's a string "availability(macos,...,introduced=<ver>)" for osx version >10.13;
# 'grep -v' inverts the match but returns non-zero exit code if no lines are returned; so we use 'wc -l';
# we want to have zero lines that don't either: contain the link or are for 10.9
- if [ 0 -eq $(cat ${PREFIX}/include/c++/v1/__availability | grep "availability(macos" | grep -vE "(conda-forge|10.9)" | wc -l) ]; then exit 0; else exit 1; fi # [osx]
# we want to have zero lines that don't either: contain our link or are for <=10.13 (lowest occurring in that file is 10.9)
- if [ 0 -eq $(cat ${PREFIX}/include/c++/v1/__availability | grep "availability(macos" | grep -vE "(conda-forge|10.9|10.1[0-3])" | wc -l) ]; then exit 0; else exit 1; fi # [osx]
# !!!!!!!!!!!! README !!!!!!!!!!!!!!!!!!
# we do not ship libcxxabi on OSX - this breaks exception passing
- if [ -f $PREFIX/lib/libc++abi.dylib ]; then exit 1; fi # [osx]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
From d29448d3a9f777674c2aea03ebbdba6bb245e97e Mon Sep 17 00:00:00 2001
From d29ac5318e8e94e0365f6f93547d1b6e97ac48e4 Mon Sep 17 00:00:00 2001
From: Isuru Fernando <[email protected]>
Date: Tue, 18 May 2021 19:51:28 -0500
Subject: [PATCH 2/5] Support legacy standalone builds
Subject: [PATCH 1/3] Support legacy standalone builds

---
libcxx/src/CMakeLists.txt | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt
index 9abf548abb..3f155af09e 100644
index 35b46652709..720a4b65b83 100644
--- a/libcxx/src/CMakeLists.txt
+++ b/libcxx/src/CMakeLists.txt
@@ -236,6 +236,23 @@ if (LIBCXX_ENABLE_SHARED)
@@ -235,6 +235,23 @@ if (LIBCXX_ENABLE_SHARED)
"-Wl,-force_symbols_weak_list,${CMAKE_CURRENT_SOURCE_DIR}/../lib/weak.exp")

target_link_libraries(cxx_shared PRIVATE $<TARGET_NAME_IF_EXISTS:cxxabi-reexports>)
Expand All @@ -35,6 +35,3 @@ index 9abf548abb..3f155af09e 100644
endif()

# Generate a linker script in place of a libc++.so symlink.
--
2.38.1.windows.1

28 changes: 0 additions & 28 deletions recipe/patches/0001-libcxxabi-10.9-compatibility.patch

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
From e30718656c41bd624ddd9895fb9f6e64ed4c2ab5 Mon Sep 17 00:00:00 2001
From 123217eff2d5ceec3a0d7578d2c1256be6dc1943 Mon Sep 17 00:00:00 2001
From: Isuru Fernando <[email protected]>
Date: Tue, 13 Jul 2021 01:57:06 -0500
Subject: [PATCH 3/5] Fix ABI compatibility with system
Subject: [PATCH 2/3] Fix ABI compatibility with system

---
libcxx/src/locale.cpp | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp
index 6b454274e1..5e601e133a 100644
index bd70a27be4e..a2062e5d3f5 100644
--- a/libcxx/src/locale.cpp
+++ b/libcxx/src/locale.cpp
@@ -194,10 +194,6 @@ _LIBCPP_SUPPRESS_DEPRECATED_PUSH
@@ -193,10 +193,6 @@ _LIBCPP_SUPPRESS_DEPRECATED_PUSH
install(&make<codecvt<char16_t, char, mbstate_t> >(1u));
install(&make<codecvt<char32_t, char, mbstate_t> >(1u));
_LIBCPP_SUPPRESS_DEPRECATED_POP
Expand All @@ -22,7 +22,7 @@ index 6b454274e1..5e601e133a 100644
install(&make<numpunct<char> >(1u));
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
install(&make<numpunct<wchar_t> >(1u));
@@ -236,6 +232,10 @@ _LIBCPP_SUPPRESS_DEPRECATED_POP
@@ -235,6 +231,10 @@ _LIBCPP_SUPPRESS_DEPRECATED_POP
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
install(&make<_VSTD::messages<wchar_t> >(1u));
#endif
Expand All @@ -33,7 +33,7 @@ index 6b454274e1..5e601e133a 100644
}

locale::__imp::__imp(const string& name, size_t refs)
@@ -267,10 +267,6 @@ _LIBCPP_SUPPRESS_DEPRECATED_PUSH
@@ -266,10 +266,6 @@ _LIBCPP_SUPPRESS_DEPRECATED_PUSH
install(new codecvt_byname<char16_t, char, mbstate_t>(name_));
install(new codecvt_byname<char32_t, char, mbstate_t>(name_));
_LIBCPP_SUPPRESS_DEPRECATED_POP
Expand All @@ -44,17 +44,14 @@ index 6b454274e1..5e601e133a 100644
install(new numpunct_byname<char>(name_));
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
install(new numpunct_byname<wchar_t>(name_));
@@ -293,6 +289,10 @@ _LIBCPP_SUPPRESS_DEPRECATED_POP
@@ -292,6 +288,10 @@ _LIBCPP_SUPPRESS_DEPRECATED_POP
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
install(new messages_byname<wchar_t>(name_));
#endif
+#ifndef _LIBCPP_HAS_NO_CHAR8_T
+ install(new codecvt_byname<char16_t, char8_t, mbstate_t>(name_));
+ install(new codecvt_byname<char32_t, char8_t, mbstate_t>(name_));
+#endif
#ifndef _LIBCPP_NO_EXCEPTIONS
#ifndef _LIBCPP_HAS_NO_EXCEPTIONS
}
catch (...)
--
2.38.1.windows.1

55 changes: 55 additions & 0 deletions recipe/patches/0003-custom-error-message-for-old-sdk.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
From 54fcf64308c718b275629a28678dcfcc90014205 Mon Sep 17 00:00:00 2001
From: Isuru Fernando <[email protected]>
Date: Wed, 29 Dec 2021 19:28:35 -0800
Subject: [PATCH 3/3] custom error message for old sdk

---
libcxx/include/__availability | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/libcxx/include/__availability b/libcxx/include/__availability
index 7807f22b716..94f6e070b93 100644
--- a/libcxx/include/__availability
+++ b/libcxx/include/__availability
@@ -279,12 +279,12 @@
# define _LIBCPP_AVAILABILITY_HAS_NO_FILESYSTEM_LIBRARY
# endif
# define _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY \
- __attribute__((availability(macos,strict,introduced=10.15))) \
+ __attribute__((availability(macos,strict,introduced=10.15,message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \
__attribute__((availability(ios,strict,introduced=13.0))) \
__attribute__((availability(tvos,strict,introduced=13.0))) \
__attribute__((availability(watchos,strict,introduced=6.0)))
# define _LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY_PUSH \
- _Pragma("clang attribute push(__attribute__((availability(macos,strict,introduced=10.15))), apply_to=any(function,record))") \
+ _Pragma("clang attribute push(__attribute__((availability(macos,strict,introduced=10.15,message=\"see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk\"))), apply_to=any(function,record))") \
_Pragma("clang attribute push(__attribute__((availability(ios,strict,introduced=13.0))), apply_to=any(function,record))") \
_Pragma("clang attribute push(__attribute__((availability(tvos,strict,introduced=13.0))), apply_to=any(function,record))") \
_Pragma("clang attribute push(__attribute__((availability(watchos,strict,introduced=6.0))), apply_to=any(function,record))")
@@ -302,7 +302,7 @@
# define _LIBCPP_AVAILABILITY_HAS_NO_TO_CHARS_FLOATING_POINT
# endif
# define _LIBCPP_AVAILABILITY_TO_CHARS_FLOATING_POINT \
- __attribute__((availability(macos,strict,introduced=13.3))) \
+ __attribute__((availability(macos,strict,introduced=13.3,message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \
__attribute__((availability(ios,strict,introduced=16.3))) \
__attribute__((availability(tvos,strict,introduced=16.3))) \
__attribute__((availability(watchos,strict,introduced=9.3)))
@@ -315,7 +315,7 @@
# define _LIBCPP_AVAILABILITY_HAS_NO_SYNC
# endif
# define _LIBCPP_AVAILABILITY_SYNC \
- __attribute__((availability(macos,strict,introduced=11.0))) \
+ __attribute__((availability(macos,strict,introduced=11.0,message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \
__attribute__((availability(ios,strict,introduced=14.0))) \
__attribute__((availability(tvos,strict,introduced=14.0))) \
__attribute__((availability(watchos,strict,introduced=7.0)))
@@ -340,7 +340,7 @@
// use availability annotations until that bug has been fixed.
# if 0
# define _LIBCPP_AVAILABILITY_PMR \
- __attribute__((availability(macos, strict, introduced = 14.0))) \
+ __attribute__((availability(macos, strict, introduced = 14.0,message="see https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk"))) \
__attribute__((availability(ios, strict, introduced = 17.0))) \
__attribute__((availability(tvos, strict, introduced = 17.0))) \
__attribute__((availability(watchos, strict, introduced = 10.0)))
78 changes: 0 additions & 78 deletions recipe/patches/0004-custom-error-message-for-old-sdk.patch

This file was deleted.

Loading