From 3b34e5a77b54146a7721c10e434795acca122aa0 Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Mon, 27 Aug 2018 17:31:44 +0000 Subject: [PATCH] MFH: r478237 r478238 r478239 games/keeperrl: unbreak with libc++ 7, GCC and on FreeBSD 10 Approved by: ports-secteam blanket --- games/keeperrl/Makefile | 13 ++++++------ games/keeperrl/distinfo | 2 ++ games/keeperrl/files/patch-stack__printer.cpp | 20 +++++++++++++++++++ 3 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 games/keeperrl/files/patch-stack__printer.cpp diff --git a/games/keeperrl/Makefile b/games/keeperrl/Makefile index c6ca8bd93c31..c057499ae98f 100644 --- a/games/keeperrl/Makefile +++ b/games/keeperrl/Makefile @@ -2,9 +2,12 @@ PORTNAME= keeperrl PORTVERSION= 0.0.${ALPHA_VERSION} -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= games +PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ +PATCHFILES= c0fc69cbee72.patch:-p1 + MAINTAINER= ports@FreeBSD.org COMMENT= Ambitious dungeon builder with roguelike elements @@ -13,12 +16,10 @@ LICENSE_COMB= multi LICENSE_FILE_GPLv2= ${WRKSRC}/COPYING.txt LICENSE_FILE_OFL11= ${WRKSRC}/data_contrib/SIL_Open_Font_License.txt -BROKEN_FreeBSD_10= needs c++14, does not build even with clang5 - LIB_DEPENDS= libvorbis.so:audio/libvorbis \ libcurl.so:ftp/curl -USES= gmake localbase openal +USES= compiler:c++14-lang gmake localbase openal USE_GITHUB= yes GH_ACCOUNT= miki151 @@ -32,6 +33,8 @@ LIBS+= -lexecinfo LLD_UNSAFE= yes MAKE_ARGS= DATA_DIR="${DATADIR}" GCC="${CXX}" \ LDFLAGS="${LDFLAGS}" RELEASE=true +# USE_GCC adds -Wl,-rpath=${_GCC_RUNTIME} which breaks -x c++-header +MAKE_ARGS+= PCH= PCHINC= DESKTOP_ENTRIES="KeeperRL" "" "" "keeper" \ "Game;Simulation;" false @@ -42,8 +45,6 @@ post-patch: -e 's|bash|sh|' \ ${WRKSRC}/Makefile @${REINPLACE_CMD} 's|bash|sh|' ${WRKSRC}/check_serial.sh - @${REINPLACE_CMD} '/_GLIBCXX_END_NAMESPACE_VERSION/d' \ - ${WRKSRC}/extern/iomanip.h do-install: ${INSTALL_PROGRAM} ${WRKSRC}/keeper ${STAGEDIR}${PREFIX}/bin diff --git a/games/keeperrl/distinfo b/games/keeperrl/distinfo index 0a5c5a0e88f3..5ce396c39470 100644 --- a/games/keeperrl/distinfo +++ b/games/keeperrl/distinfo @@ -1,3 +1,5 @@ TIMESTAMP = 1516986107 SHA256 (miki151-keeperrl-0.0.23-alpha23_GH0.tar.gz) = 046cba3c8834f52f9e796d2deece8770b833d351eb222c216fdf65b0c1869979 SIZE (miki151-keeperrl-0.0.23-alpha23_GH0.tar.gz) = 3252139 +SHA256 (c0fc69cbee72.patch) = ca2a3158182b1bcab2c9ec0d9e9525800d49c62f2d544c9a3b6c01fbee75750b +SIZE (c0fc69cbee72.patch) = 533 diff --git a/games/keeperrl/files/patch-stack__printer.cpp b/games/keeperrl/files/patch-stack__printer.cpp new file mode 100644 index 000000000000..af6459a7a992 --- /dev/null +++ b/games/keeperrl/files/patch-stack__printer.cpp @@ -0,0 +1,20 @@ +https://svnweb.freebsd.org/changeset/base/294930 + +stack_printer.cpp:329:18: error: assigning to 'char *' from incompatible type 'void *' + ss.ss_sp = (void*)alternate_stack; + ^~~~~~~~~~~~~~~~~~~~~~ + +--- stack_printer.cpp.orig 2017-10-24 09:45:42 UTC ++++ stack_printer.cpp +@@ -326,7 +326,11 @@ int printStacktraceWithGdb() { + stack_t ss = {}; + /* malloc is usually used here, I'm not 100% sure my static allocation + is valid but it seems to work just fine. */ ++#if defined(__DragonFly__) || (defined(__FreeBSD__) && __FreeBSD__ < 11) ++ ss.ss_sp = (char*)alternate_stack; ++#else + ss.ss_sp = (void*)alternate_stack; ++#endif + ss.ss_size = SIGSTKSZ; + ss.ss_flags = 0; +