diff options
author | theraven <theraven@FreeBSD.org> | 2019-02-03 23:37:58 +0800 |
---|---|---|
committer | theraven <theraven@FreeBSD.org> | 2019-02-03 23:37:58 +0800 |
commit | 0699c59a70f510b71506ecb61199c2ee997c9c8a (patch) | |
tree | 8d55e3d4d3e216787ab6284b0e649a7a6d2f047d /Mk | |
parent | 4b9483ae175d050dbe0859050aa4f4857a2d608b (diff) | |
download | freebsd-ports-gnome-0699c59a70f510b71506ecb61199c2ee997c9c8a.tar.gz freebsd-ports-gnome-0699c59a70f510b71506ecb61199c2ee997c9c8a.tar.zst freebsd-ports-gnome-0699c59a70f510b71506ecb61199c2ee997c9c8a.zip |
Move Objective-C ports to the v2 GNUstep ABI.
* Bump the LLVM revision used for GNUstep to 7, the minimum to support
the new ABI.
* GNUstep-back does not work with lld, so mark it to use Gold (BFD LD
doesn't seem able to link Objective-C things).
* Turn off some annoying debug logs in GNUstep back, which generate
several messages per second when you move the mouse. These should
never have been enabled in a release build anyway.
* Downgrade Cenon to 4.0.2. This was the last version to actually work
with GNUstep (the later ones use XCode >= 5 .xib files, which GNUstep
can't parse).
* Update gorm to git head. The current release doesn't work with the
new Objective-C ABI, but -head has the patches to fix it.
* Update PikoPixel and add it to the gnustep-app meta-package.
* Update the three core GNUstep packages to the latest release.
* Update gnumail and pantomime to the latest release and fix a linking
error with the new ABI.
* Update GNUstep FTP to the latest version.
Reviewed by: bapt (previous version)
Diffstat (limited to 'Mk')
-rw-r--r-- | Mk/Uses/gnustep.mk | 8 | ||||
-rw-r--r-- | Mk/Uses/objc.mk | 12 |
2 files changed, 15 insertions, 5 deletions
diff --git a/Mk/Uses/gnustep.mk b/Mk/Uses/gnustep.mk index 225bf46b13be..130249b807dc 100644 --- a/Mk/Uses/gnustep.mk +++ b/Mk/Uses/gnustep.mk @@ -40,6 +40,14 @@ MAKE_ENV+= ADDITIONAL_${a}="${ADDITIONAL_${a}} ${${a}}" MAKE_ENV+= ADDITIONAL_${a}="${ADDITIONAL_${a}}" .endfor MAKE_ARGS+=messages=yes +# BFD ld can't link Objective-C programs for some reason. Most things are fine +# with LLD, but the things that don't (e.g. sope) need gold. +.if defined(LLD_UNSAFE) +MAKE_ARGS+=LDFLAGS='-fuse-ld=gold' +BUILD_DEPENDS+= ${LOCALBASE}/bin/ld.gold:devel/binutils +.else +MAKE_ARGS+=LDFLAGS='-fuse-ld=${OBJC_LLD}' +.endif MAKEFILE= GNUmakefile #MAKE_ENV+= GNUSTEP_CONFIG_FILE=${PORTSDIR}/devel/gnustep-make/files/GNUstep.conf diff --git a/Mk/Uses/objc.mk b/Mk/Uses/objc.mk index 00c76007ba77..5583e9861cf0 100644 --- a/Mk/Uses/objc.mk +++ b/Mk/Uses/objc.mk @@ -10,7 +10,7 @@ .if !defined(_INCLUDE_USES_OBJC_MK) _INCLUDE_USES_OBJC_MK= yes -OBJC_CLANG_VERSION=60 +OBJC_CLANG_VERSION=70 objc_ARGS?= .if !empty(objc_ARGS) && ! ${objc_ARGS:Mcompiler} @@ -61,11 +61,13 @@ ALT_COMPILER_TYPE= gcc CC= /usr/bin/clang CPP= /usr/bin/clang-cpp CXX= /usr/bin/clang++ +OBJC_LLD= lld .else -BUILD_DEPENDS+= ${LOCALBASE}/bin/clang${OBJC_CLANG_VERSION}:devel/llvm${OBJC_CLANG_VERSION} -CPP= ${LOCALBASE}/bin/clang-cpp${OBJC_CLANG_VERSION} -CC= ${LOCALBASE}/bin/clang${OBJC_CLANG_VERSION} -CXX= ${LOCALBASE}/bin/clang++${OBJC_CLANG_VERSION} +BUILD_DEPENDS+= ${LOCALBASE}/bin/clang${OBJC_CLANG_VERSION}:devel/llvm${OBJC_CLANG_VERSION} +CPP= ${LOCALBASE}/bin/clang-cpp${OBJC_CLANG_VERSION} +CC= ${LOCALBASE}/bin/clang${OBJC_CLANG_VERSION} +CXX= ${LOCALBASE}/bin/clang++${OBJC_CLANG_VERSION} +OBJC_LLD= lld${OBJC_CLANG_VERSION} .endif .endif |