Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Sep 2015 12:29:10 +0000 (UTC)
From:      Alexey Dokuchaev <danfe@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r395830 - in head/biology/avida: . files
Message-ID:  <201509021229.t82CTAqj090578@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: danfe
Date: Wed Sep  2 12:29:09 2015
New Revision: 395830
URL: https://svnweb.freebsd.org/changeset/ports/395830

Log:
  - Unbreak on PowerPC by using atomicops implementation for Linux and GCC
    __sync_* functions family
  - Remove BROKEN_ia64: it never had been first-class architecture, killed
    officially in -CURRENT for a while now
  - Sanitize installation commands and sort the knobs while I am here

Added:
  head/biology/avida/files/patch-libs_apto_include_apto_core_Atomic.h   (contents, props changed)
Modified:
  head/biology/avida/Makefile

Modified: head/biology/avida/Makefile
==============================================================================
--- head/biology/avida/Makefile	Wed Sep  2 10:35:25 2015	(r395829)
+++ head/biology/avida/Makefile	Wed Sep  2 12:29:09 2015	(r395830)
@@ -12,7 +12,7 @@ COMMENT=	Auto-adaptive genetic system de
 
 LICENSE=	GPLv3
 
-OPTIONS_DEFINE=	DOCS
+BROKEN_sparc64=	missing atomics implementation
 
 USES=		cmake:outsource ncurses
 CMAKE_ARGS=	-DAPTO_UNIT_TESTS:BOOL=OFF -DAVD_UNIT_TESTS:BOOL=OFF
@@ -30,9 +30,7 @@ DATA_FILES=	analyze.cfg avida.cfg defaul
 		instset-heads-sex.cfg instset-heads.cfg instset-smt.cfg \
 		instset-transsmt.cfg
 
-BROKEN_ia64=	Does not compile: invokes i386 asm
-BROKEN_powerpc=	Does not compile: invokes i386 asm
-BROKEN_sparc64=	Does not compile: invokes i386 asm
+OPTIONS_DEFINE=	DOCS
 
 post-patch:
 	@${FIND} ${WRKSRC} -name "CMakeLists.txt" | ${XARGS} \
@@ -41,6 +39,8 @@ post-patch:
 		 s| pthread| -pthread|'
 	@${REINPLACE_CMD} -e '/long long int/s|std::abs|llabs|' \
 		${WRKSRC}/avida-core/source/main/cPopulationInterface.cc
+	@${REINPLACE_CMD} -e '/__PPC__/s|linux|${OPSYS}|' \
+		${WRKSRC}/libs/tcmalloc-1.4/src/atomicops.h
 
 pre-build:
 .for exec in ${BIN_FILES}
@@ -51,15 +51,15 @@ pre-build:
 do-install:
 	@${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}
 .for exec in ${BIN_FILES}
-	(cd ${WRKSRC} && ${INSTALL_SCRIPT} ${exec}.sh \
-		${STAGEDIR}${PREFIX}/bin/${exec})
-	(cd ${BUILD_WRKSRC}/bin && ${INSTALL_PROGRAM} ${exec} \
-		${STAGEDIR}${PREFIX}/lib/${PORTNAME})
+	${INSTALL_SCRIPT} ${WRKSRC}/${exec}.sh \
+		${STAGEDIR}${PREFIX}/bin/${exec}
+	${INSTALL_PROGRAM} ${BUILD_WRKSRC}/bin/${exec} \
+		${STAGEDIR}${PREFIX}/lib/${PORTNAME}
 .endfor
-	(cd ${WRKSRC}/avida-core/support/config && ${INSTALL_DATA} *.cfg \
-		${STAGEDIR}${PREFIX}/lib/${PORTNAME})
-	(cd ${WRKSRC}/avida-core/support/config && ${INSTALL_DATA} *.org \
-		${STAGEDIR}${PREFIX}/lib/${PORTNAME})
+	${INSTALL_DATA} \
+		${WRKSRC}/avida-core/support/config/*.cfg \
+		${WRKSRC}/avida-core/support/config/*.org \
+			${STAGEDIR}${PREFIX}/lib/${PORTNAME}
 
 do-install-DOCS-on:
 	@${MKDIR} ${STAGEDIR}${DOCSDIR}

Added: head/biology/avida/files/patch-libs_apto_include_apto_core_Atomic.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/biology/avida/files/patch-libs_apto_include_apto_core_Atomic.h	Wed Sep  2 12:29:09 2015	(r395830)
@@ -0,0 +1,28 @@
+--- libs/apto/include/apto/core/Atomic.h.orig	2012-09-29 03:33:38 UTC
++++ libs/apto/include/apto/core/Atomic.h
+@@ -88,6 +88,25 @@ inline void Apto::Atomic::Set(volatile i
+   *atomic = value;
+ }
+ 
++#elif defined __GNUC__
++
++inline int Apto::Atomic::Add(volatile int* atomic, int value)
++{
++  return __sync_add_and_fetch(atomic, value);
++}
++
++inline int Apto::Atomic::Get(volatile int* atomic)
++{
++  __sync_synchronize();
++  return *atomic;
++}
++
++inline void Apto::Atomic::Set(volatile int* atomic, int value)
++{
++  __sync_synchronize();
++  *atomic = value;
++}
++
+ #else
+ 
+ // Assuming x86



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201509021229.t82CTAqj090578>