#pragma GCC visibility push(default) #include #define LOGI(fmt, v...) fprintf(stdout, "info: " fmt "\n", ##v) #define LOGD(fmt, v...) fprintf(stdout, "debug: " fmt "\n", ##v) #include "./nvrtc_type.h" #pragma GCC diagnostic ignored "-Wdeprecated-declarations" static void log_failed_load(int func_idx); namespace { template T on_init_failed(int func_idx); template <> nvrtcResult on_init_failed(int func_idx) { log_failed_load(func_idx); return NVRTC_ERROR_INTERNAL_ERROR; } template <> const char* on_init_failed(int func_idx) { log_failed_load(func_idx); return "load lib failed"; } } // namespace #include "./libnvrtc-wrap.h" static const char* default_so_name = #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) "nvrtc.dll"; #elif defined(__APPLE__) || defined(__MACOSX) "libnvrtc.dylib"; #else "libnvrtc.so"; #endif static const char* default_so_paths[] = { #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64) "nvrtc.dll", #elif defined(__unix__) || defined(__QNX__) || defined(__APPLE__) || \ defined(__MACOSX) #if defined(__APPLE__) || defined(__MACOSX) "/usr/local/cuda/lib/libnvrtc.dylib", #elif defined(__ANDROID__) #if defined(__aarch64__) "/system/vendor/lib64/libnvrtc.so", #elif defined(__arm__) "/system/vendor/lib/libnvrtc.so", #endif #else "libnvrtc.so", // In case some users does not have correct search path configured in // /etc/ld.so.conf "/usr/lib/x86_64-linux-gnu/libnvrtc.so", "/usr/local/nvidia/lib64/libnvrtc.so", "/usr/local/cuda/lib64/libnvrtc.so", #endif #else #error "Unknown platform" #endif }; static const char* extra_so_paths[] = {}; static const char* g_default_api_name = "nvrtc"; #include "./dlopen_helper.h"