Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 426936 - dev-util/cmake does not search libx32 directories (was media-libs/phonon-4.6.0-r1 fails to build for x32 ABI)
Summary: dev-util/cmake does not search libx32 directories (was media-libs/phonon-4.6....
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal with 1 vote (vote)
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords:
: 595508 602246 615404 618084 (view as bug list)
Depends on:
Blocks: x32
  Show dependency tree
 
Reported: 2012-07-17 04:04 UTC by devsk
Modified: 2017-11-10 07:20 UTC (History)
8 users (show)

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


Attachments
build.log (build.log,4.80 KB, text/plain)
2012-07-17 04:07 UTC, devsk
Details
libqtxdg build.log (file_426936.txt,4.27 KB, text/plain)
2016-02-24 12:47 UTC, Dainius Masiliūnas
Details
kde-frameworks/kwindowsystem build.log (file_426936.txt,109.70 KB, text/plain)
2016-02-24 13:37 UTC, Dainius Masiliūnas
Details
0001-Teach-find_library-and-find_package-to-search-lib32.patch (0001-Teach-find_library-and-find_package-to-search-lib32-.patch,23.27 KB, patch)
2016-10-08 15:20 UTC, EoD
Details | Diff
0002-Specify-custom-lib-suffix.patch (0002-Specify-custom-lib-suffix.patch,5.93 KB, patch)
2016-10-08 15:22 UTC, EoD
Details | Diff
cmake 3.7 find_library custom lib suffix (from upstream) (cmake-3.7-find_library-custom-lib-suffix.patch,9.98 KB, patch)
2017-03-03 18:23 UTC, EoD
Details | Diff
portage cmake-utils.eclass patch (cmake-utils-custom-lib.patch,766 bytes, patch)
2017-03-03 18:25 UTC, EoD
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description devsk 2012-07-17 04:04:58 UTC
CMake Error at cmake/FindPackageHandleStandardArgs.cmake:53 (MESSAGE):
  Did not find automoc4 (Automoc4Config.cmake, part of kdesupport).
Call Stack (most recent call first):
  cmake/FindAutomoc4.cmake:56 (find_package_handle_standard_args)
  cmake/FindPhononInternal.cmake:77 (find_package)
  CMakeLists.txt:32 (include)


-- Configuring incomplete, errors occurred!
 * ERROR: media-libs/phonon-4.6.0-r1 failed (configure phase):
 *   cmake failed
 *
 * Call stack:
 *     ebuild.sh, line   85:  Called src_configure
 *   environment, line 2784:  Called cmake-utils_src_configure
 *   environment, line  777:  Called _execute_optionaly 'src_configure'
 *   environment, line  299:  Called enable_cmake-utils_src_configure
 *   environment, line 1078:  Called die
 * The specific snippet of code:
 *       "${CMAKE_BINARY}" "${cmakeargs[@]}" "${CMAKE_USE_DIR}" || die "cmake failed";
 *
 * If you need support, post the output of `emerge --info '=media-libs/phonon-4.6.0-r1'`,
 * the complete build log and the output of `emerge -pqv '=media-libs/phonon-4.6.0-r1'`.
 * The complete build log is located at '/var/tmp/portage/media-libs/phonon-4.6.0-r1/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/media-libs/phonon-4.6.0-r1/temp/environment'.
 * Working directory: '/var/tmp/portage/media-libs/phonon-4.6.0-r1/work/phonon-4.6.0_build'
 * S: '/var/tmp/portage/media-libs/phonon-4.6.0-r1/work/phonon-4.6.0'

Reproducible: Always




# emerge --info
Portage 2.2.0_alpha116 (default/linux/amd64/10.0/x32, gcc-4.7.1, glibc-2.16.0, 3.4.4 x86_64)
=================================================================
System uname: Linux-3.4.4-x86_64-Intel-R-_Core-TM-_i7_CPU_920_@_2.67GHz-with-gentoo-2.1
Timestamp of tree: Wed, 11 Jul 2012 02:15:01 +0000
ccache version 3.1.7 [enabled]
app-shells/bash:          4.2_p29
dev-java/java-config:     2.1.12
dev-lang/python:          2.7.3-r2, 3.2.3-r1
dev-util/ccache:          3.1.7
dev-util/cmake:           2.8.8-r3
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.1-r1
sys-apps/openrc:          0.10.5
sys-apps/sandbox:         2.6
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.9.6-r3, 1.11.6, 1.12.2
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            4.7.1
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r3
sys-kernel/linux-headers: 3.4-r1 (virtual/os-headers)
sys-libs/glibc:           2.16.0
Repositories: gentoo mylocal vmware mozilla lcd-filtering
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA skype-4.0.0.7-copyright Broadcom PUEL dlj-1.1 skype-eula AdobeFlash-10 AdobeFlash-10.1 google-talkplugin Oracle-BCLA-JavaSE google-chrome AdobeFlash-10.3"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=native -fforce-addr -fomit-frame-pointer -pipe -ftracer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /etc/hibernate /etc/udev/rules.d /etc/vmware /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/hddtemp /var/bind /var/lib/hsqldb"
CONFIG_PROTECT_MASK="${EPREFIX}/etc/gconf /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/splash /etc/terminfo"
CXXFLAGS="-O2 -march=native -fforce-addr -fomit-frame-pointer -pipe -ftracer"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--nospinner --keep-going --jobs=12 --load-average=12 --accept-properties=-interactive --with-bdeps=y"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs ccache collision-protect config-protect-if-modified distlocks fixlafiles multilib-strict news nodoc parallel-fetch parallel-install parse-eapi-ebuild-head preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="ftp://mirrors.tds.net/gentoo http://gentoo.chem.wisc.edu/gentoo/ http://gentoo.llarian.net/ http://gentoo.mirrors.easynews.com/linux/gentoo/ http://gentoo.llarian.net/ http://ftp.ucsb.edu/pub/mirrors/linux/gentoo/ ftp://gentoo.mirrors.pair.com/"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-O1 -Wl,--enable-new-dtags -Wl,--as-needed -Wl,--hash-style=gnu -Wl,-O1 -Wl,--enable-new-dtags -Wl,--as-needed -Wl,--hash-style=gnu"
LINGUAS="en"
MAKEOPTS="-j12 -l12"
PKGDIR="/mnt/portage/bin-packages/x64"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--exclude=/lost+found"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/private/portage/overlay /var/lib/layman/vmware /var/lib/layman/mozilla /var/lib/layman/lcd-filtering"
SYNC="rsync://gentoo.llarian.net/gentoo-portage"
USE="X a52 aac acl acpi aim aio alsa amd64 audiofile avahi bash-completion binary-drivers bittorrent bluray bzip2 cairo cdda cdparanoia cdr chm cli composite cracklib crypt cscope css cups curl cvs cxx dar64 dbus device-mapper dga dhclient directfb divx djbfft djvu dlna dmraid dri dts dv dvd dvdnav dvdr dvdread ebook emerald encode erandom evo exif expat faac faad fam fame fbcon fbsplash ffmpeg flac freetype fuse gb gd gif gimp gimpprint glitz glut gmail gmplayer gnome gnutls gphoto2gtk gpm graphite gtk+ gtk2 gtk3 hddtemp history hpn iconv id3tag ieee1394 imagemagick imap imlib inotify ipod ipv6 jack javascript jikes jingle jpeg jpeg2k kde kdeenablefinal kdehiddenvisibility kqemu kvm lame lcdfilter lcms ldap libcaca libmms libnotify libsamplerate lightning lirc live lm_sensors logitech-mouse logrotate lto lvm lzma lzo lzw lzw-tiff mad matroska md md5sum mdnsresponder-compat mikmod mjpeg mmap mmx mmx2 mmxext mng mod modules moznopango mozsvg mp2 mp3 mp4 mpeg mplayer msn mudflap multilib musicbrainz nautilus ncurses nepomuk nfs nocd nodot nodrm nomalloccheck nptl nptlonly nsplugin ntfs nut nvidia ogg ogm openexr opengl openmp oss pam parted pcre pda pdf phyp pic plotutils png policykit pop ppds pppd pulseaudio pvr pwdb python3 qt qt4 quicktime radeon radio rar rdesktop readline realmedia rplay rtc samba sasl sdl semantic-desktop sensord server session slp smp sna sndfile sqlite srt sse sse2 sse3 ssl startup-notification stencil-buffer strokesvg svg swat sysfs syslog tcl tcpd theora threads tiff tk truetype twolame udev urandom usb userlocales v41 v4l v4l2 vde vdpau vim vnc vorbis vpx wma wmf wmp x264 xanim xattr xcb xcomposite xft xine xml2 xmms xorg xpm xprint xrandr xulrunner xv xvid xvmc yv12 zeroconf zlib" ALSA_CARDS="hda-intel intel8x0 intel8x0m ens1371 emu10k1x" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="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="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="canon panasonic kodak minolta konica" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DRACUT_MODULES="btrfs crypt dmraid gensplash mdraid dmsquash-live" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en" LIRC_DEVICES="hauppauge" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="intel nvidia nv fbdev vesa vga nouveau" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, USE_PYTHON
Comment 1 devsk 2012-07-17 04:07:12 UTC
Created attachment 318404 [details]
build.log

It seems to be failing to find automoc4 but automoc4 is already there.

# q files automoc
/usr/libx32/automoc4/automoc4.files.in
/usr/libx32/automoc4/Automoc4Version.cmake
/usr/libx32/automoc4/Automoc4Config.cmake
/usr/bin/automoc4

Is this thing looking for hardcoded path of /usr/lib/automoc4/Automoc4Config.cmake? Is that the issue?
Comment 2 devsk 2012-07-17 04:11:17 UTC
Indeed that's the issue. I created a symlink for automoc4 in /usr/lib/ and build proceeds further.
Comment 3 devsk 2012-07-17 04:18:51 UTC
and it builds and installs fine after this.
Comment 4 Michael Palimaka (kensington) gentoo-dev 2012-12-12 13:18:02 UTC
(In reply to comment #1)
> Is this thing looking for hardcoded path of
> /usr/lib/automoc4/Automoc4Config.cmake? Is that the issue?

Indeed, and it works on plain amd64 because /usr/lib is a symlink to /usr/lib64.
Comment 5 Michael Palimaka (kensington) gentoo-dev 2012-12-12 14:14:10 UTC
This is an issue with CMake not searching the correct directories. I have prepared an initial patch and will seek some feedback from upstream.
Comment 6 Tolga Dalman 2013-06-04 19:42:09 UTC
Michael, have you sent an upstream request for this issue already ?
Comment 7 Michael Palimaka (kensington) gentoo-dev 2013-06-05 08:10:54 UTC
(In reply to Tolga Dalman from comment #6)
> Michael, have you sent an upstream request for this issue already ?

I thought I did, but I can't find anything so I guess not.

We did apply this patch[1], but I don't remember if that's relevant or not.


[1]: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-util/cmake/files/cmake-2.8.10-more-no_host_paths.patch
Comment 8 Luke-Jr 2014-04-03 09:09:02 UTC
phonon overrides the system FindPackageHandleStandardArgs.cmake ... not sure this is cmake's fault after all?
Comment 9 Luke-Jr 2014-04-05 01:55:07 UTC
Potential workaround: phonon builds if you export CMAKE_PREFIX_PATH=/usr/libx32
Comment 10 Dainius Masiliūnas 2016-02-23 12:53:04 UTC
I can confirm this issue when building cmake-3.3.1-r1. It fails to find its own libraries.

I can also confirm the workaround in Comment #9. It works to build cmake properly itself.

However, there is still a problem for packages like SDDM, which can't find /usr/libx32/cmake/Qt5Core and other CMake modules. For those, the paths have to be given manually while emerging too, such as Qt5Core_DIR="/usr/libx32/cmake/Qt5Core", repeated for every dependent package. It's doable, but quite annoying.
Comment 11 Dainius Masiliūnas 2016-02-24 12:47:19 UTC
Created attachment 426408 [details]
libqtxdg build.log

Here's an example of such build failure. This seems to happen with pretty much any cmake package that requires Qt (and possibly any other packages that ship their own cmake modules).

This one can be worked around by using:
Qt5Widgets_DIR=/usr/libx32/cmake/Qt5Widgets Qt5Xml_DIR=/usr/libx32/cmake/Qt5Xml Qt5DBus_DIR=/usr/libx32/cmake/Qt5DBus emerge libqtxdg
Comment 12 Dainius Masiliūnas 2016-02-24 13:37:11 UTC
Created attachment 426418 [details]
kde-frameworks/kwindowsystem build.log

Here's another example, this time a link failure: cmake finds the ABI=64 version of the library before it finds the ABI=x32 version of the file, and then tries to link it, of course unsuccessfully.

Here the workaround is like when building cmake itself: CMAKE_PREFIX_PATH=/usr/libx32
Comment 13 Dainius Masiliūnas 2016-02-26 19:58:50 UTC
As a side-note, app-text/poppler, upon not finding Qt5 due to this bug, silently falls back to -qt5. That breaks everything that depends on poppler[qt5], because portage is not aware of that.
I'm pretty sure that such silent fallbacks are undesirable, but I'm not sure if this warrants opening a bug against poppler?
Comment 14 Steven Newbury 2016-02-29 16:57:56 UTC
Upstream bug: https://cmake.org/Bug/view.php?id=15994
Comment 15 SpanKY gentoo-dev 2016-04-05 13:59:29 UTC

*** This bug has been marked as a duplicate of bug 338492 ***
Comment 16 SpanKY gentoo-dev 2016-06-12 17:55:14 UTC
going to re-open as upstream decided to just "fix" the lib32 case
Comment 17 Dainius Masiliūnas 2016-07-27 20:24:43 UTC
I opened a new upstream bug at: https://gitlab.kitware.com/cmake/cmake/issues/16216
Comment 18 Dainius Masiliūnas 2016-07-28 14:56:12 UTC
Turns out they migrated all issues from Mantis anyway, so the actual issue is now at: https://gitlab.kitware.com/cmake/cmake/issues/15994
Comment 19 EoD 2016-10-08 15:20:12 UTC
Created attachment 449564 [details, diff]
0001-Teach-find_library-and-find_package-to-search-lib32.patch
Comment 20 EoD 2016-10-08 15:22:16 UTC
Created attachment 449566 [details, diff]
0002-Specify-custom-lib-suffix.patch

I found a patch on the cmake ML which allows setting libx32 manually: http://public.kitware.com/pipermail/cmake-developers/2016-June/028646.html

I backported the patch (and its predecessor "Teach find_library and find_package to search lib32 paths" to 3.5.2.

Additionally to the patch, I added the following line to cmake-utils.eclass in order to make it work:
> --- /a/usr/portage/eclass/cmake-utils.eclass      2016-10-08 12:13:06.000000000
> +++ /b/usr/portage/eclass/cmake-utils.eclass      2016-10-08 14:27:15.499299864
> @@ -595,4 +595,5 @@
>        cat > "${common_config}" <<- _EOF_ || die
>                SET (LIB_SUFFIX ${libdir/lib} CACHE STRING "library path suffix" FORCE)
> +              SET (FIND_LIBRARY_USE_CUSTOM_SUFFIX TRUE CACHE BOOL "force usage of LIB_SUFFIX as lib search path" FORCE)
>                SET (CMAKE_INSTALL_LIBDIR ${libdir} CACHE PATH "Output directory for libraries")
>        _EOF_

This seems to fix building llvm-3.9.0 and llvm-9999 on my x32 mulitlib system.
Comment 21 Steven Newbury 2017-03-02 18:26:15 UTC
I'm currently working to get x32 support upstreamed:
https://gitlab.kitware.com/cmake/cmake/merge_requests/532
Comment 22 EoD 2017-03-03 17:29:07 UTC
(In reply to Steven Newbury from comment #21)
> I'm currently working to get x32 support upstreamed:
> https://gitlab.kitware.com/cmake/cmake/merge_requests/532

interesting! Your thread also says that a variant of my attached patch here has been merged to master in https://gitlab.kitware.com/cmake/cmake/commit/503f25d490e56dfc1d3dc894e1fc1bd3e7e89e81
I will try to rebase it on top of 3.7 and add it to the bugtracker.
Comment 23 EoD 2017-03-03 18:23:47 UTC
Created attachment 465848 [details, diff]
cmake 3.7 find_library custom lib suffix (from upstream)

A copy of the upstream patch. It can directly be applied on 3.7.2: https://gitlab.kitware.com/cmake/cmake/commit/503f25d490e56dfc1d3dc894e1fc1bd3e7e89e81.patch
Comment 24 EoD 2017-03-03 18:25:42 UTC
Created attachment 465850 [details, diff]
portage cmake-utils.eclass patch

With this patch for portage and the "custom lib suffix" patch, I was able to successfully build sys-devel/llvm-3.9.1 on my x32 multilib system.
Comment 25 EoD 2017-03-13 13:22:49 UTC
There are two new files in the portage tree, which contain the two x32 patches from upstream.

New files:
dev-util/cmake/cmake-3.7.2-r10.ebuild
dev-util/cmake/files/cmake-3.7.2-x32.patch

Patches:
https://gitlab.kitware.com/cmake/cmake/merge_requests/532
https://gitlab.kitware.com/cmake/cmake/merge_requests/533
Comment 26 Dainius Masiliūnas 2017-05-11 07:26:04 UTC
I can confirm that cmake-3.7.2-r10 works, at least for building some of the KF5 packages. I'm still in the middle of rebuilding my system, so we'll see if any issues crop up, but overall it's looking good.

Mind you, the patch is not in the cmake-3.8.1 ebuild, and that one doesn't work. I take it the patch was integrated into mainline CMake for 3.9?
Comment 27 EoD 2017-05-11 08:23:33 UTC
(In reply to Dainius Masiliūnas from comment #26)
> I can confirm that cmake-3.7.2-r10 works, at least for building some of the
> KF5 packages. I'm still in the middle of rebuilding my system, so we'll see
> if any issues crop up, but overall it's looking good.
> 
> Mind you, the patch is not in the cmake-3.8.1 ebuild, and that one doesn't
> work. I take it the patch was integrated into mainline CMake for 3.9?

It seems that both patches are only in cmake 3.9+, so we also need to apply those patches to 3.8.x. 

As both patches could be applied on top of 3.7 without changes, I guess they could also be applied on top of 3.8. Did you try adding those patches to the cmake-3.8.1 ebuild?
Comment 28 Dainius Masiliūnas 2017-05-11 08:59:39 UTC
Not yet. I don't have much time left to deal with the x32 device at the moment, so I'll stick with 3.7.2 for the time being, making sure it works properly for all the packages I have.
Comment 29 Dainius Masiliūnas 2017-05-13 14:54:15 UTC
For what it's worth, cmake-3.7.2-r10 managed to compile everything I threw at it (KF5, LXQt, etc.). So indeed it should also work if the patch is ported to 3.8 and with vanilla 3.9.
Comment 30 Michael Palimaka (kensington) gentoo-dev 2017-06-24 15:03:55 UTC
*** Bug 595508 has been marked as a duplicate of this bug. ***
Comment 31 Michael Palimaka (kensington) gentoo-dev 2017-06-24 15:04:18 UTC
*** Bug 602246 has been marked as a duplicate of this bug. ***
Comment 32 Michael Palimaka (kensington) gentoo-dev 2017-06-24 15:04:51 UTC
*** Bug 615404 has been marked as a duplicate of this bug. ***
Comment 33 Michael Palimaka (kensington) gentoo-dev 2017-06-24 15:05:53 UTC
The 3.9.0 RCs are in the tree (unkeyworded) which should fix this.
Comment 34 Dainius Masiliūnas 2017-07-09 18:34:56 UTC
I tried to test this but got hit by bug #624354. Might want to put that bug as a dependency of this one. But the patch indeed works as-is on CMake 3.8 without problems.
Comment 35 Michael Palimaka (kensington) gentoo-dev 2017-08-05 07:20:31 UTC
3.9.0 is in the tree now which should fix this.
Comment 36 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2017-11-10 07:20:35 UTC
*** Bug 618084 has been marked as a duplicate of this bug. ***