[Users] Can't build on Mac OS Catalina

Erik Schnetter schnetter at cct.lsu.edu
Wed Jul 28 14:50:36 CDT 2021


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 at 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
>
>
>
>
>
> _______________________________________________
> Users mailing list
> Users at einsteintoolkit.org
> http://lists.einsteintoolkit.org/mailman/listinfo/users



-- 
Erik Schnetter <schnetter at cct.lsu.edu>
http://www.perimeterinstitute.ca/personal/eschnetter/


More information about the Users mailing list