Skip to content

Commit

Permalink
Build System.Native for AIX/i (#11896)
Browse files Browse the repository at this point in the history
This will probably be needed in the future; and attempts to solve
the issue with System.Random not working when running under Jenkins.
  • Loading branch information
NattyNarwhal authored and akoeplinger committed Dec 3, 2018
1 parent bfb3141 commit 3f3c217
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 1 deletion.
17 changes: 17 additions & 0 deletions configure.ac
Expand Up @@ -5905,6 +5905,22 @@ elif test x$host_linux = xyes; then
AC_MSG_RESULT(linux)

MONO_NATIVE_PLATFORM_TYPE="MONO_NATIVE_PLATFORM_TYPE_LINUX"
elif case $host_os in aix*|os400*) true;; *) false;; esac; then
mono_native_text="AIX"
MONO_NATIVE_CC=$CC
MONO_NATIVE_CXX=$CXX
MONO_NATIVE_CPPFLAGS=$CPPFLAGS
MONO_NATIVE_CXXFLAGS=$CXXFLAGS
MONO_NATIVE_CFLAGS=$CFLAGS
MONO_NATIVE_LDFLAGS=$LDFLAGS

mono_native=yes
mono_native_compat=no
MONO_NATIVE_PLATFORM=aix
AC_MSG_CHECKING([Mono.Native support])
AC_MSG_RESULT(aix)

MONO_NATIVE_PLATFORM_TYPE="MONO_NATIVE_PLATFORM_TYPE_AIX"
else
mono_native=no
mono_native_text="no"
Expand Down Expand Up @@ -5937,6 +5953,7 @@ AM_CONDITIONAL(MONO_NATIVE_COMPAT, test x$mono_native_compat = xyes)
AM_CONDITIONAL(MONO_NATIVE_PLATFORM_MACOS, test x$MONO_NATIVE_PLATFORM = xmacos)
AM_CONDITIONAL(MONO_NATIVE_PLATFORM_IOS, test x$MONO_NATIVE_PLATFORM = xios)
AM_CONDITIONAL(MONO_NATIVE_PLATFORM_LINUX, test x$MONO_NATIVE_PLATFORM = xlinux)
AM_CONDITIONAL(MONO_NATIVE_PLATFORM_AIX, test x$MONO_NATIVE_PLATFORM = xaix)

MONO_NATIVE_PLATFORM_TYPE_COMPAT="$MONO_NATIVE_PLATFORM_TYPE | MONO_NATIVE_PLATFORM_TYPE_COMPAT"
MONO_NATIVE_PLATFORM_TYPE_UNIFIED="$MONO_NATIVE_PLATFORM_TYPE | MONO_NATIVE_PLATFORM_TYPE_UNIFIED"
Expand Down
1 change: 1 addition & 0 deletions mcs/class/corlib/Mono/MonoNativePlatformType.cs
Expand Up @@ -35,6 +35,7 @@ enum MonoNativePlatformType
MONO_NATIVE_PLATFORM_TYPE_MACOS = 1,
MONO_NATIVE_PLATFORM_TYPE_IOS = 2,
MONO_NATIVE_PLATFORM_TYPE_LINUX = 3,
MONO_NATIVE_PLATFORM_TYPE_AIX = 4,

MONO_NATIVE_PLATFORM_TYPE_IPHONE = 0x100,
MONO_NATIVE_PLATFORM_TYPE_TV = 0x200,
Expand Down
3 changes: 2 additions & 1 deletion mono/native/mono-native-platform.h
Expand Up @@ -2,13 +2,14 @@

#include "mono/utils/mono-publib.h"

// Keep in sync with mcs/class/System/Mono/MonoNativePlatformType.cs
// Keep in sync with mcs/class/corlib/Mono/MonoNativePlatformType.cs

typedef enum {
MONO_NATIVE_PLATFORM_TYPE_UNKNOWN = 0,
MONO_NATIVE_PLATFORM_TYPE_MACOS = 1,
MONO_NATIVE_PLATFORM_TYPE_IOS = 2,
MONO_NATIVE_PLATFORM_TYPE_LINUX = 3,
MONO_NATIVE_PLATFORM_TYPE_AIX = 4,

MONO_NATIVE_PLATFORM_TYPE_IPHONE = 0x100,
MONO_NATIVE_PLATFORM_TYPE_TV = 0x200,
Expand Down

0 comments on commit 3f3c217

Please sign in to comment.