Ricardo Wurmus writes: > Hi Marius, > >> Efraim Flashner writes: >> >>> On Sat, Jan 19, 2019 at 07:09:04PM +0200, Efraim Flashner wrote: >>>> >>>> I'm going to see if I can build hello --target=arm-linux-gnueabihf next >>>> and see how that works. >>> >>> When I get to gcc-cross-arm-linux-gnueabihf it fails during configure, >>> cannot find gmp.h. Looking at (gnu packages cross-base), I don't think >>> there are any package-inputs for xgcc. I still thought gcc bundled its >>> own gmp et. al. >> >> I'm happy to report that the cross-compilation issues are resolved with >> this trivial patch: >> >> 2 files changed, 5 insertions(+), 11 deletions(-) >> gnu/build/cross-toolchain.scm | 9 +++------ >> gnu/packages/cross-base.scm | 7 ++----- >> >> modified gnu/build/cross-toolchain.scm >> @@ -36,11 +36,8 @@ >> >> (define %gcc-include-paths >> ;; Environment variables for header search paths. >> - ;; Note: See for why not 'CPATH'. >> - '("C_INCLUDE_PATH" >> - "CPLUS_INCLUDE_PATH" >> - "OBJC_INCLUDE_PATH" >> - "OBJCPLUS_INCLUDE_PATH")) >> + ;; Note: See for why not 'C_INCLUDE_PATH' & co. >> + '("CPATH")) >> >> (define %gcc-cross-include-paths >> ;; Search path for target headers when cross-compiling. >> @@ -179,7 +176,7 @@ a target triplet." >> ;; header" such that #include_next does the right thing. >> (for-each (lambda (var) >> (setenv var (string-append libc "/include"))) >> - '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH"))) >> + '("CROSS_C_INCLUDE_PATH" "CROSS_CPLUS_INCLUDE_PATH"))) >> #t))) >> (add-after 'install 'make-cross-binutils-visible >> (cut make-cross-binutils-visible #:target target <...>)) >> modified gnu/packages/cross-base.scm >> @@ -51,11 +51,8 @@ >> >> (define %gcc-include-paths >> ;; Environment variables for header search paths. >> - ;; Note: See for why not 'CPATH'. >> - '("C_INCLUDE_PATH" >> - "CPLUS_INCLUDE_PATH" >> - "OBJC_INCLUDE_PATH" >> - "OBJCPLUS_INCLUDE_PATH")) >> + ;; Note: See for why not 'C_INCLUDE_PATH' & co. >> + '("CPATH")) >> >> (define %gcc-cross-include-paths >> ;; Search path for target headers when cross-compiling. >> >> [back] >> Silly me for not catching the CROSS_C_INCLUDE_PATH issue earlier. But, >> at least I got to know the GCC build processes and GDB better... ;-) >> >> I will commit this series shortly and work on a followup patch that >> removes the various GCC5/C++14 workarounds in one go. > > Will this break compilation with GCC5 and older, when they are installed > in a profile or used as inputs? Do we need copies of these variables > and use different variants for different compiler versions? I believe using (CROSS_)CPATH will work for all GCC versions, whereas (CROSS_)C_INCLUDE_PATH are broken for GCC >= 6. We do use C_INCLUDE_PATH for GCC < 6 in (gnu packages gcc), but I don't think the added complexity is worth it for the cross-compiler infrastructure.