[MacPorts] #70341: g++ fails to compile when -libstd=libc++ is set
MacPorts
noreply at macports.org
Mon Jul 8 17:57:28 UTC 2024
#70341: g++ fails to compile when -libstd=libc++ is set
------------------------+-------------------------
Reporter: mouse07410 | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Keywords: | Port: gcc12 gcc13
------------------------+-------------------------
This problem started with GCC12, and continues with GCC13. Also, GCC14 -
but that one simply doesn't work, so better to concentrate on releases
that otherwise do compile successfully.
File in question {{{t3.cpp}}}:
{{{
#include <iostream>
int main() {
std::cout << "Hello World!" << std::endl;
return 0;
}}}
"Normal" compilation:
{{{
$ g++-mp-13 -pipe -o t3 t3.cpp
$ ./t3
Hello World!
$
}}}
Attempt to compile with {{{-libstd=libc++}}}:
{{{
$ g++-mp-13 -pipe -stdlib=libc++ -o t3 t3.cpp
In file included from
/opt/local/libexec/gcc13/libc++/include/c++/v1/__concepts/convertible_to.h:13,
from
/opt/local/libexec/gcc13/libc++/include/c++/v1/__concepts/common_reference_with.h:12,
from
/opt/local/libexec/gcc13/libc++/include/c++/v1/__compare/three_way_comparable.h:14,
from
/opt/local/libexec/gcc13/libc++/include/c++/v1/__compare/compare_three_way.h:13,
from
/opt/local/libexec/gcc13/libc++/include/c++/v1/__memory/shared_ptr.h:14,
from
/opt/local/libexec/gcc13/libc++/include/c++/v1/mutex:191,
from
/opt/local/libexec/gcc13/libc++/include/c++/v1/__locale:18,
from
/opt/local/libexec/gcc13/libc++/include/c++/v1/ios:221,
from
/opt/local/libexec/gcc13/libc++/include/c++/v1/iostream:43,
from t3.cpp:1:
/opt/local/libexec/gcc13/libc++/include/c++/v1/__type_traits/is_convertible.h:71:8:
error: expected identifier before '__is_convertible'
71 | struct __is_convertible
| ^~~~~~~~~~~~~~~~
/opt/local/libexec/gcc13/libc++/include/c++/v1/__type_traits/is_convertible.h:71:8:
error: expected unqualified-id before '__is_convertible'
/opt/local/libexec/gcc13/libc++/include/c++/v1/__type_traits/is_convertible.h:77:40:
error: expected identifier before '__is_convertible'
77 | template <class _T1, class _T2> struct __is_convertible<_T1, _T2,
0, 1> : public false_type {};
| ^~~~~~~~~~~~~~~~
/opt/local/libexec/gcc13/libc++/include/c++/v1/__type_traits/is_convertible.h:77:40:
error: expected unqualified-id before '__is_convertible'
/opt/local/libexec/gcc13/libc++/include/c++/v1/__type_traits/is_convertible.h:78:40:
error: expected identifier before '__is_convertible'
78 | template <class _T1, class _T2> struct __is_convertible<_T1, _T2,
1, 1> : public false_type {};
| ^~~~~~~~~~~~~~~~
/opt/local/libexec/gcc13/libc++/include/c++/v1/__type_traits/is_convertible.h:78:40:
error: expected unqualified-id before '__is_convertible'
/opt/local/libexec/gcc13/libc++/include/c++/v1/__type_traits/is_convertible.h:79:40:
error: expected identifier before '__is_convertible'
79 | template <class _T1, class _T2> struct __is_convertible<_T1, _T2,
2, 1> : public false_type {};
| ^~~~~~~~~~~~~~~~
/opt/local/libexec/gcc13/libc++/include/c++/v1/__type_traits/is_convertible.h:79:40:
error: expected unqualified-id before '__is_convertible'
/opt/local/libexec/gcc13/libc++/include/c++/v1/__type_traits/is_convertible.h:80:40:
error: expected identifier before '__is_convertible'
80 | template <class _T1, class _T2> struct __is_convertible<_T1, _T2,
3, 1> : public false_type {};
. . .
/opt/local/libexec/gcc13/libc++/include/c++/v1/__thread/poll_with_backoff.h:51:15:
required from 'bool std::__1::__libcpp_thread_poll_with_backoff(_Fn&&,
_BFn&&, chrono::nanoseconds) [with _Fn =
__cxx_atomic_wait_test_fn_impl<const volatile __cxx_atomic_impl<bool>,
bool>&; _BFn = __libcpp_atomic_wait_backoff_impl<const volatile
__cxx_atomic_impl<bool>, __cxx_atomic_wait_test_fn_impl<const volatile
__cxx_atomic_impl<bool>, bool> >&; chrono::nanoseconds =
chrono::duration<long long int, ratio<1, 1000000000> >]'
/opt/local/libexec/gcc13/libc++/include/c++/v1/atomic:1482:50: required
from 'bool std::__1::__cxx_atomic_wait(_Atp*, _Fn&&) [with _Atp = const
volatile __cxx_atomic_impl<bool>; _Fn =
__cxx_atomic_wait_test_fn_impl<const volatile __cxx_atomic_impl<bool>,
bool>&]'
/opt/local/libexec/gcc13/libc++/include/c++/v1/atomic:1515:34: required
from 'bool std::__1::__cxx_atomic_wait(_Atp*, _Tp, memory_order) [with
_Atp = const volatile __cxx_atomic_impl<bool>; _Tp = bool; memory_order =
memory_order]'
/opt/local/libexec/gcc13/libc++/include/c++/v1/atomic:2376:27: required
from here
/opt/local/libexec/gcc13/libc++/include/c++/v1/__chrono/duration.h:247:9:
note: candidate: 'std::__1::chrono::duration<_Rep, _Period>::duration()
[with _Rep = long long int; _Period = std::__1::ratio<1, 1000000000>]'
247 | duration() = default;
| ^~~~~~~~
/opt/local/libexec/gcc13/libc++/include/c++/v1/__chrono/duration.h:247:9:
note: candidate expects 0 arguments, 1 provided
/opt/local/libexec/gcc13/libc++/include/c++/v1/__chrono/duration.h:202:28:
note: candidate: 'constexpr std::__1::chrono::duration<long long int,
std::__1::ratio<1, 1000000000> >::duration(const
std::__1::chrono::duration<long long int, std::__1::ratio<1, 1000000000>
>&)'
202 | class _LIBCPP_TEMPLATE_VIS duration
| ^~~~~~~~
/opt/local/libexec/gcc13/libc++/include/c++/v1/__chrono/duration.h:202:28:
note: no known conversion for argument 1 from
'std::__1::chrono::duration<long long int, std::__1::ratio<1, 1000000000>
>::rep' {aka 'long long int'} to 'const std::__1::chrono::duration<long
long int, std::__1::ratio<1, 1000000000> >&'
/opt/local/libexec/gcc13/libc++/include/c++/v1/__chrono/duration.h:202:28:
note: candidate: 'constexpr std::__1::chrono::duration<long long int,
std::__1::ratio<1, 1000000000> >::duration(std::__1::chrono::duration<long
long int, std::__1::ratio<1, 1000000000> >&&)'
/opt/local/libexec/gcc13/libc++/include/c++/v1/__chrono/duration.h:202:28:
note: no known conversion for argument 1 from
'std::__1::chrono::duration<long long int, std::__1::ratio<1, 1000000000>
>::rep' {aka 'long long int'} to 'std::__1::chrono::duration<long long
int, std::__1::ratio<1, 1000000000> >&&'
$
}}}
--
Ticket URL: <https://trac.macports.org/ticket/70341>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list