[MacPorts] #67038: libvpx @1.13.0: requires c++11
MacPorts
noreply at macports.org
Sun Mar 5 00:24:49 UTC 2023
#67038: libvpx @1.13.0: requires c++11
---------------------+----------------------
Reporter: kencu | Owner: mascguy
Type: defect | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: libvpx |
---------------------+----------------------
Comment (by kencu):
This helps:
{{{
$ git diff
diff --git a/multimedia/libvpx/Portfile b/multimedia/libvpx/Portfile
index 6c64d842b86..2733fc0dd52 100644
--- a/multimedia/libvpx/Portfile
+++ b/multimedia/libvpx/Portfile
@@ -43,6 +43,9 @@ supported_archs x86_64 i386 arm64 ppc ppc64
patchfiles-append patch-Makefile.diff
patchfiles-append patch-configure.sh.diff
+# requires c++11 https://trac.macports.org/ticket/67038
+compiler.cxx_standard 2011
+
# Uses newer assembly features on Intel.
# Also blacklist clang 8, due to issues like:
# error: use of undeclared identifier 'abs'
}}}
but unfortunately does not fully fix the build. Later on in the build,
there is a link failure, because the required {{{-stdlib=macports-
libstdc++}}} does not make it onto the link line:
{{{
cp libvpxrc_g.a libvpxrc.a
/opt/local/bin/clang++-mp-7.0 -L/opt/local/lib
-Wl,-headerpad_max_install_names -Wl,-syslibroot,/ -arch i386 -o
test_libvpx ivfenc.c.o md5_utils.c.o test/active_map_refresh_test.cc.o
test/active_map_test.cc.o test/alt_ref_aq_segment_test.cc.o
test/altref_test.cc.o test/aq_segment_test.cc.o test/bench.cc.o
test/borders_test.cc.o test/byte_alignment_test.cc.o test/config_test.cc.o
test/cpu_speed_test.cc.o test/cq_test.cc.o test/decode_api_test.cc.o
test/decode_corrupted.cc.o test/decode_svc_test.cc.o
test/decode_test_driver.cc.o test/encode_api_test.cc.o
test/encode_test_driver.cc.o test/error_resilience_test.cc.o
test/external_frame_buffer_test.cc.o test/frame_size_tests.cc.o
test/invalid_file_test.cc.o test/keyframe_test.cc.o test/level_test.cc.o
test/realtime_test.cc.o test/resize_test.cc.o test/svc_datarate_test.cc.o
test/svc_end_to_end_test.cc.o test/svc_test.cc.o test/test_libvpx.cc.o
test/test_vector_test.cc.o test/test_vectors.cc.o test/timestamp_test.cc.o
test/user_priv_test.cc.o test/vp8_datarate_test.cc.o
test/vp9_datarate_test.cc.o test/vp9_end_to_end_test.cc.o
test/vp9_ethread_test.cc.o test/vp9_ext_ratectrl_test.cc.o
test/vp9_lossless_test.cc.o test/vp9_motion_vector_test.cc.o
test/vp9_skip_loopfilter_test.cc.o test/y4m_test.cc.o
third_party/libwebm/mkvparser/mkvparser.cc.o
third_party/libwebm/mkvparser/mkvreader.cc.o webmdec.cc.o y4menc.c.o
y4minput.c.o -L. -lvpx -lgtest -lpthread -lm -lpthread
Undefined symbols for architecture i386:
"std::ctype<char>::_M_widen_init() const", referenced from:
testing::internal::RangeGenerator<int,
int>::Iterator::Equals(testing::internal::ParamIteratorInterface<int>
const&) const in active_map_refresh_test.cc.o
testing::internal::ValuesInIteratorRangeGenerator<libvpx_test::TestMode>::Iterator::Equals(testing::internal::ParamIteratorInterface<libvpx_test::TestMode>
const&) const in active_map_refresh_test.cc.o
testing::internal::ValuesInIteratorRangeGenerator<libvpx_test::CodecFactory
const*>::Iterator::Equals(testing::internal::ParamIteratorInterface<libvpx_test::CodecFactory
const*> const&) const in active_map_refresh_test.cc.o
__ZNK7testing8internal25CartesianProductGeneratorIJPKN11libvpx_test12CodecFactoryENS2_8TestModeEiEE12IteratorImplINS0_13IndexSequenceIJLm0ELm1ELm2EEEEE6EqualsERKNS0_22ParamIteratorInterfaceISt5tupleIJS5_S6_iEEEE
in active_map_refresh_test.cc.o
testing::internal::ParameterizedTestSuiteInfo<(anonymous
namespace)::ActiveMapRefreshTest>::RegisterTests() in
active_map_refresh_test.cc.o
testing::internal::RangeGenerator<int,
int>::Iterator::Equals(testing::internal::ParamIteratorInterface<int>
const&) const in active_map_test.cc.o
testing::internal::ValuesInIteratorRangeGenerator<int>::Iterator::Equals(testing::internal::ParamIteratorInterface<int>
const&) const in active_map_test.cc.o
...
"std::basic_ostream<char, std::char_traits<char> >&
std::__ostream_insert<char, std::char_traits<char>
>(std::basic_ostream<char, std::char_traits<char> >&, char const*, int)",
referenced from:
testing::internal::ParameterizedTestSuiteInfo<(anonymous
namespace)::ActiveMapRefreshTest>*
testing::internal::ParameterizedTestSuiteRegistry::GetTestSuitePatternHolder<(anonymous
namespace)::ActiveMapRefreshTest>(char const*,
testing::internal::CodeLocation) in active_map_refresh_test.cc.o
libvpx_test::EncoderTest::HandleDecodeResult(vpx_codec_err_t,
libvpx_test::VideoSource const&, libvpx_test::Decoder*) in
active_map_refresh_test.cc.o
__ZN7testing18WithParamInterfaceISt5tupleIJPKN11libvpx_test12CodecFactoryENS2_8TestModeEiEEE8GetParamEv
in active_map_refresh_test.cc.o
libvpx_test::Encoder::Control(int, int) in
active_map_refresh_test.cc.o
libvpx_test::Encoder::Control(int, vpx_active_map*) in
active_map_refresh_test.cc.o
__ZN7testing8internal18CmpHelperOpFailureIP9vpx_imageDnEENS_15AssertionResultEPKcS6_RKT_RKT0_S6_
in active_map_refresh_test.cc.o
testing::AssertionResult& testing::AssertionResult::operator<< <char
const*>(char const* const&) in active_map_refresh_test.cc.o
...
"std::ostream& std::ostream::_M_insert<void const*>(void const*)",
referenced from:
std::string testing::PrintToString<vpx_image*>(vpx_image* const&) in
active_map_refresh_test.cc.o
std::string testing::PrintToString<__sFILE*>(__sFILE* const&) in
active_map_refresh_test.cc.o
__ZN7testing8internal7PrintToIJPKN11libvpx_test12CodecFactoryENS2_8TestModeEiEEEvRKSt5tupleIJDpT_EEPSo
in active_map_refresh_test.cc.o
std::string testing::PrintToString<__sFILE*>(__sFILE* const&) in
active_map_test.cc.o
std::string testing::PrintToString<vpx_image*>(vpx_image* const&) in
active_map_test.cc.o
__ZN7testing8internal12PrintTupleToISt5tupleIJPKN11libvpx_test12CodecFactoryENS3_8TestModeEiiEELm4EEEvRKT_St17integral_constantImXT0_EEPSo
in active_map_test.cc.o
std::string testing::PrintToString<__sFILE*>(__sFILE* const&) in
alt_ref_aq_segment_test.cc.o
...
"std::ostream& std::ostream::_M_insert<unsigned long>(unsigned long)",
referenced from:
__ZN12_GLOBAL__N_147gtest_VP9ActiveMapRefreshTest_EvalGenerateName_ERKN7testing13TestParamInfoISt5tupleIJPKN11libvpx_test12CodecFactoryENS3_8TestModeEiEEEE
in active_map_refresh_test.cc.o
__ZN12_GLOBAL__N_140gtest_VP9ActiveMapTest_EvalGenerateName_ERKN7testing13TestParamInfoISt5tupleIJPKN11libvpx_test12CodecFactoryENS3_8TestModeEiiEEEE
in active_map_test.cc.o
std::string
testing::internal::FormatForComparisonFailureMessage<unsigned int,
unsigned int>(unsigned int const&, unsigned int const&) in
active_map_test.cc.o
__ZN12_GLOBAL__N_146gtest_VP9AltRefAqSegmentTest_EvalGenerateName_ERKN7testing13TestParamInfoISt5tupleIJPKN11libvpx_test12CodecFactoryENS3_8TestModeEiEEEE
in alt_ref_aq_segment_test.cc.o
__ZN12_GLOBAL__N_137gtest_VP8AltRefTest_EvalGenerateName_ERKN7testing13TestParamInfoISt5tupleIJPKN11libvpx_test12CodecFactoryEiEEEE
in altref_test.cc.o
__ZN12_GLOBAL__N_151gtest_VP8AltRefForcedKeyTestLarge_EvalGenerateName_ERKN7testing13TestParamInfoISt5tupleIJPKN11libvpx_test12CodecFactoryENS3_8TestModeEiEEEE
in altref_test.cc.o
__ZN12_GLOBAL__N_151gtest_VP9AltRefForcedKeyTestLarge_EvalGenerateName_ERKN7testing13TestParamInfoISt5tupleIJPKN11libvpx_test12CodecFactoryENS3_8TestModeEiEEEE
in altref_test.cc.o
...
"std::ostream& std::ostream::_M_insert<double>(double)", referenced
from:
testing::AssertionResult
testing::internal::CmpHelperOpFailure<double, int>(char const*, char
const*, double const&, int const&, char const*) in cpu_speed_test.cc.o
std::string
testing::internal::FormatForComparisonFailureMessage<double,
double>(double const&, double const&) in cq_test.cc.o
std::string
testing::internal::FormatForComparisonFailureMessage<double,
double>(double const&, double const&) in error_resilience_test.cc.o
testing::AssertionResult
testing::internal::CmpHelperOpFailure<unsigned int, double>(char const*,
char const*, unsigned int const&, double const&, char const*) in
svc_datarate_test.cc.o
testing::AssertionResult
testing::internal::CmpHelperOpFailure<unsigned int, double>(char const*,
char const*, unsigned int const&, double const&, char const*) in
vp8_datarate_test.cc.o
std::string testing::PrintToString<double>(double const&) in
vp9_datarate_test.cc.o
std::string
testing::internal::FormatForComparisonFailureMessage<double,
double>(double const&, double const&) in vp9_end_to_end_test.cc.o
...
"std::ostream& std::ostream::_M_insert<long>(long)", referenced from:
testing::AssertionResult testing::internal::CmpHelperEQFailure<long,
int>(char const*, char const*, long const&, int const&) in
decode_api_test.cc.o
testing::AssertionResult testing::internal::CmpHelperEQFailure<long,
int>(char const*, char const*, long const&, int const&) in
encode_api_test.cc.o
"std::ostream& std::ostream::_M_insert<long long>(long long)",
referenced from:
std::string
testing::internal::FormatForComparisonFailureMessage<long long, long
long>(long long const&, long long const&) in encode_test_driver.cc.o
std::string
testing::internal::FormatForComparisonFailureMessage<long long, long
long>(long long const&, long long const&) in frame_size_tests.cc.o
(anonymous
namespace)::KeyframeTest_TestForceKeyframe_Test::TestBody() in
keyframe_test.cc.o
testing::AssertionResult testing::internal::CmpHelperEQFailure<int,
long long>(char const*, char const*, int const&, long long const&) in
keyframe_test.cc.o
(anonymous
namespace)::KeyframeTest_TestKeyframeMaxDistance_Test::TestBody() in
keyframe_test.cc.o
(anonymous
namespace)::KeyframeTest_TestAutoKeyframe_Test::TestBody() in
keyframe_test.cc.o
(anonymous
namespace)::ResizeInternalTest_TestInternalResizeWorks_Test::TestBody() in
resize_test.cc.o
...
"std::__throw_out_of_range_fmt(char const*, ...)", referenced from:
(anonymous
namespace)::ExternalFrameBufferMD5Test_ExtFBMD5Match_Test::TestBody() in
external_frame_buffer_test.cc.o
(anonymous namespace)::InvalidFileTest::RunTest() in
invalid_file_test.cc.o
(anonymous namespace)::TestVectorTest_MD5Match_Test::TestBody() in
test_vector_test.cc.o
__ZN7testing8internalL21FormatDeathTestOutputERKSs in libgtest.a
(gtest-all.cc.o)
testing::internal::SplitString(std::string const&, char,
std::vector<std::string, std::allocator<std::string> >*) in libgtest.a
(gtest-all.cc.o)
testing::internal::UnitTestImpl::successful_test_suite_count() const
in libgtest.a(gtest-all.cc.o)
testing::internal::UnitTestImpl::successful_test_count() const in
libgtest.a(gtest-all.cc.o)
...
"std::chrono::_V2::steady_clock::now()", referenced from:
testing::TestInfo::Run() in libgtest.a(gtest-all.cc.o)
testing::TestSuite::Run() in libgtest.a(gtest-all.cc.o)
testing::internal::UnitTestImpl::RunAllTests() in libgtest.a(gtest-
all.cc.o)
"std::chrono::_V2::system_clock::now()", referenced from:
testing::internal::GetTimeInMillis() in libgtest.a(gtest-all.cc.o)
testing::TestInfo::Run() in libgtest.a(gtest-all.cc.o)
testing::TestSuite::Run() in libgtest.a(gtest-all.cc.o)
testing::internal::UnitTestImpl::RunAllTests() in libgtest.a(gtest-
all.cc.o)
"std::_Hash_bytes(void const*, unsigned long, unsigned long)",
referenced from:
__ZNSt10_HashtableISsSsSaISsENSt8__detail9_IdentityESt8equal_toISsESt4hashISsENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb1ELb1ELb1EEEE9_M_insertISsNS1_10_AllocNodeISaINS1_10_Hash_nodeISsLb1EEEEEEEESt4pairINS1_14_Node_iteratorISsLb1ELb1EEEbEOT_RKT0_St17integral_constantIbLb1EE
in libgtest.a(gtest-all.cc.o)
std::_Hashtable<std::string, std::string,
std::allocator<std::string>, std::__detail::_Identity,
std::equal_to<std::string>, std::hash<std::string>,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<true, true, true> >::count(std::string
const&) const in libgtest.a(gtest-all.cc.o)
"std::__detail::_Prime_rehash_policy::_M_need_rehash(unsigned long,
unsigned long, unsigned long) const", referenced from:
std::_Hashtable<std::string, std::string,
std::allocator<std::string>, std::__detail::_Identity,
std::equal_to<std::string>, std::hash<std::string>,
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<true, true, true>
>::_M_insert_unique_node(unsigned long, unsigned long,
std::__detail::_Hash_node<std::string, true>*) in libgtest.a(gtest-
all.cc.o)
"std::runtime_error::runtime_error(char const*)", referenced from:
testing::UnitTest::AddTestPartResult(testing::TestPartResult::Type,
char const*, int, std::string const&, std::string const&) in libgtest.a
(gtest-all.cc.o)
testing::internal::GoogleTestFailureException::GoogleTestFailureException(testing::TestPartResult
const&) in libgtest.a(gtest-all.cc.o)
testing::internal::GoogleTestFailureException::GoogleTestFailureException(testing::TestPartResult
const&) in libgtest.a(gtest-all.cc.o)
"std::__detail::_List_node_base::_M_transfer(std::__detail::_List_node_base*,
std::__detail::_List_node_base*)", referenced from:
testing::internal::edit_distance::CreateUnifiedDiff(std::vector<std::string,
std::allocator<std::string> > const&, std::vector<std::string,
std::allocator<std::string> > const&, unsigned long) in libgtest.a(gtest-
all.cc.o)
"std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)",
referenced from:
testing::internal::edit_distance::CreateUnifiedDiff(std::vector<std::string,
std::allocator<std::string> > const&, std::vector<std::string,
std::allocator<std::string> > const&, unsigned long) in libgtest.a(gtest-
all.cc.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
}}}
So that part can be fixed by modifying the patch like this:
{{{
$ git diff
diff --git a/multimedia/libvpx/Portfile b/multimedia/libvpx/Portfile
index 6c64d842b86..fd930add067 100644
--- a/multimedia/libvpx/Portfile
+++ b/multimedia/libvpx/Portfile
@@ -43,6 +43,11 @@ supported_archs x86_64 i386 arm64 ppc ppc64
patchfiles-append patch-Makefile.diff
patchfiles-append patch-configure.sh.diff
+# requires c++11 https://trac.macports.org/ticket/67038
+compiler.cxx_standard 2011
+# requires MacPorts c++11 flags explicitly added to ldflags
https://trac.macports.org/ticket/67038
+configure.ldflags-append {*}${configure.cxxflags}
+
# Uses newer assembly features on Intel.
# Also blacklist clang 8, due to issues like:
# error: use of undeclared identifier 'abs'
}}}
and then we're good:
{{{
$ port -v installed libvpx
The following ports are currently installed:
libvpx @1.13.0_0 (active) requested_variants='' platform='darwin 9'
archs='i386' date='2023-03-04T15:38:13-0800'
}}}
--
Ticket URL: <https://trac.macports.org/ticket/67038#comment:3>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list