Hi All,
I very much appreciate your help -- thanks Erik! But it still doesn't work. In the Cactus directory (I'm using ~/et/Cactus), I used the commands
rm -rf configs/sim ./simfactory/bin/sim build -j2 --thornlist ../einsteintoolkit.th --optionlist=murray.cfg
with the file murray.cfg listed below.
Five notes:
[1] Roland helped me to get the toolkit working this past April. That version (4.9) still works. Mostly we adjusted the OptionList file until we got it to work. [3] But I want to be able to create a current version (4.10) and also to be able to update it when new versions become available. So I've left the version in ~/Cactus alone and I'm trying to build the toolkit in a new directory ~/et/Cactus [4] The older version used gcc-10, etc, which appears to no longer be available. (It's no longer on my machine, which crashed in May or June. Fortunately the compiled/linked sim code that used gcc-10 still runs.) I brew-installed gcc-11, verified that it points to the correct place, and created the murray.cfg file by updating the previously working OptionList file by substituting gcc-11 for gcc-10. [5] I checked write permissions to verify I can write in all the directories that I could find.
But I consistently get the same error message.
Is it possible that sim is still trying to build using (in part) the ~/Cactus directory? If it tries to do that, it won't be able to find gcc-10 since that file no longer exists on my machine. (I guess I could move the old working version and try building again in my home directory.)
Again, thank you!
Murray
____________________________________________
murray.cfg
# generic
# This option list is used internally by simfactory as a template during the # sim setup and sim setup-silent commands # Edit at your own risk
# Whenever this version string changes, the application is configured # and rebuilt from scratch VERSION = 2021-07-27 CPP = cpp-11 CC = gcc-11 CXX = g++-11 FPP = cpp-11 F90 = gfortran-11
CPPFLAGS = -std=gnu++11 FPPFLAGS = -traditional
CFLAGS = -g -std=gnu99 CXXFLAGS = -g -std=gnu++11 F90FLAGS = -g -fcray-pointer -ffixed-line-length-none
LDFLAGS = -rdynamic
DEBUG = no CPP_DEBUG_FLAGS = C_DEBUG_FLAGS = CXX_DEBUG_FLAGS =
OPTIMISE = yes CPP_OPTIMISE_FLAGS = C_OPTIMISE_FLAGS = -O2 CXX_OPTIMISE_FLAGS = -O2 F90_OPTIMISE_FLAGS = -O2
PROFILE = no CPP_PROFILE_FLAGS = C_PROFILE_FLAGS = -pg CXX_PROFILE_FLAGS = -pg F90_PROFILE_FLAGS = -pg WARN = yesfopenmp CPP_WARN_FLAGS = -Wall C_WARN_FLAGS = -Wall CXX_WARN_FLAGS = -Wall F90_WARN_FLAGS = -Wall OPENMP = yes CPP_OPENMP_FLAGS = -fopenmp FPP_OPENMP_FLAGS = -D_OPENMP C_OPENMP_FLAGS = -fopenmp CXX_OPENMP_FLAGS = -fopenmp F90_OPENMP_FLAGS = -fopenmp
VECTORISE = yes VECTORISE_ALIGNED_ARRAYS = no VECTORISE_INLINE = yes
PTHREADS_DIR = NO_BUILD
On Wed, Jul 28, 2021 at 1:50 PM Erik Schnetter schnetter@cct.lsu.edu wrote:
Murray
I recommend creating an "option list". This is a file that sets the configuration variables. Simfactory's directory "simfactory/mdb/optionlists" has many examples from other systems.
When you debug creating a configuration, it's a good idea to start from scratch each time, so that left-over bits from earlier attempts don't cause problems. You would "rm -rf configs/sim", and then pass the option "--optionslist=..." with your option list as argument.
-erik
On Wed, Jul 28, 2021 at 2:17 PM Murray Wolinsky mmwolinsky@gmail.com wrote:
Hi All,
I'm unable to build the Einstein Toolkit on Mac OS Catalina. Has anyone
done so -- and do you have suggestions?
When I try to run ./simfactory/bin/sim build -j2 --thornlist ../
einsteintoolkit.th I get the following error:
Cactus requires a C++11 compiler -- check your C++ compiler and C++
compiler flags
I know that the Mac makes it very difficult to use gcc instead of clang,
but AFAICS I'm using the Homebrew gcc-11 compiler (Homebrew GCC 11.1.0_1) 11.1.0) and setting the options and flags properly in both the files OptionsList and generic-11.cfg :
Setting CC to 'gcc-11' Setting CXX to 'g++-11'
Setting CXXFLAGS to '-g -std=gnu++11'
etc.
Do I need to set environment variables? Is there some other toolkit file
I should l modify?
I appreciate any help anyone can provide!
Thanks in advance!
Murray
This is the output from the above sim command:
~/et/Cactus ❯ ./simfactory/bin/sim build -j2 --thornlist ../
einsteintoolkit.th base 3.8.3 11:58:06
Using configuration: sim Reconfiguring sim Writing configuration to: /Users/murray/et/Cactus/configs/sim/OptionList Cactus - version: 4.10.0 Reconfiguring sim. Using configuration options from configure line Setting fds to '3,4 -j --' End of options from configure line Adding configuration options from
'/Users/murray/et/Cactus/configs/sim/OptionList'...
Setting VERSION to '2021-07-27' Setting CPP to 'cpp-11' Setting CC to 'gcc-11' Setting CXX to 'g++-11' Setting FPP to 'cpp-11' Setting F90 to 'gfortran-11' Setting LIBS to 'gfortran' Setting LIBDIRS to '/usr/local/Cellar/gcc/11.1.0_1/lib/gcc/11/
/usr/local/lib/'
Setting CPPFLAGS to '-g -std=gnu++11' Setting FPPFLAGS to '-traditional' Setting CFLAGS to '-g -std=gnu99' Setting CXXFLAGS to '-g -std=gnu++11' Setting F90FLAGS to '-g -fcray-pointer -ffixed-line-length-none' Setting LDFLAGS to '-rdynamic -I/usr/local/lib/gfortran' Setting DEBUG to 'no' Setting CPP_DEBUG_FLAGS to '' Setting C_DEBUG_FLAGS to '' Setting CXX_DEBUG_FLAGS to '' Setting OPTIMISE to 'yes' Setting CPP_OPTIMISE_FLAGS to '' Setting C_OPTIMISE_FLAGS to '-O2' Setting CXX_OPTIMISE_FLAGS to '-O2' Setting F90_OPTIMISE_FLAGS to '-O2' Setting PROFILE to 'no' Setting CPP_PROFILE_FLAGS to '' Setting C_PROFILE_FLAGS to '-pg' Setting CXX_PROFILE_FLAGS to '-pg' Setting F90_PROFILE_FLAGS to '-pg' Setting WARN to 'yes' Setting CPP_WARN_FLAGS to '-Wall' Setting C_WARN_FLAGS to '-Wall' Setting CXX_WARN_FLAGS to '-Wall' Setting F90_WARN_FLAGS to '-Wall' Setting OPENMP to 'yes' Setting CPP_OPENMP_FLAGS to '-fopenmp' Setting FPP_OPENMP_FLAGS to '-D_OPENMP' Setting C_OPENMP_FLAGS to '-fopenmp' Setting CXX_OPENMP_FLAGS to '-fopenmp' Setting F90_OPENMP_FLAGS to '-fopenmp' Setting VECTORISE to 'yes' Setting VECTORISE_ALIGNED_ARRAYS to 'no' Setting VECTORISE_INLINE to 'yes' Setting PTHREADS_DIR to 'NO_BUILD' End of options from '/Users/murray/et/Cactus/configs/sim/OptionList'. creating cache ./config.cache checking host system type... x86_64-apple-darwin19.6.0 checking for mawk... no checking for gawk... no checking for nawk... no checking for awk... awk checking whether make sets ${MAKE}... yes checking whether the C compiler (gcc-11 -g -std=gnu99 -rdynamic
-I/usr/local/lib/gfortran) works... yes
checking whether the C compiler (gcc-11 -g -std=gnu99 -rdynamic
-I/usr/local/lib/gfortran) is a cross-compiler... no
checking whether we are using GNU C... yes checking whether the C++ compiler (g++-11 -g -std=gnu++11 -rdynamic
-I/usr/local/lib/gfortran) works... yes
checking whether the C++ compiler (g++-11 -g -std=gnu++11 -rdynamic
-I/usr/local/lib/gfortran) is a cross-compiler... no
checking whether we are using GNU C++... yes checking for nvcc... no checking for ranlib... ranlib checking for perl... perl checking for gtar... no checking for tar... tar checking for xargs... xargs checking for gzip... gzip checking for gpatch... no checking for patch... patch checking for git... git checking for ar... ar checking for mkdir... mkdir checking for bash... /bin/sh checking whether the Fortran compiler (gfortran-11 ) works... yes checking whether the Fortran compiler (gfortran-11 ) is a
cross-compiler... no
checking whether the Fortran compiler (gfortran-11 ) supports TYPE(*)
for CCTK_PointerTo... yes
checking how to run the C preprocessor... cpp-11 checking for ANSI C header files... no checking for C99 features... yes checking for M_PI... yes checking for C strdup... yes checking for C++ strdup... yes checking whether byte ordering is bigendian... no checking size of long long... 8 checking size of long int... 8 checking size of int... 4 checking size of short int... 2 checking size of long double... 16 checking size of double... 8 checking size of float... 4 checking size of char *... 8 checking for the null device... /dev/null checking for gethostbyname... yes checking whether mode_t is defined... yes checking for availability of gettimeofday timing... yes checking if gettimeofday needs timezone... yes checking for availability of getrusage timing... yes checking for availability of _ftime timing... no checking for time.h... yes checking for sys/time.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for string.h... yes checking for assert.h... yes checking for tgmath.h... yes checking for sys/stat.h... yes checking for getopt.h... yes checking for dirent.h... yes checking for c_asm.h... no checking for intrinsics.h... no checking for mach/mach_time.h... yes checking for regex.h... yes checking for sys/filio.h... yes checking for sys/ioctl.h... yes checking for sys/socket.h... yes checking for netinet/in.h... yes checking for netdb.h... yes checking for arpa/inet.h... yes checking for winsock2.h... no checking for crypt.h... no checking for signal.h... yes checking for malloc.h... no checking for sched.h... yes checking for execinfo.h... yes checking whether time.h and sys/time.h may both be included... yes checking whether socklen_t is defined... yes checking whether SOCKET is defined... no checking for hrtime_t... no checking for gethrtime... no checking for read_real_time... no checking for time_base_to_time... no checking for clock_gettime... yes checking for mach_absolute_time... yes checking for _rtc intrinsic... no checking for mallinfo... no checking for mallopt... no checking for malloc_info... no checking whether M_MMAP_THRESHOLD is defined... no checking for sched_getaffinity... no checking for getpid... yes checking if __int64 is defined... no checking if __int128 is defined... yes checking for vector... yes checking for vector.h... no checking if Intel compiler has broken restrict... no checking if compiler has broken omp collapse... no checking for getopt_long_only... yes checking for working const... yes checking for C inline... inline checking for C static inline... static inline checking for C restrict... restrict checking for C++ restrict... __restrict__ checking for C++ copysign... std::copysign checking for C++ fpclassify... std::fpclassify checking for C++ isfinite... std::isfinite checking for C++ isinf... std::isinf checking for C++ isnan... std::isnan checking for C++ isnormal... std::isnormal checking for C++ signbit... std::signbit checking for C _Pragma... yes checking for C data __attribute__((__common__))... yes checking for C+ data __attribute__((__common__))... yes checking for C function __attribute__((__noinline__))... yes checking for C++ function __attribute__((__noinline__))... yes checking for C++ member function __attribute__((__noinline__))... yes checking for C function __attribute__((__always_inline__))... yes checking for C++ function __attribute__((__always_inline__))... yes checking for C++ member function __attribute__((__always_inline__))...
yes
checking for C __attribute__((__unused__))... yes checking for C++ __attribute__((__unused__))... yes checking for C __attribute__((__aligned__(...)))... yes checking for C++ __attribute__((__aligned__(...)))... yes checking for C __attribute__((__cold__))... yes checking for C++ __attribute__((__cold__))... yes checking for C __attribute__((__hot__))... yes checking for C++ __attribute__((__hot__))... yes checking for C __attribute__((__format__(printf, 1, 2)))... yes checking for C++ __attribute__((__format__(printf, 1, 2)))... yes checking for C __attribute__((__noreturn__))... yes checking for C++ __attribute__((__noreturn__))... yes checking for C __attribute__((__nonnull__))... yes checking for C++ __attribute__((__nonnull__))... yes checking for C __attribute__((__returns_nonnull__))... yes checking for C++ __attribute__((__returns_nonnull__))... yes checking for C __builtin_expect... yes checking for C++ __builtin_expect... yes checking for C __builtin_trap... yes checking for C++ __builtin_trap... yes checking for C __builtin_unreachable... yes checking for C++ __builtin_unreachable... yes checking for C __builtin_assume_aligned... yes checking for C++ __builtin_assume_aligned... yes checking for C++ static_assert... yes checking for C++ auto specifier... yes checking for C++ lambda expressions... yes checking for C++ range-based for statements... no Cactus requires a C++11 compiler -- check your C++ compiler and C++
compiler flags