Commit graph

166 commits

Author SHA1 Message Date
Ludovic Courtès
5d6c55d364
gnu: cross-base: Adjust ‘cross-libc’ for use as non-native input.
When ‘cross-libc’ is used in a context where it’s not a native input, as
is the case with ‘package-with-relocatable-glibc’ when cross-compiling,
the target objdump is to be found in the native inputs.

* gnu/packages/cross-base.scm (cross-libc*): In
‘add-cross-binutils-to-PATH’ phase, look for TARGET’s objdump in
NATIVE-INPUTS in addition to INPUTS.

Change-Id: Ic0e9ee720cf4211edc95be59903b4bd1d94b1e3f
2024-08-31 10:45:47 +02:00
Ludovic Courtès
c7377b7e04
gnu: Remove leftover references to ‘%glibc/hurd-configure-flags’.
This is a followup to 901b3c2a9db1935149d6ee366bf6f2a325391740.

* gnu/packages/base.scm (glibc/hurd-headers): Remove reference to
‘%glibc/hurd-configure-flags’.
* gnu/packages/cross-base.scm (cross-libc*): Likewise.

Change-Id: Iac43d84e3407c16a0f3f926d795b55c7b7ac73fd
2024-08-31 10:45:02 +02:00
Janneke Nieuwenhuizen
41e01a1224
Revert "gnu: hurd: Add gnumach-headers as native input."
gnumach-headers[-cross] are contained in the toolchain; it was only the
`include/mach/machine' symlink that was missing.

This reverts commit 2dd16f46766997c0b3e4ee973ce6e792a4d84fcb.
2024-08-31 10:44:28 +02:00
Janneke Nieuwenhuizen
0ff267cdf2
gnu: glibc/hurd: Install include/mach/machine symlink.
* gnu/packages/base.scm (glibc): When building for the Hurd, add phase
`create-machine-symlink'.
* gnu/packages/cross-base.scm (cross-libc*): Likewise.

Change-Id: I61fa081ce081f05bed918a438fd9d4eec94ef4bf
2024-08-31 10:44:28 +02:00
Janneke Nieuwenhuizen
feae33359f
gnu: hurd: Add gnumach-headers as native input.
This provides the include/mach/machine/mach_i386.h.

* gnu/packages/hurd.scm (hurd)[native-inputs]: Add gnumach-headers, or
gnumach-headers-cross when cross-building.
[arguments]: Remove #t from phases.

Change-Id: Id57e0cf184c7793be52192bdc5587c6e6ef2a312
2024-08-31 10:44:28 +02:00
Ludovic Courtès
a84b5f9230
gnu: cross-base: Build cross-compilers with ‘--enable-languages=c,c++’.
This fixes a regression introduced in
d21d596f72ad491937123980e65d3efedc903bd6 where the cross-compiler would
fail to build with:

  checking dynamic linker characteristics... configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES.
  make[1]: *** [Makefile:13129: configure-target-libobjc] Error 1

* gnu/packages/cross-base.scm (cross-gcc-arguments): Clear
‘--enable-languages’ flag unconditionally.

Change-Id: I2bb38bac42e0791cad617893343c0d3dfc963450
2024-08-31 10:44:24 +02:00
Ludovic Courtès
77ee97628a
gnu: binutils: Use gexps.
This is the result of applying ‘guix style -S arguments’ and making
small adjustments.

* gnu/packages/base.scm (binutils)[arguments]: Use gexps.
(binutils-2.33, binutils-gold): Likewise.
* gnu/packages/commencement.scm (binutils-mesboot0, binutils-mesboot1)
(binutils-boot0, binutils-final): Likewise.
* gnu/packages/cross-base.scm (cross-binutils*): Adjust accordingly.
* gnu/packages/embedded.scm (make-propeller-binutils): Use gexps.
* gnu/packages/make-bootstrap.scm (%binutils-static): Use gexps.

Change-Id: I59cbe29760784b09e6d4e80beca9153cb9b495a7
2024-08-31 10:44:23 +02:00
Ludovic Courtès
f9f2198d82
gnu: cross-base: ‘cross’ helper uses gexps.
This is required in cases where P uses gexps.

* gnu/packages/cross-base.scm (cross): Use gexps.

Change-Id: Ie038cbec67a53700f31791ee2d171918788111d2
2024-08-31 10:44:23 +02:00
Ludovic Courtès
b6d23fa9c2
gnu: cross-base: Remove ‘install-utf8-c-locale’.
* gnu/packages/cross-base.scm (cross-libc*): Remove
‘install-utf8-c-locale’ phase.

Change-Id: I47cf555548335491f06443dd921a457f458801f4
2024-08-31 10:42:47 +02:00
Ludovic Courtès
4a4508c241
gnu: cross-base: Let glibc use the right Binutils programs.
This replaces ‘glibc-cross-objdump.patch’ and
‘glibc-cross-objcopy.patch’ (not applied to glibc@2.38): these patches
were committed upstream and later reverted on the grounds that ‘gcc
-print-prog-name=objdump’ should find the cross ‘objdump’:

  https://inbox.sourceware.org/libc-alpha/d72f5f6f-cc3a-bd89-0800-ffb068928e0f@linaro.org/t/

* gnu/packages/cross-base.scm (cross-libc*): Add
‘add-cross-binutils-to-PATH’ phase.

Change-Id: I38dc7a6134177ec73313c0a9c8b0a12c85c60e26
2024-08-31 10:42:47 +02:00
Maxim Cournoyer
f59df1aa3c
build-systems: gnu: Export %default-gnu-imported-modules and %default-gnu-modules.
Until now users would have to cargo cult or inspect the private
%default-modules variable of (guix build-systems gnu) to discover which
modules to include when extending the used modules via the #:modules argument.

The renaming was automated via the command:

  $ git grep -l %gnu-build-system-modules
    | xargs sed 's/%gnu-build-system-modules/%default-gnu-imported-modules/' -i

* guix/build-system/gnu.scm (%gnu-build-system-modules): Rename to...
(%default-gnu-imported-modules): ... this.
(%default-modules): Rename to...
(%default-gnu-modules): ... this.  Export.
(dist-package, gnu-build, gnu-cross-build): Adjust accordingly.

Change-Id: Idef307fff13cb76f3182d782b26e1cd3a5c757ee
2024-08-31 10:42:16 +02:00
Jean-Pierre De Jesus DIAZ
4c88ffdb65
gnu: cross-binutils: Use binutils-2.33 for ath9k.
* gnu/packages/cross-base.scm (cross-binutils-package): New procedure.
* gnu/packages/cross-base.scm (cross-binutils): Select binutils default
value with cross-binutils-package.
* gnu/packages/firmware.scm (ath9k-htc-firmware) <native-inputs>: Do not
explicitly set the #:xbinutils keyword argument.

Change-Id: I0eb25eb2b494241c205286837bfa79a61de8e0b7
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-04-17 12:13:02 +02:00
Jean-Pierre De Jesus DIAZ
f97f5312cc
gnu: ath9k-htc-firmware: Use xtensa-ath9k-elf.
* gnu/packages/firmware.scm (ath9k-htc-firmware): Use the
xtensa-ath9k-elf target for the cross toolchain.

Change-Id: Ic1a7c4088312290a86a508f371f4f0e784e301a5
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-04-17 12:13:02 +02:00
Jean-Pierre De Jesus DIAZ
97bad5e194
gnu: cross-gcc: Add patch for GCC 13.
* gnu/local.mk (dist_patch_DATA): Add gcc-13-cross-system-header-dir.patch.
* gnu/packages/cross-base.scm (cross-gcc) <source>: Add patch for
GCC 13.
* gnu/packages/patches/gcc-13-cross-system-header-dir.patch: New patch.

Change-Id: Ib4771ff78222fb7b7df58891d25938d338bd5df8
Signed-off-by: Christopher Baines <mail@cbaines.net>
2024-04-15 10:09:36 +01:00
Jean-Pierre De Jesus DIAZ
ffd1d0c2d4
gnu: cross-gcc-patches: Avoid patch for GCC 13+.
* gnu/packages/cross-base.scm (cross-gcc-patches): Avoid
gcc-4.9.3-mingw-gthr-default.patch patch for GCC 13+ versions since it
does not apply.

Change-Id: I4bb14d687c53733d77099a761844815900b1266a
Signed-off-by: Christopher Baines <mail@cbaines.net>
2024-04-15 10:09:36 +01:00
Jean-Pierre De Jesus DIAZ
82aef470ce
gnu: cross-gcc-toolchain: Use fixed name.
* gnu/packages/cross-base.scm (cross-gcc-toolchain) <name>: Always use
gcc-cross- prefix regardless of TARGET having a C standard library or not.

Change-Id: I5cbe89c61e5bd324a385db17c27131ea5ef75669
2024-01-22 11:26:56 +01:00
Jean-Pierre De Jesus DIAZ
f9cb95d9b4
gnu: Add cross-gcc-toolchain procedure.
* gnu/packages/cross-base.scm (cross-gcc-toolchain/implementation,
cross-gcc-toolchain): New procedures.

Change-Id: I994067eac094d0a50a7399e61bda944eded9187f
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-12-11 13:37:21 +02:00
Jean-Pierre De Jesus DIAZ
8afa806f32
gnu: cross-gcc: Only C and C++ for AVR.
* gnu/packages/cross-base.scm (cross-gcc-arguments)
<configure-flags> [target-avr?]: Add --enable-languages=c,c++.

Change-Id: I1d63bb1b0a3074b9ff8650c5afb93777183c0ea4
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-12-11 13:36:51 +02:00
Jean-Pierre De Jesus DIAZ
d149073eaf
gnu: cross-gcc: Find AVR Libc files.
* gnu/packages/cross-base.scm (cross-gcc-arguments)
<configure-flags>: Add --with-native-system-header-dir for AVR.
<make-flags>: Add target prefix to /lib to find AVR library.

Change-Id: Ie9cae338da241fe987f53463aa3774a890e2af9a
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-12-11 13:36:51 +02:00
Jean-Pierre De Jesus DIAZ
58490a9311
gnu: cross-gcc: Handle AVR inputs.
* gnu/packages/cross-base.scm (cross-gcc)[native-inputs]: Add case to
handle AVR.

Change-Id: I1ac38b721ed807302747cecb5fb1f6075694a01a
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-12-11 13:36:24 +02:00
Jean-Pierre De Jesus DIAZ
dfc1701724
gnu: cross-libc: Add AVR Libc support.
* gnu/packages/avr.scm (make-avr-libc/implementation)[arguments]: Add
avr target parameter and disable implicit cross inputs.
[native-inputs]: Rename avr-gcc and avr-binutils to cross-gcc
and cross-binutils to keep consistency with gnu-build-system.
* gnu/packages/cross-base.scm (cross-libc): Add case for avr.

Change-Id: I6b087946d1287a82fac61c48c513e7f2d2184794
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-12-11 13:34:17 +02:00
Jean-Pierre De Jesus DIAZ
f49ccd9cef
gnu: cross-gcc: Handle target include paths.
* gnu/packages/cross-base.scm (cross-gcc-search-paths): New procedure.
(cross-gcc)[search-paths]: Convert to and use cross-gcc-search-paths
procedure.

Change-Id: Id306782eaf928d05cd005b9539087ed631506b5b
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-12-11 13:33:53 +02:00
Jean-Pierre De Jesus DIAZ
9095e10620
gnu: cross-gcc: Enable multilib for AVR.
* gnu/build/cross-toolchain.scm (patch-multilib-shebang): New procedure.
* gnu/packages/avr.scm (make-avr-gcc): Remove uneeded phases and flags
  for multilib.
* gnu/packages/cross-base (cross-gcc-arguments) <#:configure-flags>
  [target-avr?]: Remove --disable-multilib and add --enable-multilib.

Change-Id: Id68d803057ac898f0a670f10487b08bf0891ab0b
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-12-11 13:24:09 +02:00
Jean-Pierre De Jesus DIAZ
444a40c75a
gnu: cross-libc: Return #f if no libc available.
* gnu/packages/cross-base.scm (cross-libc): Return #f if no libc is
available for the given TARGET.

Change-Id: I17d19716373dd5704bb70d805437738fd29bd96b
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-12-11 11:53:48 +02:00
Janneke Nieuwenhuizen
c8799fafa4
gnu: hurd-minimal: Include libshouldbeinlibc and libstore.
* gnu/packages/hurd.scm (hurd-minimal)[inputs]: Add gnumach-headers.
[arguments]: Rewrite to include libshouldbeinlibc and libstore.
* gnu/packages/cross-base.scm (cross-kernel-headers*): Update xhurd-minimal
accordingly: Add xgnumach-headers, add them to cpath, use gexps for
modify-phases, add delete-shared-target phase.

Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
2023-07-13 18:58:43 +02:00
Josselin Poiret
0dd293b4d9
gnu: Add libc-for-target and glibc/hurd.
* gnu/packages/patches/glibc-2.37-hurd-clock_t_centiseconds.patch
* gnu/packages/patches/glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch
* gnu/packages/patches/glibc-2.37-versioned-locpath.patch: New patches.
* gnu/local.mk (dist_patch_DATA): Register them.

* gnu/packages/base.scm (glibc/hurd, libc-for-target): New variables.
(glibc/hurd-headers): Use glibc/hurd.
* gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash)[outputs,
source, arguments]
(glibc-final)[source]: Use libc-for-target instead of glibc.
* gnu/packages/cross-base.scm (cross-libc/deprecated, cross-libc*): Use
libc-for-target.

This part fixes

    https://issues.guix.gnu.org/63641#25

* gnu/packages/commencement.scm (%final-inputs): Change to memoized lambda
taking "system".
* gnu/packages/commencement.scm (canonical-package): Likewise, and update
user, passing (%current-system).
(make-gcc-toolchain): Update user, passing (%current-system).
* gnu/packages/base.scm (%final-inputs): Likewise.
* guix/scripts/refresh.scm (options->update-specs): Likewise.
* guix/build-system/gnu.scm (standard-packages): Add optional "system"
parameter.
(lower): Update caller.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Co-authored-by: Janneke Nieuwenhuizen <janneke@gnu.org>
2023-07-13 18:20:05 +02:00
Josselin Poiret
c2bb342b5f
gnu: gnumach-headers: Cross-build without relying on x86.
* gnu/packages/hurd.scm (gnumach-headers): Remove configure flags where we
say the builder is running x86.
* gnu/packages/cross-base.scm (cross-gnumach-headers): Work around limitation
of build system, by manually changing the target host_cpu without relying on
--host, because we don't have a working cross-compiler yet.
2023-07-13 18:20:04 +02:00
Josselin Poiret
85ebfcf4ff
gnu: glibc/hurd-headers: Properly cross-build.
* gnu/packages/base.scm (glibc/hurd-headers): Rely on cross-mig, and remove
hardcoded configure flag `--host=i586-pc-gnu`.
* gnu/packages/cross-base.scm (cross-kernel-headers*): Add `--host` and
`--build` configure flags.
2023-07-13 18:20:01 +02:00
Josselin Poiret
5661f75d49
gnu: cross-base: Removed useless inputs to xhurd-core-headers.
* gnu/packages/cross-base.scm (cross-kernel-headers*): Remove them.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-30 12:44:19 +02:00
Josselin Poiret
9a787edb9c
gnu: cross-base: Add cross arguments to hurd derivatives.
* gnu/packages/cross-base.scm (cross-kernel-headers*): Add --build and --host to
xhurd-headers and xhurd-minimal.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-30 12:44:19 +02:00
Josselin Poiret
a16a9c5a7b
gnu: cross-base: Factor out cross-mig.
* gnu/packages/cross-base.scm (cross-mig): New exported procedure.
(cross-gnumach-headers): New procedure.
(cross-kernel-headers*): Factor them out.
(cross-libc*): Use them there.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-30 12:44:18 +02:00
Ludovic Courtès
bbb849f11f
gnu: cross-base: Use gexps for 'cross-gcc-arguments'.
* gnu/packages/cross-base.scm (cross-gcc-arguments): Switch to gexps.
2023-03-30 12:44:18 +02:00
Ludovic Courtès
065d766f09
gnu: glibc: Work around broken GNU Mach header detection.
* gnu/packages/base.scm (%glibc/hurd-configure-flags): New variable.
(glibc)[arguments]: Use it.
(glibc/hurd-headers)[arguments]: likewise.
* gnu/packages/cross-base.scm (cross-libc*): Likewise.

Co-authored-by: Josselin Poiret <dev@jpoiret.xyz>
2023-03-30 12:44:18 +02:00
Ludovic Courtès
a6194d1f35
gnu: cross-base: Inherit arguments from 'mig'.
That way, 'xmig' inherits the 'avoid-perl-dependency' build phase.

* gnu/packages/hurd.scm (mig)[arguments]: In 'avoid-perl-dependency',
use 'find-files' to locate the "mig" executable(s).
* gnu/packages/cross-base.scm (cross-kernel-headers*)[xmig]: Use
'substitute-keyword-arguments'.
2023-03-04 18:46:37 +01:00
Ludovic Courtès
3442edac89
gnu: cross-base: Remove input labels for GNU Mach and MiG.
* gnu/packages/cross-base.scm (cross-kernel-headers*)[xgnumach-headers]
[xmig]: Remove input labels; use gexps and 'modify-inputs'.
[xgnumach-headers-name]: New variable.
2023-03-04 18:46:37 +01:00
Efraim Flashner
672036c6df
gnu: Remove unneeded module imports.
* gnu/packages/abiword.scm,
* gnu/packages/ada.scm,
* gnu/packages/agda.scm,
* gnu/packages/backup.scm,
* gnu/packages/barrier.scm,
* gnu/packages/bioinformatics.scm,
* gnu/packages/bootstrap.scm,
* gnu/packages/bqn.scm,
* gnu/packages/c.scm,
* gnu/packages/chemistry.scm,
* gnu/packages/coq.scm,
* gnu/packages/cross-base.scm,
* gnu/packages/databases.scm,
* gnu/packages/emacs-xyz.scm,
* gnu/packages/enlightenment.scm,
* gnu/packages/games.scm,
* gnu/packages/geo.scm,
* gnu/packages/ghostscript.scm,
* gnu/packages/gl.scm,
* gnu/packages/golang.scm,
* gnu/packages/jami.scm,
* gnu/packages/java-maths.scm,
* gnu/packages/kde-frameworks.scm,
* gnu/packages/kde-plasma.scm,
* gnu/packages/language.scm,
* gnu/packages/libreoffice.scm,
* gnu/packages/linphone.scm,
* gnu/packages/lisp.scm,
* gnu/packages/llvm.scm,
* gnu/packages/machine-learning.scm,
* gnu/packages/minetest.scm,
* gnu/packages/monitoring.scm,
* gnu/packages/nfs.scm,
* gnu/packages/ocr.scm,
* gnu/packages/opencl.scm,
* gnu/packages/pdf.scm,
* gnu/packages/python-xyz.scm,
* gnu/packages/racket.scm,
* gnu/packages/rust.scm,
* gnu/packages/syncthing.scm,
* gnu/packages/syndication.scm,
* gnu/packages/telegram.scm,
* gnu/packages/vulkan.scm,
* gnu/packages/web-browsers.scm,
* gnu/packages/web.scm,
* gnu/packages/webkit.scm: Remove some unecessary module imports.
2023-02-16 22:41:03 +02:00
Maxim Cournoyer
2707b6ccd7
gnu: cross-base: Standardize API to use keyword arguments.
This makes it possible to invoke the procedures with a single or fewer
optional arguments.

* gnu/packages/cross-base.scm (contains-keyword?): New procedure.
(cross-binutils): Dispatch to either...
(cross-binutils/deprecated): ... this renamed procedure or ...
(cross-binutils*): ... this new procedure.
(cross-kernel-headers, cross-libc/deprecated): Likewise.
2023-01-03 16:12:06 -05:00
Maxim Cournoyer
d4c2ea9226
gnu: cross-base: Fix some indentation problems.
* gnu/packages/cross-base.scm (cross-binutils): Fix indentation.
(cross-kernel-headers): Align 'inherit' fields
of nested package variables.
(cross-gcc): Fix indentation.
2022-12-07 09:41:05 -05:00
Efraim Flashner
5a9e3b7c39
gnu: cross: Add default configure-flags.
Reported by Arun Isaac <arunisaac@systemreboot.net>.

* gnu/packages/cross-base.scm (cross)[arguments]: Add a default for
configure-flags so '--target=' is always added.
2022-09-20 11:26:12 +03:00
Morgan Smith
3f31525546
gnu: GCC: Add cross environment variables patch to GCC 12.
* gnu/packages/patches/gcc-12-cross-environment-variables.patch : New file.
* gnu/local.mk (dist_patch_DATA): Add
gcc-12-cross-environment-variables.patch.
* gnu/packages/cross-base.scm (cross-gcc)[source](patches): Apply the patch.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-05-30 16:34:39 +02:00
Josselin Poiret
dab819d5c4
Move (gnu platform) and (gnu platforms ...) to guix/.
* gnu/platform.scm:
* gnu/platforms/arm.scm:
* gnu/platforms/hurd.scm:
* gnu/platforms/mips.scm:
* gnu/platforms/powerpc.scm:
* gnu/platforms/riscv.scm:
* gnu/platforms/s390.scm:
* gnu/platforms/x86.scm: Move to guix/.

* Makefile.am:
* doc/guix.texi (Porting to a New Platform):
* etc/release-manifest.scm:
* gnu/ci.scm:
* gnu/image.scm:
* gnu/local.mk:
* gnu/packages/bioinformatics.scm:
* gnu/packages/bootstrap.scm:
* gnu/packages/cross-base.scm:
* gnu/packages/instrumentation.scm:
* gnu/packages/linux.scm:
* gnu/system/image.scm:
* gnu/system/images/hurd.scm:
* gnu/system/images/novena.scm:
* gnu/system/images/pine64.scm:
* gnu/system/images/pinebook-pro.scm:
* gnu/system/images/rock64.scm:
* guix/scripts/build.scm:
* guix/scripts/system.scm:
* guix/self.scm: Update (gnu platform...) to (guix platform...).

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-05-25 09:27:25 +02:00
Mathieu Othacehe
b55310603f
linux: Remove system->linux-architecture procedure.
* gnu/packages/linux.scm (system->linux-architecture): Remove it.
(make-linux-libre-headers*, make-linux-libre*): Adapt them.
* guix/build-system/linux-module.scm (system->arch): Adapt it.
* gnu/packages/instrumentation.scm (uftrace): Ditto.
* gnu/packages/cross-base.scm (cross-kernel-headers): Ditto.
* gnu/packages/bioinformatics.scm (ncbi-vdb): Ditto.
* doc/guix.texi (Porting to a new platform): Update it.
2022-05-22 15:15:33 +02:00
Carl Dong
34e9eae68c
gnu: cross-base: Don't specify mingw --with-newlib
Previous to this commit, we added a --with-newlib configure flag to
cross-gcc when cross-newlib?, but cross-newlib? is true only when
target-mingw?.

It turns out that specifying --with-newlib disables the
GLIBCXX_CROSSCONFIG check, which is used to detect
_GLIBCXX_HAVE__WFOPEN, which is required in C++17 std::filesystem for
mingw-w64 systems.

Additional context: In gnu/packages/embedded.scm, --with-newlib is
specified explicitly when we're actually using newlib, which seems like
the correct way of handling it.

Situation in other distros:
- Debian's gcc-mingw-w64 doesn't specify --with-newlib
- Fedora's mingw64-gcc-c++ explicitly specifies --without-newlib

Chesterton's fence: Chatting with janneke, who originally added this
mechanism, reveals that this flag is not only no longer required, but
also that removing it doesn't break his guile-mingw builds. See IRC logs
of #guix for 2022-02-15.

* gnu/packages/cross-base.scm (cross-gcc-arguments): Don't check for and
specify --with-newlib.
(cross-libc): Check for mingw and use mingw-w64 directly.
(cross-newlib?): Remove, unexport.
(native-libc): Remove.
2022-03-16 22:13:48 -04:00
Carl Dong
2d78b27711
gnu: Disable compressed debug sections for mingw-w64
The newly introduced --enable-compressed-debug-section=all configure
flag in the base binutils package makes the mingw-w64 build system
unusable. For example:

    $ guix build --target=x86_64-w64-mingw32 hello

        and

    $ guix build mingw-w64-x86_64-winpthreads

Will fail to build with an error:

    "x86_64-w64-mingw32-ld: final link failed: bad value"

Turning off this flag seems to fix the problem, but perhaps it'd also be
worthwhile to investigate the root cause.

* gnu/packages/cross-base.scm (cross-binutils): When building for mingw
  targets, append "--enable-compressed-debug-section=no" to configure
  flags.
2022-02-07 16:37:43 -05:00
Maxime Devos
637a1e7dcc
utils: Define 'target-hurd?' predicate.
It behaves similarily to the other target-...? procedures.
The usage of hurd-triplet? / target-hurd? in libgc appears
incorrect to me, as (%current-system) is normally never false.

* gnu/packages/hurd.scm (hurd-triplet?): Move to ...
* guix/util.scm (target-hurd?): ... here, let its argument
  default to (%current-target-system) or (%current-system),
  and write a docstring.
* gnu/packages/hurd.scm
  (hurd-target?, hurd-system?): Use target-hurd? instead of
  hurd-triplet?.
* gnu/packages/bdw-gc.scm (libgc): Likewise.
* gnu/packages/cross-base.scm
  (cross-libc)[arguments]<#:configure-flags>: Likewise.
  (cross-libc)[arguments]<#:phases>: Likewise.
  (cross-libc)[arguments]<#:native-inputs>: Likewise.
* gnu/packages/make-boostrap.scm
  (%glibc-stripped)[inputs]: Likewise.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-07-14 15:38:03 +02:00
Chris Marusich
45dd2b4505
gnu: Simplify the use of --with-long-double-128.
Fixes <https://bugs.gnu.org/48825>.

In short, this change adds the hard-coded "--with-long-double-128" configure
option in one place and removes it from two other places.  This changes and
simplifies the use of this option for various architectures that start with
the string "powerpc".

* gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): Add a clause for
targets starting with "powerpc64le-" or "powerpc-" which adds the
"--with-long-double-128" option.  This causes any package using this procedure
to be built using this new option on these architectures.  In particular, this
affects the gcc package and the gcc-final package, in addition to all the
other versions of GCC defined in (gnu packages gcc).
* gnu/packages/commencement.scm (gcc-boot0)[#:configure-flags]: Remove the
code that adds the "--with-long-double-128" configure option for all
architectures starting with "powerpc", since it is now redundant on the
architectures where it is needed. The gcc-boot0 package uses (and adds to) the
gcc package's configure options. This means that the above change in gcc.scm
is sufficient to ensure that the gcc-boot0 package's configure options will
include "--with-long-double-128" on powerpc64le and powerpc architectures.
Additionally, since the option is apparently not required on the big-endian
powerpc64 architecture, this change also has the nice effect of omitting the
option in that case.
* gnu/packages/cross-base.scm (cross-gcc-arguments)[#:configure-flags]: Remove
the code that adds the "--with-long-double-128" configure option for
powerpc64le, since it is now redundant. The cross-gcc-arguments procedure uses
(and adds to) the configure options of its xgcc argument (a package).  This
means that regardless of which gcc from gcc.scm is used as the xgcc, the above
change in gcc.scm is sufficient to ensure that the cross-gcc-arguments
procedure's configure options will include "--with-long-double-128" on the
powerpc64le and powerpc architectures.
2021-06-24 20:45:48 -07:00
Marius Bakke
4796b5d6d1
gnu: GCC: Switch to GCC 10.
* gnu/packages/patches/gcc-cross-gxx-include-dir.patch: New file.
* gnu/packages/patches/gcc-10-cross-environment-variables.patch: New file.
* gnu/packages/gcc.scm (gcc): Point to GCC-10.
(gcc-objc): Point to GCC-OBJC-10.
(gcc-objc++): Point to GCC-OBJC++-10.
* gnu/packages/cross-base.scm (cross-gcc)[source](patches): Apply the new
patches.
2021-06-13 01:00:46 +02:00
Marius Bakke
3cf1afb7e7
gnu: cross-kernel-headers: Fix build.
This fixes a regression introduced in
0e2251fcf8, as "make headers_check" does not
actually build the headers in newer versions, instead "make headers_install"
built them as a side effect.

* gnu/packages/cross-base.scm (cross-kernel-headers)[arguments]: Adjust build
phase to call the correct Make target.  While at it, migrate to MODIFY-PHASES.
2021-05-09 20:03:04 +02:00
Efraim Flashner
fcc39864db
Merge remote-tracking branch 'origin/master' into core-updates
Conflicts:
	gnu/local.mk
	gnu/packages/boost.scm
	gnu/packages/chez.scm
	gnu/packages/compression.scm
	gnu/packages/crates-io.scm
	gnu/packages/docbook.scm
	gnu/packages/engineering.scm
	gnu/packages/gcc.scm
	gnu/packages/gl.scm
	gnu/packages/gtk.scm
	gnu/packages/nettle.scm
	gnu/packages/python-check.scm
	gnu/packages/python-xyz.scm
	gnu/packages/radio.scm
	gnu/packages/rust.scm
	gnu/packages/sqlite.scm
	guix/build-system/node.scm
2021-04-16 14:39:48 +03:00
Carl Dong
58452d08ff
gnu: cross-base: Relax check for powerpc64le.
* gnu/packages/cross-base.scm (cross-gcc-arguments): When conditionally adding
"--with-long-double-128", check for "powerpc64le-" prefix instead of matching
full target.

Signed-off-by: Chris Marusich <cmmarusich@gmail.com>
2021-03-28 10:55:49 -07:00