aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheo Buehler <tb@openbsd.org>2023-12-14 09:11:27 +0100
committerTheo Buehler <tb@openbsd.org>2023-12-14 09:11:27 +0100
commitf1cfcd5bb3781aafe62ca201b685999804fedced (patch)
tree613dfa61406a6ba33246c04e3bdcafedd574d49f
parent05902e63c9b80d25f4367fb0f8f441669510eb2e (diff)
parent5bb45527ea0bbc22a9b8da4c5990c80f12c5d8de (diff)
downloadportable-f1cfcd5bb3781aafe62ca201b685999804fedced.tar.gz
portable-f1cfcd5bb3781aafe62ca201b685999804fedced.tar.bz2
portable-f1cfcd5bb3781aafe62ca201b685999804fedced.zip
Land #972
-rw-r--r--CMakeLists.txt8
-rw-r--r--apps/nc/CMakeLists.txt2
-rw-r--r--apps/ocspcheck/CMakeLists.txt2
-rw-r--r--apps/openssl/CMakeLists.txt2
-rw-r--r--crypto/CMakeLists.txt112
-rw-r--r--ssl/CMakeLists.txt2
-rw-r--r--tls/CMakeLists.txt30
7 files changed, 66 insertions, 92 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ac3e5a0..bba5a02 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -413,11 +413,11 @@ set(LIBTLS_LIBS tls ${PLATFORM_LIBS})
413 413
414# libraries for regression test 414# libraries for regression test
415if(BUILD_SHARED_LIBS) 415if(BUILD_SHARED_LIBS)
416 set(OPENSSL_TEST_LIBS ssl-static crypto-static ${PLATFORM_LIBS}) 416 set(OPENSSL_TEST_LIBS ssl-static crypto-static ${PLATFORM_LIBS} compat_obj)
417 set(LIBTLS_TEST_LIBS tls-static ${OPENSSL_TEST_LIBS}) 417 set(LIBTLS_TEST_LIBS tls-static ${OPENSSL_TEST_LIBS} tls_compat_obj)
418else() 418else()
419 set(OPENSSL_TEST_LIBS ssl crypto ${PLATFORM_LIBS}) 419 set(OPENSSL_TEST_LIBS ssl crypto ${PLATFORM_LIBS} compat_obj)
420 set(LIBTLS_TEST_LIBS tls ${PLATFORM_LIBS}) 420 set(LIBTLS_TEST_LIBS tls ${PLATFORM_LIBS} compat_obj tls_compat_obj)
421endif() 421endif()
422 422
423if(OPENSSLDIR STREQUAL "") 423if(OPENSSLDIR STREQUAL "")
diff --git a/apps/nc/CMakeLists.txt b/apps/nc/CMakeLists.txt
index 868b797..7bbdb02 100644
--- a/apps/nc/CMakeLists.txt
+++ b/apps/nc/CMakeLists.txt
@@ -40,7 +40,7 @@ target_include_directories(nc
40 PUBLIC 40 PUBLIC
41 ../../include 41 ../../include
42 ${CMAKE_BINARY_DIR}/include) 42 ${CMAKE_BINARY_DIR}/include)
43target_link_libraries(nc ${LIBTLS_LIBS}) 43target_link_libraries(nc ${LIBTLS_LIBS} compat_obj)
44 44
45if(ENABLE_NC) 45if(ENABLE_NC)
46 if(ENABLE_LIBRESSL_INSTALL) 46 if(ENABLE_LIBRESSL_INSTALL)
diff --git a/apps/ocspcheck/CMakeLists.txt b/apps/ocspcheck/CMakeLists.txt
index 41c7845..778e837 100644
--- a/apps/ocspcheck/CMakeLists.txt
+++ b/apps/ocspcheck/CMakeLists.txt
@@ -20,7 +20,7 @@ target_include_directories(ocspcheck
20 PUBLIC 20 PUBLIC
21 ../../include 21 ../../include
22 ${CMAKE_BINARY_DIR}/include) 22 ${CMAKE_BINARY_DIR}/include)
23target_link_libraries(ocspcheck tls ${OPENSSL_LIBS}) 23target_link_libraries(ocspcheck tls ${OPENSSL_LIBS} compat_obj tls_compat_obj)
24 24
25if(ENABLE_LIBRESSL_INSTALL) 25if(ENABLE_LIBRESSL_INSTALL)
26 install(TARGETS ocspcheck DESTINATION ${CMAKE_INSTALL_BINDIR}) 26 install(TARGETS ocspcheck DESTINATION ${CMAKE_INSTALL_BINDIR})
diff --git a/apps/openssl/CMakeLists.txt b/apps/openssl/CMakeLists.txt
index efea217..f2dcf97 100644
--- a/apps/openssl/CMakeLists.txt
+++ b/apps/openssl/CMakeLists.txt
@@ -75,7 +75,7 @@ target_include_directories(openssl
75 PUBLIC 75 PUBLIC
76 ../../include 76 ../../include
77 ${CMAKE_BINARY_DIR}/include) 77 ${CMAKE_BINARY_DIR}/include)
78target_link_libraries(openssl ${OPENSSL_LIBS}) 78target_link_libraries(openssl ${OPENSSL_LIBS} compat_obj)
79 79
80if(ENABLE_LIBRESSL_INSTALL) 80if(ENABLE_LIBRESSL_INSTALL)
81 install(TARGETS openssl DESTINATION ${CMAKE_INSTALL_BINDIR}) 81 install(TARGETS openssl DESTINATION ${CMAKE_INSTALL_BINDIR})
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt
index 8046efe..d545325 100644
--- a/crypto/CMakeLists.txt
+++ b/crypto/CMakeLists.txt
@@ -734,6 +734,8 @@ set(
734 x509/x_all.c 734 x509/x_all.c
735) 735)
736 736
737set(COMPAT_SRC empty.c)
738
737if(UNIX) 739if(UNIX)
738 set(CRYPTO_SRC ${CRYPTO_SRC} crypto_lock.c) 740 set(CRYPTO_SRC ${CRYPTO_SRC} crypto_lock.c)
739 set(CRYPTO_SRC ${CRYPTO_SRC} bio/b_posix.c) 741 set(CRYPTO_SRC ${CRYPTO_SRC} bio/b_posix.c)
@@ -749,38 +751,19 @@ if(WIN32)
749endif() 751endif()
750 752
751if(WIN32) 753if(WIN32)
752 set(CRYPTO_SRC ${CRYPTO_SRC} compat/posix_win.c) 754 set(COMPAT_SRC ${COMPAT_SRC} compat/posix_win.c)
753 set(EXTRA_EXPORT ${EXTRA_EXPORT} gettimeofday)
754 set(EXTRA_EXPORT ${EXTRA_EXPORT} getuid)
755 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_perror)
756 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_fopen)
757 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_fgets)
758 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_open)
759 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_rename)
760 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_connect)
761 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_close)
762 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_read)
763 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_write)
764 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_getsockopt)
765 set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_setsockopt)
766endif() 755endif()
767 756
768if(NOT HAVE_ASPRINTF) 757if(NOT HAVE_ASPRINTF)
769 set(CRYPTO_SRC ${CRYPTO_SRC} compat/bsd-asprintf.c) 758 set(COMPAT_SRC ${COMPAT_SRC} compat/bsd-asprintf.c)
770 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_asprintf)
771 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_vasprintf)
772endif() 759endif()
773 760
774if(NOT HAVE_FREEZERO) 761if(NOT HAVE_FREEZERO)
775 set(CRYPTO_SRC ${CRYPTO_SRC} compat/freezero.c) 762 set(COMPAT_SRC ${COMPAT_SRC} compat/freezero.c)
776 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_freezero)
777endif() 763endif()
778 764
779if(NOT HAVE_GETOPT) 765if(NOT HAVE_GETOPT)
780 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getopt_long.c) 766 set(COMPAT_SRC ${COMPAT_SRC} compat/getopt_long.c)
781 set(EXTRA_EXPORT ${EXTRA_EXPORT} getopt)
782 set(EXTRA_EXPORT ${EXTRA_EXPORT} optarg)
783 set(EXTRA_EXPORT ${EXTRA_EXPORT} optind)
784endif() 767endif()
785 768
786if(NOT HAVE_GETPAGESIZE) 769if(NOT HAVE_GETPAGESIZE)
@@ -798,47 +781,38 @@ if(NOT HAVE_GETPROGNAME)
798endif() 781endif()
799 782
800if(NOT HAVE_REALLOCARRAY) 783if(NOT HAVE_REALLOCARRAY)
801 set(CRYPTO_SRC ${CRYPTO_SRC} compat/reallocarray.c) 784 set(COMPAT_SRC ${COMPAT_SRC} compat/reallocarray.c)
802 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_reallocarray)
803endif() 785endif()
804 786
805if(NOT HAVE_RECALLOCARRAY) 787if(NOT HAVE_RECALLOCARRAY)
806 set(CRYPTO_SRC ${CRYPTO_SRC} compat/recallocarray.c) 788 set(COMPAT_SRC ${COMPAT_SRC} compat/recallocarray.c)
807 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_recallocarray)
808endif() 789endif()
809 790
810if(NOT HAVE_STRCASECMP) 791if(NOT HAVE_STRCASECMP)
811 set(CRYPTO_SRC ${CRYPTO_SRC} compat/strcasecmp.c) 792 set(COMPAT_SRC ${COMPAT_SRC} compat/strcasecmp.c)
812 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strcasecmp)
813endif() 793endif()
814 794
815if(NOT HAVE_STRLCAT) 795if(NOT HAVE_STRLCAT)
816 set(CRYPTO_SRC ${CRYPTO_SRC} compat/strlcat.c) 796 set(COMPAT_SRC ${COMPAT_SRC} compat/strlcat.c)
817 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strlcat)
818endif() 797endif()
819 798
820if(NOT HAVE_STRLCPY) 799if(NOT HAVE_STRLCPY)
821 set(CRYPTO_SRC ${CRYPTO_SRC} compat/strlcpy.c) 800 set(COMPAT_SRC ${COMPAT_SRC} compat/strlcpy.c)
822 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strlcpy)
823endif() 801endif()
824 802
825if(NOT HAVE_STRNDUP) 803if(NOT HAVE_STRNDUP)
826 set(CRYPTO_SRC ${CRYPTO_SRC} compat/strndup.c) 804 set(COMPAT_SRC ${COMPAT_SRC} compat/strndup.c)
827 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strndup)
828 if(NOT HAVE_STRNLEN) 805 if(NOT HAVE_STRNLEN)
829 set(CRYPTO_SRC ${CRYPTO_SRC} compat/strnlen.c) 806 set(COMPAT_SRC ${COMPAT_SRC} compat/strnlen.c)
830 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strnlen)
831 endif() 807 endif()
832endif() 808endif()
833 809
834if(NOT HAVE_STRSEP) 810if(NOT HAVE_STRSEP)
835 set(CRYPTO_SRC ${CRYPTO_SRC} compat/strsep.c) 811 set(COMPAT_SRC ${COMPAT_SRC} compat/strsep.c)
836 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strsep)
837endif() 812endif()
838 813
839if(NOT HAVE_STRTONUM) 814if(NOT HAVE_STRTONUM)
840 set(CRYPTO_SRC ${CRYPTO_SRC} compat/strtonum.c) 815 set(COMPAT_SRC ${COMPAT_SRC} compat/strtonum.c)
841 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_strtonum)
842endif() 816endif()
843 817
844if(NOT HAVE_SYSLOG_R) 818if(NOT HAVE_SYSLOG_R)
@@ -846,57 +820,50 @@ if(NOT HAVE_SYSLOG_R)
846endif() 820endif()
847 821
848if(NOT HAVE_TIMEGM) 822if(NOT HAVE_TIMEGM)
849 set(CRYPTO_SRC ${CRYPTO_SRC} compat/timegm.c) 823 # XXX - Remove after next bump once libtls, ocspcheck, and asn1time are fixed.
850 set(EXTRA_EXPORT ${EXTRA_EXPORT} timegm) 824 set(COMPAT_SRC ${COMPAT_SRC} compat/timegm.c)
851endif() 825endif()
852 826
853if(NOT HAVE_EXPLICIT_BZERO) 827if(NOT HAVE_EXPLICIT_BZERO)
854 if(WIN32) 828 if(WIN32)
855 set(CRYPTO_SRC ${CRYPTO_SRC} compat/explicit_bzero_win.c) 829 set(COMPAT_SRC ${COMPAT_SRC} compat/explicit_bzero_win.c)
856 else() 830 else()
857 set(CRYPTO_SRC ${CRYPTO_SRC} compat/explicit_bzero.c) 831 set(COMPAT_SRC ${COMPAT_SRC} compat/explicit_bzero.c)
858 set_source_files_properties(compat/explicit_bzero.c PROPERTIES COMPILE_FLAGS -O0) 832 set_source_files_properties(compat/explicit_bzero.c PROPERTIES COMPILE_FLAGS -O0)
859 endif() 833 endif()
860 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_explicit_bzero)
861endif() 834endif()
862 835
863if(NOT HAVE_ARC4RANDOM_BUF) 836if(NOT HAVE_ARC4RANDOM_BUF)
864 set(CRYPTO_SRC ${CRYPTO_SRC} compat/arc4random.c) 837 set(COMPAT_SRC ${COMPAT_SRC} compat/arc4random.c)
865 set(CRYPTO_SRC ${CRYPTO_SRC} compat/arc4random_uniform.c) 838 set(COMPAT_SRC ${COMPAT_SRC} compat/arc4random_uniform.c)
866 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_arc4random)
867 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_arc4random_buf)
868 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_arc4random_uniform)
869 839
870 if(NOT HAVE_GETENTROPY) 840 if(NOT HAVE_GETENTROPY)
871 if(WIN32) 841 if(WIN32)
872 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_win.c) 842 set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_win.c)
873 elseif(CMAKE_SYSTEM_NAME MATCHES "AIX") 843 elseif(CMAKE_SYSTEM_NAME MATCHES "AIX")
874 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_aix.c) 844 set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_aix.c)
875 elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") 845 elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
876 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_freebsd.c) 846 set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_freebsd.c)
877 elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX") 847 elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
878 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_hpux.c) 848 set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_hpux.c)
879 elseif(CMAKE_SYSTEM_NAME MATCHES "Linux") 849 elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
880 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_linux.c) 850 set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_linux.c)
881 elseif(CMAKE_SYSTEM_NAME MATCHES "NetBSD") 851 elseif(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
882 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_netbsd.c) 852 set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_netbsd.c)
883 elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin") 853 elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
884 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_osx.c) 854 set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_osx.c)
885 elseif(CMAKE_SYSTEM_NAME MATCHES "SunOS") 855 elseif(CMAKE_SYSTEM_NAME MATCHES "SunOS")
886 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_solaris.c) 856 set(COMPAT_SRC ${COMPAT_SRC} compat/getentropy_solaris.c)
887 endif() 857 endif()
888 set(EXTRA_EXPORT ${EXTRA_EXPORT} getentropy)
889 endif() 858 endif()
890endif() 859endif()
891 860
892if(NOT HAVE_TIMINGSAFE_BCMP) 861if(NOT HAVE_TIMINGSAFE_BCMP)
893 set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_bcmp.c) 862 set(COMPAT_SRC ${COMPAT_SRC} compat/timingsafe_bcmp.c)
894 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_timingsafe_bcmp)
895endif() 863endif()
896 864
897if(NOT HAVE_TIMINGSAFE_MEMCMP) 865if(NOT HAVE_TIMINGSAFE_MEMCMP)
898 set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_memcmp.c) 866 set(COMPAT_SRC ${COMPAT_SRC} compat/timingsafe_memcmp.c)
899 set(EXTRA_EXPORT ${EXTRA_EXPORT} libressl_timingsafe_memcmp)
900endif() 867endif()
901 868
902if(NOT ENABLE_ASM) 869if(NOT ENABLE_ASM)
@@ -919,15 +886,14 @@ foreach(SYM IN LISTS CRYPTO_UNEXPORT)
919 string(REPLACE "${SYM}\n" "" SYMS ${SYMS}) 886 string(REPLACE "${SYM}\n" "" SYMS ${SYMS})
920endforeach() 887endforeach()
921file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym ${SYMS}) 888file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym ${SYMS})
922# XXX should we still be doing this?
923if(EXTRA_EXPORT)
924 list(SORT EXTRA_EXPORT)
925 foreach(SYM IN LISTS EXTRA_EXPORT)
926 file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym "${SYM}\n")
927 endforeach()
928endif()
929 889
930set(LIBTLS_EXTRA_EXPORT ${EXTRA_EXPORT} PARENT_SCOPE) 890add_library(compat_obj OBJECT ${COMPAT_SRC})
891target_include_directories(compat_obj
892 PRIVATE
893 ../include/compat
894 PUBLIC
895 ../include
896 ${CMAKE_BINARY_DIR}/include)
931 897
932add_library(crypto_obj OBJECT ${CRYPTO_SRC}) 898add_library(crypto_obj OBJECT ${CRYPTO_SRC})
933target_include_directories(crypto_obj 899target_include_directories(crypto_obj
@@ -977,7 +943,7 @@ elseif(HOST_X86_64)
977 target_include_directories(crypto_obj PRIVATE bn/arch/amd64) 943 target_include_directories(crypto_obj PRIVATE bn/arch/amd64)
978endif() 944endif()
979 945
980add_library(crypto $<TARGET_OBJECTS:crypto_obj> empty.c) 946add_library(crypto $<TARGET_OBJECTS:crypto_obj> $<TARGET_OBJECTS:compat_obj> empty.c)
981 947
982export_symbol(crypto ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym) 948export_symbol(crypto ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym)
983target_link_libraries(crypto ${PLATFORM_LIBS}) 949target_link_libraries(crypto ${PLATFORM_LIBS})
diff --git a/ssl/CMakeLists.txt b/ssl/CMakeLists.txt
index 22385ba..9be9e99 100644
--- a/ssl/CMakeLists.txt
+++ b/ssl/CMakeLists.txt
@@ -78,7 +78,7 @@ target_include_directories(bs_obj
78 ../include/compat) 78 ../include/compat)
79 79
80if(BUILD_SHARED_LIBS) 80if(BUILD_SHARED_LIBS)
81 add_library(ssl $<TARGET_OBJECTS:ssl_obj> $<TARGET_OBJECTS:bs_obj>) 81 add_library(ssl $<TARGET_OBJECTS:ssl_obj> $<TARGET_OBJECTS:compat_obj> $<TARGET_OBJECTS:bs_obj>)
82else() 82else()
83 add_library(ssl $<TARGET_OBJECTS:ssl_obj> empty.c) 83 add_library(ssl $<TARGET_OBJECTS:ssl_obj> empty.c)
84endif() 84endif()
diff --git a/tls/CMakeLists.txt b/tls/CMakeLists.txt
index c3c9424..919b1fa 100644
--- a/tls/CMakeLists.txt
+++ b/tls/CMakeLists.txt
@@ -14,28 +14,32 @@ set(
14 tls_verify.c 14 tls_verify.c
15) 15)
16 16
17set(TLS_COMPAT_SRC empty.c)
18
17if(WIN32) 19if(WIN32)
18 set( 20 set(
19 TLS_SRC 21 TLS_SRC
20 ${TLS_SRC} 22 ${TLS_SRC}
21 compat/ftruncate.c
22 compat/pread.c
23 compat/pwrite.c
24 ) 23 )
25 24
26 set(LIBTLS_EXTRA_EXPORT ${LIBTLS_EXTRA_EXPORT} ftruncate) 25 set(TLS_COMPAT_SRC ${TLS_COMPAT_SRC} compat/ftruncate.c)
26 set(TLS_COMPAT_SRC ${TLS_COMPAT_SRC} compat/pread.c)
27 set(TLS_COMPAT_SRC ${TLS_COMPAT_SRC} compat/pwrite.c)
27endif() 28endif()
28 29
29add_definitions(-DTLS_DEFAULT_CA_FILE=\"${OPENSSLDIR}/cert.pem\") 30add_definitions(-DTLS_DEFAULT_CA_FILE=\"${OPENSSLDIR}/cert.pem\")
30 31
31file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/tls.sym DESTINATION 32file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/tls.sym DESTINATION
32 ${CMAKE_CURRENT_BINARY_DIR}) 33 ${CMAKE_CURRENT_BINARY_DIR})
33if(LIBTLS_EXTRA_EXPORT) 34
34 list(SORT LIBTLS_EXTRA_EXPORT) 35add_library(tls_compat_obj OBJECT ${TLS_COMPAT_SRC})
35 foreach(SYM IN LISTS LIBTLS_EXTRA_EXPORT) 36target_include_directories(tls_compat_obj
36 file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/tls.sym "${SYM}\n") 37 PRIVATE
37 endforeach() 38 .
38endif() 39 ../include/compat
40 PUBLIC
41 ../include
42 ${CMAKE_BINARY_DIR}/include)
39 43
40add_library(tls_obj OBJECT ${TLS_SRC}) 44add_library(tls_obj OBJECT ${TLS_SRC})
41target_include_directories(tls_obj 45target_include_directories(tls_obj
@@ -46,7 +50,11 @@ target_include_directories(tls_obj
46 ../include 50 ../include
47 ${CMAKE_BINARY_DIR}/include) 51 ${CMAKE_BINARY_DIR}/include)
48 52
49add_library(tls $<TARGET_OBJECTS:tls_obj> empty.c) 53if(BUILD_SHARED_LIBS)
54 add_library(tls $<TARGET_OBJECTS:tls_obj> $<TARGET_OBJECTS:tls_compat_obj> $<TARGET_OBJECTS:compat_obj> empty.c)
55else()
56 add_library(tls $<TARGET_OBJECTS:tls_obj> $<TARGET_OBJECTS:tls_compat_obj> empty.c)
57endif()
50 58
51export_symbol(tls ${CMAKE_CURRENT_BINARY_DIR}/tls.sym) 59export_symbol(tls ${CMAKE_CURRENT_BINARY_DIR}/tls.sym)
52target_link_libraries(tls ${OPENSSL_LIBS}) 60target_link_libraries(tls ${OPENSSL_LIBS})