Skip to content

Commit ea6c5ca

Browse files
authored
Merge pull request #46 from leobago/devel
Release candidate for version 0.9.6
2 parents b509cd5 + 3dbc3d5 commit ea6c5ca

33 files changed

+2487
-1498
lines changed

.travis.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
sudo: required
2+
dist: trusty
3+
4+
language: c
5+
6+
env:
7+
global:
8+
- BUILD_DIR="$TRAVIS_BUILD_DIR/build"
9+
- secure: "Dw0r4cbZoT0QoIlI7XWLdhPQxL62CQzskdw3tUth4eSWJd/0IIvLq/ogaZZbYWGH4lifI4p5NMzEpHJ5yFjWnO/ZcpVTZ26SJEFwfBrPUzeu3MV30poX89EYxWz+dE4xPFKzAAKnemlcVxfTHE+z3vW5klnjg5bRH3+pFKoFVBX6M2ABPXcigkpbd1dnXqQK+36v0yx/SF4Yg607vLLPVfcmcU+ohT52OENVkoeEllOxmGxdVfdskEVQ9O16BbtxNSthYQFplvFn5RrpvknRarby51E+7eMf9sOey2H6MWtZYFKXKiascUz5ZLPIt0mFCW1x2wFC39cxMZNFURg+hHlGKUGV9Bt7B7K/XAwvPhY6X+td4OYPR2B68vywxpPlShiTg8iduYg1H4bdVzt+1qdRHsg2qmyJe5eQBMwW5fEVOffJhfVAiG5ceDWzQJQt5cEKn/2yxt1bX3sC7Hl6lzTQ1X6DuLWi9cCsKqsAB7ht/ZC1m13YGRyjghG9RDsRfM2FPy0w0iOHDAGrNzQVPPDDxxgNi/xpmqPlkvjRSz3Pmj6VeAZ2cG68pls+oKyzcWEhCeSL3uT3ShKBfrpQcFxVFzsdTWzH6XYul/HHrUnYKGtd3K1MW59Dng5WcD5xi8n76/wmlkXUoWmYNjfGsP5wwcz/yLfc/CRDRB3P4jo="
10+
11+
addons:
12+
coverity_scan:
13+
project:
14+
name: sclaomir/fti
15+
description: Fault Tolerance Interface
16+
notification_email: scan_notifications@example.com
17+
build_command_prepend: cmake ..
18+
build_command: make
19+
branch_pattern: devel
20+
21+
os:
22+
- linux
23+
24+
compiler:
25+
- gcc
26+
27+
cache:
28+
apt: true
29+
30+
before_install:
31+
- sudo apt-get update -qq
32+
- sudo apt-get install -y cmake gcc gfortran openmpi-bin libopenmpi-dev
33+
34+
before_script:
35+
- mkdir $BUILD_DIR
36+
- cd $BUILD_DIR
37+
- cmake ..
38+
39+
script: make

AUTHORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Author:
55
Collaborators:
66

77
Julien BIGOT
8+
Slawomir Zdanowski
89
Adele VILLIERMET
910
Sheng DI
1011
Faysal BOUI

CMakeLists.txt

Lines changed: 59 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,85 @@
1-
cmake_minimum_required(VERSION 2.8)
2-
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeScripts")
1+
cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR)
32

4-
if ( "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}" )
3+
if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
54
project(FTI C Fortran)
65
endif()
76

7+
option(ENABLE_FORTRAN "Enables the generation of the Fortran wrapper for FTI" ON)
8+
option(ENABLE_EXAMPLES "Enables the generation of examples" ON)
9+
10+
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeScripts")
811
include(AppendProperty)
912
include(BPP)
1013
include(FortranCInterface)
14+
1115
find_package(MPI REQUIRED)
1216

13-
option(ENABLE_FORTRAN "Enables the generation of the Fortran wrapper for FTI" ON)
17+
add_subdirectory(deps)
1418

15-
include_directories("${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/src" "${CMAKE_CURRENT_SOURCE_DIR}/include" ${MPI_Fortran_INCLUDE_PATH} ${MPI_C_INCLUDE_PATH})
19+
include_directories("${CMAKE_CURRENT_BINARY_DIR}"
20+
"${CMAKE_CURRENT_SOURCE_DIR}/src" "${CMAKE_CURRENT_SOURCE_DIR}/include"
21+
${MPI_Fortran_INCLUDE_PATH} ${MPI_C_INCLUDE_PATH})
1622

17-
set (LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/lib)
18-
set (CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include)
23+
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/lib)
24+
set(CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include)
1925

2026
set(SRC_FTI
21-
src/galois.c
22-
src/jerasure.c
23-
src/dictionary.c
24-
src/iniparser.c
25-
src/checkpoint.c
26-
src/postckpt.c
27-
src/recover.c
28-
src/postreco.c
29-
src/topo.c
30-
src/conf.c
31-
src/meta.c
32-
src/tools.c
33-
src/api.c
34-
)
35-
append_property(SOURCE ${SRC_FTI} PROPERTY COMPILE_FLAGS " ${MPI_C_COMPILE_FLAGS} ")
36-
37-
add_library(fti.static STATIC ${SRC_FTI})
27+
src/api.c src/checkpoint.c src/conf.c src/meta.c
28+
src/postckpt.c src/postreco.c src/recover.c
29+
src/tools.c src/topo.c)
30+
31+
append_property(SOURCE ${SRC_FTI}
32+
PROPERTY COMPILE_FLAGS "${MPI_C_COMPILE_FLAGS}")
33+
34+
add_library(fti.static STATIC ${SRC_FTI}
35+
$<TARGET_OBJECTS:iniparser> $<TARGET_OBJECTS:jerasure>)
36+
add_library(fti.shared SHARED ${SRC_FTI}
37+
$<TARGET_OBJECTS:iniparser> $<TARGET_OBJECTS:jerasure>)
38+
39+
append_property(TARGET fti.static fti.shared
40+
PROPERTY LINK_FLAGS "${MPI_C_LINK_FLAGS}")
41+
set_property(TARGET fti.static fti.shared
42+
PROPERTY OUTPUT_NAME fti)
43+
3844
target_link_libraries(fti.static ${MPI_C_LIBRARIES})
39-
add_library(fti.shared SHARED ${SRC_FTI})
4045
target_link_libraries(fti.shared ${MPI_C_LIBRARIES})
41-
append_property(TARGET fti.static fti.shared PROPERTY LINK_FLAGS " ${MPI_C_LINK_FLAGS} ")
42-
set_property(TARGET fti.static fti.shared PROPERTY OUTPUT_NAME fti)
4346

44-
install(TARGETS fti.static fti.shared DESTINATION lib)
45-
install(FILES "include/fti.h" "include/dictionary.h" "include/galois.h" "include/iniparser.h" "include/jerasure.h" DESTINATION include)
47+
install(TARGETS fti.static fti.shared
48+
DESTINATION lib)
49+
install(FILES "include/fti.h"
50+
DESTINATION include)
4651

47-
if ( ENABLE_FORTRAN )
52+
if(ENABLE_FORTRAN)
4853
bpp_preprocess(BPP_FTI_F90
49-
src/interface.F90.bpp
50-
)
51-
set(SRC_FTI_F90
52-
${BPP_FTI_F90}
53-
src/ftif.c
54-
)
55-
append_property(SOURCE ${SRC_FTI_F90} PROPERTY COMPILE_FLAGS " ${MPI_Fortran_COMPILE_FLAGS} ")
54+
src/fortran/interface.F90.bpp)
55+
set(SRC_FTI_F90 ${BPP_FTI_F90}
56+
src/fortran/ftif.c)
57+
append_property(SOURCE ${SRC_FTI_F90}
58+
PROPERTY COMPILE_FLAGS "${MPI_Fortran_COMPILE_FLAGS}")
5659

5760
add_library(fti_f90.static STATIC ${SRC_FTI_F90})
58-
target_link_libraries(fti_f90.static fti.static ${MPI_Fortran_LIBRARIES} ${MPI_C_LIBRARIES})
61+
target_link_libraries(fti_f90.static
62+
fti.static ${MPI_Fortran_LIBRARIES} ${MPI_C_LIBRARIES})
63+
5964
add_library(fti_f90.shared SHARED ${SRC_FTI_F90})
60-
target_link_libraries(fti_f90.shared fti.shared ${MPI_Fortran_LIBRARIES} ${MPI_C_LIBRARIES})
61-
append_property(TARGET fti_f90.static fti_f90.shared PROPERTY LINK_FLAGS " ${MPI_Fortran_LINK_FLAGS} ${MPI_C_LINK_FLAGS} ")
62-
set_property(TARGET fti_f90.static fti_f90.shared PROPERTY OUTPUT_NAME fti_f90)
65+
target_link_libraries(fti_f90.shared
66+
fti.shared ${MPI_Fortran_LIBRARIES} ${MPI_C_LIBRARIES})
6367

64-
install(TARGETS fti_f90.static fti_f90.shared DESTINATION lib)
65-
install(FILES ${CMAKE_Fortran_MODULE_DIRECTORY}/fti.mod DESTINATION include)
68+
append_property(TARGET fti_f90.static fti_f90.shared
69+
PROPERTY LINK_FLAGS "${MPI_Fortran_LINK_FLAGS} ${MPI_C_LINK_FLAGS}")
70+
set_property(TARGET fti_f90.static fti_f90.shared
71+
PROPERTY OUTPUT_NAME fti_f90)
72+
73+
install(TARGETS fti_f90.static fti_f90.shared
74+
DESTINATION lib)
75+
install(FILES ${CMAKE_Fortran_MODULE_DIRECTORY}/fti.mod
76+
DESTINATION include)
6677
endif()
6778

68-
if ( NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}" )
79+
if(NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
6980
set(FTI_INCLUDE_PATH "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/include" PARENT_SCOPE)
7081
endif()
82+
83+
if(ENABLE_EXAMPLES)
84+
add_subdirectory(examples)
85+
endif()

deps/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
add_subdirectory(iniparser)
2+
add_subdirectory(jerasure)

deps/iniparser/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
set(SRC_iniparser
2+
dictionary.h dictionary.c
3+
iniparser.h iniparser.c)
4+
5+
append_property(SOURCE ${SRC_iniparser}
6+
PROPERTY COMPILE_FLAGS "-fPIC")
7+
8+
add_library(iniparser OBJECT ${SRC_iniparser})
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,13 @@ static char * strlwc(const char * s)
7474
static char * strstrip(const char * s)
7575
{
7676
static char l[ASCIILINESZ+1];
77-
char * last ;
77+
char * last;
7878

7979
if (s==NULL) return NULL ;
8080

8181
while (isspace((int)*s) && *s) s++;
8282
memset(l, 0, ASCIILINESZ+1);
83-
strcpy(l, s);
83+
strncpy(l, s, ASCIILINESZ);
8484
last = l + strlen(l);
8585
while (last > l) {
8686
if (!isspace((int)*(last-1)))
@@ -562,7 +562,11 @@ static line_status iniparser_line(
562562
char line[ASCIILINESZ+1];
563563
int len ;
564564

565-
strcpy(line, strstrip(input_line));
565+
memset(line, 0, ASCIILINESZ + 1);
566+
len = (int)strlen(strstrip(input_line));
567+
if (len > ASCIILINESZ)
568+
len = ASCIILINESZ;
569+
strncpy(line, strstrip(input_line), len);
566570
len = (int)strlen(line);
567571

568572
sta = LINE_UNPROCESSED ;
@@ -608,6 +612,7 @@ static line_status iniparser_line(
608612
} else {
609613
/* Generate syntax error */
610614
sta = LINE_ERROR ;
615+
printf("===== > %s ===> %s\n", input_line, line);
611616
}
612617
return sta ;
613618
}

deps/jerasure/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
set(SRC_jerasure
2+
galois.h galois.c
3+
jerasure.h jerasure.c)
4+
5+
append_property(SOURCE ${SRC_jerasure}
6+
PROPERTY COMPILE_FLAGS "-fPIC")
7+
8+
add_library(jerasure OBJECT ${SRC_jerasure})

0 commit comments

Comments
 (0)