Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 577306 - app-emulation/wine-1.9.5 fails pre-merge checks with undefined reference to "main"
Summary: app-emulation/wine-1.9.5 fails pre-merge checks with undefined reference to "...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Wine Maintainers
URL:
Whiteboard:
Keywords:
: 577304 577352 (view as bug list)
Depends on:
Blocks:
 
Reported: 2016-03-13 14:14 UTC by Marco Napetti
Modified: 2016-03-18 13:47 UTC (History)
2 users (show)

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


Attachments
wine-1.9.5-premerge-fix.patch (premerge-fix.patch,623 bytes, patch)
2016-03-13 17:41 UTC, Joakim Gebart Nohlgård
Details | Diff
pr69140-test-file.patch (pr69140-test-file.patch,466 bytes, patch)
2016-03-13 22:56 UTC, Bob Wya
Details | Diff
wine-1.9.5-pr69140-test-ebuild.patch (wine-1.9.5-pr69140-test-ebuild.patch,627 bytes, patch)
2016-03-13 23:04 UTC, Bob Wya
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Marco Napetti 2016-03-13 14:14:25 UTC
I don't know if it's a clone of https://bugs.gentoo.org/show_bug.cgi?id=574044
but, since today, app-emulation/wine fails pre-merge checks with:

>>> Running pre-merge checks for app-emulation/wine-1.9.5
 * Checking for gcc-5-3 stack realignment compiler bug ...
/usr/lib/gcc/x86_64-pc-linux-gnu/5.3.0/../../../../lib64/crt1.o: in function "_start":
(.text+0x20): undefined reference to "main"
collect2: error: ld returned 1 exit status
 * ERROR: app-emulation/wine-1.9.5::gentoo failed (pretend phase):
 *   (no error message)
 * 
 * Call stack:
 *           ebuild.sh, line 133:  Called pkg_pretend
 *   wine-1.9.5.ebuild, line 206:  Called wine_build_environment_check
 *   wine-1.9.5.ebuild, line 179:  Called die
 * The specific snippet of code:
 *              $(tc-getCC) -O2 "${FILESDIR}"/pr69140.c -o "${T}"/pr69140 || die

emerge --info app-emulation/wine
Portage 2.2.28 (python 3.4.3-final-0, default/linux/amd64/13.0/desktop/plasma, gcc-5.3.0, glibc-2.22-r2, 4.4.4-gentoo x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-4.4.4-gentoo-x86_64-AMD_Athlon-tm-_64_X2_Dual_Core_Processor_6000+-with-gentoo-2.2
KiB Mem:     2055376 total,    357228 free
KiB Swap:    8393924 total,   7628076 free
Timestamp of repository gentoo: Sun, 13 Mar 2016 11:30:01 +0000
sh bash 4.3_p42-r2
ld ld di GNU (Gentoo 2.25.1 p1.1) 2.25.1
app-shells/bash:          4.3_p42-r2::gentoo
dev-java/java-config:     2.2.0-r3::gentoo
dev-lang/perl:            5.22.1::gentoo
dev-lang/python:          2.7.11-r2::gentoo, 3.4.3-r7::gentoo
dev-util/cmake:           3.5.0::gentoo
dev-util/pkgconfig:       0.29.1::gentoo
sys-apps/baselayout:      2.2::gentoo
sys-apps/openrc:          0.20.5::gentoo
sys-apps/sandbox:         2.10-r1::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69-r2::gentoo
sys-devel/automake:       1.11.6-r2::gentoo, 1.14.1-r1::gentoo, 1.15-r2::gentoo
sys-devel/binutils:       2.25.1-r1::gentoo
sys-devel/gcc:            5.3.0::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6-r2::gentoo
sys-devel/make:           4.1-r1::gentoo
sys-kernel/linux-headers: 4.4::gentoo (virtual/os-headers)
sys-libs/glibc:           2.22-r2::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000

x-portage
    location: /usr/local/portage
    masters: gentoo
    priority: 0

axs
    location: /var/lib/layman/axs
    sync-type: laymansync
    sync-uri: git://anongit.gentoo.org/dev/axs.git
    masters: gentoo axs
    priority: 50

bliss-overlay
    location: /var/lib/layman/bliss-overlay
    sync-type: laymansync
    sync-uri: https://github.com/fearedbliss/bliss-overlay.git
    masters: gentoo
    priority: 50

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

steam-overlay
    location: /var/lib/layman/steam-overlay
    sync-type: laymansync
    sync-uri: git://github.com/anyc/steam-overlay.git
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA skype-4.0.0.7-copyright AdobeFlash-11.x google-chrome Oracle-BCLA-JavaSE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -pipe -O2"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /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.0/ext-active/ /etc/php/cgi-php7.0/ext-active/ /etc/php/cli-php7.0/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -pipe -O2"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps=y --quiet-build=y"
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 xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="it_IT.UTF-8"
LC_ALL="it_IT.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j3"
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 --exclude=/.git"
PORTAGE_TMPDIR="/home/portage"
USE="X a52 aac acl acpi alsa amd64 berkdb bluetooth branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus declarative dri dts dvd dvdr emboss encode exif fam firefox flac fortran gdbm gif glamor gpm gtk iconv ipv6 jpeg kipi lcms ldap libnotify mad mmx mmxext mng modules mp3 mp4 mpeg multilib ncurses nls nptl ogg opengl openmp pam pango pcre pdf phonon plasma png policykit ppds qml qt3support qt5 readline sdl seccomp semantic-desktop session spell sse sse2 ssl startup-notification svg tcpd tiff truetype udev udisks unicode upower usb vorbis widgets wxwidgets x264 xattr xcb xcomposite xinerama xml xscreensaver xv xvid zlib" ABI_X86="64 32" ALSA_CARDS="emu10k1" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_core authn_dbd authn_dbm authn_default authn_file authz_dbm authz_core authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif slotmem_shm so speling status socache_shmcb unique_id unixd userdir usertrack vhost_alias" APACHE2_MPMS="worker" 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="3dnow 3dnowext mmx mmxext sse sse2 sse3" DVB_CARDS="tda10046" 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 ublox ubx" GRUB_PLATFORMS="pc" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="it" LIRC_DEVICES="livedrive_midi" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4" RUBY_TARGETS="ruby20 ruby23" SANE_BACKENDS="epson2" USERLAND="GNU" VIDEO_CARDS="radeon r600" 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:  CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

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

app-emulation/wine-1.8::gentoo was built with the following:
USE="X alsa cups fontconfig gecko jpeg lcms ldap mono mp3 ncurses nls opengl perl png realtime run-exes ssl threads truetype udisks xcomposite xinerama xml -capi -custom-cflags -dos -gphoto2 -gsm -gstreamer -netapi -odbc -openal -opencl -osmesa -oss -pcap -pipelight -prelink -pulseaudio -s3tc -samba -scanner (-selinux) -staging -test -v4l -vaapi" ABI_X86="32 64 -x32" LINGUAS="it -ar -bg -ca -cs -da -de -el -en -en_US -eo -es -fa -fi -fr -he -hi -hr -hu -ja -ko -lt -ml -nb_NO -nl -or -pa -pl -pt_BR -pt_PT -rm -ro -ru -sk -sl -sr_RS@cyrillic -sr_RS@latin -sv -te -th -tr -uk -wa -zh_CN -zh_TW"
Comment 1 Kenton Groombridge 2016-03-13 15:25:25 UTC
Both my AMD and Intel systems have this same issue.
Comment 2 Joakim Gebart Nohlgård 2016-03-13 17:41:04 UTC
Created attachment 428140 [details, diff]
wine-1.9.5-premerge-fix.patch

This ebuild patch fixes the problem with the premerge check.
Comment 3 Benjamin Réveillé 2016-03-13 19:56:16 UTC
That patch does not work because of the subsequent tests it does not correct...

if ! ( "${T}"/69140 || false ) >/dev/null 2>&1; then


First with the original code it should have been : "${T}"/pr69140 (the "pr" was missing)

Now it should be : "${T}"/pr69140.o (added .o)

Unfortunately a .o is not executable so the test always fails I think... so the test is useless...


I saw the errors, but do not know how to correct them...
Comment 4 Bob Wya 2016-03-13 22:56:43 UTC
Created attachment 428156 [details, diff]
pr69140-test-file.patch

Add some crap the pr69140 test to make it compile. Yeah C programs generally need a main() function somewhere :-)
Comment 5 Bob Wya 2016-03-13 23:04:15 UTC
Created attachment 428158 [details, diff]
wine-1.9.5-pr69140-test-ebuild.patch

Patch the stock Gentoo =app-emulation/wine-1.9.5 ebuild to test for a COMPILE TIME failure in the pr69140 MD4 test code... NOT a runtime failure!!

I've not tested these patches at all (disclaimer!!) ... But obviously the updated pr69140 test does "successfully fail" with my (unpatched) stock =sys-devel-gcc-5.3.0 build !!

I can't really be bothered to spend an hour rebuilding my gcc - but feel free to try the 2 patches out (*IF* you've already *PATCHED* your gcc 5.3.0 build) ...

Bedtime 8-/
Comment 6 SpanKY gentoo-dev 2016-03-14 06:12:56 UTC
*** Bug 577304 has been marked as a duplicate of this bug. ***
Comment 7 SpanKY gentoo-dev 2016-03-14 06:13:05 UTC
*** Bug 577352 has been marked as a duplicate of this bug. ***
Comment 8 Adam Feldman gentoo-dev 2016-03-14 06:38:02 UTC
Thanks Bob!  MVP :)

e08eca66f56c895a137a1a7e6cf554d50084c925
Comment 9 Bob Wya 2016-03-14 08:11:19 UTC
(In reply to NP-Hardass from comment #8)
> Thanks Bob!  MVP :)
> 
> e08eca66f56c895a137a1a7e6cf554d50084c925

np :-/
Comment 10 Bob Wya 2016-03-14 08:42:21 UTC
(In reply to NP-Hardass from comment #8)
> Thanks Bob!  MVP :)
> 
> e08eca66f56c895a137a1a7e6cf554d50084c925

Ahhh... But - now I've just checked... You've not added this test to older versions of Wine (<1.9.3) - but they are just as affected by this gcc bug!

The Wine commit that caused the problem in the first place was:
http://source.winehq.org/git/wine.git/blobdiff/71f018cba5191d99fbda8d3b9a25ccd6e422a8c9..dccb57dfd9c668eff5e672def93405be8a3303bd:/include/windef.h

All that commit does is add the force_align_arg_pointer attribute to the stock Wine build flags.

To replicate the issue (on amd64):
attempt to build <app-emulation/wine versions-1.9.3:
use stock / unpatched version of =sys-devel/gcc-5.3.0
with USE +custom-cflags
CFLAGS+="-mstackrealign"
Comment 11 Adam Feldman gentoo-dev 2016-03-14 16:59:54 UTC
(In reply to Bob Wya from comment #10)
> (In reply to NP-Hardass from comment #8)
> > Thanks Bob!  MVP :)
> > 
> > e08eca66f56c895a137a1a7e6cf554d50084c925
> 
> Ahhh... But - now I've just checked... You've not added this test to older
> versions of Wine (<1.9.3) - but they are just as affected by this gcc bug!
> 
> The Wine commit that caused the problem in the first place was:
> http://source.winehq.org/git/wine.git/blobdiff/
> 71f018cba5191d99fbda8d3b9a25ccd6e422a8c9..
> dccb57dfd9c668eff5e672def93405be8a3303bd:/include/windef.h
> 
> All that commit does is add the force_align_arg_pointer attribute to the
> stock Wine build flags.
> 
> To replicate the issue (on amd64):
> attempt to build <app-emulation/wine versions-1.9.3:
> use stock / unpatched version of =sys-devel/gcc-5.3.0
> with USE +custom-cflags
> CFLAGS+="-mstackrealign"

I'll apply across the board.
Comment 12 Bob Wya 2016-03-14 22:11:35 UTC
> 
> I'll apply across the board.

OK thanks! ;-)
Comment 13 Sven Eden 2016-03-18 13:47:51 UTC
I have added the gcc patches linked in bug 574044 Comment 13 to /etc/portage/patches/sys-devel/gcc-5.3.0 and have rebuilt gcc.

And now, with the current wine-1.9.5 ebuild, the merge goes through just fine.