Skip to content

Commit 0f53a32

Browse files
vehrezbeekman
authored andcommitted
Added preproccessor guards.
1 parent 55712ab commit 0f53a32

File tree

3 files changed

+36
-1
lines changed

3 files changed

+36
-1
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ if(opencoarrays_aware_compiler)
206206

207207
# Integration tests verifying the use of libcaf_mpi in applications
208208
add_mpi_test(hello_multiverse 2 ${tests_root}/integration/coarrayHelloWorld/hello_multiverse)
209-
add_mpi_test(coarray_burgers_pde 2 ${tests_root}/integration/pde_solvers/coarrayBurgers/coarray_burgers_pde)
209+
add_mpi_test(coarray_burgers_pde 4 ${tests_root}/integration/pde_solvers/coarrayBurgers/coarray_burgers_pde)
210210
add_mpi_test(co_heat 2 ${tests_root}/integration/pde_solvers/coarrayHeatSimplified/co_heat)
211211
if ( ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "x86_64") AND ("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") )
212212
if ( NOT (DEFINED ENV{TRAVIS}))

src/libcaf.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
4343
#define unlikely(x) __builtin_expect(!!(x), 0)
4444
#endif
4545

46+
#if __GNUC__ >= 7
47+
#define GCC_GE_7 1
48+
#endif
49+
4650
#ifdef PREFIX_NAME
4751
#define PREFIX3(X,Y) X ## Y
4852
#define PREFIX2(X,Y) PREFIX3(X,Y)
@@ -101,6 +105,7 @@ typedef struct caf_vector_t {
101105
caf_vector_t;
102106

103107

108+
#ifdef GCC_GE_7
104109
/* Keep in sync with gcc/libgfortran/caf/libcaf.h. */
105110
typedef enum caf_ref_type_t {
106111
/* Reference a component of a derived type, either regular one or an
@@ -179,6 +184,7 @@ typedef struct caf_reference_t {
179184
} a;
180185
} u;
181186
} caf_reference_t;
187+
#endif
182188

183189

184190
/* Common auxiliary functions: caf_auxiliary.c. */
@@ -194,8 +200,13 @@ void PREFIX (finalize) (void);
194200
int PREFIX (this_image) (int);
195201
int PREFIX (num_images) (int, int);
196202

203+
#ifdef GCC_GE_7
197204
void PREFIX (register) (size_t, caf_register_t, caf_token_t *,
198205
gfc_descriptor_t *, int *, char *, int);
206+
#else
207+
void * PREFIX (register) (size_t, caf_register_t, caf_token_t *,
208+
int *, char *, int);
209+
#endif
199210
void PREFIX (deregister) (caf_token_t *, int *, char *, int);
200211

201212
void PREFIX (caf_get) (caf_token_t, size_t, int, gfc_descriptor_t *,
@@ -207,6 +218,7 @@ void PREFIX (caf_sendget) (caf_token_t, size_t, int, gfc_descriptor_t *,
207218
caf_vector_t *, caf_token_t, size_t, int,
208219
gfc_descriptor_t *, caf_vector_t *, int, int);
209220

221+
#ifdef GCC_GE_7
210222
void PREFIX(get_by_ref) (caf_token_t, int,
211223
gfc_descriptor_t *dst, caf_reference_t *refs,
212224
int dst_kind, int src_kind, bool may_require_tmp,
@@ -219,6 +231,7 @@ void PREFIX(sendget_by_ref) (caf_token_t dst_token, int dst_image_index,
219231
caf_reference_t *dst_refs, caf_token_t src_token, int src_image_index,
220232
caf_reference_t *src_refs, int dst_kind, int src_kind,
221233
bool may_require_tmp, int *dst_stat, int *src_stat);
234+
#endif
222235

223236
void PREFIX (co_max) (gfc_descriptor_t *, int, int *, char *, int, int);
224237
void PREFIX (co_min) (gfc_descriptor_t *, int, int *, char *, int, int);

src/mpi/mpi_caf.c

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,7 @@ PREFIX (num_images)(int distance __attribute__ ((unused)),
465465
}
466466

467467

468+
#ifdef GCC_GE_7
468469
#ifdef COMPILER_SUPPORTS_CAF_INTRINSICS
469470
void
470471
_gfortran_caf_register (size_t size, caf_register_t type, caf_token_t *token,
@@ -474,6 +475,17 @@ void
474475
PREFIX (register) (size_t size, caf_register_t type, caf_token_t *token,
475476
gfc_descriptor_t *desc, int *stat, char *errmsg, int errmsg_len)
476477
#endif
478+
#else
479+
#ifdef COMPILER_SUPPORTS_CAF_INTRINSICS
480+
void *
481+
_gfortran_caf_register (size_t size, caf_register_t type, caf_token_t *token,
482+
int *stat, char *errmsg, int errmsg_len)
483+
#else
484+
void *
485+
PREFIX (register) (size_t size, caf_register_t type, caf_token_t *token,
486+
int *stat, char *errmsg, int errmsg_len)
487+
#endif
488+
#endif
477489
{
478490
/* int ierr; */
479491
void *mem;
@@ -553,8 +565,12 @@ void
553565
if (stat)
554566
*stat = 0;
555567

568+
#ifdef GCC_GE_7
556569
desc->base_addr = mem;
557570
return;
571+
#else
572+
return mem;
573+
#endif
558574

559575
error:
560576
{
@@ -580,6 +596,9 @@ void
580596
else
581597
caf_runtime_error (msg);
582598
}
599+
#ifndef GCC_GE_7
600+
return NULL;
601+
#endif
583602
}
584603

585604

@@ -1595,6 +1614,7 @@ PREFIX (get) (caf_token_t token, size_t offset,
15951614
}
15961615

15971616

1617+
#ifdef GCC_GE_7
15981618
void
15991619
PREFIX(get_by_ref) (caf_token_t token, int image_idx,
16001620
gfc_descriptor_t *dst, caf_reference_t *refs,
@@ -1664,6 +1684,8 @@ PREFIX(sendget_by_ref) (caf_token_t dst_token, int dst_image_index,
16641684
fprintf (stderr, "COARRAY ERROR: caf_sendget_by_ref() not implemented yet ");
16651685
error_stop (1);
16661686
}
1687+
#endif
1688+
16671689

16681690
/* SYNC IMAGES. Note: SYNC IMAGES(*) is passed as count == -1 while
16691691
SYNC IMAGES([]) has count == 0. Note further that SYNC IMAGES(*)

0 commit comments

Comments
 (0)