From: Hilton Chain via Bug reports for GNU Guix <bug-guix@gnu.org>
To: 74217@debbugs.gnu.org
Cc: "Motiejus Jakštys" <motiejus@jakstys.lt>,
"Noé Lopez" <noe@xn--no-cja.eu>, dan <i@dan.games>,
"Efraim Flashner" <efraim@flashner.co.il>,
"Ekaitz Zarraga" <ekaitz@elenq.tech>
Subject: bug#74217: Bootstrapping Zig with no Binary Blobs
Date: Fri, 15 Nov 2024 11:29:10 +0800 [thread overview]
Message-ID: <878qtl5g55.wl-hako@ultrarare.space> (raw)
In-Reply-To: <ZzXFsMhXohkMutaw@3900XT>
On Thu, 14 Nov 2024 17:41:04 +0800,
Efraim Flashner wrote:
>
> [1 <text/plain; utf-8 (quoted-printable)>]
> On Thu, Nov 14, 2024 at 05:22:17PM +0800, Hilton Chain wrote:
> > 2. Pass libc to Zig's linker
> > This was the behavior in 0.9, but changed due to issue on macOS[1]. (btw, our
> > CPLUS_INCLUDE_PATH also has issue with macOS target[2]). RUNPATH for glibc was
> > missing because of this, since it's the linker handling each-lib-rpath.
> >
> > Since we do not support macOS anyway, can we restore this behavior?
>
> At worst I could see adding a comment that it would likely break future
> macOS cross-compiles. I don't see an issue with either putting it back
> unconditionally or trying to make it conditional based on
> (%current-system) or the contents of (%current-target-system).
Bad news: Zig 0.12 changed[1] behavior of each_lib_rpath, it won't filter
libraries now.
Good news: Thanks to this diff, I know how to add libc to RUNPATH now :)
Another forced push, I have ensured consistent behavior for
(CROSS_)?LIBRARY_PATH and added libc RUNPATH without restoring the behavior
passing '-lc' to linker.
Who said not going to implement a ld-wrapper within Zig? :P
Fortunately it was already there :)
BTW, adding pkg-config to native-inputs works for ncdu.
> > I also have concern for Zig's relying on /usr/bin/env (Zig uses an ELF file to
> > find dynamic linker, env is chosen for it's well-known). We have patched this
> > reference, not sure if it will cause issue for cross-building Zig.
>
> We use search-input-file in the replacement, so it should choose the
> cross-binutils for the replacement /bin/env, so it shouldn't be a
> problem.
On Thu, 14 Nov 2024 17:47:23 +0800,
Motiejus Jakštys wrote:
>
> This file is only consulted when `-target=native`. I.e. when it needs
> to compile for the host. If target is specified, it will not consult
> that file.
>
> Just verified with zig 0.13.0:
>
> $ strace -f -e openat zig cc hello.c -o hello |& grep -w env
> openat(AT_FDCWD,
> "/nix/store/sf6y4arqcm100rnnl3dhpg732i774zp6-coreutils-9.5/bin/env",
> O_RDONLY|O_NOCTTY|O_CLOEXEC) = 5
> $ strace -f -e openat zig cc -target x86_64-linux-gnu.2.32 hello.c -o
> hello |& grep -w env
> $
Thanks! Then it should be in inputs. I don't want to add coreutils to it, so I
patched reference of /usr/bin/env to clang++ (it's both in inputs and RUNPATH)
instead.
---
[1]: https://github.com/ziglang/zig/commit/852e7e24b5f15b489463bdabb0039e2a424e5ee6
next prev parent reply other threads:[~2024-11-15 3:30 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-05 21:47 bug#74217: Bootstrapping Zig with no Binary Blobs Ekaitz Zarraga
2024-11-07 1:19 ` Hilton Chain via Bug reports for GNU Guix
2024-11-07 22:06 ` Noé Lopez via Bug reports for GNU Guix
2024-11-07 22:09 ` Ekaitz Zarraga
2024-11-11 11:42 ` Efraim Flashner
2024-11-11 11:56 ` Hilton Chain via Bug reports for GNU Guix
2024-11-11 12:02 ` Efraim Flashner
2024-11-08 17:43 ` bug#74217: [PATCH 0/2] Initial step on bootstrapping Zig Hilton Chain via Bug reports for GNU Guix
2024-11-08 17:44 ` bug#74217: [PATCH 1/2] gnu: Add zig-0.10.0-610-bootstrap Hilton Chain via Bug reports for GNU Guix
2024-11-08 17:44 ` bug#74217: [PATCH 2/2] gnu: Add zig-0.10.0-610 Hilton Chain via Bug reports for GNU Guix
2024-11-09 17:26 ` bug#74217: [PATCH 0/2] Initial step on bootstrapping Zig Hilton Chain via Bug reports for GNU Guix
2024-11-13 16:46 ` bug#74217: Bootstrapping Zig with no Binary Blobs Hilton Chain via Bug reports for GNU Guix
2024-11-13 18:10 ` Efraim Flashner
2024-11-13 23:40 ` Hilton Chain via Bug reports for GNU Guix
2024-11-14 1:05 ` Hilton Chain via Bug reports for GNU Guix
2024-11-14 6:05 ` Hilton Chain via Bug reports for GNU Guix
2024-11-14 9:22 ` Hilton Chain via Bug reports for GNU Guix
2024-11-14 9:41 ` Efraim Flashner
2024-11-15 3:29 ` Hilton Chain via Bug reports for GNU Guix [this message]
2024-11-15 14:30 ` Hilton Chain via Bug reports for GNU Guix
2024-11-16 6:54 ` Hilton Chain via Bug reports for GNU Guix
2024-11-16 7:13 ` Motiejus Jakštys
2024-11-16 7:18 ` Hilton Chain via Bug reports for GNU Guix
2024-11-16 17:03 ` Efraim Flashner
2024-11-16 18:59 ` Hilton Chain via Bug reports for GNU Guix
2024-11-17 1:39 ` Hilton Chain via Bug reports for GNU Guix
2024-11-17 7:16 ` Efraim Flashner
2024-11-17 14:51 ` Hilton Chain via Bug reports for GNU Guix
2024-11-18 12:00 ` Hilton Chain via Bug reports for GNU Guix
2024-11-19 13:13 ` Hilton Chain via Bug reports for GNU Guix
2024-11-21 13:06 ` Hilton Chain via Bug reports for GNU Guix
2024-11-14 9:47 ` Motiejus Jakštys
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=878qtl5g55.wl-hako@ultrarare.space \
--to=bug-guix@gnu.org \
--cc=74217@debbugs.gnu.org \
--cc=efraim@flashner.co.il \
--cc=ekaitz@elenq.tech \
--cc=hako@ultrarare.space \
--cc=i@dan.games \
--cc=motiejus@jakstys.lt \
--cc=noe@xn--no-cja.eu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).