From owner-svn-ports-head@FreeBSD.ORG Wed Apr 29 22:13:12 2015 Return-Path: Delivered-To: svn-ports-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E932369A; Wed, 29 Apr 2015 22:13:11 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D71B91ED6; Wed, 29 Apr 2015 22:13:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3TMDBI7070510; Wed, 29 Apr 2015 22:13:11 GMT (envelope-from truckman@FreeBSD.org) Received: (from truckman@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3TMDBdu070508; Wed, 29 Apr 2015 22:13:11 GMT (envelope-from truckman@FreeBSD.org) Message-Id: <201504292213.t3TMDBdu070508@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: truckman set sender to truckman@FreeBSD.org using -f From: Don Lewis Date: Wed, 29 Apr 2015 22:13:11 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r385016 - in head/lang: gjs spidermonkey24 X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Apr 2015 22:13:12 -0000 Author: truckman Date: Wed Apr 29 22:13:10 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 Modified: head/lang/gjs/Makefile head/lang/spidermonkey24/Makefile Modified: head/lang/gjs/Makefile ============================================================================== --- head/lang/gjs/Makefile Wed Apr 29 21:44:00 2015 (r385015) +++ head/lang/gjs/Makefile Wed Apr 29 22:13:10 2015 (r385016) @@ -4,6 +4,7 @@ PORTNAME= gjs PORTVERSION= 1.42.0 +PORTREVISION= 1 CATEGORIES= lang gnome MASTER_SITES= GNOME DIST_SUBDIR= gnome3 @@ -14,7 +15,7 @@ COMMENT= GNOME Javascript binding LIB_DEPENDS= libdbus-glib-1.so:${PORTSDIR}/devel/dbus-glib \ libmozjs-24.so:${PORTSDIR}/lang/spidermonkey24 -USES= compiler:c11 gettext gmake libtool pathfix pkgconfig \ +USES= compiler:c++11-lib gettext gmake libtool pathfix pkgconfig \ python:build tar:xz USE_GNOME= cairo glib20 gnomeprefix introspection:build \ intlhack Modified: head/lang/spidermonkey24/Makefile ============================================================================== --- head/lang/spidermonkey24/Makefile Wed Apr 29 21:44:00 2015 (r385015) +++ head/lang/spidermonkey24/Makefile Wed Apr 29 22:13:10 2015 (r385016) @@ -3,6 +3,7 @@ PORTNAME= spidermonkey24 PORTVERSION= 24.2.0 +PORTREVISION= 1 CATEGORIES= lang MASTER_SITES= ${MASTER_SITE_MOZILLA} #http://people.mozilla.org/~sstangl/ @@ -18,7 +19,7 @@ LIB_DEPENDS= libnspr4.so:${PORTSDIR}/de CONFLICTS= njs-[0-9]* GNU_CONFIGURE= yes -USES= compiler:c11 gmake pathfix perl5 python:2,build \ +USES= compiler:c++11-lib gmake pathfix perl5 python:2,build \ readline tar:bzip2 USE_PERL5= build USE_LDCONFIG= yes