From 38c884f205111aaa65c0940a4c805f19821dac02 Mon Sep 17 00:00:00 2001 From: Brent Cook Date: Tue, 23 Apr 2019 01:54:33 -0500 Subject: include -ldl for SHA512 operations --- m4/check-os-options.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/m4/check-os-options.m4 b/m4/check-os-options.m4 index 84116a2..c88c259 100644 --- a/m4/check-os-options.m4 +++ b/m4/check-os-options.m4 @@ -114,7 +114,7 @@ char buf[1]; getentropy(buf, 1); HOST_OS=solaris HOST_ABI=elf CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 -DBSD_COMP" - AC_SUBST([PLATFORM_LDADD], ['-lnsl -lsocket']) + AC_SUBST([PLATFORM_LDADD], ['-ldl -lnsl -lsocket']) ;; *) ;; esac -- cgit v1.2.3-55-g6feb From a7265dd139fbe5162b62777401293ea7b8cac79a Mon Sep 17 00:00:00 2001 From: paul4334 Date: Tue, 30 Apr 2019 16:35:04 -0700 Subject: Fix MacOSX cmake missing symbol _clock_gettime On El Capitan: [exec] [100%] Linking C executable openssl [exec] Undefined symbols for architecture x86_64: [exec] "_clock_gettime", referenced from: [exec] _app_timer_real in apps_posix.c.o [exec] ld: symbol(s) not found for architecture x86_64 [exec] clang: error: linker command failed with exit code 1 (use -v to see invocation) [exec] make[2]: *** [apps/openssl/openssl] Error 1 [exec] make[1]: *** [apps/openssl/CMakeFiles/openssl.dir/all] Error 2 [exec] make: *** [all] Error 2 --- apps/openssl/CMakeLists.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/openssl/CMakeLists.txt b/apps/openssl/CMakeLists.txt index db63ecf..6d89c06 100644 --- a/apps/openssl/CMakeLists.txt +++ b/apps/openssl/CMakeLists.txt @@ -67,6 +67,13 @@ else() set(OPENSSL_SRC ${OPENSSL_SRC} compat/strtonum.c) endif() +if(CMAKE_SYSTEM_NAME MATCHES "Darwin") + check_function_exists(clock_gettime HAVE_CLOCK_GETTIME) + if(NOT HAVE_CLOCK_GETTIME) + set(OPENSSL_SRC ${OPENSSL_SRC} compat/clock_gettime_osx.c) + endif() +endif() + add_executable(openssl ${OPENSSL_SRC}) target_include_directories(openssl PRIVATE . ../../include/compat) target_link_libraries(openssl ${OPENSSL_LIBS}) -- cgit v1.2.3-55-g6feb From 44082746dbb904a78d3f05b9c37608aefbd24d26 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Sat, 4 May 2019 09:15:23 +0200 Subject: Fix getprogname_linux.c for Android API < 21 This diff fixes the build of LibreSSL for Android with API < 21 where the `getprogname` system call was not part of libc. A comment in the diff itself explains in detail the issue. --- crypto/compat/getprogname_linux.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/crypto/compat/getprogname_linux.c b/crypto/compat/getprogname_linux.c index fefe5ea..2c89743 100644 --- a/crypto/compat/getprogname_linux.c +++ b/crypto/compat/getprogname_linux.c @@ -5,5 +5,30 @@ const char * getprogname(void) { + /* + * Android added getprogname with API 21 [0]. We should not end up here + * with APIs bigger than 21. Still write a precise check. + * + * Since Android is using portions of OpenBSD libc, it should have + * a symbol called __progname [1]. + * + * Regarding program_invocation_short_name, it is a GNU libc ext [2] and + * so make it conditional to __GLIBC__ [3]. + * + * .. [0] https://github.com/aosp-mirror/platform_bionic/blob/1eb6d3/libc/include/stdlib.h#L160 + * + * .. [1] https://github.com/aosp-mirror/platform_bionic/commit/692207 + * + * .. [2] https://linux.die.net/man/3/program_invocation_short_name + * + * .. [3] https://android.googlesource.com/platform/system/core/+/2819c0/base/logging.cpp#65 + */ +#if defined(__ANDROID_API__) && __ANDROID_API__ < 21 + extern const char *__progname; + return __progname; +#elif defined(__GLIBC__) return program_invocation_short_name; +#else +#error "Cannot emulate getprogname" +#endif } -- cgit v1.2.3-55-g6feb