[PATCH 0/2] gnu: glibc: Fix cross-compiling.

  • Open
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Zheng Junjie
Owner
unassigned
Submitted by
Zheng Junjie
Severity
normal

Debbugs page

Z
Z
Zheng Junjie wrote on 3 Sep 09:30 -0700
(address . guix-patches@gnu.org)
cover.1725379915.git.zhengjunjie@iscas.ac.cn
Zheng Junjie (2):
utils: Add 'objcopy-for-target' and 'objdump-for-target'.
gnu: glibc: Fix cross-compiling.

gnu/packages/base.scm | 4 ++++
guix/utils.scm | 12 ++++++++++++
2 files changed, 16 insertions(+)


base-commit: c843564a28b01c900e012c804b5c8721e9762edc
--
2.45.2
Z
Z
Zheng Junjie wrote on 3 Sep 09:33 -0700
[PATCH 1/2] utils: Add 'objcopy-for-target' and 'objdump-for-target'.
(address . 73006@debbugs.gnu.org)
0b9dfc09ce11ce65535e93b26272450f60d737dc.1725379915.git.zhengjunjie@iscas.ac.cn
* guix/utils.scm (objcopy-for-target, objdump-for-target): New procedures.

Change-Id: I302be242752cd1f4f23368bcbfc8c1674a815224
---
guix/utils.scm | 12 ++++++++++++
1 file changed, 12 insertions(+)

Toggle diff (32 lines)
diff --git a/guix/utils.scm b/guix/utils.scm
index d8ce6ed886..368a34dfbf 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -115,6 +115,8 @@ (define-module (guix utils)
cc-for-target
cxx-for-target
ld-for-target
+ objcopy-for-target
+ objdump-for-target
pkg-config-for-target
strip-for-target
@@ -826,6 +828,16 @@ (define* (ld-for-target #:optional (target (%current-target-system)))
(string-append target "-ld")
"ld"))
+(define* (objcopy-for-target #:optional (target (%current-target-system)))
+ (if target
+ (string-append target "-objcopy")
+ "objcopy"))
+
+(define* (objdump-for-target #:optional (target (%current-target-system)))
+ (if target
+ (string-append target "-objdump")
+ "objdump"))
+
(define* (pkg-config-for-target #:optional (target (%current-target-system)))
(if target
(string-append target "-pkg-config")
--
2.45.2
Z
Z
Zheng Junjie wrote on 3 Sep 09:33 -0700
[PATCH 2/2] gnu: glibc: Fix cross-compiling.
(address . 73006@debbugs.gnu.org)
9e62ab6b2ecb4bbb2ca5e863ca459b825104f157.1725379915.git.zhengjunjie@iscas.ac.cn
* gnu/packages/base.scm (glibc)[arguments]<#:configure-flags>: When
cross-compiling, Set OBJCOPY and OBJDUMP.

Change-Id: I9abd3bda792619903233f5f48a57065da45da50c
---
gnu/packages/base.scm | 4 ++++
1 file changed, 4 insertions(+)

Toggle diff (17 lines)
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 4e8121ae2c..2802af2946 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -920,6 +920,10 @@ (define-public glibc
'%build-inputs)
"kernel-headers")
"/include")
+ ,@(if (%current-target-system)
+ `((string-append "OBJCOPY=" ,(objcopy-for-target))
+ (string-append "OBJDUMP=" ,(objdump-for-target)))
+ '())
;; This is the default for most architectures as of GNU libc 2.26,
;; but we specify it explicitly for clarity and consistency. See
--
2.45.2
L
L
Ludovic Courtès wrote on 4 Sep 10:16 -0700
Re: [bug#73006] [PATCH 0/2] gnu: glibc: Fix cross-compiling.
(name . Zheng Junjie)(address . zhengjunjie@iscas.ac.cn)(address . 73006@debbugs.gnu.org)
87o753baq9.fsf@gnu.org
Hi,

Zheng Junjie <zhengjunjie@iscas.ac.cn> skribis:

Toggle quote (3 lines)
> utils: Add 'objcopy-for-target' and 'objdump-for-target'.
> gnu: glibc: Fix cross-compiling.

Could you explain what this is addressing?

The ‘add-cross-binutils-to-PATH’ phase is supposed to do the right
thing, as suggested in the discussion at
and that means ‘objdump-for-target’ & co. shouldn’t be necessary.

Ludo’.
Z
Z
Zheng Junjie wrote on 5 Sep 08:52 -0700
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 73006@debbugs.gnu.org)
87a5gm2j47.fsf@iscas.ac.cn
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (9 lines)
> Hi,
>
> Zheng Junjie <zhengjunjie@iscas.ac.cn> skribis:
>
>> utils: Add 'objcopy-for-target' and 'objdump-for-target'.
>> gnu: glibc: Fix cross-compiling.
>
> Could you explain what this is addressing?

all cross-compiling image build fail, because glibc 2.39 cross-compiling fail.

Toggle quote (3 lines)
>
> The ‘add-cross-binutils-to-PATH’ phase is supposed to do the right

this is in cross-libc*, but glibc not have this phase.

Toggle quote (6 lines)
> thing, as suggested in the discussion at
> <https://inbox.sourceware.org/libc-alpha/d72f5f6f-cc3a-bd89-0800-ffb068928e0f@linaro.org/t/>,
> and that means ‘objdump-for-target’ & co. shouldn’t be necessary.
>
> Ludo’.

glibc 2.35 have "glibc-cross-objdump.patch" and "glibc-cross-objcopy.patch"
patch, but glibc 2.39 not have them, so 2.39 cross compiling try use objdump
and build fail, and 2.35 success.


I checked again today. because (gnu services base)'s nscd-configuration
default use glibc, not '(cross-libc target)', This is why glibc was
introduced. Maybe the following patch can also be useful.
From f23d1e48bd0fd9d3b66cbc831cc40f475faff7a4 Mon Sep 17 00:00:00 2001
Message-ID: <f23d1e48bd0fd9d3b66cbc831cc40f475faff7a4.1725551406.git.zhengjunjie@iscas.ac.cn>
From: Zheng Junjie <zhengjunjie@iscas.ac.cn>
Date: Thu, 5 Sep 2024 23:48:34 +0800
Subject: [PATCH] services: nscd: When cross-compiling, Use (cross-libc
target).

* gnu/services/base.scm (nscd-configuration)[glibc]: When cross-compiling,
Use (cross-libc target).

Change-Id: Ib219459b1ec28f7edfac075e70be3d61edf72d27
---
gnu/services/base.scm | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

Toggle diff (38 lines)
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 4b5b103cc3..4eda5382f5 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -21,6 +21,7 @@
;;; Copyright © 2022 Justin Veilleux <terramorpha@cock.li>
;;; Copyright © 2022 ( <paren@disroot.org>
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
+;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -67,6 +68,8 @@ (define-module (gnu services base)
libc-utf8-locales-for-target
make-glibc-utf8-locales
tar canonical-package))
+ #:use-module ((gnu packages cross-base)
+ #:select (cross-libc))
#:use-module ((gnu packages compression) #:select (gzip))
#:use-module (gnu packages fonts)
#:autoload (gnu packages guile-xyz) (guile-netlink)
@@ -1313,7 +1316,7 @@ (define-record-type* <nscd-configuration> nscd-configuration
;; from 'glibc-final' instead of pulling in a second
;; glibc copy.
(if target
- glibc
+ (cross-libc target)
(canonical-package glibc))))))
(define-record-type* <nscd-cache> nscd-cache make-nscd-cache

base-commit: 993d6d2e7be4dac738629c76a51058f4dc5bc449
prerequisite-patch-id: dd51603b3f57923df8ac28ca5f41557be07ee742
prerequisite-patch-id: f86942972fa6ddef6e83b54c6120e9d5dfb63098
prerequisite-patch-id: c3394b41809ae9e5a91a51d7c77401cb58192c51
prerequisite-patch-id: 68f03643905981a0a79b4ae13971a58a808877f5
--
2.45.2
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEfr6klGDOXiwIdX/bO1qpk+Gi3/AFAmbZ07gACgkQO1qpk+Gi
3/ASbA/8Cw+Mt0jWX2meEXdDMXM0lM81DFwR5tqe2cIUpXfwCj+g9BFH6PLzERzb
HNRKosgR+poe1StgeRJrt9BFwRif3OJbW9Hz7EBDFXUoS3LnabFWSFQdMR58bJ6m
cywlE7FiNygOjsuVZ2fWUC7qd0dyzn8L0G8Pa6muhPhibhEWu2TRRRcaOg9THeXL
fn+Gb2A2bdk/Lzbi2YlxFDHIzzsU1tzNC8O6/tNiennKQxdcSTgjW2+r32p/ADVP
pLsA9ryC60kSz/EPyp/gAIpHfvstNXJKH/wPkm3MTr6n0AHcrp/W8FSuz6xiICQx
0oK9h9vaaugpopqXAXKBJ+3WPaLcJ/iZneV27e+vEsHeudzx9PE8jCD1bnsKc28h
SDtcETmdwbPCvOwZ5qr5XGIeIw44P/c6ywsxsDwiP4tlmq+O9PKY8sTaA9G1wVu+
LU4RVIlzaW9UPCeiOfxv+3H1Yvm0kDEeFFDIHka1DC03iUPiUn5DKmNhgkpOsprt
0nKtvEiATeBLCV2wtxkQcZ2XwD6TOltnXIiv2vDIPK5lobi05gD4kzakrbWj7Xos
KuYSP22wuGf9C0Q08pjSeathtB0AZtWSsbsLRHkUlWEYQpQEs7nk+5ZNrB29z1w7
YSNkcW6k9npwwZeYvPRuFOeIfQdbFJAF3WyF1mw0Asj5dUm3y+c=
=2H03
-----END PGP SIGNATURE-----

?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 73006@patchwise.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 73006
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch