Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BoringTLS #7

Closed
NattyNarwhal opened this issue Feb 27, 2018 · 8 comments
Closed

BoringTLS #7

NattyNarwhal opened this issue Feb 27, 2018 · 8 comments
Labels
os: aix This issue affects AIX os: i This issue affects i os: linux/ppc64 This issue big endian PPC64 Linux too type: bug Something isn't working

Comments

@NattyNarwhal
Copy link
Member

Mono's managed TLS stack is deprecated and only supports TLS 1.0. BoringTLS requires cmake (installed) and will likely need some tweaking. Luckily, z Linux Mono maintainers have commited big endian fixes.

@NattyNarwhal NattyNarwhal added type: enhancement New feature or request os: aix This issue affects AIX os: i This issue affects i area: toolchain This issue involves the toolchain and packaging process labels Feb 27, 2018
@NattyNarwhal
Copy link
Member Author

Truncated log of progress. Right now, we're having issues linking?

[ 86%] Building C object CMakeFiles/mono-btls-shared.dir/btls-x509-chain.c.o
[ 86%] Building C object CMakeFiles/mono-btls-shared.dir/btls-x509-crl.c.o
[ 86%] Building C object CMakeFiles/mono-btls-shared.dir/btls-x509-lookup.c.o
[ 86%] Building C object CMakeFiles/mono-btls-shared.dir/btls-x509-lookup-mono.c.o
[ 87%] Building C object CMakeFiles/mono-btls-shared.dir/btls-x509-name.c.o
[ 87%] Building C object CMakeFiles/mono-btls-shared.dir/btls-x509-revoked.c.o
[ 87%] Building C object CMakeFiles/mono-btls-shared.dir/btls-x509-store-ctx.c.o
[ 88%] Building C object CMakeFiles/mono-btls-shared.dir/btls-x509-store.c.o
[ 88%] Building C object CMakeFiles/mono-btls-shared.dir/btls-x509-verify-param.c.o
[ 88%] Building C object CMakeFiles/mono-btls-shared.dir/btls-x509.c.o
[ 88%] Linking C shared library libmono-btls-shared.so
gmake[6]: Leaving directory '/opt/monodev/mono/mono/btls/build-shared'
[ 88%] Built target mono-btls-shared
gmake[6]: Entering directory '/opt/monodev/mono/mono/btls/build-shared'
Scanning dependencies of target crypto
gmake[6]: Leaving directory '/opt/monodev/mono/mono/btls/build-shared'
gmake[6]: Entering directory '/opt/monodev/mono/mono/btls/build-shared'
[ 88%] Building C object boringssl/crypto/CMakeFiles/crypto.dir/cpu-aarch64-linux.c.o
[ 89%] Building C object boringssl/crypto/CMakeFiles/crypto.dir/cpu-arm.c.o
[ 89%] Building C object boringssl/crypto/CMakeFiles/crypto.dir/cpu-arm-linux.c.o
[ 89%] Building C object boringssl/crypto/CMakeFiles/crypto.dir/cpu-intel.c.o
[ 89%] Building C object boringssl/crypto/CMakeFiles/crypto.dir/crypto.c.o
/opt/monodev/mono/external/boringssl/crypto/crypto.c: In function 'CRYPTO_library_init':
/opt/monodev/mono/external/boringssl/crypto/crypto.c:124:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/crypto.c: In function 'CRYPTO_is_confidential_build':
/opt/monodev/mono/external/boringssl/crypto/crypto.c:132:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/crypto.c: In function 'CRYPTO_has_asm':
/opt/monodev/mono/external/boringssl/crypto/crypto.c:140:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/crypto.c: In function 'SSLeay_version':
/opt/monodev/mono/external/boringssl/crypto/crypto.c:144:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/crypto.c: In function 'SSLeay':
/opt/monodev/mono/external/boringssl/crypto/crypto.c:148:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/crypto.c: In function 'CRYPTO_malloc_init':
/opt/monodev/mono/external/boringssl/crypto/crypto.c:152:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/crypto.c: In function 'ENGINE_load_builtin_engines':
/opt/monodev/mono/external/boringssl/crypto/crypto.c:154:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 void ENGINE_load_builtin_engines(void) {}
 ^~~~
/opt/monodev/mono/external/boringssl/crypto/crypto.c: In function 'OPENSSL_load_builtin_modules':
/opt/monodev/mono/external/boringssl/crypto/crypto.c:156:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 void OPENSSL_load_builtin_modules(void) {}
 ^~~~
/opt/monodev/mono/external/boringssl/crypto/crypto.c: In function 'FIPS_mode':
/opt/monodev/mono/external/boringssl/crypto/crypto.c:158:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 int FIPS_mode(void) { return 0; }
 ^~~
[ 90%] Building C object boringssl/crypto/CMakeFiles/crypto.dir/ex_data.c.o
/opt/monodev/mono/external/boringssl/crypto/ex_data.c: In function 'CRYPTO_get_ex_new_index':
/opt/monodev/mono/external/boringssl/crypto/ex_data.c:168:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/ex_data.c: In function 'CRYPTO_set_ex_data':
/opt/monodev/mono/external/boringssl/crypto/ex_data.c:193:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/ex_data.c: In function 'CRYPTO_get_ex_data':
/opt/monodev/mono/external/boringssl/crypto/ex_data.c:200:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/ex_data.c: In function 'CRYPTO_new_ex_data':
/opt/monodev/mono/external/boringssl/crypto/ex_data.c:232:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/ex_data.c: In function 'CRYPTO_dup_ex_data':
/opt/monodev/mono/external/boringssl/crypto/ex_data.c:262:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/ex_data.c: In function 'CRYPTO_free_ex_data':
/opt/monodev/mono/external/boringssl/crypto/ex_data.c:292:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/ex_data.c: In function 'CRYPTO_cleanup_all_ex_data':
/opt/monodev/mono/external/boringssl/crypto/ex_data.c:294:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 void CRYPTO_cleanup_all_ex_data(void) {}
 ^~~~
[ 90%] Building C object boringssl/crypto/CMakeFiles/crypto.dir/mem.c.o
/opt/monodev/mono/external/boringssl/crypto/mem.c: In function 'OPENSSL_realloc_clean':
/opt/monodev/mono/external/boringssl/crypto/mem.c:111:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/mem.c: In function 'OPENSSL_cleanse':
/opt/monodev/mono/external/boringssl/crypto/mem.c:126:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/mem.c: In function 'CRYPTO_memcmp':
/opt/monodev/mono/external/boringssl/crypto/mem.c:138:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/mem.c: In function 'OPENSSL_hash32':
/opt/monodev/mono/external/boringssl/crypto/mem.c:155:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/mem.c: In function 'OPENSSL_strnlen':
/opt/monodev/mono/external/boringssl/crypto/mem.c:167:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/mem.c: In function 'OPENSSL_strdup':
/opt/monodev/mono/external/boringssl/crypto/mem.c:183:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 char *OPENSSL_strdup(const char *s) { return strdup(s); }
 ^~~~
/opt/monodev/mono/external/boringssl/crypto/mem.c: In function 'OPENSSL_strcasecmp':
/opt/monodev/mono/external/boringssl/crypto/mem.c:187:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/mem.c: In function 'OPENSSL_strncasecmp':
/opt/monodev/mono/external/boringssl/crypto/mem.c:191:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/mem.c: In function 'BIO_snprintf':
/opt/monodev/mono/external/boringssl/crypto/mem.c:205:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/mem.c: In function 'BIO_vsnprintf':
/opt/monodev/mono/external/boringssl/crypto/mem.c:209:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
[ 90%] Building C object boringssl/crypto/CMakeFiles/crypto.dir/refcount_c11.c.o
[ 90%] Building C object boringssl/crypto/CMakeFiles/crypto.dir/refcount_lock.c.o
/opt/monodev/mono/external/boringssl/crypto/refcount_lock.c: In function 'CRYPTO_refcount_inc':
/opt/monodev/mono/external/boringssl/crypto/refcount_lock.c:35:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/refcount_lock.c: In function 'CRYPTO_refcount_dec_and_test_zero':
/opt/monodev/mono/external/boringssl/crypto/refcount_lock.c:51:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
[ 91%] Building C object boringssl/crypto/CMakeFiles/crypto.dir/thread.c.o
/opt/monodev/mono/external/boringssl/crypto/thread.c: In function 'CRYPTO_num_locks':
/opt/monodev/mono/external/boringssl/crypto/thread.c:72:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 int CRYPTO_num_locks(void) { return 1; }
 ^~~
/opt/monodev/mono/external/boringssl/crypto/thread.c: In function 'CRYPTO_set_locking_callback':
/opt/monodev/mono/external/boringssl/crypto/thread.c:75:47: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
                                               const char *file, int line)) {}
                                               ^~~~~
/opt/monodev/mono/external/boringssl/crypto/thread.c: In function 'CRYPTO_get_locking_callback':
/opt/monodev/mono/external/boringssl/crypto/thread.c:80:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/thread.c: In function 'CRYPTO_set_add_lock_callback':
/opt/monodev/mono/external/boringssl/crypto/thread.c:83:47: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
                                               const char *file, int line)) {}
                                               ^~~~~
/opt/monodev/mono/external/boringssl/crypto/thread.c: In function 'CRYPTO_get_lock_name':
/opt/monodev/mono/external/boringssl/crypto/thread.c:87:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/thread.c: In function 'CRYPTO_THREADID_set_callback':
/opt/monodev/mono/external/boringssl/crypto/thread.c:89:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 int CRYPTO_THREADID_set_callback(void (*func)(CRYPTO_THREADID *)) { return 1; }
 ^~~
/opt/monodev/mono/external/boringssl/crypto/thread.c: In function 'CRYPTO_THREADID_set_numeric':
/opt/monodev/mono/external/boringssl/crypto/thread.c:91:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val) {}
 ^~~~
/opt/monodev/mono/external/boringssl/crypto/thread.c: In function 'CRYPTO_THREADID_set_pointer':
/opt/monodev/mono/external/boringssl/crypto/thread.c:93:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr) {}
 ^~~~
/opt/monodev/mono/external/boringssl/crypto/thread.c: In function 'CRYPTO_THREADID_current':
/opt/monodev/mono/external/boringssl/crypto/thread.c:95:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 void CRYPTO_THREADID_current(CRYPTO_THREADID *id) {}
 ^~~~
/opt/monodev/mono/external/boringssl/crypto/thread.c: In function 'CRYPTO_set_id_callback':
/opt/monodev/mono/external/boringssl/crypto/thread.c:97:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 void CRYPTO_set_id_callback(unsigned long (*func)(void)) {}
 ^~~~
/opt/monodev/mono/external/boringssl/crypto/thread.c: In function 'CRYPTO_set_dynlock_create_callback':
/opt/monodev/mono/external/boringssl/crypto/thread.c:100:5: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
     *dyn_create_function)(const char *file, int line)) {}
     ^
/opt/monodev/mono/external/boringssl/crypto/thread.c: In function 'CRYPTO_set_dynlock_lock_callback':
/opt/monodev/mono/external/boringssl/crypto/thread.c:103:22: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
     int mode, struct CRYPTO_dynlock_value *l, const char *file, int line)) {}
                      ^~~~~~~~~~~~~~~~~~~~
/opt/monodev/mono/external/boringssl/crypto/thread.c: In function 'CRYPTO_set_dynlock_destroy_callback':
/opt/monodev/mono/external/boringssl/crypto/thread.c:106:12: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
     struct CRYPTO_dynlock_value *l, const char *file, int line)) {}
            ^~~~~~~~~~~~~~~~~~~~
/opt/monodev/mono/external/boringssl/crypto/thread.c: In function 'CRYPTO_get_dynlock_create_callback':
/opt/monodev/mono/external/boringssl/crypto/thread.c:111:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/thread.c: In function 'CRYPTO_get_dynlock_lock_callback':
/opt/monodev/mono/external/boringssl/crypto/thread.c:117:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/thread.c: In function 'CRYPTO_get_dynlock_destroy_callback':
/opt/monodev/mono/external/boringssl/crypto/thread.c:122:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
[ 91%] Building C object boringssl/crypto/CMakeFiles/crypto.dir/thread_none.c.o
[ 91%] Building C object boringssl/crypto/CMakeFiles/crypto.dir/thread_pthread.c.o
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c: In function 'CRYPTO_MUTEX_init':
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c:34:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c: In function 'CRYPTO_MUTEX_lock_read':
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c:40:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c: In function 'CRYPTO_MUTEX_lock_write':
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c:46:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c: In function 'CRYPTO_MUTEX_unlock_read':
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c:52:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c: In function 'CRYPTO_MUTEX_unlock_write':
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c:58:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c: In function 'CRYPTO_MUTEX_cleanup':
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c:62:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c: In function 'CRYPTO_STATIC_MUTEX_lock_read':
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c:68:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c: In function 'CRYPTO_STATIC_MUTEX_lock_write':
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c:74:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c: In function 'CRYPTO_STATIC_MUTEX_unlock_read':
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c:80:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c: In function 'CRYPTO_STATIC_MUTEX_unlock_write':
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c:86:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c: In function 'CRYPTO_once':
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c:92:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c: In function 'CRYPTO_get_thread_local':
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c:140:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c: In function 'CRYPTO_set_thread_local':
/opt/monodev/mono/external/boringssl/crypto/thread_pthread.c:174:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
[ 92%] Building C object boringssl/crypto/CMakeFiles/crypto.dir/thread_win.c.o
[ 92%] Building C object boringssl/crypto/CMakeFiles/crypto.dir/time_support.c.o
/opt/monodev/mono/external/boringssl/crypto/time_support.c: In function 'OPENSSL_gmtime':
/opt/monodev/mono/external/boringssl/crypto/time_support.c:78:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/time_support.c: In function 'OPENSSL_gmtime_adj':
/opt/monodev/mono/external/boringssl/crypto/time_support.c:172:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
/opt/monodev/mono/external/boringssl/crypto/time_support.c: In function 'OPENSSL_gmtime_diff':
/opt/monodev/mono/external/boringssl/crypto/time_support.c:206:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
 }
 ^
[ 92%] Linking C static library libcrypto.a
ar: Error 0
ar: 0707-106 Internal error while reading the fixed
        header of archive file libcrypto.a.
ranlib: 0654-601 Execution of ar failed
Usage: ranlib [-t] [-X {32|64|32_64}] [--] file ...
gmake[6]: *** [boringssl/crypto/CMakeFiles/crypto.dir/build.make:946: boringssl/crypto/libcrypto.a] Error 1
gmake[6]: *** Deleting file 'boringssl/crypto/libcrypto.a'
gmake[6]: Leaving directory '/opt/monodev/mono/mono/btls/build-shared'
gmake[5]: *** [CMakeFiles/Makefile2:383: boringssl/crypto/CMakeFiles/crypto.dir/all] Error 2
gmake[5]: Leaving directory '/opt/monodev/mono/mono/btls/build-shared'
gmake[4]: *** [Makefile:84: all] Error 2
gmake[4]: Leaving directory '/opt/monodev/mono/mono/btls/build-shared'
gmake[3]: *** [Makefile:623: build-shared/libmono-btls-shared.so] Error 2
gmake[3]: Leaving directory '/opt/monodev/mono/mono/btls'
gmake[2]: *** [Makefile:484: all-recursive] Error 1
gmake[2]: Leaving directory '/opt/monodev/mono/mono'
gmake[1]: *** [Makefile:558: all-recursive] Error 1
gmake[1]: Leaving directory '/opt/monodev/mono'
gmake: *** [Makefile:488: all] Error 2

The patch:

diff --git a/configure.ac b/configure.ac
index 5c8fe7e..8893f9e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3453,6 +3453,8 @@ case "$host" in
                arch_target=ppc;
                case $host_os in
                  aix*|os400*)
+                       BTLS_SUPPORTED=yes
+                       BTLS_PLATFORM=powerpc
                        dnl on AIX/PASE, shared libraries can be inside archives
                        dnl if they are, we specify them by lib.a(lib.so)
                        dnl we may hardcode 64-bit names at times, but we don't do 32-bit AIX, so
@@ -4539,6 +4541,15 @@ if test "x$enable_btls" = "xyes"; then
        aarch64)
                btls_arch=aarch64
                ;;
+       powerpc)
+               btls_arch=powerpc
+               case $host_os in
+                       aix*|os400*)
+                               dnl be consistent
+                               btls_cflags="$btls_cflags -maix64 -D_ALL_SOURCE -D_THREAD_SAFE -D_REENTRANT"
+                               btls_ldflags="$btls_ldflags -maix64"
+               esac
+               ;;
        android-armv5)
                BTLS_CMAKE_ARGS="-DANDROID_ABI=\"armeabi\" -DANDROID_NATIVE_API_LEVEL=14"
                ;;
diff --git a/external/boringssl b/external/boringssl
--- a/external/boringssl
+++ b/external/boringssl
@@ -1 +1 @@
-Subproject commit 2ba8564f8b677a338bd84a41d5817f6399861031
+Subproject commit 2ba8564f8b677a338bd84a41d5817f6399861031-dirty
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2ba98c0..c81269a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -166,6 +166,8 @@ elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
   set(ARCH "aarch64")
 elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "s390x")
   set(ARCH "s390x")
+elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "powerpc")
+  set(ARCH "powerpc")
 else()
   message(FATAL_ERROR "Unknown processor:" ${CMAKE_SYSTEM_PROCESSOR})
 endif()
diff --git a/include/openssl/thread.h b/include/openssl/thread.h
index 9a96fb4..1900d9e 100644
--- a/include/openssl/thread.h
+++ b/include/openssl/thread.h
@@ -77,7 +77,7 @@ typedef struct crypto_mutex_st {
 typedef union crypto_mutex_st {
   void *handle;
 } CRYPTO_MUTEX;
-#elif defined(__MACH__) && defined(__APPLE__)
+#elif (defined(__MACH__) && defined(__APPLE__)) || defined(_AIX)
 typedef pthread_rwlock_t CRYPTO_MUTEX;
 #else
 /* It is reasonable to include pthread.h on non-Windows systems, however the

@NattyNarwhal
Copy link
Member Author

I've got a working BTLS, though now it bombs out trying to create handles.

@NattyNarwhal
Copy link
Member Author

Mono: DllImport attempting to load: '/opt/mono/lib/../lib/libmono-btls-shared.so'.
Mono: DllImport loaded library '/opt/mono/lib/../lib/libmono-btls-shared.so'.
Mono: DllImport searching in: '/opt/mono/lib/../lib/libmono-btls-shared.so' ('/opt/mono/lib/../lib/libmono-btls-shared.so').
Mono: Searching for 'mono_btls_ssl_ctx_new'.
Mono: Probing 'mono_btls_ssl_ctx_new'.
Mono: Found as 'mono_btls_ssl_ctx_new'.
Stacktrace:

  at <unknown> <0xffffffff>
  at (wrapper managed-to-native) Mono.Btls.MonoBtlsSslCtx.mono_btls_ssl_ctx_new () <0x000f0>
  at Mono.Btls.MonoBtlsSslCtx..ctor () [0x00000] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at Mono.Btls.MonoBtlsContext.InitializeConnection () [0x00000] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at Mono.Btls.MonoBtlsContext.StartHandshake () [0x00000] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at Mono.Net.Security.MobileAuthenticatedStream.ProcessHandshake (Mono.Net.Security.AsyncOperationStatus) [0x00017] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at (wrapper remoting-invoke-with-check) Mono.Net.Security.MobileAuthenticatedStream.ProcessHandshake (Mono.Net.Security.AsyncOperationStatus) [0x00032] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at Mono.Net.Security.AsyncHandshakeRequest.Run (Mono.Net.Security.AsyncOperationStatus) [0x00006] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at Mono.Net.Security.AsyncProtocolRequest/<ProcessOperation>c__async1.MoveNext () [0x0012a] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start<Mono.Net.Security.AsyncProtocolRequest/<ProcessOperation>c__async1> (Mono.Net.Security.AsyncProtocolRequest/<ProcessOperation>c__async1&) [0x00031] in <ed20377020504649863303af004d6a67>:0
  at Mono.Net.Security.AsyncProtocolRequest.ProcessOperation (System.Threading.CancellationToken) [0x0001c] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at Mono.Net.Security.AsyncProtocolRequest/<StartOperation>c__async0.MoveNext () [0x0004f] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<Mono.Net.Security.AsyncProtocolResult>.Start<Mono.Net.Security.AsyncProtocolRequest/<StartOperation>c__async0> (Mono.Net.Security.AsyncProtocolRequest/<StartOperation>c__async0&) [0x00031] in <ed20377020504649863303af004d6a67>:0
  at Mono.Net.Security.AsyncProtocolRequest.StartOperation (System.Threading.CancellationToken) [0x0001c] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at Mono.Net.Security.MobileAuthenticatedStream/<ProcessAuthentication>c__async0.MoveNext () [0x0021e] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start<Mono.Net.Security.MobileAuthenticatedStream/<ProcessAuthentication>c__async0> (Mono.Net.Security.MobileAuthenticatedStream/<ProcessAuthentication>c__async0&) [0x00031] in <ed20377020504649863303af004d6a67>:0
  at Mono.Net.Security.MobileAuthenticatedStream.ProcessAuthentication (bool,bool,string,System.Security.Authentication.SslProtocols,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509CertificateCollection,bool) [0x00050] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at Mono.Net.Security.MobileAuthenticatedStream.AuthenticateAsClientAsync (string,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Security.Authentication.SslProtocols,bool) [0x00000] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at Mono.Net.Security.MonoTlsStream/<CreateStream>c__async0.MoveNext () [0x000f8] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<System.IO.Stream>.Start<Mono.Net.Security.MonoTlsStream/<CreateStream>c__async0> (Mono.Net.Security.MonoTlsStream/<CreateStream>c__async0&) [0x00031] in <ed20377020504649863303af004d6a67>:0
  at Mono.Net.Security.MonoTlsStream.CreateStream (System.Net.WebConnectionTunnel,System.Threading.CancellationToken) [0x00024] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at System.Net.WebConnection/<CreateStream>c__async1.MoveNext () [0x0018f] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<bool>.Start<System.Net.WebConnection/<CreateStream>c__async1> (System.Net.WebConnection/<CreateStream>c__async1&) [0x00031] in <ed20377020504649863303af004d6a67>:0
  at System.Net.WebConnection.CreateStream (System.Net.WebOperation,bool,System.Threading.CancellationToken) [0x0002c] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at System.Net.WebConnection/<InitConnection>c__async2.MoveNext () [0x000f9] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.InvokeMoveNext (object) [0x00000] in <ed20377020504649863303af004d6a67>:0
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x0008d] in <ed20377020504649863303af004d6a67>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in <ed20377020504649863303af004d6a67>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.Run () [0x0003b] in <ed20377020504649863303af004d6a67>:0
  at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction (System.Action,bool,System.Threading.Tasks.Task&) [0x00023] in <ed20377020504649863303af004d6a67>:0
  at System.Threading.Tasks.Task.FinishContinuations () [0x00061] in <ed20377020504649863303af004d6a67>:0
  at System.Threading.Tasks.Task.FinishStageThree () [0x00045] in <ed20377020504649863303af004d6a67>:0
  at System.Threading.Tasks.Task`1<System.Threading.Tasks.VoidTaskResult>.TrySetResult (System.Threading.Tasks.VoidTaskResult) [0x00058] in <ed20377020504649863303af004d6a67>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<System.Threading.Tasks.VoidTaskResult>.SetResult (System.Threading.Tasks.VoidTaskResult) [0x0004b] in <ed20377020504649863303af004d6a67>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<System.Threading.Tasks.VoidTaskResult>.SetResult (System.Threading.Tasks.Task`1<System.Threading.Tasks.VoidTaskResult>) [0x00019] in <ed20377020504649863303af004d6a67>:0
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult () [0x00000] in <ed20377020504649863303af004d6a67>:0
  at System.Net.WebConnection/<Connect>c__async0.MoveNext () [0x002e3] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.InvokeMoveNext (object) [0x00000] in <ed20377020504649863303af004d6a67>:0
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x0008d] in <ed20377020504649863303af004d6a67>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in <ed20377020504649863303af004d6a67>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner.Run () [0x0003b] in <ed20377020504649863303af004d6a67>:0
  at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction (System.Action,bool,System.Threading.Tasks.Task&) [0x00023] in <ed20377020504649863303af004d6a67>:0
  at System.Threading.Tasks.Task.FinishContinuations () [0x00061] in <ed20377020504649863303af004d6a67>:0
  at System.Threading.Tasks.Task.FinishStageThree () [0x00045] in <ed20377020504649863303af004d6a67>:0
  at System.Threading.Tasks.Task`1<System.Threading.Tasks.VoidTaskResult>.TrySetResult (System.Threading.Tasks.VoidTaskResult) [0x00058] in <ed20377020504649863303af004d6a67>:0
  at System.Threading.Tasks.TaskFactory`1<System.Threading.Tasks.VoidTaskResult>.FromAsyncCoreLogic (System.IAsyncResult,System.Func`2<System.IAsyncResult, System.Threading.Tasks.VoidTaskResult>,System.Action`1<System.IAsyncResult>,System.Threading.Tasks.Task`1<System.Threading.Tasks.VoidTaskResult>,bool) [0x0008d] in <ed20377020504649863303af004d6a67>:0
  at System.Threading.Tasks.TaskFactory`1/<FromAsyncImpl>c__AnonStorey2`1<System.Threading.Tasks.VoidTaskResult, System.Net.EndPoint>.<>m__0 (System.IAsyncResult) [0x0000b] in <ed20377020504649863303af004d6a67>:0
  at System.Net.Sockets.SocketAsyncResult.<Complete>m__0 (object) [0x0000b] in <0c9e5dcc12b045df9c953c8451bda265>:0
  at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x00019] in <ed20377020504649863303af004d6a67>:0
  at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00096] in <ed20377020504649863303af004d6a67>:0
  at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in <ed20377020504649863303af004d6a67>:0
  at (wrapper runtime-invoke) <Module>.runtime_invoke_bool (object,intptr,intptr,intptr) [0x0001e] in <ed20377020504649863303af004d6a67>:0

=================================================================
Got a SIGILL while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

IOT/Abort trap (core dumped)

@NattyNarwhal
Copy link
Member Author

"working patch" that gets you to above; use above external submodule patch

diff --git a/configure.ac b/configure.ac
index 5c8fe7e..718e4ee 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3453,6 +3453,8 @@ case "$host" in
                arch_target=ppc;
                case $host_os in
                  aix*|os400*)
+                       BTLS_SUPPORTED=yes
+                       BTLS_PLATFORM=powerpc
                        dnl on AIX/PASE, shared libraries can be inside archives
                        dnl if they are, we specify them by lib.a(lib.so)
                        dnl we may hardcode 64-bit names at times, but we don't do 32-bit AIX, so
@@ -4539,6 +4541,15 @@ if test "x$enable_btls" = "xyes"; then
        aarch64)
                btls_arch=aarch64
                ;;
+       powerpc)
+               btls_arch=powerpc
+               case $host_os in
+                       aix*|os400*)
+                               btls_cflags="$btls_cflags -maix64 -D_ALL_SOURCE -D_THREAD_SAFE -D_REENTRANT"
+                               btls_ldflags="$btls_ldflags -maix64"
+                               BTLS_CMAKE_ARGS="-DCMAKE_AR=/usr/bin/ar -DCMAKE_C_ARCHIVE_CREATE=\"<CMAKE_AR> -X64 cr <TARGET> <LINK_FLAGS> <OBJECTS>\""
+               esac
+               ;;
        android-armv5)
                BTLS_CMAKE_ARGS="-DANDROID_ABI=\"armeabi\" -DANDROID_NATIVE_API_LEVEL=14"
                ;;
diff --git a/external/boringssl b/external/boringssl
--- a/external/boringssl
+++ b/external/boringssl
@@ -1 +1 @@
-Subproject commit 2ba8564f8b677a338bd84a41d5817f6399861031
+Subproject commit 2ba8564f8b677a338bd84a41d5817f6399861031-dirty

@NattyNarwhal NattyNarwhal added type: bug Something isn't working and removed type: enhancement New feature or request area: toolchain This issue involves the toolchain and packaging process labels Feb 27, 2018
@NattyNarwhal
Copy link
Member Author

mono/mono#7403 and mono/boringssl#5 filed. I think we might be blocking on #3 for AIX though, but having PPC upstream will make things easier.

@NattyNarwhal NattyNarwhal added the os: linux/ppc64 This issue big endian PPC64 Linux too label Mar 4, 2018
@NattyNarwhal
Copy link
Member Author

Either the trampoline code is broken still after rebasing onto the PRs, or BTLS is dying very badly inside itself - judging by the call frames I see, likely the latter. This will get ugly.

@NattyNarwhal
Copy link
Member Author

(gdb) run
Starting program: /opt/mono/bin/mono --trace=N:Mono.Btls client.exe https://icanhazip.com
[New Thread 1]
[New Thread 258]
mono_thread_internal_set_priority: pthread_setschedparam failed, error: "Operation not permitted." (1)
[New Thread 515]
mono_thread_internal_set_priority: pthread_setschedparam failed, error: "Operation not permitted." (1)
mono_thread_internal_set_priority: pthread_setschedparam failed, error: "Operation not permitted." (1)
mono_thread_internal_set_priority: pthread_setschedparam failed, error: "Operation not permitted." (1)
mono_thread_internal_set_priority: pthread_setschedparam failed, error: "Operation not permitted." (1)
mono_thread_internal_set_priority: pthread_setschedparam failed, error: "Operation not permitted." (1)
mono_thread_internal_set_priority: pthread_setschedparam failed, error: "Operation not permitted." (1)
[708: 0.00000 0] ENTER: Mono.Btls.MonoBtlsProvider:.ctor ()() ip: 700000002158ae4
[708: 0.00006 0] LEAVE: Mono.Btls.MonoBtlsProvider:.ctor ()
[708: 0.00195 0] ENTER: Mono.Btls.MonoBtlsProvider:get_ID ()() ip: 70000000229f900
[708: 0.00198 0] LEAVE: Mono.Btls.MonoBtlsProvider:get_ID ()[43,2d,18,c9,93,48,4b,90,bf,bf,9f,2a,10,e1,f1,5b,]
[708: 0.01031 0] ENTER: Mono.Btls.MonoBtlsProvider:CreateSslStream (System.IO.Stream,bool,Mono.Security.Interface.MonoTlsSettings)() ip: 7000000022a97a0
[708: 0.01274 1] ENTER: Mono.Btls.MonoBtlsProvider:CreateSslStreamInternal (System.Net.Security.SslStream,System.IO.Stream,bool,Mono.Security.Interface.MonoTlsSettings)() ip: 7000000022aaf78
[708: 0.01291 2] ENTER: (wrapper remoting-invoke-with-check) Mono.Btls.MonoBtlsStream:.ctor (System.IO.Stream,bool,System.Net.Security.SslStream,Mono.Security.Interface.MonoTlsSettings,Mono.Security.Interface.MonoTlsProvider)() ip: 7000000022ab490
[708: 0.01306 3] ENTER: Mono.Btls.MonoBtlsStream:.ctor (System.IO.Stream,bool,System.Net.Security.SslStream,Mono.Security.Interface.MonoTlsSettings,Mono.Security.Interface.MonoTlsProvider)() ip: 7000000022ab65c
[708: 0.01412 3] LEAVE: Mono.Btls.MonoBtlsStream:.ctor (System.IO.Stream,bool,System.Net.Security.SslStream,Mono.Security.Interface.MonoTlsSettings,Mono.Security.Interface.MonoTlsProvider)
[708: 0.01415 2] LEAVE: (wrapper remoting-invoke-with-check) Mono.Btls.MonoBtlsStream:.ctor (System.IO.Stream,bool,System.Net.Security.SslStream,Mono.Security.Interface.MonoTlsSettings,Mono.Security.Interface.MonoTlsProvider)
[708: 0.01417 1] LEAVE: Mono.Btls.MonoBtlsProvider:CreateSslStreamInternal (System.Net.Security.SslStream,System.IO.Stream,bool,Mono.Security.Interface.MonoTlsSettings)[Mono.Btls.MonoBtlsStream:7000000004c95a0]
[708: 0.01455 0] LEAVE: Mono.Btls.MonoBtlsProvider:CreateSslStream (System.IO.Stream,bool,Mono.Security.Interface.MonoTlsSettings)[Mono.Btls.MonoBtlsStream:7000000004c95a0]
[708: 0.02118 0] ENTER: Mono.Btls.MonoBtlsStream:CreateContext (bool,string,System.Security.Authentication.SslProtocols,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509CertificateCollection,bool)() ip: 7000000022ae95c
[708: 0.02141 1] ENTER: Mono.Btls.MonoBtlsContext:.ctor (Mono.Net.Security.MobileAuthenticatedStream,bool,string,System.Security.Authentication.SslProtocols,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509CertificateCollection,bool)() ip: 7000000022afe30
[708: 0.02345 1] LEAVE: Mono.Btls.MonoBtlsContext:.ctor (Mono.Net.Security.MobileAuthenticatedStream,bool,string,System.Security.Authentication.SslProtocols,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509CertificateCollection,bool)
[708: 0.02348 0] LEAVE: Mono.Btls.MonoBtlsStream:CreateContext (bool,string,System.Security.Authentication.SslProtocols,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509CertificateCollection,bool)[Mono.Btls.MonoBtlsContext:7000000004c9768]
[708: 0.03263 0] ENTER: Mono.Btls.MonoBtlsContext:StartHandshake ()() ip: 7000000022b4a44
[New Thread 772]
[New Thread 1029]
[New Thread 1286]
[New Thread 1543]
[New Thread 1800]
[New Thread 2057]
[708: 2.80627 1] ENTER: Mono.Btls.MonoBtlsContext:InitializeConnection ()() ip: 7000000022b9074
[708: 2.80666 2] ENTER: Mono.Btls.MonoBtlsSslCtx:.ctor ()() ip: 7000000022b9568
[708: 2.80688 3] ENTER: (wrapper managed-to-native) Mono.Btls.MonoBtlsSslCtx:mono_btls_ssl_ctx_new ()() ip: 7000000022b9f6c

Program received signal SIGILL, Illegal instruction.
[Switching to Thread 1800]
0x0000000000000000 in ?? ()
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x0900000005d11b80 in ?? ()
#2  0x0900000005e0e390 in ?? ()
#3  0x0900000005e77340 in ?? ()
#4  0x07000000022ba234 in ?? ()
#5  0x07000000022b9f6c in ?? ()
#6  0x07000000022b9568 in ?? ()
#7  0x07000000022b9074 in ?? ()
#8  0x07000000022b4a44 in ?? ()
#9  0x07000000022b48a0 in ?? ()
#10 0x07000000022b4748 in ?? ()
#11 0x07000000022b282c in ?? ()
#12 0x07000000022b21c8 in ?? ()
#13 0x07000000022b1fdc in ?? ()
#14 0x07000000022b1740 in ?? ()
#15 0x07000000022b1484 in ?? ()
#16 0x07000000022b11d0 in ?? ()
#17 0x07000000022aeb88 in ?? ()
#18 0x07000000022ad2a8 in ?? ()
#19 0x07000000022ad0c0 in ?? ()
#20 0x07000000022acdfc in ?? ()
#21 0x07000000022a9ad8 in ?? ()
#22 0x07000000022a94e0 in ?? ()
#23 0x07000000022a9240 in ?? ()
#24 0x070000000229a104 in ?? ()
#25 0x0700000002299698 in ?? ()
#26 0x07000000022994ac in ?? ()
#27 0x07000000022795a4 in ?? ()
#28 0x0700000002269888 in ?? ()
#29 0x070000000222bb64 in ?? ()
#30 0x070000000222b230 in ?? ()
#31 0x07000000022694e4 in ?? ()
#32 0x070000000226485c in ?? ()
#33 0x0700000002262844 in ?? ()
#34 0x07000000022625cc in ?? ()
#35 0x0700000002274f5c in ?? ()
#36 0x0700000002299150 in ?? ()
#37 0x0700000002264f74 in ?? ()
#38 0x0700000002284f4c in ?? ()
#39 0x070000000227c0b4 in ?? ()
#40 0x0700000002269888 in ?? ()
#41 0x070000000222bb64 in ?? ()
#42 0x070000000222b230 in ?? ()
#43 0x07000000022694e4 in ?? ()
#44 0x070000000226485c in ?? ()
#45 0x0700000002262844 in ?? ()
#46 0x07000000022625cc in ?? ()
#47 0x0700000002274f5c in ?? ()
#48 0x07000000022945b0 in ?? ()
#49 0x0700000002294160 in ?? ()
#50 0x0700000002294048 in ?? ()
#51 0x0700000002293f0c in ?? ()
#52 0x07000000022203e0 in ?? ()
#53 0x070000000221f754 in ?? ()
---Type <return> to continue, or q <return> to quit---
#54 0x070000000221f8cc in ?? ()
#55 0x0900000005a2ed48 in mono_jit_runtime_invoke ()
   from /opt/mono/lib/libmonosgen-2.0.a(libmonosgen-2.0.so.1)
#56 0x09000000058506d0 in do_runtime_invoke ()
   from /opt/mono/lib/libmonosgen-2.0.a(libmonosgen-2.0.so.1)
#57 0x09000000059aa33c in worker_callback ()
   from /opt/mono/lib/libmonosgen-2.0.a(libmonosgen-2.0.so.1)
#58 0x09000000059ada80 in worker_thread ()
   from /opt/mono/lib/libmonosgen-2.0.a(libmonosgen-2.0.so.1)
#59 0x09000000058adf3c in start_wrapper ()
   from /opt/mono/lib/libmonosgen-2.0.a(libmonosgen-2.0.so.1)
#60 0x0900000000515d34 in _pthread_body ()
   from /usr/lib/libpthread.a(shr_xpg5_64.o)
#61 0x0000000000000000 in ?? ()

@NattyNarwhal
Copy link
Member Author

BoringTLS now works seemingly as well as it does on Linux. i is untested so far. Still misc issues, but the overall goal of this issue is done, so...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
os: aix This issue affects AIX os: i This issue affects i os: linux/ppc64 This issue big endian PPC64 Linux too type: bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant