Build of libgcrypt is failing on ppc64le: libtool: compile: powerpc64le-unknown-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I/cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/var/tmp/portage/dev-libs/libgcrypt-1.9.4/work/libgcrypt-1.9.4/cipher -I.. -I../src -I/cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/var/tmp/portage/dev-libs/libgcrypt-1.9.4/work/libgcrypt-1.9.4/src -I../mpi -I/cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/var/tmp/portage/dev-libs/libgcrypt-1.9.4/work/libgcrypt-1.9.4/mpi -DGNUSTEP_BASE_VERSION -I/cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/usr/include -fvisibility=hidden -fno-delete-null-pointer-checks -Wall -c /cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/var/tmp/portage/dev-libs/libgcrypt-1.9.4/work/libgcrypt-1.9.4/cipher/chacha20-ppc.c -fPIC -DPIC -o .libs/chacha20-ppc.o In file included from /cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/var/tmp/portage/dev-libs/libgcrypt-1.9.4/work/libgcrypt-1.9.4/cipher/chacha20-ppc.c:28: /cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/var/tmp/portage/dev-libs/libgcrypt-1.9.4/work/libgcrypt-1.9.4/cipher/chacha20-ppc.c: In function '_gcry_chacha20_ppc8_blocks1': /cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/var/tmp/portage/dev-libs/libgcrypt-1.9.4/work/libgcrypt-1.9.4/cipher/chacha20-ppc.c:60:10: error: argument 3 must be a 4-bit unsigned literal 60 | return vec_sld (v, v, (16 - (4 * idx)) & 15); | ^~~~~~~ Reproducible: Always This occurred during a Gentoo Prefix bootstrap (using portage snapshot 20211120) on a Linux/POWER9 (emulated via QEMU), but I doubt that's relevant for this problem.
Thanks! Could you please include the full build.log and emerge —-info?
Thank you for the report. We need to have all information at hand before ticket assignment. Please provide * the complete build.log as attachment and * paste the emerge info as described on https://wiki.gentoo.org/wiki/Attach_the_logs_to_the_bug_ticket Please reopen this ticket (Status:UNCONFIRMED) afterwards.
Created attachment 756121 [details] build.log for failing dev-libs/libgcrypt-1.9.4 on ppc64le
Comment on attachment 756121 [details] build.log for failing dev-libs/libgcrypt-1.9.4 on ppc64le $ emerge --info dev-libs/libgcrypt Portage 3.0.28 (python 3.9.9-final-0, default/linux/ppc64le/17.0/prefix/kernel-3.2+, gcc-10.3.0, unavailable, 4.18.0-240.1.1.el8_3.ppc64le ppc64le) ================================================================= System Settings ================================================================= System uname: Linux-4.18.0-240.1.1.el8_3.ppc64le-ppc64le-POWER9_-architected-,_altivec_supported-with-glibc2.33 KiB Mem: 15654784 total, 5661248 free KiB Swap: 0 total, 0 free Timestamp of repository gentoo: Sun, 21 Nov 2021 17:00:01 +0000 Head commit of repository gentoo: 756755f4c2d6092298371f3a3ef3b759606e949c sh bash 5.1_p12 ld GNU ld (Gentoo 2.37_p1 p0) 2.37 app-shells/bash: 5.1_p12::gentoo dev-lang/perl: 5.34.0-r5::gentoo dev-lang/python: 3.9.9::gentoo, 3.10.0_p1::gentoo sys-apps/baselayout: 2.8::gentoo sys-apps/sandbox: 2.29::gentoo sys-devel/autoconf: 2.71-r1::gentoo sys-devel/automake: 1.16.5::gentoo sys-devel/binutils: 2.37_p1::gentoo sys-devel/gcc: 10.3.0-r2::gentoo sys-devel/gcc-config: 2.5::gentoo sys-devel/libtool: 2.4.6-r6::gentoo sys-devel/make: 4.3::gentoo sys-kernel/linux-headers: 5.15::gentoo (virtual/os-headers) sys-libs/glibc: 2.33-r7::gentoo Repositories: gentoo location: /cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/var/db/repos/gentoo sync-type: rsync sync-uri: rsync://rsync.gentoo.org/gentoo-portage priority: -1000 sync-rsync-verify-max-age: 24 sync-rsync-extra-opts: sync-rsync-verify-jobs: 1 sync-rsync-verify-metamanifest: no ACCEPT_KEYWORDS="ppc64 ~ppc64" ACCEPT_LICENSE="@FREE" CBUILD="powerpc64le-unknown-linux-gnu" CFLAGS="-O2 -pipe -O2 -pipe" CHOST="powerpc64le-unknown-linux-gnu" CONFIG_PROTECT="/cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/etc /etc" CONFIG_PROTECT_MASK="/cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/etc/env.d /cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/etc/gentoo-release /etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -pipe -O2 -pipe" DISTDIR="/cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/var/cache/distfiles" ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY 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" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance config-protect-if-modified distlocks ebuild-locks fixlafiles force-prefix ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sfperms strict unknown-features-warn unmerge-logs unmerge-orphans unprivileged" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j8" PKGDIR="/cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/var/cache/binpkgs" PORTAGE_CONFIGROOT="/cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/" 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="/cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/var/tmp" USE="acl bzip2 cli crypt dri fortran gdbm iconv ipv6 libglvnd ncurses nls nptl openmp pcre ppc64 prefix readline seccomp split-usr ssl unicode zlib" ABI_PPC="64" ADA_TARGET="gnat_2019" 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="php7-3 php7-4" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_9" PYTHON_TARGETS="python3_9" RUBY_TARGETS="ruby26 ruby27" USERLAND="GNU" VIDEO_CARDS="fbdev mga nv r128 radeon dummy v4l" 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: CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RUSTFLAGS
Small update: masking dev-libs/libgcrypt-1.9.4 so dev-libs/libgcrypt-1.8.8 is installed instead works fine for me on ppc64le
I can build it just fine on non-prefix system, both stable and unstable ppc64le. with USE=asm ofc probably something prefix-specific after all, maybe some host header leaking in.
actually reproduced now. I usually build with -mcpu=power9 if you have that in CFLAGS it'll build fine. but without specifying this it will fail. looks like it requires at least power8 crypto and some definitions to build properly.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d8a4d3fd80741ffdbd17dff2e5ecfde4220c96ab commit d8a4d3fd80741ffdbd17dff2e5ecfde4220c96ab Author: Georgy Yakovlev <gyakovlev@gentoo.org> AuthorDate: 2022-01-17 02:44:45 +0000 Commit: Georgy Yakovlev <gyakovlev@gentoo.org> CommitDate: 2022-01-17 02:45:59 +0000 dev-libs/libgcrypt: add cpu_flags_ppc_vsx2 to control new configure knob --disable-ppc-crypto-support Disable support for the PPC crypto instructions introduced in POWER 8 (PowerISA 2.07) Closes: https://bugs.gentoo.org/825722 Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org> dev-libs/libgcrypt/libgcrypt-1.9.4.ebuild | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
while my fix solves issue partially, you still need to pass proper -mcpu in CFLAGS this code will compile with -mcpu=power8 and later. upstream enables power8 crypto but does not check if __POWER8_VECTOR__ is defined, which is required to build this code. also install app-portage/cpuid2cpuflags and configure CPU_FLAGS_PPC properly, otherwise you may be missing vector optimizations for power9 flags will look like this: > cat /etc/portage/package.use/50-cpu_flags.conf > */* altivec > */* CPU_FLAGS_PPC: altivec vsx vsx2 vsx3
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cdc1e30fea09cd62a5d0e74f4880bb0d38ad5970 commit cdc1e30fea09cd62a5d0e74f4880bb0d38ad5970 Author: Georgy Yakovlev <gyakovlev@gentoo.org> AuthorDate: 2022-01-17 03:54:02 +0000 Commit: Georgy Yakovlev <gyakovlev@gentoo.org> CommitDate: 2022-01-17 04:25:00 +0000 dev-libs/libgcrypt: add more ppc specific vector flags USE="-cpu_flags_ppc_vsx3 -cpu_flags_ppc_vsx2 -cpu_flags_ppc_altivec" build now properly configures package with: ... cc supports PowerPC AltiVec/VSX intrinsics... (cached) no cc supports PowerPC AltiVec/VSX/crypto intrinsics with extra GCC flags... (cached) no GCC inline assembler supports PowerPC AltiVec/VSX/crypto instructions... (cached) no GCC inline assembler supports PowerISA 3.00 instructions... (cached) no ... Try using PPC crypto: no Bug: https://bugs.gentoo.org/825722 Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org> dev-libs/libgcrypt/libgcrypt-1.9.4.ebuild | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-)
another issue I've noticed in your build log. you seem to have empty CFLAGS, not only for -mcpu but for -O2 too is missing for example. real trigger for this bug is absence of at least -O1 parameter, maybe -Os will do. default is -O2. set that too. a lot of software does not really build with optimizations turned off or produces horrible code. I would check other software you've installed, maybe you've been missing those flags for a while.
(In reply to Georgy Yakovlev from comment #11) > another issue I've noticed in your build log. > > > you seem to have empty CFLAGS, not only for -mcpu but for -O2 too is missing > for example. > > > real trigger for this bug is absence of at least -O1 parameter, maybe -Os > will do. default is -O2. The "emerge --info" output shows that CFLAGS *is* set though?
(In reply to Kenneth Hoste from comment #12) > (In reply to Georgy Yakovlev from comment #11) > > another issue I've noticed in your build log. > > > > > > you seem to have empty CFLAGS, not only for -mcpu but for -O2 too is missing > > for example. > > > > > > real trigger for this bug is absence of at least -O1 parameter, maybe -Os > > will do. default is -O2. > > The "emerge --info" output shows that CFLAGS *is* set though? but they are not in build log here's your line: > libtool: compile: powerpc64le-unknown-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I/cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/var/tmp/portage/dev-libs/libgcrypt-1.9.4/work/libgcrypt-1.9.4/cipher -I.. -I../src -I/cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/var/tmp/portage/dev-libs/libgcrypt-1.9.4/work/libgcrypt-1.9.4/src -I../mpi -I/cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/var/tmp/portage/dev-libs/libgcrypt-1.9.4/work/libgcrypt-1.9.4/mpi -DGNUSTEP_BASE_VERSION -I/cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/usr/include -fvisibility=hidden -fno-delete-null-pointer-checks -Wall -c /cvmfs/pilot.eessi-hpc.org/2021.12/compat/linux/ppc64le/var/tmp/portage/dev-libs/libgcrypt-1.9.4/work/libgcrypt-1.9.4/cipher/salsa20.c -fPIC -DPIC -o .libs/salsa20.o and mine as counter-example: > libtool: compile: powerpc64le-unknown-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I/var/tmp/portage/dev-libs/libgcrypt-1.9.4/work/libgcrypt-1.9.4/cipher -I.. -I../src -I/var/tmp/portage/dev-libs/libgcrypt-1.9.4/work/libgcrypt-1.9.4/src -I../mpi -I/var/tmp/portage/dev-libs/libgcrypt-1.9.4/work/libgcrypt-1.9.4/mpi -O2 -mcpu=power9 -ftree-vectorize -pipe -frecord-gcc-switches -fdiagnostics-show-option -fdiagnostics-color=always -fvisibility=hidden -fno-delete-null-pointer-checks -Wall -c /var/tmp/portage/d ev-libs/libgcrypt-1.9.4/work/libgcrypt-1.9.4/cipher/salsa20.c -fPIC -DPIC -o .libs/salsa20.o -O2 should be seen just before -fvisibility=hidden, but it's simply not there. also I see your flags are doubled somehow CFLAGS="-O2 -pipe -O2 -pipe" ^ confusing. are you concatenating COMMON_FLAGS and CFLAGS somehow? maybe it somehow affects and confuses build system? can you post raw make.conf just to check if it's correct?