-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Closed
Labels
bugbuild-problemNix fails to compile or test; also improvements to build processNix fails to compile or test; also improvements to build process
Description
Describe the bug
On Linux, following the instructions to do a debug build, i.e.
export mesonBuildType=debug
NIX_HARDENING_ENABLE=$(printLines $NIX_HARDENING_ENABLE | grep -v fortify)
fails with
FAILED: src/libexpr/libnixexpr.so
g++ -o src/libexpr/libnixexpr.so src/libexpr/libnixexpr.so.p/meson-generated_.._parser-tab.cc.o src/libexpr/libnixexpr.so.p/meson-generated_.._lexer-tab.cc.o src/libexpr/libnixexpr.so.p/attr-path.cc.o src/libexpr/libnixexpr.so.p/attr-set.cc.o src/libexpr/libnixexpr.so.p/eval-cache.cc.o src/libexpr/libnixexpr.so.p/eval-error.cc.o src/libexpr/libnixexpr.so.p/eval-gc.cc.o src/libexpr/libnixexpr.so.p/eval-profiler-settings.cc.o src/libexpr/libnixexpr.so.p/eval-profiler.cc.o src/libexpr/libnixexpr.so.p/eval-settings.cc.o src/libexpr/libnixexpr.so.p/eval.cc.o src/libexpr/libnixexpr.so.p/function-trace.cc.o src/libexpr/libnixexpr.so.p/get-drvs.cc.o src/libexpr/libnixexpr.so.p/json-to-value.cc.o src/libexpr/libnixexpr.so.p/lexer-helpers.cc.o src/libexpr/libnixexpr.so.p/nixexpr.cc.o src/libexpr/libnixexpr.so.p/parallel-eval.cc.o src/libexpr/libnixexpr.so.p/paths.cc.o src/libexpr/libnixexpr.so.p/primops.cc.o src/libexpr/libnixexpr.so.p/print-ambiguous.cc.o src/libexpr/libnixexpr.so.p/print.cc.o src/libexpr/libnixexpr.so.p/search-path.cc.o src/libexpr/libnixexpr.so.p/symbol-table.cc.o src/libexpr/libnixexpr.so.p/value-to-json.cc.o src/libexpr/libnixexpr.so.p/value-to-xml.cc.o src/libexpr/libnixexpr.so.p/value_context.cc.o src/libexpr/libnixexpr.so.p/primops_context.cc.o src/libexpr/libnixexpr.so.p/primops_fetchClosure.cc.o src/libexpr/libnixexpr.so.p/primops_fetchMercurial.cc.o src/libexpr/libnixexpr.so.p/primops_fetchTree.cc.o src/libexpr/libnixexpr.so.p/primops_fromTOML.cc.o -Wl,--as-needed -Wl,--no-undefined -fuse-ld=mold -shared -fPIC -Wl,-soname,libnixexpr.so '-Wl,-rpath,$ORIGIN/../libutil:$ORIGIN/../libstore:$ORIGIN/../libfetchers' -Wl,--start-group src/libutil/libnixutil.so src/libstore/libnixstore.so src/libfetchers/libnixfetchers.so /nix/store/8v7yh9j4vhryxhnmgn6a0l3scgc85kn5-boehm-gc-8.2.8/lib/libgc.so -lpthread -ldl -pthread /nix/store/y130gnbp2qkfq6svqdv0s61b3m4043yp-libarchive-3.8.0-lib/lib/libarchive.so /nix/store/ijslv1m9rn4iqfbnc8b0z715iisfqv2d-boost-1.87.0/lib/libboost_container.so.1.87.0 /nix/store/ijslv1m9rn4iqfbnc8b0z715iisfqv2d-boost-1.87.0/lib/libboost_context.so.1.87.0 /nix/store/ijslv1m9rn4iqfbnc8b0z715iisfqv2d-boost-1.87.0/lib/libboost_thread.so.1.87.0 -Wl,--end-group
mold: error: undefined symbol: tbb::detail::r1::execution_slot(tbb::detail::d1::execution_data const*)
>>> referenced by parser-tab.cc
>>> src/libexpr/libnixexpr.so.p/meson-generated_.._parser-tab.cc.o:(tbb::detail::d1::execution_slot(tbb::detail::d1::execution_data const&))
>>> referenced by parser-tab.cc
>>> src/libexpr/libnixexpr.so.p/meson-generated_.._parser-tab.cc.o:(tbb::detail::d1::current_thread_index())
collect2: error: ld returned 1 exit status
Not clear where this dependency on tbb comes from.
Workaround: apply this patch:
diff --git a/src/libcmd/meson.build b/src/libcmd/meson.build
index 24e075246..519562ca5 100644
--- a/src/libcmd/meson.build
+++ b/src/libcmd/meson.build
@@ -97,7 +97,7 @@ this_library = library(
config_priv_h,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
- link_args : linker_export_flags,
+ link_args : linker_export_flags + [ '-ltbb' ],
prelink : true, # For C++ static initializers
install : true,
cpp_pch : do_pch ? [ 'pch/precompiled-headers.hh' ] : [],
diff --git a/src/libexpr-c/meson.build b/src/libexpr-c/meson.build
index 7c014d61d..2d3f3ea8b 100644
--- a/src/libexpr-c/meson.build
+++ b/src/libexpr-c/meson.build
@@ -52,7 +52,7 @@ this_library = library(
sources,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
- link_args : linker_export_flags,
+ link_args : linker_export_flags + [ '-ltbb' ],
prelink : true, # For C++ static initializers
install : true,
)
diff --git a/src/libexpr-tests/meson.build b/src/libexpr-tests/meson.build
index a876e9705..c2e55cb42 100644
--- a/src/libexpr-tests/meson.build
+++ b/src/libexpr-tests/meson.build
@@ -73,7 +73,7 @@ this_exe = executable(
dependencies : deps_private_subproject + deps_private + deps_other,
include_directories : include_dirs,
# TODO: -lrapidcheck, see ../libutil-support/build.meson
- link_args : linker_export_flags + [ '-lrapidcheck' ],
+ link_args : linker_export_flags + [ '-lrapidcheck', '-ltbb' ],
install : true,
cpp_pch : do_pch ? [ 'pch/precompiled-headers.hh' ] : [],
)
diff --git a/src/libexpr/meson.build b/src/libexpr/meson.build
index 33e24a948..4eb757524 100644
--- a/src/libexpr/meson.build
+++ b/src/libexpr/meson.build
@@ -180,7 +180,7 @@ this_library = library(
generated_headers,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
- link_args : linker_export_flags,
+ link_args : linker_export_flags + [ '-ltbb' ],
prelink : true, # For C++ static initializers
install : true,
cpp_pch : do_pch ? [ 'pch/precompiled-headers.hh' ] : [],
diff --git a/src/libflake-c/meson.build b/src/libflake-c/meson.build
index 933e06d90..b791947cf 100644
--- a/src/libflake-c/meson.build
+++ b/src/libflake-c/meson.build
@@ -55,7 +55,7 @@ this_library = library(
sources,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
- link_args : linker_export_flags,
+ link_args : linker_export_flags + [ '-ltbb' ],
prelink : true, # For C++ static initializers
install : true,
)
diff --git a/src/libflake/meson.build b/src/libflake/meson.build
index 191d8f068..032613670 100644
--- a/src/libflake/meson.build
+++ b/src/libflake/meson.build
@@ -60,7 +60,7 @@ this_library = library(
generated_headers,
dependencies : deps_public + deps_private + deps_other,
include_directories : include_dirs,
- link_args : linker_export_flags,
+ link_args : linker_export_flags + [ '-ltbb' ],
prelink : true, # For C++ static initializers
install : true,
)
diff --git a/src/nix/meson.build b/src/nix/meson.build
index 504938b91..c395b3984 100644
--- a/src/nix/meson.build
+++ b/src/nix/meson.build
@@ -187,7 +187,7 @@ this_exe = executable(
sources,
dependencies : deps_private_subproject + deps_private + deps_other,
include_directories : include_dirs,
- link_args : linker_export_flags,
+ link_args : linker_export_flags + [ '-ltbb' ],
install : true,
cpp_pch : do_pch ? [ 'pch/precompiled-headers.hh' ] : [],
)
Steps To Reproduce
Expected behavior
Metadata
Additional context
Checklist
- checked latest Nix manual (source)
- checked open bug issues and pull requests for possible duplicates
Add 👍 to issues you find important.
Metadata
Metadata
Assignees
Labels
bugbuild-problemNix fails to compile or test; also improvements to build processNix fails to compile or test; also improvements to build process