-
Notifications
You must be signed in to change notification settings - Fork 15.2k
[WIP][libc++] Fixes basic_streambuf instantiation. #70963
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
The patch https://reviews.llvm.org/D156609 fails in the CI [1] due to linker issues of std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> >::seekpos(std::__1::fpos<__mbstate_t>, unsigned int) This is the only virtual function in this class marked _LIBCPP_HIDE_FROM_ABI_VIRTUAL causing the function not to be instantiated in the dylib. [1] https://buildkite.com/llvm-project/libcxx-ci/builds/31253#018b8227-8bdb-4f77-b578-f6ef9f14d7de
@llvm/pr-subscribers-libcxx Author: Mark de Wever (mordante) ChangesThe patch https://reviews.llvm.org/D156609 fails in the CI [1] due to linker issues of std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> >::seekpos(std::__1::fpos<__mbstate_t>, unsigned int) This is the only virtual function in this class marked _LIBCPP_HIDE_FROM_ABI_VIRTUAL causing the function not to be instantiated in the dylib. [1] https://buildkite.com/llvm-project/libcxx-ci/builds/31253#018b8227-8bdb-4f77-b578-f6ef9f14d7de Full diff: https://github.com/llvm/llvm-project/pull/70963.diff 2 Files Affected:
diff --git a/libcxx/include/sstream b/libcxx/include/sstream
index 4fec465d5748009..45c58bff090b2d8 100644
--- a/libcxx/include/sstream
+++ b/libcxx/include/sstream
@@ -448,7 +448,7 @@ protected:
int_type overflow (int_type __c = traits_type::eof()) override;
pos_type seekoff(off_type __off, ios_base::seekdir __way,
ios_base::openmode __wch = ios_base::in | ios_base::out) override;
- _LIBCPP_HIDE_FROM_ABI_VIRTUAL
+// _LIBCPP_HIDE_FROM_ABI_VIRTUAL
pos_type seekpos(pos_type __sp,
ios_base::openmode __wch = ios_base::in | ios_base::out) override {
return seekoff(__sp, ios_base::beg, __wch);
diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot
index ebb255243ba9c15..4ac018c6a6939d9 100755
--- a/libcxx/utils/ci/run-buildbot
+++ b/libcxx/utils/ci/run-buildbot
@@ -320,6 +320,7 @@ generic-gcc)
-DLIBCXXABI_ENABLE_WERROR=NO \
-DLIBUNWIND_ENABLE_WERROR=NO
check-runtimes
+ check-abi-list
;;
generic-gcc-cxx11)
clean
|
With Clang it fails since the change adds one new symbol
With GCC is fails with more symbol changes
|
-DLIBCXXABI_ENABLE_WERROR=NO \ | ||
-DLIBUNWIND_ENABLE_WERROR=NO | ||
check-runtimes | ||
check-abi-list |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you file an issue to track the addition of check-abi-list
to the GCC builds? I think this is worth doing and it's definitely not going to be a slam dunk, so we'll want an issue to track it.
This turns out to be an issue on my side. |
The patch https://reviews.llvm.org/D156609 fails in the CI [1] due to linker issues of
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::seekpos(std::__1::fpos<__mbstate_t>, unsigned int)
This is the only virtual function in this class marked _LIBCPP_HIDE_FROM_ABI_VIRTUAL causing the function not to be instantiated in the dylib.
[1] https://buildkite.com/llvm-project/libcxx-ci/builds/31253#018b8227-8bdb-4f77-b578-f6ef9f14d7de