- Make user of port understand information about memory heirarchy needs to

be provided.
- Bump portrevision.
This commit is contained in:
Stephen Montgomery-Smith 2015-06-02 23:05:35 +00:00
parent 783f2a31a6
commit 0a5c2e68be
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=388393
3 changed files with 47 additions and 2 deletions

View file

@ -3,6 +3,7 @@
PORTNAME= librsb
PORTVERSION= 1.2.0r1
PORTREVISION= 1
CATEGORIES= math
MASTER_SITES= SF/librsb
DISTNAME= ${PORTNAME}-${PORTVERSION:S/r/-rc/}
@ -17,12 +18,24 @@ BUILD_DEPENDS= gsed:${PORTSDIR}/textproc/gsed
USES= fortran compiler:openmp gmake shebangfix
GNU_CONFIGURE= yes
CFLAGS= -fPIC
CFLAGS+= -fPIC
CONFIGURE_ARGS= --enable-fortran-module-install \
--enable-matrix-types="double, double complex"
--enable-matrix-types="double, double complex" \
--with-memhinfo="${RSB_USER_SET_MEM_HIERARCHY_INFO}"
SHEBANG_FILES= scripts/*.sh
MANUAL_PACKAGE_BUILD= Optimizes for the local machine
pre-configure:
@if [ -z "${RSB_USER_SET_MEM_HIERARCHY_INFO}" ]; then \
${CAT} ${FILESDIR}/memhinfo.txt; \
exit 1; \
fi
post-patch:
@${REINPLACE_CMD} -E s/sed/gsed/g ${WRKSRC}/scripts/*.sh
check regression-test test: build
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} qtests
.include <bsd.port.mk>

View file

@ -0,0 +1,11 @@
This port needs information about the memory cache system before building.
You can set this in the variable RSB_USER_SET_MEM_HIERARCHY_INFO, for example
make RSB_USER_SET_MEM_HIERARCHY_INFO="L2:12/64/3M,L1:64/8/32K"
Finding these values is tricky, but the following steps will help:
1. read the README file in the source code
2. build the port misc/cpuid
3. run the program cpuid
You are on your own in figuring out how to convert the information from the
program cpuid to the value of RSB_USER_SET_MEM_HIERARCHY_INFO.

View file

@ -0,0 +1,21 @@
--- rsb_init.c.orig 2015-05-01 21:04:42 UTC
+++ rsb_init.c
@@ -50,13 +50,15 @@ const rsb_char_t * rsb__init_get_mem_hie
if((usmhi = getenv("RSB_USER_SET_MEM_HIERARCHY_INFO"))!=NULL && *usmhi)
goto done;
#endif /* RSB_HAVE_GETENV */
+#ifdef RSB_DETECTED_MEM_HIERARCHY_INFO
+ if(verbose) RSB_INFO("Checking hardcoded RSB_DETECTED_MEM_HIERARCHY_INFO symbol\n");
+ usmhi = RSB_DETECTED_MEM_HIERARCHY_INFO;
+ if (*usmhi)
+ goto done;
#ifdef RSB_USER_SET_MEM_HIERARCHY_INFO
if(verbose) RSB_INFO("Checking hardcoded RSB_USER_SET_MEM_HIERARCHY_INFO symbol\n");
usmhi = RSB_USER_SET_MEM_HIERARCHY_INFO;
#endif /* RSB_USER_SET_MEM_HIERARCHY_INFO */
-#ifdef RSB_DETECTED_MEM_HIERARCHY_INFO
- if(verbose) RSB_INFO("Checking hardcoded RSB_DETECTED_MEM_HIERARCHY_INFO symbol\n");
- usmhi = RSB_DETECTED_MEM_HIERARCHY_INFO;
#endif /* RSB_USER_SET_MEM_HIERARCHY_INFO */
done:
if(verbose) RSB_INFO("Available memory hierarchy info string: \"%s\"\n",usmhi);