From 8ec036df630165cc16d38eaf6bbf95ee4ad657c8 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 29 Sep 2020 16:03:44 +0200 Subject: build-system/gnu: Explicity declare the _FILE_OFFSET_BITS we want. * guix/build/gnu-build-system.scm (set-FILE-OFFSET-BITS): New procedure. (%standard-phases): Add it. --- guix/build/gnu-build-system.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index d3347c9518..1a1c4627ab 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -60,6 +60,17 @@ (define* (set-SOURCE-DATE-EPOCH #:rest _) (setenv "SOURCE_DATE_EPOCH" "1") #t) +(define* (set-FILE-OFFSET-BITS #:rest _) + "Define '_FILE_OFFSET_BITS' using the C preprocessor. +This ensures that 32 bit and 64 bit user space both can handle results +returned from a 64 bit kernel. +See https://bugzilla.kernel.org/show_bug.cgi?id=205957." + ;; Setting CFLAGS here makes packages not default CFLAGS. + ;; Since glibc (and probably other packages) don't like being built without optimization, enable optimization here. + (setenv "CFLAGS" "-D_FILE_OFFSET_BITS=64 -g -O2") + (setenv "CXXFLAGS" "-D_FILE_OFFSET_BITS=64 -g -O2") + #t) + (define (first-subdirectory directory) "Return the file name of the first sub-directory of DIRECTORY." (match (scandir directory @@ -803,7 +814,7 @@ (define %standard-phases ;; Standard build phases, as a list of symbol/procedure pairs. (let-syntax ((phases (syntax-rules () ((_ p ...) `((p . ,p) ...))))) - (phases set-SOURCE-DATE-EPOCH set-paths install-locale unpack + (phases set-SOURCE-DATE-EPOCH set-FILE-OFFSET-BITS set-paths install-locale unpack bootstrap patch-usr-bin-file patch-source-shebangs configure patch-generated-file-shebangs -- cgit v1.2.3