This is an automated email from the ASF dual-hosted git repository. cmcfarlen pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push: new 8bcc93f7ae cmake: Update gaps in config checks (#10489) 8bcc93f7ae is described below commit 8bcc93f7ae392677408c225796100d809e758cf2 Author: Chris McFarlen <ch...@mcfarlen.us> AuthorDate: Mon Sep 25 09:03:12 2023 -0500 cmake: Update gaps in config checks (#10489) * Update gaps in config checks * fix a few more issues * test build fixes * fixup more tls autests --------- Co-authored-by: Chris McFarlen <cmcfar...@apple.com> --- CMakeLists.txt | 80 ++++++++++++++++++++++++ include/tscore/ink_config.h.cmake.in | 60 ++++++++++++++++++ plugins/experimental/cookie_remap/CMakeLists.txt | 1 + tests/gold_tests/chunked_encoding/CMakeLists.txt | 2 +- tests/gold_tests/timeout/CMakeLists.txt | 2 +- tests/gold_tests/tls/CMakeLists.txt | 5 -- 6 files changed, 143 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c871c59903..928accafe3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -146,29 +146,49 @@ include(CheckIncludeFile) include(CheckIncludeFiles) include(CheckIncludeFileCXX) include(CheckSymbolExists) +include(CheckTypeSize) +include(CheckSourceCompiles) +include(CheckStructHasMember) +CHECK_INCLUDE_FILE(alloca.h HAVE_ALLOCA_H) +CHECK_INCLUDE_FILE(cpio.h HAVE_CPIO_H) CHECK_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H) CHECK_INCLUDE_FILE(float.h HAVE_FLOAT_H) CHECK_INCLUDE_FILE(stdlib.h HAVE_STDLIB_H) CHECK_INCLUDE_FILE(stdint.h HAVE_STDINT_H) +CHECK_INCLUDE_FILE(ifaddrs.h HAVE_IFADDRS_H) CHECK_INCLUDE_FILE(inttypes.h HAVE_INTTYPES_H) CHECK_INCLUDE_FILE(string.h HAVE_STRING_H) CHECK_INCLUDE_FILE(linux/major.h HAVE_LINUX_MAJOR_H) +CHECK_INCLUDE_FILE(malloc.h HAVE_MALLOC_H) +CHECK_INCLUDE_FILE(mcheck.h HAVE_MCHECK_H) +CHECK_INCLUDE_FILE(machine/endian.h HAVE_MACHINE_ENDIAN_H) +CHECK_INCLUDE_FILE(sys/byteorder.h HAVE_SYS_BYTEORDER_H) CHECK_INCLUDE_FILE(sys/disk.h HAVE_SYS_DISK_H) CHECK_INCLUDE_FILE(sys/disklabel.h HAVE_SYS_DISKLABEL_H) +CHECK_INCLUDE_FILE(sys/endian.h HAVE_SYS_ENDIAN_H) CHECK_INCLUDE_FILE(sys/ioctl.h HAVE_SYS_IOCTL_H) CHECK_INCLUDE_FILE(sys/types.h HAVE_SYS_TYPES_H) +CHECK_INCLUDE_FILE(sys/sockio.h HAVE_SYS_SOCKIO_H) CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H) +CHECK_INCLUDE_FILE(sys/statfs.h HAVE_SYS_STATFS_H) CHECK_INCLUDE_FILE(sys/statvfs.h HAVE_SYS_STATVFS_H) CHECK_INCLUDE_FILE(sys/uio.h HAVE_SYS_UIO_H) +CHECK_INCLUDE_FILE(sys/sysinfo.h HAVE_SYS_SYSINFO_H) CHECK_INCLUDE_FILE(sys/sysmacros.h HAVE_SYS_SYSMACROS_H) +CHECK_INCLUDE_FILE(sys/systeminfo.h HAVE_SYS_SYSTEMINFO_H) +CHECK_INCLUDE_FILE(sys/sysctl.h HAVE_SYS_SYSCTL_H) CHECK_INCLUDE_FILE(sys/mman.h HAVE_SYS_MMAN_H) CHECK_INCLUDE_FILE(sys/mount.h HAVE_SYS_MOUNT_H) CHECK_INCLUDE_FILE(sys/param.h HAVE_SYS_PARAM_H) +CHECK_INCLUDE_FILE(sysexits.h HAVE_SYSEXITS_H) +CHECK_INCLUDE_FILE(stropts.h HAVE_STROPTS_H) CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H) +CHECK_INCLUDE_FILE(values.h HAVE_VALUES_H) CHECK_INCLUDE_FILE(netinet/in.h HAVE_NETINET_IN_H) CHECK_INCLUDE_FILE(netinet/in_systm.h HAVE_NETINET_IN_SYSTM_H) CHECK_INCLUDE_FILE(netinet/tcp.h HAVE_NETINET_TCP_H) +CHECK_INCLUDE_FILE(netinet/ip.h HAVE_NETINET_IP_H) CHECK_INCLUDE_FILE(netinet/ip_icmp.h HAVE_NETINET_IP_ICMP_H) CHECK_INCLUDE_FILE(netdb.h HAVE_NETDB_H) CHECK_INCLUDE_FILE(arpa/inet.h HAVE_ARPA_INET_H) @@ -267,6 +287,10 @@ set(HAVE_NCURSES_H ${CURSES_HAVE_NCURSES_H}) set(HAVE_NCURSES_CURSES_H ${CURSES_HAVE_NCURSES_CURSES_H}) set(HAVE_NCURSES_NCURSES_H ${CURSES_HAVE_NCURSES_NCURSES_H}) +# curl is used in traffic_top +find_package(CURL) +set(HAVE_CURL ${CURL_FOUND}) + include(Check128BitCas) include(ConfigureTransparentProxy) @@ -287,10 +311,29 @@ check_symbol_exists(kqueue "sys/event.h" TS_USE_KQUEUE) set(CMAKE_REQUIRED_LIBRARIES uring) check_symbol_exists(io_uring_queue_init "liburing.h" HAVE_IOURING) unset(CMAKE_REQUIRED_LIBRARIES) +check_symbol_exists(getpagesize unistd.h HAVE_GETPAGESIZE) +check_symbol_exists(getpeereid unistd.h HAVE_GETPEEREID) +check_symbol_exists(getpeerucred unistd.h HAVE_GETPEERUCRED) check_symbol_exists(getresuid unistd.h HAVE_GETRESUID) check_symbol_exists(getresgid unistd.h HAVE_GETRESGID) +check_symbol_exists(malloc_usable_size malloc.h HAVE_MALLOC_USABLE_SIZE) +check_symbol_exists(mcheck_pedantic mcheck.h HAVE_MCHECK_PEDANTIC) +check_symbol_exists(posix_fadvise fcntl.h HAVE_POSIX_FADVISE) +check_symbol_exists(posix_fallocate fcntl.h HAVE_POSIX_FALLOCATE) +check_symbol_exists(posix_madvise sys/mman.h HAVE_POSIX_MADVISE) check_symbol_exists(accept4 sys/socket.h HAVE_ACCEPT4) check_symbol_exists(eventfd sys/eventfd.h HAVE_EVENTFD) +check_symbol_exists(sysconf unistd.h HAVE_SYSCONF) +check_symbol_exists(recvmmsg sys/socket.h HAVE_RECVMMSG) +check_symbol_exists(sendmmsg sys/socket.h HAVE_SENDMMSG) +check_symbol_exists(strlcat string.h HAVE_STRLCAT) +check_symbol_exists(strlcpy string.h HAVE_STRLCPY) +check_symbol_exists(strsignal string.h HAVE_STRSIGNAL) +if(TS_USE_HWLOC) + check_source_compiles(C + "#include <hwloc.h> + int main() { return HWLOC_OBJ_PU; }" HAVE_HWLOC_OBJ_PU) +endif() option(USE_IOURING "Use experimental io_uring (linux only)" 0) if (HAVE_IOURING AND USE_IOURING) @@ -298,6 +341,22 @@ if (HAVE_IOURING AND USE_IOURING) set(TS_USE_LINUX_IO_URING 1) endif(HAVE_IOURING AND USE_IOURING) +check_symbol_exists(pthread_getname_np pthread.h HAVE_PTHREAD_GETNAME_NP) +check_symbol_exists(pthread_get_name_np pthread.h HAVE_PTHREAD_GET_NAME_NP) + +check_source_compiles(C + "#include <pthread.h> + void main() { pthread_setname_np(\"name\"); }" HAVE_PTHREAD_SETNAME_NP_1) +check_source_compiles(C + "#include <pthread.h> + void main() { pthread_setname_np(0, \"name\"); }" HAVE_PTHREAD_SETNAME_NP_2) +check_source_compiles(C + "#include <pthread.h> + void main() { pthread_set_name_np(\"name\"); }" HAVE_PTHREAD_SET_NAME_NP_1) +check_source_compiles(C + "#include <pthread.h> + void main() { pthread_set_name_np(0, \"name\"); }" HAVE_PTHREAD_SET_NAME_NP_2) + # Check ssl functionality list(APPEND CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) list(APPEND CMAKE_REQUIRED_LIBRARIES @@ -315,6 +374,11 @@ check_symbol_exists(HMAC_CTX_new "openssl/hmac.h" HAVE_HMAC_CTX_NEW) check_symbol_exists(DH_get_2048_256 "openssl/dh.h" TS_USE_GET_DH_2048_256) check_symbol_exists(OPENSSL_NO_TLS_3 "openssl/ssl.h" TS_NO_USE_TLS12) check_symbol_exists(SSL_CTX_set_client_hello_cb "openssl/ssl.h" TS_USE_HELLO_CB) +check_symbol_exists(SSL_set1_verify_cert_store "openssl/ssl.h" TS_HAS_VERIFY_CERT_STORE) +check_symbol_exists(SSL_CTX_set_tlsext_ticket_key_evp_cb "openssl/ssl.h" TS_HAS_TLS_SESSION_TICKET) +check_symbol_exists(SSL_read_early_data "openssl/ssl.h" TS_HAS_TLS_EARLY_DATA) +check_symbol_exists(SSL_set_max_early_data "openssl/ssl.h" HAVE_SSL_SET_MAX_EARLY_DATA) +check_symbol_exists(SSL_CTX_set_ciphersuites "openssl/ssl.h" TS_USE_TLS_SET_CIPHERSUITES) check_symbol_exists( SSL_CTX_set_keylog_callback "openssl/ssl.h" @@ -325,7 +389,23 @@ check_symbol_exists( "openssl/ssl.h" HAVE_SSL_CTX_SET_TLSEXT_TICKET_KEY_CB ) +check_symbol_exists(SSL_get_all_async_fds openssl/ssl.h TS_USE_TLS_ASYNC) check_symbol_exists(TLS1_3_VERSION "openssl/ssl.h" TS_USE_TLS13) +check_symbol_exists(MD5_Init "openssl/md5.h" HAVE_MD5_INIT) +check_symbol_exists(sysctlbyname "sys/sysctl.h" HAVE_SYSCTLBYNAME) + +set(HAVE_SSL_READ_EARLY_DATA ${TS_HAS_TLS_EARLY_DATA}) + +set(CMAKE_REQUIRED_INCLUDES netinet/in.h netinet/tcp.h) +check_type_size("struct tcp_info" STRUCT_TCP_INFO) +unset(CMAKE_REQUIRED_INCLUDES) + +check_struct_has_member("struct tcp_info" tcpi_data_segs_out "linux/tcp.h" HAVE_STRUCT_LINUX_TCP_INFO) +check_struct_has_member("struct sockaddr" sa_len "netinet/in.h" HAVE_STRUCT_SOCKADDR_SA_LEN) +check_struct_has_member("struct sockaddr_in" sin_len "netinet/in.h" HAVE_STRUCT_SOCKADDR_IN_SIN_LEN) +check_struct_has_member("struct sockaddr_in6" sin6_len "netinet/in.h" HAVE_STRUCT_SOCKADDR_IN6_SIN6_LEN) +check_struct_has_member("struct stat" st_mtimespec "sys/stat.h" HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC) +check_struct_has_member("struct stat" st_mtim "sys/stat.h" HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC) if(ENABLE_DOCS OR ENABLE_AUTEST) find_package(Python3 REQUIRED) diff --git a/include/tscore/ink_config.h.cmake.in b/include/tscore/ink_config.h.cmake.in index 7a0a300f0c..7ab4ce20b9 100644 --- a/include/tscore/ink_config.h.cmake.in +++ b/include/tscore/ink_config.h.cmake.in @@ -32,9 +32,12 @@ #cmakedefine BUILD_GROUP "@BUILD_GROUP@" #define BUILD_NUMBER "@BUILD_NUMBER@" +#cmakedefine HAVE_ALLOCA_H 1 #cmakedefine HAVE_BROTLI_ENCODE_H 1 #cmakedefine HAVE_CLOCK_GETTIME 1 #cmakedefine HAVE_CURSES_H 1 +#cmakedefine HAVE_CURL 1 +#cmakedefine HAVE_CPIO_H 1 #cmakedefine HAVE_NCURSES_H 1 #cmakedefine HAVE_NCURSES_CURSES_H 1 #cmakedefine HAVE_NCURSES_NCURSES_H 1 @@ -43,39 +46,77 @@ #cmakedefine HAVE_LZMA_H 1 #cmakedefine HAVE_STDLIB_H 1 #cmakedefine HAVE_STDINT_H 1 +#cmakedefine HAVE_IFADDRS_H 1 #cmakedefine HAVE_INTTYPES_H 1 #cmakedefine HAVE_STRING_H 1 #cmakedefine HAVE_LINUX_HDREG_H 1 #cmakedefine HAVE_LINUX_MAJOR_H 1 +#cmakedefine HAVE_MALLOC_H 1 +#cmakedefine HAVE_MCHECK_H 1 +#cmakedefine HAVE_MACHINE_ENDIAN_H 1 +#cmakedefine HAVE_SYS_BYTEORDER_H 1 #cmakedefine HAVE_SYS_DISK_H 1 #cmakedefine HAVE_SYS_DISKLABEL_H 1 +#cmakedefine HAVE_SYS_ENDIAN_H 1 #cmakedefine HAVE_SYS_CAPABILITY_H 1 #cmakedefine HAVE_SYS_IOCTL_H 1 #cmakedefine HAVE_SYS_PRCTL_H 1 #cmakedefine HAVE_SYS_TYPES_H 1 +#cmakedefine HAVE_SYS_SOCKIO_H 1 #cmakedefine HAVE_SYS_STAT_H 1 +#cmakedefine HAVE_SYS_STATFS_H 1 #cmakedefine HAVE_SYS_STATVFS_H 1 #cmakedefine HAVE_SYS_UIO_H 1 +#cmakedefine HAVE_SYS_SYSINFO_H 1 #cmakedefine HAVE_SYS_SYSMACROS_H 1 +#cmakedefine HAVE_SYS_SYSTEMINFO_H 1 +#cmakedefine HAVE_SYS_SYSCTL_H 1 #cmakedefine HAVE_SYS_MMAN_H 1 #cmakedefine HAVE_SYS_MOUNT_H 1 #cmakedefine HAVE_SYS_PARAM_H 1 +#cmakedefine HAVE_SYSEXITS_H 1 +#cmakedefine HAVE_STROPTS_H 1 #cmakedefine HAVE_UNISTD_H 1 +#cmakedefine HAVE_VALUES_H 1 #cmakedefine HAVE_NETINET_IN_H 1 #cmakedefine HAVE_NETINET_IN_SYSTM_H 1 #cmakedefine HAVE_NETINET_TCP_H 1 #cmakedefine HAVE_NETINET_IP_ICMP_H 1 +#cmakedefine HAVE_NETINET_IP_H 1 #cmakedefine HAVE_NETDB_H 1 #cmakedefine HAVE_ARPA_INET_H 1 #cmakedefine HAVE_ARPA_NAMESER_H 1 #cmakedefine HAVE_ARPA_NAMESER_COMPAT_H 1 #cmakedefine HAVE_SIGINFO_H 1 #cmakedefine HAVE_ENDIAN_H 1 +#cmakedefine HAVE_MALLOC_USABLE_SIZE 1 +#cmakedefine HAVE_MCHECK_PEDANTIC 1 +#cmakedefine HAVE_POSIX_FADVISE 1 +#cmakedefine HAVE_POSIX_FALLOCATE 1 +#cmakedefine HAVE_POSIX_MADVISE 1 + +#cmakedefine HAVE_PTHREAD_GETNAME_NP 1 +#cmakedefine HAVE_PTHREAD_GET_NAME_NP 1 +#cmakedefine HAVE_PTHREAD_SETNAME_NP_1 1 +#cmakedefine HAVE_PTHREAD_SETNAME_NP_2 1 +#cmakedefine HAVE_PTHREAD_SET_NAME_NP_1 1 +#cmakedefine HAVE_PTHREAD_SET_NAME_NP_2 1 #cmakedefine01 HAVE_GETRESUID #cmakedefine01 HAVE_GETRESGID +#cmakedefine01 HAVE_GETPAGESIZE +#cmakedefine01 HAVE_GETPEEREID +#cmakedefine01 HAVE_GETPEERUCRED #cmakedefine01 HAVE_ACCEPT4 #cmakedefine01 HAVE_EVENTFD +#cmakedefine01 HAVE_SYSCONF +#cmakedefine HAVE_RECVMMSG 1 +#cmakedefine HAVE_SENDMMSG 1 +#cmakedefine01 HAVE_STRLCAT +#cmakedefine01 HAVE_STRLCPY +#cmakedefine01 HAVE_STRSIGNAL + +#cmakedefine01 HAVE_HWLOC_OBJ_PU #cmakedefine01 HAVE_SSL_CTX_SET_TLSEXT_TICKET_KEY_CB #cmakedefine01 TS_HAS_TLS_KEYLOGGING @@ -88,6 +129,16 @@ #cmakedefine HAVE_BIO_METH_GET_CREATE 1 #cmakedefine HAVE_BIO_METH_GET_DESTROY 1 #cmakedefine HAVE_HMAC_CTX_NEW 1 +#cmakedefine HAVE_MD5_INIT 1 + +#cmakedefine HAVE_STRUCT_TCP_INFO 1 +#cmakedefine HAVE_STRUCT_LINUX_TCP_INFO 1 +#cmakedefine HAVE_STRUCT_SOCKADDR_SA_LEN 1 +#cmakedefine HAVE_STRUCT_SOCKADDR_IN_SIN_LEN 1 +#cmakedefine HAVE_STRUCT_SOCKADDR_IN6_SIN6_LEN 1 +#cmakedefine HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC 1 +#cmakedefine HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 +#cmakedefine HAVE_SYSCTLBYNAME 1 #define SIZEOF_VOIDP @CMAKE_SIZEOF_VOID_P@ @@ -144,8 +195,17 @@ const int DEFAULT_STACKSIZE = @DEFAULT_STACK_SIZE@; #cmakedefine01 TS_USE_REMOTE_UNWINDING #cmakedefine01 TS_USE_SET_RBIO #cmakedefine01 TS_USE_TLS13 +#cmakedefine01 TS_USE_TLS_ASYNC #cmakedefine01 TS_USE_TPROXY +#cmakedefine01 TS_HAS_VERIFY_CERT_STORE +#cmakedefine01 TS_HAS_TLS_SESSION_TICKET +#cmakedefine01 TS_HAS_TLS_EARLY_DATA +// TODO(cmcfarlen): Verify use of below in iocore/net/SSLNetVConnection (redunant) +#cmakedefine01 HAVE_SSL_READ_EARLY_DATA +#cmakedefine HAVE_SSL_SET_MAX_EARLY_DATA +#cmakedefine01 TS_USE_TLS_SET_CIPHERSUITES + #define TS_BUILD_CANONICAL_HOST "@CMAKE_HOST@" #cmakedefine YAMLCPP_LIB_VERSION "@YAMLCPP_LIB_VERSION@" diff --git a/plugins/experimental/cookie_remap/CMakeLists.txt b/plugins/experimental/cookie_remap/CMakeLists.txt index 73a01e400d..eb3ac90dc5 100644 --- a/plugins/experimental/cookie_remap/CMakeLists.txt +++ b/plugins/experimental/cookie_remap/CMakeLists.txt @@ -21,6 +21,7 @@ add_atsplugin(cookie_remap cookie_remap.cc cookiejar.cc strip.cc + hash.cc ) target_link_libraries(cookie_remap diff --git a/tests/gold_tests/chunked_encoding/CMakeLists.txt b/tests/gold_tests/chunked_encoding/CMakeLists.txt index 1fc853ff6f..2cb5e75090 100644 --- a/tests/gold_tests/chunked_encoding/CMakeLists.txt +++ b/tests/gold_tests/chunked_encoding/CMakeLists.txt @@ -15,6 +15,6 @@ # ####################### -add_autest_plugin(smuggle-client smuggle-client.c) +add_executable(smuggle-client smuggle-client.c) target_link_libraries(smuggle-client PRIVATE OpenSSL::SSL) diff --git a/tests/gold_tests/timeout/CMakeLists.txt b/tests/gold_tests/timeout/CMakeLists.txt index ad6678a37e..68232a4a29 100644 --- a/tests/gold_tests/timeout/CMakeLists.txt +++ b/tests/gold_tests/timeout/CMakeLists.txt @@ -15,5 +15,5 @@ # ####################### -add_autest_plugin(ssl-delay-server ssl-delay-server.cc) +add_executable(ssl-delay-server ssl-delay-server.cc) target_link_libraries(ssl-delay-server PRIVATE OpenSSL::SSL) diff --git a/tests/gold_tests/tls/CMakeLists.txt b/tests/gold_tests/tls/CMakeLists.txt index 3b50cdf9e7..d1174dcbc1 100644 --- a/tests/gold_tests/tls/CMakeLists.txt +++ b/tests/gold_tests/tls/CMakeLists.txt @@ -20,8 +20,3 @@ find_package(Threads) add_executable(ssl-post ssl-post.c) target_link_libraries(ssl-post PRIVATE OpenSSL::SSL Threads::Threads) - -set_target_properties(ssl-post - PROPERTIES - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -)