| Commit message (Collapse) | Author | Age |
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4727 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
"inline" keyword works as is.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4715 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4713 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4711 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
| |
(/opt/local/*) come last. This increases the probability that the
correct library is used, e.g. if a library exists both in a specific
path and in /opt/local/lib.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4705 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4704 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update and improve the auto-detection of the "restrict" keyword; add
more test cases to detect more possible failures. Disable testing the
array syntax
void foo (double A[restrict]);
where the "restrict" keyword is given within the square brackets;
instead, one can use the pointer syntax
void foo (double *restrict const A);
which is tested.
Add support for the gcc built-in function "builtin_expect", which
tells the compiler the value that an expression is most likely to
have.
Re-enable the (currently commented out) definitions for attribute(hot)
and attribute(cold).
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4702 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4701 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
| |
actually uses that very variable for a list of default options. Use GZIP_CMD instead
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4690 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4688 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
| |
should be called CUCC, not NVCC. nvcc is only NVidia's CUDA C compiler.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4685 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4684 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
| |
Cactus supports a variable OPTIMISE=yes/no to control whether optimisation is performed during compilation. Setting this variable to "yes" (for example, make sim-config OPTIMISE=yes) adds the flags in C_OPTIMISE_FLAGS to CFLAGS so that optimisation is performed. This is the default. Setting OPTIMISE=no does not add the flags. For gcc, this results in an unoptimised configuration as gcc assumes -O0 as the default. The Intel compiler, however, uses -O2 as the default. Hence, setting OPTIMISE=no has no effect on Intel, and -O2 is still used.
This patch adds new configuration options C_NO_OPTIMISE_FLAGS, CXX_NO_OPTIMISE_FLAGS, F77_NO_OPTIMISE_FLAGS and F90_NO_OPTIMISE_FLAGS to complement the *_OPTIMISE_FLAGS options. These are added to the flags when OPTIMISE=no is used, and they default to -O0, which for the commonly used gcc and Intel compilers will lead to an unoptimised configuration.
This requires a CONFIG-reconfig, but this is not enforced because this option doesn't affect most people, and failing to -reconfig is not fatal.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4681 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
| |
gcc' __attribute__(__aligned__(...)) if present. This is necessary for
vectorisation.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4662 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
__attribute__((noinline)) if that is supported by the compiler.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4658 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
special CPP flags for debugging. These complement the existing
C_DEBUG_FLAGS and CPPFLAGS. In particular, the following flags are
added:
CPP_DEBUG_FLAGS
FPP_DEBUG_FLAGS
CPP_OPTIMISE_FLAGS
FPP_OPTIMISE_FLAGS
CPP_PROFILE_FLAGS
FPP_PROFILE_FLAGS
CPP_OPENMP_FLAGS
FPP_OPENMP_FLAGS
CPP_WARN_FLAGS
FPP_WARN_FLAGS
Applications are e.g. adding -Wall to CPP_WARN_FLAGS, or -fopenmp to
CPP_OPENMP_FLAGS.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4656 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
| |
Cactus variables might be unused and should not be reported as such. This closes ET ticket #1
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4651 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4630 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4601 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and LIBLINK_PREFIX. Expand them in makefiles.
LIBDIR_PREFIX and LIBLINK_PREFIX existed before, but were not explicit
configuration variables. RUNDIR_PREFIX is used to remember the path
to a shared library in an executable.
Keep the default value for LIBDIR_PREFIX at "-L" and LIBLINK_PREFIX at
"-l". Set the default for RUNDIR_PREFIX to "-Wl,-rpath,".
Use these variables when building the executable.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4599 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
configuration variable
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4586 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4580 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
| |
This option is accompanied by the option set {C,CXX,F77,F90}_OPENMP_FLAGS
through which users can overwrite the default OpenMP options set in the
known-architectures file.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4513 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
| |
process is now aborted with an error message.
To create a cross compiled configuration the new configure option CROSS_COMPILE
must be set to "yes".
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4512 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
library and directory names, respectively, but leave options alone.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4461 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
Such timing functions are e.g. used by Carpet.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4457 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4436 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
| |
when neither compiler has been found which left types
undefined.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4433 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the inline keyword very similarly to AC_C_INLINE. CCTK_CHECK_C_INLINE
works in the following way:
Do nothing if the compiler accepts the inline keyword. Otherwise
define inline to __inline__ or __inline if one of those work,
otherwise define inline to be empty.
The setting '__inline__ __attribute__((__gnu_inline__))' is for gcc
4.3 and later. By default this version of gcc follows the new ANSI
standard for "static inline" and "extern inline", which is
incompatible with many libraries (e.g. GSL), leading to linker errors
about duplicate symbols. This is because "static inline" now
generates an externally visible symbol. The setting above makes gcc
fall back to the old meaning, which does not generate an externally
visible symbol for "static inline".
Use CCTK_CHECK_C_INLINE instead of AC_C_INLINE in configure.in.
Re-generate configure.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4429 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
| |
functions mallinfo() and mallopt(), and the constant M_MMAP_THRESHOLD.
These are e.g. provided by glibc.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4422 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4419 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
| |
handle long argument lists, which prevents calling ar or ld when there
are many thorns.
Add a comment describing why setting SHELL when configuring does not
work.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4409 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
| |
was before the CVS server was restored. This file has now effectively
the same content as before the repository corruption.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4364 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
| |
Set the F77 profile flags as well when setting the F77 flags. This
somehow got lost in the previous change.
This should bring the configure script back in sync with configure.in
now that the CVS server problems have been solved.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4363 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
| |
during configuring. This way they are set before they are used to
determine the properties of the Fortran compiler.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4355 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
| |
support this type. This does not make sense if there is no Fortran
compiler.
Disable the check whether real*n is supported in Fortran when there is
no Fortran compiler.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4354 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
always detects it as "not present", even if the message printed to the
screen during configuration says "present". The enclosed patch
corrects this:
Rename the detecting autoconf macro from CCTK_PROG_FORTRAN_REAL16 to
CCTK_FORTRAN_REAL16. This follows the usual autoconf naming
conventions; see e.g. CCTK_CXX_BOOL. Also rename the return value (a
global variable) from fortran_does_real16 to
cctk_cv_have_fortran_real16.
In this macro, use the function AC_TRY_COMPILE instead of
AC_TRY_COMPILER. The difference is that this then only compiles, it
does not try to link and execute. Executing would require handling
cross-compiling in a special way.
Replace the autoconf macro AC_TRY_COMPILE by CCTK_TRY_COMPILE,
correcting an error in handling Fortran programmes. AC_TRY_COMPILE
does not work for Fortran in autoconf 2.13.
Move setting the compiler debug and warning flags further up in
configure.in, so that the Fortran 77 compiler flags, which may be
copied from the Fortran 90 compiler flags, are correct when the
Fortran types are detected. Otherwise the wrong Fortran 77 compiler
may be used for this test.
Add autodetection for all the Fortran types real*4, real*8, real*16,
complex*8, complex*16, and complex*32. Make this result available to
thorns as HAVE_CCTK_FORTRAN_xxx.
Define the CCTK_REALxxx and HAVE_CCTK_REALxxx macros only if the
corresponding real and complex types are available in both C and
Fortran.
Remove some leftover debugging statements.
Tested on Darwin-x86 with gcc and Linux-x86 with Intel.
Touche force-reconfigure.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4351 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
build. This flag is equivalent to OPTIMISE=yes and DEBUG=yes.
Additional compiler options {C,CXX,F77,F90}_PROFILE_FLAGS are also
introduced.
The configuration stage sets the F77 flags to the F90 flags if an F90
compiler is found. This flag setting was done too early, namely
before the default values for the F90 flags were set. This flag
setting has been moved to a later time.
The link command used undefined make variables $(OPTIMISE_C) etc.
These variables have been removed. Instead $(CXX_OPTIMISE_FLAGS)
etc. are added to the link statement. This makes the linker pick up
the correct flags e.g. for profiling.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4327 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fortran REAL*16 detection
http://www.cactuscode.org/old/pipermail/patches/2006-April/000164.html
... a patch that makes Cactus directly detect Fortran support
for a REAL*16 type.
The problem has been that Cactus based CCTK_REAL16 on support for the C type
'long double'. This would cause it to create Fortran code for REAL*16, a
type which was sometimes not supported.
In particular, on a 64-bit Athlon machine with Gnu 4.1.0, gfortran
defines REAL*8 but not REAL*16, while gcc defines 'long double'.
This caused thorn AEIThorns/Fortran to fail to compile.
This patch causes the configuration to directly compile Fortran code that
features REAL*16, and define CCTK_REAL16 only if that compiles *and* C's
'long double' is supported.
When you make config, you will see a new line about Fortran REAL*16.
I have tested the enclosed patch on
my laptop with Gnu 4.10 and Intel 9.0 compilers
64-bit AMD Athlon with same compilers
POWER4 with IBM XL compilers
BUT NOTE: I have severe doubts about using REAL*16 on any of these
architectures. That 16-byte (128-bit) type is not natively supported
on the Xeon, Athlon, or POWER machines. While some compilers support
such types, calculation is done in software, not on the FPU.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4314 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
| |
(old versions of g++) don't support restrict in arrays which are
structure members.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4282 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4281 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
The other F77 flags are already overwritten.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4240 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4212 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
| |
overrides F77FLAGS with F90FLAGS. This patch also sets
F77_DEBUG_FLAGS and F77_OPTIMISE_FLAGS from the corresponding F90 flag
settings.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4183 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
| |
an if clause so it is only tested if CCTK_NEED_X is true.
The PETSc extras file has been updated to set this flag.
This will be reverted when the extras stuff is removed and
thorns are using the thorns in CactusExternal to detect things.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4182 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
| |
via a thorn and a configuration script.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4174 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
| |
compilers --- this caused problems on an SP system and also needs to
ensure that F90 and F77 naming schemes are the same.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4164 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
| |
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4155 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
| |
support for the datatype CCTK_REAL16. This is necessary because
Cactus only detects whether C supports this datatype, and then assumes
that Fortran behaves the same.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4149 17b73243-c579-4c4c-a9d2-2d5706c11dac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
declare and initialise local variables. They also add the necessary
magic to prevent compiler warnings about unused variables.
If the compiler supports __attribute__((unused)), then use this.
Otherwise, use the existing fallback of taking the variable's
address. In Fortran, use the variable's kind as fallback.
Use these macros in autogenerated code and in "cctk.h".
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4146 17b73243-c579-4c4c-a9d2-2d5706c11dac
|