Bug 196078 - x11-fm/sushi build fails on FreeBSD 8
Summary: x11-fm/sushi build fails on FreeBSD 8
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Don Lewis
URL:
Keywords:
: 196705 (view as bug list)
Depends on: 196031
Blocks:
  Show dependency treegraph
 
Reported: 2014-12-17 23:07 UTC by Don Lewis
Modified: 2015-04-29 23:51 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (gnome)


Attachments
patch to unbreak x11-fm/sushi build on FreeBSD 8 (741 bytes, patch)
2014-12-17 23:07 UTC, Don Lewis
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Don Lewis freebsd_committer 2014-12-17 23:07:35 UTC
Created attachment 150698 [details]
patch to unbreak x11-fm/sushi build on FreeBSD 8

After the patch in PR 196031 to unbreak the build of www/webkit-gtk3 on FreeBSD 8, the build of x11-fm/sushi fails with these errors:

  GISCAN   Sushi-1.0.gir
/usr/local/lib/libwebkitgtk-3.0.so: undefined reference to `_ZSt25__throw_bad_function_callv@GLIBCXX_3.4.14'
/usr/local/lib/libwebkitgtk-3.0.so: undefined reference to `_ZNSt18condition_variable4waitERSt11unique_lockISt5mutexE@GLIBCXX_3.4.11'
/usr/local/lib/libjavascriptcoregtk-3.0.so: undefined reference to `_ZNSt6chrono3_V212system_clock3nowEv@GLIBCXX_3.4.19'
/usr/local/lib/libwebkitgtk-3.0.so: undefined reference to `_ZSt15__once_callable@GLIBCXX_3.4.11'
/usr/local/lib/libwebkitgtk-3.0.so: undefined reference to `_ZNSt8__detail15_List_node_base7_M_hookEPS0_@GLIBCXX_3.4.15'
/usr/local/lib/libwebkitgtk-3.0.so: undefined reference to `_ZSt11__once_call@GLIBCXX_3.4.11'
/usr/local/lib/libwebkitgtk-3.0.so: undefined reference to `_ZNSt18condition_variableD1Ev@GLIBCXX_3.4.11'
/usr/local/lib/libwebkitgtk-3.0.so: undefined reference to `_ZSt20__throw_system_errori@GLIBCXX_3.4.11'
/usr/local/lib/libwebkitgtk-3.0.so: undefined reference to `_ZNSt18condition_variable10notify_oneEv@GLIBCXX_3.4.11'
/usr/local/lib/libwebkitgtk-3.0.so: undefined reference to `_ZNSt18condition_variableC1Ev@GLIBCXX_3.4.11'
/usr/local/lib/libjavascriptcoregtk-3.0.so: undefined reference to `_ZNSt18condition_variable10notify_allEv@GLIBCXX_3.4.11'
/usr/local/lib/libwebkitgtk-3.0.so: undefined reference to `_ZNSt6chrono3_V212steady_clock3nowEv@GLIBCXX_3.4.19'
/usr/local/lib/libwebkitgtk-3.0.so: undefined reference to `__once_proxy@GLIBCXX_3.4.11'
Makefile:672: recipe for target 'sushi-start' failed

This patch adds USES=compiler:c++11-lib, which should be a no-op if the base compiler is clang, but should force the use of gcc and binutils from ports and also adds -L/usr/local/lib/gcc48 to LDFLAGS.

After that change, the build still fails, but with this error:

  GISCAN   Sushi-1.0.gir
/libexec/ld-elf.so.1: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.14 required b
y /usr/local/lib/libwebkitgtk-3.0.so.0 not found
Command '['/wrkdirs/usr/ports/x11-fm/sushi/work/sushi-3.12.0/src/tmp-introspectj
KttWB/Sushi-1.0', '--introspect-dump=/wrkdirs/usr/ports/x11-fm/sushi/work/sushi-
3.12.0/src/tmp-introspectjKttWB/functions.txt,/wrkdirs/usr/ports/x11-fm/sushi/wo
rk/sushi-3.12.0/src/tmp-introspectjKttWB/dump.xml']' returned non-zero exit stat
us 1
/usr/local/share/gobject-introspection-1.0/Makefile.introspection:153: recipe fo
r target 'Sushi-1.0.gir' failed
gmake[2]: *** [Sushi-1.0.gir] Error 1

For some reason, the linker is using libstdc++.so from base instead of version installed by the gcc port.  Fortunately, just adding -lstdc++ to LDFLAGS fixes this problem, so that change is also included in the patch.

I don't know if this is the best fix, but it unbreaks the build for me.
Comment 1 Bugzilla Automation freebsd_committer 2014-12-17 23:07:35 UTC
Auto-assigned to maintainer gnome@FreeBSD.org
Comment 2 Don Lewis freebsd_committer 2015-04-11 01:16:41 UTC
Even with this patch, the sushi dies with a SIGSEGV on startup.

GNU gdb (GDB) 7.8.2 [GDB v7.8.2 for FreeBSD]
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i386-portbld-freebsd8.4".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/local/libexec/sushi-start...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/local/libexec/sushi-start 
[New Thread 3c201140 (LWP 100834 initial thread)]
[New Thread 3cb57580 (LWP 100226)]
[New Thread 3cb57440 (LWP 100838)]
[New Thread 3cb56400 (LWP 100852)]
Gjs-Message: JS LOG: Register mimetype audio/3gpp
Gjs-Message: JS LOG: Register mimetype audio/ac3
Gjs-Message: JS LOG: Register mimetype audio/AMR
Gjs-Message: JS LOG: Register mimetype audio/AMR-WB
Gjs-Message: JS LOG: Register mimetype audio/basic
Gjs-Message: JS LOG: Register mimetype audio/flac
Gjs-Message: JS LOG: Register mimetype audio/midi
Gjs-Message: JS LOG: Register mimetype audio/mp2
Gjs-Message: JS LOG: Register mimetype audio/mp4
Gjs-Message: JS LOG: Register mimetype audio/mpeg
Gjs-Message: JS LOG: Register mimetype audio/ogg
Gjs-Message: JS LOG: Register mimetype audio/prs.sid
Gjs-Message: JS LOG: Register mimetype audio/vnd.rn-realaudio
Gjs-Message: JS LOG: Register mimetype audio/x-aiff
Gjs-Message: JS LOG: Register mimetype audio/x-ape
Gjs-Message: JS LOG: Register mimetype audio/x-flac
Gjs-Message: JS LOG: Register mimetype audio/x-gsm
Gjs-Message: JS LOG: Register mimetype audio/x-it
Gjs-Message: JS LOG: Register mimetype audio/x-m4a
Gjs-Message: JS LOG: Register mimetype audio/x-matroska
Gjs-Message: JS LOG: Register mimetype audio/x-mod
Gjs-Message: JS LOG: Register mimetype audio/x-mp3
Gjs-Message: JS LOG: Register mimetype audio/x-mpeg
Gjs-Message: JS LOG: Register mimetype audio/x-ms-asf
Gjs-Message: JS LOG: Register mimetype audio/x-ms-asx
Gjs-Message: JS LOG: Register mimetype audio/x-ms-wax
Gjs-Message: JS LOG: Register mimetype audio/x-ms-wma
Gjs-Message: JS LOG: Register mimetype audio/x-musepack
Gjs-Message: JS LOG: Register mimetype audio/x-pn-aiff
Gjs-Message: JS LOG: Register mimetype audio/x-pn-au
Gjs-Message: JS LOG: Register mimetype audio/x-pn-wav
Gjs-Message: JS LOG: Register mimetype audio/x-pn-windows-acm
Gjs-Message: JS LOG: Register mimetype audio/x-realaudio
Gjs-Message: JS LOG: Register mimetype audio/x-real-audio
Gjs-Message: JS LOG: Register mimetype audio/x-s3m
Gjs-Message: JS LOG: Register mimetype audio/x-sbc
Gjs-Message: JS LOG: Register mimetype audio/x-speex
Gjs-Message: JS LOG: Register mimetype audio/x-stm
Gjs-Message: JS LOG: Register mimetype audio/x-tta
Gjs-Message: JS LOG: Register mimetype audio/x-wav
Gjs-Message: JS LOG: Register mimetype audio/x-wavpack
Gjs-Message: JS LOG: Register mimetype audio/x-vorbis
Gjs-Message: JS LOG: Register mimetype audio/x-vorbis+ogg
Gjs-Message: JS LOG: Register mimetype audio/x-xm
Gjs-Message: JS LOG: Register mimetype application/x-flac
Gjs-Message: JS LOG: Register mimetype image/tiff
Gjs-Message: JS LOG: Register mimetype application/postscript
Gjs-Message: JS LOG: Register mimetype application/x-bzpostscript
Gjs-Message: JS LOG: Register mimetype application/x-gzpostscript
Gjs-Message: JS LOG: Register mimetype image/x-eps
Gjs-Message: JS LOG: Register mimetype image/x-bzeps
Gjs-Message: JS LOG: Register mimetype image/x-gzeps
Gjs-Message: JS LOG: Register mimetype application/x-ext-ps
Gjs-Message: JS LOG: Register mimetype application/x-ext-eps
Gjs-Message: JS LOG: Register mimetype application/pdf
Gjs-Message: JS LOG: Register mimetype application/x-bzpdf
Gjs-Message: JS LOG: Register mimetype application/x-gzpdf
Gjs-Message: JS LOG: Register mimetype application/x-xzpdf
Gjs-Message: JS LOG: Register mimetype application/x-ext-pdf
Gjs-Message: JS LOG: Register mimetype application/oxps
Gjs-Message: JS LOG: Register mimetype application/vnd.ms-xpsdocument
Gjs-Message: JS LOG: Register mimetype application/x-dvi
Gjs-Message: JS LOG: Register mimetype application/x-bzdvi
Gjs-Message: JS LOG: Register mimetype application/x-gzdvi
Gjs-Message: JS LOG: Register mimetype application/x-ext-dvi
Gjs-Message: JS LOG: Register mimetype application/x-cbr
Gjs-Message: JS LOG: Register mimetype application/x-cbz
Gjs-Message: JS LOG: Register mimetype application/x-cb7
Gjs-Message: JS LOG: Register mimetype application/x-cbt
Gjs-Message: JS LOG: Register mimetype application/x-ext-cbr
Gjs-Message: JS LOG: Register mimetype application/x-ext-cbz
Gjs-Message: JS LOG: Register mimetype application/x-ext-cb7
Gjs-Message: JS LOG: Register mimetype application/x-ext-cbt
Gjs-Message: JS LOG: Register mimetype application/vnd.oasis.opendocument.text
Gjs-Message: JS LOG: Register mimetype application/vnd.oasis.opendocument.presentation
Gjs-Message: JS LOG: Register mimetype application/vnd.oasis.opendocument.spreadsheet
Gjs-Message: JS LOG: Register mimetype application/msword
Gjs-Message: JS LOG: Register mimetype application/vnd.ms-excel
Gjs-Message: JS LOG: Register mimetype application/vnd.ms-powerpoint
Gjs-Message: JS LOG: Register mimetype application/rtf
Gjs-Message: JS LOG: Register mimetype application/x-font-ttf
Gjs-Message: JS LOG: Register mimetype application/x-font-otf
Gjs-Message: JS LOG: Register mimetype application/x-font-pcf
Gjs-Message: JS LOG: Register mimetype application/x-font-type1
Gjs-Message: JS LOG: Register mimetype application/mxf
Gjs-Message: JS LOG: Register mimetype application/ogg
Gjs-Message: JS LOG: Register mimetype application/ram
Gjs-Message: JS LOG: Register mimetype application/sdp
Gjs-Message: JS LOG: Register mimetype application/vnd.apple.mpegurl
Gjs-Message: JS LOG: Register mimetype application/vnd.ms-wpl
Gjs-Message: JS LOG: Register mimetype application/vnd.rn-realmedia
Gjs-Message: JS LOG: Register mimetype application/x-extension-m4a
Gjs-Message: JS LOG: Register mimetype application/x-extension-mp4
Gjs-Message: JS LOG: Register mimetype application/x-flash-video
Gjs-Message: JS LOG: Register mimetype application/x-matroska
Gjs-Message: JS LOG: Register mimetype application/x-netshow-channel
Gjs-Message: JS LOG: Register mimetype application/x-ogg
Gjs-Message: JS LOG: Register mimetype application/x-quicktimeplayer
Gjs-Message: JS LOG: Register mimetype application/x-shorten
Gjs-Message: JS LOG: Register mimetype image/vnd.rn-realpix
Gjs-Message: JS LOG: Register mimetype image/x-pict
Gjs-Message: JS LOG: Register mimetype misc/ultravox
Gjs-Message: JS LOG: Register mimetype text/x-google-video-pointer
Gjs-Message: JS LOG: Register mimetype video/3gp
Gjs-Message: JS LOG: Register mimetype video/3gpp
Gjs-Message: JS LOG: Register mimetype video/dv
Gjs-Message: JS LOG: Register mimetype video/divx
Gjs-Message: JS LOG: Register mimetype video/fli
Gjs-Message: JS LOG: Register mimetype video/flv
Gjs-Message: JS LOG: Register mimetype video/mp2t
Gjs-Message: JS LOG: Register mimetype video/mp4
Gjs-Message: JS LOG: Register mimetype video/mp4v-es
Gjs-Message: JS LOG: Register mimetype video/mpeg
Gjs-Message: JS LOG: Register mimetype video/msvideo
Gjs-Message: JS LOG: Register mimetype video/ogg
Gjs-Message: JS LOG: Register mimetype video/quicktime
Gjs-Message: JS LOG: Register mimetype video/vivo
Gjs-Message: JS LOG: Register mimetype video/vnd.divx
Gjs-Message: JS LOG: Register mimetype video/vnd.mpegurl
Gjs-Message: JS LOG: Register mimetype video/vnd.rn-realvideo
Gjs-Message: JS LOG: Register mimetype video/vnd.vivo
Gjs-Message: JS LOG: Register mimetype video/webm
Gjs-Message: JS LOG: Register mimetype video/x-anim
Gjs-Message: JS LOG: Register mimetype video/x-avi
Gjs-Message: JS LOG: Register mimetype video/x-flc
Gjs-Message: JS LOG: Register mimetype video/x-fli
Gjs-Message: JS LOG: Register mimetype video/x-flic
Gjs-Message: JS LOG: Register mimetype video/x-flv
Gjs-Message: JS LOG: Register mimetype video/x-m4v
Gjs-Message: JS LOG: Register mimetype video/x-matroska
Gjs-Message: JS LOG: Register mimetype video/x-mpeg
Gjs-Message: JS LOG: Register mimetype video/x-mpeg2
Gjs-Message: JS LOG: Register mimetype video/x-ms-asf
Gjs-Message: JS LOG: Register mimetype video/x-ms-asx
Gjs-Message: JS LOG: Register mimetype video/x-msvideo
Gjs-Message: JS LOG: Register mimetype video/x-ms-wm
Gjs-Message: JS LOG: Register mimetype video/x-ms-wmv
Gjs-Message: JS LOG: Register mimetype video/x-ms-wmx
Gjs-Message: JS LOG: Register mimetype video/x-ms-wvx
Gjs-Message: JS LOG: Register mimetype video/x-nsv
Gjs-Message: JS LOG: Register mimetype video/x-ogm+ogg
Gjs-Message: JS LOG: Register mimetype video/x-theora+ogg
Gjs-Message: JS LOG: Register mimetype video/x-totem-stream
Gjs-Message: JS LOG: Register mimetype audio/x-pn-realaudio
Gjs-Message: JS LOG: Register mimetype text/html
Gjs-Message: JS LOG: Register mimetype image/x-gdkpixdata
Gjs-Message: JS LOG: Register mimetype application/x-navi-animation
Gjs-Message: JS LOG: Register mimetype image/bmp
Gjs-Message: JS LOG: Register mimetype image/x-bmp
Gjs-Message: JS LOG: Register mimetype image/x-MS-bmp
Gjs-Message: JS LOG: Register mimetype image/gif
Gjs-Message: JS LOG: Register mimetype image/x-icns
Gjs-Message: JS LOG: Register mimetype image/x-icon
Gjs-Message: JS LOG: Register mimetype image/x-ico
Gjs-Message: JS LOG: Register mimetype image/x-win-bitmap
Gjs-Message: JS LOG: Register mimetype image/jp2
Gjs-Message: JS LOG: Register mimetype image/jpeg2000
Gjs-Message: JS LOG: Register mimetype image/jpx
Gjs-Message: JS LOG: Register mimetype image/jpeg
Gjs-Message: JS LOG: Register mimetype image/x-pcx
Gjs-Message: JS LOG: Register mimetype image/png
Gjs-Message: JS LOG: Register mimetype image/x-portable-anymap
Gjs-Message: JS LOG: Register mimetype image/x-portable-bitmap
Gjs-Message: JS LOG: Register mimetype image/x-portable-graymap
Gjs-Message: JS LOG: Register mimetype image/x-portable-pixmap
Gjs-Message: JS LOG: Register mimetype image/x-quicktime
Gjs-Message: JS LOG: Register mimetype image/qtif
Gjs-Message: JS LOG: Register mimetype image/x-cmu-raster
Gjs-Message: JS LOG: Register mimetype image/x-sun-raster
Gjs-Message: JS LOG: Register mimetype image/x-tga
Gjs-Message: JS LOG: Register mimetype image/tiff
Gjs-Message: JS LOG: Register mimetype image/vnd.wap.wbmp
Gjs-Message: JS LOG: Register mimetype image/x-xbitmap
Gjs-Message: JS LOG: Register mimetype image/x-xpixmap
Gjs-Message: JS LOG: Register mimetype image/x-adobe-dng
Gjs-Message: JS LOG: Register mimetype image/x-canon-cr2
Gjs-Message: JS LOG: Register mimetype image/x-canon-crw
Gjs-Message: JS LOG: Register mimetype image/x-nikon-nef
Gjs-Message: JS LOG: Register mimetype image/x-olympus-orf
Gjs-Message: JS LOG: Register mimetype image/x-pentax-pef
Gjs-Message: JS LOG: Register mimetype image/x-sony-arw
Gjs-Message: JS LOG: Register mimetype image/x-epson-erf
Gjs-Message: JS LOG: Register mimetype image/x-minolta-mrw
Gjs-Message: JS LOG: Register mimetype image/svg+xml
Gjs-Message: JS LOG: Register mimetype image/svg
Gjs-Message: JS LOG: Register mimetype image/svg-xml
Gjs-Message: JS LOG: Register mimetype image/vnd.adobe.svg+xml
Gjs-Message: JS LOG: Register mimetype text/xml-svg
Gjs-Message: JS LOG: Register mimetype image/svg+xml-compressed
Gjs-Message: JS LOG: Register mimetype text/plain

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 3c201140 (LWP 100834 initial thread)]
0x379e071e in memcpy () from /lib/libc.so.7
(gdb) bt
#0  0x379e071e in memcpy () from /lib/libc.so.7
#1  0x377688a3 in g_memdup () from /usr/local/lib/libglib-2.0.so.0
#2  0x37045487 in g_type_module_register_type ()
   from /usr/local/lib/libgobject-2.0.so.0
#3  0x33d8242f in ?? () from /usr/local/lib/libgjs.so.0
#4  0x37b158e7 in ?? () from /usr/local/lib/libmozjs-24.so
#5  0x37b10979 in ?? () from /usr/local/lib/libmozjs-24.so
#6  0x37b0acbe in ?? () from /usr/local/lib/libmozjs-24.so
#7  0x37b15a3b in ?? () from /usr/local/lib/libmozjs-24.so
#8  0x37bff686 in ?? () from /usr/local/lib/libmozjs-24.so
#9  0x37b158e7 in ?? () from /usr/local/lib/libmozjs-24.so
#10 0x37b10979 in ?? () from /usr/local/lib/libmozjs-24.so
#11 0x37b0acbe in ?? () from /usr/local/lib/libmozjs-24.so
#12 0x37b15a3b in ?? () from /usr/local/lib/libmozjs-24.so
#13 0x37bff686 in ?? () from /usr/local/lib/libmozjs-24.so
#14 0x37b158e7 in ?? () from /usr/local/lib/libmozjs-24.so
#15 0x37b10979 in ?? () from /usr/local/lib/libmozjs-24.so
#16 0x37b0acbe in ?? () from /usr/local/lib/libmozjs-24.so
#17 0x37b15a3b in ?? () from /usr/local/lib/libmozjs-24.so
#18 0x37b16082 in ?? () from /usr/local/lib/libmozjs-24.so
#19 0x37c00377 in ?? () from /usr/local/lib/libmozjs-24.so
#20 0x37b15f2a in ?? () from /usr/local/lib/libmozjs-24.so
#21 0x37b0f236 in ?? () from /usr/local/lib/libmozjs-24.so
---Type <return> to continue, or q <return> to quit--- 
#22 0x37b0acbe in ?? () from /usr/local/lib/libmozjs-24.so
#23 0x37b163c6 in ?? () from /usr/local/lib/libmozjs-24.so
#24 0x37b164e3 in ?? () from /usr/local/lib/libmozjs-24.so
#25 0x37bb5509 in JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, unsigned short const*, unsigned int, JS::Value*) ()
   from /usr/local/lib/libmozjs-24.so
#26 0x37bb565d in JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, char const*, unsigned int, JS::Value*) ()
   from /usr/local/lib/libmozjs-24.so
#27 0x33d6e39f in gjs_eval_with_scope () from /usr/local/lib/libgjs.so.0
#28 0x33d699e3 in ?? () from /usr/local/lib/libgjs.so.0
#29 0x33d68cc0 in ?? () from /usr/local/lib/libgjs.so.0
#30 0x37c454ed in ?? () from /usr/local/lib/libmozjs-24.so
#31 0x37b1ce97 in ?? () from /usr/local/lib/libmozjs-24.so
#32 0x37b0cd7b in ?? () from /usr/local/lib/libmozjs-24.so
#33 0x37b0acbe in ?? () from /usr/local/lib/libmozjs-24.so
#34 0x37b163c6 in ?? () from /usr/local/lib/libmozjs-24.so
#35 0x37b164e3 in ?? () from /usr/local/lib/libmozjs-24.so
#36 0x37bb5509 in JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, unsigned short const*, unsigned int, JS::Value*) ()
   from /usr/local/lib/libmozjs-24.so
#37 0x37bb565d in JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, char const*, unsigned int, JS::Value*) ()
---Type <return> to continue, or q <return> to quit---
   from /usr/local/lib/libmozjs-24.so
#38 0x33d6e39f in gjs_eval_with_scope () from /usr/local/lib/libgjs.so.0
#39 0x33d699e3 in ?? () from /usr/local/lib/libgjs.so.0
#40 0x33d68cc0 in ?? () from /usr/local/lib/libgjs.so.0
#41 0x37c454ed in ?? () from /usr/local/lib/libmozjs-24.so
#42 0x37b1ce97 in ?? () from /usr/local/lib/libmozjs-24.so
#43 0x37b0cd7b in ?? () from /usr/local/lib/libmozjs-24.so
#44 0x37b0acbe in ?? () from /usr/local/lib/libmozjs-24.so
#45 0x37b163c6 in ?? () from /usr/local/lib/libmozjs-24.so
#46 0x37b164e3 in ?? () from /usr/local/lib/libmozjs-24.so
#47 0x37bb5509 in JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, unsigned short const*, unsigned int, JS::Value*) ()
   from /usr/local/lib/libmozjs-24.so
#48 0x37bb565d in JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, char const*, unsigned int, JS::Value*) ()
   from /usr/local/lib/libmozjs-24.so
#49 0x33d6e39f in gjs_eval_with_scope () from /usr/local/lib/libgjs.so.0
#50 0x33d66bb3 in gjs_context_eval () from /usr/local/lib/libgjs.so.0
#51 0x08048e8c in ?? ()
#52 0x08048fd7 in ?? ()
#53 0x08048f48 in ?? ()
#54 0x00000000 in ?? ()
Comment 3 Koop Mast freebsd_committer 2015-04-11 21:26:13 UTC
*** Bug 196705 has been marked as a duplicate of this bug. ***
Comment 4 Don Lewis freebsd_committer 2015-04-13 21:31:26 UTC
If I convert lang/gjs and lang/spidermonkey24 from USES=compiler:c11 to USES=compiler:c++11-lib, sushi builds and appears to run correctly without needing any modification.  I can't totally verify functionality because I still can't start a GNOME session.

On FreeBSD 8 and 9, this change causes gjs and spidermonkey24 to be build with gcc 4.8 from ports and link to its bundled copy of libstdc++ instead of being built with clang and linked the version of libstdc++ in base.

Converting sushi to USES=compiler:c11 and forcing it to link to libstdc++ is the wrong approach because sushi appears to be entirely written in C and does not directly need a C++ library.  The link errors were happening because libwebkitgtk-3.0 requires the newer libstdc++ from the gcc 4.8 port, but the other libraries were linked to the base libstdc++, and the version chosen by the linker when building sushi seems depend on the order of the libraries since it wasn't being forced to pick the gcc 4.8 port version by sushi.

The libgraphite2 library is still linked to libstdc++ in base but doesn't seem to cause any problems.
Comment 5 commit-hook freebsd_committer 2015-04-29 22:14:08 UTC
A commit references this bug:

Author: truckman
Date: Wed Apr 29 22:13:11 UTC 2015
New revision: 385016
URL: https://svnweb.freebsd.org/changeset/ports/385016

Log:
  Convert lang/gjs and lang/spidermonkey24 to USES=compiler:c++11-lib
  to unbreak x11-fm/sushi on FreeBSD 8 and 9.

  lang/gjs and lang/spidermonkey24 are currently built with
  USES=compiler:c11.  On FreeBSD 8, this causes them to be compiled
  with clang from ports, and on FreeBSD 9, they are built with clang
  from base.  In both cases, they are linked to libstdc++ from base.

  These two ports are dependencies of x11-fm/sushi, which also depends
  on webkit-gtk3, which is compiled with USES=compiler:c++11-lib.  On
  FreeBSD 8 and 9 webkit-gtk3 is compiled with gcc from ports and
  linked to its newer bundled libstdc++.  Sushi is compiled with gcc
  from base and consists of pure C code, so it does not link directly
  to libstdc++.  The build fails because ld links in the base version
  of libstdc++ before it links in webkit-gtk3, and then discovers
  that the newer libstdc++ ABI needed by webkit-gtk3 is missing.

  Converting sushi to USES=compiler:c++11-lib does not fix the build
  failure, and just changes the error message, probably because sushi
  does not directly link to any version of libstdc++.  If sushi is
  further hacked to force it to link directly to the newer version
  of libstdc++ bundled with the gcc port, the build succeeds, but the
  resulting executable segfaults inside libstdc++ with a stack trace
  that traverses a bunch of functions contained in the gjs and
  spidermonkey24 libraries.

  Converting gjs and spidermonkey24 to USES=compiler:c++11-lib forces
  them to be compiled with the ports version of gcc on FreeBSD 8 and
  9 and link to its bundled libstdc++ (and is a no-op on FreeBSD 10
  and higher).  Because these libraries are linked into sushi before
  webkit-gtk3, they load the version of libstdc++ which meets the
  requirements of webkit-gtk3, and the resulting executable is
  functional.  No modifications to sushi are necessary.

  PR:		196078, 199434, 199435
  Differential Revision:	https://reviews.freebsd.org/D2396
  Approved by:	mat (mentor)
  MFH:		2015Q2

Changes:
  head/lang/gjs/Makefile
  head/lang/spidermonkey24/Makefile
Comment 6 commit-hook freebsd_committer 2015-04-29 23:51:19 UTC
A commit references this bug:

Author: truckman
Date: Wed Apr 29 23:50:29 UTC 2015
New revision: 385017
URL: https://svnweb.freebsd.org/changeset/ports/385017

Log:
  MFH:	r385016

  Convert lang/gjs and lang/spidermonkey24 to USES=compiler:c++11-lib
  to unbreak x11-fm/sushi on FreeBSD 8 and 9.  This change causes
  these libraries to link to the newer version of libstdc++ bundled
  with lang/gcc.  This causes rtld to load this version when it is
  linking sushi at runtime, which is needed by webkit-gtk3, another
  shared library linked into sushi.

  PR:		196078, 199434, 199435
  Approved by:	portmgr (delphij)

Changes:
_U  branches/2015Q2/
  branches/2015Q2/lang/gjs/Makefile
  branches/2015Q2/lang/spidermonkey24/Makefile