[MacPorts] #67658: svndigest @0.11: Segmentation fault
MacPorts
noreply at macports.org
Tue Jun 20 08:37:20 UTC 2023
#67658: svndigest @0.11: Segmentation fault
------------------------+-----------------------
Reporter: ryandesign | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.8.1
Keywords: lion | Port: svndigest
------------------------+-----------------------
svndigest @0.11 fails to build on Mac OS X 10.7.x only, because it tries
to run each of the three executables during the build, and they crash:
https://patch-
diff.githubusercontent.com/raw/KhronosGroup/glslang/pull/3243.diff
{{{
sh: line 1: 93257 Segmentation fault: 11 bin/svncopyright --help 2>
/dev/null
help2man: can't get `--help' info from bin/svncopyright
Try `--no-discard-stderr' if option outputs to stderr
make[1]: *** [man/svncopyright.1] Error 139
make[1]: *** Waiting for unfinished jobs....
sh: line 1: 93256 Segmentation fault: 11 bin/svndigest-copy-cache --help
2> /dev/null
help2man: can't get `--help' info from bin/svndigest-copy-cache
Try `--no-discard-stderr' if option outputs to stderr
make[1]: *** [man/svndigest-copy-cache.1] Error 139
sh: line 1: 93255 Segmentation fault: 11 bin/svndigest --help 2>
/dev/null
help2man: can't get `--help' info from bin/svndigest
Try `--no-discard-stderr' if option outputs to stderr
make[1]: *** [man/svndigest.1] Error 139
}}}
The crash logs show:
{{{
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libc++.1.dylib 0x0000000101433201
std::__1::basic_ostream<char, std::__1::char_traits<char>
>::sentry::sentry(std::__1::basic_ostream<char,
std::__1::char_traits<char> >&) + 19
1 svndigest 0x00000001011312f6
std::__1::basic_ostream<char, std::__1::char_traits<char> >&
std::__1::__put_character_sequence<char, std::__1::char_traits<char>
>(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char
const*, unsigned long) + 38
2 svndigest 0x000000010113f1dc
theplu::yat::utility::ColumnStream::print(std::__1::basic_stringstream<char,
std::__1::char_traits<char>, std::__1::allocator<char> >&) + 150
3 svndigest 0x0000000101140f74
theplu::yat::utility::ColumnStream& theplu::yat::utility::operator<<
<std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >(theplu::yat::utility::ColumnStream&,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > const&) + 88
4 svndigest 0x0000000101140e63
theplu::yat::utility::operator<<(std::__1::basic_ostream<char,
std::__1::char_traits<char> >&, theplu::yat::utility::CommandLine const&)
+ 546
5 svndigest 0x0000000101143678
theplu::yat::utility::OptionHelp::do_parse2(std::__1::__wrap_iter<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >*>,
std::__1::__wrap_iter<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >*>) + 264
6 svndigest 0x00000001011438d2
theplu::yat::utility::OptionSwitch::do_parse(std::__1::__wrap_iter<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >*>&,
std::__1::__wrap_iter<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >*> const&) + 182
7 svndigest 0x0000000101140459
theplu::yat::utility::CommandLine::parse_long(std::__1::__wrap_iter<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >*>&,
std::__1::__wrap_iter<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >*>&) + 435
8 svndigest 0x0000000101140216
theplu::yat::utility::CommandLine::parse(std::__1::__wrap_iter<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >*>&,
std::__1::__wrap_iter<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >*>&) + 134
9 svndigest 0x000000010113fdbe
theplu::yat::utility::CommandLine::parse(int, char**) + 684
10 svndigest 0x00000001010f6233
theplu::svndigest::AbstractParameter::parse(int, char**) + 39
11 svndigest 0x00000001010f8371 main + 49
12 svndigest 0x00000001010f5344 start + 52
}}}
Mac OS X 10.7 was the first version to include libc++. It's possible it
has a bug that was fixed in later versions. The build succeeds on OS X
10.8 and later, and also on Mac OS X 10.6 on which we install our own
newer libc++.
If this is a libc++ bug and not a bug in svndigest or yat, one solution
that might work is to use the legacysupport portgroup and tell it to use a
newer MacPorts libc++:
{{{
PortGroup legacysupport 1.1
}}}
{{{
legacysupport.newest_darwin_requires_legacy 11
}}}
{{{
legacysupport.use_mp_libcxx yes
}}}
If svndigest is passing around C++ objects between itself and its
dependencies, this isn't a good idea, but if svndigest is only using C++
objects it created itself and doesn't share them with other libraries,
this might be fine.
--
Ticket URL: <https://trac.macports.org/ticket/67658>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list