Wed Nov 16 22:46:49 2016 UTC ()
fix gnustep-objc on illumos


(wiedi)
diff -r1.27 -r1.28 pkgsrc/devel/gnustep-objc/Makefile
diff -r1.10 -r1.11 pkgsrc/devel/gnustep-objc/distinfo
diff -r0 -r1.1 pkgsrc/devel/gnustep-objc/patches/patch-GNUmakefile
diff -r1.1 -r1.2 pkgsrc/devel/gnustep-objc/patches/patch-objc_msgSend.x86-32.S

cvs diff -r1.27 -r1.28 pkgsrc/devel/gnustep-objc/Makefile (expand / switch to unified diff)

--- pkgsrc/devel/gnustep-objc/Makefile 2015/04/18 07:23:18 1.27
+++ pkgsrc/devel/gnustep-objc/Makefile 2016/11/16 22:46:48 1.28
@@ -1,24 +1,26 @@ @@ -1,24 +1,26 @@
1# $NetBSD: Makefile,v 1.27 2015/04/18 07:23:18 manu Exp $ 1# $NetBSD: Makefile,v 1.28 2016/11/16 22:46:48 wiedi Exp $
2 2
3DISTNAME= libobjc2-1.6.1 3DISTNAME= libobjc2-1.6.1
4PKGNAME= ${DISTNAME:S/libobjc2/gnustep-objc/} 4PKGNAME= ${DISTNAME:S/libobjc2/gnustep-objc/}
5PKGREVISION= 1 5PKGREVISION= 2
6CATEGORIES= devel gnustep 6CATEGORIES= devel gnustep
7MASTER_SITES= http://download.gna.org/gnustep/ 7MASTER_SITES= http://download.gna.org/gnustep/
8EXTRACT_SUFX= .tar.bz2 8EXTRACT_SUFX= .tar.bz2
9 9
10MAINTAINER= pkgsrc-users@NetBSD.org 10MAINTAINER= pkgsrc-users@NetBSD.org
11HOMEPAGE= https://github.com/gnustep/gnustep-libobjc2 11HOMEPAGE= https://github.com/gnustep/gnustep-libobjc2
12COMMENT= Objective-C runtime 12COMMENT= Objective-C runtime
13LICENSE= gnu-gpl-v3 13LICENSE= gnu-gpl-v3
14 14
15USE_LANGUAGES= objc 15USE_LANGUAGES= objc
16USE_TOOLS+= gmake 16USE_TOOLS+= gmake
17MAKE_FILE= GNUmakefile 17MAKE_FILE= GNUmakefile
18MAKE_ENV+= ADDITIONAL_LDFLAGS=-lpthread 18MAKE_ENV+= ADDITIONAL_LDFLAGS=-lpthread
19GNUSTEP_OVERRIDE_INSTALL= YES 19GNUSTEP_OVERRIDE_INSTALL= YES
20NO_CONFIGURE= YES 20NO_CONFIGURE= YES
21 21
 22.include "../../mk/compiler.mk"
 23
22.include "../../devel/gnustep-make/buildlink3.mk" 24.include "../../devel/gnustep-make/buildlink3.mk"
23.include "../../mk/pthread.buildlink3.mk" 25.include "../../mk/pthread.buildlink3.mk"
24.include "../../mk/bsd.pkg.mk" 26.include "../../mk/bsd.pkg.mk"

cvs diff -r1.10 -r1.11 pkgsrc/devel/gnustep-objc/distinfo (expand / switch to unified diff)

--- pkgsrc/devel/gnustep-objc/distinfo 2015/11/03 03:27:29 1.10
+++ pkgsrc/devel/gnustep-objc/distinfo 2016/11/16 22:46:48 1.11
@@ -1,7 +1,8 @@ @@ -1,7 +1,8 @@
1$NetBSD: distinfo,v 1.10 2015/11/03 03:27:29 agc Exp $ 1$NetBSD: distinfo,v 1.11 2016/11/16 22:46:48 wiedi Exp $
2 2
3SHA1 (libobjc2-1.6.1.tar.bz2) = 02a6cf02f620530ecd64f32dca348def92412b2b 3SHA1 (libobjc2-1.6.1.tar.bz2) = 02a6cf02f620530ecd64f32dca348def92412b2b
4RMD160 (libobjc2-1.6.1.tar.bz2) = 7babdba063d5377125ffd5b9481e074c32a8cf10 4RMD160 (libobjc2-1.6.1.tar.bz2) = 7babdba063d5377125ffd5b9481e074c32a8cf10
5SHA512 (libobjc2-1.6.1.tar.bz2) = e43bf867ca734e76274826a222a10e9b603e085a9dd245912ee16603bb61e276fcd9388918f61aba7d0bded0c045bc9799f7e24b309d670d144175707662f9c8 5SHA512 (libobjc2-1.6.1.tar.bz2) = e43bf867ca734e76274826a222a10e9b603e085a9dd245912ee16603bb61e276fcd9388918f61aba7d0bded0c045bc9799f7e24b309d670d144175707662f9c8
6Size (libobjc2-1.6.1.tar.bz2) = 116263 bytes 6Size (libobjc2-1.6.1.tar.bz2) = 116263 bytes
7SHA1 (patch-objc_msgSend.x86-32.S) = 381fe840c433864ea39858b0cf4af6af46790d06 7SHA1 (patch-GNUmakefile) = 35524689235c4596c58e32eb38ad770d59e7d994
 8SHA1 (patch-objc_msgSend.x86-32.S) = ff1cc0247e5c2277f852f68addbe0bae4db82ba7

File Added: pkgsrc/devel/gnustep-objc/patches/Attic/patch-GNUmakefile
$NetBSD: patch-GNUmakefile,v 1.1 2016/11/16 22:46:49 wiedi Exp $

- 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 = \
 
 # 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)

cvs diff -r1.1 -r1.2 pkgsrc/devel/gnustep-objc/patches/Attic/patch-objc_msgSend.x86-32.S (expand / switch to unified diff)

--- pkgsrc/devel/gnustep-objc/patches/Attic/patch-objc_msgSend.x86-32.S 2015/04/18 07:23:18 1.1
+++ pkgsrc/devel/gnustep-objc/patches/Attic/patch-objc_msgSend.x86-32.S 2016/11/16 22:46:49 1.2
@@ -1,26 +1,23 @@ @@ -1,26 +1,23 @@
1$NetBSD: patch-objc_msgSend.x86-32.S,v 1.1 2015/04/18 07:23:18 manu Exp $ 1$NetBSD: patch-objc_msgSend.x86-32.S,v 1.2 2016/11/16 22:46:49 wiedi Exp $
2 2
3Depending on the compiler, __i686.get_pc_thunk.bx may be missing 3Depending on the compiler, __i686.get_pc_thunk.bx may be missing
4from runtime. Replace it by a localy supplied version. 4from runtime. Replace it by a localy supplied version.
5 5
6--- objc_msgSend.x86-32.S.orig 2015-04-17 09:44:49.000000000 +0000 6--- objc_msgSend.x86-32.S.orig 2012-05-04 13:28:08.000000000 +0000
7+++ objc_msgSend.x86-32.S 2015-04-17 09:47:40.000000000 +0000 7+++ objc_msgSend.x86-32.S
8@@ -77,9 +77,9 @@ 8@@ -78,7 +78,7 @@
9  
10 jmp *%eax 9 jmp *%eax
11 6: # smallObject: 10 6: # smallObject:
12 push %ebx # Save old %ebx 11 push %ebx # Save old %ebx
13- call __i686.get_pc_thunk.bx 12- call __i686.get_pc_thunk.bx
14+ call ___i686.get_pc_thunk.bx 13+ call ___i686.get_pc_thunk.bx
15 addl $_GLOBAL_OFFSET_TABLE_, %ebx 14 addl $_GLOBAL_OFFSET_TABLE_, %ebx
16 mov SmallObjectClasses@GOT(%ebx), %eax 15 mov SmallObjectClasses@GOT(%ebx), %eax
17 mov (%eax), %eax 16 mov (%eax), %eax
18 popl %ebx 17@@ -98,3 +98,6 @@ objc_msgSend:
19@@ -97,4 +97,7 @@ 
20 .globl objc_msgSend_stret 
21 .type objc_msgSend_stret, @function 18 .type objc_msgSend_stret, @function
22 objc_msgSend_stret: 19 objc_msgSend_stret:
23 MSGSEND 8, 12, 0 20 MSGSEND 8, 12, 0
24+___i686.get_pc_thunk.bx: 21+___i686.get_pc_thunk.bx:
25+ mov (%esp),%ebx 22+ mov (%esp),%ebx
26+ ret 23+ ret