diff options
author | sanine <sanine.not@pm.me> | 2022-08-27 23:52:56 -0500 |
---|---|---|
committer | sanine <sanine.not@pm.me> | 2022-08-27 23:52:56 -0500 |
commit | a4dd0ad63c00f4dee3b86dfd3075d1d61b2b3180 (patch) | |
tree | 13bd5bfa15e6fea2a12f176bae79adf9c6fd0933 /3rdparty/plibsys/platforms | |
parent | bde3e4f1bb7b8f8abca0884a7d994ee1c17a66b1 (diff) |
add plibsys
Diffstat (limited to '3rdparty/plibsys/platforms')
62 files changed, 2720 insertions, 0 deletions
diff --git a/3rdparty/plibsys/platforms/aix-gcc/platform.cmake b/3rdparty/plibsys/platforms/aix-gcc/platform.cmake new file mode 100644 index 0000000..be1d25a --- /dev/null +++ b/3rdparty/plibsys/platforms/aix-gcc/platform.cmake @@ -0,0 +1,13 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL sysv) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LDFLAGS -L/usr/lib/threads) +set (PLIBSYS_PLATFORM_LINK_LIBRARIES c_r -pthread) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT + -D_THREAD_SAFE +) diff --git a/3rdparty/plibsys/platforms/amigaos-gcc/Platform/AmigaOS.cmake b/3rdparty/plibsys/platforms/amigaos-gcc/Platform/AmigaOS.cmake new file mode 100644 index 0000000..2889670 --- /dev/null +++ b/3rdparty/plibsys/platforms/amigaos-gcc/Platform/AmigaOS.cmake @@ -0,0 +1,2 @@ +# This is a dummy file to suppress CMake warnings about unknown platform. +# As we are doing it during cross-compilation, it is completely fine. diff --git a/3rdparty/plibsys/platforms/amigaos-gcc/amigaos.cmake b/3rdparty/plibsys/platforms/amigaos-gcc/amigaos.cmake new file mode 100644 index 0000000..23e88e6 --- /dev/null +++ b/3rdparty/plibsys/platforms/amigaos-gcc/amigaos.cmake @@ -0,0 +1,90 @@ +# In order to suppress CMake warnings about unknown platform +get_filename_component (cur_dir ${CMAKE_CURRENT_LIST_FILE} PATH) +list (APPEND CMAKE_MODULE_PATH "${cur_dir}") + +set (CMAKE_SYSTEM_NAME AmigaOS) +set (CMAKE_SYSTEM_VERSION 4) +set (CMAKE_SYSTEM_PROCESSOR ppc) + +if (NOT AMIGA_ROOT) + set (AMIGA_ROOT $ENV{AMIGA_ROOT}) + + if (NOT AMIGA_ROOT) + message (FATAL_ERROR "You must define AMIGA_ROOT environment variable for toolchain") + endif() +endif() + +set (CMAKE_SHARED_LIBRARY_PREFIX "lib") +set (CMAKE_SHARED_LIBRARY_SUFFIX ".so") +set (CMAKE_STATIC_LIBRARY_PREFIX "lib") +set (CMAKE_STATIC_LIBRARY_SUFFIX ".a") + +if (CMAKE_HOST_WIN32) + set (HOST_EXECUTABLE_SUFFIX ".exe") +endif() + +set (CMAKE_AR + "${AMIGA_ROOT}/bin/${CMAKE_SYSTEM_PROCESSOR}-amigaos-ar${HOST_EXECUTABLE_SUFFIX}" + CACHE PATH "AmigaOS ar program" +) + +set (CMAKE_RANLIB + "${AMIGA_ROOT}/bin/${CMAKE_SYSTEM_PROCESSOR}-amigaos-ranlib${HOST_EXECUTABLE_SUFFIX}" + CACHE PATH "AmigaOS ranlib program" +) + +set (CMAKE_NM + "${AMIGA_ROOT}/bin/${CMAKE_SYSTEM_PROCESSOR}-amigaos-nm${HOST_EXECUTABLE_SUFFIX}" + CACHE PATH "AmigaOS nm program" +) + +set (CMAKE_OBJCOPY + "${AMIGA_ROOT}/bin/${CMAKE_SYSTEM_PROCESSOR}-amigaos-objcopy${HOST_EXECUTABLE_SUFFIX}" + CACHE PATH "AmigaOS objcopy program" +) + +set (CMAKE_OBJDUMP + "${AMIGA_ROOT}/bin/${CMAKE_SYSTEM_PROCESSOR}-amigaos-objdump${HOST_EXECUTABLE_SUFFIX}" + CACHE PATH "AmigaOS objdump program" +) + +set (CMAKE_LINKER + "${AMIGA_ROOT}/bin/${CMAKE_SYSTEM_PROCESSOR}-amigaos-ld${HOST_EXECUTABLE_SUFFIX}" + CACHE PATH "AmigaOS linker program" +) + +set (CMAKE_STRIP + "${AMIGA_ROOT}/bin/${CMAKE_SYSTEM_PROCESSOR}-amigaos-strip${HOST_EXECUTABLE_SUFFIX}" + CACHE PATH "AmigaOS strip program" +) + +set (CMAKE_C_COMPILER "${AMIGA_ROOT}/bin/${CMAKE_SYSTEM_PROCESSOR}-amigaos-gcc${HOST_EXECUTABLE_SUFFIX}") +set (CMAKE_CXX_COMPILER "${AMIGA_ROOT}/bin/${CMAKE_SYSTEM_PROCESSOR}-amigaos-g++${HOST_EXECUTABLE_SUFFIX}") +set (CMAKE_ASM_COMPILER "${AMIGA_ROOT}/bin/${CMAKE_SYSTEM_PROCESSOR}-amigaos-as${HOST_EXECUTABLE_SUFFIX}") + +set (CMAKE_SHARED_LIBRARY_CXX_FLAGS -fPIC) +set (CMAKE_SHARED_LIBRARY_C_FLAGS -fPIC) +set (CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS -shared) +set (CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS -shared) + +set (AMIGA_CLIB2_PATH "${AMIGA_ROOT}/ppc-amigaos/SDK/clib2/lib") + +set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -use-dynld -L${AMIGA_CLIB2_PATH}") +set (CMAKE_SHARED_LINKER_FLAGS "-L${AMIGA_CLIB2_PATH}") + +set (CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-Wl,-rpath,") +set (CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP ":") +set (CMAKE_SHARED_LIBRARY_RPATH_LINK_CXX_FLAG "-Wl,-rpath-link,") +set (CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-soname,") +set (CMAKE_EXE_EXPORTS_CXX_FLAG "-Wl,--export-dynamic") + +set (CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") +set (CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") +set (CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,") +set (CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") +set (CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic") + +set (CMAKE_FIND_ROOT_PATH ${AMIGA_ROOT}) +set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) diff --git a/3rdparty/plibsys/platforms/amigaos-gcc/platform.cmake b/3rdparty/plibsys/platforms/amigaos-gcc/platform.cmake new file mode 100644 index 0000000..2e589e3 --- /dev/null +++ b/3rdparty/plibsys/platforms/amigaos-gcc/platform.cmake @@ -0,0 +1,12 @@ +set (PLIBSYS_THREAD_MODEL amiga) +set (PLIBSYS_IPC_MODEL amiga) +set (PLIBSYS_TIME_PROFILER_MODEL amiga) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL amiga) +set (PLIBSYS_RWLOCK_MODEL general) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES auto amiga unix) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/android-clang/platform.cmake b/3rdparty/plibsys/platforms/android-clang/platform.cmake new file mode 100644 index 0000000..3295b5c --- /dev/null +++ b/3rdparty/plibsys/platforms/android-clang/platform.cmake @@ -0,0 +1,11 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL none) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread dl) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/android-gcc/platform.cmake b/3rdparty/plibsys/platforms/android-gcc/platform.cmake new file mode 100644 index 0000000..3295b5c --- /dev/null +++ b/3rdparty/plibsys/platforms/android-gcc/platform.cmake @@ -0,0 +1,11 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL none) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread dl) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/bb10-qcc/blackberry.cmake b/3rdparty/plibsys/platforms/bb10-qcc/blackberry.cmake new file mode 100644 index 0000000..6509d24 --- /dev/null +++ b/3rdparty/plibsys/platforms/bb10-qcc/blackberry.cmake @@ -0,0 +1,141 @@ +set (CMAKE_SYSTEM_NAME QNX) +set (CMAKE_SYSTEM_VERSION 8.0.0) +set (TOOLCHAIN QNX) + +set (CPUVARDIR $ENV{CPUVARDIR}) + +if (NOT CPUVARDIR) + message (FATAL_ERROR "CPU architecture not set") +endif() + +if (${CPUVARDIR} STREQUAL "armle-v7") + set (CMAKE_SYSTEM_PROCESSOR armv7) +elseif (${CPUVARDIR} STREQUAL "x86") + set (CMAKE_SYSTEM_PROCESSOR x86) +else() + message (FATAL_ERROR "Unsupported CPU architecture: ${CPUVARDIR}") +endif() + +set (QNX_HOST $ENV{QNX_HOST}) +set (QNX_TARGET $ENV{QNX_TARGET}) + +if (NOT QNX_HOST) + message (FATAL_ERROR "You must define QNX_HOST environment variable for toolchain") +endif() + +if (NOT QNX_TARGET) + message (FATAL_ERROR "You must define QNX_TARGET environment variable for toolchain") +endif() + +set (CMAKE_SHARED_LIBRARY_PREFIX "lib") +set (CMAKE_SHARED_LIBRARY_SUFFIX ".so") +set (CMAKE_STATIC_LIBRARY_PREFIX "lib") +set (CMAKE_STATIC_LIBRARY_SUFFIX ".a") + +if (CMAKE_HOST_WIN32) + set (HOST_EXECUTABLE_SUFFIX ".exe") +endif() + +set (CMAKE_MAKE_PROGRAM + "${QNX_HOST}/usr/bin/make${HOST_EXECUTABLE_SUFFIX}" + CACHE PATH "QNX make program" +) + +set (CMAKE_SH + "${QNX_HOST}/usr/bin/sh${HOST_EXECUTABLE_SUFFIX}" + CACHE PATH "QNX shell program" +) + +set (CMAKE_AR + "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ar${HOST_EXECUTABLE_SUFFIX}" + CACHE PATH "QNX ar program" +) + +set (CMAKE_RANLIB + "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ranlib${HOST_EXECUTABLE_SUFFIX}" + CACHE PATH "QNX ranlib program" +) + +set (CMAKE_NM + "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-nm${HOST_EXECUTABLE_SUFFIX}" + CACHE PATH "QNX nm program" +) + +set (CMAKE_OBJCOPY + "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-objcopy${HOST_EXECUTABLE_SUFFIX}" + CACHE PATH "QNX objcopy program" +) + +set (CMAKE_OBJDUMP + "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-objdump${HOST_EXECUTABLE_SUFFIX}" + CACHE PATH "QNX objdump program" +) + +set (CMAKE_LINKER + "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ld${HOST_EXECUTABLE_SUFFIX}" + CACHE PATH "QNX linker program" +) + +set (CMAKE_STRIP + "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-strip${HOST_EXECUTABLE_SUFFIX}" + CACHE PATH "QNX strip program" +) + +set (CMAKE_C_COMPILER "${QNX_HOST}/usr/bin/qcc${HOST_EXECUTABLE_SUFFIX}") +set (CMAKE_CXX_COMPILER "${QNX_HOST}/usr/bin/qcc${HOST_EXECUTABLE_SUFFIX}") +set (CMAKE_ASM_COMPILER "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-as${HOST_EXECUTABLE_SUFFIX}") + +execute_process (COMMAND nto${CMAKE_SYSTEM_PROCESSOR}-gcc${HOST_EXECUTABLE_SUFFIX} --version + OUTPUT_VARIABLE QCC_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +string (REGEX MATCH "[0-9]+.[0-9]+.[0-9]+" QCC_VERSION "${QCC_VERSION}") + +set (CMAKE_C_COMPILER_VERSION ${QCC_VERSION}) +set (CMAKE_CXX_COMPILER_VERSION ${QCC_VERSION}) + +set (BLACKBERRY_BASE_FLAGS "-D_REENTRANT -Wno-psabi -fstack-protector -fstack-protector-all") + +if (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7") + set (BLACKBERRY_CPU_FLAGS "-mcpu=cortex-a9 -mthumb") +endif() + +if (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7") + set (BLACKBERRY_QCC_FLAGS "-Vgcc_ntoarmv7le") +elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86") + set (BLACKBERRY_QCC_FLAGS "-Vgcc_ntox86") +endif() + +set (BLACKBERRY_FLAGS "${BLACKBERRY_QCC_FLAGS} ${BLACKBERRY_BASE_FLAGS} ${BLACKBERRY_CPU_FLAGS}") + +set (CMAKE_C_FLAGS_DEBUG "${BLACKBERRY_FLAGS} -g" CACHE STRING "" FORCE) +set (CMAKE_C_FLAGS_MINSIZEREL "${BLACKBERRY_FLAGS} -O2 -fstack-protector-strong -Os" CACHE STRING "" FORCE) +set (CMAKE_C_FLAGS_RELEASE "${BLACKBERRY_FLAGS} -O2 -fstack-protector-strong -Os" CACHE STRING "" FORCE) +set (CMAKE_C_FLAGS_RELWITHDEBINFO "${BLACKBERRY_FLAGS} -O2 -g -fstack-protector-strong" CACHE STRING "" FORCE) + +set (CMAKE_CXX_FLAGS_DEBUG "${BLACKBERRY_FLAGS} -lang-c++ -lstdc++ -g" CACHE STRING "" FORCE) +set (CMAKE_CXX_FLAGS_MINSIZEREL "${BLACKBERRY_FLAGS} -lang-c++ -lstdc++ -O2 -fstack-protector-strong -Os" CACHE STRING "" FORCE) +set (CMAKE_CXX_FLAGS_RELEASE "${BLACKBERRY_FLAGS} -lang-c++ -lstdc++ -O2 -fstack-protector-strong -Os" CACHE STRING "" FORCE) +set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${BLACKBERRY_FLAGS} -lang-c++ -lstdc++ -O2 -g -fstack-protector-strong" CACHE STRING "" FORCE) + +set (CMAKE_FIND_ROOT_PATH ${QNX_TARGET}) +set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) + +# To remove full linking paths +link_directories (${QNX_TARGET}/${CPUVARDIR}/lib ${QNX_TARGET}/${CPUVARDIR}/usr/lib) + +# To distinguish from QNX +add_definitions (-D__BLACKBERRY10__) + +set (CMAKE_LIBRARY_PATH + ${QNX_TARGET}/${CPUVARDIR}/lib + ${QNX_TARGET}/${CPUVARDIR}/usr/lib +) + +set (CMAKE_INCLUDE_PATH + ${QNX_TARGET}/usr/include/c++/${QCC_VERSION} + ${QNX_TARGET}/usr/include/c++/${QCC_VERSION}/arm-unknown-nto-qnx8.0.0eabi +) diff --git a/3rdparty/plibsys/platforms/beos-gcc/platform.cmake b/3rdparty/plibsys/platforms/beos-gcc/platform.cmake new file mode 100644 index 0000000..502313f --- /dev/null +++ b/3rdparty/plibsys/platforms/beos-gcc/platform.cmake @@ -0,0 +1,12 @@ +set (PLIBSYS_THREAD_MODEL beos) +set (PLIBSYS_IPC_MODEL none) +set (PLIBSYS_TIME_PROFILER_MODEL beos) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL beos) +set (PLIBSYS_RWLOCK_MODEL general) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES root socket bind) diff --git a/3rdparty/plibsys/platforms/common/HPUX.cmake b/3rdparty/plibsys/platforms/common/HPUX.cmake new file mode 100644 index 0000000..d411066 --- /dev/null +++ b/3rdparty/plibsys/platforms/common/HPUX.cmake @@ -0,0 +1,15 @@ +include (CheckFunctionExists) + +function (plibsys_hpux_detect_libraryloader_model result) + message (STATUS "Checking whether dlopen() presents") + + check_function_exists (dlopen PLIBSYS_HPUX_HAS_DLOPEN) + + if (PLIBSYS_HPUX_HAS_DLOPEN) + message (STATUS "Checking whether dlopen() presents - yes") + set (${result} posix PARENT_SCOPE) + else() + message (STATUS "Checking whether dlopen() presents - no") + set (${result} shl PARENT_SCOPE) + endif() +endfunction (plibsys_hpux_detect_libraryloader_model) diff --git a/3rdparty/plibsys/platforms/common/SCOSV.cmake b/3rdparty/plibsys/platforms/common/SCOSV.cmake new file mode 100644 index 0000000..6ef2416 --- /dev/null +++ b/3rdparty/plibsys/platforms/common/SCOSV.cmake @@ -0,0 +1,9 @@ +function (plibsys_scosv_print_threading_message) + message (" + You need a working port of FSU Pthreads in order to + compile with multi-threading support. Please refer to + http://moss.csc.ncsu.edu/~mueller/pthreads/ for more + details. Make sure that it is compiled with thread-safe + memory allocation (usually -DMALLOC macro definition). + ") +endfunction (plibsys_scosv_print_threading_message) diff --git a/3rdparty/plibsys/platforms/cygwin-clang/platform.cmake b/3rdparty/plibsys/platforms/cygwin-clang/platform.cmake new file mode 100644 index 0000000..53796bd --- /dev/null +++ b/3rdparty/plibsys/platforms/cygwin-clang/platform.cmake @@ -0,0 +1,12 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL sysv) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread rt dl) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT + -D_GNU_SOURCE +) diff --git a/3rdparty/plibsys/platforms/cygwin-gcc/platform.cmake b/3rdparty/plibsys/platforms/cygwin-gcc/platform.cmake new file mode 100644 index 0000000..53796bd --- /dev/null +++ b/3rdparty/plibsys/platforms/cygwin-gcc/platform.cmake @@ -0,0 +1,12 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL sysv) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread rt dl) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT + -D_GNU_SOURCE +) diff --git a/3rdparty/plibsys/platforms/darwin-clang/platform.cmake b/3rdparty/plibsys/platforms/darwin-clang/platform.cmake new file mode 100644 index 0000000..38771be --- /dev/null +++ b/3rdparty/plibsys/platforms/darwin-clang/platform.cmake @@ -0,0 +1,9 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL mach) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/darwin-gcc/platform.cmake b/3rdparty/plibsys/platforms/darwin-gcc/platform.cmake new file mode 100644 index 0000000..38771be --- /dev/null +++ b/3rdparty/plibsys/platforms/darwin-gcc/platform.cmake @@ -0,0 +1,9 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL mach) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/darwin-icc/platform.cmake b/3rdparty/plibsys/platforms/darwin-icc/platform.cmake new file mode 100644 index 0000000..7b69004 --- /dev/null +++ b/3rdparty/plibsys/platforms/darwin-icc/platform.cmake @@ -0,0 +1,11 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread imf svml irng intlc) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/darwin-pgi/platform.cmake b/3rdparty/plibsys/platforms/darwin-pgi/platform.cmake new file mode 100644 index 0000000..791ff79 --- /dev/null +++ b/3rdparty/plibsys/platforms/darwin-pgi/platform.cmake @@ -0,0 +1,27 @@ +if (NOT PLIBSYS_SIZEOF_VOID_P EQUAL 4) + if (CMAKE_VERSION VERSION_LESS 2.8.10) + message (WARNING + " + Unable to detect PGI compiler version. Beware that old + PGI versions doesn't support shared libraries on 64-bit + macOS. + ") + elseif (CMAKE_C_COMPILER_VERSION VERSION_LESS 18.4) + message (FATAL_ERROR + " + PGI compiler before verison 18.4 doesn't support 64-bit + shared libraries on macOS. Use older 32-bit version of + the compiler instead. + ") + endif() +endif() + +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL mach) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/dragonfly-clang/platform.cmake b/3rdparty/plibsys/platforms/dragonfly-clang/platform.cmake new file mode 100644 index 0000000..b801c3e --- /dev/null +++ b/3rdparty/plibsys/platforms/dragonfly-clang/platform.cmake @@ -0,0 +1,11 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/dragonfly-gcc/platform.cmake b/3rdparty/plibsys/platforms/dragonfly-gcc/platform.cmake new file mode 100644 index 0000000..b801c3e --- /dev/null +++ b/3rdparty/plibsys/platforms/dragonfly-gcc/platform.cmake @@ -0,0 +1,11 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/freebsd-clang/platform.cmake b/3rdparty/plibsys/platforms/freebsd-clang/platform.cmake new file mode 100644 index 0000000..975c5df --- /dev/null +++ b/3rdparty/plibsys/platforms/freebsd-clang/platform.cmake @@ -0,0 +1,11 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL sysv) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/freebsd-gcc/platform.cmake b/3rdparty/plibsys/platforms/freebsd-gcc/platform.cmake new file mode 100644 index 0000000..975c5df --- /dev/null +++ b/3rdparty/plibsys/platforms/freebsd-gcc/platform.cmake @@ -0,0 +1,11 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL sysv) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/haiku-clang/platform.cmake b/3rdparty/plibsys/platforms/haiku-clang/platform.cmake new file mode 100644 index 0000000..0c93b2d --- /dev/null +++ b/3rdparty/plibsys/platforms/haiku-clang/platform.cmake @@ -0,0 +1,7 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES root network) diff --git a/3rdparty/plibsys/platforms/haiku-gcc/platform.cmake b/3rdparty/plibsys/platforms/haiku-gcc/platform.cmake new file mode 100644 index 0000000..0c93b2d --- /dev/null +++ b/3rdparty/plibsys/platforms/haiku-gcc/platform.cmake @@ -0,0 +1,7 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES root network) diff --git a/3rdparty/plibsys/platforms/hpux-gcc/platform.cmake b/3rdparty/plibsys/platforms/hpux-gcc/platform.cmake new file mode 100644 index 0000000..bfaa7d8 --- /dev/null +++ b/3rdparty/plibsys/platforms/hpux-gcc/platform.cmake @@ -0,0 +1,16 @@ +include (${PROJECT_SOURCE_DIR}/platforms/common/HPUX.cmake) + +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL sysv) +set (PLIBSYS_TIME_PROFILER_MODEL solaris) +set (PLIBSYS_DIR_MODEL posix) + +plibsys_hpux_detect_libraryloader_model (PLIBSYS_LIBRARYLOADER_MODEL) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES xnet rt -pthread) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT + -D_THREAD_SAFE + -D_XOPEN_SOURCE_EXTENDED=1 +) diff --git a/3rdparty/plibsys/platforms/ios-clang/ios.cmake b/3rdparty/plibsys/platforms/ios-clang/ios.cmake new file mode 100644 index 0000000..e0df03b --- /dev/null +++ b/3rdparty/plibsys/platforms/ios-clang/ios.cmake @@ -0,0 +1,419 @@ +# Copyright (c) 2014, Bogdan Cristea and LTE Engineering Software, +# Kitware, Inc., Insight Software Consortium. All rights reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# Updated by Alex Stewart (alexs.mac@gmail.com) +# +# ***************************************************************************** +# Now maintained by Alexander Widerberg (widerbergaren [at] gmail.com) +# under the BSD-Clause-3 licence +# ***************************************************************************** +# +# INFORMATION / HELP +# +# The following variables control the behaviour of this toolchain: +# +# IOS_PLATFORM: OS (default), SIMULATOR, SIMULATOR64, TVOS or SIMULATOR_TVOS +# OS = Build for iOS. +# SIMULATOR = Build for x86 iPhone simulator. +# SIMULATOR64 = Build for x64 iPhone simulator. +# TVOS = Build for Apple tvOS. +# SIMULATOR_TVOS = Build for x64 Apple TV Simulator. +# WATCHOS = Build for Apple watchOS. +# SIMULATOR_WATCHOS = Build for x86 watchOS Simulator. +# SIMULATOR64_WATCHOS = Build for x64 watchOS Simulator. +# IOS_DEPLOYMENT_TARGET: Minimum version for deployment target. +# CMAKE_OSX_SYSROOT: Path to the iOS SDK to use. By default this is +# automatically determined from IOS_PLATFORM and xcodebuild, but can also be +# manually specified (although this should not be required). +# CMAKE_IOS_DEVELOPER_ROOT: Path to the Developer directory for the iOS +# platform being compiled for. By default this is automatically determined +# from CMAKE_OSX_SYSROOT, but can also be manually specified (although this +# should not be required). +# ENABLE_BITCODE: (ON / OFF) Enables or disables bitcode support. Default: ON. +# ENABLE_ARC: (ON / OFF) Enables or disables ARC support. Default: ON. +# IOS_ARCH: (armv7 armv7s armv7k arm64 i386 x86_64) If specified, will override the +# default architectures for the given IOS_PLATFORM. Default architectures: +# OS = armv7 armv7s arm64 +# SIMULATOR = i386 +# SIMULATOR64 = x86_64 +# TVOS = arm64 +# SIMULATOR_TVOS = x86_64 +# WATCHOS = armv7k +# SIMULATOR_WATCHOS = i386 +# SIMULATOR64_WATCHOS = x86_64 +# +# Copyright 2018, Alexander Saprykin <saprykin.spb@gmail.com> +# + +# Get the Xcode version being used. +execute_process (COMMAND xcodebuild -version OUTPUT_VARIABLE XCODE_VERSION + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE +) + +string (REGEX MATCH "Xcode [0-9\\.]+" XCODE_VERSION "${XCODE_VERSION}") +string (REGEX REPLACE "Xcode ([0-9\\.]+)" "\\1" XCODE_VERSION "${XCODE_VERSION}") + +message (STATUS "Building with Xcode version: ${XCODE_VERSION}") + +# Default to building for iOS if not specified otherwise, and we cannot +# determine the platform from the CMAKE_OSX_ARCHITECTURES variable. The use +# of CMAKE_OSX_ARCHITECTURES is such that try_compile() projects can correctly +# determine the value of IOS_PLATFORM from the root project, as +# CMAKE_OSX_ARCHITECTURES is propagated to them by CMake. + +if (NOT DEFINED IOS_PLATFORM) + if (CMAKE_OSX_ARCHITECTURES) + if (CMAKE_OSX_ARCHITECTURES MATCHES ".*arm.*") + set (IOS_PLATFORM "OS") + elseif (CMAKE_OSX_ARCHITECTURES MATCHES "i386") + set (IOS_PLATFORM "SIMULATOR") + elseif (CMAKE_OSX_ARCHITECTURES MATCHES "x86_64") + set (IOS_PLATFORM "SIMULATOR64") + endif() + endif() + + if (NOT IOS_PLATFORM) + set (IOS_PLATFORM "OS") + endif() +endif() + +set (IOS_PLATFORM ${IOS_PLATFORM} CACHE STRING "Type of iOS platform for which to build.") + +# Determine the platform name and architectures for use in xcodebuild commands +# from the specified IOS_PLATFORM name. + +if (IOS_PLATFORM STREQUAL "OS") + set (XCODE_IOS_PLATFORM "iphoneos") + + if (NOT IOS_ARCH) + set (IOS_ARCH "armv7;armv7s;arm64") + endif() +elseif (IOS_PLATFORM STREQUAL "SIMULATOR") + set (XCODE_IOS_PLATFORM "iphonesimulator") + set (ENABLE_BITCODE OFF) + + if (NOT IOS_ARCH) + set (IOS_ARCH "i386") + endif() +elseif (IOS_PLATFORM STREQUAL "SIMULATOR64") + set (XCODE_IOS_PLATFORM "iphonesimulator") + set (ENABLE_BITCODE OFF) + + if (NOT IOS_ARCH) + set (IOS_ARCH "x86_64") + endif() +elseif (IOS_PLATFORM STREQUAL "TVOS") + set (XCODE_IOS_PLATFORM "appletvos") + + if (NOT IOS_ARCH) + set (IOS_ARCH "arm64") + endif() +elseif (IOS_PLATFORM STREQUAL "SIMULATOR_TVOS") + set (XCODE_IOS_PLATFORM "appletvsimulator") + set (ENABLE_BITCODE OFF) + + if (NOT IOS_ARCH) + set (IOS_ARCH "x86_64") + endif() +elseif (IOS_PLATFORM STREQUAL "WATCHOS") + set (XCODE_IOS_PLATFORM "watchos") + + if (NOT IOS_ARCH) + set (IOS_ARCH "armv7k") + endif() +elseif (IOS_PLATFORM STREQUAL "SIMULATOR_WATCHOS") + set (XCODE_IOS_PLATFORM "watchsimulator") + set (ENABLE_BITCODE OFF) + + if (NOT IOS_ARCH) + set (IOS_ARCH "i386") + endif() +elseif (IOS_PLATFORM STREQUAL "SIMULATOR64_WATCHOS") + set (XCODE_IOS_PLATFORM "watchsimulator") + set (ENABLE_BITCODE OFF) + + if (NOT IOS_ARCH) + set (IOS_ARCH "x86_64") + endif() +else() + message (FATAL_ERROR "Invalid IOS_PLATFORM: ${IOS_PLATFORM}") +endif() + +message (STATUS "Configuring iOS build for platform: ${IOS_PLATFORM}, architecture(s): ${IOS_ARCH}") + +# If user did not specify the SDK root to use, then query xcodebuild for it. + +if (NOT CMAKE_OSX_SYSROOT) + execute_process (COMMAND xcodebuild -version -sdk ${XCODE_IOS_PLATFORM} Path + OUTPUT_VARIABLE CMAKE_OSX_SYSROOT + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + message (STATUS "Using SDK: ${CMAKE_OSX_SYSROOT} for platform: ${IOS_PLATFORM}") +endif() + +if (NOT EXISTS ${CMAKE_OSX_SYSROOT}) + message(FATAL_ERROR "Invalid CMAKE_OSX_SYSROOT: ${CMAKE_OSX_SYSROOT} does not exist.") +endif() + +# Specify minimum version of deployment target. + +if (NOT DEFINED IOS_DEPLOYMENT_TARGET) + if (IOS_PLATFORM MATCHES ".*WATCHOS") + set (IOS_DEPLOYMENT_TARGET "2.0" CACHE STRING "Minimum watchOS version to build for." ) + else() + set (IOS_DEPLOYMENT_TARGET "8.0" CACHE STRING "Minimum iOS version to build for." ) + endif() + + message (STATUS "Using the default min-version since IOS_DEPLOYMENT_TARGET not provided.") +endif() + +if (NOT IOS_DEPLOYMENT_TARGET VERSION_LESS 11.0 AND NOT IOS_PLATFORM MATCHES ".*WATCHOS") + # iOS 11 does not support 32-bit (armv7*). + foreach (ARCH ${IOS_ARCH}) + if (ARCH MATCHES "armv7.*") + message (STATUS "iOS architecture removed: ${ARCH} is not supported by " + "the minimum deployment iOS version ${IOS_DEPLOYMENT_TARGET}." + ) + else() + list (APPEND VALID_IOS_ARCH ${ARCH}) + endif() + endforeach() + + set (IOS_ARCH ${VALID_IOS_ARCH}) +endif() + +# Use bitcode or not + +if (NOT DEFINED ENABLE_BITCODE) + # Unless specified, enable bitcode support by default + set (ENABLE_BITCODE ON CACHE BOOL "Wheter or not to enable bitcode") + message (STATUS "Enabling bitcode support by default.") +endif() + +# Use ARC or not + +if (NOT DEFINED ENABLE_ARC) + # Unless specified, enable ARC support by default + set (ENABLE_ARC ON CACHE BOOL "Wheter or not to enable ARC") + message (STATUS "Enabling ARC support by default.") +endif() + +# Get the SDK version information. + +execute_process (COMMAND xcodebuild -sdk ${CMAKE_OSX_SYSROOT} -version SDKVersion + OUTPUT_VARIABLE IOS_SDK_VERSION + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE +) + +# Find the Developer root for the specific iOS platform being compiled for +# from CMAKE_OSX_SYSROOT. Should be ../../ from SDK specified in +# CMAKE_OSX_SYSROOT. There does not appear to be a direct way to obtain +# this information from xcrun or xcodebuild. + +if (NOT CMAKE_IOS_DEVELOPER_ROOT) + get_filename_component (IOS_PLATFORM_SDK_DIR ${CMAKE_OSX_SYSROOT} PATH) + get_filename_component (CMAKE_IOS_DEVELOPER_ROOT ${IOS_PLATFORM_SDK_DIR} PATH) +endif() + +if (NOT EXISTS ${CMAKE_IOS_DEVELOPER_ROOT}) + message (FATAL_ERROR "Invalid CMAKE_IOS_DEVELOPER_ROOT: ${CMAKE_IOS_DEVELOPER_ROOT} does not exist.") +endif() + +# Find the C & C++ compilers for the specified SDK. + +if (NOT CMAKE_C_COMPILER) + execute_process (COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT} -find clang + OUTPUT_VARIABLE CMAKE_C_COMPILER + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + message (STATUS "Using C compiler: ${CMAKE_C_COMPILER}") +endif() + +if (NOT CMAKE_CXX_COMPILER) + execute_process (COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT} -find clang++ + OUTPUT_VARIABLE CMAKE_CXX_COMPILER + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + message (STATUS "Using CXX compiler: ${CMAKE_CXX_COMPILER}") +endif() + +# Find (Apple's) libtool. + +execute_process (COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT} -find libtool + OUTPUT_VARIABLE IOS_LIBTOOL + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) +message (STATUS "Using libtool: ${IOS_LIBTOOL}") + +# Configure libtool to be used instead of ar + ranlib to build static libraries. +# This is required on Xcode 7+, but should also work on previous versions of +# Xcode. + +set (CMAKE_C_CREATE_STATIC_LIBRARY "${IOS_LIBTOOL} -static -o <TARGET> <LINK_FLAGS> <OBJECTS>") +set (CMAKE_CXX_CREATE_STATIC_LIBRARY "${IOS_LIBTOOL} -static -o <TARGET> <LINK_FLAGS> <OBJECTS>") + +# Standard settings. + +set (CMAKE_SYSTEM_NAME Darwin CACHE INTERNAL "") +set (CMAKE_SYSTEM_VERSION ${IOS_SDK_VERSION} CACHE INTERNAL "") +set (UNIX TRUE CACHE BOOL "") +set (APPLE TRUE CACHE BOOL "") +set (IOS TRUE CACHE BOOL "") +set (CMAKE_AR ar CACHE FILEPATH "" FORCE) +set (CMAKE_RANLIB ranlib CACHE FILEPATH "" FORCE) + +# Force unset of OS X-specific deployment target (otherwise autopopulated), +# required as of cmake 2.8.10. + +set (CMAKE_OSX_DEPLOYMENT_TARGET "" CACHE STRING "Must be empty for iOS builds." FORCE) + +# Set the architectures for which to build. + +set (CMAKE_OSX_ARCHITECTURES ${IOS_ARCH} CACHE STRING "Build architecture for iOS") + +# All iOS/Darwin specific settings - some may be redundant. + +set (CMAKE_SHARED_LIBRARY_PREFIX "lib") +set (CMAKE_SHARED_LIBRARY_SUFFIX ".dylib") +set (CMAKE_SHARED_MODULE_PREFIX "lib") +set (CMAKE_SHARED_MODULE_SUFFIX ".so") +set (CMAKE_MODULE_EXISTS 1) +set (CMAKE_DL_LIBS "") + +set (CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ") +set (CMAKE_C_OSX_CURRENT_VERSION_FLAG "-current_version ") +set (CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG "${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}") +set (CMAKE_CXX_OSX_CURRENT_VERSION_FLAG "${CMAKE_C_OSX_CURRENT_VERSION_FLAG}") + +message (STATUS "Building for minimum OS version: ${IOS_DEPLOYMENT_TARGET} (SDK version: ${IOS_SDK_VERSION})") + +# Note that only Xcode 7+ supports the newer more specific: +# -m${XCODE_IOS_PLATFORM}-version-min flags, older versions of Xcode use: +# -m(ios/ios-simulator)-version-min instead. +if (IOS_PLATFORM STREQUAL "OS") + if (XCODE_VERSION VERSION_LESS 7.0) + set (XCODE_IOS_PLATFORM_VERSION_FLAGS "-mios-version-min=${IOS_DEPLOYMENT_TARGET}") + else() + # Xcode 7.0+ uses flags we can build directly from XCODE_IOS_PLATFORM. + set (XCODE_IOS_PLATFORM_VERSION_FLAGS "-m${XCODE_IOS_PLATFORM}-version-min=${IOS_DEPLOYMENT_TARGET}") + endif() +elseif (IOS_PLATFORM STREQUAL "TVOS") + set (XCODE_IOS_PLATFORM_VERSION_FLAGS "-mtvos-version-min=${IOS_DEPLOYMENT_TARGET}") +elseif (IOS_PLATFORM STREQUAL "SIMULATOR_TVOS") + set (XCODE_IOS_PLATFORM_VERSION_FLAGS "-mtvos-simulator-version-min=${IOS_DEPLOYMENT_TARGET}") +elseif (IOS_PLATFORM STREQUAL "WATCHOS") + set (XCODE_IOS_PLATFORM_VERSION_FLAGS "-mwatchos-version-min=${IOS_DEPLOYMENT_TARGET}") +elseif (IOS_PLATFORM STREQUAL "SIMULATOR_WATCHOS" OR IOS_PLATFORM STREQUAL "SIMULATOR64_WATCHOS") + set (XCODE_IOS_PLATFORM_VERSION_FLAGS "-mwatchos-simulator-version-min=${IOS_DEPLOYMENT_TARGET}") +else() + # SIMULATOR or SIMULATOR64 both use -mios-simulator-version-min. + set (XCODE_IOS_PLATFORM_VERSION_FLAGS "-mios-simulator-version-min=${IOS_DEPLOYMENT_TARGET}") +endif() + +message (STATUS "Version flags set to: ${XCODE_IOS_PLATFORM_VERSION_FLAGS}") + +if (ENABLE_BITCODE) + set (BITCODE "-fembed-bitcode") + message (STATUS "Enabling bitcode support.") +else() + set (BITCODE "") + message (STATUS "Disabling bitcode support.") +endif() + +if (ENABLE_ARC) + set (FOBJC_ARC "-fobjc-arc") + message (STATUS "Enabling ARC support.") +else() + set (FOBJC_ARC "-fno-objc-arc") + message (STATUS "Disabling ARC support.") +endif() + +set (CMAKE_C_FLAGS "${XCODE_IOS_PLATFORM_VERSION_FLAGS} ${BITCODE} -fobjc-abi-version=2 ${FOBJC_ARC} ${C_FLAGS}") +set (CMAKE_CXX_FLAGS "${XCODE_IOS_PLATFORM_VERSION_FLAGS} ${BITCODE} -fobjc-abi-version=2 ${FOBJC_ARC} ${CXX_FLAGS}") +set (CMAKE_C_LINK_FLAGS "${XCODE_IOS_PLATFORM_VERSION_FLAGS} -Wl,-search_paths_first ${C_LINK_FLAGS}") +set (CMAKE_CXX_LINK_FLAGS "${XCODE_IOS_PLATFORM_VERSION_FLAGS} -Wl,-search_paths_first ${CXX_LINK_FLAGS}") + +# In order to ensure that the updated compiler flags are used in try_compile() +# tests, we have to forcibly set them in the CMake cache, not merely set them +# in the local scope. + +list (APPEND VARS_TO_FORCE_IN_CACHE + CMAKE_C_FLAGS + CMAKE_CXX_FLAGS + CMAKE_C_LINK_FLAGS + CMAKE_CXX_LINK_FLAGS +) + +foreach (VAR_TO_FORCE ${VARS_TO_FORCE_IN_CACHE}) + set (${VAR_TO_FORCE} "${${VAR_TO_FORCE}}" CACHE STRING "" FORCE) +endforeach() + +set (CMAKE_PLATFORM_HAS_INSTALLNAME 1) + +set (CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-dynamiclib") +set (CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-dynamiclib") +set (CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle") +set (CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS "-bundle") +set (CMAKE_SHARED_MODULE_LOADER_C_FLAG "-Wl,-bundle_loader,") +set (CMAKE_SHARED_MODULE_LOADER_CXX_FLAG "-Wl,-bundle_loader,") +set (CMAKE_FIND_LIBRARY_SUFFIXES ".dylib" ".so" ".a") + +# Hack: If a new CMake (which uses CMAKE_INSTALL_NAME_TOOL) runs on an old +# build tree (where install_name_tool was hardcoded) and where +# CMAKE_INSTALL_NAME_TOOL isn't in the cache and still CMake didn't fail in +# CMakeFindBinUtils.cmake (because it isn't rerun) hardcode +# CMAKE_INSTALL_NAME_TOOL here to install_name_tool, so it behaves as it did +# before, Alex. + +if (NOT DEFINED CMAKE_INSTALL_NAME_TOOL) + find_program (CMAKE_INSTALL_NAME_TOOL install_name_tool) +endif (NOT DEFINED CMAKE_INSTALL_NAME_TOOL) + +# Set the find root to the iOS developer roots and to user defined paths. +set (CMAKE_FIND_ROOT_PATH ${CMAKE_IOS_DEVELOPER_ROOT} + ${CMAKE_OSX_SYSROOT} + ${CMAKE_PREFIX_PATH} + CACHE string "iOS find search path root" FORCE +) + +# Default to searching for frameworks first. + +set (CMAKE_FIND_FRAMEWORK FIRST) + +# Set up the default search directories for frameworks. + +set (CMAKE_SYSTEM_FRAMEWORK_PATH + ${CMAKE_OSX_SYSROOT}/System/Library/Frameworks + ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks + ${CMAKE_OSX_SYSROOT}/Developer/Library/Frameworks +) + +# Only search the specified iOS SDK, not the remainder of the host filesystem. + +set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY) +set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) diff --git a/3rdparty/plibsys/platforms/ios-clang/platform.cmake b/3rdparty/plibsys/platforms/ios-clang/platform.cmake new file mode 100644 index 0000000..38771be --- /dev/null +++ b/3rdparty/plibsys/platforms/ios-clang/platform.cmake @@ -0,0 +1,9 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL mach) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/irix64-gcc/platform.cmake b/3rdparty/plibsys/platforms/irix64-gcc/platform.cmake new file mode 100644 index 0000000..1a7e78e --- /dev/null +++ b/3rdparty/plibsys/platforms/irix64-gcc/platform.cmake @@ -0,0 +1,13 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_DEFINES + -D_PTHREADS + -D_POSIX_C_SOURCE=199506L + -D_BSD_TYPES +) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES pthread) diff --git a/3rdparty/plibsys/platforms/irix64-mipspro/platform.cmake b/3rdparty/plibsys/platforms/irix64-mipspro/platform.cmake new file mode 100644 index 0000000..1a7e78e --- /dev/null +++ b/3rdparty/plibsys/platforms/irix64-mipspro/platform.cmake @@ -0,0 +1,13 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_DEFINES + -D_PTHREADS + -D_POSIX_C_SOURCE=199506L + -D_BSD_TYPES +) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES pthread) diff --git a/3rdparty/plibsys/platforms/linux-clang/platform.cmake b/3rdparty/plibsys/platforms/linux-clang/platform.cmake new file mode 100644 index 0000000..f2067c4 --- /dev/null +++ b/3rdparty/plibsys/platforms/linux-clang/platform.cmake @@ -0,0 +1,12 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread rt dl) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT + -D_GNU_SOURCE +) diff --git a/3rdparty/plibsys/platforms/linux-cray/platform.cmake b/3rdparty/plibsys/platforms/linux-cray/platform.cmake new file mode 100644 index 0000000..fc125c0 --- /dev/null +++ b/3rdparty/plibsys/platforms/linux-cray/platform.cmake @@ -0,0 +1,18 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES rt dl) +set (PLIBSYS_PLATFORM_CFLAGS "-h threadsafe -h nomessage=186 -O1") + +set (PLIBSYS_PLATFORM_DEFINES + -D_GNU_SOURCE +) + +message (" + Cray compiler has an optimization bug on SHA-1 algorithm + when using optimization levels higher than O1. Thus + O1 is enabled by default. + ") diff --git a/3rdparty/plibsys/platforms/linux-gcc/platform.cmake b/3rdparty/plibsys/platforms/linux-gcc/platform.cmake new file mode 100644 index 0000000..f2067c4 --- /dev/null +++ b/3rdparty/plibsys/platforms/linux-gcc/platform.cmake @@ -0,0 +1,12 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread rt dl) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT + -D_GNU_SOURCE +) diff --git a/3rdparty/plibsys/platforms/linux-icc/platform.cmake b/3rdparty/plibsys/platforms/linux-icc/platform.cmake new file mode 100644 index 0000000..edf371a --- /dev/null +++ b/3rdparty/plibsys/platforms/linux-icc/platform.cmake @@ -0,0 +1,12 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread rt dl imf svml irng intlc) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT + -D_GNU_SOURCE +) diff --git a/3rdparty/plibsys/platforms/linux-pgi/platform.cmake b/3rdparty/plibsys/platforms/linux-pgi/platform.cmake new file mode 100644 index 0000000..defde72 --- /dev/null +++ b/3rdparty/plibsys/platforms/linux-pgi/platform.cmake @@ -0,0 +1,12 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES pthread rt dl) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT + -D_GNU_SOURCE +) diff --git a/3rdparty/plibsys/platforms/linux-xlc/platform.cmake b/3rdparty/plibsys/platforms/linux-xlc/platform.cmake new file mode 100644 index 0000000..c1b573f --- /dev/null +++ b/3rdparty/plibsys/platforms/linux-xlc/platform.cmake @@ -0,0 +1,11 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES rt dl) + +set (PLIBSYS_PLATFORM_DEFINES + -D_GNU_SOURCE +) diff --git a/3rdparty/plibsys/platforms/msys-clang/platform.cmake b/3rdparty/plibsys/platforms/msys-clang/platform.cmake new file mode 100644 index 0000000..53796bd --- /dev/null +++ b/3rdparty/plibsys/platforms/msys-clang/platform.cmake @@ -0,0 +1,12 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL sysv) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread rt dl) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT + -D_GNU_SOURCE +) diff --git a/3rdparty/plibsys/platforms/msys-gcc/platform.cmake b/3rdparty/plibsys/platforms/msys-gcc/platform.cmake new file mode 100644 index 0000000..53796bd --- /dev/null +++ b/3rdparty/plibsys/platforms/msys-gcc/platform.cmake @@ -0,0 +1,12 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL sysv) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread rt dl) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT + -D_GNU_SOURCE +) diff --git a/3rdparty/plibsys/platforms/netbsd-clang/platform.cmake b/3rdparty/plibsys/platforms/netbsd-clang/platform.cmake new file mode 100644 index 0000000..975c5df --- /dev/null +++ b/3rdparty/plibsys/platforms/netbsd-clang/platform.cmake @@ -0,0 +1,11 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL sysv) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/netbsd-gcc/platform.cmake b/3rdparty/plibsys/platforms/netbsd-gcc/platform.cmake new file mode 100644 index 0000000..975c5df --- /dev/null +++ b/3rdparty/plibsys/platforms/netbsd-gcc/platform.cmake @@ -0,0 +1,11 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL sysv) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/openbsd-clang/platform.cmake b/3rdparty/plibsys/platforms/openbsd-clang/platform.cmake new file mode 100644 index 0000000..975c5df --- /dev/null +++ b/3rdparty/plibsys/platforms/openbsd-clang/platform.cmake @@ -0,0 +1,11 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL sysv) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/openbsd-gcc/platform.cmake b/3rdparty/plibsys/platforms/openbsd-gcc/platform.cmake new file mode 100644 index 0000000..975c5df --- /dev/null +++ b/3rdparty/plibsys/platforms/openbsd-gcc/platform.cmake @@ -0,0 +1,11 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL sysv) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/os2-gcc/platform.cmake b/3rdparty/plibsys/platforms/os2-gcc/platform.cmake new file mode 100644 index 0000000..258bbb5 --- /dev/null +++ b/3rdparty/plibsys/platforms/os2-gcc/platform.cmake @@ -0,0 +1,12 @@ +set (PLIBSYS_THREAD_MODEL os2) +set (PLIBSYS_IPC_MODEL os2) +set (PLIBSYS_TIME_PROFILER_MODEL os2) +set (PLIBSYS_DIR_MODEL os2) +set (PLIBSYS_RWLOCK_MODEL general) +set (PLIBSYS_LIBRARYLOADER_MODEL os2) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES os2386) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/qnx-qcc/platform.cmake b/3rdparty/plibsys/platforms/qnx-qcc/platform.cmake new file mode 100644 index 0000000..de75bc2 --- /dev/null +++ b/3rdparty/plibsys/platforms/qnx-qcc/platform.cmake @@ -0,0 +1,12 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES socket) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT + -D_POSIX_THREAD_SAFE_FUNCTIONS +) diff --git a/3rdparty/plibsys/platforms/scosv-gcc/platform.cmake b/3rdparty/plibsys/platforms/scosv-gcc/platform.cmake new file mode 100644 index 0000000..d1a2d8d --- /dev/null +++ b/3rdparty/plibsys/platforms/scosv-gcc/platform.cmake @@ -0,0 +1,27 @@ +include (${PROJECT_SOURCE_DIR}/platforms/common/SCOSV.cmake) + +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL sysv) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT + -D_SIMPLE_R +) + +if (CMAKE_SYSTEM_VERSION VERSION_LESS "5.0") + set (PLIBSYS_PLATFORM_LINK_LIBRARIES socket nsl gthreads malloc) + + plibsys_scosv_print_threading_message () +else() + set (PLIBSYS_PLATFORM_LINK_LIBRARIES socket nsl -pthread) + set (PLIBSYS_PLATFORM_CFLAGS -pthread) + + message (" + SCO OpenServer 6 was not actually tested with GCC + compiler. This build may or may not work properly. + Consider running tests before usage. + ") +endif() diff --git a/3rdparty/plibsys/platforms/sunos-gcc/platform.cmake b/3rdparty/plibsys/platforms/sunos-gcc/platform.cmake new file mode 100644 index 0000000..a980d6e --- /dev/null +++ b/3rdparty/plibsys/platforms/sunos-gcc/platform.cmake @@ -0,0 +1,12 @@ +set (PLIBSYS_THREAD_MODEL solaris) +set (PLIBSYS_IPC_MODEL sysv) +set (PLIBSYS_TIME_PROFILER_MODEL solaris) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES socket nsl rt) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT + -D_POSIX_PTHREAD_SEMANTICS +) diff --git a/3rdparty/plibsys/platforms/sunos-sunpro/platform.cmake b/3rdparty/plibsys/platforms/sunos-sunpro/platform.cmake new file mode 100644 index 0000000..a980d6e --- /dev/null +++ b/3rdparty/plibsys/platforms/sunos-sunpro/platform.cmake @@ -0,0 +1,12 @@ +set (PLIBSYS_THREAD_MODEL solaris) +set (PLIBSYS_IPC_MODEL sysv) +set (PLIBSYS_TIME_PROFILER_MODEL solaris) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES socket nsl rt) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT + -D_POSIX_PTHREAD_SEMANTICS +) diff --git a/3rdparty/plibsys/platforms/syllable-gcc/platform.cmake b/3rdparty/plibsys/platforms/syllable-gcc/platform.cmake new file mode 100644 index 0000000..a61e1e0 --- /dev/null +++ b/3rdparty/plibsys/platforms/syllable-gcc/platform.cmake @@ -0,0 +1,12 @@ +set (PLIBSYS_THREAD_MODEL atheos) +set (PLIBSYS_IPC_MODEL none) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_RWLOCK_MODEL general) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES rt dl) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/tru64-compaq/platform.cmake b/3rdparty/plibsys/platforms/tru64-compaq/platform.cmake new file mode 100644 index 0000000..693ba57 --- /dev/null +++ b/3rdparty/plibsys/platforms/tru64-compaq/platform.cmake @@ -0,0 +1,17 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_ATOMIC_MODEL decc) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread rt) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT + -D_XOPEN_SOURCE_EXTENDED=1 + -D_POSIX_PII_SOCKET + -D_OSF_SOURCE + -D_XOPEN_SOURCE=500 + -D_POSIX_SOURCE=199506L +) diff --git a/3rdparty/plibsys/platforms/tru64-gcc/platform.cmake b/3rdparty/plibsys/platforms/tru64-gcc/platform.cmake new file mode 100644 index 0000000..ecacc1d --- /dev/null +++ b/3rdparty/plibsys/platforms/tru64-gcc/platform.cmake @@ -0,0 +1,16 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL posix) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES -pthread rt) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT + -D_XOPEN_SOURCE_EXTENDED=1 + -D_POSIX_PII_SOCKET + -D_OSF_SOURCE + -D_XOPEN_SOURCE=500 + -D_POSIX_SOURCE=199506L +) diff --git a/3rdparty/plibsys/platforms/unixware-gcc/platform.cmake b/3rdparty/plibsys/platforms/unixware-gcc/platform.cmake new file mode 100644 index 0000000..96ca256 --- /dev/null +++ b/3rdparty/plibsys/platforms/unixware-gcc/platform.cmake @@ -0,0 +1,11 @@ +set (PLIBSYS_THREAD_MODEL posix) +set (PLIBSYS_IPC_MODEL sysv) +set (PLIBSYS_TIME_PROFILER_MODEL posix) +set (PLIBSYS_DIR_MODEL posix) +set (PLIBSYS_LIBRARYLOADER_MODEL posix) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES socket nsl -pthread) + +set (PLIBSYS_PLATFORM_DEFINES + -D_REENTRANT +) diff --git a/3rdparty/plibsys/platforms/vms-general/README.md b/3rdparty/plibsys/platforms/vms-general/README.md new file mode 100644 index 0000000..9bbfc85 --- /dev/null +++ b/3rdparty/plibsys/platforms/vms-general/README.md @@ -0,0 +1,49 @@ +## OpenVMS + +This directory contains mainly a build script for OpenVMS. + +## Requirements + +* OpenVMS 8.4 or later (Alpha or IA64), VAX is not supported +* DEC CC 6.5 or later +* DEC CXX 7.1 or later (for tests only) + +## Building + +Library can be built with 32-bit or 64-bit pointers. By default 64-bit +pointers are used. Use `32` parameter to switch behaviour. + +Test suit is optional and is not built by default. Use `TESTS` parameter to +enable tests. + +There are other build parametes available, plese look inside the +`build_vms.com` (a DCL-based script) to see the detailed description for +all of them. + +Object library (.OLB) and shareable image (.EXE) are built. An object +library acts like a widely-known static library, and a shareable image +acts like a shared library. All libraries and tests are placed inside the +`[.ALPHA]` or `[.IA64]` directory depending on a host architecture. + +Do not forget to define a logical name for a shareable image of the library +before running programs which use it: + +`DEFINE PLIBSYS SYS$SYSROOT:[BUILD_DIR]PLIBSYS.EXE` + +You can also place an image into the `SYS$SHARE` directory instead of +defining a logical name. + +Here are some examples of the build commands: + +* `@build_vms.com` builds only the libraries (64-bit pointers). +* `@build_vms.com 32 TESTS` builds libraries (32-bit pointers) and all +the tests. +* `@build_vms.com NOLIB RUN_TESTS` only runs already built tests. +* `@build_vms.com CLEAN` cleans all the files produced during a build. + +## More + +OpenVMS can mangle long (> 31 characters) symbol names in a compiled object +to fit the limit. Sometimes it is useful to know the mangled name of a +symbol. Use the `vms_shorten_symbol.c` program to get a mangled name. See +details inside. diff --git a/3rdparty/plibsys/platforms/vms-general/build_vms.com b/3rdparty/plibsys/platforms/vms-general/build_vms.com new file mode 100644 index 0000000..ce5e95c --- /dev/null +++ b/3rdparty/plibsys/platforms/vms-general/build_vms.com @@ -0,0 +1,616 @@ +$! +$! Copyright 2011, Richard Levitte <richard@levitte.org> +$! Copyright 2014, John Malmberg <wb8tyw@qsl.net> +$! Copyright 2016-2018, Alexander Saprykin <saprykin.spb@gmail.com> +$! +$! Permission to use, copy, modify, and/or distribute this software for any +$! purpose with or without fee is hereby granted, provided that the above +$! copyright notice and this permission notice appear in all copies. +$! +$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +$! +$!=========================================================================== +$! Command-line options: +$! +$! 32 Compile with 32-bit pointers. +$! BIGENDIAN Compile for a big endian host. +$! CCQUAL=x Add "x" to the C compiler qualifiers. +$! DEBUG Build in debug mode. +$! CLEAN Only perform clean after the previous build. +$! TESTS=(x) Build library tests. Comma separated test names or leave +$! empty to build all the tests. +$! Example 1 (curtain tests): TESTS=(pmem,puthread) +$! Example 2 (all tests): TESTS +$! RUN_TESTS Runs all tests. +$! NOLIB Skip library buidling. Useful when you want to rebuild +$! particular tests. +$!=========================================================================== +$! +$! +$! Save the original default dev:[dir], and arrange for its restoration +$! at exit. +$!--------------------------------------------------------------------- +$ orig_def = f$environment("DEFAULT") +$ on error then goto common_exit +$ on severe_error then goto common_exit +$ on control_y then goto common_exit +$! +$ ctrl_y = 1556 +$ proc = f$environment("PROCEDURE") +$ proc_fid = f$file_attributes(proc, "FID") +$ proc_dev = f$parse(proc, , , "DEVICE") +$ proc_dir = f$parse(proc, , , "DIRECTORY") +$ proc_name = f$parse(proc, , , "NAME") +$ proc_type = f$parse(proc, , , "TYPE") +$ proc_dev_dir = proc_dev + proc_dir +$! +$! Have to manually parse the device for a search list. +$! Can not use the f$parse() as it will return the first name +$! in the search list. +$! +$ orig_def_dev = f$element(0, ":", orig_def) + ":" +$ if orig_def_dev .eqs. "::" then orig_def_dev = "sys$disk:" +$ test_proc = orig_def_dev + proc_dir + proc_name + proc_type +$! +$! If we can find this file using the default directory +$! then we know that we should use the original device from the +$! default directory which could be a search list. +$! +$ test_proc_fid = f$file_attributes(test_proc, "FID") +$! +$ if (test_proc_fid .eq. proc_fid) +$ then +$ proc_dev_dir = orig_def_dev + proc_dir +$ endif +$! +$! Verbose output message stuff. Define symbol to "write sys$output". +$! vo_c - verbose output for compile +$! +$ vo_c := "write sys$output" +$! +$! Determine the main distribution directory ("[--]") in an +$! ODS5-tolerant (case-insensitive) way. (We do assume that the only +$! "]" or ">" is the one at the end.) +$! +$! Some non-US VMS installations report ">" for the directory delimiter +$! so do not assume that it is "]". +$! +$ orig_def_len = f$length(orig_def) +$ delim = f$extract(orig_def_len - 1, 1, orig_def) +$! +$ set default 'proc_dev_dir' +$ set default [--.src] +$ base_src_dir = f$environment("default") +$ set default 'proc_dev_dir' +$! +$! Define the architecture-specific destination directory name +$! ----------------------------------------------------------- +$! +$ if (f$getsyi("HW_MODEL") .lt. 1024) +$ then +$ 'vo_c' "%PLIBSYS-F-NOTSUP, VAX platform is not supported, sorry :(" +$ goto common_exit +$ else +$ arch_name = "" +$ arch_name = arch_name + f$edit(f$getsyi("ARCH_NAME"), "UPCASE") +$! +$ if (arch_name .eqs. "") then arch_name = "UNK" +$! +$ node_swvers = f$getsyi("node_swvers") +$ version_patch = f$extract(1, f$length(node_swvers), node_swvers) +$ maj_ver = f$element(0, ".", version_patch) +$ min_ver_patch = f$element(1, ".", version_patch) +$ min_ver = f$element(0, "-", min_ver_patch) +$ patch = f$element(1, "-", min_ver_patch) +$! +$ if maj_ver .lts. "8" .or. min_ver .lts. "4" +$ then +$ 'vo_c' "%PLIBSYS-F-NOTSUP, only OpenVMS 8.4 and above are supported, sorry :(" +$ goto common_exit +$ endif +$ endif +$! +$ objdir = proc_dev_dir - delim + ".''arch_name'" + delim +$! +$! Parse input arguments +$! --------------------- +$! Allow arguments to be grouped together with comma or separated by spaces +$! Do no know if we will need more than 8. +$ args = "," + p1 + "," + p2 + "," + p3 + "," + p4 + "," +$ args = args + p5 + "," + p6 + "," + p7 + "," + p8 + "," +$! +$! Provide lower case version to simplify parsing. +$ args_lower = f$edit(args, "LOWERCASE,COLLAPSE") +$! +$ args_len = f$length(args) +$ args_lower_len = f$length(args_lower) +$! +$ if f$locate(",clean,", args_lower) .lt. args_lower_len +$ then +$ 'vo_c' "Cleaning up previous build..." +$ set default 'proc_dev_dir' +$! +$ if f$search("''arch_name'.DIR") .nes. "" +$ then +$ set prot=w:d []'arch_name'.DIR;* +$ delete/tree [.'arch_name'...]*.*;* +$ delete []'arch_name'.DIR;* +$ endif +$! +$ goto common_exit +$ endif +$! +$ build_64 = 1 +$ if f$locate(",32,", args_lower) .lt. args_lower_len +$ then +$ build_64 = 0 +$ endif +$! +$ big_endian = 0 +$ if f$locate(",bigendian,", args_lower) .lt. args_lower_len +$ then +$ big_endian = 1 +$ endif +$! +$ cc_extra = "" +$ args_loc = f$locate(",ccqual=", args_lower) +$ if args_loc .lt. args_lower_len +$ then +$ arg = f$extract(args_loc + 1, args_lower_len, args_lower) +$ arg_val = f$element(0, ",", arg) +$ cc_extra = f$element(1, "=", arg_val) +$ endif +$! +$ is_debug = 0 +$ if f$locate(",debug,", args_lower) .lt. args_lower_len +$ then +$ is_debug = 1 +$ endif +$! +$ is_tests = 0 +$ test_list = "" +$ if f$locate(",tests,", args_lower) .lt. args_lower_len +$ then +$ is_tests = 1 +$ else +$ args_loc = f$locate(",tests=(", args_lower) +$ if args_loc .lt. args_lower_len +$ then +$ is_tests = 1 +$ arg = f$extract(args_loc + 1, args_lower_len, args_lower) +$ arg_val = f$element(0, ")", arg) +$ test_list_val = f$element(1, "=", arg_val) - "(" - ")" +$ test_list_val = f$edit(test_list_val, "COLLAPSE") +$ test_list_counter = 0 +$ +$ test_list_loop: +$ next_test_val = f$element (test_list_counter, ",", test_list_val) +$ if next_test_val .nes. "" .and. next_test_val .nes. "," +$ then +$ test_list = test_list + next_test_val + " " +$ test_list_counter = test_list_counter + 1 +$ goto test_list_loop +$ endif +$ endif +$ endif +$! +$ run_tests = 0 +$ if f$locate(",run_tests,", args_lower) .lt. args_lower_len +$ then +$ run_tests = 1 +$ endif +$! +$! Prepare build directory +$! ----------------------- +$! +$! When building on a search list, need to do a create to make sure that +$! the output directory exists, since the clean procedure tries to delete +$! it. +$! +$ if f$search("''proc_dev_dir'''arch_name'.DIR") .eqs. "" +$ then +$ create/dir 'objdir'/prot=o:rwed +$ endif +$! +$ set default 'objdir' +$ if f$search("CXX_REPOSITORY.DIR") .nes. "" +$ then +$ set prot=w:d []CXX_REPOSITORY.DIR;* +$ delete/tree [.CXX_REPOSITORY...]*.*;* +$ delete []CXX_REPOSITORY.DIR;* +$ endif +$! +$ if f$locate(",nolib,", args_lower) .lt. args_lower_len +$ then +$ goto build_tests +$ endif +$! +$! Generate platform-specific config file +$! -------------------------------------- +$! +$ if f$search("plibsysconfig.h") .nes. "" then delete plibsysconfig.h;* +$! +$! Get the version number +$! ---------------------- +$! +$ i = 0 +$ open/read/error=version_loop_end vhf [---]CMakeLists.txt +$ version_loop: +$ read/end=version_loop_end vhf line_in +$! +$ if line_in .eqs. "" then goto version_loop +$! +$ if f$locate("set (PLIBSYS_VERSION_MAJOR ", line_in) .eq. 0 +$ then +$ plibsys_vmajor = f$element(2, " ", line_in) - ")" +$ i = i + 1 +$ endif +$! +$ if f$locate("set (PLIBSYS_VERSION_MINOR ", line_in) .eq. 0 +$ then +$ plibsys_vminor = f$element(2, " ", line_in) - ")" +$ i = i + 1 +$ endif +$! +$ if f$locate("set (PLIBSYS_VERSION_PATCH ", line_in) .eq. 0 +$ then +$ plibsys_vpatch = f$element(2, " ", line_in) - ")" +$ i = i + 1 +$ endif +$! +$ if f$locate("set (PLIBSYS_VERSION_NUM ", line_in) .eq. 0 +$ then +$ plibsys_vnum = f$element(2, " ", line_in) - ")" +$ i = i + 1 +$ endif +$! +$ if i .lt 4 then goto version_loop +$ version_loop_end: +$ close vhf +$! +$! Write config file +$! ----------------- +$! +$ open/write/error=config_write_end chf plibsysconfig.h +$ write chf "#ifndef PLIBSYS_HEADER_PLIBSYSCONFIG_H" +$ write chf "#define PLIBSYS_HEADER_PLIBSYSCONFIG_H" +$ write chf "" +$ write chf "#define PLIBSYS_VERSION_MAJOR ''plibsys_vmajor'" +$ write chf "#define PLIBSYS_VERSION_MINOR ''plibsys_vminor'" +$ write chf "#define PLIBSYS_VERSION_PATCH ''plibsys_vpatch'" +$ write chf "#define PLIBSYS_VERSION_STR ""''plibsys_vmajor'.''plibsys_vminor'.''plibsys_vpatch'""" +$ write chf "#define PLIBSYS_VERSION ''plibsys_vnum'" +$ write chf "" +$ write chf "#define PLIBSYS_SIZEOF_SAFAMILY_T 1" +$ write chf "" +$ write chf "#include <pmacros.h>" +$ write chf "" +$ write chf "#include <float.h>" +$ write chf "#include <limits.h>" +$ write chf "" +$ write chf "P_BEGIN_DECLS" +$ write chf "" +$ write chf "#define P_MINFLOAT FLT_MIN" +$ write chf "#define P_MAXFLOAT FLT_MAX" +$ write chf "#define P_MINDOUBLE DBL_MIN" +$ write chf "#define P_MAXDOUBLE DBL_MAX" +$ write chf "#define P_MINSHORT SHRT_MIN" +$ write chf "#define P_MAXSHORT SHRT_MAX" +$ write chf "#define P_MAXUSHORT USHRT_MAX" +$ write chf "#define P_MININT INT_MIN" +$ write chf "#define P_MAXINT INT_MAX" +$ write chf "#define P_MAXUINT UINT_MAX" +$ write chf "#define P_MINLONG LONG_MIN" +$ write chf "#define P_MAXLONG LONG_MAX" +$ write chf "#define P_MAXULONG ULONG_MAX" +$ write chf "" +$ write chf "#define PLIBSYS_MMAP_HAS_MAP_ANONYMOUS" +$ write chf "#define PLIBSYS_HAS_NANOSLEEP" +$ write chf "#define PLIBSYS_HAS_GETADDRINFO" +$ write chf "#define PLIBSYS_HAS_POSIX_SCHEDULING" +$ write chf "#define PLIBSYS_HAS_POSIX_STACKSIZE" +$ write chf "#define PLIBSYS_HAS_SOCKADDR_STORAGE" +$ write chf "#define PLIBSYS_SOCKADDR_HAS_SA_LEN" +$ write chf "#define PLIBSYS_SOCKADDR_IN6_HAS_SCOPEID" +$ write chf "#define PLIBSYS_SOCKADDR_IN6_HAS_FLOWINFO" +$ write chf "" +$! +$ if build_64 .eqs. "1" +$ then +$ write chf "#define PLIBSYS_SIZEOF_VOID_P 8" +$ write chf "#define PLIBSYS_SIZEOF_SIZE_T 8" +$ else +$ write chf "#define PLIBSYS_SIZEOF_VOID_P 4" +$ write chf "#define PLIBSYS_SIZEOF_SIZE_T 4" +$ endif +$! +$ write chf "#define PLIBSYS_SIZEOF_LONG 4" +$ write chf "" +$! +$ if big_endian .eqs. "1" +$ then +$ write chf "#define P_BYTE_ORDER P_BIG_ENDIAN" +$ else +$ write chf "#define P_BYTE_ORDER P_LITTLE_ENDIAN" +$ endif +$! +$ write chf "" +$ write chf "P_END_DECLS" +$ write chf "" +$ write chf "#endif /* PLIBSYS_HEADER_PLIBSYSCONFIG_H */" +$ config_write_end: +$ close chf +$! +$! Prepare sources for compilation +$! ------------------------------- +$! +$ cc_link_params = "" +$ cc_params = "/NAMES=(AS_IS,SHORTENED)" +$ cc_params = cc_params + "/DEFINE=(PLIBSYS_COMPILATION,_REENTRANT,_POSIX_EXIT)" +$ cc_params = cc_params + "/INCLUDE_DIRECTORY=(''objdir',''base_src_dir')" +$ cc_params = cc_params + "/FLOAT=IEEE/IEEE_MODE=DENORM_RESULTS" +$! +$ if build_64 .eqs. "1" +$ then +$ cc_params = cc_params + "/POINTER_SIZE=64" +$ else +$ cc_params = cc_params + "/POINTER_SIZE=32" +$ endif +$! +$ if cc_extra .nes. "" +$ then +$ cc_params = cc_params + " " + cc_extra +$ endif +$! +$ if is_debug .eqs. "1" +$ then +$ cc_params = cc_params + "/DEBUG/NOOPTIMIZE/LIST/SHOW=ALL" +$ cc_link_params = "/DEBUG/TRACEBACK" +$ else +$ cc_link_params = "/NODEBUG/NOTRACEBACK" +$ endif +$! +$ plibsys_src = "patomic-decc.c pcondvariable-posix.c pcryptohash-gost3411.c pcryptohash-md5.c" +$ plibsys_src = plibsys_src + " pcryptohash-sha1.c pcryptohash-sha2-256.c pcryptohash-sha2-512.c" +$ plibsys_src = plibsys_src + " pcryptohash-sha3.c pcryptohash.c pdir-posix.c pdir.c" +$ plibsys_src = plibsys_src + " perror.c pfile.c phashtable.c pinifile.c pipc.c plibraryloader-posix.c" +$ plibsys_src = plibsys_src + " plist.c pmain.c pmem.c pmutex-posix.c pprocess.c prwlock-posix.c" +$ plibsys_src = plibsys_src + " psemaphore-posix.c pshm-posix.c pshmbuffer.c psocket.c" +$ plibsys_src = plibsys_src + " psocketaddress.c pspinlock-decc.c pstring.c psysclose-unix.c" +$ plibsys_src = plibsys_src + " ptimeprofiler-posix.c ptimeprofiler.c ptree-avl.c ptree-bst.c" +$ plibsys_src = plibsys_src + " ptree-rb.c ptree.c puthread-posix.c puthread.c" +$! +$! Inform about building +$! --------------------- +$! +$ if build_64 .eqs. "1" +$ then +$ 'vo_c' "Building for ''arch_name' (64-bit)" +$ else +$ 'vo_c' "Building for ''arch_name' (32-bit)" +$ endif +$! +$! Compile library modules +$! ----------------------- +$! +$ 'vo_c' "Compiling object modules..." +$ src_counter = 0 +$ plibsys_src = f$edit(plibsys_src, "COMPRESS") +$ plibsys_objs = "" +$! +$ src_loop: +$ next_src = f$element (src_counter, " ", plibsys_src) +$ if next_src .nes. "" .and. next_src .nes. " " +$ then +$ 'vo_c' "[CC] ''next_src'" +$ cc [---.src]'next_src' 'cc_params' +$! +$ src_counter = src_counter + 1 +$! +$ obj_file = f$extract (0, f$length (next_src) - 1, next_src) + "obj" +$ plibsys_objs = plibsys_objs + "''obj_file'," +$ purge 'obj_file' +$! +$ goto src_loop +$ endif +$! +$ plibsys_objs = f$extract (0, f$length (plibsys_objs) - 1, plibsys_objs) +$! +$! Create library +$! -------------- +$! +$ 'vo_c' "Creating object library..." +$ library/CREATE/INSERT/REPLACE /LIST=PLIBSYS.LIS PLIBSYS.OLB 'plibsys_objs' +$ library/COMPRESS PLIBSYS.OLB +$ purge PLIBSYS.OLB +$ purge PLIBSYS.LIS +$! +$ 'vo_c' "Creating shared library..." +$ link/SHAREABLE=PLIBSYS.EXE /MAP=PLIBSYS.MAP 'cc_link_params' 'plibsys_objs', [-]plibsys.opt/OPTION +$ purge PLIBSYS.EXE +$ purge PLIBSYS.MAP +$! +$! Testing area +$! ------------ +$! +$ build_tests: +$ test_list_full = "patomic pcondvariable pcryptohash pdir" +$ test_list_full = test_list_full + " perror pfile phashtable pinifile plibraryloader plist" +$ test_list_full = test_list_full + " pmacros pmain pmem pmutex pprocess prwlock psemaphore" +$ test_list_full = test_list_full + " pshm pshmbuffer psocket psocketaddress pspinlock pstdarg" +$ test_list_full = test_list_full + " pstring ptimeprofiler ptree ptypes puthread" +$! +$ if is_tests .eqs. "0" +$ then +$ goto build_done +$ endif +$! +$! Write link options file +$! ----------------------- +$! +$ if f$search("plibsys_link.opt") .nes. "" then delete plibsys_link.opt;* +$! +$ open/write/error=link_write_end lhf plibsys_link.opt +$ write lhf "''objdir'PLIBSYS.EXE/SHARE" +$ write lhf "" +$ link_write_end: +$ close lhf +$! +$! Compile tests +$! ------------------------- +$! +$ if test_list .nes. "" +$ then +$ plibsys_tests = f$edit(test_list, "TRIM") +$ else +$ plibsys_tests = test_list_full +$ endif +$! +$ 'vo_c' "Compiling test executables..." +$ test_counter = 0 +$ plibsys_tests = f$edit(plibsys_tests, "COMPRESS") +$! +$ cxx_params = "/INCLUDE=(''objdir',''base_src_dir')" +$ cxx_params = cxx_params + "/DEFINE=(__USE_STD_IOSTREAM)/NAMES=(AS_IS, SHORTENED)" +$ cxx_params = cxx_params + "/FLOAT=IEEE/IEEE_MODE=DENORM_RESULTS" +$! +$ if build_64 .eqs. "1" +$ then +$ set noon +$ define/user/nolog sys$output NL: +$ define/user/nolog sys$error NL: +$ cxx/POINTER_SIZE=64=ARGV NL: +$! +$ if ($STATUS .and. %X0FFF0000) .eq. %X00030000 +$ then +$! +$! If we got here, it means DCL complained like this: +$! %DCL-W-NOVALU, value not allowed - remove value specification +$! \64=\ +$! +$! If the compiler was run, logicals defined in /USER would +$! have been deassigned automatically. However, when DCL +$! complains, they aren't, so we do it here (it might be +$! unnecessary, but just in case there will be another error +$! message further on that we don't want to miss). +$! +$ deassign/user/nolog sys$error +$ deassign/user/nolog sys$output +$ cxx_params = cxx_params + "/POINTER_SIZE=64" +$ else +$ cxx_params = cxx_params + "/POINTER_SIZE=64=ARGV" +$ endif +$ else +$ cxx_params = cxx_params + "/POINTER_SIZE=32" +$ endif +$! +$ if is_debug .eqs. "1" +$ then +$ cxx_params = cxx_params + "/DEBUG/NOOPTIMIZE/LIST/SHOW=ALL" +$ endif +$! +$ test_loop: +$ next_test = f$element (test_counter, " ", plibsys_tests) +$ if next_test .nes. "" .and. next_test .nes. " " +$ then +$ next_test = next_test + "_test" +$ 'vo_c' "[CXX ] ''next_test'.cpp" +$ cxx [---.tests]'next_test'.cpp 'cxx_params' +$! +$ 'vo_c' "[CXXLINK] ''next_test'.obj" +$ cxxlink 'next_test'.obj,'objdir'plibsys_link.opt/OPTION /THREADS_ENABLE +$! +$ if f$search("CXX_REPOSITORY.DIR") .nes. "" +$ then +$ set prot=w:d []CXX_REPOSITORY.DIR;* +$ delete/tree [.CXX_REPOSITORY...]*.*;* +$ delete []CXX_REPOSITORY.DIR;* +$ endif +$! +$ purge 'next_test'.obj +$ purge 'next_test'.exe +$! +$ test_counter = test_counter + 1 +$ goto test_loop +$ endif +$! +$ build_done: +$ 'vo_c' "Build done." +$! +$! Run unit tests +$! -------------- +$! +$ if run_tests .eqs. "0" +$ then +$ if is_tests .eqs. "1" +$ then +$ 'vo_c' "To run tests invoke: @build_vms.com NOLIB RUN_TESTS" +$ endif +$ goto common_exit +$ endif +$! +$ 'vo_c' "Running tests..." +$ test_counter = 0 +$ tests_passed = 0 +$! +$ run_loop: +$ next_test = f$element (test_counter, " ", test_list_full) +$ if next_test .nes. "" .and. next_test .nes. " " +$ then +$ if f$search("''next_test'_test.exe") .eqs. "" +$ then +$ 'vo_c' "[SKIP] Test not found: ''next_test'" +$ goto run_loop_next +$ endif +$! +$ 'vo_c' "[RUN ] ''next_test'" +$! +$ define/user/nolog sys$error NL: +$ define/user/nolog sys$output NL: +$ define/user/nolog plibsys 'objdir'PLIBSYS.EXE +$ define/user/nolog test_imgdir 'objdir' +$! +$! Disable error cheking for the test binary +$! +$ set noon +$! +$ xrun := $test_imgdir:'next_test'_test.exe +$ if next_test .eqs. "plibraryloader" +$ then +$ xrun 'objdir'PLIBSYS.EXE +$ else +$ xrun +$ endif +$! +$ if $STATUS .eqs. "%X00000001" +$ then +$ 'vo_c' "[PASS] Test passed: ''next_test'" +$ tests_passed = tests_passed + 1 +$ else +$ 'vo_c' "[FAIL] *** Test failed: ''next_test'" +$ endif +$! +$ set on +$! +$ run_loop_next: +$ test_counter = test_counter + 1 +$ goto run_loop +$ endif +$! +$ 'vo_c' "Tests passed: ''tests_passed'/''test_counter'" +$! +$! In case of error during the last test +$ deassign/user/nolog sys$error +$ deassign/user/nolog sys$output +$ deassign/user/nolog plibsys +$ deassign/user/nolog test_imgdir +$! +$ common_exit: +$ set default 'orig_def' +$ exit diff --git a/3rdparty/plibsys/platforms/vms-general/plibsys.opt b/3rdparty/plibsys/platforms/vms-general/plibsys.opt new file mode 100644 index 0000000..408b884 --- /dev/null +++ b/3rdparty/plibsys/platforms/vms-general/plibsys.opt @@ -0,0 +1,540 @@ +GSMATCH=LEQUAL,3,0 +IDENTIFICATION="plibsys" +CASE_SENSITIVE=YES +! +! patomic.h +! +SYMBOL_VECTOR=(p_atomic_int_get=PROCEDURE) +SYMBOL_VECTOR=(P_ATOMIC_INT_GET/p_atomic_int_get=PROCEDURE) +SYMBOL_VECTOR=(p_atomic_int_set=PROCEDURE) +SYMBOL_VECTOR=(P_ATOMIC_INT_SET/p_atomic_int_set=PROCEDURE) +SYMBOL_VECTOR=(p_atomic_int_inc=PROCEDURE) +SYMBOL_VECTOR=(P_ATOMIC_INT_INC/p_atomic_int_inc=PROCEDURE) +SYMBOL_VECTOR=(p_atomic_int_dec_and_test=PROCEDURE) +SYMBOL_VECTOR=(P_ATOMIC_INT_DEC_AND_TEST/p_atomic_int_dec_and_test=PROCEDURE) +SYMBOL_VECTOR=(p_atomic_int_compare_an2fhrots$=PROCEDURE) +SYMBOL_VECTOR=(P_ATOMIC_INT_COMPARE_AN2UA3PBG$/p_atomic_int_compare_an2fhrots$=PROCEDURE) +SYMBOL_VECTOR=(p_atomic_int_add=PROCEDURE) +SYMBOL_VECTOR=(P_ATOMIC_INT_ADD/p_atomic_int_add=PROCEDURE) +SYMBOL_VECTOR=(p_atomic_int_and=PROCEDURE) +SYMBOL_VECTOR=(P_ATOMIC_INT_AND/p_atomic_int_and=PROCEDURE) +SYMBOL_VECTOR=(p_atomic_int_or=PROCEDURE) +SYMBOL_VECTOR=(P_ATOMIC_INT_OR/p_atomic_int_or=PROCEDURE) +SYMBOL_VECTOR=(p_atomic_int_xor=PROCEDURE) +SYMBOL_VECTOR=(P_ATOMIC_INT_XOR/p_atomic_int_xor=PROCEDURE) +SYMBOL_VECTOR=(p_atomic_pointer_get=PROCEDURE) +SYMBOL_VECTOR=(P_ATOMIC_POINTER_GET/p_atomic_pointer_get=PROCEDURE) +SYMBOL_VECTOR=(p_atomic_pointer_set=PROCEDURE) +SYMBOL_VECTOR=(P_ATOMIC_POINTER_SET/p_atomic_pointer_set=PROCEDURE) +SYMBOL_VECTOR=(p_atomic_pointer_compar0usq95l$=PROCEDURE) +SYMBOL_VECTOR=(P_ATOMIC_POINTER_COMPAR19ERBSM$/p_atomic_pointer_compar0usq95l$=PROCEDURE) +SYMBOL_VECTOR=(p_atomic_pointer_add=PROCEDURE) +SYMBOL_VECTOR=(P_ATOMIC_POINTER_ADD/p_atomic_pointer_add=PROCEDURE) +SYMBOL_VECTOR=(p_atomic_pointer_and=PROCEDURE) +SYMBOL_VECTOR=(P_ATOMIC_POINTER_AND/p_atomic_pointer_and=PROCEDURE) +SYMBOL_VECTOR=(p_atomic_pointer_or=PROCEDURE) +SYMBOL_VECTOR=(P_ATOMIC_POINTER_OR/p_atomic_pointer_or=PROCEDURE) +SYMBOL_VECTOR=(p_atomic_pointer_xor=PROCEDURE) +SYMBOL_VECTOR=(P_ATOMIC_POINTER_XOR/p_atomic_pointer_xor=PROCEDURE) +SYMBOL_VECTOR=(p_atomic_is_lock_free=PROCEDURE) +SYMBOL_VECTOR=(P_ATOMIC_IS_LOCK_FREE/p_atomic_is_lock_free=PROCEDURE) +! +! pcondvariable.h +! +SYMBOL_VECTOR=(p_cond_variable_new=PROCEDURE) +SYMBOL_VECTOR=(P_COND_VARIABLE_NEW/p_cond_variable_new=PROCEDURE) +SYMBOL_VECTOR=(p_cond_variable_free=PROCEDURE) +SYMBOL_VECTOR=(P_COND_VARIABLE_FREE/p_cond_variable_free=PROCEDURE) +SYMBOL_VECTOR=(p_cond_variable_wait=PROCEDURE) +SYMBOL_VECTOR=(P_COND_VARIABLE_WAIT/p_cond_variable_wait=PROCEDURE) +SYMBOL_VECTOR=(p_cond_variable_signal=PROCEDURE) +SYMBOL_VECTOR=(P_COND_VARIABLE_SIGNAL/p_cond_variable_signal=PROCEDURE) +SYMBOL_VECTOR=(p_cond_variable_broadcast=PROCEDURE) +SYMBOL_VECTOR=(P_COND_VARIABLE_BROADCAST/p_cond_variable_broadcast=PROCEDURE) +! +! pcryptohash.h +! +SYMBOL_VECTOR=(p_crypto_hash_new=PROCEDURE) +SYMBOL_VECTOR=(P_CRYPTO_HASH_NEW/p_crypto_hash_new=PROCEDURE) +SYMBOL_VECTOR=(p_crypto_hash_update=PROCEDURE) +SYMBOL_VECTOR=(P_CRYPTO_HASH_UPDATE/p_crypto_hash_update=PROCEDURE) +SYMBOL_VECTOR=(p_crypto_hash_reset=PROCEDURE) +SYMBOL_VECTOR=(P_CRYPTO_HASH_RESET/p_crypto_hash_reset=PROCEDURE) +SYMBOL_VECTOR=(p_crypto_hash_get_string=PROCEDURE) +SYMBOL_VECTOR=(P_CRYPTO_HASH_GET_STRING/p_crypto_hash_get_string=PROCEDURE) +SYMBOL_VECTOR=(p_crypto_hash_get_digest=PROCEDURE) +SYMBOL_VECTOR=(P_CRYPTO_HASH_GET_DIGEST/p_crypto_hash_get_digest=PROCEDURE) +SYMBOL_VECTOR=(p_crypto_hash_get_length=PROCEDURE) +SYMBOL_VECTOR=(P_CRYPTO_HASH_GET_LENGTH/p_crypto_hash_get_length=PROCEDURE) +SYMBOL_VECTOR=(p_crypto_hash_get_type=PROCEDURE) +SYMBOL_VECTOR=(P_CRYPTO_HASH_GET_TYPE/p_crypto_hash_get_type=PROCEDURE) +SYMBOL_VECTOR=(p_crypto_hash_free=PROCEDURE) +SYMBOL_VECTOR=(P_CRYPTO_HASH_FREE/p_crypto_hash_free=PROCEDURE) +! +! pdir.h +! +SYMBOL_VECTOR=(p_dir_new=PROCEDURE) +SYMBOL_VECTOR=(P_DIR_NEW/p_dir_new=PROCEDURE) +SYMBOL_VECTOR=(p_dir_create=PROCEDURE) +SYMBOL_VECTOR=(P_DIR_CREATE/p_dir_create=PROCEDURE) +SYMBOL_VECTOR=(p_dir_remove=PROCEDURE) +SYMBOL_VECTOR=(P_DIR_REMOVE/p_dir_remove=PROCEDURE) +SYMBOL_VECTOR=(p_dir_is_exists=PROCEDURE) +SYMBOL_VECTOR=(P_DIR_IS_EXISTS/p_dir_is_exists=PROCEDURE) +SYMBOL_VECTOR=(p_dir_get_path=PROCEDURE) +SYMBOL_VECTOR=(P_DIR_GET_PATH/p_dir_get_path=PROCEDURE) +SYMBOL_VECTOR=(p_dir_get_next_entry=PROCEDURE) +SYMBOL_VECTOR=(P_DIR_GET_NEXT_ENTRY/p_dir_get_next_entry=PROCEDURE) +SYMBOL_VECTOR=(p_dir_rewind=PROCEDURE) +SYMBOL_VECTOR=(P_DIR_REWIND/p_dir_rewind=PROCEDURE) +SYMBOL_VECTOR=(p_dir_entry_free=PROCEDURE) +SYMBOL_VECTOR=(P_DIR_ENTRY_FREE/p_dir_entry_free=PROCEDURE) +SYMBOL_VECTOR=(p_dir_free=PROCEDURE) +SYMBOL_VECTOR=(P_DIR_FREE/p_dir_free=PROCEDURE) +! +! perror.h +! +SYMBOL_VECTOR=(p_error_new=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_NEW/p_error_new=PROCEDURE) +SYMBOL_VECTOR=(p_error_new_literal=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_NEW_LITERAL/p_error_new_literal=PROCEDURE) +SYMBOL_VECTOR=(p_error_get_message=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_GET_MESSAGE/p_error_get_message=PROCEDURE) +SYMBOL_VECTOR=(p_error_get_code=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_GET_CODE/p_error_get_code=PROCEDURE) +SYMBOL_VECTOR=(p_error_get_native_code=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_GET_NATIVE_CODE/p_error_get_native_code=PROCEDURE) +SYMBOL_VECTOR=(p_error_get_domain=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_GET_DOMAIN/p_error_get_domain=PROCEDURE) +SYMBOL_VECTOR=(p_error_get_last_system=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_GET_LAST_SYSTEM/p_error_get_last_system=PROCEDURE) +SYMBOL_VECTOR=(p_error_get_last_net=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_GET_LAST_NET/p_error_get_last_net=PROCEDURE) +SYMBOL_VECTOR=(p_error_copy=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_COPY/p_error_copy=PROCEDURE) +SYMBOL_VECTOR=(p_error_set_error=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_SET_ERROR/p_error_set_error=PROCEDURE) +SYMBOL_VECTOR=(p_error_set_error_p=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_SET_ERROR_P/p_error_set_error_p=PROCEDURE) +SYMBOL_VECTOR=(p_error_set_code=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_SET_CODE/p_error_set_code=PROCEDURE) +SYMBOL_VECTOR=(p_error_set_native_code=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_SET_NATIVE_CODE/p_error_set_native_code=PROCEDURE) +SYMBOL_VECTOR=(p_error_set_message=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_SET_MESSAGE/p_error_set_message=PROCEDURE) +SYMBOL_VECTOR=(p_error_set_last_system=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_SET_LAST_SYSTEM/p_error_set_last_system=PROCEDURE) +SYMBOL_VECTOR=(p_error_set_last_net=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_SET_LAST_NET/p_error_set_last_net=PROCEDURE) +SYMBOL_VECTOR=(p_error_clear=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_CLEAR/p_error_clear=PROCEDURE) +SYMBOL_VECTOR=(p_error_free=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_FREE/p_error_free=PROCEDURE) +! +! pfile.h +! +SYMBOL_VECTOR=(p_file_is_exists=PROCEDURE) +SYMBOL_VECTOR=(P_ERROR_IS_EXISTS/p_file_is_exists=PROCEDURE) +SYMBOL_VECTOR=(p_file_remove=PROCEDURE) +SYMBOL_VECTOR=(P_FILE_REMOVE/p_file_remove=PROCEDURE) +! +! phashtable.h +! +SYMBOL_VECTOR=(p_hash_table_new=PROCEDURE) +SYMBOL_VECTOR=(P_HASH_TABLE_NEW/p_hash_table_new=PROCEDURE) +SYMBOL_VECTOR=(p_hash_table_insert=PROCEDURE) +SYMBOL_VECTOR=(P_HASH_TABLE_INSERT/p_hash_table_insert=PROCEDURE) +SYMBOL_VECTOR=(p_hash_table_lookup=PROCEDURE) +SYMBOL_VECTOR=(P_HASH_TABLE_LOOKUP/p_hash_table_lookup=PROCEDURE) +SYMBOL_VECTOR=(p_hash_table_keys=PROCEDURE) +SYMBOL_VECTOR=(P_HASH_TABLE_KEYS/p_hash_table_keys=PROCEDURE) +SYMBOL_VECTOR=(p_hash_table_values=PROCEDURE) +SYMBOL_VECTOR=(P_HASH_TABLE_VALUES/p_hash_table_values=PROCEDURE) +SYMBOL_VECTOR=(p_hash_table_free=PROCEDURE) +SYMBOL_VECTOR=(P_HASH_TABLE_FREE/p_hash_table_free=PROCEDURE) +SYMBOL_VECTOR=(p_hash_table_remove=PROCEDURE) +SYMBOL_VECTOR=(P_HASH_TABLE_REMOVE/p_hash_table_remove=PROCEDURE) +SYMBOL_VECTOR=(p_hash_table_lookup_by_value=PROCEDURE) +SYMBOL_VECTOR=(P_HASH_TABLE_LOOKUP_BY_VALUE/p_hash_table_lookup_by_value=PROCEDURE) +! +! pinifile.h +! +SYMBOL_VECTOR=(p_ini_file_new=PROCEDURE) +SYMBOL_VECTOR=(P_INI_FILE_NEW/p_ini_file_new=PROCEDURE) +SYMBOL_VECTOR=(p_ini_file_free=PROCEDURE) +SYMBOL_VECTOR=(P_INI_FILE_FREE/p_ini_file_free=PROCEDURE) +SYMBOL_VECTOR=(p_ini_file_parse=PROCEDURE) +SYMBOL_VECTOR=(P_INI_FILE_PARSE/p_ini_file_parse=PROCEDURE) +SYMBOL_VECTOR=(p_ini_file_is_parsed=PROCEDURE) +SYMBOL_VECTOR=(P_INI_FILE_IS_PARSED/p_ini_file_is_parsed=PROCEDURE) +SYMBOL_VECTOR=(p_ini_file_sections=PROCEDURE) +SYMBOL_VECTOR=(P_INI_FILE_SECTIONS/p_ini_file_sections=PROCEDURE) +SYMBOL_VECTOR=(p_ini_file_keys=PROCEDURE) +SYMBOL_VECTOR=(P_INI_FILE_KEYS/p_ini_file_keys=PROCEDURE) +SYMBOL_VECTOR=(p_ini_file_is_key_exists=PROCEDURE) +SYMBOL_VECTOR=(P_INI_FILE_IS_KEY_EXISTS/p_ini_file_is_key_exists=PROCEDURE) +SYMBOL_VECTOR=(p_ini_file_parameter_string=PROCEDURE) +SYMBOL_VECTOR=(P_INI_FILE_PARAMETER_STRING/p_ini_file_parameter_string=PROCEDURE) +SYMBOL_VECTOR=(p_ini_file_parameter_int=PROCEDURE) +SYMBOL_VECTOR=(P_INI_FILE_PARAMETER_INT/p_ini_file_parameter_int=PROCEDURE) +SYMBOL_VECTOR=(p_ini_file_parameter_double=PROCEDURE) +SYMBOL_VECTOR=(P_INI_FILE_PARAMETER_DOUBLE/p_ini_file_parameter_double=PROCEDURE) +SYMBOL_VECTOR=(p_ini_file_parameter_boolean=PROCEDURE) +SYMBOL_VECTOR=(P_INI_FILE_PARAMETER_BOOLEAN/p_ini_file_parameter_boolean=PROCEDURE) +SYMBOL_VECTOR=(p_ini_file_parameter_list=PROCEDURE) +SYMBOL_VECTOR=(P_INI_FILE_PARAMETER_LIST/p_ini_file_parameter_list=PROCEDURE) +! +! plibraryloader.h +! +SYMBOL_VECTOR=(p_library_loader_new=PROCEDURE) +SYMBOL_VECTOR=(P_LIBRARY_LOADER_NEW/p_library_loader_new=PROCEDURE) +SYMBOL_VECTOR=(p_library_loader_get_symbol=PROCEDURE) +SYMBOL_VECTOR=(P_LIBRARY_LOADER_GET_SYMBOL/p_library_loader_get_symbol=PROCEDURE) +SYMBOL_VECTOR=(p_library_loader_free=PROCEDURE) +SYMBOL_VECTOR=(P_LIBRARY_LOADER_FREE/p_library_loader_free=PROCEDURE) +SYMBOL_VECTOR=(p_library_loader_get_last_error=PROCEDURE) +SYMBOL_VECTOR=(P_LIBRARY_LOADER_GET_LAST_ERROR/p_library_loader_get_last_error=PROCEDURE) +SYMBOL_VECTOR=(p_library_loader_is_ref_counted=PROCEDURE) +SYMBOL_VECTOR=(P_LIBRARY_LOADER_IS_REF_COUNTED/p_library_loader_is_ref_counted=PROCEDURE) +! +! plist.h +! +SYMBOL_VECTOR=(p_list_append=PROCEDURE) +SYMBOL_VECTOR=(P_LIST_APPEND/p_list_append=PROCEDURE) +SYMBOL_VECTOR=(p_list_remove=PROCEDURE) +SYMBOL_VECTOR=(P_LIST_REMOVE/p_list_remove=PROCEDURE) +SYMBOL_VECTOR=(p_list_foreach=PROCEDURE) +SYMBOL_VECTOR=(P_LIST_FOREACH/p_list_foreach=PROCEDURE) +SYMBOL_VECTOR=(p_list_free=PROCEDURE) +SYMBOL_VECTOR=(P_LIST_FREE/p_list_free=PROCEDURE) +SYMBOL_VECTOR=(p_list_last=PROCEDURE) +SYMBOL_VECTOR=(P_LIST_LAST/p_list_last=PROCEDURE) +SYMBOL_VECTOR=(p_list_length=PROCEDURE) +SYMBOL_VECTOR=(P_LIST_LENGTH/p_list_length=PROCEDURE) +SYMBOL_VECTOR=(p_list_prepend=PROCEDURE) +SYMBOL_VECTOR=(P_LIST_PREPEND/p_list_prepend=PROCEDURE) +SYMBOL_VECTOR=(p_list_reverse=PROCEDURE) +SYMBOL_VECTOR=(P_LIST_REVERSE/p_list_reverse=PROCEDURE) +! +! pmain.h +! +SYMBOL_VECTOR=(p_libsys_init=PROCEDURE) +SYMBOL_VECTOR=(P_LIBSYS_INIT/p_libsys_init=PROCEDURE) +SYMBOL_VECTOR=(p_libsys_init_full=PROCEDURE) +SYMBOL_VECTOR=(P_LIBSYS_INIT_FULL/p_libsys_init_full=PROCEDURE) +SYMBOL_VECTOR=(p_libsys_shutdown=PROCEDURE) +SYMBOL_VECTOR=(P_LIBSYS_SHUTDOWN/p_libsys_shutdown=PROCEDURE) +SYMBOL_VECTOR=(p_libsys_version=PROCEDURE) +SYMBOL_VECTOR=(P_LIBSYS_VERSION/p_libsys_version=PROCEDURE) +! +! pmem.h +! +SYMBOL_VECTOR=(p_malloc=PROCEDURE) +SYMBOL_VECTOR=(P_MALLOC/p_malloc=PROCEDURE) +SYMBOL_VECTOR=(p_malloc0=PROCEDURE) +SYMBOL_VECTOR=(P_MALLOC0/p_malloc0=PROCEDURE) +SYMBOL_VECTOR=(p_realloc=PROCEDURE) +SYMBOL_VECTOR=(P_REALLOC/p_realloc=PROCEDURE) +SYMBOL_VECTOR=(p_free=PROCEDURE) +SYMBOL_VECTOR=(P_FREE/p_free=PROCEDURE) +SYMBOL_VECTOR=(p_mem_set_vtable=PROCEDURE) +SYMBOL_VECTOR=(P_MEM_SET_VTABLE/p_mem_set_vtable=PROCEDURE) +SYMBOL_VECTOR=(p_mem_restore_vtable=PROCEDURE) +SYMBOL_VECTOR=(P_MEM_RESTORE_VTABLE/p_mem_restore_vtable=PROCEDURE) +SYMBOL_VECTOR=(p_mem_mmap=PROCEDURE) +SYMBOL_VECTOR=(P_MEM_MMAP/p_mem_mmap=PROCEDURE) +SYMBOL_VECTOR=(p_mem_munmap=PROCEDURE) +SYMBOL_VECTOR=(P_MEM_MUNMAP/p_mem_munmap=PROCEDURE) +! +! pmutex.h +! +SYMBOL_VECTOR=(p_mutex_new=PROCEDURE) +SYMBOL_VECTOR=(P_MUTEX_NEW/p_mutex_new=PROCEDURE) +SYMBOL_VECTOR=(p_mutex_lock=PROCEDURE) +SYMBOL_VECTOR=(P_MUTEX_LOCK/p_mutex_lock=PROCEDURE) +SYMBOL_VECTOR=(p_mutex_trylock=PROCEDURE) +SYMBOL_VECTOR=(P_MUTEX_TRYLOCK/p_mutex_trylock=PROCEDURE) +SYMBOL_VECTOR=(p_mutex_unlock=PROCEDURE) +SYMBOL_VECTOR=(P_MUTEX_UNLOCK/p_mutex_unlock=PROCEDURE) +SYMBOL_VECTOR=(p_mutex_free=PROCEDURE) +SYMBOL_VECTOR=(P_MUTEX_FREE/p_mutex_free=PROCEDURE) +! +! pprocess.h +! +SYMBOL_VECTOR=(p_process_get_current_pid=PROCEDURE) +SYMBOL_VECTOR=(P_PROCESS_GET_CURRENT_PID/p_process_get_current_pid=PROCEDURE) +SYMBOL_VECTOR=(p_process_is_running=PROCEDURE) +SYMBOL_VECTOR=(P_PROCESS_IS_RUNNING/p_process_is_running=PROCEDURE) +! +! prwlock.h +! +SYMBOL_VECTOR=(p_rwlock_new=PROCEDURE) +SYMBOL_VECTOR=(P_RWLOCK_NEW/p_rwlock_new=PROCEDURE) +SYMBOL_VECTOR=(p_rwlock_reader_lock=PROCEDURE) +SYMBOL_VECTOR=(P_RWLOCK_READER_LOCK/p_rwlock_reader_lock=PROCEDURE) +SYMBOL_VECTOR=(p_rwlock_reader_trylock=PROCEDURE) +SYMBOL_VECTOR=(P_RWLOCK_READER_TRYLOCK/p_rwlock_reader_trylock=PROCEDURE) +SYMBOL_VECTOR=(p_rwlock_reader_unlock=PROCEDURE) +SYMBOL_VECTOR=(P_RWLOCK_READER_UNLOCK/p_rwlock_reader_unlock=PROCEDURE) +SYMBOL_VECTOR=(p_rwlock_writer_lock=PROCEDURE) +SYMBOL_VECTOR=(P_RWLOCK_WRITER_LOCK/p_rwlock_writer_lock=PROCEDURE) +SYMBOL_VECTOR=(p_rwlock_writer_trylock=PROCEDURE) +SYMBOL_VECTOR=(P_RWLOCK_WRITER_TRYLOCK/p_rwlock_writer_trylock=PROCEDURE) +SYMBOL_VECTOR=(p_rwlock_writer_unlock=PROCEDURE) +SYMBOL_VECTOR=(P_RWLOCK_WRITER_UNLOCK/p_rwlock_writer_unlock=PROCEDURE) +SYMBOL_VECTOR=(p_rwlock_free=PROCEDURE) +SYMBOL_VECTOR=(P_RWLOCK_FREE/p_rwlock_free=PROCEDURE) +! +! psemaphore.h +! +SYMBOL_VECTOR=(p_semaphore_new=PROCEDURE) +SYMBOL_VECTOR=(P_SEMAPHORE_NEW/p_semaphore_new=PROCEDURE) +SYMBOL_VECTOR=(p_semaphore_take_ownership=PROCEDURE) +SYMBOL_VECTOR=(P_SEMAPHORE_TAKE_OWNERSHIP/p_semaphore_take_ownership=PROCEDURE) +SYMBOL_VECTOR=(p_semaphore_acquire=PROCEDURE) +SYMBOL_VECTOR=(P_SEMAPHORE_ACQUIRE/p_semaphore_acquire=PROCEDURE) +SYMBOL_VECTOR=(p_semaphore_release=PROCEDURE) +SYMBOL_VECTOR=(P_SEMAPHORE_RELEASE/p_semaphore_release=PROCEDURE) +SYMBOL_VECTOR=(p_semaphore_free=PROCEDURE) +SYMBOL_VECTOR=(P_SEMAPHORE_FREE/p_semaphore_free=PROCEDURE) +! +! pshm.h +! +SYMBOL_VECTOR=(p_shm_new=PROCEDURE) +SYMBOL_VECTOR=(P_SHM_NEW/p_shm_new=PROCEDURE) +SYMBOL_VECTOR=(p_shm_take_ownership=PROCEDURE) +SYMBOL_VECTOR=(P_SHM_TAKE_OWNERSHIP/p_shm_take_ownership=PROCEDURE) +SYMBOL_VECTOR=(p_shm_free=PROCEDURE) +SYMBOL_VECTOR=(P_SHM_FREE/p_shm_free=PROCEDURE) +SYMBOL_VECTOR=(p_shm_lock=PROCEDURE) +SYMBOL_VECTOR=(P_SHM_LOCK/p_shm_lock=PROCEDURE) +SYMBOL_VECTOR=(p_shm_unlock=PROCEDURE) +SYMBOL_VECTOR=(P_SHM_UNLOCK/p_shm_unlock=PROCEDURE) +SYMBOL_VECTOR=(p_shm_get_address=PROCEDURE) +SYMBOL_VECTOR=(P_SHM_GET_ADDRESS/p_shm_get_address=PROCEDURE) +SYMBOL_VECTOR=(p_shm_get_size=PROCEDURE) +SYMBOL_VECTOR=(P_SHM_GET_SIZE/p_shm_get_size=PROCEDURE) +! +! pshmbuffer.h +! +SYMBOL_VECTOR=(p_shm_buffer_new=PROCEDURE) +SYMBOL_VECTOR=(P_SHM_BUFFER_NEW/p_shm_buffer_new=PROCEDURE) +SYMBOL_VECTOR=(p_shm_buffer_free=PROCEDURE) +SYMBOL_VECTOR=(P_SHM_BUFFER_FREE/p_shm_buffer_free=PROCEDURE) +SYMBOL_VECTOR=(p_shm_buffer_take_ownership=PROCEDURE) +SYMBOL_VECTOR=(P_SHM_BUFFER_TAKE_OWNERSHIP/p_shm_buffer_take_ownership=PROCEDURE) +SYMBOL_VECTOR=(p_shm_buffer_read=PROCEDURE) +SYMBOL_VECTOR=(P_SHM_BUFFER_READ/p_shm_buffer_read=PROCEDURE) +SYMBOL_VECTOR=(p_shm_buffer_write=PROCEDURE) +SYMBOL_VECTOR=(P_SHM_BUFFER_WRITE/p_shm_buffer_write=PROCEDURE) +SYMBOL_VECTOR=(p_shm_buffer_get_free_space=PROCEDURE) +SYMBOL_VECTOR=(P_SHM_BUFFER_GET_FREE_SPACE/p_shm_buffer_get_free_space=PROCEDURE) +SYMBOL_VECTOR=(p_shm_buffer_get_used_space=PROCEDURE) +SYMBOL_VECTOR=(P_SHM_BUFFER_GET_USED_SPACE/p_shm_buffer_get_used_space=PROCEDURE) +SYMBOL_VECTOR=(p_shm_buffer_clear=PROCEDURE) +SYMBOL_VECTOR=(P_SHM_BUFFER_CLEAR/p_shm_buffer_clear=PROCEDURE) +! +! psocket.h +! +SYMBOL_VECTOR=(p_socket_new_from_fd=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_NEW_FROM_FD/p_socket_new_from_fd=PROCEDURE) +SYMBOL_VECTOR=(p_socket_new=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_NEW/p_socket_new=PROCEDURE) +SYMBOL_VECTOR=(p_socket_get_fd=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_GET_FD/p_socket_get_fd=PROCEDURE) +SYMBOL_VECTOR=(p_socket_get_family=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_GET_FAMILY/p_socket_get_family=PROCEDURE) +SYMBOL_VECTOR=(p_socket_get_type=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_GET_TYPE/p_socket_get_type=PROCEDURE) +SYMBOL_VECTOR=(p_socket_get_protocol=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_GET_PROTOCOL/p_socket_get_protocol=PROCEDURE) +SYMBOL_VECTOR=(p_socket_get_keepalive=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_GET_KEEPALIVE/p_socket_get_keepalive=PROCEDURE) +SYMBOL_VECTOR=(p_socket_get_blocking=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_GET_BLOCKING/p_socket_get_blocking=PROCEDURE) +SYMBOL_VECTOR=(p_socket_get_listen_backlog=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_GET_LISTEN_BACKLOG/p_socket_get_listen_backlog=PROCEDURE) +SYMBOL_VECTOR=(p_socket_get_timeout=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_GET_TIMEOUT/p_socket_get_timeout=PROCEDURE) +SYMBOL_VECTOR=(p_socket_get_local_address=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_GET_LOCAL_ADDRESS/p_socket_get_local_address=PROCEDURE) +SYMBOL_VECTOR=(p_socket_get_remote_address=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_GET_REMOTE_ADDRESS/p_socket_get_remote_address=PROCEDURE) +SYMBOL_VECTOR=(p_socket_is_connected=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_IS_CONNECTED/p_socket_is_connected=PROCEDURE) +SYMBOL_VECTOR=(p_socket_is_closed=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_IS_CLOSED/p_socket_is_closed=PROCEDURE) +SYMBOL_VECTOR=(p_socket_check_connect_result=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_CHECK_CONNECT_RESULT/p_socket_check_connect_result=PROCEDURE) +SYMBOL_VECTOR=(p_socket_set_keepalive=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_SET_KEEPALIVE/p_socket_set_keepalive=PROCEDURE) +SYMBOL_VECTOR=(p_socket_set_blocking=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_SET_BLOCKING/p_socket_set_blocking=PROCEDURE) +SYMBOL_VECTOR=(p_socket_set_listen_backlog=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_SET_LISTEN_BACKLOG/p_socket_set_listen_backlog=PROCEDURE) +SYMBOL_VECTOR=(p_socket_set_timeout=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_SET_TIMEOUT/p_socket_set_timeout=PROCEDURE) +SYMBOL_VECTOR=(p_socket_bind=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_BIND/p_socket_bind=PROCEDURE) +SYMBOL_VECTOR=(p_socket_connect=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_CONNECT/p_socket_connect=PROCEDURE) +SYMBOL_VECTOR=(p_socket_listen=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_LISTEN/p_socket_listen=PROCEDURE) +SYMBOL_VECTOR=(p_socket_accept=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ACCEPT/p_socket_accept=PROCEDURE) +SYMBOL_VECTOR=(p_socket_receive=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_RECEIVE/p_socket_receive=PROCEDURE) +SYMBOL_VECTOR=(p_socket_receive_from=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_RECEIVE_FROM/p_socket_receive_from=PROCEDURE) +SYMBOL_VECTOR=(p_socket_send=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_SEND/p_socket_send=PROCEDURE) +SYMBOL_VECTOR=(p_socket_send_to=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_SEND_TO/p_socket_send_to=PROCEDURE) +SYMBOL_VECTOR=(p_socket_close=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_CLOSE/p_socket_close=PROCEDURE) +SYMBOL_VECTOR=(p_socket_shutdown=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_SHUTDOWN/p_socket_shutdown=PROCEDURE) +SYMBOL_VECTOR=(p_socket_free=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_FREE/p_socket_free=PROCEDURE) +SYMBOL_VECTOR=(p_socket_set_buffer_size=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_SET_BUFFER_SIZE/p_socket_set_buffer_size=PROCEDURE) +SYMBOL_VECTOR=(p_socket_io_condition_wait=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_IO_CONDITION_WAIT/p_socket_io_condition_wait=PROCEDURE) +! +! psocketaddress.h +! +SYMBOL_VECTOR=(p_socket_address_new_fr1g0bamc$=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_NEW_FR0V6PAD7$/p_socket_address_new_fr1g0bamc$=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_new=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_NEW/p_socket_address_new=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_new_any=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_NEW_ANY/p_socket_address_new_any=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_new_loopback=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_NEW_LOOPBACK/p_socket_address_new_loopback=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_to_native=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_TO_NATIVE/p_socket_address_to_native=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_get_na1kai9ab$=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_GET_NA0SBOC5O$/p_socket_address_get_na1kai9ab$=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_get_family=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_GET_FAMILY/p_socket_address_get_family=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_get_address=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_GET_ADDRESS/p_socket_address_get_address=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_get_port=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_GET_PORT/p_socket_address_get_port=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_get_flow_info=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_GET_FLOW_INFO/p_socket_address_get_flow_info=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_get_scope_id=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_GET_SCOPE_ID/p_socket_address_get_scope_id=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_set_flow_info=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_SET_FLOW_INFO/p_socket_address_set_flow_info=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_set_scope_id=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_SET_SCOPE_ID/p_socket_address_set_scope_id=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_is_flo3bgg0hi$=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_IS_FLO1N1P65T$/p_socket_address_is_flo3bgg0hi$=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_is_sco2c7455c$=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_IS_SCO1COK854$/p_socket_address_is_sco2c7455c$=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_is_ipv3s9t3vi$=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_IS_IPV13UAVM5$/p_socket_address_is_ipv3s9t3vi$=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_is_any=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_IS_ANY/p_socket_address_is_any=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_is_loopback=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_IS_LOOPBACK/p_socket_address_is_loopback=PROCEDURE) +SYMBOL_VECTOR=(p_socket_address_free=PROCEDURE) +SYMBOL_VECTOR=(P_SOCKET_ADDRESS_FREE/p_socket_address_free=PROCEDURE) +! +! pspinlock.h +! +SYMBOL_VECTOR=(p_spinlock_new=PROCEDURE) +SYMBOL_VECTOR=(P_SPINLOCK_NEW/p_spinlock_new=PROCEDURE) +SYMBOL_VECTOR=(p_spinlock_lock=PROCEDURE) +SYMBOL_VECTOR=(P_SPINLOCK_LOCK/p_spinlock_lock=PROCEDURE) +SYMBOL_VECTOR=(p_spinlock_trylock=PROCEDURE) +SYMBOL_VECTOR=(P_SPINLOCK_TRYLOCK/p_spinlock_trylock=PROCEDURE) +SYMBOL_VECTOR=(p_spinlock_unlock=PROCEDURE) +SYMBOL_VECTOR=(P_SPINLOCK_UNLOCK/p_spinlock_unlock=PROCEDURE) +SYMBOL_VECTOR=(p_spinlock_free=PROCEDURE) +SYMBOL_VECTOR=(P_SPINLOCK_FREE/p_spinlock_free=PROCEDURE) +! +! pstring.h +! +SYMBOL_VECTOR=(p_strdup=PROCEDURE) +SYMBOL_VECTOR=(P_STRDUP/p_strdup=PROCEDURE) +SYMBOL_VECTOR=(p_strchomp=PROCEDURE) +SYMBOL_VECTOR=(P_STRCHOMP/p_strchomp=PROCEDURE) +SYMBOL_VECTOR=(p_strtok=PROCEDURE) +SYMBOL_VECTOR=(P_STRTOK/p_strtok=PROCEDURE) +SYMBOL_VECTOR=(p_strtod=PROCEDURE) +SYMBOL_VECTOR=(P_STRTOD/p_strtod=PROCEDURE) +! +! ptimeprofiler.h +! +SYMBOL_VECTOR=(p_time_profiler_new=PROCEDURE) +SYMBOL_VECTOR=(P_TIME_PROFILER_NEW/p_time_profiler_new=PROCEDURE) +SYMBOL_VECTOR=(p_time_profiler_reset=PROCEDURE) +SYMBOL_VECTOR=(P_TIME_PROFILER_RESET/p_time_profiler_reset=PROCEDURE) +SYMBOL_VECTOR=(p_time_profiler_elapsed_usecs=PROCEDURE) +SYMBOL_VECTOR=(P_TIME_PROFILER_ELAPSED_USECS/p_time_profiler_elapsed_usecs=PROCEDURE) +SYMBOL_VECTOR=(p_time_profiler_free=PROCEDURE) +SYMBOL_VECTOR=(P_TIME_PROFILER_FREE/p_time_profiler_free=PROCEDURE) +! +! ptree.h +! +SYMBOL_VECTOR=(p_tree_new=PROCEDURE) +SYMBOL_VECTOR=(P_TREE_NEW/p_tree_new=PROCEDURE) +SYMBOL_VECTOR=(p_tree_new_with_data=PROCEDURE) +SYMBOL_VECTOR=(P_TREE_NEW_WITH_DATA/p_tree_new_with_data=PROCEDURE) +SYMBOL_VECTOR=(p_tree_new_full=PROCEDURE) +SYMBOL_VECTOR=(P_TREE_NEW_FULL/p_tree_new_full=PROCEDURE) +SYMBOL_VECTOR=(p_tree_insert=PROCEDURE) +SYMBOL_VECTOR=(P_TREE_INSERT/p_tree_insert=PROCEDURE) +SYMBOL_VECTOR=(p_tree_remove=PROCEDURE) +SYMBOL_VECTOR=(P_TREE_REMOVE/p_tree_remove=PROCEDURE) +SYMBOL_VECTOR=(p_tree_lookup=PROCEDURE) +SYMBOL_VECTOR=(P_TREE_LOOKUP/p_tree_lookup=PROCEDURE) +SYMBOL_VECTOR=(p_tree_foreach=PROCEDURE) +SYMBOL_VECTOR=(P_TREE_FOREACH/p_tree_foreach=PROCEDURE) +SYMBOL_VECTOR=(p_tree_clear=PROCEDURE) +SYMBOL_VECTOR=(P_TREE_CLEAR/p_tree_clear=PROCEDURE) +SYMBOL_VECTOR=(p_tree_get_type=PROCEDURE) +SYMBOL_VECTOR=(P_TREE_GET_TYPE/p_tree_get_type=PROCEDURE) +SYMBOL_VECTOR=(p_tree_get_nnodes=PROCEDURE) +SYMBOL_VECTOR=(P_TREE_GET_NNODES/p_tree_get_nnodes=PROCEDURE) +SYMBOL_VECTOR=(p_tree_free=PROCEDURE) +SYMBOL_VECTOR=(P_TREE_FREE/p_tree_free=PROCEDURE) +! +! puthread.h +! +SYMBOL_VECTOR=(p_uthread_create_full=PROCEDURE) +SYMBOL_VECTOR=(P_UTHREAD_CREATE_FULL/p_uthread_create_full=PROCEDURE) +SYMBOL_VECTOR=(p_uthread_create=PROCEDURE) +SYMBOL_VECTOR=(P_UTHREAD_CREATE/p_uthread_create=PROCEDURE) +SYMBOL_VECTOR=(p_uthread_exit=PROCEDURE) +SYMBOL_VECTOR=(P_UTHREAD_EXIT/p_uthread_exit=PROCEDURE) +SYMBOL_VECTOR=(p_uthread_join=PROCEDURE) +SYMBOL_VECTOR=(P_UTHREAD_JOIN/p_uthread_join=PROCEDURE) +SYMBOL_VECTOR=(p_uthread_sleep=PROCEDURE) +SYMBOL_VECTOR=(P_UTHREAD_SLEEP/p_uthread_sleep=PROCEDURE) +SYMBOL_VECTOR=(p_uthread_set_priority=PROCEDURE) +SYMBOL_VECTOR=(P_UTHREAD_SET_PRIORITY/p_uthread_set_priority=PROCEDURE) +SYMBOL_VECTOR=(p_uthread_yield=PROCEDURE) +SYMBOL_VECTOR=(P_UTHREAD_YIELD/p_uthread_yield=PROCEDURE) +SYMBOL_VECTOR=(p_uthread_current_id=PROCEDURE) +SYMBOL_VECTOR=(P_UTHREAD_CURRENT_ID/p_uthread_current_id=PROCEDURE) +SYMBOL_VECTOR=(p_uthread_current=PROCEDURE) +SYMBOL_VECTOR=(P_UTHREAD_CURRENT/p_uthread_current=PROCEDURE) +SYMBOL_VECTOR=(p_uthread_ideal_count=PROCEDURE) +SYMBOL_VECTOR=(P_UTHREAD_IDEAL_COUNT/p_uthread_ideal_count=PROCEDURE) +SYMBOL_VECTOR=(p_uthread_ref=PROCEDURE) +SYMBOL_VECTOR=(P_UTHREAD_REF/p_uthread_ref=PROCEDURE) +SYMBOL_VECTOR=(p_uthread_unref=PROCEDURE) +SYMBOL_VECTOR=(P_UTHREAD_UNREF/p_uthread_unref=PROCEDURE) +SYMBOL_VECTOR=(p_uthread_local_new=PROCEDURE) +SYMBOL_VECTOR=(P_UTHREAD_LOCAL_NEW/p_uthread_local_new=PROCEDURE) +SYMBOL_VECTOR=(p_uthread_local_free=PROCEDURE) +SYMBOL_VECTOR=(P_UTHREAD_LOCAL_FREE/p_uthread_local_free=PROCEDURE) +SYMBOL_VECTOR=(p_uthread_get_local=PROCEDURE) +SYMBOL_VECTOR=(P_UTHREAD_GET_LOCAL/p_uthread_get_local=PROCEDURE) +SYMBOL_VECTOR=(p_uthread_set_local=PROCEDURE) +SYMBOL_VECTOR=(P_UTHREAD_SET_LOCAL/p_uthread_set_local=PROCEDURE) +SYMBOL_VECTOR=(p_uthread_replace_local=PROCEDURE) +SYMBOL_VECTOR=(P_UTHREAD_REPLACE_LOCAL/p_uthread_replace_local=PROCEDURE) diff --git a/3rdparty/plibsys/platforms/vms-general/vms_shorten_symbol.c b/3rdparty/plibsys/platforms/vms-general/vms_shorten_symbol.c new file mode 100644 index 0000000..fbb6c5a --- /dev/null +++ b/3rdparty/plibsys/platforms/vms-general/vms_shorten_symbol.c @@ -0,0 +1,238 @@ +/* + * Copyright (c) 2010 Craig A. Berry + * Copyright (c) 2016 Alexander Saprykin + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/* vms_shorten_symbol + * + * This program provides shortening of long symbols (> 31 characters) using the + * same mechanism as the OpenVMS C compiler. The basic procedure is to compute + * an AUTODIN II checksum of the entire symbol, encode the checksum in base32, + * and glue together a shortened symbol from the first 23 characters of the + * original symbol plus the encoded checksum appended. The output format is + * the same as that of the name mangler database, stored by default in + * [.CXX_REPOSITORY]CXX$DEMANGLER_DB. + * + * To obtain the same result as CC/NAMES=SHORTENED, run like so: + * + * $ mcr []vms_shorten_symbol "Please_forgive_this_absurdly_long_symbol_name" + * PLEASE_FORGIVE_THIS_ABS1ARO4QU$Please_forgive_this_absurdly_long_symbol_name + * + * To obtain the same result as CC/NAMES=(SHORTENED,AS_IS), pass a non-zero + * value as the second argument, like so: + * + * $ mcr []vms_shorten_symbol "Please_forgive_this_absurdly_long_symbol_name" 1 + * Please_forgive_this_abs3rv8rnn$Please_forgive_this_absurdly_long_symbol_name + */ + +#include <ctype.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#ifdef __VMS +# define UINT32 unsigned int +#else +# include <inttypes.h> +# define UINT32 uint32_t +#endif + +static UINT32 crc32 (const char *input_string); +static UINT32 u32_to_base32 (UINT32 input, char *output); +static UINT32 vms_shorten_symbol (const char *symbol, char *shortened, char as_is_flag); + +/* + * This routine implements the AUTODIN II polynomial. + */ +UINT32 +crc32 (const char *input_string) +{ + + /* + * CRC code and data based partly on FreeBSD implementation, which + * notes: + * + * The crc32 functions and data was originally written by Spencer + * Garrett >s...@quick.com> and was cleaned from the PostgreSQL source + * tree via the files contrib/ltree/crc32.[ch]. No license was + * included, therefore it is assumed that this code is public + * domain. Attribution still noted. + * + * (I think they mean "gleaned" not "cleaned".) + */ + static const UINT32 autodin_ii_table[256] = { + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, + 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, + 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, + 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, + 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, + 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, + 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, + 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, + 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, + 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, + 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, + 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, + 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, + 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, + 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, + 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, + 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, + 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, + 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, + 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, + 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, + 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, + 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, + 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, + 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, + 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, + 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, + 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, + 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, + 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, + 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, + 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, + 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, + 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, + 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, + 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, + 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, + 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, + 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, + 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, + 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d, + }; + + UINT32 crc = ~0UL; + char * c; + + for (c = (char *) input_string; *c; ++c) + crc = (crc >> 8) ^ autodin_ii_table[(crc ^ *c) & 0xff]; + + return ~crc; +} + +/* + * This is the RFC2938 variant of base32, not RFC3548, Crockford's, or + * other newer variant. It produces an 8-byte encoded character string + * (plus trailing null) from a 32-bit integer input. + */ +static UINT32 +u32_to_base32 (UINT32 input, char *output) +{ + static const char base32hex_table[32] = { + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', + 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', + 'u', 'v' + }; + + int i; + + /* + * Grab lowest 5 bits and look up conversion in table. Lather, rinse, + * repeat for 6, 5-bit chunks to accommodate 32 bits of input. + */ + for (i = 0; i < 7; i++) { + output[6 - i] = base32hex_table[input & 0x1f]; + + /* Position to look at next 5. */ + input >>= 5; + } + + /* It's DEC, so use '$' not '=' to pad. */ + output[7] = '$'; + output[8] = '\0'; + + return 0; +} + +static UINT32 +vms_shorten_symbol (const char *symbol, char *shortened, char as_is_flag) +{ + char b32str[9]; + UINT32 crc; + char * c; + + crc = crc32 (symbol); + + /* + * The compiler does not use the inverted checksum, so we invert it + * back before encoding. + */ + (void) u32_to_base32 (~crc, (char *) &b32str); + + if (!as_is_flag) { + for (c = (char *) &b32str; *c; c++) + *c = toupper (*c); + } + + sprintf (shortened, "%.23s%.8s\n", symbol, b32str); + shortened[31] = '\0'; + + return 0; +} + +int +main (int argc, char **argv) +{ + char short_symbol[32]; + char as_is_flag = 0; + char * c; + char * input_symbol; + int symlen; + + if (argc < 2) { + fprintf (stderr, "Usage: %s <symbol name> [<AS_IS flag>]\n", argv[0]); + return EXIT_FAILURE; + } + + if (argc > 2) + as_is_flag = 1; + + symlen = strlen (argv[1]); + + if (symlen <= 31) { + printf ("No need for shorten symbol\n"); + return EXIT_SUCCESS; + } + + input_symbol = malloc (symlen + 1); + + if (input_symbol == NULL) + return EXIT_FAILURE; + + strncpy (input_symbol, argv[1], symlen); + input_symbol[symlen] = '\0'; + + if (!as_is_flag) { + for (c = input_symbol; *c; c++) + *c = toupper (*c); + } + + vms_shorten_symbol (input_symbol, (char *) &short_symbol, as_is_flag); + printf ("%s%s\n", &short_symbol, argv[1]); + free (input_symbol); + + return EXIT_SUCCESS; +} diff --git a/3rdparty/plibsys/platforms/win32-borland/platform.cmake b/3rdparty/plibsys/platforms/win32-borland/platform.cmake new file mode 100644 index 0000000..564ae9a --- /dev/null +++ b/3rdparty/plibsys/platforms/win32-borland/platform.cmake @@ -0,0 +1,8 @@ +set (PLIBSYS_THREAD_MODEL win) +set (PLIBSYS_IPC_MODEL win) +set (PLIBSYS_TIME_PROFILER_MODEL win) +set (PLIBSYS_DIR_MODEL win) +set (PLIBSYS_LIBRARYLOADER_MODEL win) + +set (PLIBSYS_PLATFORM_CFLAGS "-w-8065 -w-8008 -w-8057 -w-8059 -w-8066 -w-8004") +set (PLIBSYS_PLATFORM_LINK_LIBRARIES ws2_32) diff --git a/3rdparty/plibsys/platforms/win32-clang/platform.cmake b/3rdparty/plibsys/platforms/win32-clang/platform.cmake new file mode 100644 index 0000000..bd115ff --- /dev/null +++ b/3rdparty/plibsys/platforms/win32-clang/platform.cmake @@ -0,0 +1,8 @@ +set (PLIBSYS_THREAD_MODEL win) +set (PLIBSYS_IPC_MODEL win) +set (PLIBSYS_TIME_PROFILER_MODEL win) +set (PLIBSYS_DIR_MODEL win) +set (PLIBSYS_LIBRARYLOADER_MODEL win) + +set (PLIBSYS_PLATFORM_CFLAGS "-Wno-missing-braces -Wmissing-field-initializers") +set (PLIBSYS_PLATFORM_LINK_LIBRARIES ws2_32) diff --git a/3rdparty/plibsys/platforms/win32-gcc/platform.cmake b/3rdparty/plibsys/platforms/win32-gcc/platform.cmake new file mode 100644 index 0000000..05ac5d8 --- /dev/null +++ b/3rdparty/plibsys/platforms/win32-gcc/platform.cmake @@ -0,0 +1,7 @@ +set (PLIBSYS_THREAD_MODEL win) +set (PLIBSYS_IPC_MODEL win) +set (PLIBSYS_TIME_PROFILER_MODEL win) +set (PLIBSYS_DIR_MODEL win) +set (PLIBSYS_LIBRARYLOADER_MODEL win) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES ws2_32) diff --git a/3rdparty/plibsys/platforms/win32-icc/platform.cmake b/3rdparty/plibsys/platforms/win32-icc/platform.cmake new file mode 100644 index 0000000..05ac5d8 --- /dev/null +++ b/3rdparty/plibsys/platforms/win32-icc/platform.cmake @@ -0,0 +1,7 @@ +set (PLIBSYS_THREAD_MODEL win) +set (PLIBSYS_IPC_MODEL win) +set (PLIBSYS_TIME_PROFILER_MODEL win) +set (PLIBSYS_DIR_MODEL win) +set (PLIBSYS_LIBRARYLOADER_MODEL win) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES ws2_32) diff --git a/3rdparty/plibsys/platforms/win32-msvc/platform.cmake b/3rdparty/plibsys/platforms/win32-msvc/platform.cmake new file mode 100644 index 0000000..05ac5d8 --- /dev/null +++ b/3rdparty/plibsys/platforms/win32-msvc/platform.cmake @@ -0,0 +1,7 @@ +set (PLIBSYS_THREAD_MODEL win) +set (PLIBSYS_IPC_MODEL win) +set (PLIBSYS_TIME_PROFILER_MODEL win) +set (PLIBSYS_DIR_MODEL win) +set (PLIBSYS_LIBRARYLOADER_MODEL win) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES ws2_32) diff --git a/3rdparty/plibsys/platforms/win32-watcom/platform.cmake b/3rdparty/plibsys/platforms/win32-watcom/platform.cmake new file mode 100644 index 0000000..ef5a855 --- /dev/null +++ b/3rdparty/plibsys/platforms/win32-watcom/platform.cmake @@ -0,0 +1,11 @@ +set (PLIBSYS_THREAD_MODEL win) +set (PLIBSYS_IPC_MODEL win) +set (PLIBSYS_TIME_PROFILER_MODEL win) +set (PLIBSYS_DIR_MODEL win) +set (PLIBSYS_LIBRARYLOADER_MODEL win) + +if (NOT PLIBSYS_SIZEOF_VOID_P) + set (PLIBSYS_SIZEOF_VOID_P 4) +endif() + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES ws2_32) diff --git a/3rdparty/plibsys/platforms/win64-clang/platform.cmake b/3rdparty/plibsys/platforms/win64-clang/platform.cmake new file mode 100644 index 0000000..bd115ff --- /dev/null +++ b/3rdparty/plibsys/platforms/win64-clang/platform.cmake @@ -0,0 +1,8 @@ +set (PLIBSYS_THREAD_MODEL win) +set (PLIBSYS_IPC_MODEL win) +set (PLIBSYS_TIME_PROFILER_MODEL win) +set (PLIBSYS_DIR_MODEL win) +set (PLIBSYS_LIBRARYLOADER_MODEL win) + +set (PLIBSYS_PLATFORM_CFLAGS "-Wno-missing-braces -Wmissing-field-initializers") +set (PLIBSYS_PLATFORM_LINK_LIBRARIES ws2_32) diff --git a/3rdparty/plibsys/platforms/win64-gcc/platform.cmake b/3rdparty/plibsys/platforms/win64-gcc/platform.cmake new file mode 100644 index 0000000..05ac5d8 --- /dev/null +++ b/3rdparty/plibsys/platforms/win64-gcc/platform.cmake @@ -0,0 +1,7 @@ +set (PLIBSYS_THREAD_MODEL win) +set (PLIBSYS_IPC_MODEL win) +set (PLIBSYS_TIME_PROFILER_MODEL win) +set (PLIBSYS_DIR_MODEL win) +set (PLIBSYS_LIBRARYLOADER_MODEL win) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES ws2_32) diff --git a/3rdparty/plibsys/platforms/win64-icc/platform.cmake b/3rdparty/plibsys/platforms/win64-icc/platform.cmake new file mode 100644 index 0000000..05ac5d8 --- /dev/null +++ b/3rdparty/plibsys/platforms/win64-icc/platform.cmake @@ -0,0 +1,7 @@ +set (PLIBSYS_THREAD_MODEL win) +set (PLIBSYS_IPC_MODEL win) +set (PLIBSYS_TIME_PROFILER_MODEL win) +set (PLIBSYS_DIR_MODEL win) +set (PLIBSYS_LIBRARYLOADER_MODEL win) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES ws2_32) diff --git a/3rdparty/plibsys/platforms/win64-msvc/platform.cmake b/3rdparty/plibsys/platforms/win64-msvc/platform.cmake new file mode 100644 index 0000000..05ac5d8 --- /dev/null +++ b/3rdparty/plibsys/platforms/win64-msvc/platform.cmake @@ -0,0 +1,7 @@ +set (PLIBSYS_THREAD_MODEL win) +set (PLIBSYS_IPC_MODEL win) +set (PLIBSYS_TIME_PROFILER_MODEL win) +set (PLIBSYS_DIR_MODEL win) +set (PLIBSYS_LIBRARYLOADER_MODEL win) + +set (PLIBSYS_PLATFORM_LINK_LIBRARIES ws2_32) |