123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing#kwsys for details. */
- #ifdef TEST_KWSYS_CXX_HAS_CSTDIO
- #include <cstdio>
- int main()
- {
- return 0;
- }
- #endif
- #ifdef TEST_KWSYS_CXX_HAS_LONG_LONG
- long long f(long long n)
- {
- return n;
- }
- int main()
- {
- long long n = 0;
- return static_cast<int>(f(n));
- }
- #endif
- #ifdef TEST_KWSYS_CXX_HAS___INT64
- __int64 f(__int64 n)
- {
- return n;
- }
- int main()
- {
- __int64 n = 0;
- return static_cast<int>(f(n));
- }
- #endif
- #ifdef TEST_KWSYS_CXX_STAT_HAS_ST_MTIM
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
- int main()
- {
- struct stat stat1;
- (void)stat1.st_mtim.tv_sec;
- (void)stat1.st_mtim.tv_nsec;
- return 0;
- }
- #endif
- #ifdef TEST_KWSYS_CXX_STAT_HAS_ST_MTIMESPEC
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
- int main()
- {
- struct stat stat1;
- (void)stat1.st_mtimespec.tv_sec;
- (void)stat1.st_mtimespec.tv_nsec;
- return 0;
- }
- #endif
- #ifdef TEST_KWSYS_CXX_SAME_LONG_AND___INT64
- void function(long**)
- {
- }
- int main()
- {
- __int64** p = 0;
- function(p);
- return 0;
- }
- #endif
- #ifdef TEST_KWSYS_CXX_SAME_LONG_LONG_AND___INT64
- void function(long long**)
- {
- }
- int main()
- {
- __int64** p = 0;
- function(p);
- return 0;
- }
- #endif
- #ifdef TEST_KWSYS_IOS_HAS_ISTREAM_LONG_LONG
- #include <iostream>
- int test_istream(std::istream& is, long long& x)
- {
- return (is >> x) ? 1 : 0;
- }
- int main()
- {
- long long x = 0;
- return test_istream(std::cin, x);
- }
- #endif
- #ifdef TEST_KWSYS_IOS_HAS_OSTREAM_LONG_LONG
- #include <iostream>
- int test_ostream(std::ostream& os, long long x)
- {
- return (os << x) ? 1 : 0;
- }
- int main()
- {
- long long x = 0;
- return test_ostream(std::cout, x);
- }
- #endif
- #ifdef TEST_KWSYS_IOS_HAS_ISTREAM___INT64
- #include <iostream>
- int test_istream(std::istream& is, __int64& x)
- {
- return (is >> x) ? 1 : 0;
- }
- int main()
- {
- __int64 x = 0;
- return test_istream(std::cin, x);
- }
- #endif
- #ifdef TEST_KWSYS_IOS_HAS_OSTREAM___INT64
- #include <iostream>
- int test_ostream(std::ostream& os, __int64 x)
- {
- return (os << x) ? 1 : 0;
- }
- int main()
- {
- __int64 x = 0;
- return test_ostream(std::cout, x);
- }
- #endif
- #ifdef TEST_KWSYS_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 <sys/types.h>
- #include <assert.h>
- #include <sys/stat.h>
- #if KWSYS_CXX_HAS_CSTDIO
- #include <cstdio>
- #endif
- #include <stdio.h>
- int main(int, 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 TEST_KWSYS_CXX_HAS_SETENV
- #include <stdlib.h>
- int main()
- {
- return setenv("A", "B", 1);
- }
- #endif
- #ifdef TEST_KWSYS_CXX_HAS_UNSETENV
- #include <stdlib.h>
- int main()
- {
- unsetenv("A");
- return 0;
- }
- #endif
- #ifdef TEST_KWSYS_CXX_HAS_ENVIRON_IN_STDLIB_H
- #include <stdlib.h>
- int main()
- {
- char* e = environ[0];
- return e ? 0 : 1;
- }
- #endif
- #ifdef TEST_KWSYS_CXX_HAS_GETLOADAVG
- // Match feature definitions from SystemInformation.cxx
- #if (defined(__GNUC__) || defined(__PGI)) && !defined(_GNU_SOURCE)
- #define _GNU_SOURCE
- #endif
- #include <stdlib.h>
- int main()
- {
- double loadavg[3] = { 0.0, 0.0, 0.0 };
- return getloadavg(loadavg, 3);
- }
- #endif
- #ifdef TEST_KWSYS_CXX_HAS_RLIMIT64
- #if defined(KWSYS_HAS_LFS)
- #define _LARGEFILE_SOURCE
- #define _LARGEFILE64_SOURCE
- #define _LARGE_FILES
- #define _FILE_OFFSET_BITS 64
- #endif
- #include <sys/resource.h>
- int main()
- {
- struct rlimit64 rlim;
- return getrlimit64(0, &rlim);
- }
- #endif
- #ifdef TEST_KWSYS_CXX_HAS_ATOLL
- #include <stdlib.h>
- int main()
- {
- const char* str = "1024";
- return static_cast<int>(atoll(str));
- }
- #endif
- #ifdef TEST_KWSYS_CXX_HAS_ATOL
- #include <stdlib.h>
- int main()
- {
- const char* str = "1024";
- return static_cast<int>(atol(str));
- }
- #endif
- #ifdef TEST_KWSYS_CXX_HAS__ATOI64
- #include <stdlib.h>
- int main()
- {
- const char* str = "1024";
- return static_cast<int>(_atoi64(str));
- }
- #endif
- #ifdef TEST_KWSYS_CXX_HAS_UTIMES
- #include <sys/time.h>
- int main()
- {
- struct timeval* current_time = 0;
- return utimes("/example", current_time);
- }
- #endif
- #ifdef TEST_KWSYS_CXX_HAS_UTIMENSAT
- #include <fcntl.h>
- #include <sys/stat.h>
- #if defined(__APPLE__)
- #include <AvailabilityMacros.h>
- #if MAC_OS_X_VERSION_MIN_REQUIRED < 101300
- #error "utimensat not available on macOS < 10.13"
- #endif
- #endif
- int main()
- {
- struct timespec times[2] = { { 0, UTIME_OMIT }, { 0, UTIME_NOW } };
- return utimensat(AT_FDCWD, "/example", times, AT_SYMLINK_NOFOLLOW);
- }
- #endif
- #ifdef TEST_KWSYS_CXX_HAS_BACKTRACE
- #if defined(__PATHSCALE__) || defined(__PATHCC__) || \
- (defined(__LSB_VERSION__) && (__LSB_VERSION__ < 41))
- backtrace does not work with this compiler or os
- #endif
- #if (defined(__GNUC__) || defined(__PGI)) && !defined(_GNU_SOURCE)
- #define _GNU_SOURCE
- #endif
- #include <execinfo.h>
- int main()
- {
- void* stackSymbols[256];
- backtrace(stackSymbols, 256);
- backtrace_symbols(&stackSymbols[0], 1);
- return 0;
- }
- #endif
- #ifdef TEST_KWSYS_CXX_HAS_DLADDR
- #if (defined(__GNUC__) || defined(__PGI)) && !defined(_GNU_SOURCE)
- #define _GNU_SOURCE
- #endif
- #include <dlfcn.h>
- int main()
- {
- Dl_info info;
- int ierr = dladdr((void*)main, &info);
- return 0;
- }
- #endif
- #ifdef TEST_KWSYS_CXX_HAS_CXXABI
- #if (defined(__GNUC__) || defined(__PGI)) && !defined(_GNU_SOURCE)
- #define _GNU_SOURCE
- #endif
- #if defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x5130 && __linux && \
- __SUNPRO_CC_COMPAT == 'G'
- #include <iostream>
- #endif
- #include <cxxabi.h>
- int main()
- {
- int status = 0;
- size_t bufferLen = 512;
- char buffer[512] = { '\0' };
- const char* function = "_ZN5kwsys17SystemInformation15GetProgramStackEii";
- char* demangledFunction =
- abi::__cxa_demangle(function, buffer, &bufferLen, &status);
- return status;
- }
- #endif
- #ifdef TEST_KWSYS_CXX_HAS_BORLAND_ASM
- int main()
- {
- int a = 1;
- __asm {
- xor EBX, EBX;
- mov a, EBX;
- }
- return a;
- }
- #endif
- #ifdef TEST_KWSYS_CXX_HAS_BORLAND_ASM_CPUID
- int main()
- {
- int a = 0;
- __asm {
- xor EAX, EAX;
- cpuid;
- mov a, EAX;
- }
- return a;
- }
- #endif
- #ifdef TEST_KWSYS_STL_HAS_WSTRING
- #include <string>
- void f(std::wstring*)
- {
- }
- int main()
- {
- return 0;
- }
- #endif
- #ifdef TEST_KWSYS_CXX_HAS_EXT_STDIO_FILEBUF_H
- #include <ext/stdio_filebuf.h>
- int main()
- {
- return 0;
- }
- #endif
|