summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Cafarelli <voyageur@gentoo.org>2012-02-20 20:05:38 +0000
committerBernard Cafarelli <voyageur@gentoo.org>2012-02-20 20:05:38 +0000
commit33ac9b11e89dec66a93760ad697b42cbdbd996fb (patch)
tree9d4cc0e20a39e284de06b99c8f11cec89148f520
parenthttp://my.opera.com/desktopteam/blog/2012/02/20/12-00-wahoo-stability-improve... (diff)
downloadhistorical-33ac9b11e89dec66a93760ad697b42cbdbd996fb.tar.gz
historical-33ac9b11e89dec66a93760ad697b42cbdbd996fb.tar.bz2
historical-33ac9b11e89dec66a93760ad697b42cbdbd996fb.zip
Also test libobjc.so.3 (from >=gcc-4.6), rework pkg_setup. Fixes bug #404957, gnustep-updater can handle libobjc.so.3
Package-Manager: portage-2.2.0_alpha87/cvs/Linux x86_64
-rw-r--r--gnustep-base/gnustep-make/ChangeLog7
-rw-r--r--gnustep-base/gnustep-make/Manifest11
-rw-r--r--gnustep-base/gnustep-make/files/testlibobjc.m10
-rw-r--r--gnustep-base/gnustep-make/gnustep-make-2.6.2.ebuild49
4 files changed, 51 insertions, 26 deletions
diff --git a/gnustep-base/gnustep-make/ChangeLog b/gnustep-base/gnustep-make/ChangeLog
index 1ff06a2dc45b..e0e34bdcc783 100644
--- a/gnustep-base/gnustep-make/ChangeLog
+++ b/gnustep-base/gnustep-make/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for gnustep-base/gnustep-make
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/gnustep-base/gnustep-make/ChangeLog,v 1.105 2012/02/09 21:34:34 voyageur Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnustep-base/gnustep-make/ChangeLog,v 1.106 2012/02/20 20:05:38 voyageur Exp $
+
+ 20 Feb 2012; Bernard Cafarelli <voyageur@gentoo.org>
+ gnustep-make-2.6.2.ebuild, +files/testlibobjc.m:
+ Also test libobjc.so.3 (from >=gcc-4.6), rework pkg_setup. Fixes bug #404957,
+ gnustep-updater can handle libobjc.so.3
09 Feb 2012; Bernard Cafarelli <voyageur@gentoo.org>
gnustep-make-2.6.2.ebuild:
diff --git a/gnustep-base/gnustep-make/Manifest b/gnustep-base/gnustep-make/Manifest
index 70c1ed46d078..662ee02c2d47 100644
--- a/gnustep-base/gnustep-make/Manifest
+++ b/gnustep-base/gnustep-make/Manifest
@@ -6,6 +6,7 @@ AUX gnustep-3.sh 578 RMD160 69fdd2c1deb0099daecf98e0be786ebd97b47b6e SHA1 17fbd3
AUX gnustep-4.csh 552 RMD160 90be016a4abfbb586e80c6eb1175f84251c18243 SHA1 b123891a6d229cd88333d6eb3ce6cfd70da88e5d SHA256 ae9a619fe72d2bf4bad319633921b56516a472a3304ecf16e284b66fb8387301
AUX gnustep-4.sh 562 RMD160 9c10c3bae6bd3a02e996e1ddb8bc37444b628070 SHA1 0ff17fee0fdc4c03ae6e5af558f5fd8e995f5e1b SHA256 88b8c8841719051151d7f013bfef1853d9efebf545e61d998ae6670ea1ec8508
AUX gnustep-make-2.0.1-destdir.patch 975 RMD160 c2647803d412c954b546e4352310705aac805159 SHA1 94ea603da99cc6b973ecfbd7e3c3980f53c5da0a SHA256 68e386ad5dfeb90138723081ce0d45fd6c426dbcf9660784eb85707dee7be474
+AUX testlibobjc.m 229 RMD160 bf8c38ee0a47cdc7a7388f7c53120649f1262860 SHA1 52ce68ac09f6f0f1fe33fc9679339e9c78169b42 SHA256 25543e39b6a1fac508439fa07036b37e7ec0068773c2c29d10af033bb94053e0
DIST gnustep-make-2.4.0.tar.gz 521818 RMD160 6f1dd81039c9935e41eb7988923c3b3c6507e383 SHA1 afda14186394c65b0871dba93f92dc965b2fc724 SHA256 8ad6c9d0e532e0bf70fdc25abe60afbd4103b16dc47b324646a147cbac6c6ef9
DIST gnustep-make-2.6.0.tar.gz 564848 RMD160 05421b3ac78467abe798937905eee81316d2b286 SHA1 e3cd5dd9d1f0314c66e6e45b5e5bf9b2513f9be4 SHA256 db8312a0fc637d5c66c11c33ec51b1ecc0c693091ec06ca39ebac43ca0f27828
DIST gnustep-make-2.6.1.tar.gz 565262 RMD160 a72970e1bf0fa93622981e991717714795cdb7a5 SHA1 32144e6f9474dff0001372ade68674620f9ed20c SHA256 c48b0a4c85eee4799b12cceeb327c470b168100cbcda4f111b1edad71f8762eb
@@ -13,13 +14,13 @@ DIST gnustep-make-2.6.2.tar.gz 562770 RMD160 683b6a034d4bb7e17b64209c7e7e289e9e9
EBUILD gnustep-make-2.4.0.ebuild 2335 RMD160 fb557f9e3ccbbe3c9d6505b5ea0240c5bf45be4f SHA1 6f8d32ff50ebe43e7697cde8f3f2c9307858430c SHA256 3efca9d4073527e756cfbc562cef3eb4b9c0dd09032be33ff89fe9be141883a1
EBUILD gnustep-make-2.6.0.ebuild 2488 RMD160 4269a947fe5c159525e1f9773913889d03fe7812 SHA1 4f916eb0f834a930ccede5e3fc0a0f0a29a76b01 SHA256 cb622ead93fe859763c2266979ab02f27e3c578ef639c1e08b59352f895bb208
EBUILD gnustep-make-2.6.1-r1.ebuild 2486 RMD160 46faa0e60887bea22eb5a4b585c5818be1255e27 SHA1 cdce750b077ccbfee4512f3aa0e6047f82834107 SHA256 f1ed6fbd1c5c1443662e4d330c9db4b16fb2eea7565f87637f925904bd6041a6
-EBUILD gnustep-make-2.6.2.ebuild 3284 RMD160 a4a03b516eab50b20ec5431092c47bb7f9e47aa5 SHA1 513ca81b232f5dd34fa106710d100032648c8ce6 SHA256 7daa463bd3306b30ce555fb8ca84b44e74b9477043b144ef5e1c689f3cb251b6
-MISC ChangeLog 19519 RMD160 b533a7b8cc2843fc1d121fe3c767bb05f5e2df7f SHA1 cb588b423a93dc1e6400a173ece5631253ef3cba SHA256 afd8b237971e6721c58feccec7c9393901b6ca182080c9a53b7823246ec6a414
+EBUILD gnustep-make-2.6.2.ebuild 3706 RMD160 ef5e44bd3101287e399bc4146ba5761214ca130f SHA1 ea9a3e56e8944503e7c1fc0926e6ea2c05b65b76 SHA256 14a7d51fad7746cd9482fba56624d7ebb38de373169e24b876f0cbf211353ad5
+MISC ChangeLog 19748 RMD160 7c0ac1bcde87124b70db3f3ac265086c118b498d SHA1 86434b48963b62bd981d6fec337585005a32c66f SHA256 1a8b77eee5c5203258e62ee7fc24a6313c32d3c0d220b98cfedca37fa37c7e54
MISC metadata.xml 898 RMD160 b9f3536bfebd8b110106c0acd25867ee18ee8913 SHA1 5c8af107c44ff235ab4817c553059aaee486af36 SHA256 00307fc5770d94f69c9c30ce99884a198bb71c5a14e85454b9bf164abc1f8b0f
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)
-iF4EAREIAAYFAk80O/YACgkQFYEBGcdFJfI5cAEAm2yxmYmfxbQqCBH3Mpb/ckju
-bN9V0a/mrbyan/dPVtAA/0u4fk6s2UHC5h1WrY9ShfO3mlKlnrf4MIYTg8aoUIJ/
-=oIMO
+iF4EAREIAAYFAk9Cp54ACgkQFYEBGcdFJfLztwD/dpJ46/0+R8fhKf5xChP8kMZo
+42VvouZ1YTlm1zEEWiIA/3Xel63KgCwetf0XAUVV7dRC3a/5JKzR9IOjL5XPjhcn
+=1VoT
-----END PGP SIGNATURE-----
diff --git a/gnustep-base/gnustep-make/files/testlibobjc.m b/gnustep-base/gnustep-make/files/testlibobjc.m
new file mode 100644
index 000000000000..225113c24d7e
--- /dev/null
+++ b/gnustep-base/gnustep-make/files/testlibobjc.m
@@ -0,0 +1,10 @@
+/**
+ * Use "gcc -Werror -Wl,-l:libobjc.so.x testlibobjc.m -o /dev/null"
+ * #import generates a warning with non-objc
+ */
+#import <stdio.h>
+
+int main( int argc, const char *argv[] ) {
+ printf("Linker test\n");
+ return 0;
+}
diff --git a/gnustep-base/gnustep-make/gnustep-make-2.6.2.ebuild b/gnustep-base/gnustep-make/gnustep-make-2.6.2.ebuild
index a770e445c535..da59154975f0 100644
--- a/gnustep-base/gnustep-make/gnustep-make-2.6.2.ebuild
+++ b/gnustep-base/gnustep-make/gnustep-make-2.6.2.ebuild
@@ -1,19 +1,18 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/gnustep-base/gnustep-make/gnustep-make-2.6.2.ebuild,v 1.3 2012/02/09 21:34:34 voyageur Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnustep-base/gnustep-make/gnustep-make-2.6.2.ebuild,v 1.4 2012/02/20 20:05:38 voyageur Exp $
EAPI=4
-
-inherit gnustep-base eutils prefix
+inherit gnustep-base eutils prefix toolchain-funcs
DESCRIPTION="GNUstep Makefile Package"
-
HOMEPAGE="http://www.gnustep.org"
SRC_URI="ftp://ftp.gnustep.org/pub/gnustep/core/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~sparc-solaris ~x86-solaris"
IUSE="libobjc2 native-exceptions"
-SLOT="0"
-LICENSE="GPL-2"
DEPEND="${GNUSTEP_CORE_DEPEND}
>=sys-devel/make-3.75
@@ -23,18 +22,36 @@ DEPEND="${GNUSTEP_CORE_DEPEND}
RDEPEND="${DEPEND}"
pkg_setup() {
+ # Determine libobjc.so to use
+ if use libobjc2; then
+ libobjc_version=libobjc.so.4
+ else
+ # Test new libobjc.so.3
+ $(tc-getCC) -Werror -Wl,-l:libobjc.so.3 "${FILESDIR}"/testlibobjc.m -o /dev/null 2> /dev/null \
+ && libobjc_version=libobjc.so.3 \
+ || libobjc_version=libobjc.so.2
+ fi
+
+ # For existing installations, determine if we will use another libobjc.so
if has_version gnustep-base/gnustep-make; then
- if ( use libobjc2 && ! has_version gnustep-base/gnustep-make[libobjc2] ) || \
- ( ! use libobjc2 && has_version gnustep-base/gnustep-make[libobjc2] ) || \
- ( use libobjc2 && has_version <gnustep-base/gnustep-make-2.6.2 ) ; then
- ewarn "TOGGLED libobjc2 USE-FLAG WARNING:"
- ewarn "You changed the libojbc2 use-flag"
+ local current_libobjc="$(awk -F: '/^OBJC_LIB_FLAG/ {print $2}' ${EPREFIX}/usr/share/GNUstep/Makefiles/config.make)"
+ # Old installations did not set this explicitely
+ : ${current_libobjc:=libobjc.so.2}
+
+ if [[ ${current_libobjc} != ${libobjc_version} ]]; then
+ ewarn "Warning: changed libobjc.so version!!"
+ ewarn "The libobjc.so version used for gnustep-make has changed"
+ ewarn "(either by the libojbc2 use-flag or a GCC upgrade)"
ewarn "You must rebuild all gnustep packages installed."
ewarn ""
ewarn "To do so, please emerge gnustep-base/gnustep-updater and run:"
ewarn "# gnustep-updater -l"
fi
fi
+
+ if use libobjc2; then
+ export CC=clang
+ fi
}
src_prepare() {
@@ -46,19 +63,11 @@ src_prepare() {
}
src_configure() {
- local libobjc_version
- if use libobjc2; then
- export CC=clang
- libobjc_version=4
- else
- libobjc_version=2
- fi
-
#--enable-objc-nonfragile-abi: only working in clang for now
econf \
--with-layout=fhs-system \
--with-config-file="${EPREFIX}"/etc/GNUstep/GNUstep.conf \
- --with-objc-lib-flag=-l:libobjc.so.${libobjc_version} \
+ --with-objc-lib-flag=-l:${libobjc_version} \
$(use_enable libobjc2 objc-nonfragile-abi) \
$(use_enable native-exceptions native-objc-exceptions)
}