From 705868a8a96a10f70e629433cfffc2d5cd2703eb Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 4 Oct 2010 17:55:38 +0000 Subject: * Make sure that config.h is included before the system headers, because it defines _FILE_OFFSET_BITS. Without this, on OpenSolaris the system headers define it to be 32, and then the 32-bit stat() ends up being called with a 64-bit "struct stat", or vice versa. This also ensures that we get 64-bit file sizes everywhere. * Remove the redundant call to stat() in parseExprFromFile(). The file cannot be a symlink because that's the exit condition of the loop before. --- src/libexpr/parser.y | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'src/libexpr/parser.y') diff --git a/src/libexpr/parser.y b/src/libexpr/parser.y index 7236bab19ce5..b0c54339b051 100644 --- a/src/libexpr/parser.y +++ b/src/libexpr/parser.y @@ -15,10 +15,6 @@ stuff. So allow it to be excluded. */ #ifndef BISON_HEADER_HACK #define BISON_HEADER_HACK - -#include -#include -#include #include "util.hh" @@ -28,6 +24,10 @@ #include "lexer-tab.hh" #define YYSTYPE YYSTYPE // workaround a bug in Bison 2.4 +#include +#include +#include + using namespace nix; @@ -480,8 +480,6 @@ Expr * parseExprFromFile(EvalState & state, Path path) } /* If `path' refers to a directory, append `/default.nix'. */ - if (stat(path.c_str(), &st)) - throw SysError(format("getting status of `%1%'") % path); if (S_ISDIR(st.st_mode)) path = canonPath(path + "/default.nix"); -- cgit 1.4.1