[build2] Uninstall fails for old version 0.8.0 on macOS. How to proceed?

Karen Arutyunov karen at codesynthesis.com
Wed Apr 29 08:51:22 UTC 2020


On 4/29/20 12:58 AM, Nikolaus Demmel wrote:
> But unfortunately (probably due to the OS upgrade), the uninstall fails after longer compilation.
> 
> […]
> c++ build2-toolchain-0.8/bpkg-0.8.0/bpkg/cxx{pkg-unpack}
> ar build2-toolchain-0.8/build2-0.8.0/build2/libue{b}
> ld build2-toolchain-0.8/build2-0.8.0/build2/exe{b}
> Undefined symbols for architecture x86_64:
>    "std::__1::__match_any_but_newline<build2::test::script::regex::line_char>::__exec(std::__1::__state<build2::test::script::regex::line_char>&) const", referenced from:
>        vtable for std::__1::__match_any_but_newline<build2::test::script::regex::line_char> in libb.u.a(runner.o)
> ld: symbol(s) not found for architecture x86_64
> clang: error: linker command failed with exit code 1 (use -v to see invocation)
> ld build2-toolchain-0.8/bpkg-0.8.0/bpkg/exe{bpkg}
> info: failed to update (for uninstall) build2-toolchain-0.8/dir{build2-0.8.0/}
> 

This likely to happen due to libc++ upgrade which disables one of its 
bug workarounds in the build2 code.

You can try to fix this prior to running `./build2-install-0.8.0.sh 
--uninstall` by editing the 
build2-toolchain-0.8/build2-0.8.0/build2/test/script/regex.hxx header 
and changing the libc++ version check in the line

#if defined(_LIBCPP_VERSION) && _LIBCPP_VERSION <= 6000

to, for example,

#if defined(_LIBCPP_VERSION) && _LIBCPP_VERSION <= 9000



More information about the users mailing list