Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 909455 - dev-lang/rust-bin-1.68.2: binaries distributed generate Illegal operation exception on sparc64
Summary: dev-lang/rust-bin-1.68.2: binaries distributed generate Illegal operation exc...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: Sparc64 Linux
: Normal normal (vote)
Assignee: Gentoo Rust Project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-07-01 20:54 UTC by Arrow Westervelt
Modified: 2023-07-03 18:25 UTC (History)
2 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 Arrow Westervelt 2023-07-01 20:54:26 UTC
Attempting to emerge @world on a fresh install, the dev-lang/rust package fails during configuration as it invokes `rustc --version` which exits with Illegal operation.

$ gdb -q ./rustc
Reading symbols from ./rustc...
(No debugging symbols found in ./rustc)
(gdb) run
Starting program: /tmp/foo/rust-1.68.2-sparc64-unknown-linux-gnu/rustc/bin/rustc

Program received signal SIGILL, Illegal instruction.
0x000001000000085c in __sparc_get_pc_thunk.l7 ()
(gdb) backtrace
#0  0x000001000000085c in __sparc_get_pc_thunk.l7 ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)


I found other versions of rustc binary online for sparc64 which generated the same fault.  I had to go back to 1.65 before i had a copy that would work.  With that, I was able to build dev-lang/rust-1.66 and incrementally step up one minor version at a time using the resulting rustc binary.




arrow@helium ~ $ emerge --info
Portage 3.0.49 (python 3.11.4-final-0, default/linux/sparc/17.0/64ul, gcc-13, glibc-2.37-r3, 6.3.9-gentoo sparc64)
=================================================================
System uname: Linux-6.3.9-gentoo-sparc64-sun4v-with-glibc2.37
KiB Mem:     8137512 total,     88208 free
KiB Swap:   16771848 total,  16610568 free
Timestamp of repository gentoo: Sun, 25 Jun 2023 00:45:01 +0000
Head commit of repository gentoo: 492707d027de8c62d7ff6d1d40a40cff80d635b6
sh bash 5.2_p15-r6
ld GNU ld (Gentoo 2.39 p6) 2.39.0
app-misc/pax-utils:        1.3.7::gentoo
app-shells/bash:           5.2_p15-r6::gentoo
dev-lang/perl:             5.36.1-r2::gentoo
dev-lang/python:           3.11.4::gentoo, 3.12.0_beta3::gentoo
dev-lang/rust:             1.68.2::gentoo
dev-lang/rust-bin:         1.66.1-r1::gentoo
dev-util/cmake:            3.26.4-r1::gentoo
dev-util/meson:            1.1.1::gentoo
sys-apps/baselayout:       2.13-r1::gentoo
sys-apps/openrc:           0.47.1::gentoo
sys-apps/sandbox:          2.32::gentoo
sys-devel/autoconf:        2.71-r6::gentoo
sys-devel/automake:        1.16.5-r1::gentoo
sys-devel/binutils:        2.39-r5::gentoo, 2.40-r5::gentoo
sys-devel/binutils-config: 5.5::gentoo
sys-devel/gcc:             13.1.1_p20230527::gentoo
sys-devel/gcc-config:      2.11::gentoo
sys-devel/libtool:         2.4.7-r1::gentoo
sys-devel/make:            4.4.1-r1::gentoo
sys-kernel/linux-headers:  6.3::gentoo (virtual/os-headers)
sys-libs/glibc:            2.37-r3::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    volatile: False
    sync-rsync-verify-jobs: 1
    sync-rsync-verify-metamanifest: yes
    sync-rsync-extra-opts:
    sync-rsync-verify-max-age: 24

ACCEPT_KEYWORDS="sparc ~sparc"
ACCEPT_LICENSE="@FREE @FREE @BINARY-REDISTRIBUTABLE linux-fw-redistributable"
CBUILD="sparc64-unknown-linux-gnu"
CFLAGS="-O2 -mcpu=ultrasparc -pipe"
CHOST="sparc64-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -mcpu=ultrasparc -pipe"
DISTDIR="/var/cache/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FCFLAGS="-O2 -mcpu=ultrasparc -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -mcpu=ultrasparc -pipe"
GENTOO_MIRRORS="[REDACTED due to URL posting limitation on new accounts]"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LEX="flex"
MAKEOPTS="-j28"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
SHELL="/bin/bash"
USE="X acl big-endian bzip2 cleartype cli corefonts crypt dbus dri egl elogind fortran gccgo gdbm gles gtk iconv ipv6 jpeg legacy-systray libtirpc llvm-libunwind ncurses nls nptl openmp oss pam pcre png policykit pulseaudio readline sparc split-usr ssl svsi test-rust truetype udisks unicode xattr xcb zlib" ADA_TARGET="gnat_2021" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-1" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_11" PYTHON_TARGETS="python3_11" RUBY_TARGETS="ruby31" VIDEO_CARDS="radeon" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-07-01 21:13:33 UTC
Out of interest, do the older ones build ok? I suspect gyakovlev used a diff. config than I normally do, maybe?
Comment 2 Arrow Westervelt 2023-07-01 21:33:58 UTC
I was unable to get any of gyakolev's binaries to work.  Your 1.65 and 1.66 builds worked fine.  None of the ones I found >1.66 would work.
Comment 3 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-07-01 21:46:22 UTC
Thanks. I'll do a rebuild, but I can't promise to get to it tonight.
Comment 4 Arrow Westervelt 2023-07-01 21:48:29 UTC
(In reply to Sam James from comment #3)
> Thanks. I'll do a rebuild, but I can't promise to get to it tonight.

I am not in any rush.  As I mentioned, I received instruction from another user on Discord to incrementally build dev-lang/rust and I am currently waiting for 1.69.0-r1 to finish, so I do have a workaround.  I just want to help make sure that if there is an issue with the binaries that might impact others attempting to bootstrap a sparc64 box that these issues are worked out.
Comment 5 Larry the Git Cow gentoo-dev 2023-07-03 02:00:28 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e39916208e77195cccd3bb51915b48dd65c23b7d

commit e39916208e77195cccd3bb51915b48dd65c23b7d
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-07-03 01:59:47 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-07-03 01:59:47 +0000

    dev-lang/rust-bin: regenerate 1.67.1 sparc binary
    
    Needs to be generic for -march=ultrasparc.
    
    Closes: https://bugs.gentoo.org/909455
    Signed-off-by: Sam James <sam@gentoo.org>

 dev-lang/rust-bin/Manifest                                            | 2 +-
 .../rust-bin/{rust-bin-1.70.0-r2.ebuild => rust-bin-1.70.0-r3.ebuild} | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

Additionally, it has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=30d5815f78c02bce8860e02789111801fefdbab4

commit 30d5815f78c02bce8860e02789111801fefdbab4
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-07-03 01:56:03 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-07-03 01:56:03 +0000

    dev-lang/rust-bin: regenerate 1.67.1 sparc binary
    
    Needs to be generic for -march=ultrasparc.
    
    Bug: https://bugs.gentoo.org/909455
    Signed-off-by: Sam James <sam@gentoo.org>

 dev-lang/rust-bin/Manifest                                              | 1 +
 dev-lang/rust-bin/{rust-bin-1.69.0.ebuild => rust-bin-1.69.0-r1.ebuild} | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=35859efaa343c65f8f23fea42e320af29d68cc6b

commit 35859efaa343c65f8f23fea42e320af29d68cc6b
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-07-03 01:51:52 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-07-03 01:52:33 +0000

    dev-lang/rust-bin: regenerate 1.68.2 sparc binary
    
    Needs to be generic for -march=ultrasparc.
    
    Bug: https://bugs.gentoo.org/909455
    Signed-off-by: Sam James <sam@gentoo.org>

 dev-lang/rust-bin/Manifest                                            | 2 +-
 .../rust-bin/{rust-bin-1.68.2-r1.ebuild => rust-bin-1.68.2-r2.ebuild} | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4417bc340ac91d71c70c9e6ce13f3e0174e9be45

commit 4417bc340ac91d71c70c9e6ce13f3e0174e9be45
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-07-03 01:49:48 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-07-03 01:52:24 +0000

    dev-lang/rust-bin: regenerate 1.67.1 sparc binary
    
    Needs to be generic for -march=ultrasparc.
    
    Bug: https://bugs.gentoo.org/909455
    Signed-off-by: Sam James <sam@gentoo.org>

 dev-lang/rust-bin/Manifest                                            | 2 +-
 .../rust-bin/{rust-bin-1.67.1-r2.ebuild => rust-bin-1.67.1-r3.ebuild} | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
Comment 6 Larry the Git Cow gentoo-dev 2023-07-03 02:02:21 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ec2efa345794382e6f859a2be41ae4ea0d55cb5c

commit ec2efa345794382e6f859a2be41ae4ea0d55cb5c
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-07-03 01:59:47 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-07-03 02:01:53 +0000

    dev-lang/rust-bin: regenerate 1.70.0 sparc binary
    
    Needs to be generic for -march=ultrasparc.
    
    Closes: https://bugs.gentoo.org/909455
    Signed-off-by: Sam James <sam@gentoo.org>
    (cherry picked from commit e39916208e77195cccd3bb51915b48dd65c23b7d)

 dev-lang/rust-bin/Manifest                                            | 2 +-
 .../rust-bin/{rust-bin-1.70.0-r2.ebuild => rust-bin-1.70.0-r3.ebuild} | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

Additionally, it has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=adc9c14b217b04536b3a5981cf56826ac7c062ae

commit adc9c14b217b04536b3a5981cf56826ac7c062ae
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-07-03 01:56:03 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-07-03 02:01:47 +0000

    dev-lang/rust-bin: regenerate 1.69.0 sparc binary
    
    Needs to be generic for -march=ultrasparc.
    
    Bug: https://bugs.gentoo.org/909455
    Signed-off-by: Sam James <sam@gentoo.org>
    (cherry picked from commit 30d5815f78c02bce8860e02789111801fefdbab4)

 dev-lang/rust-bin/Manifest                                              | 1 +
 dev-lang/rust-bin/{rust-bin-1.69.0.ebuild => rust-bin-1.69.0-r1.ebuild} | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a025cf5d2f77703d410fcf636244cf1492103186

commit a025cf5d2f77703d410fcf636244cf1492103186
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-07-03 02:01:01 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-07-03 02:01:44 +0000

    Revert "dev-lang/rust-bin: regenerate 1.67.1 sparc binary"
    
    This reverts commit 30d5815f78c02bce8860e02789111801fefdbab4.
    
    Fixing commit message...
    
    Bug: https://bugs.gentoo.org/909455
    Signed-off-by: Sam James <sam@gentoo.org>

 dev-lang/rust-bin/Manifest                                              | 1 -
 dev-lang/rust-bin/{rust-bin-1.69.0-r1.ebuild => rust-bin-1.69.0.ebuild} | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=03d96d372a86624f4895bad3acde85cb7cf7c13e

commit 03d96d372a86624f4895bad3acde85cb7cf7c13e
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-07-03 02:00:51 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-07-03 02:01:26 +0000

    Revert "dev-lang/rust-bin: regenerate 1.67.1 sparc binary"
    
    This reverts commit e39916208e77195cccd3bb51915b48dd65c23b7d.
    
    Fixing commit message...
    
    Bug: https://bugs.gentoo.org/909455
    Signed-off-by: Sam James <sam@gentoo.org>

 dev-lang/rust-bin/Manifest                                            | 2 +-
 .../rust-bin/{rust-bin-1.70.0-r3.ebuild => rust-bin-1.70.0-r2.ebuild} | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
Comment 7 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-07-03 02:02:53 UTC
Thanks for the report!
Comment 8 Arrow Westervelt 2023-07-03 18:24:42 UTC
If I understand correctly, the updated binaries addressing this bug report are included in this tarball: https://dev.gentoo.org/~gyakovlev/distfiles/dev-lang/rust-bin/rust-1.70.0-sparc64-unknown-linux-gnu.tar.xz

I encountered the same issue with the binaries just now as I tested them.

arrow@helium /tmp/rust-1.70.0-sparc64-unknown-linux-gnu/rustc/bin $ gdb -q ./rustc
Reading symbols from ./rustc...
(No debugging symbols found in ./rustc)
(gdb) run
Starting program: /tmp/rust-1.70.0-sparc64-unknown-linux-gnu/rustc/bin/rustc

Program received signal SIGILL, Illegal instruction.
0xffff800106a887dc in ?? ()
(gdb) backtrace
#0  0xffff800106a887dc in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Comment 9 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-07-03 18:25:44 UTC
(In reply to Arrow Westervelt from comment #8)
> If I understand correctly, the updated binaries addressing this bug report
> are included in this tarball:
> https://dev.gentoo.org/~gyakovlev/distfiles/dev-lang/rust-bin/rust-1.70.0-
> sparc64-unknown-linux-gnu.tar.xz

No, the fixed ones are in my devspace.

And none of the ebuilds reference gyakovlev now:

~/g/dev-lang/rust-bin $ grep -rsin gyakovlev
~/g/dev-lang/rust-bin $