namd, charmpp: patch to allow build with AMD Toolchain support (#20083)
Co-authored-by: mohan babu <mohbabul@amd.com>
This commit is contained in:
parent
c0bbf5454c
commit
721fdddde4
4 changed files with 378 additions and 8 deletions
188
var/spack/repos/builtin/packages/charmpp/charm_6.7.1_aocc.patch
Normal file
188
var/spack/repos/builtin/packages/charmpp/charm_6.7.1_aocc.patch
Normal file
|
@ -0,0 +1,188 @@
|
||||||
|
diff -bur charm-6.7.1/src/arch/mpi-linux-x86_64/cc-mpicxx.sh updated-charm-6.7.1/src/arch/mpi-linux-x86_64/cc-mpicxx.sh
|
||||||
|
--- charm-6.7.1/src/arch/mpi-linux-x86_64/cc-mpicxx.sh 2016-11-07 20:14:26.000000000 +0530
|
||||||
|
+++ updated-charm-6.7.1/src/arch/mpi-linux-x86_64/cc-mpicxx.sh 2019-08-26 16:55:40.868903291 +0530
|
||||||
|
@@ -14,7 +14,7 @@
|
||||||
|
|
||||||
|
CMK_REAL_COMPILER=`$MPICXX -show 2>/dev/null | cut -d' ' -f1 `
|
||||||
|
case "$CMK_REAL_COMPILER" in
|
||||||
|
-g++) CMK_AMD64="-m64 -fPIC" ;;
|
||||||
|
+clang++) CMK_AMD64="-m64 -fPIC" ;;
|
||||||
|
icpc) CMK_AMD64="-m64";;
|
||||||
|
pgCC) CMK_AMD64="-DCMK_FIND_FIRST_OF_PREDICATE=1 --no_using_std " ;;
|
||||||
|
FCC) CMK_AMD64="-Kfast -DCMK_FIND_FIRST_OF_PREDICATE=1 --variadic_macros";;
|
||||||
|
diff -bur charm-6.7.1/src/arch/mpi-linux-x86_64/conv-mach-scyld.sh updated-charm-6.7.1/src/arch/mpi-linux-x86_64/conv-mach-scyld.sh
|
||||||
|
--- charm-6.7.1/src/arch/mpi-linux-x86_64/conv-mach-scyld.sh 2016-11-07 20:14:26.000000000 +0530
|
||||||
|
+++ updated-charm-6.7.1/src/arch/mpi-linux-x86_64/conv-mach-scyld.sh 2019-08-26 16:55:40.868903291 +0530
|
||||||
|
@@ -1,14 +1,14 @@
|
||||||
|
|
||||||
|
case "$CMK_CC" in
|
||||||
|
mpicc*)
|
||||||
|
- CMK_CPP_C="gcc -E "
|
||||||
|
- CMK_CC="gcc -fPIC"
|
||||||
|
- CMK_CC_RELIABLE="gcc -fPIC"
|
||||||
|
- CMK_CC_FASTEST="gcc -fPIC"
|
||||||
|
- CMK_CXX="g++ -fPIC"
|
||||||
|
- CMK_CXXPP="gcc -E "
|
||||||
|
- CMK_LD="gcc"
|
||||||
|
- CMK_LDXX="g++"
|
||||||
|
+ CMK_CPP_C="clang -E "
|
||||||
|
+ CMK_CC="clang -fPIC"
|
||||||
|
+ CMK_CC_RELIABLE="clang -fPIC"
|
||||||
|
+ CMK_CC_FASTEST="clang -fPIC"
|
||||||
|
+ CMK_CXX="clang++ -fPIC"
|
||||||
|
+ CMK_CXXPP="clang -E "
|
||||||
|
+ CMK_LD="clang"
|
||||||
|
+ CMK_LDXX="clang++"
|
||||||
|
|
||||||
|
# native compiler for compiling charmxi, etc
|
||||||
|
CMK_NATIVE_CC="$CMK_CC"
|
||||||
|
Only in updated-charm-6.7.1/src/arch/mpi-linux-x86_64: conv-mach-scyld.sh.orig
|
||||||
|
Only in updated-charm-6.7.1/src/arch/mpi-linux-x86_64: conv-mach-scyld.sh.rej
|
||||||
|
diff -bur charm-6.7.1/src/arch/mpi-linux-x86_64/conv-mach.sh updated-charm-6.7.1/src/arch/mpi-linux-x86_64/conv-mach.sh
|
||||||
|
--- charm-6.7.1/src/arch/mpi-linux-x86_64/conv-mach.sh 2016-11-07 20:14:26.000000000 +0530
|
||||||
|
+++ updated-charm-6.7.1/src/arch/mpi-linux-x86_64/conv-mach.sh 2019-08-26 16:55:40.868903291 +0530
|
||||||
|
@@ -23,7 +23,7 @@
|
||||||
|
|
||||||
|
CMK_REAL_COMPILER=`$MPICXX -show 2>/dev/null | cut -d' ' -f1 `
|
||||||
|
case "$CMK_REAL_COMPILER" in
|
||||||
|
-g++) CMK_AMD64_CC="$CMK_GCC64"; CMK_AMD64_CXX="$CMK_GCC64" ;;
|
||||||
|
+clang++) CMK_AMD64_CC="$CMK_GCC64"; CMK_AMD64_CXX="$CMK_GCC64" ;;
|
||||||
|
pgCC) CMK_AMD64_CC="-fPIC"; CMK_AMD64_CXX="-fPIC -DCMK_FIND_FIRST_OF_PREDICATE=1 --no_using_std " ;;
|
||||||
|
charmc) echo "Error> charmc can not call AMPI's mpicxx/mpiCC wrapper! Please fix your PATH."; exit 1 ;;
|
||||||
|
esac
|
||||||
|
@@ -38,10 +38,10 @@
|
||||||
|
CMK_LIBS="-lckqt $CMK_SYSLIBS "
|
||||||
|
CMK_LD_LIBRARY_PATH="-Wl,-rpath,$CHARMLIBSO/"
|
||||||
|
|
||||||
|
-CMK_NATIVE_CC="gcc $CMK_GCC64 "
|
||||||
|
-CMK_NATIVE_LD="gcc $CMK_GCC64 "
|
||||||
|
-CMK_NATIVE_CXX="g++ $CMK_GCC64 "
|
||||||
|
-CMK_NATIVE_LDXX="g++ $CMK_GCC64 "
|
||||||
|
+CMK_NATIVE_CC="clang $CMK_GCC64 "
|
||||||
|
+CMK_NATIVE_LD="clang $CMK_GCC64 "
|
||||||
|
+CMK_NATIVE_CXX="clang++ $CMK_GCC64 "
|
||||||
|
+CMK_NATIVE_LDXX="clang++ $CMK_GCC64 "
|
||||||
|
CMK_NATIVE_LIBS=""
|
||||||
|
|
||||||
|
# fortran compiler
|
||||||
|
@@ -51,7 +51,7 @@
|
||||||
|
# CMK_FPP="/lib/cpp -P -CC"
|
||||||
|
# CMK_CF90="$CMK_CF90 -fpic -fautomatic -fdollar-ok "
|
||||||
|
# CMK_CF90_FIXED="$CMK_CF90 -ffixed-form "
|
||||||
|
-# CMK_F90LIBS="-lgfortran "
|
||||||
|
+# CMK_F90LIBS=" "
|
||||||
|
# CMK_F90_USE_MODDIR=1
|
||||||
|
# CMK_F90_MODINC="-I"
|
||||||
|
# CMK_MOD_NAME_ALLCAPS=
|
||||||
|
diff -bur charm-6.7.1/src/libs/ck-libs/ckloop/Makefile updated-charm-6.7.1/src/libs/ck-libs/ckloop/Makefile
|
||||||
|
--- charm-6.7.1/src/libs/ck-libs/ckloop/Makefile 2016-11-07 20:14:28.000000000 +0530
|
||||||
|
+++ updated-charm-6.7.1/src/libs/ck-libs/ckloop/Makefile 2019-08-26 16:55:40.852903122 +0530
|
||||||
|
@@ -38,7 +38,7 @@
|
||||||
|
for i in $(LIBOBJ) ; do \
|
||||||
|
SRCFILE=`basename $$i .o`.C ; \
|
||||||
|
echo "checking dependencies for $$i : $$SRCFILE" ; \
|
||||||
|
- g++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
|
||||||
|
+ clang++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
|
||||||
|
echo ' $$(CHARMC) -I$(CDIR)/tmp -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
|
||||||
|
done;
|
||||||
|
|
||||||
|
Only in updated-charm-6.7.1/src/libs/ck-libs/ckloop: Makefile.orig
|
||||||
|
Only in updated-charm-6.7.1/src/libs/ck-libs/ckloop: Makefile.rej
|
||||||
|
diff -bur charm-6.7.1/src/libs/ck-libs/completion/Makefile updated-charm-6.7.1/src/libs/ck-libs/completion/Makefile
|
||||||
|
--- charm-6.7.1/src/libs/ck-libs/completion/Makefile 2016-11-07 20:14:28.000000000 +0530
|
||||||
|
+++ updated-charm-6.7.1/src/libs/ck-libs/completion/Makefile 2019-08-26 16:55:40.852903122 +0530
|
||||||
|
@@ -45,7 +45,7 @@
|
||||||
|
for i in $(LIBOBJ) ; do \
|
||||||
|
SRCFILE=`basename $$i .o`.C ; \
|
||||||
|
echo "checking dependencies for $$i : $$SRCFILE" ; \
|
||||||
|
- g++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
|
||||||
|
+ clang++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
|
||||||
|
echo ' $$(CHARMC) -I$(CDIR)/tmp -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
|
||||||
|
done;
|
||||||
|
|
||||||
|
Only in updated-charm-6.7.1/src/libs/ck-libs/completion: Makefile.orig
|
||||||
|
Only in updated-charm-6.7.1/src/libs/ck-libs/completion: Makefile.rej
|
||||||
|
diff -bur charm-6.7.1/src/libs/ck-libs/multicast/Makefile updated-charm-6.7.1/src/libs/ck-libs/multicast/Makefile
|
||||||
|
--- charm-6.7.1/src/libs/ck-libs/multicast/Makefile 2016-11-07 20:14:29.000000000 +0530
|
||||||
|
+++ updated-charm-6.7.1/src/libs/ck-libs/multicast/Makefile 2019-08-26 16:55:40.852903122 +0530
|
||||||
|
@@ -53,7 +53,7 @@
|
||||||
|
for i in $(LIBOBJ) ; do \
|
||||||
|
SRCFILE=`basename $$i .o`.C ; \
|
||||||
|
echo "checking dependencies for $$i : $$SRCFILE" ; \
|
||||||
|
- g++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
|
||||||
|
+ clang++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
|
||||||
|
echo ' $$(CHARMC) -I$(CDIR)/tmp -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
|
||||||
|
done;
|
||||||
|
|
||||||
|
Only in updated-charm-6.7.1/src/libs/ck-libs/multicast: Makefile.orig
|
||||||
|
Only in updated-charm-6.7.1/src/libs/ck-libs/multicast: Makefile.rej
|
||||||
|
diff -bur charm-6.7.1/src/libs/ck-libs/NDMeshStreamer/Makefile updated-charm-6.7.1/src/libs/ck-libs/NDMeshStreamer/Makefile
|
||||||
|
--- charm-6.7.1/src/libs/ck-libs/NDMeshStreamer/Makefile 2016-11-07 20:14:27.000000000 +0530
|
||||||
|
+++ updated-charm-6.7.1/src/libs/ck-libs/NDMeshStreamer/Makefile 2019-08-26 16:55:40.852903122 +0530
|
||||||
|
@@ -52,7 +52,7 @@
|
||||||
|
for i in $(LIBOBJ) ; do \
|
||||||
|
SRCFILE=`basename $$i .o`.C ; \
|
||||||
|
echo "checking dependencies for $$i : $$SRCFILE" ; \
|
||||||
|
- g++ -MM -Wno-deprecated -I$(CDIR)/tmp -I../completion $$SRCFILE >> $(DEPENDFILE); \
|
||||||
|
+ clang++ -MM -Wno-deprecated -I$(CDIR)/tmp -I../completion $$SRCFILE >> $(DEPENDFILE); \
|
||||||
|
echo ' $$(CHARMC) -I$(CDIR)/tmp -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
|
||||||
|
done;
|
||||||
|
|
||||||
|
Only in updated-charm-6.7.1/src/libs/ck-libs/NDMeshStreamer: Makefile.orig
|
||||||
|
Only in updated-charm-6.7.1/src/libs/ck-libs/NDMeshStreamer: Makefile.rej
|
||||||
|
diff -bur charm-6.7.1/src/QuickThreads/Makefile updated-charm-6.7.1/src/QuickThreads/Makefile
|
||||||
|
--- charm-6.7.1/src/QuickThreads/Makefile 2016-11-07 20:14:25.000000000 +0530
|
||||||
|
+++ updated-charm-6.7.1/src/QuickThreads/Makefile 2019-08-26 16:55:40.856903165 +0530
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
|
||||||
|
-CC=gcc -I. -O2
|
||||||
|
+CC=clang -I. -O2
|
||||||
|
|
||||||
|
all: qt stp testpgm
|
||||||
|
|
||||||
|
diff -bur charm-6.7.1/src/scripts/Makefile updated-charm-6.7.1/src/scripts/Makefile
|
||||||
|
--- charm-6.7.1/src/scripts/Makefile 2016-11-07 20:14:29.000000000 +0530
|
||||||
|
+++ updated-charm-6.7.1/src/scripts/Makefile 2019-08-26 16:55:40.840902996 +0530
|
||||||
|
@@ -942,7 +942,7 @@
|
||||||
|
SRCFILE=`basename $$i .o`.C ; \
|
||||||
|
[ ! -f $$SRCFILE ] && SRCFILE=`basename $$i .o`.c ; \
|
||||||
|
echo "checking dependencies for $$SRCFILE" ; \
|
||||||
|
- if g++ -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
|
||||||
|
+ if clang++ -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
|
||||||
|
echo '' >> $(DEPENDFILE) ; \
|
||||||
|
done; \
|
||||||
|
|
||||||
|
@@ -968,7 +968,7 @@
|
||||||
|
found=`/usr/bin/find $$SRCDIR -depth 1 -name $$SRCFILE`; \
|
||||||
|
[ ! $$found ] && SRCFILE=`basename $$i .o`.c ; \
|
||||||
|
echo "checking dependencies for $$SRCFILE" ; \
|
||||||
|
- if g++ -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
|
||||||
|
+ if clang++ -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
|
||||||
|
echo '' >> $(DEPENDFILE) ; \
|
||||||
|
done; \
|
||||||
|
|
||||||
|
diff -bur charm-6.7.1/tests/charm++/megatest/Makefile updated-charm-6.7.1/tests/charm++/megatest/Makefile
|
||||||
|
--- charm-6.7.1/tests/charm++/megatest/Makefile 2016-11-07 20:14:30.000000000 +0530
|
||||||
|
+++ updated-charm-6.7.1/tests/charm++/megatest/Makefile 2019-08-26 16:55:40.820902785 +0530
|
||||||
|
@@ -118,7 +118,7 @@
|
||||||
|
for i in $(OBJS) ; do \
|
||||||
|
SRCFILE=`basename $$i .o`.C ; \
|
||||||
|
echo "checking dependencies for $$SRCFILE" ; \
|
||||||
|
- g++ -MM -I$(CHARMINC) $$SRCFILE | \
|
||||||
|
+ clang++ -MM -I$(CHARMINC) $$SRCFILE | \
|
||||||
|
perl $(CHARMBIN)/dep.pl $(CHARMINC) /usr/include /usr/local >> $(DEPENDFILE); \
|
||||||
|
echo ' $$(CHARMC) -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
|
||||||
|
done;
|
||||||
|
--- charm-6.7.1/src/scripts/configure 2016-11-07 20:14:31.000000000 +0530
|
||||||
|
+++ updated-charm/charm-6.7.1/src/scripts/configure 2020-10-21 12:54:06.476958828 +0530
|
||||||
|
@@ -2141,8 +2141,8 @@
|
||||||
|
$as_echo_n "checking \"$1\"... " >&6; }
|
||||||
|
echo "### $1" >> $charmout
|
||||||
|
cat $t >> $charmout
|
||||||
|
- echo $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CXX $OPTS_LD -c $t -o test.o $4 >> $charmout
|
||||||
|
- $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CXX $OPTS_LD -c $t -o test.o $4 > out 2>&1
|
||||||
|
+ echo $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CXX $OPTS_LD -Qunused-arguments -c $t -o test.o $4 >> $charmout
|
||||||
|
+ $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CXX $OPTS_LD -Qunused-arguments -c $t -o test.o $4 > out 2>&1
|
||||||
|
test_result $? "$1" "$2" "$3"
|
||||||
|
strictpass=$pass
|
||||||
|
strictfail=$fail
|
165
var/spack/repos/builtin/packages/charmpp/charm_6.8.2_aocc.patch
Normal file
165
var/spack/repos/builtin/packages/charmpp/charm_6.8.2_aocc.patch
Normal file
|
@ -0,0 +1,165 @@
|
||||||
|
diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/cc-mpicxx.sh 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/cc-mpicxx.sh
|
||||||
|
--- 00/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/cc-mpicxx.sh 2018-01-11 19:06:19.000000000 -0600
|
||||||
|
+++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/cc-mpicxx.sh 2019-11-12 06:02:23.005454343 -0600
|
||||||
|
@@ -15,6 +15,7 @@
|
||||||
|
CMK_REAL_COMPILER=`$MPICXX -show 2>/dev/null | cut -d' ' -f1 `
|
||||||
|
case "$CMK_REAL_COMPILER" in
|
||||||
|
g++) CMK_AMD64="-m64 -fPIC" ;;
|
||||||
|
+clang++) CMK_AMD64="-m64 -fPIC" ;;
|
||||||
|
icpc) CMK_AMD64="-m64";;
|
||||||
|
pgCC) CMK_AMD64="-DCMK_FIND_FIRST_OF_PREDICATE=1 --no_using_std " ;;
|
||||||
|
FCC) CMK_AMD64="-Kfast -DCMK_FIND_FIRST_OF_PREDICATE=1 --variadic_macros";;
|
||||||
|
diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/conv-mach-scyld.sh 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/conv-mach-scyld.sh
|
||||||
|
--- 00/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/conv-mach-scyld.sh 2018-01-11 19:06:19.000000000 -0600
|
||||||
|
+++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/conv-mach-scyld.sh 2019-11-12 06:05:22.666969636 -0600
|
||||||
|
@@ -1,13 +1,14 @@
|
||||||
|
|
||||||
|
case "$CMK_CC" in
|
||||||
|
mpicc*)
|
||||||
|
- CMK_CPP_C="gcc -E "
|
||||||
|
- CMK_CC="gcc -fPIC"
|
||||||
|
- CMK_CC_RELIABLE="gcc -fPIC"
|
||||||
|
- CMK_CC_FASTEST="gcc -fPIC"
|
||||||
|
- CMK_CXX="g++ -fPIC"
|
||||||
|
- CMK_LD="gcc"
|
||||||
|
- CMK_LDXX="g++"
|
||||||
|
+ CMK_CPP_C="clang -E "
|
||||||
|
+ CMK_CC="clang -fPIC"
|
||||||
|
+ CMK_CC_RELIABLE="clang -fPIC"
|
||||||
|
+ CMK_CC_FASTEST="clang -fPIC"
|
||||||
|
+ CMK_CXXPP="clang -E "
|
||||||
|
+ CMK_CXX="clang++ -fPIC"
|
||||||
|
+ CMK_LD="clang"
|
||||||
|
+ CMK_LDXX="clang++"
|
||||||
|
|
||||||
|
# native compiler for compiling charmxi, etc
|
||||||
|
CMK_NATIVE_CC="$CMK_CC"
|
||||||
|
diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/conv-mach.sh 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/conv-mach.sh
|
||||||
|
--- 00/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/conv-mach.sh 2018-01-11 19:06:19.000000000 -0600
|
||||||
|
+++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/arch/mpi-linux-x86_64/conv-mach.sh 2019-11-12 06:07:41.361999246 -0600
|
||||||
|
@@ -23,6 +23,7 @@
|
||||||
|
|
||||||
|
CMK_REAL_COMPILER=`$MPICXX -show 2>/dev/null | cut -d' ' -f1 `
|
||||||
|
case "$CMK_REAL_COMPILER" in
|
||||||
|
+clang++) CMK_AMD64_CC="$CMK_GCC64"; CMK_AMD64_CXX="$CMK_GCC64" ;;
|
||||||
|
g++) CMK_AMD64_CC="$CMK_GCC64"; CMK_AMD64_CXX="$CMK_GCC64" ;;
|
||||||
|
pgCC) CMK_AMD64_CC='-fPIC'; CMK_AMD64_CXX='-fPIC -DCMK_FIND_FIRST_OF_PREDICATE=1 --no_using_std ' ;;
|
||||||
|
charmc) echo "Error> charmc can not call AMPI's mpicxx/mpiCC wrapper! Please fix your PATH."; exit 1 ;;
|
||||||
|
@@ -37,10 +38,10 @@
|
||||||
|
CMK_LIBS="-lckqt $CMK_SYSLIBS "
|
||||||
|
CMK_LD_LIBRARY_PATH="-Wl,-rpath,$CHARMLIBSO/"
|
||||||
|
|
||||||
|
-CMK_NATIVE_CC="gcc $CMK_GCC64 "
|
||||||
|
-CMK_NATIVE_LD="gcc $CMK_GCC64 "
|
||||||
|
-CMK_NATIVE_CXX="g++ $CMK_GCC64 "
|
||||||
|
-CMK_NATIVE_LDXX="g++ $CMK_GCC64 "
|
||||||
|
+CMK_NATIVE_CC="clang $CMK_GCC64 "
|
||||||
|
+CMK_NATIVE_LD="clang $CMK_GCC64 "
|
||||||
|
+CMK_NATIVE_CXX="clang++ $CMK_GCC64 "
|
||||||
|
+CMK_NATIVE_LDXX="clang++ $CMK_GCC64 "
|
||||||
|
CMK_NATIVE_LIBS=''
|
||||||
|
|
||||||
|
# fortran compiler
|
||||||
|
diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/ckloop/Makefile 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/ckloop/Makefile
|
||||||
|
--- 00/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/ckloop/Makefile 2018-01-11 19:06:15.000000000 -0600
|
||||||
|
+++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/ckloop/Makefile 2019-11-12 06:09:16.200438412 -0600
|
||||||
|
@@ -38,7 +38,7 @@
|
||||||
|
for i in $(LIBOBJ) ; do \
|
||||||
|
SRCFILE=`basename $$i .o`.C ; \
|
||||||
|
echo "checking dependencies for $$i : $$SRCFILE" ; \
|
||||||
|
- g++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
|
||||||
|
+ clang++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
|
||||||
|
echo ' $$(CHARMC) -I$(CDIR)/tmp -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
|
||||||
|
done;
|
||||||
|
|
||||||
|
diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/completion/Makefile 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/completion/Makefile
|
||||||
|
--- 00/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/completion/Makefile 2018-01-11 19:06:16.000000000 -0600
|
||||||
|
+++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/completion/Makefile 2019-11-12 06:09:41.247346697 -0600
|
||||||
|
@@ -45,7 +45,7 @@
|
||||||
|
for i in $(LIBOBJ) ; do \
|
||||||
|
SRCFILE=`basename $$i .o`.C ; \
|
||||||
|
echo "checking dependencies for $$i : $$SRCFILE" ; \
|
||||||
|
- g++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
|
||||||
|
+ clang++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
|
||||||
|
echo ' $$(CHARMC) -I$(CDIR)/tmp -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
|
||||||
|
done;
|
||||||
|
|
||||||
|
diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/NDMeshStreamer/Makefile 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/NDMeshStreamer/Makefile
|
||||||
|
--- 00/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/NDMeshStreamer/Makefile 2018-01-11 19:06:15.000000000 -0600
|
||||||
|
+++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/libs/ck-libs/NDMeshStreamer/Makefile 2019-11-12 06:09:59.079993368 -0600
|
||||||
|
@@ -52,7 +52,7 @@
|
||||||
|
for i in $(LIBOBJ) ; do \
|
||||||
|
SRCFILE=`basename $$i .o`.C ; \
|
||||||
|
echo "checking dependencies for $$i : $$SRCFILE" ; \
|
||||||
|
- g++ -MM -Wno-deprecated -I$(CDIR)/tmp -I../completion $$SRCFILE >> $(DEPENDFILE); \
|
||||||
|
+ clang++ -MM -Wno-deprecated -I$(CDIR)/tmp -I../completion $$SRCFILE >> $(DEPENDFILE); \
|
||||||
|
echo ' $$(CHARMC) -I$(CDIR)/tmp -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
|
||||||
|
done;
|
||||||
|
|
||||||
|
diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/src/QuickThreads/Makefile 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/QuickThreads/Makefile
|
||||||
|
--- 00/NAMD_2.13_Source/charm-6.8.2/src/QuickThreads/Makefile 2018-01-11 19:06:13.000000000 -0600
|
||||||
|
+++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/QuickThreads/Makefile 2019-11-12 06:10:37.744395459 -0600
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
|
||||||
|
-CC=gcc -I. -O2
|
||||||
|
+CC=clang -I. -O2
|
||||||
|
|
||||||
|
all: qt stp testpgm
|
||||||
|
|
||||||
|
diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/src/scripts/Makefile 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/scripts/Makefile
|
||||||
|
--- 00/NAMD_2.13_Source/charm-6.8.2/src/scripts/Makefile 2018-01-11 19:06:20.000000000 -0600
|
||||||
|
+++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/scripts/Makefile 2019-11-12 06:10:59.888198461 -0600
|
||||||
|
@@ -962,7 +962,7 @@
|
||||||
|
SRCFILE=`basename $$i .o`.C ; \
|
||||||
|
[ ! -f $$SRCFILE ] && SRCFILE=`basename $$i .o`.c ; \
|
||||||
|
echo "checking dependencies for $$SRCFILE" ; \
|
||||||
|
- if g++ -std=c++0x -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
|
||||||
|
+ if clang++ -std=c++0x -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
|
||||||
|
echo '' >> $(DEPENDFILE) ; \
|
||||||
|
done; \
|
||||||
|
|
||||||
|
@@ -988,7 +988,7 @@
|
||||||
|
found=`/usr/bin/find $$SRCDIR -depth 1 -name $$SRCFILE`; \
|
||||||
|
[ ! $$found ] && SRCFILE=`basename $$i .o`.c ; \
|
||||||
|
echo "checking dependencies for $$SRCFILE" ; \
|
||||||
|
- if g++ -std=c++0x -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
|
||||||
|
+ if clang++ -std=c++0x -MM -Wno-deprecated -I. -I$(INC) $$SRCFILE >> $(DEPENDFILE); then true ; else echo '' ; echo "Compilation of '$$SRCFILE' failed, please fix it first!!!!" ; exit; fi; \
|
||||||
|
echo '' >> $(DEPENDFILE) ; \
|
||||||
|
done; \
|
||||||
|
|
||||||
|
diff -ruN 00/NAMD_2.13_Source/charm-6.8.2/tests/charm++/megatest/Makefile 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/tests/charm++/megatest/Makefile
|
||||||
|
--- 00/NAMD_2.13_Source/charm-6.8.2/tests/charm++/megatest/Makefile 2018-01-11 19:06:18.000000000 -0600
|
||||||
|
+++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/tests/charm++/megatest/Makefile 2019-11-12 06:11:38.193587531 -0600
|
||||||
|
@@ -116,7 +116,7 @@
|
||||||
|
for i in $(OBJS) ; do \
|
||||||
|
SRCFILE=`basename $$i .o`.C ; \
|
||||||
|
echo "checking dependencies for $$SRCFILE" ; \
|
||||||
|
- g++ -std=c++0x -MM -I$(CHARMINC) $$SRCFILE | \
|
||||||
|
+ clang++ -std=c++0x -MM -I$(CHARMINC) $$SRCFILE | \
|
||||||
|
perl $(CHARMBIN)/dep.pl $(CHARMINC) /usr/include /usr/local >> $(DEPENDFILE); \
|
||||||
|
echo ' $$(CHARMC) -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
|
||||||
|
done;
|
||||||
|
--- 00/NAMD_2.13_Source/charm-6.8.2/src/scripts/configure 2018-01-12 06:36:21.000000000 +0530
|
||||||
|
+++ 00_aocc-patch/NAMD_2.13_Source/charm-6.8.2/src/scripts/configure 2020-10-21 15:01:20.240748316 +0530
|
||||||
|
@@ -2183,8 +2183,8 @@
|
||||||
|
$as_echo_n "checking \"$1\"... " >&6; }
|
||||||
|
echo "### $1" >> $charmout
|
||||||
|
cat $tc >> $charmout
|
||||||
|
- echo $CMK_CC -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CC $OPTS_LD -c $tc -o test.o $4 >> $charmout
|
||||||
|
- $CMK_CC -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CC $OPTS_LD -c $tc -o test.o $4 > out 2>&1
|
||||||
|
+ echo $CMK_CC -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CC $OPTS_LD -Qunused-arguments -c $tc -o test.o $4 >> $charmout
|
||||||
|
+ $CMK_CC -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CC $OPTS_LD -Qunused-arguments -c $tc -o test.o $4 > out 2>&1
|
||||||
|
test_result $? "$1" "$2" "$3"
|
||||||
|
strictpass=$pass
|
||||||
|
strictfail=$fail
|
||||||
|
@@ -2208,8 +2208,8 @@
|
||||||
|
$as_echo_n "checking \"$1\"... " >&6; }
|
||||||
|
echo "### $1" >> $charmout
|
||||||
|
cat $t >> $charmout
|
||||||
|
- echo $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CXX $OPTS_LD -c $t -o test.o $4 >> $charmout
|
||||||
|
- $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CXX $OPTS_LD -c $t -o test.o $4 > out 2>&1
|
||||||
|
+ echo $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CXX $OPTS_LD -Qunused-arguments -c $t -o test.o $4 >> $charmout
|
||||||
|
+ $CMK_CXX -I../include -I. $CMK_LIBDIR $CMK_INCDIR $CMK_SYSINC $OPTS_CXX $OPTS_LD -Qunused-arguments -c $t -o test.o $4 > out 2>&1
|
||||||
|
test_result $? "$1" "$2" "$3"
|
||||||
|
strictpass=$pass
|
||||||
|
strictfail=$fail
|
|
@ -43,6 +43,10 @@ class Charmpp(Package):
|
||||||
# Patch is no longer needed in versions 6.8.0+
|
# Patch is no longer needed in versions 6.8.0+
|
||||||
patch("mpi.patch", when="@:6.7.1")
|
patch("mpi.patch", when="@:6.7.1")
|
||||||
|
|
||||||
|
# Patch for AOCC
|
||||||
|
patch('charm_6.7.1_aocc.patch', when="@6.7.1 %aocc", level=1)
|
||||||
|
patch('charm_6.8.2_aocc.patch', when="@6.8.2 %aocc", level=3)
|
||||||
|
|
||||||
# support Fujitsu compiler
|
# support Fujitsu compiler
|
||||||
patch("fj.patch", when="%fj")
|
patch("fj.patch", when="%fj")
|
||||||
|
|
||||||
|
@ -236,12 +240,15 @@ def install(self, spec, prefix):
|
||||||
# not, then we need to query the compiler vendor from Spack
|
# not, then we need to query the compiler vendor from Spack
|
||||||
# here.
|
# here.
|
||||||
options = [
|
options = [
|
||||||
os.path.basename(self.compiler.cc),
|
os.path.basename(self.compiler.cc)
|
||||||
os.path.basename(self.compiler.fc),
|
|
||||||
"-j%d" % make_jobs,
|
|
||||||
"--destination=%s" % builddir,
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
if '@:6.8.2 %aocc' not in spec:
|
||||||
|
options.append(os.path.basename(self.compiler.fc))
|
||||||
|
|
||||||
|
options.append("-j%d" % make_jobs)
|
||||||
|
options.append("--destination=%s" % builddir)
|
||||||
|
|
||||||
if "pmi=slurmpmi" in spec:
|
if "pmi=slurmpmi" in spec:
|
||||||
options.append("slurmpmi")
|
options.append("slurmpmi")
|
||||||
if "pmi=slurmpmi2" in spec:
|
if "pmi=slurmpmi2" in spec:
|
||||||
|
|
|
@ -26,8 +26,8 @@ class Namd(MakefilePackage):
|
||||||
version('2.13', '9e3323ed856e36e34d5c17a7b0341e38')
|
version('2.13', '9e3323ed856e36e34d5c17a7b0341e38')
|
||||||
version('2.12', '2a1191909b1ab03bf0205971ad4d8ee9')
|
version('2.12', '2a1191909b1ab03bf0205971ad4d8ee9')
|
||||||
|
|
||||||
variant('fftw', default='3', values=('none', '2', '3', 'mkl'),
|
variant('fftw', default='3', values=('none', '2', '3', 'mkl', 'amdfftw'),
|
||||||
description='Enable the use of FFTW/FFTW3/MKL FFT')
|
description='Enable the use of FFTW/FFTW3/MKL FFT/AMDFFTW')
|
||||||
|
|
||||||
variant('interface', default='none', values=('none', 'tcl', 'python'),
|
variant('interface', default='none', values=('none', 'tcl', 'python'),
|
||||||
description='Enables TCL and/or python interface')
|
description='Enables TCL and/or python interface')
|
||||||
|
@ -45,6 +45,8 @@ class Namd(MakefilePackage):
|
||||||
depends_on('fftw@:2.99', when="fftw=2")
|
depends_on('fftw@:2.99', when="fftw=2")
|
||||||
depends_on('fftw@3:', when="fftw=3")
|
depends_on('fftw@3:', when="fftw=3")
|
||||||
|
|
||||||
|
depends_on('amdfftw', when="fftw=amdfftw")
|
||||||
|
|
||||||
depends_on('intel-mkl', when="fftw=mkl")
|
depends_on('intel-mkl', when="fftw=mkl")
|
||||||
|
|
||||||
depends_on('tcl', when='interface=tcl')
|
depends_on('tcl', when='interface=tcl')
|
||||||
|
@ -97,12 +99,16 @@ def _edit_arch_generic(self, spec, prefix):
|
||||||
optims_opts = {
|
optims_opts = {
|
||||||
'gcc': m64 + '-O3 -fexpensive-optimizations \
|
'gcc': m64 + '-O3 -fexpensive-optimizations \
|
||||||
-ffast-math -lpthread ' + archopt,
|
-ffast-math -lpthread ' + archopt,
|
||||||
'intel': '-O2 -ip -qopenmp-simd' + archopt}
|
'intel': '-O2 -ip -qopenmp-simd' + archopt,
|
||||||
|
'aocc': m64 + '-O3 -ffp-contract=fast -ffast-math \
|
||||||
|
-fopenmp ' + archopt}
|
||||||
else:
|
else:
|
||||||
optims_opts = {
|
optims_opts = {
|
||||||
'gcc': m64 + '-O3 -fexpensive-optimizations \
|
'gcc': m64 + '-O3 -fexpensive-optimizations \
|
||||||
-ffast-math ' + archopt,
|
-ffast-math ' + archopt,
|
||||||
'intel': '-O2 -ip ' + archopt}
|
'intel': '-O2 -ip ' + archopt,
|
||||||
|
'aocc': m64 + '-O3 -ffp-contract=fast \
|
||||||
|
-ffast-math ' + archopt}
|
||||||
|
|
||||||
optim_opts = optims_opts[self.compiler.name] \
|
optim_opts = optims_opts[self.compiler.name] \
|
||||||
if self.compiler.name in optims_opts else ''
|
if self.compiler.name in optims_opts else ''
|
||||||
|
@ -187,6 +193,10 @@ def edit(self, spec, prefix):
|
||||||
opts.append('--without-fftw')
|
opts.append('--without-fftw')
|
||||||
elif fftw_version == 'mkl':
|
elif fftw_version == 'mkl':
|
||||||
self._append_option(opts, 'mkl')
|
self._append_option(opts, 'mkl')
|
||||||
|
elif fftw_version == 'amdfftw':
|
||||||
|
self._copy_arch_file('fftw3')
|
||||||
|
opts.extend(['--with-fftw3',
|
||||||
|
'--fftw-prefix', spec['amdfftw'].prefix])
|
||||||
else:
|
else:
|
||||||
_fftw = 'fftw{0}'.format('' if fftw_version == '2' else '3')
|
_fftw = 'fftw{0}'.format('' if fftw_version == '2' else '3')
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue