1 /*! 2 * Copyright (c) 2018 by Contributors 3 * \file build_config_default.h 4 * \brief Default detection logic for fopen64 and other symbols. 5 * May be overriden by CMake 6 * \author KOLANICH 7 */ 8 #ifndef DMLC_BUILD_CONFIG_DEFAULT_H_ 9 #define DMLC_BUILD_CONFIG_DEFAULT_H_ 10 11 /* default logic for fopen64 */ 12 #if DMLC_USE_FOPEN64 && \ 13 (!defined(__GNUC__) || (defined __ANDROID__) || (defined __FreeBSD__) || defined(__DragonFly__) \ 14 || (defined __APPLE__) || ((defined __MINGW32__) && !(defined __MINGW64__)) \ 15 || (defined __CYGWIN__) ) 16 #define DMLC_EMIT_FOPEN64_REDEFINE_WARNING 17 #define fopen64 std::fopen 18 #endif 19 20 /* default logic for stack trace */ 21 #if (defined(__GNUC__) && !defined(__MINGW32__)\ 22 && !defined(__sun) && !defined(__SVR4)\ 23 && !(defined __MINGW64__) && !(defined __ANDROID__))\ 24 && !defined(__CYGWIN__) && !defined(__EMSCRIPTEN__)\ 25 && !defined(__RISCV__) && !defined(__hexagon__) 26 #ifndef DMLC_LOG_STACK_TRACE 27 #define DMLC_LOG_STACK_TRACE 1 28 #endif 29 #ifndef DMLC_LOG_STACK_TRACE_SIZE 30 #define DMLC_LOG_STACK_TRACE_SIZE 10 31 #endif 32 #define DMLC_EXECINFO_H <execinfo.h> 33 #endif 34 35 /* default logic for detecting existence of nanosleep() */ 36 #if !(defined _WIN32) || (defined __CYGWIN__) 37 #define DMLC_NANOSLEEP_PRESENT 38 #endif 39 40 #endif // DMLC_BUILD_CONFIG_DEFAULT_H_ 41