Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/doc Update gnustep-objc to 1.8.1



details:   https://anonhg.NetBSD.org/pkgsrc/rev/8389753a3ff7
branches:  trunk
changeset: 429090:8389753a3ff7
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 998f7c2097c7 -r 8389753a3ff7 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 998f7c2097c7 -r 8389753a3ff7 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 998f7c2097c7 -r 8389753a3ff7 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 998f7c2097c7 -r 8389753a3ff7 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 998f7c2097c7 -r 8389753a3ff7 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 998f7c2097c7 -r 8389753a3ff7 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 998f7c2097c7 -r 8389753a3ff7 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 998f7c2097c7 -r 8389753a3ff7 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 998f7c2097c7 -r 8389753a3ff7 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