Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 861431 - dev-lang/rust-1.62.1: cannot compile on ppc64-musl
Summary: dev-lang/rust-1.62.1: cannot compile on ppc64-musl
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: PPC64 Linux
: Normal normal (vote)
Assignee: Gentoo Rust Project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-07-27 09:56 UTC by Fabian Groffen
Modified: 2024-02-14 10:26 UTC (History)
6 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Fabian Groffen gentoo-dev 2022-07-27 09:56:23 UTC
[target.powerpc64-unknown-linux-gnu]
ar = "powerpc64-unknown-linux-musl-ar"
cc = "powerpc64-unknown-linux-musl-gcc"
cxx = "powerpc64-unknown-linux-musl-g++"
linker = "powerpc64-unknown-linux-musl-gcc"
ranlib = "powerpc64-unknown-linux-musl-ranlib"
crt-static = false

>>> Source configured.
>>> Compiling source in /var/tmp/portage-large/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src ...
Building rustbuild
running: /var/tmp/portage-large/portage/dev-lang/rust-1.62.1/work/rust-stage0/bin/cargo build --manifest-path /var/tmp/portage-large/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/src/bootstrap/Cargo.toml --verbose --verbose --locked --frozen
Traceback (most recent call last):
  File "/var/tmp/portage-large/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/./x.py", line 27, in <module>
    bootstrap.main()
  File "/var/tmp/portage-large/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/src/bootstrap/bootstrap.py", line 1195, in main
    bootstrap(help_triggered)
  File "/var/tmp/portage-large/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/src/bootstrap/bootstrap.py", line 1169, in bootstrap
    build.build_bootstrap()
  File "/var/tmp/portage-large/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/src/bootstrap/bootstrap.py", line 899, in build_bootstrap
    run(args, env=env, verbose=self.verbose)
  File "/var/tmp/portage-large/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/src/bootstrap/bootstrap.py", line 183, in run
    ret = subprocess.Popen(args, **kwargs)
  File "/usr/lib/python3.10/subprocess.py", line 969, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.10/subprocess.py", line 1845, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/var/tmp/portage-large/portage/dev-lang/rust-1.62.1/work/rust-stage0/bin/cargo'

# file /var/tmp/portage-large/portage/dev-lang/rust-1.62.1/work/rust-stage0/bin/cargo
/var/tmp/portage-large/portage/dev-lang/rust-1.62.1/work/rust-stage0/bin/cargo: ELF 64-bit MSB pie executable, 64-bit PowerPC or cisco 7500, Power ELF V1 ABI, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.1, for GNU/Linux 2.6.32, with debug_info, not stripped
# ls -la /lib64/ld64.so.1
ls: cannot access '/lib64/ld64.so.1': No such file or directory


musl doesn't have this, is it glibc?
Comment 1 Fabian Groffen gentoo-dev 2022-07-27 10:35:29 UTC
ok, I see this:

>>> Unpacking rust-1.61.0-powerpc64-unknown-linux-gnu.tar.xz to /var/tmp/portage-large/portage/dev-lang/rust-1.62.1/work
>>> Unpacking rust-1.61.0-powerpc64le-unknown-linux-gnu.tar.xz to /var/tmp/portage-large/portage/dev-lang/rust-1.62.1/work

while on arm64-musl I see it using a musl tar, so I guess that's the problem here.
Comment 2 Fabian Groffen gentoo-dev 2022-07-27 11:42:26 UTC
it seems we need to add features/wd40 to the ppc64-musl profile to mask this setup?
Comment 3 Fabian Groffen gentoo-dev 2022-07-27 11:46:14 UTC
@musl: I believe what is required here (at least) is adding features/wd40 to profiles/default/linux/ppc64/17.0/musl/parent.

Do you think that's ok, if so, OK if I push that change?
Comment 4 Georgy Yakovlev archtester gentoo-dev 2022-07-27 18:49:13 UTC
yeah there's no upstream provided tarball, but there are users who did the bootstrap via other means and are using system-bootstrap feature to keep rolling.

we could add wd40 to that profile but that'd require users to manually unmask stuff.

let me think if it's worth it or not.

this overlay usually contains ppc64-musl rust patches and even has bootstrap tarballs

https://github.com/smaeul/portage-overlay/tree/master/dev-lang/rust