diff options
| author | kinichiro <kinichiro.inoguchi@gmail.com> | 2017-01-15 18:09:13 +0900 |
|---|---|---|
| committer | kinichiro <kinichiro.inoguchi@gmail.com> | 2017-01-15 22:12:39 +0900 |
| commit | 1d934cd2d85872728c8e17a4f5afed5582980eb3 (patch) | |
| tree | 8372fad1e7af184266826d66d72820c0c8d5403e | |
| parent | 6db42999415c48d96d2498a6ac51cd233a308fd2 (diff) | |
| download | portable-1d934cd2d85872728c8e17a4f5afed5582980eb3.tar.gz portable-1d934cd2d85872728c8e17a4f5afed5582980eb3.tar.bz2 portable-1d934cd2d85872728c8e17a4f5afed5582980eb3.zip | |
Fix to use -export-symbols for libcrypto
- generating platform specific crypto/crypto_portable.sym from crypto.sym
| -rw-r--r-- | configure.ac | 2 | ||||
| -rw-r--r-- | crypto/Makefile.am | 3 | ||||
| -rw-r--r-- | m4/check-libc.m4 | 70 |
3 files changed, 74 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac index f15e746..d1ad543 100644 --- a/configure.ac +++ b/configure.ac | |||
| @@ -54,6 +54,8 @@ CHECK_CRYPTO_COMPAT | |||
| 54 | CHECK_VA_COPY | 54 | CHECK_VA_COPY |
| 55 | CHECK_B64_NTOP | 55 | CHECK_B64_NTOP |
| 56 | 56 | ||
| 57 | GENERATE_CRYPTO_PORTABLE_SYM | ||
| 58 | |||
| 57 | AC_ARG_WITH([openssldir], | 59 | AC_ARG_WITH([openssldir], |
| 58 | AS_HELP_STRING([--with-openssldir], | 60 | AS_HELP_STRING([--with-openssldir], |
| 59 | [Set the default openssl directory]), | 61 | [Set the default openssl directory]), |
diff --git a/crypto/Makefile.am b/crypto/Makefile.am index ccbbce1..1b5198f 100644 --- a/crypto/Makefile.am +++ b/crypto/Makefile.am | |||
| @@ -10,11 +10,12 @@ lib_LTLIBRARIES = libcrypto.la | |||
| 10 | EXTRA_DIST = VERSION | 10 | EXTRA_DIST = VERSION |
| 11 | EXTRA_DIST += CMakeLists.txt | 11 | EXTRA_DIST += CMakeLists.txt |
| 12 | EXTRA_DIST += crypto.def | 12 | EXTRA_DIST += crypto.def |
| 13 | EXTRA_DIST += crypto.sym | ||
| 13 | 14 | ||
| 14 | # needed for a CMake target | 15 | # needed for a CMake target |
| 15 | EXTRA_DIST += compat/strcasecmp.c | 16 | EXTRA_DIST += compat/strcasecmp.c |
| 16 | 17 | ||
| 17 | libcrypto_la_LDFLAGS = -version-info @LIBCRYPTO_VERSION@ -no-undefined | 18 | libcrypto_la_LDFLAGS = -version-info @LIBCRYPTO_VERSION@ -no-undefined -export-symbols $(top_srcdir)/crypto/crypto_portable.sym |
| 18 | libcrypto_la_LIBADD = libcompat.la | 19 | libcrypto_la_LIBADD = libcompat.la |
| 19 | if !HAVE_EXPLICIT_BZERO | 20 | if !HAVE_EXPLICIT_BZERO |
| 20 | libcrypto_la_LIBADD += libcompatnoopt.la | 21 | libcrypto_la_LIBADD += libcompatnoopt.la |
diff --git a/m4/check-libc.m4 b/m4/check-libc.m4 index 466a70e..b58f0b1 100644 --- a/m4/check-libc.m4 +++ b/m4/check-libc.m4 | |||
| @@ -141,3 +141,73 @@ if test "x$ac_cv_have___va_copy" = "xyes" ; then | |||
| 141 | AC_DEFINE([HAVE___VA_COPY], [1], [Define if __va_copy exists]) | 141 | AC_DEFINE([HAVE___VA_COPY], [1], [Define if __va_copy exists]) |
| 142 | fi | 142 | fi |
| 143 | ]) | 143 | ]) |
| 144 | |||
| 145 | AC_DEFUN([GENERATE_CRYPTO_PORTABLE_SYM], [ | ||
| 146 | crypto_sym=$srcdir/crypto/crypto.sym | ||
| 147 | crypto_p_sym=$srcdir/crypto/crypto_portable.sym | ||
| 148 | echo "generating $crypto_p_sym ..." | ||
| 149 | chmod u+w $srcdir/crypto | ||
| 150 | cp $crypto_sym $crypto_p_sym | ||
| 151 | chmod u+w $crypto_p_sym | ||
| 152 | if test "x$ac_cv_func_arc4random" = "xno" ; then | ||
| 153 | echo arc4random >> $crypto_p_sym | ||
| 154 | fi | ||
| 155 | if test "x$ac_cv_func_arc4random_buf" = "xno" ; then | ||
| 156 | echo arc4random_buf >> $crypto_p_sym | ||
| 157 | fi | ||
| 158 | if test "x$ac_cv_func_arc4random_uniform" = "xno" ; then | ||
| 159 | echo arc4random_uniform >> $crypto_p_sym | ||
| 160 | fi | ||
| 161 | if test "x$ac_cv_func_asprintf" = "xno" ; then | ||
| 162 | echo asprintf >> $crypto_p_sym | ||
| 163 | echo vasprintf >> $crypto_p_sym | ||
| 164 | fi | ||
| 165 | if test "x$ac_cv_func_explicit_bzero" = "xno" ; then | ||
| 166 | echo explicit_bzero >> $crypto_p_sym | ||
| 167 | fi | ||
| 168 | if test "x$ac_cv_func_getentropy" = "xno" ; then | ||
| 169 | echo getentropy >> $crypto_p_sym | ||
| 170 | fi | ||
| 171 | if test "x$ac_cv_func_inet_pton" = "xno" ; then | ||
| 172 | echo inet_pton >> $crypto_p_sym | ||
| 173 | fi | ||
| 174 | if test "x$ac_cv_func_reallocarray" = "xno" ; then | ||
| 175 | echo reallocarray >> $crypto_p_sym | ||
| 176 | fi | ||
| 177 | if test "x$ac_cv_func_strlcat" = "xno" ; then | ||
| 178 | echo strlcat >> $crypto_p_sym | ||
| 179 | fi | ||
| 180 | if test "x$ac_cv_func_strlcpy" = "xno" ; then | ||
| 181 | echo strlcpy >> $crypto_p_sym | ||
| 182 | fi | ||
| 183 | if test "x$ac_cv_func_strndup" = "xno" ; then | ||
| 184 | echo strndup >> $crypto_p_sym | ||
| 185 | fi | ||
| 186 | if test "x$ac_cv_func_strnlen" = "xno" ; then | ||
| 187 | echo strnlen >> $crypto_p_sym | ||
| 188 | fi | ||
| 189 | if test "x$ac_cv_func_timegm" = "xno" ; then | ||
| 190 | echo timegm >> $crypto_p_sym | ||
| 191 | fi | ||
| 192 | if test "x$ac_cv_func_timingsafe_bcmp" = "xno" ; then | ||
| 193 | echo timingsafe_bcmp >> $crypto_p_sym | ||
| 194 | fi | ||
| 195 | if test "x$ac_cv_func_timingsafe_memcmp" = "xno" ; then | ||
| 196 | echo timingsafe_memcmp >> $crypto_p_sym | ||
| 197 | fi | ||
| 198 | if test "x$HOST_OS" = "xwin" ; then | ||
| 199 | echo posix_perror >> $crypto_p_sym | ||
| 200 | echo posix_fopen >> $crypto_p_sym | ||
| 201 | echo posix_fgets >> $crypto_p_sym | ||
| 202 | echo posix_rename >> $crypto_p_sym | ||
| 203 | echo posix_connect >> $crypto_p_sym | ||
| 204 | echo posix_close >> $crypto_p_sym | ||
| 205 | echo posix_read >> $crypto_p_sym | ||
| 206 | echo posix_write >> $crypto_p_sym | ||
| 207 | echo posix_getsockopt >> $crypto_p_sym | ||
| 208 | echo posix_setsockopt >> $crypto_p_sym | ||
| 209 | |||
| 210 | grep -v BIO_s_log $crypto_p_sym > $crypto_p_sym.tmp | ||
| 211 | mv $crypto_p_sym.tmp $crypto_p_sym | ||
| 212 | fi | ||
| 213 | ]) | ||
