forked from lix-project/lix
![Tuomas Tynkkynen](/assets/img/avatar_default.png)
Because config.h can #define things like _FILE_OFFSET_BITS=64 and not every compilation unit includes config.h, we currently compile half of Nix with _FILE_OFFSET_BITS=64 and other half with _FILE_OFFSET_BITS unset. This causes major havoc with the Settings class on e.g. 32-bit ARM, where different compilation units disagree with the struct layout. E.g.: diff --git a/src/libstore/globals.cc b/src/libstore/globals.cc @@ -166,6 +166,8 @@ void Settings::update() _get(useSubstitutes, "build-use-substitutes"); + fprintf(stderr, "at Settings::update(): &useSubstitutes = %p\n", &nix::settings.useSubstitutes); _get(buildUsersGroup, "build-users-group"); diff --git a/src/libstore/remote-store.cc b/src/libstore/remote-store.cc +++ b/src/libstore/remote-store.cc @@ -138,6 +138,8 @@ void RemoteStore::initConnection(Connection & conn) void RemoteStore::setOptions(Connection & conn) { + fprintf(stderr, "at RemoteStore::setOptions(): &useSubstitutes = %p\n", &nix::settings.useSubstitutes); conn.to << wopSetOptions Gave me: at Settings::update(): &useSubstitutes = 0xb6e5c5cb at RemoteStore::setOptions(): &useSubstitutes = 0xb6e5c5c7 That was not a fun one to debug!
43 lines
952 B
Makefile
43 lines
952 B
Makefile
makefiles = \
|
|
local.mk \
|
|
src/boost/format/local.mk \
|
|
src/libutil/local.mk \
|
|
src/libstore/local.mk \
|
|
src/libmain/local.mk \
|
|
src/libexpr/local.mk \
|
|
src/nix/local.mk \
|
|
src/nix-store/local.mk \
|
|
src/nix-instantiate/local.mk \
|
|
src/nix-env/local.mk \
|
|
src/nix-daemon/local.mk \
|
|
src/nix-collect-garbage/local.mk \
|
|
src/nix-copy-closure/local.mk \
|
|
src/nix-prefetch-url/local.mk \
|
|
src/buildenv/local.mk \
|
|
src/resolve-system-dependencies/local.mk \
|
|
src/nix-channel/local.mk \
|
|
src/nix-build/local.mk \
|
|
src/build-remote/local.mk \
|
|
perl/local.mk \
|
|
scripts/local.mk \
|
|
corepkgs/local.mk \
|
|
misc/systemd/local.mk \
|
|
misc/launchd/local.mk \
|
|
misc/upstart/local.mk \
|
|
misc/emacs/local.mk \
|
|
doc/manual/local.mk \
|
|
tests/local.mk
|
|
|
|
GLOBAL_CXXFLAGS += -std=c++14 -g -Wall -include config.h
|
|
|
|
-include Makefile.config
|
|
|
|
OPTIMIZE = 1
|
|
|
|
ifeq ($(OPTIMIZE), 1)
|
|
GLOBAL_CFLAGS += -O3
|
|
GLOBAL_CXXFLAGS += -O3
|
|
endif
|
|
|
|
include mk/lib.mk
|