Bug 131274

Summary: ERROR: net-libs/webkit-gtk-2.4.0::gnome-next failed (compile phase)
Product: WebKit Reporter: renato gallo <renatogallo>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: RESOLVED INVALID    
Severity: Blocker CC: berto, cgarcia, fatzer2, gnome, kwanhong.lee, mcatanzaro, pnormand, sherlockholmesthegamechanger, zan
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Other   
OS: Linux   

Description renato gallo 2014-04-05 17:47:02 PDT
/bin/sh ./libtool  --tag=CC   --mode=link x86_64-pc-linux-gnu-gcc -ansi -fno-strict-aliasing  -D_REENTRANT -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/directfb -I/usr/include/libdrm -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/harfbuzz  -I/usr/include/harfbuzz  -D_REENTRANT -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  -pthread -I/usr/include/libsoup-2.4 -I/usr/include/libxml2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  -O2 -pipe -pthread -std=c99  -D_FORTIFY_SOURCE=2 -no-install -Wl,-O1 -Wl,--as-needed -Wl,--no-keep-memory -Wl,--no-demangle -o Programs/GtkLauncher Tools/GtkLauncher/Programs_GtkLauncher-LauncherInspectorWindow.o Tools/GtkLauncher/Programs_GtkLauncher-main.o libwebkitgtk-3.0.la libjavascriptcoregtk-3.0.la -lcairo -lfontconfig -lfreetype -lharfbuzz  -lharfbuzz-icu -lharfbuzz  -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0  -Wl,--export-dynamic -lgmodule-2.0 -pthread -lgthread-2.0 -pthread -lgio-2.0 -lgobject-2.0 -lglib-2.0  -lsoup-2.4 -lgio-2.0 -lgobject-2.0 -lglib-2.0   -lgstapp-1.0 -lgstaudio-1.0 -lgstfft-1.0 -lm -lgstpbutils-1.0 -lgstvideo-1.0 -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0  -lrt 
libtool: link: x86_64-pc-linux-gnu-gcc -ansi -fno-strict-aliasing -D_REENTRANT -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/directfb -I/usr/include/libdrm -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/harfbuzz -D_REENTRANT -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/libsoup-2.4 -I/usr/include/libxml2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -O2 -pipe -pthread -std=c99 -D_FORTIFY_SOURCE=2 -Wl,-O1 -Wl,--no-keep-memory -Wl,--no-demangle -o Programs/GtkLauncher Tools/GtkLauncher/Programs_GtkLauncher-LauncherInspectorWindow.o Tools/GtkLauncher/Programs_GtkLauncher-main.o -Wl,--export-dynamic -pthread -pthread  -Wl,--as-needed ./.libs/libwebkitgtk-3.0.so -L/usr/lib64 /var/tmp/portage/net-libs/webkit-gtk-2.4.0/work/webkitgtk-2.4.0/.libs/libjavascriptcoregtk-3.0.so -lenchant -lgeoclue -ldbus-glib-1 -ldbus-1 -ljpeg -lsecret-1 -lxslt -lxml2 -lGL -lEGL -ldl -lpangoft2-1.0 -lpng16 -lsqlite3 -lwebp -lXcomposite -lXdamage -lXfixes -lXrender -lXt -lX11 ./.libs/libjavascriptcoregtk-3.0.so -lpthread -lz -licui18n -licuuc -licudata -lfontconfig -lfreetype -lharfbuzz-icu -lharfbuzz -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgmodule-2.0 -lgthread-2.0 -lsoup-2.4 -lgio-2.0 -lgstapp-1.0 -lgstaudio-1.0 -lgstfft-1.0 -lm -lgstpbutils-1.0 -lgstvideo-1.0 -lgstbase-1.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0 -lrt -pthread -Wl,-rpath -Wl,/var/tmp/portage/net-libs/webkit-gtk-2.4.0/work/webkitgtk-2.4.0/.libs
./.libs/libwebkitgtk-3.0.so: undefined reference to `_ZNSt6chrono12steady_clock3nowEv@GLIBCXX_3.4.17'
collect2: error: ld returned 1 exit status
GNUmakefile:40536: recipe for target 'Programs/GtkLauncher' failed
make[1]: *** [Programs/GtkLauncher] Error 1
make[1]: Leaving directory '/var/tmp/portage/net-libs/webkit-gtk-2.4.0/work/webkitgtk-2.4.0'
GNUmakefile:25688: recipe for target 'all' failed
make: *** [all] Error 2
Comment 1 renato gallo 2014-04-05 17:47:46 PDT
SYSTEM INFOS


Portage 2.2.10 (default/linux/amd64/13.0/desktop/gnome/systemd, gcc-4.7.3, glibc-2.19, 3.14.0-gentoo x86_64)
=================================================================
System uname: Linux-3.14.0-gentoo-x86_64-Intel-R-_Core-TM-_i7_CPU_M_640_@_2.80GHz-with-gentoo-2.2
KiB Mem:     3908552 total,    616684 free
KiB Swap:   16777212 total,  14900812 free
Timestamp of tree: Thu, 03 Apr 2014 04:45:02 +0000
ld GNU ld (GNU Binutils) 2.24
app-shells/bash:          4.2_p46-r1
dev-java/java-config:     2.2.0
dev-lang/python:          2.6.9, 2.7.6, 3.3.5, 3.4.0
dev-util/cmake:           2.8.12.2
dev-util/pkgconfig:       0.28-r1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6, 1.12.6, 1.13.4, 1.14.1
sys-devel/binutils:       2.24-r2
sys-devel/gcc:            4.7.3-r1, 4.8.2
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2
sys-devel/make:           4.0-r1
sys-kernel/linux-headers: 3.14 (virtual/os-headers)
sys-libs/glibc:           2.19
Repositories: gentoo x11 viprea-overlay gnome-next
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/easy-rsa /usr/share/gnupg/qualified.txt /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs 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="ftp://ftp.heanet.ie/pub/gentoo/ http://ftp.heanet.ie/pub/gentoo/ rsync://ftp.heanet.ie/pub/gentoo/"
LANG="en_us.UTF-8"
LC_ALL="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
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/x11 /var/lib/layman/viprea-overlay /var/lib/layman/gnome-next"
SYNC="rsync://rsync.ie.gentoo.org/gentoo-portage"
USE="X a52 aac aalib acl acpi alsa amd64 apache2 atmo autoipd avahi berkdb bidi bluetooth bluray branding bzip2 cairo cdda cddb cdr chromaprint cli colord cracklib crypt cups curl cxx dbus dc1394 dcc_video declarative dhcpcd dirac directfb dos dri dts dvb dvd dvdr eds egl emboss encode evo exif faad fam fdk firefox flac fluidsynth fontconfig fortran freerdp gbm gd gdbm gif gimp gme gnome gnome-keyring gnome-online-accounts gphoto2 gpm growl gsm gstreamer gtk gtk3 html httpd iconv icu introspection ipv6 java jemalloc jpeg jpeg2k kate laptop lcms ldap libass libcaca libkms libnotify libsamplerate libsecret libtar libtiger linsys lirc live lua mad matroska minizip mmx mng modemmanager modplug modules mp3 mp4 mpeg mtp multilib musepack mysql mysqli nautilus ncurses netapi nls nptl nsplugin odbc odbcmanual odk ogg omxil openal opencv opengl openmp optimisememory opus pam pango pcre pdf png policykit postscript ppds projectm pulseaudio python qt3support qt4 rdp readline rtsp run-as-root samba scanner schroedinger script sdl sdl-image semantic-desktop session sftp shout sid skins smp soap socialweb speex spell sql sse sse2 ssh ssl startup-notification svg systemd taglib tcpd telepathy theora tiff tracker tremor truetype twolame udev udisks unicode upnp upnp-av upower usb v4l vaapi vcdx vdpau vlm vorbis vte webkit wifi wimax wma-fixed wmf wps wxwidgets x264 xa xcb xcomposite xinerama xml xmlreader xmlrpc xmlwriter xmp xpm xv xvid zip zlib zvbi" ABI_X86="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" 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" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-minimizer nlpsolver scripting-beanshell scripting-javascript wiki-publisher" LINGUAS="it" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python3_3" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="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"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, MAKEOPTS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 2 Alberto Garcia 2014-05-01 12:36:51 PDT
(In reply to comment #0)
> ./.libs/libwebkitgtk-3.0.so: undefined reference to `_ZNSt6chrono12steady_clock3nowEv@GLIBCXX_3.4.17'

That's std::chrono::steady_clock::now()

Can you try to build this C++ program in the same environment?

http://www.cplusplus.com/reference/chrono/steady_clock/
Comment 3 renato gallo 2014-05-01 21:35:33 PDT
which gcc line ?

(In reply to comment #2)
> (In reply to comment #0)
> > ./.libs/libwebkitgtk-3.0.so: undefined reference to `_ZNSt6chrono12steady_clock3nowEv@GLIBCXX_3.4.17'
> 
> That's std::chrono::steady_clock::now()
> 
> Can you try to build this C++ program in the same environment?
> 
> http://www.cplusplus.com/reference/chrono/steady_clock/
Comment 4 Alberto Garcia 2014-05-07 05:00:18 PDT
(In reply to comment #3)
> > Can you try to build this C++ program in the same environment?
> >
> > http://www.cplusplus.com/reference/chrono/steady_clock/

> which gcc line ?

Save that to a .cc file and try

$ g++ -std=c++11 -c test.cc
$ g++ -o test test.o

using the same g++ version that you use for webkit.
Comment 5 Kwanhong Lee 2014-08-16 18:28:43 PDT
I'm not the one who filed this bug, but I have the same compile failure.
So I did the test you mentioned:

[[ In case of "x86_64-pc-linux-gnu-4.7.3" ]]
$ gcc --version
gcc (Gentoo 4.7.3-r1 p1.3, pie-0.5.5) 4.7.3
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ g++ -std=c++11 -c test.cc
$ g++ -o test test.o
$ ./test 
./test: relocation error: ./test: symbol _ZNSt6chrono12steady_clock3nowEv, version GLIBCXX_3.4.17 not defined in file libstdc++.so.6 with link time reference


[[ In case of "x86_64-pc-linux-gnu-4.8.3" ]]
$ gcc --version
gcc (Gentoo 4.8.3 p1.1, pie-0.5.9) 4.8.3
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ g++ -std=c++11 -c test.cc
$ g++ -o test test.o
$ ./test 
printing out 1000 stars...
****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
Comment 6 Zan Dobersek 2014-08-18 01:29:12 PDT
As far as I remember this failure is avoided if you pass '-D_GLIBCXX_USE_SCHED_YIELD -D_GLIBCXX_USE_NANOSLEEP' among the C++ compiler flags when compiling with GCC 4.7.

Can you try that out?
Comment 7 Alexander olubev 2014-08-24 06:00:58 PDT
Hello, I've also ran into that issue...

(In reply to comment #6)
> As far as I remember this failure is avoided if you pass '-D_GLIBCXX_USE_SCHED_YIELD -D_GLIBCXX_USE_NANOSLEEP' among the C++ compiler flags when compiling with GCC 4.7.
> 
> Can you try that out?
Nope, that doesn't work for me... nor for the webkit, nor for the test example.
Comment 8 Alexander olubev 2014-08-24 06:08:13 PDT
Just found: https://bugs.gentoo.org/show_bug.cgi?id=513386
It seems the issue is in the gcc ABI changes... And a bit specific gentoo ld.so.conf order.
Comment 9 Philippe Normand 2014-11-18 09:13:48 PST
Is this still an issue?
Comment 10 Michael Catanzaro 2014-11-18 16:10:47 PST
Well from a skim of the detailed Gentoo bug and the shorter GCC one, it seems this boils down to (quote from the GCC bug) "It is totally unsupported (and unlikely to work) to mix C++11 code built with GCC 4.x and 4.y, for any x!=y" -- which is apparently what's happened here -- so I'd say this is NOTABUG.

From the Gentoo bug: "GCC upstream emphasized that they won't support the Gentoo approach to handling libstdc++ for C++11, namely the use of a 4.8 libstdc++ with code compiled by 4.7. So we need to address this at the distro level, one way or another, at least until upstream officially declares its ABI stable."
Comment 11 Philippe Normand 2014-11-18 23:30:29 PST
Thanks for the clarification Michael.