I'm getting the following when attempting to build pixman-0.38.0: -- FAILED: test/region-test x86_64-pc-linux-gnu-gcc -o test/region-test 'test/9f86d08@@region-test@exe/region-test.c.o' -Wl,--no-undefined -Wl,--as-needed -O2 -march=native -mtune=skylake -pipe -Wl,-O1 -Wl,--as-needed -Wl,--start-group test/libtestutils.a pixman/libpixman-1.so.0.38.0 -lm -Wl,--end-group -fopenmp -pthread '-Wl,-rpath,$ORIGIN/:$ORIGIN/../pixman' -Wl,-rpath-link,/var/tmp/portage/x11-libs/pixman-0.38.0/work/pixman-0.38.0-abi_x86_64.amd64/test:/var/tmp/portage/x11-libs/pixman-0.38.0/work/pixman-0.38.0-abi_x86_64.amd64/pixman x86_64-pc-linux-gnu-gcc: error: libgomp.spec: No such file or directory ninja: build stopped: subcommand failed. * ERROR: x11-libs/pixman-0.38.0::gentoo failed (compile phase): * ninja -v -j12 -l12 -C /var/tmp/portage/x11-libs/pixman-0.38.0/work/pixman-0.38.0-abi_x86_64.amd64 failed * * Call stack: * ebuild.sh, line 124: Called src_compile * environment, line 2596: Called multilib-minimal_src_compile * environment, line 1387: Called multilib_foreach_abi 'multilib-minimal_abi_src_compile' * environment, line 1619: Called multibuild_foreach_variant '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_compile' * environment, line 1322: Called _multibuild_run '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_compile' * environment, line 1320: Called _multilib_multibuild_wrapper 'multilib-minimal_abi_src_compile' * environment, line 442: Called multilib-minimal_abi_src_compile * environment, line 1381: Called multilib_src_compile * environment, line 1831: Called meson_src_compile * environment, line 1244: Called eninja '-C' '/var/tmp/portage/x11-libs/pixman-0.38.0/work/pixman-0.38.0-abi_x86_64.amd64' * environment, line 833: Called die * The specific snippet of code: * "$@" || die "${nonfatal_args[@]}" "${*} failed" * -- Based on e-file, it looks like this file is supposed to be supplied by gcc. I'm thinking this is wanting gcc to be built with USE=openmp, which I do not have.
# emerge --info =x11-libs/pixman-0.38.0 Portage 2.3.62 (python 3.6.8-final-0, default/linux/amd64/17.0/no-multilib, gcc-8.3.0, glibc-2.28-r5, 5.0.2-gentoo x86_64) ================================================================= System Settings ================================================================= System uname: Linux-5.0.2-gentoo-x86_64-Intel-R-_Xeon-R-_CPU_E5-2630_0_@_2.30GHz-with-gentoo-2.6 KiB Mem: 32886788 total, 16476080 free KiB Swap: 3145724 total, 831436 free Timestamp of repository gentoo: Sun, 17 Mar 2019 20:45:12 +0000 Timestamp of repository marduk: Wed, 06 Mar 2019 12:46:38 +0000 sh bash 5.0_p2-r2 ld GNU ld (Gentoo 2.32 p1) 2.32.0 app-shells/bash: 5.0_p2-r2::gentoo dev-java/java-config: 2.2.0-r4::gentoo dev-lang/perl: 5.28.0::gentoo dev-lang/python: 2.7.16::gentoo, 3.6.8::gentoo, 3.7.2::gentoo dev-util/cmake: 3.13.4::gentoo dev-util/pkgconfig: 0.29.2::gentoo sys-apps/baselayout: 2.6-r1::gentoo sys-apps/sandbox: 2.17::gentoo sys-devel/autoconf: 2.13-r1::gentoo, 2.69-r4::gentoo sys-devel/automake: 1.11.6-r3::gentoo, 1.13.4-r2::gentoo, 1.16.1-r1::gentoo sys-devel/binutils: 2.32::gentoo sys-devel/gcc: 8.3.0::gentoo sys-devel/gcc-config: 2.0::gentoo sys-devel/libtool: 2.4.6-r5::gentoo sys-devel/make: 4.2.1-r4::gentoo sys-kernel/linux-headers: 5.0-r1::gentoo (virtual/os-headers) sys-libs/glibc: 2.28-r5::gentoo Repositories: gentoo location: /usr/portage sync-type: rsync sync-uri: rsync://blackwidow/portage priority: -1000 sync-rsync-verify-max-age: 24 sync-rsync-verify-jobs: 1 sync-rsync-extra-opts: sync-rsync-verify-metamanifest: False marduk location: /usr/local/portage sync-type: rsync sync-uri: rsync://blackwidow/local-portage masters: gentoo priority: 50 sync-rsync-extra-opts: sync-rsync-verify-metamanifest: False ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA AdobeFlash-11.x Google-TOS google-chrome google-talkplugin" CBUILD="x86_64-pc-linux-gnu" CFLAGS=" -O2 -march=native -mtune=skylake -pipe " CHOST="x86_64-pc-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 -march=native -mtune=skylake -pipe " DISTDIR="/var/portage/distfiles" EMERGE_DEFAULT_OPTS=" --alphabetical --autounmask=n --buildpkg-exclude=sys-kernel/gentoo-sources --changed-deps=y --color=n --jobs=5 --nospinner --unordered-display --verbose-conflicts --with-bdeps=y --jobs=3" ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN 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 buildpkg cgroup config-protect-if-modified distlocks fixlafiles ipc-sandbox multilib-strict network-sandbox news noinfo notitles parallel-fetch pid-sandbox preserve-libs protect-owned sandbox sfperms skiprocheck strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_US.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j12 -l12" PKGDIR="/var/portage/packages" PORTAGE_COMPRESS="" PORTAGE_COMPRESS_FLAGS="" 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="acl aes amd64 asm avx avx2 f16c fma3 glamor introspection ipv6 mmx mmxext nls nptl opentype pam pclmul popcnt seccomp split-usr sse sse2 sse3 sse4_1 sse4_2 ssse3 systemd udev unicode urandom utf8 wayland xattr" ABI_X86="64" APACHE2_MODULES="auth_digest authn_core authn_file authz authz_core authz_groupfile authz_host authz_user dav dav_fs dir group_file mime socache_shmcb unixd" APACHE2_MPMS="prefork" CAMERAS="*" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" CURL_SSL="openssl" ELIBC="glibc" FFTOOLS="*" INPUT_DEVICES="libinput" KERNEL="linux" LLVM_TARGETS="X86" NGINX_MODULES_HTTP="auth_basic gzip proxy rewrite uwsgi" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_6" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby25" USERLAND="GNU" VIDEO_CARDS="intel i965" Unset: CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_RSYNC_EXTRA_OPTS
# equery u gcc [ Legend : U - final flag setting for installation] [ : I - package is installed with flag ] [ Colors : set, unset ] * Found these USE flags for sys-devel/gcc-8.3.0: U I + + cxx : Build support for C++ (bindings, extra libraries, code generation, ...) - - debug : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces - - doc : Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally - - fortran : Add support for fortran - - go : Build the GCC Go language frontend. - - graphite : Add support for the framework for loop optimizations based on a polyhedral intermediate representation + + mpx : Enable support for Intel Memory Protection Extensions (MPX) - - nls : Add Native Language Support (using gettext - GNU locale utilities) + + nptl : Enable support for Native POSIX Threads Library, the new threading module (requires linux-2.6 or better usually) - - objc : Build support for the Objective C code language - - objc++ : Build support for the Objective C++ language - - objc-gc : Build support for the Objective C code language Garbage Collector - - openmp : Build support for the OpenMP (support parallel computing), requires >=sys-devel/gcc-4.2 built with USE="openmp" + + pch : Enable precompiled header support for faster compilation at the expense of disk space and memory (>=sys-devel/gcc-3.4 only) + + pgo : Build GCC using Profile Guided Optimization (PGO) - + pie : Build programs as Position Independent Executables (a security hardening technique) - - sanitize : Build support for various sanitizer functions (ASAN/TSAN/etc...) - - ssp : Build packages with stack smashing protector on by default - - systemtap : enable systemtap static probe points - - test : Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently) - - vanilla : Do not add extra patches which change default behaviour; DO NOT USE THIS ON A GLOBAL SCALE as the severity of the meaning changes drastically - - vtv : Build support for virtual table verification (a C++ hardening feature)
I rebuilt gcc with openmp and after that pixman builds successfully.
Another odd thing (maybe) is that if I rebuild gcc with -openmp then revdep-rebuild doesn't complain about pixman. So maybe it's looking for openmp but isn't really using it?
Thank you! I'll commit a fix.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4aa9ed9e2b68634c4506cb0085971c15f315e5f0 commit 4aa9ed9e2b68634c4506cb0085971c15f315e5f0 Author: Matt Turner <mattst88@gentoo.org> AuthorDate: 2019-03-18 17:29:56 +0000 Commit: Matt Turner <mattst88@gentoo.org> CommitDate: 2019-03-18 17:29:56 +0000 x11-libs/pixman: Configure with -Dopenmp=auto Closes: https://bugs.gentoo.org/680802 Signed-off-by: Matt Turner <mattst88@gentoo.org> x11-libs/pixman/pixman-0.38.0.ebuild | 1 + x11-libs/pixman/pixman-9999.ebuild | 1 + 2 files changed, 2 insertions(+)
Dang. That doesn't seem to be sufficient. I still get a build failure. :(
I have filed the following meson bug: https://github.com/mesonbuild/meson/issues/5115 Which I have some patches in progress for. I also have a workaround I'll submit for pixman for this.
*** Bug 681078 has been marked as a duplicate of this bug. ***
I see the upstream meson bug has been closed with a merged PR. Any chance we could backport this to the tree? Thanks
(In reply to Rémi Cardona from comment #10) > I see the upstream meson bug has been closed with a merged PR. Any chance we > could backport this to the tree? Thanks Unless you know of another instance of this problem, it'll be easier to apply a workaround to pixman.
Cheesy patch to make the build succeed (clearly NOT the right answer, but I was annoyed with the build failure, and this was a trivial way to fix it w/o a new ebuild): --- a/meson.build 2019-03-31 10:35:27.642832333 -0700 +++ b/meson.build 2019-03-31 10:35:38.958493597 -0700 @@ -376,7 +376,7 @@ config.set('PIXMAN_GNUPLOT', 1) endif -use_openmp = get_option('openmp') +use_openmp = get_option('gtk') dep_openmp = null_dep if not use_openmp.disabled() dep_openmp = dependency('openmp', required : get_option('openmp'))
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5c6e6be4932527d5f5bc3f52ef8b13174d88d067 commit 5c6e6be4932527d5f5bc3f52ef8b13174d88d067 Author: Matt Turner <mattst88@gentoo.org> AuthorDate: 2019-04-07 20:56:45 +0000 Commit: Matt Turner <mattst88@gentoo.org> CommitDate: 2019-04-07 20:59:22 +0000 x11-libs/pixman: Version bump to 0.38.2 Closes: https://bugs.gentoo.org/680802 Closes: https://bugs.gentoo.org/681178 Signed-off-by: Matt Turner <mattst88@gentoo.org> x11-libs/pixman/Manifest | 1 + x11-libs/pixman/pixman-0.38.2.ebuild | 59 ++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+)