From owner-svn-ports-all@FreeBSD.ORG Wed Jan 15 19:10:17 2014 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1A841933; Wed, 15 Jan 2014 19:10:17 +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)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DDAD71AAE; Wed, 15 Jan 2014 19:10:16 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id s0FJAGPG078945; Wed, 15 Jan 2014 19:10:16 GMT (envelope-from theraven@svn.freebsd.org) Received: (from theraven@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id s0FJAG8B078943; Wed, 15 Jan 2014 19:10:16 GMT (envelope-from theraven@svn.freebsd.org) Message-Id: <201401151910.s0FJAG8B078943@svn.freebsd.org> From: David Chisnall Date: Wed, 15 Jan 2014 19:10:16 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r339807 - in head/lang/libobjc2: . files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jan 2014 19:10:17 -0000 Author: theraven Date: Wed Jan 15 19:10:16 2014 New Revision: 339807 URL: http://svnweb.freebsd.org/changeset/ports/339807 QAT: https://qat.redports.org/buildarchive/r339807/ Log: Backport bug fix from r37605 upstream. This fixes crashing when Objective-C++ programs use Objective-C types in static constructors. Approved by: bapt (mentor) Added: head/lang/libobjc2/files/ head/lang/libobjc2/files/patch-arc.m (contents, props changed) Modified: head/lang/libobjc2/Makefile Modified: head/lang/libobjc2/Makefile ============================================================================== --- head/lang/libobjc2/Makefile Wed Jan 15 19:00:14 2014 (r339806) +++ head/lang/libobjc2/Makefile Wed Jan 15 19:10:16 2014 (r339807) @@ -3,6 +3,7 @@ PORTNAME= libobjc2 PORTVERSION= 1.7 +PORTREVISION= 1 CATEGORIES= lang devel gnustep MASTER_SITES= http://download.gna.org/gnustep/ Added: head/lang/libobjc2/files/patch-arc.m ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/libobjc2/files/patch-arc.m Wed Jan 15 19:10:16 2014 (r339807) @@ -0,0 +1,30 @@ +--- ./arc.m.orig 2013-03-12 08:51:59.000000000 +0000 ++++ ./arc.m 2014-01-13 15:04:54.000000000 +0000 +@@ -219,15 +219,18 @@ + } + else + { +- [AutoreleasePool class]; +- useARCAutoreleasePool = class_respondsToSelector(AutoreleasePool, +- SELECTOR(_ARCCompatibleAutoreleasePool)); +- NewAutoreleasePool = class_getMethodImplementation(object_getClass(AutoreleasePool), +- SELECTOR(new)); +- DeleteAutoreleasePool = class_getMethodImplementation(AutoreleasePool, +- SELECTOR(release)); +- AutoreleaseAdd = class_getMethodImplementation(object_getClass(AutoreleasePool), +- SELECTOR(addObject:)); ++ useARCAutoreleasePool = (0 != class_getInstanceMethod(AutoreleasePool, ++ SELECTOR(_ARCCompatibleAutoreleasePool))); ++ if (!useARCAutoreleasePool) ++ { ++ [AutoreleasePool class]; ++ NewAutoreleasePool = class_getMethodImplementation(object_getClass(AutoreleasePool), ++ SELECTOR(new)); ++ DeleteAutoreleasePool = class_getMethodImplementation(AutoreleasePool, ++ SELECTOR(release)); ++ AutoreleaseAdd = class_getMethodImplementation(object_getClass(AutoreleasePool), ++ SELECTOR(addObject:)); ++ } + } + } + }