svn commit: r432640 - head/graphics/rawtherapee-devel
Matthias Andree
mandree at FreeBSD.org
Sat Jan 28 18:22:32 UTC 2017
Author: mandree
Date: Sat Jan 28 18:22:31 2017
New Revision: 432640
URL: https://svnweb.freebsd.org/changeset/ports/432640
Log:
Fix i386 SSE2 crashes (use clang), and clean up a bit.
GCC 5.4 also does not get the stack properly aligned in i386 for SSE2
and causes SIGBUS on startup when trying to access an 8-byte aligned
double[8] array with SIMD instructions.[1] One workaround would be to use
-mstackrealign, the other is to use clang - we don't get OpenMP on i386
anyhow.
Move DISTVERSIONSUFFIX up to appease portlint.
Drop -fexpensive-optimizations, clang does not support it, and gcc 5.4
includes it in -O2 and -O3.
Note that the upstream discourages the use of 32-bit architectures for
rawtherapee.
Reported by: pkg-fallout@ [1]
Modified:
head/graphics/rawtherapee-devel/Makefile
Modified: head/graphics/rawtherapee-devel/Makefile
==============================================================================
--- head/graphics/rawtherapee-devel/Makefile Sat Jan 28 18:15:23 2017 (r432639)
+++ head/graphics/rawtherapee-devel/Makefile Sat Jan 28 18:22:31 2017 (r432640)
@@ -3,10 +3,10 @@
PORTNAME= rawtherapee
PORTVERSION= 5.0
+DISTVERSIONSUFFIX= -gtk3
PORTREVISION= 0
CATEGORIES= graphics
MASTER_SITES= http://rawtherapee.com/shared/source/
-DISTVERSIONSUFFIX= -gtk3
PKGNAMESUFFIX= -devel
MAINTAINER= mandree at FreeBSD.org
@@ -27,7 +27,7 @@ LIB_DEPENDS= libcanberra-gtk.so:audio/li
libsigc-2.0.so:devel/libsigc++20 \
libtiff.so:graphics/tiff
-USES= cmake:outsource compiler:gcc-c++11-lib desktop-file-utils dos2unix \
+USES= cmake:outsource desktop-file-utils dos2unix \
jpeg localbase:ldflags pkgconfig tar:xz
DOS2UNIX_REGEX= .*\.(cc|h)
LDFLAGS+= -Wl,--as-needed # fontconfig, freetype, gettext, libX11
@@ -68,9 +68,8 @@ NATIVE_DESC= Use -march=native for comp
OPENMP_CMAKE_BOOL= OPTION_OMP
-OPTIMIZED_CFLAGS_CFLAGS= -O3 -funroll-loops -msse2 \
- ${OPTIMIZED_CFLAGS_CFLAGS_${CHOSEN_COMPILER_TYPE}}
-OPTIMIZED_CFLAGS_CFLAGS_gcc= -fexpensive-optimizations
+OPTIMIZED_CFLAGS_CFLAGS= -O3 -funroll-loops -msse2
+# GCC 5.4 includes -fexpensive-optimizations in -O2 already
.include <bsd.port.options.mk>
@@ -92,14 +91,27 @@ CMAKE_BUILD_TYPE= RelWithDebInfo
STRIP=
.endif
+.if ${ARCH} == i386
+USES+= compiler:c++11-lib
+# FIXME: if we were to use GCC on i386, we'd need to use -mstackrealign
+# or similar options, else we get SIGBUS when SSE2 is enabled due to
+# improper alignment. Base clang is good enough though, i386 does not
+# support OpenMP, and those seeking ultimate performance need to use
+# amd64.
+.else
+USES+= compiler:gcc-c++11-lib
+.endif
+
# -------------------------------------------------------------------
.include <bsd.port.pre.mk>
+.if ${CHOSEN_COMPILER_TYPE} == gcc
# Workaround: this needs to be late because Mk/Uses/compiler.mk tramples
# over previously set values with gcc-libc++-configure as of r432539.
# GCC 4.9 doesn't generate usable code on FreeBSD 11.0.
USE_GCC= 5+
+.endif
post-patch:
@${REINPLACE_CMD} -e 's#DESTINATION "$${CMAKE_INSTALL_PREFIX}/share/man/man1"#DESTINATION "${MANPREFIX}/man/man1/"#' \
More information about the svn-ports-all
mailing list