Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 545662 - media-libs/libsdl2-2.0.3-r200[abi_x86_32,fusionsound] fails to build
Summary: media-libs/libsdl2-2.0.3-r200[abi_x86_32,fusionsound] fails to build
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Games (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Gentoo Games
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-04-05 23:08 UTC by kevin kaploe
Modified: 2015-04-21 04:34 UTC (History)
1 user (show)

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


Attachments
Emerge log of libsdl2 (sdl2buildlog.txt,380.85 KB, text/plain)
2015-04-05 23:11 UTC, kevin kaploe
Details

Note You need to log in before you can comment on or make changes to this bug.
Description kevin kaploe 2015-04-05 23:08:36 UTC
After the recent hard masking of the emul-linux-x86-* libraries I followed the upgrade procedure of; uninstalling all said libraries, adding =app-emulation/emul-linux-x86-xlibs-20130224-r1 to my package unmask file, putting 'ABI_X86="64 32" in my make.conf file, then rebuilding the entire world.

Everything compiles fine up to libsdl2 which barfs at the install stage complaining of
"* Header files have changed between ABIs.
 * --- /var/tmp/portage/media-libs/libsdl2-2.0.3-r200/temp/.multilib_header_cksum       2015-04-05 17:37:33.029738890 -0500
 * +++ /var/tmp/portage/media-libs/libsdl2-2.0.3-r200/temp/.multilib_header_cksum.new   2015-04-05 17:37:33.337743502 -0500
 * @@ -61,4 +61,4 @@"

Reproducible: Always

Steps to Reproduce:
1.Remove emul-linux-x86-* libraries
2.Set abi_x86_32 to on on libsdl2 and all the other packages
3.Rebuild everything else that needs it before libsdl2
4.Emerge libsdl2
Actual Results:  
Libsdl2 should error out on the install phase complaining about 'header files have changed between abi's' and 'Header checksum mismatch'

Expected Results:  
It should install cleanly and should not be complaining about the obvious that the header files are different between abi's

Portage 2.2.14 (python 3.3.5-final-0, default/linux/amd64/13.0/desktop, gcc-4.8.4, glibc-2.20-r2, 3.18.9-gentoo x86_64)
=================================================================
System uname: Linux-3.18.9-gentoo-x86_64-AMD_FX-tm-8350_Eight-Core_Processor-with-gentoo-2.2
KiB Mem:    16164884 total,   4284772 free
KiB Swap:   31249404 total,  31215336 free
Timestamp of tree: Sat, 04 Apr 2015 17:00:01 +0000
ld GNU ld (Gentoo 2.24 p1.4) 2.24
app-shells/bash:          4.2_p53
dev-java/java-config:     2.2.0
dev-lang/perl:            5.20.1-r4
dev-lang/python:          2.7.9-r1, 3.2.5-r6, 3.3.5-r1, 3.4.1
dev-util/cmake:           2.8.12.2-r1
dev-util/pkgconfig:       0.28-r1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.13.11
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6-r1, 1.12.6, 1.13.4, 1.14.1
sys-devel/binutils:       2.24-r3
sys-devel/gcc:            4.7.3-r1, 4.8.4
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.6
sys-devel/make:           4.1-r1
sys-kernel/linux-headers: 3.18 (virtual/os-headers)
sys-libs/glibc:           2.20-r2
Repositories: gentoo poly-c v-fox wdzierzan init6
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=bdver1 -pipe -mtune=bdver1"
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/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -march=bdver1 -pipe -mtune=bdver1"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs candy config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j8"
PKGDIR="/usr/portage/packages"
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"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/poly-c /var/lib/layman/v-fox /var/lib/layman/wdzierzan /var/lib/layman/init6"
USE="X a52 aac aalib acpi aiglx aim alsa amd64 berkdb branding bzip2 cairo cdda cdr cdrw cli consolekit cracklib crypt cups cxx dbus dri dts dvb dvd dvdr dvdread emboss encode exif ffmpeg ffmpeg-mt firefox flac font-server fortran g3dvl gdbm gif glamor gpm gtk gtk2 gtk3 iconv icu java joystick jpeg lcms ldap libnotify lm_sensors mad mjpeg mmx mmxext mng modules mp3 mp4 mpeg msn multilib ncurses nfs nls nptl nptlonly nsplugin ogg oggvorbis opengl openmp oss pam pango pcre pdf png pnp policykit ppds pulseaudio qt3 qt3support qt4 quicktime readline samba sdl session spell sse sse2 sse3 sse4 ssl ssse3 startup-notification svg symlink tcpd theora threads tiff truetype udev udisks unicode upower usb vcd vlc vorbis widevine win32codec wxwidgets x264 xcb xine xml xorg xpm xrandr xv xvid xvmc zlib" ABI_X86="32 64" 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="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="sse sse2 sse3 ssse3 mmx mmxext sse4_1 sse4_2 avx" ELIBC="glibc" ENLIGHTENMENT_MODULES="backlight clock comp conf-applications conf-dialogs conf-display conf-edgebindings conf-interaction conf-intl conf-keybindings conf-menus conf-paths conf-performance conf-randr conf-shelves conf-theme conf-window-manipulation conf-window-remembers connman cpufreq dropshadow everything fileman fileman-opinfo gadman ibar ibox illume2 mixer msgbus notification pager quickaccess start syscon systray tasks temperature tiling winlist wizard xkbswitch xinerama appmenu conf-comp conf-wallpaper2 music-control" 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 ublox ubx" GRUB_PLATFORMS="emu pc coreboot multiboot efi-64" INPUT_DEVICES="evdev keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="pdfimport" LINGUAS="en_US" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_1 python3_3" QEMU_SOFTMMU_TARGETS="x86_64 i386" QEMU_USER_TARGETS="i386 x86_64 ppc ppc64" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="vesa nvidia" 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"
USE_PYTHON="2.7 3.1 3.3"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, SYNC
Comment 1 kevin kaploe 2015-04-05 23:11:39 UTC
Created attachment 400640 [details]
Emerge log of libsdl2

Here is the build log of the failed package.
Comment 2 Rafał Mużyło 2015-04-06 01:05:43 UTC
First of all, ABI_X86="64 32" wasn't really a good suggestion.

How exactly does the mentioned header differ between arches ?
Comment 3 kevin kaploe 2015-04-06 01:18:35 UTC
(In reply to Rafał Mużyło from comment #2)
> First of all, ABI_X86="64 32" wasn't really a good suggestion.
> 
> How exactly does the mentioned header differ between arches ?

This is what it shows at when it fails.
 * Header files have changed between ABIs.
 * --- /var/tmp/portage/media-libs/libsdl2-2.0.3-r200/temp/.multilib_header_cksum       2015-04-05 17:37:33.029738890 -0500
 * +++ /var/tmp/portage/media-libs/libsdl2-2.0.3-r200/temp/.multilib_header_cksum.new   2015-04-05 17:37:33.337743502 -0500
 * @@ -61,4 +61,4 @@
 *  1564318214 77 /var/tmp/portage/media-libs/libsdl2-2.0.3-r200/image/usr/include/SDL2/SDL_revision.h
 *  2318915955 8147 /var/tmp/portage/media-libs/libsdl2-2.0.3-r200/image/usr/include/SDL2/SDL_joystick.h
 *  3870163112 9016 /var/tmp/portage/media-libs/libsdl2-2.0.3-r200/image/usr/include/SDL2/SDL_atomic.h
 * -3704489008 9932 /var/tmp/portage/media-libs/libsdl2-2.0.3-r200/image/usr/include/SDL2/SDL_config.h
 * +3577937069 9929 /var/tmp/portage/media-libs/libsdl2-2.0.3-r200/image/usr/include/SDL2/SDL_config.h
 * ERROR: media-libs/libsdl2-2.0.3-r200::gentoo failed (install phase):
 *   Header checksum mismatch, aborting.

I tried looking at the two config.h files it points to but its pointing to the same file but claiming two different checksums.
Comment 4 Rafał Mużyło 2015-04-06 10:35:53 UTC
> I tried looking at the two config.h files it points to but its pointing to the same file but claiming two different checksums.

That's cause you're likely looking in the install dir, instead of the build dirs.
Comment 5 kevin kaploe 2015-04-06 11:44:41 UTC
(In reply to Rafał Mużyło from comment #4)
> > I tried looking at the two config.h files it points to but its pointing to the same file but claiming two different checksums.
> 
> That's cause you're likely looking in the install dir, instead of the build
> dirs.

I am unfamiliar with how the system builds both the 32 and 64 bit versions so where would the work dir's be rather than the standard singular one in /var/tmp/portage?
Comment 6 Rafał Mużyło 2015-04-06 13:27:10 UTC
Well, for you it will be under /var/tmp/portage, just not in image/.

Just look at dirs in /var/tmp/portage/media-libs/libsdl2-2.0.3-r200/ - should be semi-obvious which dirs are the build dirs.
Comment 7 kevin kaploe 2015-04-07 00:15:17 UTC
Found it.
According to diff this is the only thing different with the package SDL_config.h file.

Hydrascale work # diff /var/tmp/portage/media-libs/libsdl2-2.0.3-r200/work/SDL2-2.0.3-abi_x86_32.x86/include/SDL_config.h /var/tmp/portage/media-libs/libsdl2-2.0.3-r200/work/SDL2-2.0.3-abi_x86_64.amd64/include/SDL_config.h 
219c219
< /* #undef SDL_AUDIO_DRIVER_FUSIONSOUND */
---
> #define SDL_AUDIO_DRIVER_FUSIONSOUND 1

And as you can see fusionsound is toggled on.
[ebuild   R    ] media-libs/libsdl2-2.0.3-r200  USE="X alsa dbus fusionsound haptic joystick opengl oss pulseaudio sound threads udev video xscreensaver (-altivec) (-custom-cflags) -gles -nas -static-libs -tslib -wayland -xinerama" ABI_X86="32* (64) (-x32)" CPU_FLAGS_X86="mmx sse sse2 -3dnow" 0 KiB
Comment 8 Rafał Mużyło 2015-04-07 12:08:47 UTC
OK, so the cause of the problem is clear - it's a combination between libSDL designand neither DirectFB nor FusionSound having a multilib ebuild...
Comment 9 kevin kaploe 2015-04-10 22:35:30 UTC
I would like to add, now that I have had time to test it. Libsdl2 builds with abi_x86_32 enabled if you disable fusionsound
Comment 10 Mr. Bones. (RETIRED) gentoo-dev 2015-04-21 04:34:11 UTC
masked the fusionsound use flag.  If any of the deps ever gain multilib support, please open a new bug.