Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 895464 - dev-libs/librdkafka (all versions) halt with error: unknown register name ‘%edx’ in ‘asm’ on arm64
Summary: dev-libs/librdkafka (all versions) halt with error: unknown register name ‘%e...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: lto
  Show dependency tree
 
Reported: 2023-02-19 19:14 UTC by Roy Bamford
Modified: 2024-09-06 05:04 UTC (History)
3 users (show)

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


Attachments
gcc-12 build log (dev-libs:librdkafka-1.8.2:20230219-190401.log,100.77 KB, text/x-log)
2023-02-19 19:16 UTC, Roy Bamford
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Roy Bamford gentoo-dev 2023-02-19 19:14:14 UTC
Tested all versions with gcc-13 and dev-libs/librdkafka-1.8.2 with gcc-12.
The asm should not be trying to use amd64 registers on arm64

Reproducible: Always

Steps to Reproduce:
1. emerge random version of  dev-libs/librdkafka on arm64
2. read the build log.
3.
Actual Results:  
dev-libs/librdkafka fails to build

Expected Results:  
The build system does not use amd64 registers on arm64

Pi4_GCC-12 ~ # emerge --info
Portage 3.0.44 (python 3.10.10-final-0, default/linux/arm64/17.0/desktop, gcc-12, glibc-2.36-r7, 6.1.1-gentoo aarch64)
=================================================================
System uname: Linux-6.1.1-gentoo-aarch64-with-glibc2.36
KiB Mem:    72945508 total,  61922716 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Thu, 16 Feb 2023 20:00:01 +0000
Head commit of repository gentoo: 05b8a0768e6eee3c15d416114fc6c7fd002e8436
sh bash 5.2_p15-r2
ld GNU ld (Gentoo 2.39 p5) 2.39.0
distcc 3.4 aarch64-unknown-linux-gnu [disabled]
app-misc/pax-utils:        1.3.7::gentoo
app-shells/bash:           5.2_p15-r2::gentoo
dev-java/java-config:      2.3.1::gentoo
dev-lang/perl:             5.36.0-r2::gentoo
dev-lang/python:           3.9.16::gentoo, 3.10.10_p1::gentoo, 3.11.2_p1::gentoo
dev-lang/rust:             1.67.1::gentoo
dev-util/cmake:            3.25.2::gentoo
dev-util/meson:            1.0.0::gentoo
sys-apps/baselayout:       2.13-r1::gentoo
sys-apps/openrc:           0.46::gentoo
sys-apps/sandbox:          2.30-r1::gentoo
sys-devel/autoconf:        2.13-r7::gentoo, 2.71-r5::gentoo
sys-devel/automake:        1.16.5::gentoo
sys-devel/binutils:        2.39-r4::gentoo, 2.40-r1::gentoo
sys-devel/binutils-config: 5.5::gentoo
sys-devel/clang:           14.0.6-r1::gentoo, 15.0.7-r1::gentoo
sys-devel/gcc:             11.3.1_p20221007::gentoo, 12.2.1_p20230121-r1::gentoo
sys-devel/gcc-config:      2.10::gentoo
sys-devel/libtool:         2.4.7-r1::gentoo
sys-devel/lld:             14.0.6-r1::gentoo, 15.0.7::gentoo
sys-devel/llvm:            13.0.1::gentoo, 14.0.6-r2::gentoo, 15.0.7::gentoo
sys-devel/make:            4.4::gentoo
sys-kernel/linux-headers:  6.1::gentoo (virtual/os-headers)
sys-libs/glibc:            2.36-r7::gentoo
Repositories:

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

Installed sets: @extras, @fs-extras, @kde-extras, @more_extras
ACCEPT_KEYWORDS="arm64 ~arm64"
ACCEPT_LICENSE="@FREE all-rights-reserved bh-luxi bluez-firmware fairuse FraunhoferFDK freedist IUPAC-InChi kaptan linux-firmware linux-fw-redistributable MPEG-4 MSttfEULA no-source-code OSGi-Specification-2.0 raspberrypi-videocore-bin rpi-eeprom SSPL-1 sun-bcla-jai Turkowski unRAR xgraph"
CBUILD="aarch64-unknown-linux-gnu"
CFLAGS="-mcpu=cortex-a72+crc -mtune=cortex-a72 -ftree-vectorize -O2 -pipe -fomit-frame-pointer -flto=6"
CHOST="aarch64-unknown-linux-gnu"
CONFIG_PROTECT="/boot/cmdline.txt /boot/config.txt /etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /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/php/apache2-php7.4/ext-active/ /etc/php/apache2-php8.0/ext-active/ /etc/php/apache2-php8.1/ext-active/ /etc/php/apache2-php8.2/ext-active/ /etc/php/cgi-php7.4/ext-active/ /etc/php/cgi-php8.0/ext-active/ /etc/php/cgi-php8.1/ext-active/ /etc/php/cgi-php8.2/ext-active/ /etc/php/cli-php7.4/ext-active/ /etc/php/cli-php8.0/ext-active/ /etc/php/cli-php8.1/ext-active/ /etc/php/cli-php8.2/ext-active/ /etc/php/fpm-php7.4/ext-active/ /etc/php/fpm-php8.0/ext-active/ /etc/php/fpm-php8.1/ext-active/ /etc/php/fpm-php8.2/ext-active/ /etc/php/phpdbg-php7.4/ext-active/ /etc/php/phpdbg-php8.0/ext-active/ /etc/php/phpdbg-php8.1/ext-active/ /etc/php/phpdbg-php8.2/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-mcpu=cortex-a72+crc -mtune=cortex-a72 -ftree-vectorize -O2 -pipe -fomit-frame-pointer -flto=6"
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="-mcpu=cortex-a72+crc -mtune=cortex-a72 -ftree-vectorize -O2 -pipe -fomit-frame-pointer -flto=6"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg buildpkg-live collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict 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="-mcpu=cortex-a72+crc -mtune=cortex-a72 -ftree-vectorize -O2 -pipe -fomit-frame-pointer -flto=6"
GENTOO_MIRRORS="http://mirrors.gethosted.online/gentoo                 http://www.mirrorservice.org/sites/distfiles.gentoo.org/                 http://mirrors.soeasyto.com/distfiles.gentoo.org/                 http://mirror.leaseweb.com/gentoo/                 http://gentoo.mirrors.ovh.net/gentoo-distfiles/                 http://ftp.snt.utwente.nl/pub/os/linux/gentoo                 https://www.mirrorservice.org/sites/distfiles.gentoo.org/                 http://mirror.bytemark.co.uk/gentoo/                  http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/                  http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/"
LANG="C.UTF8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LEX="flex"
LINGUAS="en en_GB"
MAKEOPTS="-j32"
PKGDIR="/var/cache/packages"
PORTAGE_BINHOST="http://bloodnoc.org/~roy/BINHOSTS/gcc-12.x/armv8a"
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 a52 aac aalib accessibility acl acpi alsa arm64 bluetooth bluray branding btrfs bzip2 cairo cdda cdr clamav clang cli context crypt cups dbus default-gold dillo dmraid doc dot dri dts dvd dvdnav dvdr eds egl elogind encode exif extras f2fs faad fat ffmpeg flac fontconfig fortran gdbm geoclue gif gles1 gnome-keyring gpm graphite gstreamer gtk gtk3 gui hfs iconv icu introspection iptables ipv6 jack jadetex jfs jit jpeg kde latex lcms libglvnd libnotify libtirpc lto lvm mad map mdadm minizip mng modemmanager mp3 mp4 mpeg mysql mysqli ncurses netifrc ngspice nls nptl nss ntfs ogg openexr opengl openmp openssl pam pango pcre pcre16 pcre32 pdf php pie pim png policykit postgres postproc ppds python qml qt5 rar raspberry-pi readline reiser4 reiserfs script sdk sdl seccomp servletapi skia sound speex spell split-usr sqlite ssl ssp startup-notification svc svg test-rust thesaurus thin threads tiff tk truetype twolame udev udf udisks unicode upower usb vala virt-network vorbis vulkan webengine widgets wmf wxwidgets x264 x265 xattr xcb xface xfs xft xml xpm xscreensaver xv xvfb xvid xvmc zip 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" CPU_FLAGS_ARM="edsp thumb vfp vfpv3 vfpv4 vfp-d32 crc32 v4 v5 v6 v7 v8 thumb2" 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="evdev libinput synaptics" KERNEL="linux" L10N="en en-GB" 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="php7-4 php8-0" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_10" PYTHON_TARGETS="python3_10" RUBY_TARGETS="ruby26 ruby27 ruby30 ruby31" USERLAND="GNU" VIDEO_CARDS="amdgpu fbdev nouveau radeon v3d vc4" 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, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS
Comment 1 Roy Bamford gentoo-dev 2023-02-19 19:16:02 UTC
Created attachment 853104 [details]
gcc-12 build log
Comment 2 matoro archtester 2024-02-08 02:31:56 UTC
Also ran into this on ppc, looks like it's a repeat of https://github.com/confluentinc/librdkafka/issues/1290 .  Except this time it's LTO's fault, it optimizes out the dead code so the test passes when it shouldn't.  Removing LTO fixes.
Comment 3 Eli Schwartz gentoo-dev 2024-09-06 04:51:55 UTC
afka_partition.o rdkafka_subscription.o rdkafka_assignment.o rdkafka_assignor.o rdkafka_range_assignor.o rdkafka_roundrobin_assignor.o rdkafka_sticky_assignor.o rdkafka_feature.o rdcrc32.o crc32c.o rdmurmur2.o rdfnv1a.o rdaddr.o rdrand.o rdlist.o tinycthread.o tinycthread_extra.o rdlog.o rdstring.o rdkafka_event.o rdkafka_metadata.o rdregex.o rdports.o rdkafka_metadata_cache.o rdavl.o rdkafka_sasl.o rdkafka_sasl_plain.o rdkafka_interceptor.o rdkafka_msgset_writer.o rdkafka_msgset_reader.o rdkafka_header.o rdkafka_admin.o rdkafka_aux.o rdkafka_background.o rdkafka_idempotence.o rdkafka_cert.o rdkafka_txnmgr.o rdkafka_coord.o rdvarint.o rdbuf.o rdmap.o rdunittest.o rdkafka_mock.o rdkafka_mock_handlers.o rdkafka_mock_cgrp.o rdkafka_error.o rdkafka_sasl_scram.o rdkafka_sasl_oauthbearer.o snappy.o rdgz.o rdhdrhistogram.o rdkafka_ssl.o rdkafka_lz4.o rdxxhash.o lz4.o lz4frame.o lz4hc.o rddl.o rdkafka_plugin.o -o librdkafka.so.1 -lm -lssl  -lcrypto  -lz  -ldl -lpthread -lrt -lpthread -lrt
In function ‘rd_crc32c_global_init’,
    inlined from ‘rd_kafka_global_init0’ at rdkafka.c:136:9:
crc32c.c:374:9: error: unknown register name ‘%edx’ in ‘asm’
  374 |         SSE42(sse42);
      |         ^
crc32c.c:374:9: error: unknown register name ‘%ebx’ in ‘asm’



/var/tmp/portage/dev-libs/librdkafka-1.8.2/temp/cc2om93j.s: Assembler messages:
/var/tmp/portage/dev-libs/librdkafka-1.8.2/temp/cc2om93j.s:1411: Error: operand 1 must be an integer register -- `crc32b (x4),x0'
/var/tmp/portage/dev-libs/librdkafka-1.8.2/temp/cc2om93j.s:1434: Error: unknown mnemonic `crc32q' -- `crc32q (x2),x0'
/var/tmp/portage/dev-libs/librdkafka-1.8.2/temp/cc2om93j.s:1435: Error: unknown mnemonic `crc32q' -- `crc32q 8192(x2),x1'
/var/tmp/portage/dev-libs/librdkafka-1.8.2/temp/cc2om93j.s:1436: Error: unknown mnemonic `crc32q' -- `crc32q 16384(x2),x3'
/var/tmp/portage/dev-libs/librdkafka-1.8.2/temp/cc2om93j.s:1491: Error: unknown mnemonic `crc32q' -- `crc32q (x2),x0'
/var/tmp/portage/dev-libs/librdkafka-1.8.2/temp/cc2om93j.s:1492: Error: unknown mnemonic `crc32q' -- `crc32q 256(x2),x1'
/var/tmp/portage/dev-libs/librdkafka-1.8.2/temp/cc2om93j.s:1493: Error: unknown mnemonic `crc32q' -- `crc32q 512(x2),x3'
/var/tmp/portage/dev-libs/librdkafka-1.8.2/temp/cc2om93j.s:1544: Error: unknown mnemonic `crc32q' -- `crc32q (x2),x0'
/var/tmp/portage/dev-libs/librdkafka-1.8.2/temp/cc2om93j.s:1561: Error: operand 1 must be an integer register -- `crc32b (x4),x0'
make[2]: *** [/var/tmp/portage/dev-libs/librdkafka-1.8.2/temp/cca7jsBk.mk:35: /var/tmp/portage/dev-libs/librdkafka-1.8.2/temp/ccFu7Vcs.ltrans11.ltrans.o] Error 1
Comment 4 Eli Schwartz gentoo-dev 2024-09-06 04:55:07 UTC
It was reported in 2019, and upstream first responded to the report 3 years later, in order to say:

> Closing due to inactivity, does not seem like a common issue.


The project is aptly named. For a humorous writeup on the topic, see https://0ver.org/#apache-kafka
Comment 5 Larry the Git Cow gentoo-dev 2024-09-06 05:04:54 UTC
The bug has been closed via the following commit(s):

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

commit 77daa955c05041001df330ba94144b1e5dcc8112
Author:     Eli Schwartz <eschwartz@gentoo.org>
AuthorDate: 2024-09-06 04:59:23 +0000
Commit:     Eli Schwartz <eschwartz@gentoo.org>
CommitDate: 2024-09-06 05:03:32 +0000

    dev-libs/librdkafka: mark as LTO-unsafe
    
    Upstream has an innovative bug report strategy. Wait for people to
    report bugs in the software, then ignore the bug report for several
    years, then show up and as the very first official reply:
    
    > Closing due to inactivity, does not seem like a common issue.
    
    We can presume that this will never be fixed. Although the nuance of
    whether it is broken depends on the exact architecture used, it is not
    worth figuring out where it is safe to use for such a, well,
    *kafkaesque* bit of software. :)
    
    Bug: https://github.com/confluentinc/librdkafka/issues/2426
    Closes: https://bugs.gentoo.org/895464
    Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>

 dev-libs/librdkafka/librdkafka-2.2.0-r1.ebuild | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)