Fixes: <https://bugs.gnu.org/46253>.
* gnu/packages/gcc.scm (gcc-4.7)[#:phases][pre-configure]: When the
gcc/config/rs6000 directory exists, replace "/lib64" with "/lib" in all files
within it. Note that this fix will be picked up by any package that re-uses
the pre-configure phase from gcc-4.7 (e.g., all the usual gcc packages).
(make-libstdc++)[#:phases][fix-rs6000-libdir]: New phase, which does the same
as above. It was necessary to duplicate the fix here because make-libstdc++
does not re-use the pre-configure phase from gcc-4.7.
Fixes <https://bugs.gnu.org/42392>.
Reported by Maxim Cournoyer and Erik Garrison.
Until now, the generated <bits/c++config.h> would be incorrect (many
_GLIBCXX_HAVE macros would be undefined), which in turn would lead to
build failures for most C++ programs.
* gnu/packages/gcc.scm (gcc-6)[inputs]: Add LIBSTDC++-HEADERS.
(libstdc++, libstdc++-headers): New variables.
* gnu/packages/gcc.scm (gfortran): Change first argument to 'custom-gcc'
to remove dependency on LIBSTDC++-HEADERS.
The gfortran packages cannot be used without being wrapped with
gfortran-toolchain. However, as the comment in (gnu packages
commencement) explains, there cannot be more than one gfortran-toolchain
package because of ABI issues. Thus, versions of gfortran other than the
main one are useless.
* gnu/packages/gcc.scm (gfortran-4.8, gfortran-4.9, gfortran-5,
gfortran-6, gfortran-7, gfortran-8, gfortran-9): Remove variables.
(gfortran): Define the gfortran package based on the gcc variable.
This is no longer required since the update to 8.4.0 in 60ce496ad8.
* gnu/packages/patches/gcc-8-libsanitizer-mode-size.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/gcc.scm (gcc-8)[source](patches): Remove it.
* gnu/packages/make-bootstrap.scm (gcc-static): Use gcc-5. This fixes
building libstdc++-boot0 with a newly built %bootstrap-gcc.
(%gcc-stripped): Likewise.
(gcc-for-bootstrap): Likewise.
* gnu/packages/patches/gcc-5-hurd.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/gcc.scm (gcc-5): Use it.
This patch became obsolete when the update to 9.3.0 was merged (commit 3dade1d59e).
* gnu/packages/patches/gcc-9-libsanitizer-mode-size.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/gcc.scm (gcc-9)[source](patches): Remove it.
* gnu/packages/gcc.scm (gcc-4.9): Unless cross-compiling, add ...
[arguments]: with a phase to remove glibc and GCC from CPLUS_INCLUDE_PATH.
(gcc-6)[arguments]: Inherit from GCC-4.8.
Fixes <https://bugs.gnu.org/30756>.
Initially reported by Julien Lepiller <julien@lepiller.eu>.
* gnu/packages/base.scm (make-gcc-libc): Remove
'treat-glibc-as-system-header' phase from 'arguments'.
* gnu/packages/commencement.scm (gcc-final): Likewise.
* gnu/packages/gcc.scm (gcc-4.7)[arguments]: Add "include/c++" to
'CPLUS_INCLUDE_PATH'.
(gcc-6)[native-search-paths]: Remove.
* gnu/packages/make-bootstrap.scm (gcc-for-bootstrap): Remove
'native-search-paths' and 'arguments'.
* gnu/packages/patches/python-2.7-search-paths.patch,
gnu/packages/patches/python-3-search-paths.patch: Replace "CPATH" with
"C_INCLUDE_PATH".
* guix/build-system/cmake.scm (lower): When not cross-compiling, move
INPUTS from the 'host-inputs' field to the 'build-inputs' field of the
bag, right after NATIVE-INPUTS.
* guix/build-system/glib-or-gtk.scm (lower): Likewise.
* guix/build-system/gnu.scm (lower): Likewise.
* guix/build-system/meson.scm (lower): Likewise.
This is a follow-up to commit d78010b81e. While
the plain "gcc" packages should be hidden by default, gcc-derived packages
like "gfortran" should not.
* gnu/packages/gcc.scm (custom-gcc)[properties]: Remove the 'hidden? property.
This allows us to supply gcc-9 as an optional argument to cross-gcc,
successfully constructing gcc-9-based cross-compilers.
* gnu/packages/gcc.scm (gcc-9)[source](patches): Add
"gcc-9-asan-fix-limits-include.patch".
* gnu/packages/patches/gcc-9-asan-fix-limits-include.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add the patch.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/packages/cross-base.scm (%gcc-cross-include-paths): Remove
CROSS_C_INCLUDE_PATH & co in favor of CROSS_CPATH.
* gnu/build/cross-toolchain.scm (%gcc-cross-include-paths): Likewise.
(cross-gcc-build-phases): Set CROSS_C_INCLUDE_PATH and
CROSS_CPLUS_INCLUDE_PATH when building the cross GCC.
* gnu/packages/commencement.scm (libstdc++): Add
"--disable-libstdcxx-dual-abi" to #:configure-flags.
(gcc-boot0)[arguments]: Add "--disable-libmpx"
to #:configure-flags.
(gcc-final): Add phase to set C_INCLUDE_PATH and CPLUS_INCLUDE_PATH before
building GCC.
(gcc-toolchain-5): Use MAKE-GCC-TOOLCHAIN.
(gcc-toolchain-7): Change to GCC-TOOLCHAIN.
* gnu/packages/gcc.scm (gcc): Change from GCC-5 to GCC-7.
(gfortran): Change to GFORTRAN-7.
(gcc-objc): Change to GCC-OBJC-7.
(gcc-objc++): Change to GCC-OBJC++-7.
* gnu/packages/rust.scm (rust-1.19.0)[native-search-paths]: Change from
C_INCLUDE_PATH & co to CPATH.