GNU bug report logs - #32953
[PATCH core-updates-next 0/8] Use GCC7 as the default compiler.

Previous Next

Package: guix-patches;

Reported by: Marius Bakke <mbakke <at> fastmail.com>

Date: Sat, 6 Oct 2018 13:15:02 UTC

Severity: normal

Tags: patch

Done: Marius Bakke <mbakke <at> fastmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Ricardo Wurmus <rekado <at> elephly.net>
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 32953 <at> debbugs.gnu.org, Efraim Flashner <efraim <at> flashner.co.il>
Subject: [bug#32953] [PATCH core-updates-next 0/8] Use GCC7 as the default compiler.
Date: Fri, 08 Feb 2019 13:28:37 +0100
Marius Bakke <mbakke <at> fastmail.com> writes:

> Ricardo Wurmus <rekado <at> elephly.net> writes:
>
>> Hi Marius,
>>
>>> Efraim Flashner <efraim <at> flashner.co.il> 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 <http://bugs.gnu.org/22186> for why not 'CPATH'.
>>> -  '("C_INCLUDE_PATH"
>>> -    "CPLUS_INCLUDE_PATH"
>>> -    "OBJC_INCLUDE_PATH"
>>> -    "OBJCPLUS_INCLUDE_PATH"))
>>> +  ;; Note: See <http://bugs.gnu.org/30756> 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 <http://bugs.gnu.org/22186> for why not 'CPATH'.
>>> -  '("C_INCLUDE_PATH"
>>> -    "CPLUS_INCLUDE_PATH"
>>> -    "OBJC_INCLUDE_PATH"
>>> -    "OBJCPLUS_INCLUDE_PATH"))
>>> +  ;; Note: See <http://bugs.gnu.org/30756> 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.

Thanks for the explanation.

Will this allow us to close bug #30756?

-- 
Ricardo





This bug report was last modified 6 years and 162 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.