pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc Update gnustep-objc to 1.8.1
details: https://anonhg.NetBSD.org/pkgsrc/rev/c52ef06136b1
branches: trunk
changeset: 427393:c52ef06136b1
user: manu <manu%pkgsrc.org@localhost>
date: Thu Apr 16 09:28:39 2020 +0000
description:
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.
diffstat:
devel/gnustep-objc/Makefile | 27 ++++--
devel/gnustep-objc/PLIST | 11 ++-
devel/gnustep-objc/buildlink3.mk | 3 +-
devel/gnustep-objc/distinfo | 15 ++-
devel/gnustep-objc/patches/patch-GNUmakefile | 71 +++++++++--------
devel/gnustep-objc/patches/patch-objc_msgSend.x86-32.S | 23 -----
devel/gnustep-objc/patches/patch-objcxx_eh.cc | 26 ++++++
devel/gnustep-objc/patches/patch-objcxx_eh.h | 30 +++++++
doc/CHANGES-2020 | 3 +-
9 files changed, 133 insertions(+), 76 deletions(-)
diffs (293 lines):
diff -r 811a293b79c0 -r c52ef06136b1 devel/gnustep-objc/Makefile
--- a/devel/gnustep-objc/Makefile Thu Apr 16 09:21:51 2020 +0000
+++ b/devel/gnustep-objc/Makefile Thu Apr 16 09:28:39 2020 +0000
@@ -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@localhost
#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 -r 811a293b79c0 -r c52ef06136b1 devel/gnustep-objc/PLIST
--- a/devel/gnustep-objc/PLIST Thu Apr 16 09:21:51 2020 +0000
+++ b/devel/gnustep-objc/PLIST Thu Apr 16 09:28:39 2020 +0000
@@ -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/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.h
include/objc/slot.h
include/objc/toydispatch.h
-lib/libobjc.so
-lib/libobjc.so.4.6.0
diff -r 811a293b79c0 -r c52ef06136b1 devel/gnustep-objc/buildlink3.mk
--- a/devel/gnustep-objc/buildlink3.mk Thu Apr 16 09:21:51 2020 +0000
+++ b/devel/gnustep-objc/buildlink3.mk Thu Apr 16 09:28:39 2020 +0000
@@ -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_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 -r 811a293b79c0 -r c52ef06136b1 devel/gnustep-objc/distinfo
--- a/devel/gnustep-objc/distinfo Thu Apr 16 09:21:51 2020 +0000
+++ b/devel/gnustep-objc/distinfo Thu Apr 16 09:28:39 2020 +0000
@@ -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 -r 811a293b79c0 -r c52ef06136b1 devel/gnustep-objc/patches/patch-GNUmakefile
--- a/devel/gnustep-objc/patches/patch-GNUmakefile Thu Apr 16 09:21:51 2020 +0000
+++ b/devel/gnustep-objc/patches/patch-GNUmakefile Thu Apr 16 09:28:39 2020 +0000
@@ -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 $
+
+Install fixes
-- only use -no-integrated-as with clang
-- _XOPEN_SOURCE=500 conflicts with c99
-
---- 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 -r 811a293b79c0 -r c52ef06136b1 devel/gnustep-objc/patches/patch-objc_msgSend.x86-32.S
--- a/devel/gnustep-objc/patches/patch-objc_msgSend.x86-32.S Thu Apr 16 09:21:51 2020 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -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 -r 811a293b79c0 -r c52ef06136b1 devel/gnustep-objc/patches/patch-objcxx_eh.cc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/gnustep-objc/patches/patch-objcxx_eh.cc Thu Apr 16 09:28:39 2020 +0000
@@ -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 -r 811a293b79c0 -r c52ef06136b1 devel/gnustep-objc/patches/patch-objcxx_eh.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/gnustep-objc/patches/patch-objcxx_eh.h Thu Apr 16 09:28:39 2020 +0000
@@ -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 -r 811a293b79c0 -r c52ef06136b1 doc/CHANGES-2020
--- a/doc/CHANGES-2020 Thu Apr 16 09:21:51 2020 +0000
+++ b/doc/CHANGES-2020 Thu Apr 16 09:28:39 2020 +0000
@@ -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 @@
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]
Home |
Main Index |
Thread Index |
Old Index