diff options
author | manu <manu@pkgsrc.org> | 2020-04-16 09:28:39 +0000 |
---|---|---|
committer | manu <manu@pkgsrc.org> | 2020-04-16 09:28:39 +0000 |
commit | a2be698fed069c43284c742680f65ca5868c3e99 (patch) | |
tree | 2691edd612755f9780a9dd0f69a1f180796bd751 | |
parent | 6268059d25dcbd36f43cfb1dfe479358a3084d0c (diff) | |
download | pkgsrc-a2be698fed069c43284c742680f65ca5868c3e99.tar.gz |
Update gnustep-objc to 1.8.1
This is required to fix the build of gnustep-make on NetBSD 9.0
Changes since previous version in pkgsrc:
Version 1.8
- Added API for tracing, allowing interposition on all message sends matching a
given selector.
- Numerous bug fixes and stability improvements.
Version 1.7
- A new CMake-based build system. This makes all of the configurable options
available via a clean interface. CPack is supported for building RPM and DEB
packages out of the box.
- A new CTest-based test suite, replacing the old ad-hoc tests.
- Build a single libobjc with support for Objective-C++ on platforms where a
C++ ABI library (libcxxrt or libsupc++) is installed as a shared library.
- Added specialised property accessor functions and support for atomic
properties with C++ non-POD types.
- Significant improvements in property introspection and an exhaustive test
suite.
- Improved integration with libdispatch. The runtime will correctly register
work queues with the garbage collector or create autorelease pools around
block invocations.
- A new exception implementation providing better integration with foreign
exceptions (e.g. C++ exceptions). The new ABI is supported by clang 3.3 when
compiling with -fobjc-runtime=gnustep-1.7 (or higher). The old ABI is still
supported and both can be used within the same program, however code compiled
with the old ABI remains unreliable in the presence of foreign exceptions.
It is strongly recommended that anyone using exceptions with Objective-C++
switches to the new version.
- MIPS64 support in the assembly routines. Currently these are only tested
with the n64 ABI. They are believed to work with n32 and o32, but should be
considered unsupported on these platforms.
- Small algorithmic improvement to the objc_msgSend() implementation, giving
approximately a 10% speedup (architecture-dependent) on message sends.
- Updated optimisation passes to work with LLVM 3.2 and recent LLVM trunk.
-rw-r--r-- | devel/gnustep-objc/Makefile | 27 | ||||
-rw-r--r-- | devel/gnustep-objc/PLIST | 11 | ||||
-rw-r--r-- | devel/gnustep-objc/buildlink3.mk | 3 | ||||
-rw-r--r-- | devel/gnustep-objc/distinfo | 15 | ||||
-rw-r--r-- | devel/gnustep-objc/patches/patch-GNUmakefile | 69 | ||||
-rw-r--r-- | devel/gnustep-objc/patches/patch-objc_msgSend.x86-32.S | 23 | ||||
-rw-r--r-- | devel/gnustep-objc/patches/patch-objcxx_eh.cc | 26 | ||||
-rw-r--r-- | devel/gnustep-objc/patches/patch-objcxx_eh.h | 30 | ||||
-rw-r--r-- | doc/CHANGES-2020 | 3 |
9 files changed, 132 insertions, 75 deletions
diff --git a/devel/gnustep-objc/Makefile b/devel/gnustep-objc/Makefile index a340781f304..3769b04123d 100644 --- a/devel/gnustep-objc/Makefile +++ b/devel/gnustep-objc/Makefile @@ -1,23 +1,32 @@ -# $NetBSD: Makefile,v 1.31 2017/12/31 11:20:03 he Exp $ +# $NetBSD: Makefile,v 1.32 2020/04/16 09:28:39 manu Exp $ -DISTNAME= libobjc2-1.6.1 +DISTNAME= libobjc2-1.8.1 PKGNAME= ${DISTNAME:S/libobjc2/gnustep-objc/} -PKGREVISION= 3 +#PKGREVISION= 1 CATEGORIES= devel gnustep -MASTER_SITES= http://download.gna.org/gnustep/ -EXTRACT_SUFX= .tar.bz2 +MASTER_SITES= ftp://ftp.gnustep.org/pub/gnustep/libs/ +EXTRACT_SUFX= .tar.gz MAINTAINER= pkgsrc-users@NetBSD.org #HOMEPAGE= https://github.com/gnustep/gnustep-libobjc2 COMMENT= Objective-C runtime -LICENSE= gnu-gpl-v3 -USE_LANGUAGES= objc -USE_TOOLS+= gmake +USE_LANGUAGES= objc c++11 +USE_TOOLS+= gmake cmake MAKE_FILE= GNUmakefile MAKE_ENV+= ADDITIONAL_LDFLAGS=-lpthread +MAKE_ENV+= LIBOBJC=libobjc +MAKE_ENV+= LIBOBJCXX=libobjcxx +MAKE_ENV+= VERSION=4.6 +MAKE_ENV+= MAJOR_VERSION=4 +MAKE_ENV+= MINOR_VERSION=6 GNUSTEP_OVERRIDE_INSTALL= YES -NO_CONFIGURE= YES + +INSTALLATION_DIRS= lib include/objc + +do-configure: + cd ${WRKSRC} && ${CMAKE} -Wno-dev . + .include "../../devel/gnustep-make/buildlink3.mk" .include "../../mk/compiler.mk" diff --git a/devel/gnustep-objc/PLIST b/devel/gnustep-objc/PLIST index 650b210867f..55e0cfb82e5 100644 --- a/devel/gnustep-objc/PLIST +++ b/devel/gnustep-objc/PLIST @@ -1,4 +1,10 @@ -@comment $NetBSD: PLIST,v 1.6 2012/11/01 20:05:17 joerg Exp $ +@comment $NetBSD: PLIST,v 1.7 2020/04/16 09:28:39 manu Exp $ +lib/libobjc.so +lib/libobjc.so.4 +lib/libobjc.so.4.6 +lib/libobjcxx.so +lib/libobjcxx.so.4 +lib/libobjcxx.so.4.6 include/objc/Availability.h include/objc/Object.h include/objc/Protocol.h @@ -8,6 +14,7 @@ include/objc/capabilities.h include/objc/developer.h include/objc/encoding.h include/objc/hooks.h +include/objc/message.h include/objc/objc-api.h include/objc/objc-arc.h include/objc/objc-auto.h @@ -16,5 +23,3 @@ include/objc/runtime-deprecated.h include/objc/runtime.h include/objc/slot.h include/objc/toydispatch.h -lib/libobjc.so -lib/libobjc.so.4.6.0 diff --git a/devel/gnustep-objc/buildlink3.mk b/devel/gnustep-objc/buildlink3.mk index 6a0d766a38e..bba933ffdce 100644 --- a/devel/gnustep-objc/buildlink3.mk +++ b/devel/gnustep-objc/buildlink3.mk @@ -1,4 +1,4 @@ -# $NetBSD: buildlink3.mk,v 1.11 2017/12/31 11:20:03 he Exp $ +# $NetBSD: buildlink3.mk,v 1.12 2020/04/16 09:28:39 manu Exp $ BUILDLINK_TREE+= gnustep-objc @@ -9,6 +9,7 @@ BUILDLINK_API_DEPENDS.gnustep-objc+= gnustep-objc>=1.3.0 BUILDLINK_ABI_DEPENDS.gnustep-objc+= gnustep-objc>=1.3.0nb1 BUILDLINK_PKGSRCDIR.gnustep-objc?= ../../devel/gnustep-objc +BUILDLINK_CFLAGS.gnustep-objc+= -I${BUILDLINK_PREFIX.gnustep-objc}/include/objc BUILDLINK_LDFLAGS.gnustep-objc+= -lobjc -lpthread .if ${OPSYS} == "NetBSD" # Missing _Unwind_* symbols in gnustep objc.so, needs to come from somewhere... diff --git a/devel/gnustep-objc/distinfo b/devel/gnustep-objc/distinfo index 0521d6a1d3f..e67dd671186 100644 --- a/devel/gnustep-objc/distinfo +++ b/devel/gnustep-objc/distinfo @@ -1,8 +1,9 @@ -$NetBSD: distinfo,v 1.11 2016/11/16 22:46:48 wiedi Exp $ +$NetBSD: distinfo,v 1.12 2020/04/16 09:28:39 manu Exp $ -SHA1 (libobjc2-1.6.1.tar.bz2) = 02a6cf02f620530ecd64f32dca348def92412b2b -RMD160 (libobjc2-1.6.1.tar.bz2) = 7babdba063d5377125ffd5b9481e074c32a8cf10 -SHA512 (libobjc2-1.6.1.tar.bz2) = e43bf867ca734e76274826a222a10e9b603e085a9dd245912ee16603bb61e276fcd9388918f61aba7d0bded0c045bc9799f7e24b309d670d144175707662f9c8 -Size (libobjc2-1.6.1.tar.bz2) = 116263 bytes -SHA1 (patch-GNUmakefile) = 35524689235c4596c58e32eb38ad770d59e7d994 -SHA1 (patch-objc_msgSend.x86-32.S) = ff1cc0247e5c2277f852f68addbe0bae4db82ba7 +SHA1 (libobjc2-1.8.1.tar.gz) = 28b53704d481de4414bfe6ae94f2a84358ef766d +RMD160 (libobjc2-1.8.1.tar.gz) = 1beaf2a2ee4ef1370bbb2fac4f7b1d233f0a9e09 +SHA512 (libobjc2-1.8.1.tar.gz) = 518f36e96a82a076fc67fe384226bd97310cd10a53c7b0951db9f3658aa534582b245d5cb97956fe91c38338c3fc8f1e569dd8af36f6d12e32bf1460251d02eb +Size (libobjc2-1.8.1.tar.gz) = 173635 bytes +SHA1 (patch-GNUmakefile) = 0760597d10e72019f5159f9b14996bf7244e6f99 +SHA1 (patch-objcxx_eh.cc) = 329e6e41ab78bd9527051508934e89b1c9a71400 +SHA1 (patch-objcxx_eh.h) = e49fab21285c3a5aaaf6a79fff2105fa029ca90a diff --git a/devel/gnustep-objc/patches/patch-GNUmakefile b/devel/gnustep-objc/patches/patch-GNUmakefile index 8660b390f35..da213cc76f9 100644 --- a/devel/gnustep-objc/patches/patch-GNUmakefile +++ b/devel/gnustep-objc/patches/patch-GNUmakefile @@ -1,34 +1,41 @@ -$NetBSD: patch-GNUmakefile,v 1.1 2016/11/16 22:46:49 wiedi Exp $ +$NetBSD: patch-GNUmakefile,v 1.2 2020/04/16 09:28:39 manu Exp $ -- only use -no-integrated-as with clang -- _XOPEN_SOURCE=500 conflicts with c99 +Install fixes ---- GNUmakefile.orig 2012-03-21 16:45:31.000000000 +0000 -+++ GNUmakefile -@@ -81,7 +81,7 @@ ${LIBOBJC}_OBJ_FILES = \ +--- GNUmakefile.orig 2015-08-07 13:33:41.000000000 +0200 ++++ GNUmakefile 2020-04-15 03:22:59.875513487 +0200 +@@ -78,22 +78,22 @@ - # Add rule for producing object files from assembler - $(GNUSTEP_OBJ_INSTANCE_DIR)/%.S$(OEXT) : %.S -- $(ECHO_COMPILING)$(CC) -no-integrated-as $< -c \ -+ $(ECHO_COMPILING)$(CC) $(ASMFLAGS) $< -c \ - $(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_CPPFLAGS) \ - $(ALL_CFLAGS)) \ - $($<_FILE_FLAGS) -o $@$(END_ECHO) -@@ -153,7 +153,7 @@ endif - # we are special, precious, little flowers. - ${LIBOBJC}_CPPFLAGS +=\ - -D__OBJC_RUNTIME_INTERNAL__=1\ -- -D_XOPEN_SOURCE=500\ -+ -D_XOPEN_SOURCE=600\ - -D__BSD_VISIBLE=1\ - -D_BSD_SOURCE=1\ - -@@ -164,6 +164,8 @@ ${LIBOBJC}_CFLAGS += -std=gnu99 -g -fexc - ${LIBOBJC}_CCFLAGS += -std=c++98 -g -fexceptions #-fvisibility=hidden - ${LIBOBJC}_CFLAGS += -Wno-unused-function - -+ASMFLAGS += `if $(CC) -v 2>&1| grep -q 'clang' ; then echo -no-integrated-as ; fi` -+ - # Uncomment this when debugging - it makes everything slow, but means that the - # debugger actually works... - ifeq ($(debug), yes) + install: all + $(SILENT)echo Installing libraries... + $(SILENT)install -d $(LIB_DIR) +- $(SILENT)install -m 444 $(STRIP) $(LIBOBJC).so.$(VERSION) $(LIB_DIR) +- $(SILENT)install -m 444 $(STRIP) $(LIBOBJCXX).so.$(VERSION) $(LIB_DIR) +- $(SILENT)install -m 444 $(STRIP) $(LIBOBJC).a $(LIB_DIR) ++ $(SILENT)install -m 444 $(STRIP) $(LIBOBJC).so.$(VERSION) $(DESTDIR)/$(LIB_DIR) ++ $(SILENT)install -m 444 $(STRIP) $(LIBOBJCXX).so.$(VERSION) $(DESTDIR)/$(LIB_DIR) ++ #$(SILENT)install -m 444 $(STRIP) $(LIBOBJC).a $(LIB_DIR) + $(SILENT)echo Creating symbolic links... +- $(SILENT)ln -sf $(LIBOBJC).so.$(VERSION) $(LIB_DIR)/$(LIBOBJC).so +- $(SILENT)ln -sf $(LIBOBJC).so.$(VERSION) $(LIB_DIR)/$(LIBOBJC).so.$(MAJOR_VERSION) +- $(SILENT)ln -sf $(LIBOBJC).so.$(VERSION) $(LIB_DIR)/$(LIBOBJC).so.$(MAJOR_VERSION).$(MINOR_VERSION) +- $(SILENT)ln -sf $(LIBOBJCXX).so.$(VERSION) $(LIB_DIR)/$(LIBOBJCXX).so +- $(SILENT)ln -sf $(LIBOBJCXX).so.$(VERSION) $(LIB_DIR)/$(LIBOBJCXX).so.$(MAJOR_VERSION) +- $(SILENT)ln -sf $(LIBOBJCXX).so.$(VERSION) $(LIB_DIR)/$(LIBOBJCXX).so.$(MAJOR_VERSION).$(MINOR_VERSION) ++ $(SILENT)ln -sf $(LIBOBJC).so.$(VERSION) $(DESTDIR)$(LIB_DIR)/$(LIBOBJC).so ++ $(SILENT)ln -sf $(LIBOBJC).so.$(VERSION) $(DESTDIR)$(LIB_DIR)/$(LIBOBJC).so.$(MAJOR_VERSION) ++ #$(SILENT)ln -sf $(LIBOBJC).so.$(VERSION) $(DESTDIR)$(LIB_DIR)/$(LIBOBJC).so.$(MAJOR_VERSION).$(MINOR_VERSION) ++ $(SILENT)ln -sf $(LIBOBJCXX).so.$(VERSION) $(DESTDIR)$(LIB_DIR)/$(LIBOBJCXX).so ++ $(SILENT)ln -sf $(LIBOBJCXX).so.$(VERSION) $(DESTDIR)$(LIB_DIR)/$(LIBOBJCXX).so.$(MAJOR_VERSION) ++ #$(SILENT)ln -sf $(LIBOBJCXX).so.$(VERSION) $(DESTDIR)$(LIB_DIR)/$(LIBOBJCXX).so.$(MAJOR_VERSION).$(MINOR_VERSION) + $(SILENT)echo Installing headers... +- $(SILENT)install -d $(HEADER_DIR)/objc +- $(SILENT)install -m 444 objc/*.h $(HEADER_DIR)/objc +- $(SILENT)install -m 444 objc/*.h $(HEADER_DIR)/objc ++ $(SILENT)install -d $(DESTDIR)$(HEADER_DIR)/objc ++ $(SILENT)install -m 444 objc/*.h $(DESTDIR)$(HEADER_DIR)/objc ++ $(SILENT)install -m 444 objc/*.h $(DESTDIR)$(HEADER_DIR)/objc + $(SILENT)echo "To use the newly installed objc2 library with GNUstep," + $(SILENT)echo "please change to your gnustep-make directory and" + $(SILENT)echo "type 'configure; make install' to tell gnustep-make" + $(SILENT)echo "to use the new library (you will then need to configure" diff --git a/devel/gnustep-objc/patches/patch-objc_msgSend.x86-32.S b/devel/gnustep-objc/patches/patch-objc_msgSend.x86-32.S deleted file mode 100644 index eb8d20005ff..00000000000 --- a/devel/gnustep-objc/patches/patch-objc_msgSend.x86-32.S +++ /dev/null @@ -1,23 +0,0 @@ -$NetBSD: patch-objc_msgSend.x86-32.S,v 1.2 2016/11/16 22:46:49 wiedi Exp $ - -Depending on the compiler, __i686.get_pc_thunk.bx may be missing -from runtime. Replace it by a localy supplied version. - ---- objc_msgSend.x86-32.S.orig 2012-05-04 13:28:08.000000000 +0000 -+++ objc_msgSend.x86-32.S -@@ -78,7 +78,7 @@ - jmp *%eax - 6: # smallObject: - push %ebx # Save old %ebx -- call __i686.get_pc_thunk.bx -+ call ___i686.get_pc_thunk.bx - addl $_GLOBAL_OFFSET_TABLE_, %ebx - mov SmallObjectClasses@GOT(%ebx), %eax - mov (%eax), %eax -@@ -98,3 +98,6 @@ objc_msgSend: - .type objc_msgSend_stret, @function - objc_msgSend_stret: - MSGSEND 8, 12, 0 -+___i686.get_pc_thunk.bx: -+ mov (%esp),%ebx -+ ret diff --git a/devel/gnustep-objc/patches/patch-objcxx_eh.cc b/devel/gnustep-objc/patches/patch-objcxx_eh.cc new file mode 100644 index 00000000000..ecae72201d0 --- /dev/null +++ b/devel/gnustep-objc/patches/patch-objcxx_eh.cc @@ -0,0 +1,26 @@ +$NetBSD: patch-objcxx_eh.cc,v 1.1 2020/04/16 09:28:39 manu Exp $ + +Workaround build failure due to redefinition + +--- objcxx_eh.cc.orig 2020-04-14 11:22:03.686048307 +0200 ++++ objcxx_eh.cc 2020-04-14 11:22:33.134026599 +0200 +@@ -14,8 +14,9 @@ + } + + using __cxxabiv1::__class_type_info; + ++#if 0 + namespace std + { + /** + * std::type_info defined with the GCC ABI. This may not be exposed in +@@ -47,8 +48,9 @@ + const __class_type_info *target, + void **thrown_object) const; + }; + } ++#endif + + using namespace std; + + diff --git a/devel/gnustep-objc/patches/patch-objcxx_eh.h b/devel/gnustep-objc/patches/patch-objcxx_eh.h new file mode 100644 index 00000000000..5dc39c09c21 --- /dev/null +++ b/devel/gnustep-objc/patches/patch-objcxx_eh.h @@ -0,0 +1,30 @@ +$NetBSD: patch-objcxx_eh.h,v 1.1 2020/04/16 09:28:39 manu Exp $ + +Workaround build failure due to redefinition + +--- objcxx_eh.h.orig 2015-08-07 13:33:41.000000000 +0200 ++++ objcxx_eh.h 2020-04-14 11:19:51.950615777 +0200 +@@ -1,7 +1,12 @@ + #ifdef __cplusplus + extern "C" { + #endif ++ ++#ifndef _GLIBCXX_NOTHROW ++#define _GLIBCXX_NOTHROW ++#endif ++ + /** + * Allocates a C++ exception. This function is part of the Itanium C++ ABI and + * is provided externally. + */ +@@ -24,9 +29,9 @@ + * Frees an exception object allocated by __cxa_allocate_exception(). Part of + * the Itanium C++ ABI. + */ + __attribute__((weak)) +-void __cxa_free_exception(void *thrown_exception); ++void __cxa_free_exception(void *thrown_exception) _GLIBCXX_NOTHROW; + /** + * Tests whether a C++ exception contains an Objective-C object, and returns if + * if it does. The second argument is a pointer to a boolean value indicating + * whether this is a valid object. diff --git a/doc/CHANGES-2020 b/doc/CHANGES-2020 index 25905a88ed7..38d0025008f 100644 --- a/doc/CHANGES-2020 +++ b/doc/CHANGES-2020 @@ -1,4 +1,4 @@ -$NetBSD: CHANGES-2020,v 1.2310 2020/04/16 09:21:51 manu Exp $ +$NetBSD: CHANGES-2020,v 1.2311 2020/04/16 09:28:39 manu Exp $ Changes to the packages collection and infrastructure in 2020: @@ -3166,3 +3166,4 @@ Changes to the packages collection and infrastructure in 2020: Updated databases/mariadb55-client to 5.5.67 [manu 2020-04-16] Updated databases/mariadb55-server to 5.5.67 [manu 2020-04-16] Updated devel/gnustep-make to 2.8.0 [manu 2020-04-16] + Updated devel/gnustep-objc to 1.8.1 [manu 2020-04-16] |