Skip to content

Commit

Permalink
Commit more stack size in some windows binaries
Browse files Browse the repository at this point in the history
This way we can commit the same amount of stack size (64 MB) without a conditional.
Includes nix, libnixexpr-tests, libnixfetchers-tests, libnixstore-tests, libnixutil-tests.
  • Loading branch information
poweredbypie committed May 24, 2024
1 parent 5f68e6d commit 0b7da09
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 5 deletions.
5 changes: 5 additions & 0 deletions src/nix/local.mk
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ nix_LIBS = libexpr libmain libfetchers libstore libutil libcmd

nix_LDFLAGS = $(THREAD_LDFLAGS) $(SODIUM_LIBS) $(EDITLINE_LIBS) $(BOOST_LDFLAGS) $(LOWDOWN_LIBS)

ifdef HOST_WINDOWS
# Increase the default reserved stack size to 65 MB so Nix doesn't run out of space
nix_LDFLAGS += -Wl,--stack,$(shell echo $$((65 * 1024 * 1024)))
endif

$(foreach name, \
nix-build nix-channel nix-collect-garbage nix-copy-closure nix-daemon nix-env nix-hash nix-instantiate nix-prefetch-url nix-shell nix-store, \
$(eval $(call install-symlink, nix, $(bindir)/$(name))))
Expand Down
5 changes: 0 additions & 5 deletions src/nix/main.cc
Original file line number Diff line number Diff line change
Expand Up @@ -522,14 +522,9 @@ void mainWrapped(int argc, char * * argv)

int main(int argc, char * * argv)
{
#ifndef _WIN32
// Increase the default stack size for the evaluator and for
// libstdc++'s std::regex.
nix::setStackSize(64 * 1024 * 1024);
#else
// Windows' default stack reservation is 1 MB, going over will fail
nix::setStackSize(1 * 1024 * 1024);
#endif

return nix::handleExceptions(argv[0], [&]() {
nix::mainWrapped(argc, argv);
Expand Down
5 changes: 5 additions & 0 deletions tests/unit/libexpr/local.mk
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,8 @@ libexpr-tests_LIBS = \
libexpr libexprc libfetchers libstore libstorec libutil libutilc

libexpr-tests_LDFLAGS := -lrapidcheck $(GTEST_LIBS) -lgmock

ifdef HOST_WINDOWS
# Increase the default reserved stack size to 65 MB so Nix doesn't run out of space
libexpr-tests_LDFLAGS += -Wl,--stack,$(shell echo $$((65 * 1024 * 1024)))
endif
5 changes: 5 additions & 0 deletions tests/unit/libfetchers/local.mk
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,8 @@ libfetchers-tests_LIBS = \
libfetchers libstore libutil

libfetchers-tests_LDFLAGS := -lrapidcheck $(GTEST_LIBS)

ifdef HOST_WINDOWS
# Increase the default reserved stack size to 65 MB so Nix doesn't run out of space
libfetchers-tests_LDFLAGS += -Wl,--stack,$(shell echo $$((65 * 1024 * 1024)))
endif
5 changes: 5 additions & 0 deletions tests/unit/libstore/local.mk
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,8 @@ libstore-tests_LIBS = \
libstore libstorec libutil libutilc

libstore-tests_LDFLAGS := -lrapidcheck $(GTEST_LIBS)

ifdef HOST_WINDOWS
# Increase the default reserved stack size to 65 MB so Nix doesn't run out of space
libstore-tests_LDFLAGS += -Wl,--stack,$(shell echo $$((65 * 1024 * 1024)))
endif
5 changes: 5 additions & 0 deletions tests/unit/libutil/local.mk
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ libutil-tests_LIBS = libutil-test-support libutil libutilc

libutil-tests_LDFLAGS := -lrapidcheck $(GTEST_LIBS)

ifdef HOST_WINDOWS
# Increase the default reserved stack size to 65 MB so Nix doesn't run out of space
libutil-tests_LDFLAGS += -Wl,--stack,$(shell echo $$((65 * 1024 * 1024)))
endif

check: $(d)/data/git/check-data.sh.test

$(eval $(call run-test,$(d)/data/git/check-data.sh))

0 comments on commit 0b7da09

Please sign in to comment.