forked from lix-project/nix-eval-jobs
fix: don't crash on startup on macOS
This is caused, through several layers of absurdity, by runtime type information of Nix things being invisible due to -fvisibility=hidden inside n-e-j. We don't have any idea why n-e-j has -fvisibility=hidden, since blame says it's from the initial commit. It is plausible that it was some ill-advised optimization but it's not sound. The crash is caused by dynamic_cast<RootArgs *>(MyArgs *) failing, which is in turn caused by the RTTI being invisible. See: https://www.qt.io/blog/quality-assurance/one-way-dynamic_cast-across-library-boundaries-can-fail-and-how-to-fix-it Fixes: lix-project/nix-eval-jobs#2
This commit is contained in:
parent
13524829d1
commit
30cf61fd26
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
class MyArgs : virtual public nix::MixEvalArgs,
|
class MyArgs : virtual public nix::MixEvalArgs,
|
||||||
virtual public nix::MixCommonArgs,
|
virtual public nix::MixCommonArgs,
|
||||||
virtual nix::RootArgs {
|
virtual public nix::RootArgs {
|
||||||
public:
|
public:
|
||||||
std::string releaseExpr;
|
std::string releaseExpr;
|
||||||
nix::Path gcRootsDir;
|
nix::Path gcRootsDir;
|
||||||
|
|
|
@ -31,4 +31,4 @@ executable('nix-eval-jobs', src,
|
||||||
threads_dep
|
threads_dep
|
||||||
],
|
],
|
||||||
install: true,
|
install: true,
|
||||||
cpp_args: ['-std=c++2a', '-fvisibility=hidden', '--include', 'autotools-config.h'])
|
cpp_args: ['-std=c++2a', '--include', 'autotools-config.h'])
|
||||||
|
|
Loading…
Reference in a new issue