Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 791088 - media-tv/mythtv-31.0_p20210225 failed to emerge [-fpermissive]
Summary: media-tv/mythtv-31.0_p20210225 failed to emerge [-fpermissive]
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal
Assignee: Wilson M. Michaels
URL:
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks:
 
Reported: 2021-05-19 12:42 UTC by Leonid Kopylov
Modified: 2022-09-14 06:53 UTC (History)
4 users (show)

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


Attachments
build.log.xz (build.log.xz,66.75 KB, application/x-xz)
2021-05-19 12:43 UTC, Leonid Kopylov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Leonid Kopylov 2021-05-19 12:42:24 UTC
# emerge -pqv '=media-tv/mythtv-31.0_p20210225::gentoo'
[ebuild  N    ] media-tv/mythtv-31.0_p20210225  USE="X alsa asi autostart bluray cdda cdr cec dvb dvd egl exif fftw hdhomerun jack java lame libass lirc opengl perl pulseaudio python raw systemd v4l vpx wrapper x264 x265 xml xmltv xvid zeroconf (-altivec) -ceton -debug -hdpvr -ieee1394 -ivtv -lcd -nvdec -oss -vaapi -vbox -vdpau" INPUT_DEVICES="-joystick"

# emerge --info '=media-tv/mythtv-31.0_p20210225::gentoo'
Portage 3.0.18 (python 3.8.10-final-0, default/linux/amd64/17.1/desktop/systemd, gcc-11.1.0, glibc-2.33, 5.12.4-gentoo x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-5.12.4-gentoo-x86_64-Intel-R-_Core-TM-_i7-10710U_CPU_@_1.10GHz-with-glibc2.2.5
KiB Mem:     8136752 total,   5833616 free
KiB Swap:    8388604 total,   8388604 free
Timestamp of repository gentoo: Wed, 19 May 2021 03:00:01 +0000
Head commit of repository gentoo: 557966aaa99fb5e83afb092c410c2d63db1efe95
sh bash 5.1_p8
ld GNU ld (Gentoo 2.36.1 p3) 2.36.1
ccache version 4.3 [disabled]
app-shells/bash:          5.1_p8::gentoo
dev-java/java-config:     2.3.1::gentoo
dev-lang/perl:            5.32.1::gentoo
dev-lang/python:          2.7.18_p10::gentoo, 3.8.10_p1::gentoo, 3.9.5_p1::gentoo, 3.10.0_beta1::gentoo
dev-lang/rust:            1.52.1::gentoo
dev-util/ccache:          4.3::gentoo
dev-util/cmake:           3.20.2::gentoo
sys-apps/baselayout:      2.7-r2::gentoo
sys-apps/sandbox:         2.24::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r5::gentoo
sys-devel/automake:       1.16.3-r1::gentoo
sys-devel/binutils:       2.36.1-r1::gentoo
sys-devel/gcc:            11.1.0::gentoo
sys-devel/gcc-config:     2.4::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.3::gentoo
sys-kernel/linux-headers: 5.12::gentoo (virtual/os-headers)
sys-libs/glibc:           2.33::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-max-age: 24
    sync-rsync-verify-jobs: 1

brave-overlay
    location: /var/lib/layman/brave-overlay
    sync-type: laymansync
    sync-uri: https://gitlab.com/jason.oliveira/brave-overlay.git
    masters: gentoo
    priority: 50

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="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA google-chrome OPERA-2018 PUEL AnyDesk-TOS geekbench TeamViewer microsoft-edge GOG-EULA Vivaldi"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/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.3/ext-active/ /etc/php/apache2-php7.4/ext-active/ /etc/php/apache2-php8.0/ext-active/ /etc/php/cgi-php7.3/ext-active/ /etc/php/cgi-php7.4/ext-active/ /etc/php/cgi-php8.0/ext-active/ /etc/php/cli-php7.3/ext-active/ /etc/php/cli-php7.4/ext-active/ /etc/php/cli-php8.0/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 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="http://mirror.isoc.org.il/pub/gentoo/"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j7"
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"
USE="7zip X a52 aac aacs aalib access-log accessibility acl acpi activities addc addns addressbook ads aesicm afp afs airplay alaw alisp allegro alsa alt-svc amd64 amqp amr amrenc analyzer animgif ao aom ap apache2 apcupsd apidoc aprs aptx ar arcam_av archive argon2 aribsub armadillo arpack asf asi aspell async async-connect audio audit augeas authdaemond auto-completion autoipd autostart avalon-framework avalon-logkit avdevice avif babeltrace base bash-completion bat bcache bcg729 bcmath bcrypt bdplus beats berkdb bidi bitmap bittorrent bl blake2 blas bluetooth bluray bogofilter bookmarks boost botan box branding brotli bs2b btpclient btrfs bzip2 cacert cairo calendar capstone ccache cdb cdda cddb cdio cdparanoia cdr cec cgi cgroup-hybrid chappa charts chat-screen chm chromaprint chrome chromecast chromium chua clamav clamdtop clamonacc clamsubmit cli clickhouse client clippy clock clockdiff cloudprint cluster cmus codec2 colord common-lisp conch connect conntrack console context contrib contribdnn control-socket cookie_check corefonts cover coverage cracklib creds cron crossfade crypt cryptsetup csc cscope cswap cue cups curl custom-modes cuvid cxx daap datavis dav1d dbi dbus dec265 declarative deep-sky demoplugins designer device-mapper devil dga dia dillo discid djbfft djvu dmenu dmraid dnd dns dns-over-tls dnscrypt dnstap doc doctool dos dot doxysearch dpauxmon drafts dri dri3 drm dropbox dssi dtrace dts duke3d dumb dumpvoices dundee dv dvb dvbcsa dvd dvdr dvi dynamic-loading ecdsa ecs ed25519 ed448 editor eds efi egl elasticsearch emacs embed emboss emf enc265 enca enchant encode eolconv epoll eps epub equalizer escrow europe evdev eventclients example examples exe executable exif expat experimental extensions extra extras faac faad facedetect fam fastcgi fasteap fbcon fbdev fcgi fcitx4 fdk ffi ffmpeg fftw file-inspect finger fingerprint firebird firewalld firmware fish-completion fits flac flickr flite fltk fluidsynth fontconfig fontforge fonts fortran fping fpm fpx freebox freetds freetype frei0r fribidi frontend-optional fsck ftdi ftp fullscreen fuse g711 g722 g7221 g729 gadu game games gbm gcrypt gd gdata gdbm gdk-pixbuf geckodriver gegl generators geoclue geoip geoip2 geolocation geos ggi gif gimp git gjs glade gles2 glib glide glslang glusterfs glut gme gml gmp gnuplot gnutls go google googledrive gopher gost gpg gpgme gphoto2 gpm grafana graph graphics graphviz groupwise grp gsf gsl gsm gssapi gstreamer gtalk gtk gtk-doc gts gui guile handwriting haptic hardlink harfbuzz hddtemp hdf hdf5 hdhomerun hdri headers heif help high-availability highlight hog homed howl-compat hpack-tools hpn hrp hscolour hsts html http http-client http-proxy http-server http2 humanities hunspell hwloc ibus ical ices iconv icu id3tag idn il ilbc imagemagick imagequant imaging imap imhttp imlib impcap importd importers inifile inkjar inkscape inotify inputlirc inputs inspector intel-backlight intel_led internal-zookeeper intl introspection io-uring iodbc ios iostats ipod iptc iptv ipv6 irc isabelle iscsi iscsi-direct iso ithreads ivi ivorbis iwlib jack jack-client jadetex jaeger java javamail javascript jbig jitterentropy jms jni jpeg jpeg2k json junction justify kafka kate kbd kdesu kerberos key-screen keyboard kiosk kubernetes kwallet kyotocabinet l16 ladspa lame lapack lapacke large-pcap-64bit lash latex launch-frontend layers lcms ldac ldap ldap-bind ldap-sasl ldapdb ldns leaps-timezone led lensfun libaom libaribb24 libass libcaca libcerf libde265 libdrm libevent libglvnd libilbc libkms liblockfile libmpdclient libmpeg2 libmpv libnotify libotf libpfm libproxy libreoffice librtmp libsoxr libssh libssh2 libtar libtesseract libtiger libtirpc libudev libuv libuvc libv4l libvirt libvisual libxml2 libyuv linsys linux-smp-stats lirc litehtml live lkrn lm-sensors lmdb localstorage location log4j logger logrotate louis lpsol lqr lttng lua luatex lv2 lvm lynxkeymap lyrics lyrics-screen lz4 lzip lzma lzo lzo2 m17n-lib mac macosx-notifications macsec mad magic mail maildir mailutils mainmenuhooks man marble markdown math maxminddb mbedtls mbox md5 md5sum mdb mdblookup mdnsresponder-compat meanwhile media mediaplayer mediawiki mediawiki-experimental memcached menubar menuorg metadata metadata-analysis-api metalink metapost metric mhash midi mikmod milter minizip miri mixer mjpeg mkl mlib-update mmap mms mng mobi moc mod modplug mongo mongodb mono moodbar mount mount-locking mp3 mp3rtp mp4 mpd mpeg mpeg2 mpfr mpg123 mplayer mpris msgpack mssql mtp mule multilib multipath mumble musepack music mutt mvl mysql mysqli nano-syntax nas nat native-headset natspec ncat ncurses netapi netcdf netgroups nethack netlink netloc nettle network network-cron network-map networkauth networkmanager newt nfq nfs nfsdcld nfsv41 nftables nightly nis nistbeacon nls nmbug normalize notifications notifier nping nptl nscd nsplugin nss ntfsdecrypt ntl ntlm ntp-timestamp ntvfs numpy oauth ocaml octave odbc odbcmanual odk ofa offensive office offlinehelp offload ofono ofono-headset ogdi ogg okular omhttp omhttpfs ompt omudpspoof omxil open-appid openal opencv openexr opengl openh264 openldap openmp openntpd openssl opl opus orientation osc outputs outputs-screen overlay overlays ovs pacct pam pango parallel-compiler parse-clocks parted pass passfile pbkdf2 pcap pci pcntl pcre pcre32 pdf pdfannotextractor pdfimport pdo perl pgm pgp-classic phonehome phonon php physfs pidgin pillow pipe pipelight pipewire pjproject pkcs11 pkcs7 playtools plotutils plugin-ifdemo plugins pmdk png pnm policykit pop portaudio portmidi portsmf positioning postgres postproc postscript power-control ppds pps pptx prediction programs projectm pskc pstricks psx publishers pulseaudio putsurface pvr pwhich pwquality python qml qobuz qpak qr qrcode qsui qt5 qtaudio qtmedia quiche quicktime quota rabbitmq racket radio radius rar rav1e raw rbd-rwl rbd-ssd rdp readline realtime recode recorder redis reencrypt regis reiserfs reload-error-restart relp remix remote remotecalls remoting rendering repart resample rfc3195 rfc3779 rfc5424hmac rgw-lua rle rls router rpc rrdcgi rss rsyslog rtc rtmp rubberband ruby rustfmt samba sample samples sanitizers sasl satip savedconfig sbc sbsms science scp scram screen-sharing screencast script scripttools scrobbler scrypt sctp sdjournal sdk sdl sdl-image sdlgfx search-screen seccomp security-key semantic-desktop sensord sensors server-status servletapi session sftp sha2 shaders shadow shapefile share sharedmem shout sid side-channel sieve sift signalfd silk siren14 siren7 skins skydrive slang slb sln16 smbkrb5passwd smi smime smime-classic smpeg smtp snapper snappy sndfile sndio snmp soap sockets socks5 sodium softstore songs sonmp sound soundcloud source sox soxr spacenav spam-report spamassassin span spandsp sparse spatialite spdk speech speex spell spice spidermonkey split-usr spoof-source spotlight sql sqlite sqs squashfs srp srt srtp ssh sshdump ssl staging stars startup-notification statsd stemmer stereo stk stunnel sundials superlu superlumt svg svg2 svt-av1 symlink sync-plugin-portage syslog systemd szip taglib tahoma tbb tcl tcpd tdb teamd telescope telnet terminal test-programs tevent tex4ht texi2html tfshark tga themes theora thetvdb thread-names threads tidal tidy tiff timeline timezone timidity tk tls-heartbeat tokyocabinet tomsfastmath toolame toolkit-scroll-bars tools topal tpm tracker training trashquota tray tre tremor truetype trypandoc ttf ttxtsubs tty-helpers tv-check tv-combiner tv-pick-cgi twolame uchardet udev udf udisks ulaw umfpack unbound undi unicode upnp upnp-av upower uring uriparser usb usbredir user-session usertools utils uuid v4l v4l2 v4lutils vala valadoc vamp vboxwebsrv vcd vde vdf vdo vdr vector-icons vhost-net vhost-user-fs videoeffects vidstab views vim vim-pager vim-syntax virgl virt-network virtfs virtualbox virtualkeyboard visio visualizations visualizer vivaldi vkd3d vmware vnc vocoder voice voices voidsw vorbis vpx vte vtk vulkan wad watchdog wav wavpack wayland wayland-compositor wddx weather-metar web webcam webchannel webdav webengine webinterface webkit webp webready webrtc webserver websocket websockets widgets wifi wildmidi winbind wininst wireshark-plugins wks-server wmf woff2 wpg wps wxwidgets x11extras x264 x265 xa xattr xcb xdmf2 xemacs xetex xface xfs xft xindy xine xinerama xinetd xkb xls xml xmlpatterns xmlreader xmlrpc xmltv xmlwriter xmms2 xmp xmpp xmss xnasong xpm xps xscreensaver xslt xtables xv xvid xwayland xwidgets xxhash yaml youtube ytnef yubikey yuv4mpeg z3 zbd zephyr zeroconf zeromq zimg zip zip-encryption zlib zmq zoran zram zsh-completion zstd zvbi zz-sdjson zz-sdjson-sqlite" ABI_X86="64 32" ADA_TARGET="gnat_2018" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" 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 stage words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 sse4_1 sse4_2 ssse3" 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" KERNEL="linux" L10N="en en-US he ru" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="nlpsolver scripting-beanshell wiki-publisher scripting-javascript" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3 php7-4" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_8" PYTHON_TARGETS="python3_8" RUBY_TARGETS="ruby25 ruby26 ruby27 ruby30" USERLAND="GNU" VIDEO_CARDS="intel i965 iris vmware vesa virgl virtualbox" 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, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RUSTFLAGS

=================================================================
                        Package Settings
=================================================================

media-tv/mythtv-31.0_p20210225::gentoo would be built with the following:
USE="X alsa asi autostart bluray cdda cdr cec dvb dvd egl exif fftw hdhomerun jack java lame libass lirc opengl perl pulseaudio python raw systemd v4l vpx wrapper x264 x265 xml xmltv xvid zeroconf (-altivec) -ceton -debug -hdpvr -ieee1394 -ivtv -lcd -nvdec -oss -vaapi -vbox -vdpau" ABI_X86="(64)" INPUT_DEVICES="-joystick"
Comment 1 Leonid Kopylov 2021-05-19 12:43:40 UTC
Created attachment 709788 [details]
build.log.xz
Comment 2 Preston Crow 2021-07-13 20:07:11 UTC
I just hit this.  I suspect it's caused by compiling some dependency with gcc-11 instead of gcc-10.  I found that upgrading from gcc-10.2 to gcc-10.3 caused my default compiler to change to gcc-11, which I wasn't expecting.
Comment 3 Preston Crow 2021-07-17 18:03:11 UTC
I have four systems that are completely current with all packages, but I only hit this on one of them.  Somehow the configure script is deciding that the math function lrint() doesn't exist, so it's setting HAVE_LRINT to 0, which in turn tells a .h file to define a static version (after the system include file has pulled in the external prototype).  If I'm understanding the configure script correctly, it will reject the system lrint() if it's not there or if it doesn't function correctly, and I'm guessing it's the functionality test.

To test the gcc-11 theory, I uninstalled gcc-11 and then rebuilt every package that was installed between when it was installed and when it was removed.  That didn't change the behavior at all.  The three systems where this installs just fine are fairly normal systems with lots of stuff installed.  The one where it fails is a very minimal system that is mostly going to be a headless backend, so it doesn't have much besides the dependencies.  It's possible this problem is an implicit dependency somewhere.

I'm trying media-tv/mythtv-31.0_p20210606, so the 2021/06/06 version has the same issue as the 2021/02/25 version.
Comment 4 Larry the Git Cow gentoo-dev 2021-08-10 16:22:20 UTC
The bug has been closed via the following commit(s):

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

commit 144bb5a4ee836842eb9fc73f597b0a2ab3228584
Author:     Wilson Michaels <thebitpit@austincustomerrands.com>
AuthorDate: 2021-08-04 15:21:07 +0000
Commit:     Joonas Niilola <juippis@gentoo.org>
CommitDate: 2021-08-10 16:22:12 +0000

    media-tv/mythtv: remove old snapshots
    
    Closes: https://bugs.gentoo.org/791088
    Package-Manager: Portage-3.0.20, Repoman-3.0.2
    Signed-off-by: Wilson Michaels <thebitpit@austincustomerrands.com>
    Closes: https://github.com/gentoo/gentoo/pull/21878
    Signed-off-by: Joonas Niilola <juippis@gentoo.org>

 media-tv/mythtv/Manifest                     |   2 -
 media-tv/mythtv/mythtv-31.0_p20210225.ebuild | 435 ---------------------------
 media-tv/mythtv/mythtv-31.0_p20210606.ebuild | 435 ---------------------------
 3 files changed, 872 deletions(-)
Comment 5 Preston Crow 2021-08-16 22:12:59 UTC
I'm still hitting this with mythtv-31.0_p20210731.

I'm not sure why this fails on some systems and not others.
Comment 6 Wilson M. Michaels 2021-08-17 15:12:35 UTC
Things to try to fix your problem:

Upgrade to latest stable sys-libs/glibc [2.33-r1] tgmath.h defines lrint() and is owned by sys-libs/glibc

Rebuild tool chain as described in https://wiki.gentoo.org/wiki/Upgrading_GCC
This is important since you moved from gcc-10 to gcc-11. Of all my suggestions this one might actually fix your problem. I use gcc 10.3.0-r2, and mythtv is known to compile with gcc-11 [tinderbox]

Maybe recompile the kernel since it was built with an older version of glibc.

Since mythtv is OK on other systems you own, I suspect that the toolchain on the failing system is not consistent.
Comment 7 Preston Crow 2021-10-07 20:22:26 UTC
I've rebuilt the toolchain.  I long ago looked in emerge.log for when I emerged gcc-11 and unmerged it, and rebuilt anything that was merged while it was on the system (based on directory timestamps in /var/db/pkg/*-*/*).  I just rebuilt the tools and glibc, still the same.

My gut tells me that there's some missing package that somehow fixes this, since this is only a problem for me on this very minimal headless system.
Comment 8 Wilson M. Michaels 2021-10-08 18:01:28 UTC
Years ago you could build mythfrontend and mythbackend separately controlled by USE flags. The gentoo devs did not like that and required the maintainer at that time (not me) remove the USE flags and build both every time. Since the system is headless, trying to build mythfrontend may be causing the problem (just a guess).
Comment 9 Preston Crow 2022-02-25 00:57:36 UTC
I've found the problem:

In the configure script, there's the code:

# test for lrint in math.h
check_exec <<EOF && lrint=yes || die lrint=no
#define _ISOC9X_SOURCE  1
#include <math.h>
int main( void ) { return (lrint(3.999f) > 0)?0:1; }
EOF

That should work, but on my system is generating an illegal instruction.  By adding some logging and running the configure script manually, here's the command that it's using to build the code:

x86_64-pc-linux-gnu-gcc -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -O3 -pipe -march=native -mtune=native -fomit-frame-pointer -fno-stack-protector -march=haswell -std=c11 -fPIC -pthread -I/usr/include/libxml2 -I/usr/include/libdrm -c -o /tmp/ffconf.7J6LenK5/test.o /tmp/ffconf.7J6LenK5/test.c
x86_64-pc-linux-gnu-gcc -Wl,-O1 -Wl,--as-needed -march=haswell -Wl,--as-needed -Wl,-z,noexecstack -o /tmp/ffconf.7J6LenK5/test /tmp/ffconf.7J6LenK5/test.o -lm -lhdhomerun -lhdhomerun -ldrm -lxml2 -lmp3lame -lm -lz -pthread -pthread -lsamplerate

The problem is that I have a Celeron Haswell processor, and the above uses -march=haswell overriding -march=native, which enables instructions for Haswell that are not included with the Celleron.

diff -u <(gcc -march=haswell -Q --help=target) <(gcc -march=native -Q --help=target)

-  -mabm                                [disabled]
+  -mabm                                [enabled]
-  -mavx                                [enabled]
-  -mavx2                               [enabled]
+  -mavx                                [disabled]
+  -mavx2                               [disabled]
-  -mbmi                                [enabled]
-  -mbmi2                               [enabled]
+  -mbmi                                [disabled]
+  -mbmi2                               [disabled]
-  -mf16c                               [enabled]
+  -mf16c                               [disabled]
-  -mfma                                [enabled]
+  -mfma                                [disabled]
-  -mxsave                              [enabled]
+  -mxsave                              [disabled]
-  -mxsaveopt                           [enabled]
+  -mxsaveopt                           [disabled]

gcc --version
gcc (Gentoo 10.3.1_p20211126 p0) 10.3.1 20211126

In this case, if I add -mno-avx to the command line after the -march=haswell, then it works.

This is consistent with the Wikipedia page on AVX:
https://en.wikipedia.org/wiki/Advanced_Vector_Extensions

"Not all CPUs from the listed families support AVX. Generally, CPUs with the commercial denomination Core i3/i5/i7/i9 support them, whereas Pentium and Celeron CPUs do not."

Disassembly of the code in gdb shows it fails on the vmovq instruction, which is in the AVX instructions.

In the configure script, it insists on setting the architecture.

if test "$cpu" = host; then
    enabled cross_compile &&
        die "--cpu=host makes no sense when cross-compiling."

    case "$cc_type" in
        gcc|llvm_gcc)
            check_native(){
                $cc $1=native -v -c -o $TMPO $TMPC >$TMPE 2>&1 || return
                sed -n "/cc1.*$1=/{
                            s/.*$1=\\([^ ]*\\).*/\\1/
                            p
                            q
                        }" $TMPE
            }
            cpu=$(check_native -march || check_native -mcpu)
        ;;
...
elif enabled x86; then

    case $cpu in
...
        # targets that do support nopl and conditional mov (cmov)
        i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64*|k8*|opteron*|athlon-fx\
        |core*|atom|bonnell|nehalem|westmere|silvermont|sandybridge|ivybridge|haswell|broadwell|skylake*|knl\
        |amdfam10|barcelona|b[dt]ver*|znver*)
            cpuflags="-march=$cpu"


Just change -march=$cpu to -march=native on that last line, and it all works.

Now the question is whether this should be fixed in the configure script, or if we should fix gcc to only use instructions in -march=haswell that are available on all Haswell processors (and similarly on other architectures)?