Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 870298 - media-libs/libpng-1.6.38 failed to emerge on ARM64 with cpu_flags_arm_neon
Summary: media-libs/libpng-1.6.38 failed to emerge on ARM64 with cpu_flags_arm_neon
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: ARM64 Linux
: Normal normal (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-09-16 06:45 UTC by Leonid Kopylov
Modified: 2022-09-17 17:51 UTC (History)
5 users (show)

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


Attachments
build.log (build.log,24.77 KB, text/plain)
2022-09-16 06:45 UTC, Leonid Kopylov
Details
emerge --info (emerge-info.txt,6.47 KB, text/plain)
2022-09-17 17:19 UTC, Xavier Miller
Details
build log (build.log,20.75 KB, text/x-log)
2022-09-17 17:20 UTC, Xavier Miller
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Leonid Kopylov 2022-09-16 06:45:23 UTC
# emerge -pqv '=media-libs/libpng-1.6.38::gentoo'
[ebuild     U ] media-libs/libpng-1.6.38 [1.6.37-r2] USE="(-apng) -static-libs" CPU_FLAGS_ARM="neon"

# emerge --info '=media-libs/libpng-1.6.38::gentoo'
Portage 3.0.36 (python 3.10.7-final-0, default/linux/arm64/17.0/desktop/gnome/systemd, gcc-12.2.0, glibc-2.35-r8, 5.19.9-gentoo-arm64 aarch64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-5.19.9-gentoo-arm64-aarch64-with-glibc2.35
KiB Mem:    16345296 total,   3034160 free
KiB Swap:    8388604 total,   8372476 free
Timestamp of repository gentoo: Fri, 16 Sep 2022 06:00:01 +0000
Head commit of repository gentoo: cac62de5d47fb2d5f40a322b1f945793b1cd90b2
sh bash 5.1_p16-r2
ld GNU ld (Gentoo 2.39 p4) 2.39.0
ccache version 4.6.3 [enabled]
app-misc/pax-utils:        1.3.5::gentoo
app-shells/bash:           5.1_p16-r2::gentoo
dev-java/java-config:      2.3.1::gentoo
dev-lang/perl:             5.36.0::gentoo
dev-lang/python:           3.10.7::gentoo, 3.11.0_rc2::gentoo
dev-lang/rust-bin:         1.63.0::gentoo
dev-util/ccache:           4.6.3::gentoo
dev-util/cmake:            3.24.2::gentoo
dev-util/meson:            0.63.2-r1::gentoo
sys-apps/baselayout:       2.8-r2::gentoo
sys-apps/sandbox:          2.29::gentoo
sys-apps/systemd:          251.4::gentoo
sys-devel/autoconf:        2.71-r2::gentoo
sys-devel/automake:        1.16.5::gentoo
sys-devel/binutils:        2.39-r2::gentoo
sys-devel/binutils-config: 5.4.1::gentoo
sys-devel/gcc:             12.2.0::gentoo
sys-devel/gcc-config:      2.5-r1::gentoo
sys-devel/libtool:         2.4.7::gentoo
sys-devel/llvm:            14.0.6-r2::gentoo, 15.0.0::gentoo
sys-devel/make:            4.3::gentoo
sys-kernel/linux-headers:  5.19::gentoo (virtual/os-headers)
sys-libs/glibc:            2.35-r8::gentoo
Repositories:

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

guru
    location: /var/lib/layman/guru
    sync-type: laymansync
    sync-uri: https://anongit.gentoo.org/git/repo/proj/guru.git
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="arm64 ~arm64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="aarch64-unknown-linux-gnu"
CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer"
CHOST="aarch64-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/php/apache2-php8.1/ext-active/ /etc/php/cgi-php8.1/ext-active/ /etc/php/cli-php8.1/ext-active/ /etc/php/fpm-php8.1/ext-active/ /etc/php/phpdbg-php8.1/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="-march=native -O2 -pipe -fomit-frame-pointer"
DISTDIR="/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="-march=native -O2 -pipe -fomit-frame-pointer"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live ccache 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="-march=native -O2 -pipe -fomit-frame-pointer"
GENTOO_MIRRORS="https://mirror.isoc.org.il/pub/gentoo/"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j6"
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 a52 aac accessibility acl acpi alsa ao appindicator arm64 aspell audit avif bash-completion berkdb bidi bluetooth branding brotli bzip2 cairo cdda cdr cgi cli colord cron crypt cryptsetup cups curl dbi dbus designer device-mapper djvu doc dri dts dvdr eds emacs enchant encode evo examples exif expat experimental extra extras fam fastcgi fbcon fftw flac fontconfig fortran freetds ftp fuse gamepad games gcrypt gd gdbm gdk-pixbuf geoip geolocation gif gmp gnome gnome-keyring gnome-online-accounts gnutls go gpg gpm graphite graphviz gssapi gstreamer gtk gtk-doc gui guile harfbuzz hdf5 heif help highlight http http2 iconv icu idn imagemagick imap introspection iodbc ipv6 jack java jbig jemalloc joystick jpeg jpeg2k json kerberos ladspa latex lcms ldap libevent libglvnd libnotify libsamplerate libsecret libtirpc libxml2 lmdb lua lz4 lzma lzo mad magic maildir man mbox memcached midi mng mongodb mp3 mp4 mpeg mysql nas nautilus ncurses netlink nettle networkmanager nls nptl nss ntlm odbc offensive ogg openal openexr opengl openmp openssl opus pam pango pcap pcre pdf perl pkcs11 png policykit portaudio postgres postscript ppds printsupport pulseaudio python qdbm qml qrcode qt5 raw readline redis samba sasl screencast sdl seccomp skey smtp snappy sndfile sndio snmp sockets sound source speech spell split-usr sql sqlite ssh ssl startup-notification svg symlink syslog systemd tcl theora threads tiff tk tools tracker truetype twolame udev udisks unicode upower usb utils uuid vala vim-syntax vnc vorbis wavpack wayland webengine webkit webp websockets widgets wmf wxwidgets x264 x265 xattr xcb xface xft xinerama xml xpm xv xvid yaml zeroconf zip zlib zsh-completion zstd" ADA_TARGET="gnat_2020" 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 stage" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_ARM="edsp thumb vfp vfpv3 vfpv4 vfp-d32 aes sha1 sha2 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" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="evdev libinput" KERNEL="linux" L10N="en en-US he ru" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="nlpsolver" 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="ruby27 ruby30 ruby31" USERLAND="GNU" VIDEO_CARDS="virgl" 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, LEX, 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 Leonid Kopylov 2022-09-16 06:45:47 UTC
Created attachment 805429 [details]
build.log
Comment 2 Xavier Miller 2022-09-16 07:27:35 UTC
happens in ARM64 (same error for me)
Comment 3 matoro archtester 2022-09-17 03:30:44 UTC
Confirmed, copying arm64@
Comment 4 Jory A. Pratt gentoo-dev 2022-09-17 15:26:57 UTC
(In reply to matoro from comment #3)
> Confirmed, copying arm64@

cpu_flags_arm_neon is masked on arm64. This appears to be unmasked by users who are unaware of the breakage they introduce in packages such as libpng.
Comment 5 matoro archtester 2022-09-17 16:51:57 UTC
(In reply to Jory A. Pratt from comment #4)
> (In reply to matoro from comment #3)
> > Confirmed, copying arm64@
> 
> cpu_flags_arm_neon is masked on arm64. This appears to be unmasked by users
> who are unaware of the breakage they introduce in packages such as libpng.

I have it set in package.use but that should not override a mask.  All I did to get this was:

$ cpuid2cpuflags
CPU_FLAGS_ARM: edsp neon thumb vfp vfpv3 vfpv4 vfp-d32 aes sha1 sha2 crc32 v4 v5 v6 v7 v8 thumb2

Then I just put that in package.use:

*/* CPU_FLAGS_ARM: edsp neon thumb vfp vfpv3 vfpv4 vfp-d32 aes sha1 sha2 crc32 v4 v5 v6 v7 v8 thumb2

But a mask should override anything in package.use right?  So why would it still apply?
Comment 6 Xavier Miller 2022-09-17 17:13:46 UTC
(In reply to matoro from comment #5)
> (In reply to Jory A. Pratt from comment #4)
> > (In reply to matoro from comment #3)
> > > Confirmed, copying arm64@
> > 
> > cpu_flags_arm_neon is masked on arm64. This appears to be unmasked by users
> > who are unaware of the breakage they introduce in packages such as libpng.
> 
> I have it set in package.use but that should not override a mask.  All I did
> to get this was:
> 
> $ cpuid2cpuflags
> CPU_FLAGS_ARM: edsp neon thumb vfp vfpv3 vfpv4 vfp-d32 aes sha1 sha2 crc32
> v4 v5 v6 v7 v8 thumb2
> 
> Then I just put that in package.use:
> 
> */* CPU_FLAGS_ARM: edsp neon thumb vfp vfpv3 vfpv4 vfp-d32 aes sha1 sha2
> crc32 v4 v5 v6 v7 v8 thumb2
> 
> But a mask should override anything in package.use right?  So why would it
> still apply?
 
Same for me. My RK3399 has neon in CPU_ARM_FLAGS as recommended by cpuid2dpuflags.

Do we need to remove neon from CPU_ARM_FLAGS?
Comment 7 Xavier Miller 2022-09-17 17:19:24 UTC
Created attachment 808411 [details]
emerge --info
Comment 8 Xavier Miller 2022-09-17 17:20:18 UTC
Created attachment 808465 [details]
build log
Comment 9 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-09-17 17:27:53 UTC
Until 1.6.38, it _did_ work on arm64:

# Sam James <sam@gentoo.org> (2021-04-14)
# Supports 64-bit NEON
# Note: libpng-compat 1.5.30 does NOT seem to.
media-libs/libpng -cpu_flags_arm_neon

It definitely did work and I'd tested it extensively. So 1.6.38 has broken it somehow.
Comment 10 Roy Bamford gentoo-dev 2022-09-17 17:33:12 UTC
It was this commit

https://sourceforge.net/p/libpng/code/ci/8c542ad9dfc3e7f8a8c790343a43d9cffbc54fd8/

if that helps any.
Comment 11 Larry the Git Cow gentoo-dev 2022-09-17 17:49:49 UTC
The bug has been closed via the following commit(s):

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

commit 6795cc4ecfff4ff5c94a6f6a39e68df0d51e12b6
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2022-09-17 17:48:15 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2022-09-17 17:49:37 +0000

    media-libs/libpng: fix NEON on ARM64
    
    As of 1.6.38, =check is banned on arm64 because NEON is always present
    there. We don't need =check otherwise, so just enable conditionally
    based on whether cpu_flags_arm_neon is on.
    
    (configure also says =check is deprecated/unsupported.)
    
    Note that while cpu_flags_arm_neon is masked on arm64 in general,
    it's unmasked for packages which we know work, like libpng (as
    it's been fine before 1.6.38).
    
    Closes: https://bugs.gentoo.org/870298
    Thanks-to: Roy Bamford <neddyseagoon@gentoo.org>
    Signed-off-by: Sam James <sam@gentoo.org>

 media-libs/libpng/libpng-1.6.38.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)