Initial build configuration for Haiku (#86303)
authorTrung Nguyen <57174311+trungnt2910@users.noreply.github.com>
Wed, 17 May 2023 15:10:39 +0000 (01:10 +1000)
committerGitHub <noreply@github.com>
Wed, 17 May 2023 15:10:39 +0000 (08:10 -0700)
* Haiku: Initial configuration support

Initially recognize Haiku as a supported platform in
Directory.Build.props and all scripts in eng/**.

* Drop some unused configure values

Drop some unused configure values from tryrun.cmake,
configure.cmake and config.h.in.

* Simplify error message in build.sh

Simplified an error message for the `--os` option to avoid maintaining a duplicate list of OSes.

Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
Directory.Build.props
eng/build.sh
eng/native/configurecompiler.cmake
eng/native/configureplatform.cmake
eng/native/init-distro-rid.sh
eng/native/init-os-and-arch.sh
eng/native/tryrun.cmake
eng/native/tryrun_ios_tvos.cmake
eng/versioning.targets
src/coreclr/pal/src/config.h.in
src/coreclr/pal/src/configure.cmake

index cab8c8d..902f793 100644 (file)
@@ -20,6 +20,7 @@
     <_hostOS Condition="$([MSBuild]::IsOSPlatform('NETBSD'))">netbsd</_hostOS>
     <_hostOS Condition="$([MSBuild]::IsOSPlatform('ILLUMOS'))">illumos</_hostOS>
     <_hostOS Condition="$([MSBuild]::IsOSPlatform('SOLARIS'))">solaris</_hostOS>
+    <_hostOS Condition="$([MSBuild]::IsOSPlatform('HAIKU'))">haiku</_hostOS>
     <_hostOS Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">windows</_hostOS>
     <HostOS>$(_hostOS)</HostOS>
     <TargetOS Condition="'$(TargetOS)' == '' and '$(RuntimeIdentifier)' == 'browser-wasm'">browser</TargetOS>
     <TargetsFreeBSD Condition="'$(TargetOS)' == 'freebsd'">true</TargetsFreeBSD>
     <Targetsillumos Condition="'$(TargetOS)' == 'illumos'">true</Targetsillumos>
     <TargetsSolaris Condition="'$(TargetOS)' == 'solaris'">true</TargetsSolaris>
+    <TargetsHaiku Condition="'$(TargetOS)' == 'haiku'">true</TargetsHaiku>
     <TargetsLinux Condition="'$(TargetOS)' == 'linux' or '$(TargetOS)' == 'android'">true</TargetsLinux>
     <TargetsLinuxBionic Condition="'$(_portableOS)' == 'linux-bionic'">true</TargetsLinuxBionic>
     <TargetsLinuxMusl Condition="'$(_portableOS)' == 'linux-musl'">true</TargetsLinuxMusl>
     <TargetsBrowser Condition="'$(TargetOS)' == 'browser'">true</TargetsBrowser>
     <TargetsWasi Condition="'$(TargetOS)' == 'wasi'">true</TargetsWasi>
     <TargetsWindows Condition="'$(TargetOS)' == 'windows'">true</TargetsWindows>
-    <TargetsUnix Condition="'$(TargetsFreeBSD)' == 'true' or '$(Targetsillumos)' == 'true' or '$(TargetsSolaris)' == 'true' or '$(TargetsLinux)' == 'true' or '$(TargetsNetBSD)' == 'true' or '$(TargetsOSX)' == 'true' or '$(TargetsMacCatalyst)' == 'true' or '$(TargetstvOS)' == 'true' or '$(TargetsiOS)' == 'true' or '$(TargetsAndroid)' == 'true'">true</TargetsUnix>
+    <TargetsUnix Condition="'$(TargetsFreeBSD)' == 'true' or '$(Targetsillumos)' == 'true' or '$(TargetsSolaris)' == 'true' or '$(TargetsHaiku)' == 'true' or '$(TargetsLinux)' == 'true' or '$(TargetsNetBSD)' == 'true' or '$(TargetsOSX)' == 'true' or '$(TargetsMacCatalyst)' == 'true' or '$(TargetstvOS)' == 'true' or '$(TargetsiOS)' == 'true' or '$(TargetsAndroid)' == 'true'">true</TargetsUnix>
   </PropertyGroup>
 
   <PropertyGroup>
                                 '$(UsingMicrosoftNoTargetsSdk)' != 'true' and
                                 '$(UsingMicrosoftTraversalSdk)' != 'true'">true</IsSourceProject>
   </PropertyGroup>
-  
+
   <PropertyGroup Condition="'$(IsReferenceAssemblyProject)' == 'true'">
     <!-- Reference assemblies are special and don't initialize fields or have empty finalizers, etc. -->
     <RunAnalyzers>false</RunAnalyzers>
index 469fd9d..bfe3d35 100755 (executable)
@@ -32,7 +32,7 @@ usage()
   echo "                                  [Default: Debug]"
   echo "  --os                            Target operating system: windows, linux, freebsd, osx, maccatalyst, tvos,"
   echo "                                  tvossimulator, ios, iossimulator, android, browser, wasi, netbsd, illumos, solaris"
-  echo "                                  linux-musl or linux-bionic."
+  echo "                                  linux-musl, linux-bionic or haiku."
   echo "                                  [Default: Your machine's OS.]"
   echo "  --outputrid <rid>               Optional argument that overrides the target rid name."
   echo "  --projects <value>              Project or solution file(s) to build."
@@ -296,9 +296,11 @@ while [[ $# > 0 ]]; do
           os="linux"
           __PortableTargetOS=linux-musl
           ;;
+        haiku)
+          os="haiku" ;;
         *)
           echo "Unsupported target OS '$2'."
-          echo "The allowed values are windows, linux, freebsd, osx, maccatalyst, tvos, tvossimulator, ios, iossimulator, android, browser, wasi, illumos and solaris."
+          echo "Try 'build.sh --help' for values supported by '--os'."
           exit 1
           ;;
       esac
index fbe60f7..ee8e324 100644 (file)
@@ -214,6 +214,9 @@ elseif(CLR_CMAKE_HOST_SUNOS)
 elseif(CLR_CMAKE_HOST_OSX AND NOT CLR_CMAKE_HOST_MACCATALYST AND NOT CLR_CMAKE_HOST_IOS AND NOT CLR_CMAKE_HOST_TVOS)
   add_definitions(-D_XOPEN_SOURCE)
   add_linker_flag("-Wl,-bind_at_load")
+elseif(CLR_CMAKE_HOST_HAIKU)
+  add_compile_options($<$<COMPILE_LANGUAGE:ASM>:-Wa,--noexecstack>)
+  add_linker_flag("-Wl,--no-undefined")
 endif()
 
 #------------------------------------
@@ -332,6 +335,8 @@ if (CLR_CMAKE_HOST_UNIX)
     message("Detected NetBSD amd64")
   elseif(CLR_CMAKE_HOST_SUNOS)
     message("Detected SunOS amd64")
+  elseif(CLR_CMAKE_HOST_HAIKU)
+    message("Detected Haiku x86_64")
   endif(CLR_CMAKE_HOST_OSX OR CLR_CMAKE_HOST_MACCATALYST)
 endif(CLR_CMAKE_HOST_UNIX)
 
@@ -531,7 +536,7 @@ if (CLR_CMAKE_HOST_UNIX)
 
   # We mark the function which needs exporting with DLLEXPORT
   add_compile_options(-fvisibility=hidden)
-  
+
   # Separate functions so linker can remove them.
   add_compile_options(-ffunction-sections)
 
@@ -610,6 +615,8 @@ if(CLR_CMAKE_TARGET_UNIX)
     if(CLR_CMAKE_TARGET_OS_ILLUMOS)
       add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:IGNORE_DEFAULT_TARGET_OS>>>:TARGET_ILLUMOS>)
     endif()
+  elseif(CLR_CMAKE_TARGET_HAIKU)
+    add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:IGNORE_DEFAULT_TARGET_OS>>>:TARGET_HAIKU>)
   endif()
 elseif(CLR_CMAKE_TARGET_WASI)
   add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:IGNORE_DEFAULT_TARGET_OS>>>:TARGET_WASI>)
index 2c47709..2d6e142 100644 (file)
@@ -214,6 +214,12 @@ if(CLR_CMAKE_HOST_OS STREQUAL sunos)
     endif(SUNOS_KERNEL_KIND STREQUAL illumos OR CMAKE_CROSSCOMPILING)
 endif(CLR_CMAKE_HOST_OS STREQUAL sunos)
 
+if(CLR_CMAKE_HOST_OS STREQUAL haiku)
+    set(CLR_CMAKE_HOST_UNIX 1)
+    set(CLR_CMAKE_HOST_UNIX_AMD64 1)
+    set(CLR_CMAKE_HOST_HAIKU 1)
+endif(CLR_CMAKE_HOST_OS STREQUAL haiku)
+
 if(CLR_CMAKE_HOST_OS STREQUAL windows)
     set(CLR_CMAKE_HOST_WIN32 1)
 endif(CLR_CMAKE_HOST_OS STREQUAL windows)
@@ -423,6 +429,11 @@ if(CLR_CMAKE_TARGET_OS STREQUAL sunos)
     set(CLR_CMAKE_TARGET_SUNOS 1)
 endif(CLR_CMAKE_TARGET_OS STREQUAL sunos)
 
+if(CLR_CMAKE_TARGET_OS STREQUAL haiku)
+    set(CLR_CMAKE_TARGET_UNIX 1)
+    set(CLR_CMAKE_TARGET_HAIKU 1)
+endif(CLR_CMAKE_TARGET_OS STREQUAL haiku)
+
 if(CLR_CMAKE_TARGET_OS STREQUAL emscripten)
     set(CLR_CMAKE_TARGET_UNIX 1)
     set(CLR_CMAKE_TARGET_LINUX 1)
index 70503dd..db0e2a5 100644 (file)
@@ -66,6 +66,9 @@ getNonPortableDistroRid()
         __uname_version=$(uname -v)
         __solaris_major_version=$(echo "${__uname_version%.*}")
         nonPortableRid=solaris."$__solaris_major_version"-"$targetArch"
+    elif [ "$targetOs" = "haiku" ]; then
+        __uname_release=$(uname -r)
+        nonPortableRid=haiku.r"$__uname_release"-"$targetArch"
     fi
 
     echo "$(echo $nonPortableRid | tr '[:upper:]' '[:lower:]')"
index 897e895..e693617 100644 (file)
@@ -8,7 +8,7 @@ if command -v getprop && getprop ro.product.system.model 2>&1 | grep -qi android
 fi
 
 case "$OSName" in
-freebsd|linux|netbsd|openbsd|sunos|android)
+freebsd|linux|netbsd|openbsd|sunos|android|haiku)
     os="$OSName" ;;
 darwin)
     os=osx ;;
index 1535b7a..04c6d1a 100644 (file)
@@ -27,12 +27,14 @@ elseif(EXISTS /System/Library/CoreServices)
   set(DARWIN 1)
 elseif(EXISTS ${CROSS_ROOTFS}/etc/tizen-release)
   set(TIZEN 1)
+elseif(EXISTS ${CROSS_ROOTFS}/boot/system/develop/headers/config/HaikuConfig.h)
+  set(HAIKU 1)
+  set(CLR_CMAKE_TARGET_OS haiku)
 endif()
 
 if(DARWIN)
   if(TARGET_ARCH_NAME MATCHES "^(arm64|x64)$")
     set_cache_value(FILE_OPS_CHECK_FERROR_OF_PREVIOUS_CALL_EXITCODE 1)
-    set_cache_value(GETPWUID_R_SETS_ERRNO_EXITCODE 1)
     set_cache_value(HAS_POSIX_SEMAPHORES_EXITCODE 1)
     set_cache_value(HAVE_BROKEN_FIFO_KEVENT_EXITCODE 1)
     set_cache_value(HAVE_BROKEN_FIFO_SELECT_EXITCODE 1)
@@ -54,8 +56,6 @@ if(DARWIN)
     set_cache_value(HAVE_LARGE_SNPRINTF_SUPPORT_EXITCODE 0)
     set_cache_value(HAVE_MMAP_DEV_ZERO_EXITCODE 1)
     set_cache_value(HAVE_PROCFS_CTL_EXITCODE 1)
-    set_cache_value(HAVE_PROCFS_MAPS_EXITCODE 1)
-    set_cache_value(HAVE_PROCFS_STATUS_EXITCODE 1)
     set_cache_value(HAVE_PROCFS_STAT_EXITCODE 1)
     set_cache_value(HAVE_SCHED_GETCPU_EXITCODE 1)
     set_cache_value(HAVE_SCHED_GET_PRIORITY_EXITCODE 0)
@@ -68,16 +68,14 @@ if(DARWIN)
     set_cache_value(PTHREAD_CREATE_MODIFIES_ERRNO_EXITCODE 1)
     set_cache_value(REALPATH_SUPPORTS_NONEXISTENT_FILES_EXITCODE 1)
     set_cache_value(SEM_INIT_MODIFIES_ERRNO_EXITCODE 1)
-    set_cache_value(SSCANF_CANNOT_HANDLE_MISSING_EXPONENT_EXITCODE 1)
     set_cache_value(SSCANF_SUPPORT_ll_EXITCODE 0)
     set_cache_value(UNGETC_NOT_RETURN_EOF_EXITCODE 1)
     set_cache_value(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP_EXITCODE 1)
   else()
     message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only arm64 or x64 is supported for OSX cross build!")
   endif()
-elseif(TARGET_ARCH_NAME MATCHES "^(armel|arm|armv6|arm64|loongarch64|riscv64|s390x|ppc64le|x86|x64)$" OR FREEBSD OR ILLUMOS OR TIZEN)
+elseif(TARGET_ARCH_NAME MATCHES "^(armel|arm|armv6|arm64|loongarch64|riscv64|s390x|ppc64le|x86|x64)$" OR FREEBSD OR ILLUMOS OR TIZEN OR HAIKU)
   set_cache_value(FILE_OPS_CHECK_FERROR_OF_PREVIOUS_CALL_EXITCODE 1)
-  set_cache_value(GETPWUID_R_SETS_ERRNO_EXITCODE 0)
   set_cache_value(HAS_POSIX_SEMAPHORES_EXITCODE 0)
   set_cache_value(HAVE_CLOCK_MONOTONIC_COARSE_EXITCODE 0)
   set_cache_value(HAVE_CLOCK_MONOTONIC_EXITCODE 0)
@@ -94,8 +92,6 @@ elseif(TARGET_ARCH_NAME MATCHES "^(armel|arm|armv6|arm64|loongarch64|riscv64|s39
   set_cache_value(HAVE_LARGE_SNPRINTF_SUPPORT_EXITCODE 0)
   set_cache_value(HAVE_MMAP_DEV_ZERO_EXITCODE 0)
   set_cache_value(HAVE_PROCFS_CTL_EXITCODE 1)
-  set_cache_value(HAVE_PROCFS_MAPS_EXITCODE 0)
-  set_cache_value(HAVE_PROCFS_STATUS_EXITCODE 0)
   set_cache_value(HAVE_PROCFS_STAT_EXITCODE 0)
   set_cache_value(HAVE_SCHED_GETCPU_EXITCODE 0)
   set_cache_value(HAVE_SCHED_GET_PRIORITY_EXITCODE 0)
@@ -112,12 +108,10 @@ elseif(TARGET_ARCH_NAME MATCHES "^(armel|arm|armv6|arm64|loongarch64|riscv64|s39
 
   if(ALPINE_LINUX)
     set_cache_value(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP_EXITCODE 1)
-    set_cache_value(SSCANF_CANNOT_HANDLE_MISSING_EXPONENT_EXITCODE 0)
     set_cache_value(SSCANF_SUPPORT_ll_EXITCODE 1)
     set_cache_value(UNGETC_NOT_RETURN_EOF_EXITCODE 1)
   else()
     set_cache_value(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP_EXITCODE 0)
-    set_cache_value(SSCANF_CANNOT_HANDLE_MISSING_EXPONENT_EXITCODE 1)
     set_cache_value(SSCANF_SUPPORT_ll_EXITCODE 0)
     set_cache_value(UNGETC_NOT_RETURN_EOF_EXITCODE 0)
   endif()
@@ -127,16 +121,12 @@ elseif(TARGET_ARCH_NAME MATCHES "^(armel|arm|armv6|arm64|loongarch64|riscv64|s39
     set_cache_value(HAVE_CLOCK_MONOTONIC 1)
     set_cache_value(HAVE_CLOCK_REALTIME 1)
     set_cache_value(HAVE_BROKEN_FIFO_KEVENT_EXITCODE 1)
-    set_cache_value(HAVE_PROCFS_MAPS 0)
     set_cache_value(HAVE_PROCFS_STAT 0)
-    set_cache_value(HAVE_PROCFS_STATUS_EXITCODE 1)
-    set_cache_value(GETPWUID_R_SETS_ERRNO 0)
     set_cache_value(UNGETC_NOT_RETURN_EOF 0)
     set_cache_value(HAVE_COMPATIBLE_ILOGBNAN 1)
     set_cache_value(HAVE_FUNCTIONAL_PTHREAD_ROBUST_MUTEXES_EXITCODE 0)
     set_cache_value(HAVE_TERMIOS2_EXITCODE 1)
   elseif(ILLUMOS)
-    set_cache_value(GETPWUID_R_SETS_ERRNO_EXITCODE 1)
     set_cache_value(HAVE_COMPATIBLE_ACOS_EXITCODE 1)
     set_cache_value(HAVE_COMPATIBLE_ASIN_EXITCODE 1)
     set_cache_value(HAVE_COMPATIBLE_ATAN2_EXITCODE 1)
@@ -146,7 +136,6 @@ elseif(TARGET_ARCH_NAME MATCHES "^(armel|arm|armv6|arm64|loongarch64|riscv64|s39
     set_cache_value(HAVE_COMPATIBLE_LOG_EXITCODE 1)
     set_cache_value(HAVE_LARGE_SNPRINTF_SUPPORT_EXITCODE 1)
     set_cache_value(HAVE_PROCFS_CTL_EXITCODE 0)
-    set_cache_value(SSCANF_CANNOT_HANDLE_MISSING_EXPONENT_EXITCODE 1)
     set_cache_value(SSCANF_SUPPORT_ll_EXITCODE 1)
     set_cache_value(UNGETC_NOT_RETURN_EOF_EXITCODE 0)
     set_cache_value(COMPILER_SUPPORTS_W_CLASS_MEMACCESS 1)
@@ -156,6 +145,11 @@ elseif(TARGET_ARCH_NAME MATCHES "^(armel|arm|armv6|arm64|loongarch64|riscv64|s39
     set_cache_value(HAVE_TERMIOS2_EXITCODE 1)
   elseif (TIZEN)
     set_cache_value(HAVE_FUNCTIONAL_PTHREAD_ROBUST_MUTEXES_EXITCODE 0)
+  elseif(HAIKU)
+    set_cache_value(HAVE_CLOCK_MONOTONIC_COARSE_EXITCODE 1)
+    set_cache_value(HAVE_COMPATIBLE_EXP_EXITCODE 0)
+    set_cache_value(HAVE_COMPATIBLE_ILOGBNAN_EXITCODE 0)
+    set_cache_value(HAVE_PROCFS_STAT_EXITCODE 1)
   endif()
 else()
   message(FATAL_ERROR "Unsupported platform. OS: ${CMAKE_SYSTEM_NAME}, arch: ${TARGET_ARCH_NAME}")
index 46769ca..378af96 100644 (file)
@@ -11,7 +11,6 @@ set_cache_value(HAVE_CLOCK_MONOTONIC_EXITCODE 0)
 # TODO: these are taken from macOS, check these whether they're correct for iOS
 # some of them are probably not used by what we use from NativeAOT so could be reduced
 set_cache_value(FILE_OPS_CHECK_FERROR_OF_PREVIOUS_CALL_EXITCODE 1)
-set_cache_value(GETPWUID_R_SETS_ERRNO_EXITCODE 1)
 set_cache_value(HAS_POSIX_SEMAPHORES_EXITCODE 1)
 set_cache_value(HAVE_BROKEN_FIFO_KEVENT_EXITCODE 1)
 set_cache_value(HAVE_BROKEN_FIFO_SELECT_EXITCODE 1)
@@ -31,8 +30,6 @@ set_cache_value(HAVE_FUNCTIONAL_PTHREAD_ROBUST_MUTEXES_EXITCODE 1)
 set_cache_value(HAVE_LARGE_SNPRINTF_SUPPORT_EXITCODE 0)
 set_cache_value(HAVE_MMAP_DEV_ZERO_EXITCODE 1)
 set_cache_value(HAVE_PROCFS_CTL_EXITCODE 1)
-set_cache_value(HAVE_PROCFS_MAPS_EXITCODE 1)
-set_cache_value(HAVE_PROCFS_STATUS_EXITCODE 1)
 set_cache_value(HAVE_PROCFS_STAT_EXITCODE 1)
 set_cache_value(HAVE_SCHED_GET_PRIORITY_EXITCODE 0)
 set_cache_value(HAVE_VALID_NEGATIVE_INF_POW_EXITCODE 0)
@@ -44,7 +41,6 @@ set_cache_value(ONE_SHARED_MAPPING_PER_FILEREGION_PER_PROCESS_EXITCODE 1)
 set_cache_value(PTHREAD_CREATE_MODIFIES_ERRNO_EXITCODE 1)
 set_cache_value(REALPATH_SUPPORTS_NONEXISTENT_FILES_EXITCODE 1)
 set_cache_value(SEM_INIT_MODIFIES_ERRNO_EXITCODE 1)
-set_cache_value(SSCANF_CANNOT_HANDLE_MISSING_EXPONENT_EXITCODE 1)
 set_cache_value(SSCANF_SUPPORT_ll_EXITCODE 0)
 set_cache_value(UNGETC_NOT_RETURN_EOF_EXITCODE 1)
 set_cache_value(HAVE_SHM_OPEN_THAT_WORKS_WELL_ENOUGH_WITH_MMAP_EXITCODE 1)
index 47d8cb5..7746e94 100644 (file)
@@ -89,6 +89,7 @@
   <ItemGroup Condition="'$(IsTestProject)' != 'true'">
     <SupportedPlatform Condition="'$(TargetPlatformIdentifier)' == 'illumos'" Include="illumos" />
     <SupportedPlatform Condition="'$(TargetPlatformIdentifier)' == 'solaris'" Include="Solaris" />
+    <SupportedPlatform Condition="'$(TargetPlatformIdentifier)' == 'haiku'" Include="Haiku" />
     <SupportedPlatform Condition="'$(TargetPlatformIdentifier)' != '' and
                                   '$(TargetPlatformIdentifier)' != 'browser' and
                                   '$(TargetPlatformIdentifier)' != 'wasi' and
index 8c0d159..89cbc3e 100644 (file)
 #cmakedefine01 HAVE__SC_AVPHYS_PAGES
 
 #cmakedefine01 REALPATH_SUPPORTS_NONEXISTENT_FILES
-#cmakedefine01 SSCANF_CANNOT_HANDLE_MISSING_EXPONENT
 #cmakedefine01 SSCANF_SUPPORT_ll
 #cmakedefine01 HAVE_LARGE_SNPRINTF_SUPPORT
 #cmakedefine01 HAVE_BROKEN_FIFO_SELECT
 #cmakedefine01 PTHREAD_CREATE_MODIFIES_ERRNO
 #cmakedefine01 SEM_INIT_MODIFIES_ERRNO
 #cmakedefine01 HAVE_PROCFS_CTL
-#cmakedefine01 HAVE_PROCFS_MAPS
 #cmakedefine01 HAVE_PROCFS_STAT
-#cmakedefine01 HAVE_PROCFS_STATUS
 #cmakedefine01 HAVE_COMPATIBLE_ACOS
 #cmakedefine01 HAVE_COMPATIBLE_ASIN
 #cmakedefine01 HAVE_COMPATIBLE_POW
 #cmakedefine01 HAVE_COMPATIBLE_LOG10
 #cmakedefine01 UNGETC_NOT_RETURN_EOF
 #cmakedefine01 HAS_POSIX_SEMAPHORES
-#cmakedefine01 GETPWUID_R_SETS_ERRNO
 #cmakedefine01 FILE_OPS_CHECK_FERROR_OF_PREVIOUS_CALL
 
 #define PAL_THREAD_PRIORITY_MIN 0
index 2d8a9ea..63e67f2 100644 (file)
@@ -213,21 +213,6 @@ check_cxx_source_runs("
 #include <stdio.h>
 #include <stdlib.h>
 
-int main()
-{
-  int ret;
-  float f = 0;
-  char * strin = \"12.34e\";
-
-  ret = sscanf (strin, \"%e\", &f);
-  if (ret <= 0)
-    exit (0);
-  exit(1);
-}" SSCANF_CANNOT_HANDLE_MISSING_EXPONENT)
-check_cxx_source_runs("
-#include <stdio.h>
-#include <stdlib.h>
-
 int main(void) {
   char buf[256] = { 0 };
   snprintf(buf, 0x7fffffff, \"%#x\", 0x12345678);
@@ -643,30 +628,6 @@ int main(void) {
   char path[1024];
 #endif
 
-  sprintf(path, \"/proc/%u/maps\", getpid());
-  fd = open(path, O_RDONLY);
-  if (fd == -1) {
-    exit(1);
-  }
-  exit(0);
-}" HAVE_PROCFS_MAPS)
-set(CMAKE_REQUIRED_LIBRARIES)
-check_cxx_source_runs("
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
-
-int main(void) {
-  int fd;
-#ifdef PATH_MAX
-  char path[PATH_MAX];
-#elif defined(MAXPATHLEN)
-  char path[MAXPATHLEN];
-#else
-  char path[1024];
-#endif
-
   sprintf(path, \"/proc/%u/stat\", getpid());
   fd = open(path, O_RDONLY);
   if (fd == -1) {
@@ -675,29 +636,6 @@ int main(void) {
   exit(0);
 }" HAVE_PROCFS_STAT)
 set(CMAKE_REQUIRED_LIBRARIES)
-check_cxx_source_runs("
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
-
-int main(void) {
-  int fd;
-#ifdef PATH_MAX
-  char path[PATH_MAX];
-#elif defined(MAXPATHLEN)
-  char path[MAXPATHLEN];
-#else
-  char path[1024];
-#endif
-
-  sprintf(path, \"/proc/%u/status\", getpid());
-  fd = open(path, O_RDONLY);
-  if (fd == -1) {
-    exit(1);
-  }
-  exit(0);
-}" HAVE_PROCFS_STATUS)
 set(CMAKE_REQUIRED_LIBRARIES m)
 check_cxx_source_runs("
 #include <math.h>
@@ -948,34 +886,6 @@ int main() {
 }" HAS_POSIX_SEMAPHORES)
 set(CMAKE_REQUIRED_LIBRARIES)
 check_cxx_source_runs("
-#include <sys/types.h>
-#include <pwd.h>
-#include <errno.h>
-#include <unistd.h>
-#include <stdlib.h>
-
-int main(void)
-{
-  struct passwd sPasswd;
-  struct passwd *pPasswd;
-  char buf[1];
-  int bufLen = sizeof(buf)/sizeof(buf[0]);
-  int euid = geteuid();
-  int ret = 0;
-
-  errno = 0; // clear errno
-  ret = getpwuid_r(euid, &sPasswd, buf, bufLen, &pPasswd);
-  if (0 != ret)
-  {
-    if (ERANGE == errno)
-    {
-      return 0;
-    }
-  }
-
-  return 1; // assume errno is NOT set for all other cases
-}" GETPWUID_R_SETS_ERRNO)
-check_cxx_source_runs("
 #include <stdio.h>
 #include <stdlib.h>