/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright by The HDF Group. * * All rights reserved. * * * * This file is part of HDF5. The full HDF5 copyright notice, including * * terms governing use, modification, and redistribution, is contained in * * the COPYING file, which can be found at the root of the source code * * distribution tree, or in https://www.hdfgroup.org/licenses. * * If you do not have access to either file, you may request a copy from * * help@hdfgroup.org. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #define SIMPLE_TEST(x) int main(){ x; return 0; } #ifdef HAVE_C99_DESIGNATED_INITIALIZER #ifdef FC_DUMMY_MAIN #ifndef FC_DUMMY_MAIN_EQ_F77 # ifdef __cplusplus extern "C" # endif int FC_DUMMY_MAIN() { return 1;} #endif #endif int main () { typedef struct { int x; union { int i; double d; }u; }di_struct_t; di_struct_t x = { 0, { .d = 0.0}}; ; return 0; } #endif #ifdef HAVE_ATTRIBUTE #if 0 static void test int __attribute((unused)) var) { int __attribute__((unused)) x = var; } int main(void) { test(19); } #else int main () { int __attribute__((unused)) x ; return 0; } #endif #endif /* HAVE_ATTRIBUTE */ #ifdef HAVE_TIMEZONE #ifdef HAVE_SYS_TIME_H #include #endif #include SIMPLE_TEST(timezone=0); #endif /* HAVE_TIMEZONE */ #ifdef SYSTEM_SCOPE_THREADS #include #include int main(void) { pthread_attr_t attribute; int ret; pthread_attr_init(&attribute); ret=pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM); if (ret==0) return 0; return 1; } #endif /* SYSTEM_SCOPE_THREADS */ #ifdef HAVE_SOCKLEN_T #include #include #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_SOCKET_H #include #endif SIMPLE_TEST(socklen_t foo); #endif /* HAVE_SOCKLEN_T */ #ifdef DEV_T_IS_SCALAR #ifdef HAVE_SYS_TYPES_H #include #endif int main () { dev_t d1, d2; if(d1==d2) return 0; return 1; } #endif /* DEV_T_IS_SCALAR */ #ifdef HAVE_OFF64_T #include int main() { off64_t n = 0; return (int)n; } #endif #ifdef TEST_DIRECT_VFD_WORKS #include #include #include int main(void) { int fid; if((fid=open("tst_file", O_CREAT | O_TRUNC | O_DIRECT, 0755))<0) return 1; close(fid); remove("tst_file"); return 0; } #endif #ifdef HAVE_DIRECT SIMPLE_TEST(posix_memalign()); #endif #ifdef HAVE_DEFAULT_SOURCE /* check default source */ #include int main(void) { #ifdef __GLIBC_PREREQ return __GLIBC_PREREQ(2,19); #else return 0; #endif /* defined(__GLIBC_PREREQ) */ } #endif #ifdef TEST_LFS_WORKS /* Return 0 when LFS is available and 1 otherwise. */ #define _LARGEFILE_SOURCE #define _LARGEFILE64_SOURCE #define _LARGE_FILES #define _FILE_OFFSET_BITS 64 #include #include #include #include int main(int argc, char **argv) { /* check that off_t can hold 2^63 - 1 and perform basic operations... */ #define OFF_T_64 (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) if (OFF_T_64 % 2147483647 != 1) return 1; /* stat breaks on SCO OpenServer */ struct stat buf; stat( argv[0], &buf ); if (!S_ISREG(buf.st_mode)) return 2; FILE *file = fopen( argv[0], "r" ); off_t offset = ftello( file ); fseek( file, offset, SEEK_CUR ); fclose( file ); return 0; } #endif #ifdef GETTIMEOFDAY_GIVES_TZ #include #ifdef HAVE_SYS_TIME_H #include #endif int main(void) { struct timeval tv; struct timezone tz; tz.tz_minuteswest = 7777; /* Initialize to an unreasonable number */ tz.tz_dsttime = 7; gettimeofday(&tv, &tz); /* Check whether the function returned any value at all */ if(tz.tz_minuteswest == 7777 && tz.tz_dsttime == 7) return 1; else return 0; } #endif #ifdef HAVE_IOEO #include typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO); int main () { PGNSI pGNSI; pGNSI = (PGNSI) GetProcAddress( GetModuleHandle(TEXT("kernel32.dll")), "InitOnceExecuteOnce"); if(NULL == pGNSI) return 1; else return 0; } #endif /* HAVE_IOEO */