Skip to content

Commit 778ca03

Browse files
committed
First step fixing #774.
This is the first step of fixing #774. As long as programs only use get from a remote image they already should work fine with a most recent gfortran compiler.
1 parent b805f0d commit 778ca03

File tree

6 files changed

+656
-17
lines changed

6 files changed

+656
-17
lines changed

CMakeLists.txt

+4
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,9 @@ endif()
233233
if ( gfortran_compiler AND ( NOT CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 8.0.0 ) )
234234
add_definitions(-DGCC_GE_8) # Tell library to build against GFortran 8.x bindings w/ descriptor change
235235
endif()
236+
if ( gfortran_compiler AND ( NOT CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 14.0.0 ) )
237+
add_definitions(-DGCC_GE_15) # Tell library to build against GFortran 15.x bindings
238+
endif()
236239

237240
if(gfortran_compiler)
238241
set(OLD_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
@@ -858,6 +861,7 @@ if(opencoarrays_aware_compiler)
858861

859862
# Pure sendget tests
860863
add_caf_test(strided_sendget 3 strided_sendget)
864+
add_caf_test(get_with_1d_vector_index 3 get_with_1d_vector_index)
861865
add_caf_test(get_with_vector_index 4 get_with_vector_index)
862866

863867
# Collective subroutine tests

src/application-binary-interface/libcaf.h

+17
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,23 @@ void PREFIX(caf_sendget)(caf_token_t, size_t, int, gfc_descriptor_t *,
261261
gfc_descriptor_t *, caf_vector_t *, int, int, bool,
262262
int *);
263263

264+
#ifdef GCC_GE_15
265+
void PREFIX(register_accessor)(const int hash,
266+
void (*accessor)(void **, int32_t *, void *,
267+
void *, size_t *, size_t *));
268+
269+
void PREFIX(register_accessors_finish)();
270+
271+
int PREFIX(get_remote_function_index)(const int hash);
272+
273+
void PREFIX(get_by_ct)(caf_token_t token, const gfc_descriptor_t *opt_src_desc,
274+
const size_t *opt_src_charlen, const int image_index,
275+
const size_t dst_size, void **dst_data,
276+
size_t *opt_dst_charlen, gfc_descriptor_t *opt_dst_desc,
277+
const bool may_realloc_dst, const int getter_index,
278+
void *get_data, const size_t get_data_size, int *stat,
279+
caf_team_t *team, int *team_number);
280+
#endif
264281
#ifdef GCC_GE_8
265282
void PREFIX(get_by_ref)(caf_token_t, int, gfc_descriptor_t *dst,
266283
caf_reference_t *refs, int dst_kind, int src_kind,

0 commit comments

Comments
 (0)