GNU bug report logs -
#68202
[PATCH 0/5] Add support for x86_64-linux-gnux32
Previous Next
Reported by: Efraim Flashner <efraim <at> flashner.co.il>
Date: Tue, 2 Jan 2024 07:27:01 UTC
Severity: normal
Tags: patch
Done: Efraim Flashner <efraim <at> flashner.co.il>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 68202 in the body.
You can then email your comments to 68202 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#68202
; Package
guix-patches
.
(Tue, 02 Jan 2024 07:27:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Efraim Flashner <efraim <at> flashner.co.il>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Tue, 02 Jan 2024 07:27:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
I was reminded recently about a comment I made back in February 2017
about getting guix support for x32, aka x86_64-linux-gnux32, aka
x86_64-linux but with 32-bit data structures. The idea was that by
using 32-bit pointers there'd be a not insignificant speed-up of code
execution¹. I am uncertain how true this is, or which packages would
really benefit from this.
Interestingly,
%glibc-cross-x86_64-linux-gnux32-2.35/lib/ld-linux-x32.so.2 --help
suggests that it still benefits from our --tune parameters, which is not
the case for i686-linux's ld-linux.so.2.
¹ https://en.wikipedia.org/wiki/X32_ABI
Efraim Flashner (5):
gnu: Add support for x86_64-linux-gnux32.
gnu: Add target-x32?.
gnu: openssl: Fix building on x86_64-linux-gnux32.
gnu: gmp: Fix building on x86_64-linux-gnux32.
gnu: libsigsegv: Fix building for x86_64-linux-gnux32.
gnu/packages/bootstrap.scm | 5 ++++-
gnu/packages/gcc.scm | 5 ++++-
gnu/packages/libsigsegv.scm | 33 +++++++++++++++++----------------
gnu/packages/multiprecision.scm | 4 +++-
gnu/packages/tls.scm | 4 +++-
guix/platforms/x86.scm | 10 ++++++++++
guix/utils.scm | 12 +++++++++++-
7 files changed, 52 insertions(+), 21 deletions(-)
base-commit: f2102cb5b9239be2ed2023b908b726af542e0124
--
Efraim Flashner <efraim <at> flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
Information forwarded
to
guix <at> cbaines.net, dev <at> jpoiret.xyz, ludo <at> gnu.org, othacehe <at> gnu.org, rekado <at> elephly.net, zimon.toutoune <at> gmail.com, me <at> tobias.gr, guix-patches <at> gnu.org
:
bug#68202
; Package
guix-patches
.
(Tue, 02 Jan 2024 07:29:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 68202 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add entry for
x86_64-linux-gnux32.
* gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): Add
configure-flag for x86_64-linux-gnux32.
* guix/platforms/x86.scm (x86_64-linux-gnux32): New variable.
* guix/utils.scm (gnu-triplet->nix-system): Force x86_64-linux-gnux32 to
output a different nix-system than x86_64-linux-gnu.
Change-Id: I519fea2f8357e4b9895ede05fe8a5e373e9b034a
---
gnu/packages/bootstrap.scm | 5 ++++-
gnu/packages/gcc.scm | 5 ++++-
guix/platforms/x86.scm | 10 ++++++++++
guix/utils.scm | 4 +++-
4 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index 602d8f26c5..a36bb289cd 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo <at> gnu.org>
;;; Copyright © 2014, 2015, 2018, 2019 Mark H Weaver <mhw <at> netris.org>
-;;; Copyright © 2017, 2020 Efraim Flashner <efraim <at> flashner.co.il>
+;;; Copyright © 2017, 2020, 2024 Efraim Flashner <efraim <at> flashner.co.il>
;;; Copyright © 2018, 2020, 2022 Jan (janneke) Nieuwenhuizen <janneke <at> gnu.org>
;;; Copyright © 2019 Carl Dong <contact <at> carldong.me>
;;; Copyright © 2019 Léo Le Bouter <lle-bout <at> zaclys.net>
@@ -323,6 +323,9 @@ (define* (glibc-dynamic-linker
((string=? system "powerpc64-linux") "/lib/ld64.so.1")
((string=? system "alpha-linux") "/lib/ld-linux.so.2")
+ ;; TODO: Differentiate between x86_64-linux-gnu and x86_64-linux-gnux32.
+ ((string=? system "x86_64-linux-gnux32") "/lib/ld-linux-x32.so.2")
+
;; XXX: This one is used bare-bones, without a libc, so add a case
;; here just so we can keep going.
((string=? system "arm-eabi") "no-ld.so")
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index a8b74a3632..5590cd3d7e 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw <at> netris.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2021 Ricardo Wurmus <rekado <at> elephly.net>
;;; Copyright © 2015, 2023 Andreas Enge <andreas <at> enge.fr>
-;;; Copyright © 2015-2018, 2020-2023 Efraim Flashner <efraim <at> flashner.co.il>
+;;; Copyright © 2015-2018, 2020-2024 Efraim Flashner <efraim <at> flashner.co.il>
;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll <at> gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me <at> tobias.gr>
;;; Copyright © 2018, 2020, 2022 Marius Bakke <marius <at> gnu.org>
@@ -75,6 +75,9 @@ (define (gcc-configure-flags-for-triplet target)
"--with-mode=thumb"
"--with-fpu=neon"))
+ ((string-match "x86_64-linux-gnux32" target)
+ '("--with-abi=mx32"))
+
((and (string-suffix? "-gnu" target)
(not (string-contains target "-linux")))
;; Cross-compilation of libcilkrts in GCC 5.5.0 to GNU/Hurd fails
diff --git a/guix/platforms/x86.scm b/guix/platforms/x86.scm
index 4ed5638c14..0c8fc7296c 100644
--- a/guix/platforms/x86.scm
+++ b/guix/platforms/x86.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Mathieu Othacehe <othacehe <at> gnu.org>
+;;; Copyright © 2023, 2024 Efraim Flashner <efraim <at> flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,6 +22,7 @@ (define-module (guix platforms x86)
#:use-module (guix records)
#:export (i686-linux
x86_64-linux
+ x86_64-linux-x32
i686-mingw
x86_64-mingw
i586-gnu))
@@ -41,6 +43,14 @@ (define x86_64-linux
(rust-target "x86_64-unknown-linux-gnu")
(glibc-dynamic-linker "/lib/ld-linux-x86-64.so.2")))
+(define x86_64-linux-x32
+ (platform
+ (target "x86_64-linux-gnux32")
+ (system #f)
+ (linux-architecture "x86_64")
+ (rust-target "x86_64-unknown-linux-gnux32")
+ (glibc-dynamic-linker "/lib/ld-linux-x32.so.2")))
+
(define i686-mingw
(platform
(target "i686-w64-mingw32")
diff --git a/guix/utils.scm b/guix/utils.scm
index 8e71f97e1c..f4bf965e9a 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -7,7 +7,7 @@
;;; Copyright © 2015 David Thompson <davet <at> gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe <at> gmail.com>
;;; Copyright © 2018, 2020 Marius Bakke <marius <at> gnu.org>
-;;; Copyright © 2020, 2021 Efraim Flashner <efraim <at> flashner.co.il>
+;;; Copyright © 2020, 2021, 2024 Efraim Flashner <efraim <at> flashner.co.il>
;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune <at> gmail.com>
;;; Copyright © 2021 Chris Marusich <cmmarusich <at> gmail.com>
@@ -634,6 +634,8 @@ (define (gnu-triplet->nix-system triplet)
(else triplet))))
(cond ((string-match "^arm[^-]*-([^-]+-)?linux-gnueabihf" triplet)
"armhf-linux")
+ ;; Otherwise it will show up as x86_64-linux... which isn't wrong.
+ ((string-match "x86_64-linux-gnux32" triplet) "x86_64-linux-gnux32")
((string-match "^([^-]+)-([^-]+-)?linux-gnu.*" triplet)
=>
(lambda (m)
--
Efraim Flashner <efraim <at> flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
Information forwarded
to
guix <at> cbaines.net, dev <at> jpoiret.xyz, ludo <at> gnu.org, othacehe <at> gnu.org, rekado <at> elephly.net, zimon.toutoune <at> gmail.com, me <at> tobias.gr, guix-patches <at> gnu.org
:
bug#68202
; Package
guix-patches
.
(Tue, 02 Jan 2024 07:29:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 68202 <at> debbugs.gnu.org (full text, mbox):
* guix/utils.scm (target-x32?): New procedure.
Change-Id: Ia16c7edce64de01d5ccb126c7bd9a6736f327b5f
---
guix/utils.scm | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/guix/utils.scm b/guix/utils.scm
index f4bf965e9a..e4e9d922e7 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -97,6 +97,7 @@ (define-module (guix utils)
target-x86-32?
target-x86-64?
target-x86?
+ target-x32?
target-arm32?
target-aarch64?
target-arm?
@@ -712,6 +713,13 @@ (define* (target-x86-64? #:optional (target (or (%current-target-system)
architecture (x86_64)?"
(string-prefix? "x86_64-" target))
+(define* (target-x32? #:optional (target (or (%current-target-system)
+ (%current-system))))
+ "Is the architecture of TARGET a variant of Intel/AMD's 64-bit
+architecture (x86_64) using 32-bit data types?"
+ (and (target-x86-64? target)
+ (string-suffix? "gnux32" target)))
+
(define* (target-x86? #:optional (target (or (%current-target-system)
(%current-system))))
(or (target-x86-32? target) (target-x86-64? target)))
--
Efraim Flashner <efraim <at> flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68202
; Package
guix-patches
.
(Tue, 02 Jan 2024 07:29:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 68202 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/tls.scm (target->openssl-target): Add entry for
x86_64-linux-gnux32.
Change-Id: Icbbdb76134da0811b8493c55ca2d3acdb77c5883
---
gnu/packages/tls.scm | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 75e6370c72..208a7ff640 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2013, 2015 Andreas Enge <andreas <at> enge.fr>
;;; Copyright © 2015 David Thompson <davet <at> gnu.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Leo Famulari <leo <at> famulari.name>
-;;; Copyright © 2016, 2017, 2019, 2021-2023 Efraim Flashner <efraim <at> flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2021-2024 Efraim Flashner <efraim <at> flashner.co.il>
;;; Copyright © 2016, 2017, 2018 Nikita <nikita <at> n0.is>
;;; Copyright © 2016 Hartmut Goebel <h.goebel <at> crazy-compilers.com>
;;; Copyright © 2017 Ricardo Wurmus <rekado <at> elephly.net>
@@ -429,6 +429,8 @@ (define (target->openssl-target target)
(cond
((target-x86-32? target)
"x86")
+ ((target-x32? target)
+ "x32")
((target-x86-64? target)
"x86_64")
((target-mips64el? target)
--
Efraim Flashner <efraim <at> flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68202
; Package
guix-patches
.
(Tue, 02 Jan 2024 07:29:03 GMT)
Full text and
rfc822 format available.
Message #17 received at 68202 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/multiprecision.scm (gmp)[arguments]: When building for
x86_64-linux-gnux32 add a configure-flag to use the x32 ABI.
Change-Id: I321c707b3f7df5eeb338f03dacf08b29181ecf53
---
gnu/packages/multiprecision.scm | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm
index 0c6255c129..591170b508 100644
--- a/gnu/packages/multiprecision.scm
+++ b/gnu/packages/multiprecision.scm
@@ -6,7 +6,7 @@
;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke <at> gnu.org>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me <at> tobias.gr>
;;; Copyright © 2018 Eric Bavier <bavier <at> member.fsf.org>
-;;; Copyright © 2018, 2019, 2021, 2023 Efraim Flashner <efraim <at> flashner.co.il>
+;;; Copyright © 2018, 2019, 2021, 2023, 2024 Efraim Flashner <efraim <at> flashner.co.il>
;;; Copyright © 2021 Vinicius Monego <monego <at> posteo.net>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke <at> gnu.org>
@@ -71,6 +71,8 @@ (define-public gmp
;; they produce different headers. We need shared.
`("--disable-static"
"--enable-shared"))
+ ((target-x32?)
+ `("ABI=x32"))
(else '())))
;; Remove after core-updates merge.
;; Workaround for gcc-7 transition breakage, -system and cross-build,
--
Efraim Flashner <efraim <at> flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68202
; Package
guix-patches
.
(Tue, 02 Jan 2024 07:29:03 GMT)
Full text and
rfc822 format available.
Message #20 received at 68202 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/libsigsegv.scm (libsigsegv)[arguments]: When building for
x86_64-linux-gnux32 add a phase to not include extra headers.
Change-Id: Ie2d23fd037ed533dacf08acf52771b7ab1d446ac
---
gnu/packages/libsigsegv.scm | 33 +++++++++++++++++----------------
1 file changed, 17 insertions(+), 16 deletions(-)
diff --git a/gnu/packages/libsigsegv.scm b/gnu/packages/libsigsegv.scm
index ebbdd2ad90..9f4b0dd88d 100644
--- a/gnu/packages/libsigsegv.scm
+++ b/gnu/packages/libsigsegv.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2018 Ludovic Courtès <ludo <at> gnu.org>
-;;; Copyright © 2017 Efraim Flashner <efraim <at> flashner.co.il>
+;;; Copyright © 2017, 2024 Efraim Flashner <efraim <at> flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,6 +21,7 @@ (define-module (gnu packages libsigsegv)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix utils)
#:use-module (guix build-system gnu))
(define-public libsigsegv
@@ -40,21 +41,21 @@ (define-public libsigsegv
(arguments
`(;; The shared library isn't built by default but some packages need it.
#:configure-flags '("--enable-shared")
-
- ;; On MIPS, work around this error:
- ;;
- ;; In file included from fault-linux-mips-old.h:18:0,
- ;; [...]
- ;; linux-libre-headers-cross-mips64el-linux-gnu-3.3.8/include/asm/sigcontext.h:57:8: error: redefinition of 'struct sigcontext'
- ,@(if (string-contains (or (%current-target-system) (%current-system))
- "mips64el")
- `(#:phases (modify-phases %standard-phases
- (add-before 'configure 'patch-mips-old-h
- (lambda _
- (substitute* "src/fault-linux-mips-old.h"
- (("#include <asm/sigcontext\\.h>") ""))
- #t))))
- '())))
+ ;; On some architectures 'struct sigcontext' gets redefined from
+ ;; %linux-libre-headers/include/asm/sigcontext.h
+ ,@(cond ((target-mips64el?)
+ `(#:phases (modify-phases %standard-phases
+ (add-before 'configure 'patch-mips-old-h
+ (lambda _
+ (substitute* "src/fault-linux-mips-old.h"
+ (("#include <asm/sigcontext\\.h>") "")))))))
+ ((target-x32?)
+ `(#:phases (modify-phases %standard-phases
+ (add-before 'configure 'patch-linux-x86_64-old-h
+ (lambda _
+ (substitute* "src/fault-linux-x86_64-old.h"
+ (("#include <asm/sigcontext\\.h>") "")))))))
+ (else '()))))
(description
"GNU libsigsegv is a library to handle page faults, which occur when a
program tries to access an unavailable region of memory, in user mode. By
--
Efraim Flashner <efraim <at> flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68202
; Package
guix-patches
.
(Wed, 03 Jan 2024 08:44:02 GMT)
Full text and
rfc822 format available.
Message #23 received at 68202 <at> debbugs.gnu.org (full text, mbox):
Hello Efraim,
> + ;; On some architectures 'struct sigcontext' gets redefined from
> + ;; %linux-libre-headers/include/asm/sigcontext.h
> + ,@(cond ((target-mips64el?)
> + `(#:phases (modify-phases %standard-phases
> + (add-before 'configure 'patch-mips-old-h
> + (lambda _
> + (substitute* "src/fault-linux-mips-old.h"
> + (("#include <asm/sigcontext\\.h>") "")))))))
> + ((target-x32?)
> + `(#:phases (modify-phases %standard-phases
> + (add-before 'configure 'patch-linux-x86_64-old-h
> + (lambda _
> + (substitute* "src/fault-linux-x86_64-old.h"
> + (("#include <asm/sigcontext\\.h>") "")))))))
> + (else '()))))
> (description
> "GNU libsigsegv is a library to handle page faults, which occur when a
> program tries to access an unavailable region of memory, in user mode. By
#67859 is doing more or less the same thing, but for x86_64 as a
whole. Could you maybe replace `target-x32` by `target-x86`?
Maybe we should come up with a list of architectures that need that kind
of fix in libsigsegv and patch all the src/fault-linux-xxx-old-h?
The rest of the series seems fine to me.
Thanks,
Mathieu
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68202
; Package
guix-patches
.
(Wed, 03 Jan 2024 08:54:02 GMT)
Full text and
rfc822 format available.
Message #26 received at 68202 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On Wed, Jan 03, 2024 at 09:43:32AM +0100, Mathieu Othacehe wrote:
>
> Hello Efraim,
>
> > + ;; On some architectures 'struct sigcontext' gets redefined from
> > + ;; %linux-libre-headers/include/asm/sigcontext.h
> > + ,@(cond ((target-mips64el?)
> > + `(#:phases (modify-phases %standard-phases
> > + (add-before 'configure 'patch-mips-old-h
> > + (lambda _
> > + (substitute* "src/fault-linux-mips-old.h"
> > + (("#include <asm/sigcontext\\.h>") "")))))))
> > + ((target-x32?)
> > + `(#:phases (modify-phases %standard-phases
> > + (add-before 'configure 'patch-linux-x86_64-old-h
> > + (lambda _
> > + (substitute* "src/fault-linux-x86_64-old.h"
> > + (("#include <asm/sigcontext\\.h>") "")))))))
> > + (else '()))))
> > (description
> > "GNU libsigsegv is a library to handle page faults, which occur when a
> > program tries to access an unavailable region of memory, in user mode. By
>
> #67859 is doing more or less the same thing, but for x86_64 as a
> whole. Could you maybe replace `target-x32` by `target-x86`?
>
> Maybe we should come up with a list of architectures that need that kind
> of fix in libsigsegv and patch all the src/fault-linux-xxx-old-h?
I don't have a mips machine hooked up so I can't test if its needed
natively. I did check debian's packaging of libsigsegv and they don't
have anything like this for any architecture. It wouldn't be hard to
change it to (if (%current-target-system)
... (substitute* (find-files "src" "fault.*-old\\.h$")
which would hit every instance of this include
> The rest of the series seems fine to me.
>
> Thanks,
>
> Mathieu
--
Efraim Flashner <efraim <at> flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]
Reply sent
to
Efraim Flashner <efraim <at> flashner.co.il>
:
You have taken responsibility.
(Fri, 05 Jan 2024 11:23:01 GMT)
Full text and
rfc822 format available.
Notification sent
to
Efraim Flashner <efraim <at> flashner.co.il>
:
bug acknowledged by developer.
(Fri, 05 Jan 2024 11:23:02 GMT)
Full text and
rfc822 format available.
Message #31 received at 68202-done <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Patches pushed, with the change to libsigsegv to patch on all
cross-builds.
--
Efraim Flashner <efraim <at> flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68202
; Package
guix-patches
.
(Mon, 08 Jan 2024 09:22:01 GMT)
Full text and
rfc822 format available.
Message #34 received at 68202 <at> debbugs.gnu.org (full text, mbox):
Hi,
On Tue, 2 Jan 2024 at 08:29, Efraim Flashner <efraim <at> flashner.co.il> wrote:
> +(define* (target-x32? #:optional (target (or (%current-target-system)
> + (%current-system))))
> + "Is the architecture of TARGET a variant of Intel/AMD's 64-bit
> +architecture (x86_64) using 32-bit data types?"
> + (and (target-x86-64? target)
> + (string-suffix? "gnux32" target)))
> +
> (define* (target-x86? #:optional (target (or (%current-target-system)
> (%current-system))))
> (or (target-x86-32? target) (target-x86-64? target)))
Why not add it to target-x86-32? ?
Cheers,
simon
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68202
; Package
guix-patches
.
(Mon, 08 Jan 2024 10:06:02 GMT)
Full text and
rfc822 format available.
Message #37 received at 68202 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On Mon, Jan 08, 2024 at 10:20:36AM +0100, Simon Tournier wrote:
> Hi,
>
> On Tue, 2 Jan 2024 at 08:29, Efraim Flashner <efraim <at> flashner.co.il> wrote:
>
> > +(define* (target-x32? #:optional (target (or (%current-target-system)
> > + (%current-system))))
> > + "Is the architecture of TARGET a variant of Intel/AMD's 64-bit
> > +architecture (x86_64) using 32-bit data types?"
> > + (and (target-x86-64? target)
> > + (string-suffix? "gnux32" target)))
> > +
> > (define* (target-x86? #:optional (target (or (%current-target-system)
> > (%current-system))))
> > (or (target-x86-32? target) (target-x86-64? target)))
>
> Why not add it to target-x86-32? ?
It won't run on 32-bit only systems.
The preprocessor macro test is __x86_64__ and __ILP32__
I wasn't exactly sure where to put it, but ld.so --help gave the output
with the glibc-hwcaps optimization paths exactly like x86_64-linux and
pretty much every other piece of software which needed adjusting for it
stressed that it was x86_64.
There's a #debian-x32 channel on libera.chat, they might have some
suggestions about tagging it as 32-bit or 64-bit. As-is it's currently
labeled as 64-bit.
--
Efraim Flashner <efraim <at> flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68202
; Package
guix-patches
.
(Mon, 08 Jan 2024 17:15:01 GMT)
Full text and
rfc822 format available.
Message #40 received at 68202 <at> debbugs.gnu.org (full text, mbox):
Hi,
Efraim Flashner <efraim <at> flashner.co.il> skribis:
> I was reminded recently about a comment I made back in February 2017
> about getting guix support for x32, aka x86_64-linux-gnux32, aka
> x86_64-linux but with 32-bit data structures. The idea was that by
> using 32-bit pointers there'd be a not insignificant speed-up of code
> execution¹. I am uncertain how true this is, or which packages would
> really benefit from this.
Interesting!
I’m not sure why this target hasn’t been picked up by ci.guix. (gnu ci)
calls ‘targets’, which returns it. Weird.
> ¹ https://en.wikipedia.org/wiki/X32_ABI
It’s not clear how long support for this ABI will live on in the
toolchain…
Cheers,
Ludo’.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Tue, 06 Feb 2024 12:24:05 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 136 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.