From 7e06671de5bbb2ebe245cc1ec8dc6ca1abc45a07 Mon Sep 17 00:00:00 2001 From: Anthony Islas Date: Fri, 3 May 2024 13:16:30 -0700 Subject: [PATCH 1/3] Set explicit return on main --- tools/fseek_test.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/fseek_test.c b/tools/fseek_test.c index c1bee099b5..3974de27df 100644 --- a/tools/fseek_test.c +++ b/tools/fseek_test.c @@ -6,6 +6,7 @@ #include #include #include +void main() { FILE *fp ; From 694d93e86de09c140540973113a87f274407ca61 Mon Sep 17 00:00:00 2001 From: Anthony Islas Date: Fri, 3 May 2024 13:17:16 -0700 Subject: [PATCH 2/3] Use safer explicit defines that enable fseeko on certain systems where not the default --- CMakeLists.txt | 11 +++++++---- confcheck/CMakeLists.txt | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0951267f9b..a8e1b5ced3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -792,10 +792,13 @@ endif() #!TODO Leaving as is in WRF for now but investigate why we don't do this # https://stackoverflow.com/a/1035713 # If fseeko64 succeeds, use that, else check if we can fall back to fseeko, and if not just use fseek -if ( ${FSEEKO64} ) - list( APPEND PROJECT_COMPILE_DEFINITIONS FSEEKO64_OK ) -elseif( "${FSEEKO}" ) - list( APPEND PROJECT_COMPILE_DEFINITIONS FSEEKO_OK ) +if ( "${FSEEKO64}" OR "${FSEEKO}" ) + list( APPEND PROJECT_COMPILE_DEFINITIONS _FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE=1 ) + if ( "${FSEEKO64}" ) + list( APPEND PROJECT_COMPILE_DEFINITIONS FSEEKO64_OK ) + elseif( "${FSEEKO}" ) + list( APPEND PROJECT_COMPILE_DEFINITIONS FSEEKO_OK ) + endif() else() list( APPEND PROJECT_COMPILE_DEFINITIONS FSEEK_OK ) endif() diff --git a/confcheck/CMakeLists.txt b/confcheck/CMakeLists.txt index 152aeeaa3a..aab2e3bc69 100644 --- a/confcheck/CMakeLists.txt +++ b/confcheck/CMakeLists.txt @@ -49,7 +49,7 @@ wrf_conf_check( RESULT_VAR FSEEKO64 SOURCE ${PROJECT_SOURCE_DIR}/tools/fseek_test.c EXTENSION .c - ADDITIONAL_DEFINITIONS -DTEST_FSEEKO64 -DFILE_TO_TEST="${PROJECT_SOURCE_DIR}/CMakeLists.txt" + ADDITIONAL_DEFINITIONS -DTEST_FSEEKO64 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -DFILE_TO_TEST="${PROJECT_SOURCE_DIR}/CMakeLists.txt" MESSAGE "fseeko64 not supported, checking alternate fseeko" ) @@ -60,7 +60,7 @@ if ( NOT "${FSEEKO64}" ) RESULT_VAR FSEEKO SOURCE ${PROJECT_SOURCE_DIR}/tools/fseek_test.c EXTENSION .c - ADDITIONAL_DEFINITIONS -DTEST_FSEEKO -DFILE_TO_TEST="${PROJECT_SOURCE_DIR}/CMakeLists.txt" + ADDITIONAL_DEFINITIONS -DTEST_FSEEKO -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -DFILE_TO_TEST="${PROJECT_SOURCE_DIR}/CMakeLists.txt" MESSAGE "fseeko not supported, compiling with fseek (caution with large files)" ) endif() From 7c49e34cba5fb876d4aabca0a7d4d97e39989d00 Mon Sep 17 00:00:00 2001 From: Anthony Islas Date: Wed, 18 Sep 2024 17:49:12 -0700 Subject: [PATCH 3/3] Use int return value for main --- tools/fseek_test.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/fseek_test.c b/tools/fseek_test.c index 3974de27df..45cccef22f 100644 --- a/tools/fseek_test.c +++ b/tools/fseek_test.c @@ -6,7 +6,7 @@ #include #include #include -void +int main() { FILE *fp ; @@ -44,6 +44,6 @@ main() retval = 1 ; } fclose(fp) ; - exit(retval) ; + return retval ; }