From ef92a14bfea7a16102b04711c9c18ad717e82ea1 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 17 Dec 2009 14:12:44 +0000 Subject: [PATCH] * Include config.h before the C library headers, because it defines _FILE_OFFSET_BITS=64. Without it, functions like stat() fail on large file sizes. This happened with a Nix store on squashfs: $ nix-store --dump /tmp/mnt/46wzqnk4cbdwh1dclhrpqnnz1icak6n7-local-net-cmds > /dev/null error: getting attributes of path `/tmp/mnt/46wzqnk4cbdwh1dclhrpqnnz1icak6n7-local-net-cmds': Value too large for defined data type $ stat /tmp/mnt/46wzqnk4cbdwh1dclhrpqnnz1icak6n7-local-net-cmds File: `/tmp/mnt/46wzqnk4cbdwh1dclhrpqnnz1icak6n7-local-net-cmds' Size: 0 Blocks: 36028797018963968 IO Block: 1024 regular empty file (This is a bug in squashfs or mksquashfs, but it shouldn't cause Nix to fail.) --- src/libstore/build.cc | 4 ++-- src/libutil/archive.cc | 4 ++-- src/libutil/util.hh | 2 ++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/libstore/build.cc b/src/libstore/build.cc index 2e0f166d4f..d56ae4570d 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -1,3 +1,5 @@ +#include "config.h" + #include "references.hh" #include "pathlocks.hh" #include "misc.hh" @@ -29,8 +31,6 @@ /* Includes required for chroot support. */ -#include "config.h" - #if HAVE_SYS_PARAM_H #include #endif diff --git a/src/libutil/archive.cc b/src/libutil/archive.cc index f30e5b7cf6..8fde4328c4 100644 --- a/src/libutil/archive.cc +++ b/src/libutil/archive.cc @@ -1,3 +1,5 @@ +#include "config.h" + #include #include #include @@ -12,8 +14,6 @@ #include "archive.hh" #include "util.hh" -#include "config.h" - namespace nix { diff --git a/src/libutil/util.hh b/src/libutil/util.hh index d7d3e5edf8..a5d0445c14 100644 --- a/src/libutil/util.hh +++ b/src/libutil/util.hh @@ -1,6 +1,8 @@ #ifndef __UTIL_H #define __UTIL_H +#include "config.h" + #include "types.hh" #include