maintainer-feedback requested: [Bug 199435] [patch] convert lang/gjs to USES=compiler:c++11-lib

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Apr 14 00:49:43 UTC 2015


Don Lewis <truckman at FreeBSD.org> has reassigned Bugzilla Automation
<bugzilla at FreeBSD.org>'s request for maintainer-feedback to gnome at FreeBSD.org:
Bug 199435: [patch] convert lang/gjs to USES=compiler:c++11-lib
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199435



--- Description ---
Created attachment 155578
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=155578&action=edit
patch to convert gjs to USES=compiler:c++11-lib

On FreeBSD 8 and 9, USES=compiler:c11 causes gjs to be built with clang and
linked the old version of libstdc++ in base.

The x11-fm/sushi port links to both gjs and webkit-gtk3.  On FreeBSD 8 and 9,
webkit-gdk3 must now be compiled with gcc48 from ports and linked to the
version of libstdc++ from ports.  sushi itself only appears to contain C code
and doesn't require a c++ library.  When it is linked, the linker choses
libstdc++ based on the order of the shared libraries, and ends up linking to
libstdc++ from base.  This causes the build to fail with a link error because
the base version of libstdc++ does not support the newer c++ ABI version
required by webkit-gtk3.

Even if the sushi port is hacked to link to the newer libstdc++, the
application segfaults inside a deeply nested series of libmozjs and libgjs
function calls.

See <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=196078> for more detail.

Changing spidermonkey24 and gjs to USES=compiler:c++11-lib, which causes them
to be built with gcc48 and linked to its bundled libstdc++, allows the
un-modified sushi port to successfully build, and not segfault when run.

See also <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199434>


More information about the freebsd-gnome mailing list