diff --git a/.Rbuildignore b/.Rbuildignore index 6d86d3468..03f3dad75 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -25,3 +25,8 @@ ^_pkgdown\.yml$ ^docs$ ^pkgdown$ +scripts +^Makefile$ +^dev$ +^src/libuv/\.clang-tidy$ +^check-gcc-clang$ diff --git a/.gitignore b/.gitignore index 160bec811..ba1fb07dc 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ configure.log .vscode *.orig docs +scripts/R-devel diff --git a/DESCRIPTION b/DESCRIPTION index d942436b3..ae0b286f1 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -42,7 +42,10 @@ Authors@R: c( person("Trantor Standard Systems", role = "cph", comment = "base64 implementation"), person("Igor", "Sysoev", role = "cph", - comment = "http-parser") + comment = "http-parser"), + person(given = "Mauricio", family = "Vargas Sepulveda", role = "aut", + email = "m.vargas.sepulveda@gmail.com", + comment = c(ORCID = "0000-0003-1017-7574")) ) Description: Provides low-level socket and protocol support for handling HTTP and WebSocket requests directly from within R. It is primarily @@ -60,7 +63,6 @@ Imports: later (>= 0.8.0), promises, R6, - Rcpp (>= 1.0.7), utils Suggests: callr, @@ -70,16 +72,15 @@ Suggests: websocket LinkingTo: later, - Rcpp + cpp11 Config/Needs/website: tidyverse/tidytemplate Config/testthat/edition: 3 Config/usethis/last-upkeep: 2025-07-01 Encoding: UTF-8 Roxygen: list(markdown = TRUE) -RoxygenNote: 7.3.3 SystemRequirements: GNU make, zlib Collate: - 'RcppExports.R' + 'cpp11.R' 'httpuv-package.R' 'httpuv.R' 'random_port.R' @@ -87,3 +88,4 @@ Collate: 'staticServer.R' 'static_paths.R' 'utils.R' +Config/roxygen2/version: 8.0.0 diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..6fcb92e6c --- /dev/null +++ b/Makefile @@ -0,0 +1,41 @@ +clean: + @Rscript -e 'devtools::clean_dll(".");' + +install: + @Rscript -e 'devtools::install(".");' + +STANDARDS := cxx17 cxx20 cxx23 +COMPILERS := gcc clang + +ALL_CHECKS := $(foreach std,$(STANDARDS),$(foreach comp,$(COMPILERS),check-$(std)-$(comp))) + +check: $(ALL_CHECKS) + +define run-check +check-$(1)-$(2): + @echo "Checking C++ code with $(1) standard and $(2) compiler" + # @$$(MAKE) install + ./scripts/check_prepare.sh "$(1)" "$(2)"; \ + if ! ./scripts/check_run.sh "$(1)" "$(2)"; then \ + echo "Check failed"; \ + ./scripts/check_restore.sh "$(1)" "$(2)"; \ + exit 1; \ + fi; \ + ./scripts/check_restore.sh "$(1)" "$(2)" +endef + +clang_format=`which clang-format-21` + +format: $(shell find . -name '*.h') $(shell find . -name '*.hpp') $(shell find . -name '*.cpp') + @${clang_format} -i $? + +build-r-devel: + @echo "Building R-devel from source" + ./scripts/build_r_devel.sh + +check-devel: + @echo "Checking with R-devel (CXX23, gcc)" + ./scripts/check_r_devel.sh cxx23 gcc + +$(foreach std,$(STANDARDS),$(foreach comp,$(COMPILERS),$(eval $(call run-check,$(std),$(comp))))) +$(foreach std,$(STANDARDS),$(eval check-$(std)-glang: check-$(std)-clang)) diff --git a/NAMESPACE b/NAMESPACE index 5200da447..a2d91d6c5 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -32,7 +32,6 @@ export(stopAllServers) export(stopDaemonizedServer) export(stopServer) importFrom(R6,R6Class) -importFrom(Rcpp,evalCpp) importFrom(later,run_now) importFrom(promises,"%...!%") importFrom(promises,"%...>%") diff --git a/R/RcppExports.R b/R/RcppExports.R deleted file mode 100644 index 406dedb79..000000000 --- a/R/RcppExports.R +++ /dev/null @@ -1,147 +0,0 @@ -# Generated by using Rcpp::compileAttributes() -> do not edit by hand -# Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 - -sendWSMessage <- function(conn, binary, message) { - invisible(.Call(`_httpuv_sendWSMessage`, conn, binary, message)) -} - -closeWS <- function(conn, code, reason) { - invisible(.Call(`_httpuv_closeWS`, conn, code, reason)) -} - -makeTcpServer <- function(host, port, onHeaders, onBodyData, onRequest, onWSOpen, onWSMessage, onWSClose, staticPaths, staticPathOptions, quiet) { - .Call(`_httpuv_makeTcpServer`, host, port, onHeaders, onBodyData, onRequest, onWSOpen, onWSMessage, onWSClose, staticPaths, staticPathOptions, quiet) -} - -makePipeServer <- function(name, mask, onHeaders, onBodyData, onRequest, onWSOpen, onWSMessage, onWSClose, staticPaths, staticPathOptions, quiet) { - .Call(`_httpuv_makePipeServer`, name, mask, onHeaders, onBodyData, onRequest, onWSOpen, onWSMessage, onWSClose, staticPaths, staticPathOptions, quiet) -} - -stopServer_ <- function(handle) { - invisible(.Call(`_httpuv_stopServer_`, handle)) -} - -getStaticPaths_ <- function(handle) { - .Call(`_httpuv_getStaticPaths_`, handle) -} - -setStaticPaths_ <- function(handle, sp) { - .Call(`_httpuv_setStaticPaths_`, handle, sp) -} - -removeStaticPaths_ <- function(handle, paths) { - .Call(`_httpuv_removeStaticPaths_`, handle, paths) -} - -getStaticPathOptions_ <- function(handle) { - .Call(`_httpuv_getStaticPathOptions_`, handle) -} - -setStaticPathOptions_ <- function(handle, opts) { - .Call(`_httpuv_setStaticPathOptions_`, handle, opts) -} - -base64encode <- function(x) { - .Call(`_httpuv_base64encode`, x) -} - -#' URI encoding/decoding -#' -#' Encodes/decodes strings using URI encoding/decoding in the same way that web -#' browsers do. The precise behaviors of these functions can be found at -#' developer.mozilla.org: -#' \href{https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI}{encodeURI}, -#' \href{https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent}{encodeURIComponent}, -#' \href{https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI}{decodeURI}, -#' \href{https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent}{decodeURIComponent} -#' -#' Intended as a faster replacement for [utils::URLencode()] and -#' [utils::URLdecode()]. -#' -#' encodeURI differs from encodeURIComponent in that the former will not encode -#' reserved characters: \code{;,/?:@@&=+$} -#' -#' decodeURI differs from decodeURIComponent in that it will refuse to decode -#' encoded sequences that decode to a reserved character. (If in doubt, use -#' decodeURIComponent.) -#' -#' For \code{encodeURI} and \code{encodeURIComponent}, input strings will be -#' converted to UTF-8 before URL-encoding. -#' -#' @param value Character vector to be encoded or decoded. -#' @return Encoded or decoded character vector of the same length as the -#' input value. \code{decodeURI} and \code{decodeURIComponent} will return -#' strings that are UTF-8 encoded. -#' -#' @export -encodeURI <- function(value) { - .Call(`_httpuv_encodeURI`, value) -} - -#' @rdname encodeURI -#' @export -encodeURIComponent <- function(value) { - .Call(`_httpuv_encodeURIComponent`, value) -} - -#' @rdname encodeURI -#' @export -decodeURI <- function(value) { - .Call(`_httpuv_decodeURI`, value) -} - -#' @rdname encodeURI -#' @export -decodeURIComponent <- function(value) { - .Call(`_httpuv_decodeURIComponent`, value) -} - -#' Check whether an address is IPv4 or IPv6 -#' -#' Given an IP address, this checks whether it is an IPv4 or IPv6 address. -#' -#' @param ip A single string representing an IP address. -#' -#' @return -#' For IPv4 addresses, \code{4}; for IPv6 addresses, \code{6}. If the address is -#' neither, \code{-1}. -#' -#' @examples -#' ipFamily("127.0.0.1") # 4 -#' ipFamily("500.0.0.500") # -1 -#' ipFamily("500.0.0.500") # -1 -#' -#' ipFamily("::") # 6 -#' ipFamily("::1") # 6 -#' ipFamily("fe80::1ff:fe23:4567:890a") # 6 -#' @export -ipFamily <- function(ip) { - .Call(`_httpuv_ipFamily`, ip) -} - -invokeCppCallback <- function(data, callback_xptr) { - invisible(.Call(`_httpuv_invokeCppCallback`, data, callback_xptr)) -} - -#' Apply the value of .Random.seed to R's internal RNG state -#' -#' This function is needed in unusual cases where a C++ function calls -#' an R function which sets the value of \code{.Random.seed}. This function -#' should be called at the end of the R function to ensure that the new value -#' \code{.Random.seed} is preserved. Otherwise, Rcpp may overwrite it with a -#' previous value. -#' -#' @keywords internal -#' @export -getRNGState <- function() { - invisible(.Call(`_httpuv_getRNGState`)) -} - -wsconn_address <- function(external_ptr) { - .Call(`_httpuv_wsconn_address`, external_ptr) -} - -log_level <- function(level) { - .Call(`_httpuv_log_level`, level) -} - diff --git a/R/cpp11.R b/R/cpp11.R new file mode 100644 index 000000000..76e10beeb --- /dev/null +++ b/R/cpp11.R @@ -0,0 +1,81 @@ +# Generated by cpp11: do not edit by hand + +sendWSMessage <- function(conn, binary, message) { + invisible(.Call(`_httpuv_sendWSMessage`, conn, binary, message)) +} + +closeWS <- function(conn, code, reason) { + invisible(.Call(`_httpuv_closeWS`, conn, code, reason)) +} + +makeTcpServer <- function(host, port, onHeaders, onBodyData, onRequest, onWSOpen, onWSMessage, onWSClose, staticPaths, staticPathOptions, quiet) { + .Call(`_httpuv_makeTcpServer`, host, port, onHeaders, onBodyData, onRequest, onWSOpen, onWSMessage, onWSClose, staticPaths, staticPathOptions, quiet) +} + +makePipeServer <- function(name, mask, onHeaders, onBodyData, onRequest, onWSOpen, onWSMessage, onWSClose, staticPaths, staticPathOptions, quiet) { + .Call(`_httpuv_makePipeServer`, name, mask, onHeaders, onBodyData, onRequest, onWSOpen, onWSMessage, onWSClose, staticPaths, staticPathOptions, quiet) +} + +stopServer_ <- function(handle) { + invisible(.Call(`_httpuv_stopServer_`, handle)) +} + +getStaticPaths_ <- function(handle) { + .Call(`_httpuv_getStaticPaths_`, handle) +} + +setStaticPaths_ <- function(handle, sp) { + .Call(`_httpuv_setStaticPaths_`, handle, sp) +} + +removeStaticPaths_ <- function(handle, paths) { + .Call(`_httpuv_removeStaticPaths_`, handle, paths) +} + +getStaticPathOptions_ <- function(handle) { + .Call(`_httpuv_getStaticPathOptions_`, handle) +} + +setStaticPathOptions_ <- function(handle, opts) { + .Call(`_httpuv_setStaticPathOptions_`, handle, opts) +} + +base64encode <- function(x) { + .Call(`_httpuv_base64encode`, x) +} + +encodeURI_ <- function(value) { + .Call(`_httpuv_encodeURI_`, value) +} + +encodeURIComponent_ <- function(value) { + .Call(`_httpuv_encodeURIComponent_`, value) +} + +decodeURI_ <- function(value) { + .Call(`_httpuv_decodeURI_`, value) +} + +decodeURIComponent_ <- function(value) { + .Call(`_httpuv_decodeURIComponent_`, value) +} + +ipFamily_ <- function(ip) { + .Call(`_httpuv_ipFamily_`, ip) +} + +invokeCppCallback <- function(data, callback_xptr) { + invisible(.Call(`_httpuv_invokeCppCallback`, data, callback_xptr)) +} + +getRNGState_ <- function() { + invisible(.Call(`_httpuv_getRNGState_`)) +} + +wsconn_address <- function(external_ptr) { + .Call(`_httpuv_wsconn_address`, external_ptr) +} + +log_level <- function(level) { + .Call(`_httpuv_log_level`, level) +} diff --git a/R/httpuv-package.R b/R/httpuv-package.R index a0abe6420..dda8fb2c6 100644 --- a/R/httpuv-package.R +++ b/R/httpuv-package.R @@ -26,9 +26,98 @@ "_PACKAGE" ## usethis namespace: start -#' @importFrom Rcpp evalCpp #' @importFrom promises promise then finally is.promise %...>% %...!% #' @importFrom later run_now #' @importFrom R6 R6Class ## usethis namespace: end NULL + +# The following functions take C++ functions and provide an exported wrapper. +# The approach is +# R: myfun(); C++: myfun_(). +# The C++ functions are registered with cpp11, and the R functions are exported. +# 'cpp4' (not in use) "saves" this step by allowing this on C++ side: +# /* roxygen +# @title My Function +# @param x something. +# @export +# */ +# int myfun(int x) { +# return x + 1; +# } + +#' @title Apply the value of .Random.seed to R's internal RNG state +#' @description This function is needed in unusual cases where a C++ function calls +#' an R function which sets the value of \code{.Random.seed}. This function +#' should be called at the end of the R function to ensure that the new value +#' \code{.Random.seed} is preserved. +#' @keywords internal +#' @export +getRNGState <- function() { + getRNGState_() +} + +#' @title URI encoding/decoding +#' @description Encodes/decodes strings using URI encoding/decoding in the same way that web +#' browsers do. The precise behaviors of these functions can be found at developer.mozilla.org: +#' \href{https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI}{encodeURI}, +#' \href{https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent}{encodeURIComponent}, +#' \href{https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI}{decodeURI}, +#' \href{https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent}{decodeURIComponent} +#' +#' Intended as a faster replacement for [utils::URLencode()] and [utils::URLdecode()]. +#' encodeURI differs from encodeURIComponent in that the former will not encode +#' reserved characters: \code{;,/?:@@&=+$} +#' +#' decodeURI differs from decodeURIComponent in that it will refuse to decode +#' encoded sequences that decode to a reserved character. (If in doubt, use +#' decodeURIComponent.) +#' +#' For \code{encodeURI} and \code{encodeURIComponent}, input strings will be +#' converted to UTF-8 before URL-encoding. +#' @param value Character vector to be encoded or decoded. +#' +#' @return Encoded or decoded character vector of the same length as the +#' input value. \code{decodeURI} and \code{decodeURIComponent} will return +#' strings that are UTF-8 encoded. +#' +#' @export +encodeURI <- function(value) { + encodeURI_(value) +} + +#' @rdname encodeURI +#' @export +encodeURIComponent <- function(value) { + encodeURIComponent_(value) +} + +#' @rdname encodeURI +#' @export +decodeURI <- function(value) { + decodeURI_(value) +} + +#' @rdname encodeURI +#' @export +decodeURIComponent <- function(value) { + decodeURIComponent_(value) +} + +#' @title Check whether an address is IPv4 or IPv6 +#' @description Given an IP address, this checks whether it is an IPv4 or IPv6 address. +#' @param ip A single string representing an IP address. +#' @return For IPv4 addresses, \code{4}; for IPv6 addresses, \code{6}. If the address is +#' neither, \code{-1}. +#' @examples +#' ipFamily("127.0.0.1") # 4 +#' ipFamily("500.0.0.500") # -1 +#' ipFamily("500.0.0.500") # -1 +#' +#' ipFamily("::") # 6 +#' ipFamily("::1") # 6 +#' ipFamily("fe80::1ff:fe23:4567:890a") # 6 +#' @export +ipFamily <- function(ip) { + ipFamily_(ip) +} diff --git a/check-gcc-clang/check-CXX17-clang.log b/check-gcc-clang/check-CXX17-clang.log new file mode 100644 index 000000000..b8b92ebc4 --- /dev/null +++ b/check-gcc-clang/check-CXX17-clang.log @@ -0,0 +1,167 @@ +Loading required package: usethis +Loading required package: usethis +* using log directory ‘/home/pacha/Documents/httpuv/httpuv.Rcheck’ +* using R version 4.6.0 (2026-04-24) +* using platform: x86_64-pc-linux-gnu +* R was compiled by + gcc (GCC) 15.2.1 20260209 + GNU Fortran (GCC) 15.2.1 20260209 +* running under: Manjaro Linux +* using session charset: UTF-8 +* current time: 2026-05-14 00:43:44 UTC +* using options ‘--no-manual --as-cran’ +* checking for file ‘httpuv/DESCRIPTION’ ... OK +* checking extension type ... Package +* this is package ‘httpuv’ version ‘1.6.16.9000’ +* package encoding: UTF-8 +* checking CRAN incoming feasibility ... [9s/19s] WARNING +Maintainer: ‘Winston Chang ’ + +Insufficient package version (submitted: 1.6.16.9000, existing: 1.6.17) +Version contains large components (1.6.16.9000) +* checking package namespace information ... OK +* checking package dependencies ... OK +* checking if this is a source package ... OK +* checking if there is a namespace ... OK +* checking for executable files ... OK +* checking for hidden files and directories ... OK +* checking for portable file names ... OK +* checking for sufficient/correct file permissions ... OK +* checking serialization versions ... OK +* checking whether package ‘httpuv’ can be installed ... [80s/81s] OK +* used C compiler: ‘clang version 22.1.3’ +* used C++ compiler: ‘clang version 22.1.3’ +* checking C++ specification ... INFO + specified C++17 +* checking installed package size ... OK +* checking package directory ... OK +* checking for future file timestamps ... OK +* checking DESCRIPTION meta-information ... OK +* checking top-level files ... NOTE +Non-standard file/directory found at top level: + ‘check-gcc-clang’ +* checking for left-over files ... OK +* checking index information ... OK +* checking package subdirectories ... OK +* checking code files for non-ASCII characters ... OK +* checking R files for syntax errors ... OK +* checking whether the package can be loaded ... OK +* checking whether the package can be loaded with stated dependencies ... OK +* checking whether the package can be unloaded cleanly ... OK +* checking whether the namespace can be loaded with stated dependencies ... OK +* checking whether the namespace can be unloaded cleanly ... OK +* checking loading without being on the library search path ... OK +* checking use of S3 registration ... OK +* checking dependencies in R code ... OK +* checking S3 generic/method consistency ... OK +* checking replacement functions ... OK +* checking foreign function calls ... OK +* checking R code for possible problems ... OK +* checking Rd files ... OK +* checking Rd metadata ... OK +* checking Rd line widths ... OK +* checking Rd cross-references ... OK +* checking for missing documentation entries ... OK +* checking for code/documentation mismatches ... OK +* checking Rd \usage sections ... OK +* checking Rd contents ... OK +* checking for unstated dependencies in examples ... OK +* checking line endings in shell scripts ... OK +* checking line endings in C/C++/Fortran sources/headers ... OK +* checking line endings in Makefiles ... OK +* checking compilation flags in Makevars ... OK +* checking for GNU extensions in Makefiles ... INFO +GNU make is a SystemRequirements. +* checking for portable use of $(BLAS_LIBS) and $(LAPACK_LIBS) ... OK +* checking use of PKG_*FLAGS in Makefiles ... OK +* checking use of SHLIB_OPENMP_*FLAGS in Makefiles ... OK +* checking include directives in Makefiles ... OK +* checking pragmas in C/C++ headers and code ... NOTE +File which contains pragma(s) suppressing diagnostics: + ‘src/libuv/test/task.h’ +* checking compilation flags used ... NOTE +Compilation used the following non-portable flag(s): + ‘-Werror=format-security’ ‘-Wformat’ ‘-Wp,-D_FORTIFY_SOURCE=3’ + ‘-Wp,-D_GLIBCXX_ASSERTIONS’ ‘-march=x86-64’ + ‘-mno-omit-leaf-frame-pointer’ +* checking compiled code ... OK +* checking examples ... OK +* checking for unstated dependencies in ‘demo’ ... OK +* checking for unstated dependencies in ‘tests’ ... OK +* checking tests ... + Running ‘testthat.R’ [18s/20s] + [18s/20s] OK +* checking for non-standard things in the check directory ... OK +* checking for detritus in the temp directory ... OK +* DONE + +Status: 1 WARNING, 3 NOTEs +See + ‘/home/pacha/Documents/httpuv/httpuv.Rcheck/00check.log’ +for details. + +=== BEGIN 00install.out === +Loading required package: usethis +* installing *source* package ‘httpuv’ ... +** this is package ‘httpuv’ version ‘1.6.16.9000’ +** using staged installation +** Using libuv found by pkg-config in /usr +** PKG_CFLAGS= +** PKG_LIBS=-luv +** libs +specified C++17 +using C compiler: ‘clang version 22.1.3’ +using C++ compiler: ‘clang version 22.1.3’ +using C++17 +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callback.cpp -o callback.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callbackqueue.cpp -o callbackqueue.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c cpp11.cpp -o cpp11.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-unix.cpp -o filedatasource-unix.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-win.cpp -o filedatasource-win.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c fs.cpp -o fs.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c gzipdatasource.cpp -o gzipdatasource.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http.cpp -o http.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httprequest.cpp -o httprequest.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpresponse.cpp -o httpresponse.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpuv.cpp -o httpuv.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c md5.c -o md5.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c mime.cpp -o mime.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c socket.cpp -o socket.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c staticpath.cpp -o staticpath.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c thread.cpp -o thread.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c timegm.cpp -o timegm.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c utils.cpp -o utils.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c uvutil.cpp -o uvutil.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c webapplication.cpp -o webapplication.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-base.cpp -o websockets-base.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hixie76.cpp -o websockets-hixie76.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hybi03.cpp -o websockets-hybi03.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-ietf.cpp -o websockets-ietf.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets.cpp -o websockets.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c winutils.cpp -o winutils.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http-parser/http_parser.c -o http-parser/http_parser.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c sha1/sha1.c -o sha1/sha1.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c base64/base64.cpp -o base64/base64.o +clang++ -std=gnu++17 -shared -L/usr/lib64/R/lib -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto -o httpuv.so callback.o callbackqueue.o cpp11.o filedatasource-unix.o filedatasource-win.o fs.o gzipdatasource.o http.o httprequest.o httpresponse.o httpuv.o md5.o mime.o socket.o staticpath.o thread.o timegm.o utils.o uvutil.o webapplication.o websockets-base.o websockets-hixie76.o websockets-hybi03.o websockets-ietf.o websockets.o winutils.o -luv ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o -pthread -L/usr/lib64/R/lib -lR +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/filedatasource-win.o: no symbols +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/winutils.o: no symbols +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +installing to /home/pacha/Documents/httpuv/httpuv.Rcheck/00LOCK-httpuv/00new/httpuv/libs +** R +** demo +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** testing if installed package can be loaded from temporary location +** checking absolute paths in shared objects and dynamic libraries +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (httpuv) +=== END 00install.out === +R CMD check completed with no ERRORs. Warnings/Notes (if any) are allowed. See ./check-gcc-clang/check-CXX17-clang.log for full output. +Run complete. diff --git a/check-gcc-clang/check-CXX17-gcc.log b/check-gcc-clang/check-CXX17-gcc.log new file mode 100644 index 000000000..efb610f9b --- /dev/null +++ b/check-gcc-clang/check-CXX17-gcc.log @@ -0,0 +1,170 @@ +Loading required package: usethis +Loading required package: usethis +* using log directory ‘/home/pacha/Documents/httpuv/httpuv.Rcheck’ +* using R version 4.6.0 (2026-04-24) +* using platform: x86_64-pc-linux-gnu +* R was compiled by + gcc (GCC) 15.2.1 20260209 + GNU Fortran (GCC) 15.2.1 20260209 +* running under: Manjaro Linux +* using session charset: UTF-8 +* current time: 2026-05-14 00:01:07 UTC +* using options ‘--no-manual --as-cran’ +* checking for file ‘httpuv/DESCRIPTION’ ... OK +* checking extension type ... Package +* this is package ‘httpuv’ version ‘1.6.16.9000’ +* package encoding: UTF-8 +* checking CRAN incoming feasibility ... [7s/16s] WARNING +Maintainer: ‘Winston Chang ’ + +Insufficient package version (submitted: 1.6.16.9000, existing: 1.6.17) +Version contains large components (1.6.16.9000) +* checking package namespace information ... OK +* checking package dependencies ... OK +* checking if this is a source package ... OK +* checking if there is a namespace ... OK +* checking for executable files ... OK +* checking for hidden files and directories ... OK +* checking for portable file names ... OK +* checking for sufficient/correct file permissions ... OK +* checking serialization versions ... OK +* checking whether package ‘httpuv’ can be installed ... [115s/91s] OK +* used C compiler: ‘gcc (GCC) 15.2.1 20260209’ +* used C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +* checking C++ specification ... INFO + specified C++17 +* checking installed package size ... INFO + installed size is 7.3Mb + sub-directories of 1Mb or more: + libs 6.9Mb +* checking package directory ... OK +* checking for future file timestamps ... OK +* checking DESCRIPTION meta-information ... OK +* checking top-level files ... NOTE +Non-standard file/directory found at top level: + ‘check-gcc-clang’ +* checking for left-over files ... OK +* checking index information ... OK +* checking package subdirectories ... OK +* checking code files for non-ASCII characters ... OK +* checking R files for syntax errors ... OK +* checking whether the package can be loaded ... OK +* checking whether the package can be loaded with stated dependencies ... OK +* checking whether the package can be unloaded cleanly ... OK +* checking whether the namespace can be loaded with stated dependencies ... OK +* checking whether the namespace can be unloaded cleanly ... OK +* checking loading without being on the library search path ... OK +* checking use of S3 registration ... OK +* checking dependencies in R code ... OK +* checking S3 generic/method consistency ... OK +* checking replacement functions ... OK +* checking foreign function calls ... OK +* checking R code for possible problems ... OK +* checking Rd files ... OK +* checking Rd metadata ... OK +* checking Rd line widths ... OK +* checking Rd cross-references ... OK +* checking for missing documentation entries ... OK +* checking for code/documentation mismatches ... OK +* checking Rd \usage sections ... OK +* checking Rd contents ... OK +* checking for unstated dependencies in examples ... OK +* checking line endings in shell scripts ... OK +* checking line endings in C/C++/Fortran sources/headers ... OK +* checking line endings in Makefiles ... OK +* checking compilation flags in Makevars ... OK +* checking for GNU extensions in Makefiles ... INFO +GNU make is a SystemRequirements. +* checking for portable use of $(BLAS_LIBS) and $(LAPACK_LIBS) ... OK +* checking use of PKG_*FLAGS in Makefiles ... OK +* checking use of SHLIB_OPENMP_*FLAGS in Makefiles ... OK +* checking include directives in Makefiles ... OK +* checking pragmas in C/C++ headers and code ... NOTE +File which contains pragma(s) suppressing diagnostics: + ‘src/libuv/test/task.h’ +* checking compilation flags used ... NOTE +Compilation used the following non-portable flag(s): + ‘-Werror=format-security’ ‘-Wformat’ ‘-Wp,-D_FORTIFY_SOURCE=3’ + ‘-Wp,-D_GLIBCXX_ASSERTIONS’ ‘-march=x86-64’ + ‘-mno-omit-leaf-frame-pointer’ +* checking compiled code ... OK +* checking examples ... OK +* checking for unstated dependencies in ‘demo’ ... OK +* checking for unstated dependencies in ‘tests’ ... OK +* checking tests ... + Running ‘testthat.R’ [19s/21s] + [19s/21s] OK +* checking for non-standard things in the check directory ... OK +* checking for detritus in the temp directory ... OK +* DONE + +Status: 1 WARNING, 3 NOTEs +See + ‘/home/pacha/Documents/httpuv/httpuv.Rcheck/00check.log’ +for details. + +=== BEGIN 00install.out === +Loading required package: usethis +* installing *source* package ‘httpuv’ ... +** this is package ‘httpuv’ version ‘1.6.16.9000’ +** using staged installation +** Using libuv found by pkg-config in /usr +** PKG_CFLAGS= +** PKG_LIBS=-luv +** libs +specified C++17 +using C compiler: ‘gcc (GCC) 15.2.1 20260209’ +using C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +using C++17 +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callback.cpp -o callback.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callbackqueue.cpp -o callbackqueue.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c cpp11.cpp -o cpp11.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-unix.cpp -o filedatasource-unix.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-win.cpp -o filedatasource-win.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c fs.cpp -o fs.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c gzipdatasource.cpp -o gzipdatasource.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http.cpp -o http.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httprequest.cpp -o httprequest.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpresponse.cpp -o httpresponse.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpuv.cpp -o httpuv.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c md5.c -o md5.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c mime.cpp -o mime.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c socket.cpp -o socket.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c staticpath.cpp -o staticpath.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c thread.cpp -o thread.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c timegm.cpp -o timegm.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c utils.cpp -o utils.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c uvutil.cpp -o uvutil.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c webapplication.cpp -o webapplication.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-base.cpp -o websockets-base.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hixie76.cpp -o websockets-hixie76.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hybi03.cpp -o websockets-hybi03.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-ietf.cpp -o websockets-ietf.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets.cpp -o websockets.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c winutils.cpp -o winutils.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http-parser/http_parser.c -o http-parser/http_parser.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c sha1/sha1.c -o sha1/sha1.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c base64/base64.cpp -o base64/base64.o +g++ -std=gnu++17 -shared -L/usr/lib64/R/lib -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto -o httpuv.so callback.o callbackqueue.o cpp11.o filedatasource-unix.o filedatasource-win.o fs.o gzipdatasource.o http.o httprequest.o httpresponse.o httpuv.o md5.o mime.o socket.o staticpath.o thread.o timegm.o utils.o uvutil.o webapplication.o websockets-base.o websockets-hixie76.o websockets-hybi03.o websockets-ietf.o websockets.o winutils.o -luv ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o -pthread -L/usr/lib64/R/lib -lR +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/filedatasource-win.o: no symbols +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/winutils.o: no symbols +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +installing to /home/pacha/Documents/httpuv/httpuv.Rcheck/00LOCK-httpuv/00new/httpuv/libs +** R +** demo +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** testing if installed package can be loaded from temporary location +** checking absolute paths in shared objects and dynamic libraries +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (httpuv) +=== END 00install.out === +R CMD check completed with no ERRORs. Warnings/Notes (if any) are allowed. See ./check-gcc-clang/check-CXX17-gcc.log for full output. +Run complete. diff --git a/check-gcc-clang/check-CXX20-clang.log b/check-gcc-clang/check-CXX20-clang.log new file mode 100644 index 000000000..959fbfc1d --- /dev/null +++ b/check-gcc-clang/check-CXX20-clang.log @@ -0,0 +1,167 @@ +Loading required package: usethis +Loading required package: usethis +* using log directory ‘/home/pacha/Documents/httpuv/httpuv.Rcheck’ +* using R version 4.6.0 (2026-04-24) +* using platform: x86_64-pc-linux-gnu +* R was compiled by + gcc (GCC) 15.2.1 20260209 + GNU Fortran (GCC) 15.2.1 20260209 +* running under: Manjaro Linux +* using session charset: UTF-8 +* current time: 2026-05-14 00:38:58 UTC +* using options ‘--no-manual --as-cran’ +* checking for file ‘httpuv/DESCRIPTION’ ... OK +* checking extension type ... Package +* this is package ‘httpuv’ version ‘1.6.16.9000’ +* package encoding: UTF-8 +* checking CRAN incoming feasibility ... [11s/19s] WARNING +Maintainer: ‘Winston Chang ’ + +Insufficient package version (submitted: 1.6.16.9000, existing: 1.6.17) +Version contains large components (1.6.16.9000) +* checking package namespace information ... OK +* checking package dependencies ... OK +* checking if this is a source package ... OK +* checking if there is a namespace ... OK +* checking for executable files ... OK +* checking for hidden files and directories ... OK +* checking for portable file names ... OK +* checking for sufficient/correct file permissions ... OK +* checking serialization versions ... OK +* checking whether package ‘httpuv’ can be installed ... [82s/83s] OK +* used C compiler: ‘clang version 22.1.3’ +* used C++ compiler: ‘clang version 22.1.3’ +* checking C++ specification ... INFO + specified C++20 +* checking installed package size ... OK +* checking package directory ... OK +* checking for future file timestamps ... OK +* checking DESCRIPTION meta-information ... OK +* checking top-level files ... NOTE +Non-standard file/directory found at top level: + ‘check-gcc-clang’ +* checking for left-over files ... OK +* checking index information ... OK +* checking package subdirectories ... OK +* checking code files for non-ASCII characters ... OK +* checking R files for syntax errors ... OK +* checking whether the package can be loaded ... OK +* checking whether the package can be loaded with stated dependencies ... OK +* checking whether the package can be unloaded cleanly ... OK +* checking whether the namespace can be loaded with stated dependencies ... OK +* checking whether the namespace can be unloaded cleanly ... OK +* checking loading without being on the library search path ... OK +* checking use of S3 registration ... OK +* checking dependencies in R code ... OK +* checking S3 generic/method consistency ... OK +* checking replacement functions ... OK +* checking foreign function calls ... OK +* checking R code for possible problems ... OK +* checking Rd files ... OK +* checking Rd metadata ... OK +* checking Rd line widths ... OK +* checking Rd cross-references ... OK +* checking for missing documentation entries ... OK +* checking for code/documentation mismatches ... OK +* checking Rd \usage sections ... OK +* checking Rd contents ... OK +* checking for unstated dependencies in examples ... OK +* checking line endings in shell scripts ... OK +* checking line endings in C/C++/Fortran sources/headers ... OK +* checking line endings in Makefiles ... OK +* checking compilation flags in Makevars ... OK +* checking for GNU extensions in Makefiles ... INFO +GNU make is a SystemRequirements. +* checking for portable use of $(BLAS_LIBS) and $(LAPACK_LIBS) ... OK +* checking use of PKG_*FLAGS in Makefiles ... OK +* checking use of SHLIB_OPENMP_*FLAGS in Makefiles ... OK +* checking include directives in Makefiles ... OK +* checking pragmas in C/C++ headers and code ... NOTE +File which contains pragma(s) suppressing diagnostics: + ‘src/libuv/test/task.h’ +* checking compilation flags used ... NOTE +Compilation used the following non-portable flag(s): + ‘-Werror=format-security’ ‘-Wformat’ ‘-Wp,-D_FORTIFY_SOURCE=3’ + ‘-Wp,-D_GLIBCXX_ASSERTIONS’ ‘-march=x86-64’ + ‘-mno-omit-leaf-frame-pointer’ +* checking compiled code ... OK +* checking examples ... OK +* checking for unstated dependencies in ‘demo’ ... OK +* checking for unstated dependencies in ‘tests’ ... OK +* checking tests ... + Running ‘testthat.R’ [19s/21s] + [19s/21s] OK +* checking for non-standard things in the check directory ... OK +* checking for detritus in the temp directory ... OK +* DONE + +Status: 1 WARNING, 3 NOTEs +See + ‘/home/pacha/Documents/httpuv/httpuv.Rcheck/00check.log’ +for details. + +=== BEGIN 00install.out === +Loading required package: usethis +* installing *source* package ‘httpuv’ ... +** this is package ‘httpuv’ version ‘1.6.16.9000’ +** using staged installation +** Using libuv found by pkg-config in /usr +** PKG_CFLAGS= +** PKG_LIBS=-luv +** libs +specified C++20 +using C compiler: ‘clang version 22.1.3’ +using C++ compiler: ‘clang version 22.1.3’ +using C++20 +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callback.cpp -o callback.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callbackqueue.cpp -o callbackqueue.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c cpp11.cpp -o cpp11.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-unix.cpp -o filedatasource-unix.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-win.cpp -o filedatasource-win.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c fs.cpp -o fs.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c gzipdatasource.cpp -o gzipdatasource.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http.cpp -o http.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httprequest.cpp -o httprequest.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpresponse.cpp -o httpresponse.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpuv.cpp -o httpuv.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c md5.c -o md5.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c mime.cpp -o mime.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c socket.cpp -o socket.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c staticpath.cpp -o staticpath.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c thread.cpp -o thread.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c timegm.cpp -o timegm.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c utils.cpp -o utils.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c uvutil.cpp -o uvutil.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c webapplication.cpp -o webapplication.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-base.cpp -o websockets-base.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hixie76.cpp -o websockets-hixie76.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hybi03.cpp -o websockets-hybi03.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-ietf.cpp -o websockets-ietf.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets.cpp -o websockets.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c winutils.cpp -o winutils.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http-parser/http_parser.c -o http-parser/http_parser.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c sha1/sha1.c -o sha1/sha1.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c base64/base64.cpp -o base64/base64.o +clang++ -std=gnu++20 -shared -L/usr/lib64/R/lib -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto -o httpuv.so callback.o callbackqueue.o cpp11.o filedatasource-unix.o filedatasource-win.o fs.o gzipdatasource.o http.o httprequest.o httpresponse.o httpuv.o md5.o mime.o socket.o staticpath.o thread.o timegm.o utils.o uvutil.o webapplication.o websockets-base.o websockets-hixie76.o websockets-hybi03.o websockets-ietf.o websockets.o winutils.o -luv ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o -pthread -L/usr/lib64/R/lib -lR +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/filedatasource-win.o: no symbols +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/winutils.o: no symbols +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +installing to /home/pacha/Documents/httpuv/httpuv.Rcheck/00LOCK-httpuv/00new/httpuv/libs +** R +** demo +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** testing if installed package can be loaded from temporary location +** checking absolute paths in shared objects and dynamic libraries +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (httpuv) +=== END 00install.out === +R CMD check completed with no ERRORs. Warnings/Notes (if any) are allowed. See ./check-gcc-clang/check-CXX20-clang.log for full output. +Run complete. diff --git a/check-gcc-clang/check-CXX20-gcc.log b/check-gcc-clang/check-CXX20-gcc.log new file mode 100644 index 000000000..25d79cb78 --- /dev/null +++ b/check-gcc-clang/check-CXX20-gcc.log @@ -0,0 +1,170 @@ +Loading required package: usethis +Loading required package: usethis +* using log directory ‘/home/pacha/Documents/httpuv/httpuv.Rcheck’ +* using R version 4.6.0 (2026-04-24) +* using platform: x86_64-pc-linux-gnu +* R was compiled by + gcc (GCC) 15.2.1 20260209 + GNU Fortran (GCC) 15.2.1 20260209 +* running under: Manjaro Linux +* using session charset: UTF-8 +* current time: 2026-05-14 00:34:43 UTC +* using options ‘--no-manual --as-cran’ +* checking for file ‘httpuv/DESCRIPTION’ ... OK +* checking extension type ... Package +* this is package ‘httpuv’ version ‘1.6.16.9000’ +* package encoding: UTF-8 +* checking CRAN incoming feasibility ... [9s/23s] WARNING +Maintainer: ‘Winston Chang ’ + +Insufficient package version (submitted: 1.6.16.9000, existing: 1.6.17) +Version contains large components (1.6.16.9000) +* checking package namespace information ... OK +* checking package dependencies ... OK +* checking if this is a source package ... OK +* checking if there is a namespace ... OK +* checking for executable files ... OK +* checking for hidden files and directories ... OK +* checking for portable file names ... OK +* checking for sufficient/correct file permissions ... OK +* checking serialization versions ... OK +* checking whether package ‘httpuv’ can be installed ... [130s/105s] OK +* used C compiler: ‘gcc (GCC) 15.2.1 20260209’ +* used C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +* checking C++ specification ... INFO + specified C++20 +* checking installed package size ... INFO + installed size is 7.3Mb + sub-directories of 1Mb or more: + libs 6.9Mb +* checking package directory ... OK +* checking for future file timestamps ... OK +* checking DESCRIPTION meta-information ... OK +* checking top-level files ... NOTE +Non-standard file/directory found at top level: + ‘check-gcc-clang’ +* checking for left-over files ... OK +* checking index information ... OK +* checking package subdirectories ... OK +* checking code files for non-ASCII characters ... OK +* checking R files for syntax errors ... OK +* checking whether the package can be loaded ... OK +* checking whether the package can be loaded with stated dependencies ... OK +* checking whether the package can be unloaded cleanly ... OK +* checking whether the namespace can be loaded with stated dependencies ... OK +* checking whether the namespace can be unloaded cleanly ... OK +* checking loading without being on the library search path ... OK +* checking use of S3 registration ... OK +* checking dependencies in R code ... OK +* checking S3 generic/method consistency ... OK +* checking replacement functions ... OK +* checking foreign function calls ... OK +* checking R code for possible problems ... OK +* checking Rd files ... OK +* checking Rd metadata ... OK +* checking Rd line widths ... OK +* checking Rd cross-references ... OK +* checking for missing documentation entries ... OK +* checking for code/documentation mismatches ... OK +* checking Rd \usage sections ... OK +* checking Rd contents ... OK +* checking for unstated dependencies in examples ... OK +* checking line endings in shell scripts ... OK +* checking line endings in C/C++/Fortran sources/headers ... OK +* checking line endings in Makefiles ... OK +* checking compilation flags in Makevars ... OK +* checking for GNU extensions in Makefiles ... INFO +GNU make is a SystemRequirements. +* checking for portable use of $(BLAS_LIBS) and $(LAPACK_LIBS) ... OK +* checking use of PKG_*FLAGS in Makefiles ... OK +* checking use of SHLIB_OPENMP_*FLAGS in Makefiles ... OK +* checking include directives in Makefiles ... OK +* checking pragmas in C/C++ headers and code ... NOTE +File which contains pragma(s) suppressing diagnostics: + ‘src/libuv/test/task.h’ +* checking compilation flags used ... NOTE +Compilation used the following non-portable flag(s): + ‘-Werror=format-security’ ‘-Wformat’ ‘-Wp,-D_FORTIFY_SOURCE=3’ + ‘-Wp,-D_GLIBCXX_ASSERTIONS’ ‘-march=x86-64’ + ‘-mno-omit-leaf-frame-pointer’ +* checking compiled code ... OK +* checking examples ... OK +* checking for unstated dependencies in ‘demo’ ... OK +* checking for unstated dependencies in ‘tests’ ... OK +* checking tests ... + Running ‘testthat.R’ [21s/22s] + [21s/22s] OK +* checking for non-standard things in the check directory ... OK +* checking for detritus in the temp directory ... OK +* DONE + +Status: 1 WARNING, 3 NOTEs +See + ‘/home/pacha/Documents/httpuv/httpuv.Rcheck/00check.log’ +for details. + +=== BEGIN 00install.out === +Loading required package: usethis +* installing *source* package ‘httpuv’ ... +** this is package ‘httpuv’ version ‘1.6.16.9000’ +** using staged installation +** Using libuv found by pkg-config in /usr +** PKG_CFLAGS= +** PKG_LIBS=-luv +** libs +specified C++20 +using C compiler: ‘gcc (GCC) 15.2.1 20260209’ +using C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +using C++20 +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callback.cpp -o callback.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callbackqueue.cpp -o callbackqueue.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c cpp11.cpp -o cpp11.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-unix.cpp -o filedatasource-unix.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-win.cpp -o filedatasource-win.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c fs.cpp -o fs.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c gzipdatasource.cpp -o gzipdatasource.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http.cpp -o http.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httprequest.cpp -o httprequest.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpresponse.cpp -o httpresponse.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpuv.cpp -o httpuv.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c md5.c -o md5.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c mime.cpp -o mime.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c socket.cpp -o socket.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c staticpath.cpp -o staticpath.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c thread.cpp -o thread.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c timegm.cpp -o timegm.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c utils.cpp -o utils.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c uvutil.cpp -o uvutil.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c webapplication.cpp -o webapplication.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-base.cpp -o websockets-base.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hixie76.cpp -o websockets-hixie76.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hybi03.cpp -o websockets-hybi03.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-ietf.cpp -o websockets-ietf.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets.cpp -o websockets.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c winutils.cpp -o winutils.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http-parser/http_parser.c -o http-parser/http_parser.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c sha1/sha1.c -o sha1/sha1.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c base64/base64.cpp -o base64/base64.o +g++ -std=gnu++20 -shared -L/usr/lib64/R/lib -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto -o httpuv.so callback.o callbackqueue.o cpp11.o filedatasource-unix.o filedatasource-win.o fs.o gzipdatasource.o http.o httprequest.o httpresponse.o httpuv.o md5.o mime.o socket.o staticpath.o thread.o timegm.o utils.o uvutil.o webapplication.o websockets-base.o websockets-hixie76.o websockets-hybi03.o websockets-ietf.o websockets.o winutils.o -luv ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o -pthread -L/usr/lib64/R/lib -lR +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/filedatasource-win.o: no symbols +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/winutils.o: no symbols +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +installing to /home/pacha/Documents/httpuv/httpuv.Rcheck/00LOCK-httpuv/00new/httpuv/libs +** R +** demo +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** testing if installed package can be loaded from temporary location +** checking absolute paths in shared objects and dynamic libraries +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (httpuv) +=== END 00install.out === +R CMD check completed with no ERRORs. Warnings/Notes (if any) are allowed. See ./check-gcc-clang/check-CXX20-gcc.log for full output. +Run complete. diff --git a/check-gcc-clang/check-CXX23-clang.log b/check-gcc-clang/check-CXX23-clang.log new file mode 100644 index 000000000..6fdf67e7b --- /dev/null +++ b/check-gcc-clang/check-CXX23-clang.log @@ -0,0 +1,167 @@ +Loading required package: usethis +Loading required package: usethis +* using log directory ‘/home/pacha/Documents/httpuv/httpuv.Rcheck’ +* using R version 4.6.0 (2026-04-24) +* using platform: x86_64-pc-linux-gnu +* R was compiled by + gcc (GCC) 15.2.1 20260209 + GNU Fortran (GCC) 15.2.1 20260209 +* running under: Manjaro Linux +* using session charset: UTF-8 +* current time: 2026-05-14 00:30:35 UTC +* using options ‘--no-manual --as-cran’ +* checking for file ‘httpuv/DESCRIPTION’ ... OK +* checking extension type ... Package +* this is package ‘httpuv’ version ‘1.6.16.9000’ +* package encoding: UTF-8 +* checking CRAN incoming feasibility ... [7s/16s] WARNING +Maintainer: ‘Winston Chang ’ + +Insufficient package version (submitted: 1.6.16.9000, existing: 1.6.17) +Version contains large components (1.6.16.9000) +* checking package namespace information ... OK +* checking package dependencies ... OK +* checking if this is a source package ... OK +* checking if there is a namespace ... OK +* checking for executable files ... OK +* checking for hidden files and directories ... OK +* checking for portable file names ... OK +* checking for sufficient/correct file permissions ... OK +* checking serialization versions ... OK +* checking whether package ‘httpuv’ can be installed ... [119s/121s] OK +* used C compiler: ‘clang version 22.1.3’ +* used C++ compiler: ‘clang version 22.1.3’ +* checking C++ specification ... OK + Not all R platforms support C++23 +* checking installed package size ... OK +* checking package directory ... OK +* checking for future file timestamps ... OK +* checking DESCRIPTION meta-information ... OK +* checking top-level files ... NOTE +Non-standard file/directory found at top level: + ‘check-gcc-clang’ +* checking for left-over files ... OK +* checking index information ... OK +* checking package subdirectories ... OK +* checking code files for non-ASCII characters ... OK +* checking R files for syntax errors ... OK +* checking whether the package can be loaded ... OK +* checking whether the package can be loaded with stated dependencies ... OK +* checking whether the package can be unloaded cleanly ... OK +* checking whether the namespace can be loaded with stated dependencies ... OK +* checking whether the namespace can be unloaded cleanly ... OK +* checking loading without being on the library search path ... OK +* checking use of S3 registration ... OK +* checking dependencies in R code ... OK +* checking S3 generic/method consistency ... OK +* checking replacement functions ... OK +* checking foreign function calls ... OK +* checking R code for possible problems ... OK +* checking Rd files ... OK +* checking Rd metadata ... OK +* checking Rd line widths ... OK +* checking Rd cross-references ... OK +* checking for missing documentation entries ... OK +* checking for code/documentation mismatches ... OK +* checking Rd \usage sections ... OK +* checking Rd contents ... OK +* checking for unstated dependencies in examples ... OK +* checking line endings in shell scripts ... OK +* checking line endings in C/C++/Fortran sources/headers ... OK +* checking line endings in Makefiles ... OK +* checking compilation flags in Makevars ... OK +* checking for GNU extensions in Makefiles ... INFO +GNU make is a SystemRequirements. +* checking for portable use of $(BLAS_LIBS) and $(LAPACK_LIBS) ... OK +* checking use of PKG_*FLAGS in Makefiles ... OK +* checking use of SHLIB_OPENMP_*FLAGS in Makefiles ... OK +* checking include directives in Makefiles ... OK +* checking pragmas in C/C++ headers and code ... NOTE +File which contains pragma(s) suppressing diagnostics: + ‘src/libuv/test/task.h’ +* checking compilation flags used ... NOTE +Compilation used the following non-portable flag(s): + ‘-Werror=format-security’ ‘-Wformat’ ‘-Wp,-D_FORTIFY_SOURCE=3’ + ‘-Wp,-D_GLIBCXX_ASSERTIONS’ ‘-march=x86-64’ + ‘-mno-omit-leaf-frame-pointer’ +* checking compiled code ... OK +* checking examples ... OK +* checking for unstated dependencies in ‘demo’ ... OK +* checking for unstated dependencies in ‘tests’ ... OK +* checking tests ... + Running ‘testthat.R’ [18s/20s] + [18s/20s] OK +* checking for non-standard things in the check directory ... OK +* checking for detritus in the temp directory ... OK +* DONE + +Status: 1 WARNING, 3 NOTEs +See + ‘/home/pacha/Documents/httpuv/httpuv.Rcheck/00check.log’ +for details. + +=== BEGIN 00install.out === +Loading required package: usethis +* installing *source* package ‘httpuv’ ... +** this is package ‘httpuv’ version ‘1.6.16.9000’ +** using staged installation +** Using libuv found by pkg-config in /usr +** PKG_CFLAGS= +** PKG_LIBS=-luv +** libs +specified C++23 +using C compiler: ‘clang version 22.1.3’ +using C++ compiler: ‘clang version 22.1.3’ +using C++23 +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callback.cpp -o callback.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callbackqueue.cpp -o callbackqueue.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c cpp11.cpp -o cpp11.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-unix.cpp -o filedatasource-unix.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-win.cpp -o filedatasource-win.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c fs.cpp -o fs.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c gzipdatasource.cpp -o gzipdatasource.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http.cpp -o http.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httprequest.cpp -o httprequest.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpresponse.cpp -o httpresponse.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpuv.cpp -o httpuv.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c md5.c -o md5.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c mime.cpp -o mime.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c socket.cpp -o socket.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c staticpath.cpp -o staticpath.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c thread.cpp -o thread.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c timegm.cpp -o timegm.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c utils.cpp -o utils.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c uvutil.cpp -o uvutil.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c webapplication.cpp -o webapplication.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-base.cpp -o websockets-base.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hixie76.cpp -o websockets-hixie76.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hybi03.cpp -o websockets-hybi03.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-ietf.cpp -o websockets-ietf.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets.cpp -o websockets.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c winutils.cpp -o winutils.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http-parser/http_parser.c -o http-parser/http_parser.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c sha1/sha1.c -o sha1/sha1.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c base64/base64.cpp -o base64/base64.o +clang++ -std=gnu++23 -shared -L/usr/lib64/R/lib -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto -o httpuv.so callback.o callbackqueue.o cpp11.o filedatasource-unix.o filedatasource-win.o fs.o gzipdatasource.o http.o httprequest.o httpresponse.o httpuv.o md5.o mime.o socket.o staticpath.o thread.o timegm.o utils.o uvutil.o webapplication.o websockets-base.o websockets-hixie76.o websockets-hybi03.o websockets-ietf.o websockets.o winutils.o -luv ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o -pthread -L/usr/lib64/R/lib -lR +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/filedatasource-win.o: no symbols +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/winutils.o: no symbols +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +installing to /home/pacha/Documents/httpuv/httpuv.Rcheck/00LOCK-httpuv/00new/httpuv/libs +** R +** demo +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** testing if installed package can be loaded from temporary location +** checking absolute paths in shared objects and dynamic libraries +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (httpuv) +=== END 00install.out === +R CMD check completed with no ERRORs. Warnings/Notes (if any) are allowed. See ./check-gcc-clang/check-CXX23-clang.log for full output. +Run complete. diff --git a/check-gcc-clang/check-CXX23-gcc.log b/check-gcc-clang/check-CXX23-gcc.log new file mode 100644 index 000000000..14b1ee8da --- /dev/null +++ b/check-gcc-clang/check-CXX23-gcc.log @@ -0,0 +1,170 @@ +Loading required package: usethis +Loading required package: usethis +* using log directory ‘/home/pacha/Documents/httpuv/httpuv.Rcheck’ +* using R version 4.6.0 (2026-04-24) +* using platform: x86_64-pc-linux-gnu +* R was compiled by + gcc (GCC) 15.2.1 20260209 + GNU Fortran (GCC) 15.2.1 20260209 +* running under: Manjaro Linux +* using session charset: UTF-8 +* current time: 2026-05-14 00:09:32 UTC +* using options ‘--no-manual --as-cran’ +* checking for file ‘httpuv/DESCRIPTION’ ... OK +* checking extension type ... Package +* this is package ‘httpuv’ version ‘1.6.16.9000’ +* package encoding: UTF-8 +* checking CRAN incoming feasibility ... [8s/17s] WARNING +Maintainer: ‘Winston Chang ’ + +Insufficient package version (submitted: 1.6.16.9000, existing: 1.6.17) +Version contains large components (1.6.16.9000) +* checking package namespace information ... OK +* checking package dependencies ... OK +* checking if this is a source package ... OK +* checking if there is a namespace ... OK +* checking for executable files ... OK +* checking for hidden files and directories ... OK +* checking for portable file names ... OK +* checking for sufficient/correct file permissions ... OK +* checking serialization versions ... OK +* checking whether package ‘httpuv’ can be installed ... [146s/122s] OK +* used C compiler: ‘gcc (GCC) 15.2.1 20260209’ +* used C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +* checking C++ specification ... OK + Not all R platforms support C++23 +* checking installed package size ... INFO + installed size is 7.7Mb + sub-directories of 1Mb or more: + libs 7.3Mb +* checking package directory ... OK +* checking for future file timestamps ... OK +* checking DESCRIPTION meta-information ... OK +* checking top-level files ... NOTE +Non-standard file/directory found at top level: + ‘check-gcc-clang’ +* checking for left-over files ... OK +* checking index information ... OK +* checking package subdirectories ... OK +* checking code files for non-ASCII characters ... OK +* checking R files for syntax errors ... OK +* checking whether the package can be loaded ... OK +* checking whether the package can be loaded with stated dependencies ... OK +* checking whether the package can be unloaded cleanly ... OK +* checking whether the namespace can be loaded with stated dependencies ... OK +* checking whether the namespace can be unloaded cleanly ... OK +* checking loading without being on the library search path ... OK +* checking use of S3 registration ... OK +* checking dependencies in R code ... OK +* checking S3 generic/method consistency ... OK +* checking replacement functions ... OK +* checking foreign function calls ... OK +* checking R code for possible problems ... OK +* checking Rd files ... OK +* checking Rd metadata ... OK +* checking Rd line widths ... OK +* checking Rd cross-references ... OK +* checking for missing documentation entries ... OK +* checking for code/documentation mismatches ... OK +* checking Rd \usage sections ... OK +* checking Rd contents ... OK +* checking for unstated dependencies in examples ... OK +* checking line endings in shell scripts ... OK +* checking line endings in C/C++/Fortran sources/headers ... OK +* checking line endings in Makefiles ... OK +* checking compilation flags in Makevars ... OK +* checking for GNU extensions in Makefiles ... INFO +GNU make is a SystemRequirements. +* checking for portable use of $(BLAS_LIBS) and $(LAPACK_LIBS) ... OK +* checking use of PKG_*FLAGS in Makefiles ... OK +* checking use of SHLIB_OPENMP_*FLAGS in Makefiles ... OK +* checking include directives in Makefiles ... OK +* checking pragmas in C/C++ headers and code ... NOTE +File which contains pragma(s) suppressing diagnostics: + ‘src/libuv/test/task.h’ +* checking compilation flags used ... NOTE +Compilation used the following non-portable flag(s): + ‘-Werror=format-security’ ‘-Wformat’ ‘-Wp,-D_FORTIFY_SOURCE=3’ + ‘-Wp,-D_GLIBCXX_ASSERTIONS’ ‘-march=x86-64’ + ‘-mno-omit-leaf-frame-pointer’ +* checking compiled code ... OK +* checking examples ... OK +* checking for unstated dependencies in ‘demo’ ... OK +* checking for unstated dependencies in ‘tests’ ... OK +* checking tests ... + Running ‘testthat.R’ [19s/21s] + [20s/21s] OK +* checking for non-standard things in the check directory ... OK +* checking for detritus in the temp directory ... OK +* DONE + +Status: 1 WARNING, 3 NOTEs +See + ‘/home/pacha/Documents/httpuv/httpuv.Rcheck/00check.log’ +for details. + +=== BEGIN 00install.out === +Loading required package: usethis +* installing *source* package ‘httpuv’ ... +** this is package ‘httpuv’ version ‘1.6.16.9000’ +** using staged installation +** Using libuv found by pkg-config in /usr +** PKG_CFLAGS= +** PKG_LIBS=-luv +** libs +specified C++23 +using C compiler: ‘gcc (GCC) 15.2.1 20260209’ +using C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +using C++23 +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callback.cpp -o callback.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callbackqueue.cpp -o callbackqueue.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c cpp11.cpp -o cpp11.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-unix.cpp -o filedatasource-unix.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-win.cpp -o filedatasource-win.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c fs.cpp -o fs.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c gzipdatasource.cpp -o gzipdatasource.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http.cpp -o http.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httprequest.cpp -o httprequest.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpresponse.cpp -o httpresponse.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpuv.cpp -o httpuv.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c md5.c -o md5.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c mime.cpp -o mime.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c socket.cpp -o socket.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c staticpath.cpp -o staticpath.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c thread.cpp -o thread.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c timegm.cpp -o timegm.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c utils.cpp -o utils.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c uvutil.cpp -o uvutil.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c webapplication.cpp -o webapplication.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-base.cpp -o websockets-base.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hixie76.cpp -o websockets-hixie76.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hybi03.cpp -o websockets-hybi03.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-ietf.cpp -o websockets-ietf.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets.cpp -o websockets.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c winutils.cpp -o winutils.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http-parser/http_parser.c -o http-parser/http_parser.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c sha1/sha1.c -o sha1/sha1.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c base64/base64.cpp -o base64/base64.o +g++ -std=gnu++23 -shared -L/usr/lib64/R/lib -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto -o httpuv.so callback.o callbackqueue.o cpp11.o filedatasource-unix.o filedatasource-win.o fs.o gzipdatasource.o http.o httprequest.o httpresponse.o httpuv.o md5.o mime.o socket.o staticpath.o thread.o timegm.o utils.o uvutil.o webapplication.o websockets-base.o websockets-hixie76.o websockets-hybi03.o websockets-ietf.o websockets.o winutils.o -luv ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o -pthread -L/usr/lib64/R/lib -lR +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/filedatasource-win.o: no symbols +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/winutils.o: no symbols +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +installing to /home/pacha/Documents/httpuv/httpuv.Rcheck/00LOCK-httpuv/00new/httpuv/libs +** R +** demo +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** testing if installed package can be loaded from temporary location +** checking absolute paths in shared objects and dynamic libraries +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (httpuv) +=== END 00install.out === +R CMD check completed with no ERRORs. Warnings/Notes (if any) are allowed. See ./check-gcc-clang/check-CXX23-gcc.log for full output. +Run complete. diff --git a/check-gcc-clang/install-CXX17-clang.log b/check-gcc-clang/install-CXX17-clang.log new file mode 100644 index 000000000..32560d2d6 --- /dev/null +++ b/check-gcc-clang/install-CXX17-clang.log @@ -0,0 +1,61 @@ +Loading required package: usethis +* installing *source* package ‘httpuv’ ... +** this is package ‘httpuv’ version ‘1.6.16.9000’ +** using staged installation +** Using libuv found by pkg-config in /usr +** PKG_CFLAGS= +** PKG_LIBS=-luv +** libs +specified C++17 +using C compiler: ‘clang version 22.1.3’ +using C++ compiler: ‘clang version 22.1.3’ +using C++17 +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callback.cpp -o callback.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callbackqueue.cpp -o callbackqueue.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c cpp11.cpp -o cpp11.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-unix.cpp -o filedatasource-unix.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-win.cpp -o filedatasource-win.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c fs.cpp -o fs.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c gzipdatasource.cpp -o gzipdatasource.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http.cpp -o http.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httprequest.cpp -o httprequest.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpresponse.cpp -o httpresponse.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpuv.cpp -o httpuv.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c md5.c -o md5.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c mime.cpp -o mime.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c socket.cpp -o socket.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c staticpath.cpp -o staticpath.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c thread.cpp -o thread.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c timegm.cpp -o timegm.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c utils.cpp -o utils.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c uvutil.cpp -o uvutil.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c webapplication.cpp -o webapplication.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-base.cpp -o websockets-base.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hixie76.cpp -o websockets-hixie76.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hybi03.cpp -o websockets-hybi03.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-ietf.cpp -o websockets-ietf.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets.cpp -o websockets.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c winutils.cpp -o winutils.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http-parser/http_parser.c -o http-parser/http_parser.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c sha1/sha1.c -o sha1/sha1.o +clang++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c base64/base64.cpp -o base64/base64.o +clang++ -std=gnu++17 -shared -L/usr/lib64/R/lib -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto -o httpuv.so callback.o callbackqueue.o cpp11.o filedatasource-unix.o filedatasource-win.o fs.o gzipdatasource.o http.o httprequest.o httpresponse.o httpuv.o md5.o mime.o socket.o staticpath.o thread.o timegm.o utils.o uvutil.o webapplication.o websockets-base.o websockets-hixie76.o websockets-hybi03.o websockets-ietf.o websockets.o winutils.o -luv ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o -pthread -L/usr/lib64/R/lib -lR +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/filedatasource-win.o: no symbols +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/winutils.o: no symbols +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +installing to /home/pacha/Documents/httpuv/httpuv.Rcheck/00LOCK-httpuv/00new/httpuv/libs +** R +** demo +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** testing if installed package can be loaded from temporary location +** checking absolute paths in shared objects and dynamic libraries +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (httpuv) diff --git a/check-gcc-clang/install-CXX17-gcc.log b/check-gcc-clang/install-CXX17-gcc.log new file mode 100644 index 000000000..6966e47bd --- /dev/null +++ b/check-gcc-clang/install-CXX17-gcc.log @@ -0,0 +1,61 @@ +Loading required package: usethis +* installing *source* package ‘httpuv’ ... +** this is package ‘httpuv’ version ‘1.6.16.9000’ +** using staged installation +** Using libuv found by pkg-config in /usr +** PKG_CFLAGS= +** PKG_LIBS=-luv +** libs +specified C++17 +using C compiler: ‘gcc (GCC) 15.2.1 20260209’ +using C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +using C++17 +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callback.cpp -o callback.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callbackqueue.cpp -o callbackqueue.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c cpp11.cpp -o cpp11.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-unix.cpp -o filedatasource-unix.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-win.cpp -o filedatasource-win.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c fs.cpp -o fs.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c gzipdatasource.cpp -o gzipdatasource.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http.cpp -o http.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httprequest.cpp -o httprequest.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpresponse.cpp -o httpresponse.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpuv.cpp -o httpuv.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c md5.c -o md5.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c mime.cpp -o mime.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c socket.cpp -o socket.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c staticpath.cpp -o staticpath.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c thread.cpp -o thread.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c timegm.cpp -o timegm.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c utils.cpp -o utils.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c uvutil.cpp -o uvutil.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c webapplication.cpp -o webapplication.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-base.cpp -o websockets-base.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hixie76.cpp -o websockets-hixie76.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hybi03.cpp -o websockets-hybi03.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-ietf.cpp -o websockets-ietf.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets.cpp -o websockets.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c winutils.cpp -o winutils.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http-parser/http_parser.c -o http-parser/http_parser.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c sha1/sha1.c -o sha1/sha1.o +g++ -std=gnu++17 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c base64/base64.cpp -o base64/base64.o +g++ -std=gnu++17 -shared -L/usr/lib64/R/lib -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto -o httpuv.so callback.o callbackqueue.o cpp11.o filedatasource-unix.o filedatasource-win.o fs.o gzipdatasource.o http.o httprequest.o httpresponse.o httpuv.o md5.o mime.o socket.o staticpath.o thread.o timegm.o utils.o uvutil.o webapplication.o websockets-base.o websockets-hixie76.o websockets-hybi03.o websockets-ietf.o websockets.o winutils.o -luv ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o -pthread -L/usr/lib64/R/lib -lR +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/filedatasource-win.o: no symbols +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/winutils.o: no symbols +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +installing to /home/pacha/Documents/httpuv/httpuv.Rcheck/00LOCK-httpuv/00new/httpuv/libs +** R +** demo +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** testing if installed package can be loaded from temporary location +** checking absolute paths in shared objects and dynamic libraries +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (httpuv) diff --git a/check-gcc-clang/install-CXX20-clang.log b/check-gcc-clang/install-CXX20-clang.log new file mode 100644 index 000000000..a03854567 --- /dev/null +++ b/check-gcc-clang/install-CXX20-clang.log @@ -0,0 +1,61 @@ +Loading required package: usethis +* installing *source* package ‘httpuv’ ... +** this is package ‘httpuv’ version ‘1.6.16.9000’ +** using staged installation +** Using libuv found by pkg-config in /usr +** PKG_CFLAGS= +** PKG_LIBS=-luv +** libs +specified C++20 +using C compiler: ‘clang version 22.1.3’ +using C++ compiler: ‘clang version 22.1.3’ +using C++20 +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callback.cpp -o callback.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callbackqueue.cpp -o callbackqueue.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c cpp11.cpp -o cpp11.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-unix.cpp -o filedatasource-unix.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-win.cpp -o filedatasource-win.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c fs.cpp -o fs.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c gzipdatasource.cpp -o gzipdatasource.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http.cpp -o http.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httprequest.cpp -o httprequest.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpresponse.cpp -o httpresponse.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpuv.cpp -o httpuv.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c md5.c -o md5.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c mime.cpp -o mime.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c socket.cpp -o socket.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c staticpath.cpp -o staticpath.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c thread.cpp -o thread.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c timegm.cpp -o timegm.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c utils.cpp -o utils.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c uvutil.cpp -o uvutil.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c webapplication.cpp -o webapplication.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-base.cpp -o websockets-base.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hixie76.cpp -o websockets-hixie76.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hybi03.cpp -o websockets-hybi03.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-ietf.cpp -o websockets-ietf.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets.cpp -o websockets.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c winutils.cpp -o winutils.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http-parser/http_parser.c -o http-parser/http_parser.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c sha1/sha1.c -o sha1/sha1.o +clang++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c base64/base64.cpp -o base64/base64.o +clang++ -std=gnu++20 -shared -L/usr/lib64/R/lib -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto -o httpuv.so callback.o callbackqueue.o cpp11.o filedatasource-unix.o filedatasource-win.o fs.o gzipdatasource.o http.o httprequest.o httpresponse.o httpuv.o md5.o mime.o socket.o staticpath.o thread.o timegm.o utils.o uvutil.o webapplication.o websockets-base.o websockets-hixie76.o websockets-hybi03.o websockets-ietf.o websockets.o winutils.o -luv ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o -pthread -L/usr/lib64/R/lib -lR +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/filedatasource-win.o: no symbols +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/winutils.o: no symbols +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +installing to /home/pacha/Documents/httpuv/httpuv.Rcheck/00LOCK-httpuv/00new/httpuv/libs +** R +** demo +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** testing if installed package can be loaded from temporary location +** checking absolute paths in shared objects and dynamic libraries +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (httpuv) diff --git a/check-gcc-clang/install-CXX20-gcc.log b/check-gcc-clang/install-CXX20-gcc.log new file mode 100644 index 000000000..35d2becd6 --- /dev/null +++ b/check-gcc-clang/install-CXX20-gcc.log @@ -0,0 +1,61 @@ +Loading required package: usethis +* installing *source* package ‘httpuv’ ... +** this is package ‘httpuv’ version ‘1.6.16.9000’ +** using staged installation +** Using libuv found by pkg-config in /usr +** PKG_CFLAGS= +** PKG_LIBS=-luv +** libs +specified C++20 +using C compiler: ‘gcc (GCC) 15.2.1 20260209’ +using C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +using C++20 +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callback.cpp -o callback.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callbackqueue.cpp -o callbackqueue.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c cpp11.cpp -o cpp11.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-unix.cpp -o filedatasource-unix.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-win.cpp -o filedatasource-win.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c fs.cpp -o fs.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c gzipdatasource.cpp -o gzipdatasource.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http.cpp -o http.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httprequest.cpp -o httprequest.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpresponse.cpp -o httpresponse.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpuv.cpp -o httpuv.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c md5.c -o md5.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c mime.cpp -o mime.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c socket.cpp -o socket.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c staticpath.cpp -o staticpath.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c thread.cpp -o thread.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c timegm.cpp -o timegm.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c utils.cpp -o utils.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c uvutil.cpp -o uvutil.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c webapplication.cpp -o webapplication.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-base.cpp -o websockets-base.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hixie76.cpp -o websockets-hixie76.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hybi03.cpp -o websockets-hybi03.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-ietf.cpp -o websockets-ietf.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets.cpp -o websockets.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c winutils.cpp -o winutils.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http-parser/http_parser.c -o http-parser/http_parser.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c sha1/sha1.c -o sha1/sha1.o +g++ -std=gnu++20 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c base64/base64.cpp -o base64/base64.o +g++ -std=gnu++20 -shared -L/usr/lib64/R/lib -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto -o httpuv.so callback.o callbackqueue.o cpp11.o filedatasource-unix.o filedatasource-win.o fs.o gzipdatasource.o http.o httprequest.o httpresponse.o httpuv.o md5.o mime.o socket.o staticpath.o thread.o timegm.o utils.o uvutil.o webapplication.o websockets-base.o websockets-hixie76.o websockets-hybi03.o websockets-ietf.o websockets.o winutils.o -luv ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o -pthread -L/usr/lib64/R/lib -lR +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/filedatasource-win.o: no symbols +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/winutils.o: no symbols +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +installing to /home/pacha/Documents/httpuv/httpuv.Rcheck/00LOCK-httpuv/00new/httpuv/libs +** R +** demo +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** testing if installed package can be loaded from temporary location +** checking absolute paths in shared objects and dynamic libraries +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (httpuv) diff --git a/check-gcc-clang/install-CXX23-clang.log b/check-gcc-clang/install-CXX23-clang.log new file mode 100644 index 000000000..8221c65c4 --- /dev/null +++ b/check-gcc-clang/install-CXX23-clang.log @@ -0,0 +1,61 @@ +Loading required package: usethis +* installing *source* package ‘httpuv’ ... +** this is package ‘httpuv’ version ‘1.6.16.9000’ +** using staged installation +** Using libuv found by pkg-config in /usr +** PKG_CFLAGS= +** PKG_LIBS=-luv +** libs +specified C++23 +using C compiler: ‘clang version 22.1.3’ +using C++ compiler: ‘clang version 22.1.3’ +using C++23 +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callback.cpp -o callback.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callbackqueue.cpp -o callbackqueue.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c cpp11.cpp -o cpp11.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-unix.cpp -o filedatasource-unix.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-win.cpp -o filedatasource-win.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c fs.cpp -o fs.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c gzipdatasource.cpp -o gzipdatasource.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http.cpp -o http.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httprequest.cpp -o httprequest.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpresponse.cpp -o httpresponse.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpuv.cpp -o httpuv.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c md5.c -o md5.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c mime.cpp -o mime.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c socket.cpp -o socket.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c staticpath.cpp -o staticpath.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c thread.cpp -o thread.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c timegm.cpp -o timegm.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c utils.cpp -o utils.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c uvutil.cpp -o uvutil.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c webapplication.cpp -o webapplication.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-base.cpp -o websockets-base.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hixie76.cpp -o websockets-hixie76.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hybi03.cpp -o websockets-hybi03.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-ietf.cpp -o websockets-ietf.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets.cpp -o websockets.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c winutils.cpp -o winutils.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http-parser/http_parser.c -o http-parser/http_parser.o +clang -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c sha1/sha1.c -o sha1/sha1.o +clang++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c base64/base64.cpp -o base64/base64.o +clang++ -std=gnu++23 -shared -L/usr/lib64/R/lib -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto -o httpuv.so callback.o callbackqueue.o cpp11.o filedatasource-unix.o filedatasource-win.o fs.o gzipdatasource.o http.o httprequest.o httpresponse.o httpuv.o md5.o mime.o socket.o staticpath.o thread.o timegm.o utils.o uvutil.o webapplication.o websockets-base.o websockets-hixie76.o websockets-hybi03.o websockets-ietf.o websockets.o winutils.o -luv ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o -pthread -L/usr/lib64/R/lib -lR +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/filedatasource-win.o: no symbols +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/winutils.o: no symbols +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +installing to /home/pacha/Documents/httpuv/httpuv.Rcheck/00LOCK-httpuv/00new/httpuv/libs +** R +** demo +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** testing if installed package can be loaded from temporary location +** checking absolute paths in shared objects and dynamic libraries +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (httpuv) diff --git a/check-gcc-clang/install-CXX23-gcc.log b/check-gcc-clang/install-CXX23-gcc.log new file mode 100644 index 000000000..db1786c7d --- /dev/null +++ b/check-gcc-clang/install-CXX23-gcc.log @@ -0,0 +1,61 @@ +Loading required package: usethis +* installing *source* package ‘httpuv’ ... +** this is package ‘httpuv’ version ‘1.6.16.9000’ +** using staged installation +** Using libuv found by pkg-config in /usr +** PKG_CFLAGS= +** PKG_LIBS=-luv +** libs +specified C++23 +using C compiler: ‘gcc (GCC) 15.2.1 20260209’ +using C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +using C++23 +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callback.cpp -o callback.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c callbackqueue.cpp -o callbackqueue.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c cpp11.cpp -o cpp11.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-unix.cpp -o filedatasource-unix.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c filedatasource-win.cpp -o filedatasource-win.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c fs.cpp -o fs.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c gzipdatasource.cpp -o gzipdatasource.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http.cpp -o http.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httprequest.cpp -o httprequest.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpresponse.cpp -o httpresponse.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c httpuv.cpp -o httpuv.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c md5.c -o md5.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c mime.cpp -o mime.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c socket.cpp -o socket.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c staticpath.cpp -o staticpath.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c thread.cpp -o thread.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c timegm.cpp -o timegm.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c utils.cpp -o utils.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c uvutil.cpp -o uvutil.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c webapplication.cpp -o webapplication.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-base.cpp -o websockets-base.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hixie76.cpp -o websockets-hixie76.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-hybi03.cpp -o websockets-hybi03.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets-ietf.cpp -o websockets-ietf.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c websockets.cpp -o websockets.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c winutils.cpp -o winutils.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c http-parser/http_parser.c -o http-parser/http_parser.o +gcc -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c sha1/sha1.c -o sha1/sha1.o +g++ -std=gnu++23 -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/r/src=/usr/src/debug/r -flto=auto -ffat-lto-objects -c base64/base64.cpp -o base64/base64.o +g++ -std=gnu++23 -shared -L/usr/lib64/R/lib -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -flto=auto -o httpuv.so callback.o callbackqueue.o cpp11.o filedatasource-unix.o filedatasource-win.o fs.o gzipdatasource.o http.o httprequest.o httpresponse.o httpuv.o md5.o mime.o socket.o staticpath.o thread.o timegm.o utils.o uvutil.o webapplication.o websockets-base.o websockets-hixie76.o websockets-hybi03.o websockets-ietf.o websockets.o winutils.o -luv ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o -pthread -L/usr/lib64/R/lib -lR +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/filedatasource-win.o: no symbols +/usr/bin/nm: /home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src/winutils.o: no symbols +make[1]: Leaving directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +installing to /home/pacha/Documents/httpuv/httpuv.Rcheck/00LOCK-httpuv/00new/httpuv/libs +** R +** demo +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** testing if installed package can be loaded from temporary location +** checking absolute paths in shared objects and dynamic libraries +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (httpuv) diff --git a/dev/update_libuv.R b/dev/update_libuv.R new file mode 100755 index 000000000..279e311a1 --- /dev/null +++ b/dev/update_libuv.R @@ -0,0 +1,36 @@ +#!/usr/bin/env Rscript + +# This script can be run from the command line or sourced from an R session. + +version <- "1.52.1" + +# The git tag for the https://github.com/libuv/libuv repo. +tag <- paste0("v", version) + +dest_file <- file.path(tempdir(), paste0("libuv-", version, ".tar.gz")) + +url <- paste0("https://github.com/libuv/libuv/archive/", tag, ".tar.gz") +message("Downloading ", url) +download.file(url, dest_file) + +libuv_dir <- "src/libuv" + +untar(dest_file, exdir = "src/") + +# Remove old libuv +unlink(libuv_dir, recursive = TRUE) + +# Rename new libuv +file.rename(paste0(libuv_dir, "-", version), libuv_dir) + +unlink(dest_file) + +# Copy over Makefile for mingw +file.copy( + file.path("dev", "Makefile-libuv.mingw"), + libuv_dir +) + +message( + "Make sure to fix up the libuv sources in src/libuv/ as described in dev/build-notes.md." +) diff --git a/dev/update_libuv.sh b/dev/update_libuv.sh new file mode 100755 index 000000000..dae4d2413 --- /dev/null +++ b/dev/update_libuv.sh @@ -0,0 +1,188 @@ +#!/usr/bin/env bash +# Usage: dev/update_libuv.sh +# Example: dev/update_libuv.sh 1.52.1 +# +# Automates the libuv update steps documented in dev/build-notes.md. +# Must be run from the repository root. + +set -euo pipefail + +# --------------------------------------------------------------------------- +# 1. Arguments & version +# --------------------------------------------------------------------------- +if [[ $# -lt 1 ]]; then + echo "Usage: $0 " >&2 + exit 1 +fi + +VERSION="$1" +REPO_ROOT="$(git rev-parse --show-toplevel)" +cd "$REPO_ROOT" + +LIBUV="src/libuv" +WIN="$LIBUV/src/win" +UNIX="$LIBUV/src/unix" + +echo "==> Updating libuv to $VERSION" + +# --------------------------------------------------------------------------- +# 2. Update the version in update_libuv.R and run it +# --------------------------------------------------------------------------- +UPDATE_SCRIPT="tools/update_libuv.R" +sed -i "s/^version <- \"[^\"]*\"/version <- \"$VERSION\"/" "$UPDATE_SCRIPT" +git add "$UPDATE_SCRIPT" + +echo "==> Running $UPDATE_SCRIPT" +Rscript "$UPDATE_SCRIPT" +git add "$LIBUV" + +# --------------------------------------------------------------------------- +# 3. Apply httpuv fixes to source files (before autogen so it runs once) +# --------------------------------------------------------------------------- + +# --- Fix: unnamed structs on MinGW (httpuv commits 7106577, 4bea58e) ------- +# winapi.h: name the anonymous outer union in REPARSE_DATA_BUFFER as 'u', +# and the anonymous union in IO_STATUS_BLOCK as 'u'. +WINAPI="$WIN/winapi.h" +if grep -q '^\s*};$' "$WINAPI" && ! grep -qF '} u;' "$WINAPI"; then + echo "==> Fix: naming anonymous unions in winapi.h (7106577)" + # REPARSE_DATA_BUFFER: ' };' that follows ' } AppExecLinkReparseBuffer;' + sed -i '/} AppExecLinkReparseBuffer;/{n;s/^ };$/ } u;/}' "$WINAPI" + # IO_STATUS_BLOCK: ' };' that follows ' PVOID Pointer;' + sed -i '/PVOID Pointer;/{n;s/^ };$/ } u;/}' "$WINAPI" +else + echo " [skip] winapi.h already patched" +fi + +# fs.c: update all ReparseBuffer member accesses and FIELD_OFFSET calls +FS="$WIN/fs.c" +if grep -q '->SymbolicLinkReparseBuffer\.' "$FS"; then + echo "==> Fix: updating ReparseBuffer references in fs.c (7106577, 4bea58e)" + sed -i \ + -e 's/->SymbolicLinkReparseBuffer\./->u.SymbolicLinkReparseBuffer./g' \ + -e 's/->MountPointReparseBuffer\./->u.MountPointReparseBuffer./g' \ + -e 's/->AppExecLinkReparseBuffer\./->u.AppExecLinkReparseBuffer./g' \ + -e 's/\(REPARSE_DATA_BUFFER, \)MountPointReparseBuffer/\1u.MountPointReparseBuffer/g' \ + -e 's/io_status\.Status/io_status.u.Status/g' \ + "$FS" +else + echo " [skip] fs.c ReparseBuffer refs already updated" +fi + +# winsock.c: update IO_STATUS_BLOCK member accesses +WINSOCK="$WIN/winsock.c" +if grep -q 'iosb->Status\b\|iosb\.Status\b' "$WINSOCK"; then + echo "==> Fix: updating iosb references in winsock.c (7106577)" + sed -i \ + -e 's/iosb->Status\b/iosb->u.Status/g' \ + -e 's/iosb->Pointer\b/iosb->u.Pointer/g' \ + -e 's/iosb\.Status\b/iosb.u.Status/g' \ + "$WINSOCK" +else + echo " [skip] winsock.c iosb refs already updated" +fi + +# --- Fix: incompatible pointer type on MinGW (httpuv commit ef944cf) ------- +UDP="$WIN/udp.c" +if grep -q 'connect(handle->socket, &addr,' "$UDP"; then + echo "==> Fix: casting sockaddr in udp.c (ef944cf)" + sed -i 's/connect(handle->socket, &addr,/connect(handle->socket, (struct sockaddr*) \&addr,/g' "$UDP" +else + echo " [skip] udp.c sockaddr cast already present" +fi + +# --- Fix: empty translation unit warning (httpuv commit 8ab31ef) ----------- +SNPRINTF="$WIN/snprintf.c" +if ! grep -q 'make_iso_compilers_happy' "$SNPRINTF"; then + echo "==> Fix: adding dummy typedef to snprintf.c (8ab31ef)" + printf '\n/* Workaround for "ISO C forbids an empty translation unit" when compiled\n * with -pedantic. This is flagged as a significant warning by R CMD check.\n */\ntypedef int make_iso_compilers_happy;\n' >> "$SNPRINTF" +else + echo " [skip] snprintf.c dummy typedef already present" +fi + +# --- Fix: Solaris support (httpuv commit 1898a29) --------------------------- +MAKEFILE_AM="$LIBUV/Makefile.am" +if ! grep -q 'DSUNOS_NO_IFADDRS' "$MAKEFILE_AM"; then + echo "==> Fix: adding -DSUNOS_NO_IFADDRS to Makefile.am (1898a29)" + # Insert after the '-D_XOPEN_SOURCE=500 \' line that is followed by '-D_REENTRANT' + perl -i -0pe \ + 's/(-D_XOPEN_SOURCE=500 \\\n)([ \t]*-D_REENTRANT)/$1 -DSUNOS_NO_IFADDRS \\\n$2/' \ + "$MAKEFILE_AM" +else + echo " [skip] Makefile.am Solaris flag already present" +fi + +# --- Fix: pragma NOTE (httpuv commit 421f092) -------------------------------- +CORE="$UNIX/core.c" +if grep -q '^#pragma GCC diagnostic' "$CORE"; then + echo "==> Fix: replacing #pragma with # pragma in core.c (421f092)" + sed -i \ + -e 's/^#pragma GCC diagnostic push$/# pragma GCC diagnostic push/' \ + -e 's/^#pragma GCC diagnostic ignored/# pragma GCC diagnostic ignored/' \ + -e 's/^#pragma GCC diagnostic pop$/# pragma GCC diagnostic pop/' \ + "$CORE" +else + echo " [skip] core.c pragma already workaround-ed" +fi + +# --- Fix: ISO C90 mixed declarations warning (httpuv commit 1431d4f) -------- +CONFIGURE_AC="$LIBUV/configure.ac" +if ! grep -q 'Wno-declaration-after-statement' "$CONFIGURE_AC"; then + echo "==> Fix: adding -Wno-declaration-after-statement to configure.ac (1431d4f)" + sed -i \ + 's/CC_CHECK_CFLAGS_APPEND(\[-Wno-unused-parameter\])/CC_CHECK_CFLAGS_APPEND([-Wno-unused-parameter])\nCC_CHECK_CFLAGS_APPEND([-Wno-declaration-after-statement])/' \ + "$CONFIGURE_AC" +else + echo " [skip] configure.ac flag already present" +fi + +# --------------------------------------------------------------------------- +# 4. Run autogen.sh (uses the already-patched Makefile.am and configure.ac) +# --------------------------------------------------------------------------- +echo "==> Running autogen.sh" +cd "$LIBUV" +./autogen.sh + +# Rename the file with ~ in the name (causes issues with R CMD check) +if [[ -f m4/lt~obsolete.m4 ]]; then + mv m4/lt~obsolete.m4 m4/lt_obsolete.m4 +fi + +cd "$REPO_ROOT" + +# Add generated files (-f because they are listed in .gitignore) +git add -f \ + "$LIBUV/Makefile.in" \ + "$LIBUV/aclocal.m4" \ + "$LIBUV/ar-lib" \ + "$LIBUV/compile" \ + "$LIBUV/config.guess" \ + "$LIBUV/config.sub" \ + "$LIBUV/configure" \ + "$LIBUV/depcomp" \ + "$LIBUV/install-sh" \ + "$LIBUV/ltmain.sh" \ + "$LIBUV/m4/libtool.m4" \ + "$LIBUV/m4/libuv-extra-automake-flags.m4" \ + "$LIBUV/m4/lt_obsolete.m4" \ + "$LIBUV/m4/ltoptions.m4" \ + "$LIBUV/m4/ltsugar.m4" \ + "$LIBUV/m4/ltversion.m4" \ + "$LIBUV/missing" + +git commit -m "Update to libuv $VERSION with httpuv fixes" + +# --------------------------------------------------------------------------- +# 5. Check for any remaining #pragma diagnostic ignored in C files +# --------------------------------------------------------------------------- +echo "==> Checking for remaining '#pragma diagnostic ignored' in C files" +PRAGMA_FILES=$(find "$LIBUV/src" -name "*.c" -exec grep -rl "^#pragma.*diagnostic ignored" {} \; 2>/dev/null || true) +if [[ -n "$PRAGMA_FILES" ]]; then + echo "WARNING: Files still have '#pragma diagnostic ignored' (should be '# pragma'):" >&2 + echo "$PRAGMA_FILES" >&2 +else + echo " [ok] No remaining #pragma diagnostic ignored found" +fi + +echo "" +echo "Done. Update dev/build-notes.md if any fixes needed manual adjustment." diff --git a/man/PipeServer.Rd b/man/PipeServer.Rd index 865b487c9..7502667c8 100644 --- a/man/PipeServer.Rd +++ b/man/PipeServer.Rd @@ -10,7 +10,7 @@ named pipe. \examples{ ## ------------------------------------------------ -## Method `PipeServer$new` +## Method `PipeServer$new()` ## ------------------------------------------------ \dontrun{ @@ -31,62 +31,57 @@ server <- PipeServer$new("my_pipe", -1, app) } \keyword{internal} \section{Super class}{ -\code{\link[httpuv:Server]{httpuv::Server}} -> \code{PipeServer} +\code{\link[httpuv:Server]{Server}} -> \code{PipeServer} } \section{Methods}{ \subsection{Public methods}{ -\itemize{ -\item \href{#method-PipeServer-new}{\code{PipeServer$new()}} -\item \href{#method-PipeServer-getName}{\code{PipeServer$getName()}} -\item \href{#method-PipeServer-getMask}{\code{PipeServer$getMask()}} + \itemize{ + \item \href{#method-PipeServer-initialize}{\code{PipeServer$new()}} + \item \href{#method-PipeServer-getName}{\code{PipeServer$getName()}} + \item \href{#method-PipeServer-getMask}{\code{PipeServer$getMask()}} + } } -} -\if{html}{\out{ -
Inherited methods +\if{html}{\out{
Inherited methods -
-}} +
}} \if{html}{\out{
}} -\if{html}{\out{}} -\if{latex}{\out{\hypertarget{method-PipeServer-new}{}}} -\subsection{Method \code{new()}}{ -Initialize a new PipeServer object +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-PipeServer-initialize}{}}} +\subsection{\code{PipeServer$new()}}{ + Initialize a new PipeServer object Create a new \code{PipeServer} object. \code{app} is an httpuv application object as described in \code{\link[=startServer]{startServer()}}. -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{PipeServer$new(name, mask, app, quiet = FALSE)}\if{html}{\out{
}} -} - -\subsection{Arguments}{ -\if{html}{\out{
}} -\describe{ -\item{\code{name}}{The name of the named pipe to bind the server to.} - -\item{\code{mask}}{The mask for the named pipe. If NULL, it defaults to -1.} - -\item{\code{app}}{An httpuv application object as described in + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{PipeServer$new(name, mask, app, quiet = FALSE)} + \if{html}{\out{
}} + } + \subsection{Arguments}{ + \if{html}{\out{
}} + \describe{ + \item{\code{name}}{The name of the named pipe to bind the server to.} + \item{\code{mask}}{The mask for the named pipe. If NULL, it defaults to -1.} + \item{\code{app}}{An httpuv application object as described in \code{\link[=startServer]{startServer()}}.} - -\item{\code{quiet}}{If TRUE, suppresses output from the server.} -} -\if{html}{\out{
}} -} -\subsection{Returns}{ -A new \code{PipeServer} object. -} -\subsection{Examples}{ -\if{html}{\out{
}} -\preformatted{\dontrun{ -# Create a simple app + \item{\code{quiet}}{If TRUE, suppresses output from the server.} + } + \if{html}{\out{
}} + } + \subsection{Returns}{ + A new \code{PipeServer} object. + } + \subsection{Examples}{ + \if{html}{\out{
}} + \preformatted{# Create a simple app app <- function(req) { list( status = 200L, @@ -97,36 +92,38 @@ app <- function(req) { # Create a server server <- PipeServer$new("my_pipe", -1, app) } -} -\if{html}{\out{
}} - + \if{html}{\out{
}} + } } -} \if{html}{\out{
}} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-PipeServer-getName}{}}} -\subsection{Method \code{getName()}}{ -Get the name of the named pipe -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{PipeServer$getName()}\if{html}{\out{
}} +\subsection{\code{PipeServer$getName()}}{ + Get the name of the named pipe + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{PipeServer$getName()} + \if{html}{\out{
}} + } + \subsection{Returns}{ + The name of the named pipe that the server is bound to. + } } -\subsection{Returns}{ -The name of the named pipe that the server is bound to. -} -} \if{html}{\out{
}} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-PipeServer-getMask}{}}} -\subsection{Method \code{getMask()}}{ -Get the mask for the named pipe -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{PipeServer$getMask()}\if{html}{\out{
}} +\subsection{\code{PipeServer$getMask()}}{ + Get the mask for the named pipe + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{PipeServer$getMask()} + \if{html}{\out{
}} + } + \subsection{Returns}{ + The mask for the named pipe that the server is bound to. + } } -\subsection{Returns}{ -The mask for the named pipe that the server is bound to. -} -} } diff --git a/man/Server.Rd b/man/Server.Rd index 77c94ae6c..74bb83b2a 100644 --- a/man/Server.Rd +++ b/man/Server.Rd @@ -11,7 +11,7 @@ be instantiated. \examples{ ## ------------------------------------------------ -## Method `Server$setStaticPath` +## Method `Server$setStaticPath()` ## ------------------------------------------------ \dontrun{ @@ -25,7 +25,7 @@ server$setStaticPath( } ## ------------------------------------------------ -## Method `Server$removeStaticPath` +## Method `Server$removeStaticPath()` ## ------------------------------------------------ \dontrun{ @@ -46,78 +46,83 @@ server$removeStaticPath("staticPath1") \keyword{internal} \section{Methods}{ \subsection{Public methods}{ -\itemize{ -\item \href{#method-Server-stop}{\code{Server$stop()}} -\item \href{#method-Server-isRunning}{\code{Server$isRunning()}} -\item \href{#method-Server-getStaticPaths}{\code{Server$getStaticPaths()}} -\item \href{#method-Server-setStaticPath}{\code{Server$setStaticPath()}} -\item \href{#method-Server-removeStaticPath}{\code{Server$removeStaticPath()}} -\item \href{#method-Server-getStaticPathOptions}{\code{Server$getStaticPathOptions()}} -\item \href{#method-Server-setStaticPathOption}{\code{Server$setStaticPathOption()}} -} + \itemize{ + \item \href{#method-Server-stop}{\code{Server$stop()}} + \item \href{#method-Server-isRunning}{\code{Server$isRunning()}} + \item \href{#method-Server-getStaticPaths}{\code{Server$getStaticPaths()}} + \item \href{#method-Server-setStaticPath}{\code{Server$setStaticPath()}} + \item \href{#method-Server-removeStaticPath}{\code{Server$removeStaticPath()}} + \item \href{#method-Server-getStaticPathOptions}{\code{Server$getStaticPathOptions()}} + \item \href{#method-Server-setStaticPathOption}{\code{Server$setStaticPathOption()}} + } } \if{html}{\out{
}} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-Server-stop}{}}} -\subsection{Method \code{stop()}}{ -Stop a running server -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{Server$stop()}\if{html}{\out{
}} +\subsection{\code{Server$stop()}}{ + Stop a running server + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{Server$stop()} + \if{html}{\out{
}} + } } -} \if{html}{\out{
}} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-Server-isRunning}{}}} -\subsection{Method \code{isRunning()}}{ -Check if the server is running -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{Server$isRunning()}\if{html}{\out{
}} +\subsection{\code{Server$isRunning()}}{ + Check if the server is running + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{Server$isRunning()} + \if{html}{\out{
}} + } + \subsection{Returns}{ + TRUE if the server is running, FALSE otherwise. + } } -\subsection{Returns}{ -TRUE if the server is running, FALSE otherwise. -} -} \if{html}{\out{
}} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-Server-getStaticPaths}{}}} -\subsection{Method \code{getStaticPaths()}}{ -Get the static paths for the server -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{Server$getStaticPaths()}\if{html}{\out{
}} +\subsection{\code{Server$getStaticPaths()}}{ + Get the static paths for the server + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{Server$getStaticPaths()} + \if{html}{\out{
}} + } + \subsection{Returns}{ + A list of \code{\link[=staticPath]{staticPath()}} objects. + } } -\subsection{Returns}{ -A list of \code{\link[=staticPath]{staticPath()}} objects. -} -} \if{html}{\out{
}} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-Server-setStaticPath}{}}} -\subsection{Method \code{setStaticPath()}}{ -Set a static path for the server -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{Server$setStaticPath(..., .list = NULL)}\if{html}{\out{
}} -} - -\subsection{Arguments}{ -\if{html}{\out{
}} -\describe{ -\item{\code{...}}{Named arguments where each name is the name of the static path +\subsection{\code{Server$setStaticPath()}}{ + Set a static path for the server + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{Server$setStaticPath(..., .list = NULL)} + \if{html}{\out{
}} + } + \subsection{Arguments}{ + \if{html}{\out{
}} + \describe{ + \item{\code{...}}{Named arguments where each name is the name of the static path and the value is the path to the directory to serve. If there already exists a static path with the same name, it will be replaced.} - -\item{\code{.list}}{A named list where each name is the name of the static path + \item{\code{.list}}{A named list where each name is the name of the static path and the value is the path to the directory to serve. If there already exists a static path with the same name, it will be replaced.} -} -\if{html}{\out{
}} -} -\subsection{Examples}{ -\if{html}{\out{
}} -\preformatted{\dontrun{ -# Create a server + } + \if{html}{\out{
}} + } + \subsection{Examples}{ + \if{html}{\out{
}} + \preformatted{# Create a server server <- WebServer$new("127.0.0.1", 8080, app = my_app) #' # Set a static path server$setStaticPath( @@ -125,36 +130,34 @@ server$setStaticPath( staticPath2 = "another/path/to/static/files" ) } -} -\if{html}{\out{
}} - + \if{html}{\out{
}} + } } -} \if{html}{\out{
}} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-Server-removeStaticPath}{}}} -\subsection{Method \code{removeStaticPath()}}{ -Remove a static path -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{Server$removeStaticPath(path)}\if{html}{\out{
}} -} - -\subsection{Arguments}{ -\if{html}{\out{
}} -\describe{ -\item{\code{path}}{The name of the static path to remove.} -} -\if{html}{\out{
}} -} -\subsection{Returns}{ -An invisible NULL if the server is running, otherwise it does +\subsection{\code{Server$removeStaticPath()}}{ + Remove a static path + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{Server$removeStaticPath(path)} + \if{html}{\out{
}} + } + \subsection{Arguments}{ + \if{html}{\out{
}} + \describe{ + \item{\code{path}}{The name of the static path to remove.} + } + \if{html}{\out{
}} + } + \subsection{Returns}{ + An invisible NULL if the server is running, otherwise it does nothing. -} -\subsection{Examples}{ -\if{html}{\out{
}} -\preformatted{\dontrun{ -# Create a server + } + \subsection{Examples}{ + \if{html}{\out{
}} + \preformatted{# Create a server server <- WebServer$new("127.0.0.1", 8080, app = my_app) # Set a static path server$setStaticPath( @@ -164,50 +167,51 @@ server$setStaticPath( # Remove a static path server$removeStaticPath("staticPath1") } -} -\if{html}{\out{
}} - + \if{html}{\out{
}} + } } -} \if{html}{\out{
}} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-Server-getStaticPathOptions}{}}} -\subsection{Method \code{getStaticPathOptions()}}{ -Get the static path options for the server -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{Server$getStaticPathOptions()}\if{html}{\out{
}} -} - -\subsection{Returns}{ -A list of default \code{staticPathOptions} for the current server. +\subsection{\code{Server$getStaticPathOptions()}}{ + Get the static path options for the server + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{Server$getStaticPathOptions()} + \if{html}{\out{
}} + } + \subsection{Returns}{ + A list of default \code{staticPathOptions} for the current server. Each static path will use these options by default, but they can be overridden for each static path. + } } -} + \if{html}{\out{
}} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-Server-setStaticPathOption}{}}} -\subsection{Method \code{setStaticPathOption()}}{ -Set one or more static path options -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{Server$setStaticPathOption(..., .list = NULL)}\if{html}{\out{
}} -} - -\subsection{Arguments}{ -\if{html}{\out{
}} -\describe{ -\item{\code{...}}{Named arguments where each name is the name of the static path +\subsection{\code{Server$setStaticPathOption()}}{ + Set one or more static path options + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{Server$setStaticPathOption(..., .list = NULL)} + \if{html}{\out{
}} + } + \subsection{Arguments}{ + \if{html}{\out{
}} + \describe{ + \item{\code{...}}{Named arguments where each name is the name of the static path option and the value is the value to set for that option.} - -\item{\code{.list}}{A named list where each name is the name of the static path + \item{\code{.list}}{A named list where each name is the name of the static path option and the value is the value to set for that option.} -} -\if{html}{\out{
}} -} -\subsection{Returns}{ -An invisible NULL if the server is running, otherwise it does + } + \if{html}{\out{
}} + } + \subsection{Returns}{ + An invisible NULL if the server is running, otherwise it does nothing. + } } -} + } diff --git a/man/WebServer.Rd b/man/WebServer.Rd index 2e5d99267..daf83c785 100644 --- a/man/WebServer.Rd +++ b/man/WebServer.Rd @@ -10,7 +10,7 @@ can be running at the same time. \examples{ ## ------------------------------------------------ -## Method `WebServer$new` +## Method `WebServer$new()` ## ------------------------------------------------ \dontrun{ @@ -31,61 +31,56 @@ server <- WebServer$new("127.0.0.1", 8080, app) } \keyword{internal} \section{Super class}{ -\code{\link[httpuv:Server]{httpuv::Server}} -> \code{WebServer} +\code{\link[httpuv:Server]{Server}} -> \code{WebServer} } \section{Methods}{ \subsection{Public methods}{ -\itemize{ -\item \href{#method-WebServer-new}{\code{WebServer$new()}} -\item \href{#method-WebServer-getHost}{\code{WebServer$getHost()}} -\item \href{#method-WebServer-getPort}{\code{WebServer$getPort()}} + \itemize{ + \item \href{#method-WebServer-initialize}{\code{WebServer$new()}} + \item \href{#method-WebServer-getHost}{\code{WebServer$getHost()}} + \item \href{#method-WebServer-getPort}{\code{WebServer$getPort()}} + } } -} -\if{html}{\out{ -
Inherited methods +\if{html}{\out{
Inherited methods -
-}} +
}} \if{html}{\out{
}} -\if{html}{\out{}} -\if{latex}{\out{\hypertarget{method-WebServer-new}{}}} -\subsection{Method \code{new()}}{ -Initialize a new WebServer object +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-WebServer-initialize}{}}} +\subsection{\code{WebServer$new()}}{ + Initialize a new WebServer object Create a new \code{WebServer} object. \code{app} is an httpuv application object as described in \code{\link[=startServer]{startServer()}}. -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{WebServer$new(host, port, app, quiet = FALSE)}\if{html}{\out{
}} -} - -\subsection{Arguments}{ -\if{html}{\out{
}} -\describe{ -\item{\code{host}}{The host name or IP address to bind the server to.} - -\item{\code{port}}{The port number to bind the server to.} - -\item{\code{app}}{An httpuv application object as described in \code{\link[=startServer]{startServer()}}.} - -\item{\code{quiet}}{If TRUE, suppresses output from the server.} -} -\if{html}{\out{
}} -} -\subsection{Returns}{ -A new \code{WebServer} object. -} -\subsection{Examples}{ -\if{html}{\out{
}} -\preformatted{\dontrun{ -# Create a simple app + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{WebServer$new(host, port, app, quiet = FALSE)} + \if{html}{\out{
}} + } + \subsection{Arguments}{ + \if{html}{\out{
}} + \describe{ + \item{\code{host}}{The host name or IP address to bind the server to.} + \item{\code{port}}{The port number to bind the server to.} + \item{\code{app}}{An httpuv application object as described in \code{\link[=startServer]{startServer()}}.} + \item{\code{quiet}}{If TRUE, suppresses output from the server.} + } + \if{html}{\out{
}} + } + \subsection{Returns}{ + A new \code{WebServer} object. + } + \subsection{Examples}{ + \if{html}{\out{
}} + \preformatted{# Create a simple app app <- function(req) { list( status = 200L, @@ -96,36 +91,38 @@ app <- function(req) { # Create a server server <- WebServer$new("127.0.0.1", 8080, app) } -} -\if{html}{\out{
}} - + \if{html}{\out{
}} + } } -} \if{html}{\out{
}} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-WebServer-getHost}{}}} -\subsection{Method \code{getHost()}}{ -Get the host name or IP address of the server -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{WebServer$getHost()}\if{html}{\out{
}} +\subsection{\code{WebServer$getHost()}}{ + Get the host name or IP address of the server + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{WebServer$getHost()} + \if{html}{\out{
}} + } + \subsection{Returns}{ + The host name or IP address that the server is bound to. + } } -\subsection{Returns}{ -The host name or IP address that the server is bound to. -} -} \if{html}{\out{
}} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-WebServer-getPort}{}}} -\subsection{Method \code{getPort()}}{ -Get the port number of the server -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{WebServer$getPort()}\if{html}{\out{
}} +\subsection{\code{WebServer$getPort()}}{ + Get the port number of the server + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{WebServer$getPort()} + \if{html}{\out{
}} + } + \subsection{Returns}{ + The port number that the server is bound to. + } } -\subsection{Returns}{ -The port number that the server is bound to. -} -} } diff --git a/man/WebSocket.Rd b/man/WebSocket.Rd index cc24d6a7d..5e56384e6 100644 --- a/man/WebSocket.Rd +++ b/man/WebSocket.Rd @@ -45,142 +45,152 @@ startServer("0.0.0.0", 8080, } } \section{Public fields}{ -\if{html}{\out{
}} -\describe{ -\item{\code{handle}}{The server handle} + \if{html}{\out{
}} + \describe{ + \item{\code{handle}}{The server handle} -\item{\code{messageCallbacks}}{A list of callback functions that will be invoked + \item{\code{messageCallbacks}}{A list of callback functions that will be invoked when a message is received on this connection.} -\item{\code{closeCallbacks}}{A list of callback functions that will be invoked + \item{\code{closeCallbacks}}{A list of callback functions that will be invoked when the connection is closed.} -\item{\code{request}}{The Rook request environment that opened the connection. + \item{\code{request}}{The Rook request environment that opened the connection. This can be used to inspect HTTP headers, for example.} -} -\if{html}{\out{
}} + } + \if{html}{\out{
}} } \section{Methods}{ \subsection{Public methods}{ -\itemize{ -\item \href{#method-WebSocket-new}{\code{WebSocket$new()}} -\item \href{#method-WebSocket-onMessage}{\code{WebSocket$onMessage()}} -\item \href{#method-WebSocket-onClose}{\code{WebSocket$onClose()}} -\item \href{#method-WebSocket-send}{\code{WebSocket$send()}} -\item \href{#method-WebSocket-close}{\code{WebSocket$close()}} -\item \href{#method-WebSocket-clone}{\code{WebSocket$clone()}} -} + \itemize{ + \item \href{#method-WebSocket-initialize}{\code{WebSocket$new()}} + \item \href{#method-WebSocket-onMessage}{\code{WebSocket$onMessage()}} + \item \href{#method-WebSocket-onClose}{\code{WebSocket$onClose()}} + \item \href{#method-WebSocket-send}{\code{WebSocket$send()}} + \item \href{#method-WebSocket-close}{\code{WebSocket$close()}} + \item \href{#method-WebSocket-clone}{\code{WebSocket$clone()}} + } } \if{html}{\out{
}} -\if{html}{\out{}} -\if{latex}{\out{\hypertarget{method-WebSocket-new}{}}} -\subsection{Method \code{new()}}{ -Initializes a new WebSocket object. -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{WebSocket$new(handle, req)}\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-WebSocket-initialize}{}}} +\subsection{\code{WebSocket$new()}}{ + Initializes a new WebSocket object. + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{WebSocket$new(handle, req)} + \if{html}{\out{
}} + } + \subsection{Arguments}{ + \if{html}{\out{
}} + \describe{ + \item{\code{handle}}{An C++ WebSocket handle.} + \item{\code{req}}{The Rook request environment that opened the connection.} + } + \if{html}{\out{
}} + } } -\subsection{Arguments}{ -\if{html}{\out{
}} -\describe{ -\item{\code{handle}}{An C++ WebSocket handle.} - -\item{\code{req}}{The Rook request environment that opened the connection.} -} -\if{html}{\out{
}} -} -} \if{html}{\out{
}} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-WebSocket-onMessage}{}}} -\subsection{Method \code{onMessage()}}{ -Registers a callback function that will be invoked whenever a message is +\subsection{\code{WebSocket$onMessage()}}{ + Registers a callback function that will be invoked whenever a message is received on this connection. -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{WebSocket$onMessage(func)}\if{html}{\out{
}} -} - -\subsection{Arguments}{ -\if{html}{\out{
}} -\describe{ -\item{\code{func}}{The callback function to be registered. The callback function will be invoked with + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{WebSocket$onMessage(func)} + \if{html}{\out{
}} + } + \subsection{Arguments}{ + \if{html}{\out{
}} + \describe{ + \item{\code{func}}{The callback function to be registered. The callback function will be invoked with two arguments. The first argument is \code{TRUE} if the message is binary and \code{FALSE} if it is text. The second argument is either a raw vector (if the message is binary) or a character vector.} + } + \if{html}{\out{
}} + } } -\if{html}{\out{
}} -} -} + \if{html}{\out{
}} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-WebSocket-onClose}{}}} -\subsection{Method \code{onClose()}}{ -Registers a callback function that will be invoked when the connection is +\subsection{\code{WebSocket$onClose()}}{ + Registers a callback function that will be invoked when the connection is closed. -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{WebSocket$onClose(func)}\if{html}{\out{
}} + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{WebSocket$onClose(func)} + \if{html}{\out{
}} + } + \subsection{Arguments}{ + \if{html}{\out{
}} + \describe{ + \item{\code{func}}{The callback function to be registered.} + } + \if{html}{\out{
}} + } } -\subsection{Arguments}{ -\if{html}{\out{
}} -\describe{ -\item{\code{func}}{The callback function to be registered.} -} -\if{html}{\out{
}} -} -} \if{html}{\out{
}} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-WebSocket-send}{}}} -\subsection{Method \code{send()}}{ -Begins sending the given message over the websocket. -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{WebSocket$send(message)}\if{html}{\out{
}} -} - -\subsection{Arguments}{ -\if{html}{\out{
}} -\describe{ -\item{\code{message}}{Either a raw vector, or a single-element character +\subsection{\code{WebSocket$send()}}{ + Begins sending the given message over the websocket. + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{WebSocket$send(message)} + \if{html}{\out{
}} + } + \subsection{Arguments}{ + \if{html}{\out{
}} + \describe{ + \item{\code{message}}{Either a raw vector, or a single-element character vector that is encoded in UTF-8.} + } + \if{html}{\out{
}} + } } -\if{html}{\out{
}} -} -} + \if{html}{\out{
}} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-WebSocket-close}{}}} -\subsection{Method \code{close()}}{ -Closes the websocket connection -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{WebSocket$close(code = 1000L, reason = "")}\if{html}{\out{
}} +\subsection{\code{WebSocket$close()}}{ + Closes the websocket connection + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{WebSocket$close(code = 1000L, reason = "")} + \if{html}{\out{
}} + } + \subsection{Arguments}{ + \if{html}{\out{
}} + \describe{ + \item{\code{code}}{An integer that indicates the \href{https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close#code}{WebSocket close code}.} + \item{\code{reason}}{A concise human-readable prose \href{https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close#reason}{explanation for the closure}.} + } + \if{html}{\out{
}} + } } -\subsection{Arguments}{ -\if{html}{\out{
}} -\describe{ -\item{\code{code}}{An integer that indicates the \href{https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close#code}{WebSocket close code}.} - -\item{\code{reason}}{A concise human-readable prose \href{https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close#reason}{explanation for the closure}.} -} -\if{html}{\out{
}} -} -} \if{html}{\out{
}} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-WebSocket-clone}{}}} -\subsection{Method \code{clone()}}{ -The objects of this class are cloneable with this method. -\subsection{Usage}{ -\if{html}{\out{
}}\preformatted{WebSocket$clone(deep = FALSE)}\if{html}{\out{
}} +\subsection{\code{WebSocket$clone()}}{ + The objects of this class are cloneable with this method. + \subsection{Usage}{ + \if{html}{\out{
}} + \preformatted{WebSocket$clone(deep = FALSE)} + \if{html}{\out{
}} + } + \subsection{Arguments}{ + \if{html}{\out{
}} + \describe{ + \item{\code{deep}}{Whether to make a deep clone.} + } + \if{html}{\out{
}} + } } -\subsection{Arguments}{ -\if{html}{\out{
}} -\describe{ -\item{\code{deep}}{Whether to make a deep clone.} -} -\if{html}{\out{
}} -} -} } diff --git a/man/encodeURI.Rd b/man/encodeURI.Rd index 6671c0e9f..a71c6e7c6 100644 --- a/man/encodeURI.Rd +++ b/man/encodeURI.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/RcppExports.R +% Please edit documentation in R/httpuv-package.R \name{encodeURI} \alias{encodeURI} \alias{encodeURIComponent} @@ -25,17 +25,13 @@ strings that are UTF-8 encoded. } \description{ Encodes/decodes strings using URI encoding/decoding in the same way that web -browsers do. The precise behaviors of these functions can be found at -developer.mozilla.org: +browsers do. The precise behaviors of these functions can be found at developer.mozilla.org: \href{https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI}{encodeURI}, \href{https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent}{encodeURIComponent}, \href{https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI}{decodeURI}, \href{https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent}{decodeURIComponent} -} -\details{ -Intended as a faster replacement for \code{\link[utils:URLencode]{utils::URLencode()}} and -\code{\link[utils:URLencode]{utils::URLdecode()}}. +Intended as a faster replacement for \code{\link[utils:URLencode]{utils::URLencode()}} and \code{\link[utils:URLdecode]{utils::URLdecode()}}. encodeURI differs from encodeURIComponent in that the former will not encode reserved characters: \code{;,/?:@&=+$} diff --git a/man/getRNGState.Rd b/man/getRNGState.Rd index 5c0ac4d54..cdacef290 100644 --- a/man/getRNGState.Rd +++ b/man/getRNGState.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/RcppExports.R +% Please edit documentation in R/httpuv-package.R \name{getRNGState} \alias{getRNGState} \title{Apply the value of .Random.seed to R's internal RNG state} @@ -10,7 +10,6 @@ getRNGState() This function is needed in unusual cases where a C++ function calls an R function which sets the value of \code{.Random.seed}. This function should be called at the end of the R function to ensure that the new value -\code{.Random.seed} is preserved. Otherwise, Rcpp may overwrite it with a -previous value. +\code{.Random.seed} is preserved. } \keyword{internal} diff --git a/man/ipFamily.Rd b/man/ipFamily.Rd index 29b26ddf8..2d150f349 100644 --- a/man/ipFamily.Rd +++ b/man/ipFamily.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/RcppExports.R +% Please edit documentation in R/httpuv-package.R \name{ipFamily} \alias{ipFamily} \title{Check whether an address is IPv4 or IPv6} diff --git a/man/runStaticServer.Rd b/man/runStaticServer.Rd index 3da02c595..31e4ec674 100644 --- a/man/runStaticServer.Rd +++ b/man/runStaticServer.Rd @@ -24,7 +24,7 @@ listened on. Note that on most Unix-like systems including Linux and macOS, port numbers smaller than 1024 require root privileges.} \item{...}{ - Arguments passed on to \code{\link[=staticPath]{staticPath}} + Arguments passed on to \code{\link{staticPath}} \describe{ \item{\code{path}}{The local path.} \item{\code{indexhtml}}{If an index.html file is present, should it be served up diff --git a/scripts/build_r_devel.sh b/scripts/build_r_devel.sh new file mode 100755 index 000000000..171e7d4ad --- /dev/null +++ b/scripts/build_r_devel.sh @@ -0,0 +1,59 @@ +#!/bin/bash +set -euo pipefail + +# Configuration +R_DEVEL_PREFIX="/opt/R-devel" +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +R_SOURCE_DIR="${SCRIPT_DIR}/R-devel" +R_TARBALL_URL="https://cran.r-project.org/src/base-prerelease/R-devel.tar.gz" +R_TARBALL="${SCRIPT_DIR}/R-devel.tar.gz" + +echo "===============================" +echo "Building R-devel from source" +echo "Installation prefix: ${R_DEVEL_PREFIX}" +echo "===============================" + +# Download R-devel tarball (includes recommended packages) +echo "Downloading R-devel tarball..." +curl -L -o "${R_TARBALL}" "${R_TARBALL_URL}" + +# Extract tarball +echo "Extracting R-devel..." +rm -rf "${R_SOURCE_DIR}" +tar -xzf "${R_TARBALL}" -C "${SCRIPT_DIR}" + +cd "${R_SOURCE_DIR}" + +# Configure R +echo "Configuring R..." +./configure \ + --prefix="${R_DEVEL_PREFIX}" \ + --enable-R-shlib \ + --with-blas \ + --with-lapack \ + --with-readline \ + --with-x=no + +# Build R +echo "Building R (this may take a while)..." +make -j$(nproc) + +# Install R (requires sudo for /opt) +echo "Installing R to ${R_DEVEL_PREFIX}..." +echo "Note: This requires sudo permissions" +sudo make install + +# Cleanup tarball +rm -f "${R_TARBALL}" + +# Verify installation +if [ -x "${R_DEVEL_PREFIX}/bin/R" ]; then + echo "===============================" + echo "R-devel installed successfully!" + echo "R version:" + "${R_DEVEL_PREFIX}/bin/R" --version | head -n 1 + echo "===============================" +else + echo "ERROR: R-devel installation failed" + exit 1 +fi diff --git a/scripts/check_loop.sh b/scripts/check_loop.sh new file mode 100755 index 000000000..d2a2d9ee9 --- /dev/null +++ b/scripts/check_loop.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +set -euo pipefail + +rm -f check-results.md + +for std in CXX23 CXX20 CXX17; do + for compiler in clang gcc; do + echo "===============================" + echo "Checking C++ code with $std standard and $compiler compiler" + + mkdir -p ./check-gcc-clang + + ./scripts/check_prepare.sh "$std" "$compiler" + + touch ./check-gcc-clang/check-results.md + + # Run check, but don't exit on failure + if ! ./scripts/check_run.sh "$std" "$compiler"; then + echo "WARNING: check_run.sh failed for $std standard with $compiler, continuing..." + echo "$std + $compiler = fail" >> ./check-gcc-clang/check-results.md || true + else + echo "$std + $compiler = ok" >> ./check-gcc-clang/check-results.md || true + fi + + ./scripts/check_restore.sh "$std" "$compiler" + + echo "===============================" + echo "" + done +done diff --git a/scripts/check_prepare.sh b/scripts/check_prepare.sh new file mode 100755 index 000000000..692c91692 --- /dev/null +++ b/scripts/check_prepare.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -euo pipefail + +std=${1:-CXX17} +std=$(echo "$std" | tr '[:lower:]' '[:upper:]') +compiler=${2:-gcc} + +echo "===============================" +echo "Preparing C++ code with $std standard and $compiler compiler" +echo "" + +# Add or replace CXX_STD in src/Makevars.in +# configure regenerates src/Makevars from src/Makevars.in during R CMD check, +# so we must patch Makevars.in (not Makevars directly). +if grep -q "^CXX_STD" ./src/Makevars.in; then + sed -i "s/^CXX_STD = .*/CXX_STD = ${std}/" ./src/Makevars.in +else + sed -i "1s/^/CXX_STD = ${std}\n/" ./src/Makevars.in +fi diff --git a/scripts/check_r_devel.sh b/scripts/check_r_devel.sh new file mode 100755 index 000000000..00bff6619 --- /dev/null +++ b/scripts/check_r_devel.sh @@ -0,0 +1,122 @@ +#!/bin/bash +set -euo pipefail + +# Configuration +R_DEVEL_PREFIX="/opt/R-devel" +R_DEVEL="${R_DEVEL_PREFIX}/bin/R" +RSCRIPT_DEVEL="${R_DEVEL_PREFIX}/bin/Rscript" + +# Default values matching check-cxx23-gcc +std="${1:-CXX23}" +std=$(echo "$std" | tr '[:lower:]' '[:upper:]') +compiler="${2:-gcc}" + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_DIR="$(dirname "${SCRIPT_DIR}")" + +echo "===============================" +echo "Checking C++ code with R-devel" +echo "Standard: $std" +echo "Compiler: $compiler" +echo "===============================" + +# Check if R-devel is installed +if [ ! -x "${R_DEVEL}" ]; then + echo "ERROR: R-devel not found at ${R_DEVEL}" + echo "Run ./scripts/build_r_devel.sh first to build R-devel" + exit 1 +fi + +echo "Using R-devel:" +"${R_DEVEL}" --version | head -n 1 + +cd "${PROJECT_DIR}" + +# Prevent R from loading any startup files +export R_PROFILE="" +export R_PROFILE_USER="" +export R_ENVIRON="" +export R_ENVIRON_USER="" + +# Install required packages in R-devel if not present +echo "Checking/installing required packages in R-devel..." +"${RSCRIPT_DEVEL}" --vanilla -e ' + pkgs <- c("devtools", "roxygen2", "testthat", "usethis", "later", "promises", + "R6", "withr", "pkgbuild", "curl") + missing <- pkgs[!sapply(pkgs, requireNamespace, quietly = TRUE)] + if (length(missing) > 0) { + install.packages(missing, repos = "https://cloud.r-project.org") + } +' + +# Patch src/Makevars with the requested C++ standard +"${SCRIPT_DIR}/check_prepare.sh" "${std}" "${compiler}" + +# Set up compiler override via R_MAKEVARS_USER +TMPDIR_MAKE=$(mktemp -d) +MAKEVARS_FILE="${TMPDIR_MAKE}/Makevars" +trap '"${SCRIPT_DIR}/check_restore.sh" "${std}" "${compiler}"; rm -rf "${TMPDIR_MAKE}"' EXIT + +if [ "$compiler" = "clang" ]; then + cat > "${MAKEVARS_FILE}" << 'EOF' +CC = clang +CXX = clang++ +CXX17 = clang++ +CXX17STD = -std=gnu++17 +CXX20 = clang++ +CXX20STD = -std=gnu++20 +CXX23 = clang++ +CXX23STD = -std=gnu++23 +SHLIB_OPENMP_CXXFLAGS = -fopenmp=libgomp +EOF +else + touch "${MAKEVARS_FILE}" +fi +export R_MAKEVARS_USER="${MAKEVARS_FILE}" + +# Ensure results directory exists +mkdir -p "./check-r-devel" +LOG="./check-r-devel/check-${std}-${compiler}-devel.log" + +# Clear previous log if it exists +rm -f "${LOG}" + +# Capture everything (stdout+stderr) into the log while printing to console +exec > >(tee -a "${LOG}") 2>&1 + +# Build httpuv tarball using R-devel +echo "Building tarball with R-devel..." +TARBALL=$("${RSCRIPT_DEVEL}" --vanilla -e 'cat(devtools::build(".", quiet = TRUE))') +if [ -z "${TARBALL}" ]; then + echo "Failed to build httpuv tarball." + exit 1 +fi + +echo "Tarball created: ${TARBALL}" + +# Run R CMD check on the tarball using R-devel +echo "Running R CMD check with R-devel..." +"${R_DEVEL}" CMD check --as-cran --no-manual "${TARBALL}" || true + +# If there was an error, copy the install log for inspection +if [ -f "./httpuv.Rcheck/00install.out" ]; then + cp "./httpuv.Rcheck/00install.out" "./check-r-devel/install-${std}-${compiler}-devel.log" + echo "=== BEGIN 00install.out ===" + cat "./httpuv.Rcheck/00install.out" + echo "=== END 00install.out ===" +fi + +# Inspect log for ERRORs only. Allow WARNINGs and NOTEs. +if grep -q "\bERROR\b" "${LOG}"; then + echo "R CMD check found ERRORs. See ${LOG} for details." + grep -n "\bERROR\b" "${LOG}" || true + exit 1 +else + echo "R CMD check completed with no ERRORs. Warnings/Notes (if any) are allowed. See ${LOG} for full output." +fi + +rm -f "${TARBALL}" + +echo "===============================" +echo "R-devel check complete." +echo "===============================" diff --git a/scripts/check_restore.sh b/scripts/check_restore.sh new file mode 100755 index 000000000..535e9b53c --- /dev/null +++ b/scripts/check_restore.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +set -euo pipefail + +std=${1:-CXX17} +std=$(echo "$std" | tr '[:lower:]' '[:upper:]') +compiler=${2:-gcc} + +echo "Restoring files for $std and $compiler" + +# Remove the CXX_STD line added by check_prepare.sh +sed -i '/^CXX_STD = /d' ./src/Makevars.in + +# Clear check files +rm -rf ./httpuv.Rcheck || true diff --git a/scripts/check_run.sh b/scripts/check_run.sh new file mode 100755 index 000000000..925dda02a --- /dev/null +++ b/scripts/check_run.sh @@ -0,0 +1,73 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Accept std and compiler as positional parameters +std="$1" +std=$(echo "$std" | tr '[:lower:]' '[:upper:]') +compiler="$2" + +# R_MAKEVARS_USER is included AFTER Makeconf, so it can override the compiler. +# Package src/Makevars is included BEFORE Makeconf and cannot override CXX17 etc. +TMPDIR_MAKE=$(mktemp -d) +MAKEVARS_FILE="${TMPDIR_MAKE}/Makevars" +trap 'rm -rf "${TMPDIR_MAKE}"' EXIT + +if [ "$compiler" = "clang" ]; then + cat > "${MAKEVARS_FILE}" << 'EOF' +CC = clang +CXX = clang++ +CXX17 = clang++ +CXX17STD = -std=gnu++17 +CXX20 = clang++ +CXX20STD = -std=gnu++20 +CXX23 = clang++ +CXX23STD = -std=gnu++23 +SHLIB_OPENMP_CXXFLAGS = -fopenmp=libgomp +EOF +else + touch "${MAKEVARS_FILE}" +fi +export R_MAKEVARS_USER="${MAKEVARS_FILE}" + +# Ensure results directory and set per-iteration log +mkdir -p "./check-gcc-clang" +LOG="./check-gcc-clang/check-${std}-${compiler}.log" + +# clear previous log if it exists +rm -f "${LOG}" + +# Capture everything (stdout+stderr) from this point into the per-iteration log +# while still printing to the console via tee. This ensures all printed lines +# (from Rscript, R CMD check and this script) are saved. +exec > >(tee -a "${LOG}") 2>&1 + +# Build httpuv tarball +TARBALL=$(Rscript -e 'cat(devtools::build(".", quiet = TRUE))') +if [ -z "${TARBALL}" ]; then + echo "Failed to build tarball for httpuv." + exit 1 +fi + +# Run R CMD check on the tarball and capture output. Skip PDF/manual to avoid TeX font issues. +R CMD check --as-cran --no-manual "${TARBALL}" || true + +# If there was an error, copy the install log to the results directory for inspection +if [ -f "./httpuv.Rcheck/00install.out" ]; then + cp "./httpuv.Rcheck/00install.out" "./check-gcc-clang/install-${std}-${compiler}.log" + echo "=== BEGIN 00install.out ===" + cat "./httpuv.Rcheck/00install.out" + echo "=== END 00install.out ===" +fi + +# Inspect log for ERRORs only. Allow WARNINGs and NOTEs. +if grep -q "\bERROR\b" "${LOG}"; then + echo "R CMD check found ERRORs. See ${LOG} for details." + grep -n "\bERROR\b" "${LOG}" || true + exit 1 +else + echo "R CMD check completed with no ERRORs. Warnings/Notes (if any) are allowed. See ${LOG} for full output." +fi + +rm -f "${TARBALL}" + +echo "Run complete." diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp deleted file mode 100644 index 3e522207e..000000000 --- a/src/RcppExports.cpp +++ /dev/null @@ -1,283 +0,0 @@ -// Generated by using Rcpp::compileAttributes() -> do not edit by hand -// Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 - -#include - -using namespace Rcpp; - -#ifdef RCPP_USE_GLOBAL_ROSTREAM -Rcpp::Rostream& Rcpp::Rcout = Rcpp::Rcpp_cout_get(); -Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get(); -#endif - -// sendWSMessage -void sendWSMessage(SEXP conn, bool binary, Rcpp::RObject message); -RcppExport SEXP _httpuv_sendWSMessage(SEXP connSEXP, SEXP binarySEXP, SEXP messageSEXP) { -BEGIN_RCPP - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< SEXP >::type conn(connSEXP); - Rcpp::traits::input_parameter< bool >::type binary(binarySEXP); - Rcpp::traits::input_parameter< Rcpp::RObject >::type message(messageSEXP); - sendWSMessage(conn, binary, message); - return R_NilValue; -END_RCPP -} -// closeWS -void closeWS(SEXP conn, uint16_t code, std::string reason); -RcppExport SEXP _httpuv_closeWS(SEXP connSEXP, SEXP codeSEXP, SEXP reasonSEXP) { -BEGIN_RCPP - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< SEXP >::type conn(connSEXP); - Rcpp::traits::input_parameter< uint16_t >::type code(codeSEXP); - Rcpp::traits::input_parameter< std::string >::type reason(reasonSEXP); - closeWS(conn, code, reason); - return R_NilValue; -END_RCPP -} -// makeTcpServer -Rcpp::RObject makeTcpServer(const std::string& host, int port, Rcpp::Function onHeaders, Rcpp::Function onBodyData, Rcpp::Function onRequest, Rcpp::Function onWSOpen, Rcpp::Function onWSMessage, Rcpp::Function onWSClose, Rcpp::List staticPaths, Rcpp::List staticPathOptions, bool quiet); -RcppExport SEXP _httpuv_makeTcpServer(SEXP hostSEXP, SEXP portSEXP, SEXP onHeadersSEXP, SEXP onBodyDataSEXP, SEXP onRequestSEXP, SEXP onWSOpenSEXP, SEXP onWSMessageSEXP, SEXP onWSCloseSEXP, SEXP staticPathsSEXP, SEXP staticPathOptionsSEXP, SEXP quietSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< const std::string& >::type host(hostSEXP); - Rcpp::traits::input_parameter< int >::type port(portSEXP); - Rcpp::traits::input_parameter< Rcpp::Function >::type onHeaders(onHeadersSEXP); - Rcpp::traits::input_parameter< Rcpp::Function >::type onBodyData(onBodyDataSEXP); - Rcpp::traits::input_parameter< Rcpp::Function >::type onRequest(onRequestSEXP); - Rcpp::traits::input_parameter< Rcpp::Function >::type onWSOpen(onWSOpenSEXP); - Rcpp::traits::input_parameter< Rcpp::Function >::type onWSMessage(onWSMessageSEXP); - Rcpp::traits::input_parameter< Rcpp::Function >::type onWSClose(onWSCloseSEXP); - Rcpp::traits::input_parameter< Rcpp::List >::type staticPaths(staticPathsSEXP); - Rcpp::traits::input_parameter< Rcpp::List >::type staticPathOptions(staticPathOptionsSEXP); - Rcpp::traits::input_parameter< bool >::type quiet(quietSEXP); - rcpp_result_gen = Rcpp::wrap(makeTcpServer(host, port, onHeaders, onBodyData, onRequest, onWSOpen, onWSMessage, onWSClose, staticPaths, staticPathOptions, quiet)); - return rcpp_result_gen; -END_RCPP -} -// makePipeServer -Rcpp::RObject makePipeServer(const std::string& name, int mask, Rcpp::Function onHeaders, Rcpp::Function onBodyData, Rcpp::Function onRequest, Rcpp::Function onWSOpen, Rcpp::Function onWSMessage, Rcpp::Function onWSClose, Rcpp::List staticPaths, Rcpp::List staticPathOptions, bool quiet); -RcppExport SEXP _httpuv_makePipeServer(SEXP nameSEXP, SEXP maskSEXP, SEXP onHeadersSEXP, SEXP onBodyDataSEXP, SEXP onRequestSEXP, SEXP onWSOpenSEXP, SEXP onWSMessageSEXP, SEXP onWSCloseSEXP, SEXP staticPathsSEXP, SEXP staticPathOptionsSEXP, SEXP quietSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< const std::string& >::type name(nameSEXP); - Rcpp::traits::input_parameter< int >::type mask(maskSEXP); - Rcpp::traits::input_parameter< Rcpp::Function >::type onHeaders(onHeadersSEXP); - Rcpp::traits::input_parameter< Rcpp::Function >::type onBodyData(onBodyDataSEXP); - Rcpp::traits::input_parameter< Rcpp::Function >::type onRequest(onRequestSEXP); - Rcpp::traits::input_parameter< Rcpp::Function >::type onWSOpen(onWSOpenSEXP); - Rcpp::traits::input_parameter< Rcpp::Function >::type onWSMessage(onWSMessageSEXP); - Rcpp::traits::input_parameter< Rcpp::Function >::type onWSClose(onWSCloseSEXP); - Rcpp::traits::input_parameter< Rcpp::List >::type staticPaths(staticPathsSEXP); - Rcpp::traits::input_parameter< Rcpp::List >::type staticPathOptions(staticPathOptionsSEXP); - Rcpp::traits::input_parameter< bool >::type quiet(quietSEXP); - rcpp_result_gen = Rcpp::wrap(makePipeServer(name, mask, onHeaders, onBodyData, onRequest, onWSOpen, onWSMessage, onWSClose, staticPaths, staticPathOptions, quiet)); - return rcpp_result_gen; -END_RCPP -} -// stopServer_ -void stopServer_(std::string handle); -RcppExport SEXP _httpuv_stopServer_(SEXP handleSEXP) { -BEGIN_RCPP - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< std::string >::type handle(handleSEXP); - stopServer_(handle); - return R_NilValue; -END_RCPP -} -// getStaticPaths_ -Rcpp::List getStaticPaths_(std::string handle); -RcppExport SEXP _httpuv_getStaticPaths_(SEXP handleSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< std::string >::type handle(handleSEXP); - rcpp_result_gen = Rcpp::wrap(getStaticPaths_(handle)); - return rcpp_result_gen; -END_RCPP -} -// setStaticPaths_ -Rcpp::List setStaticPaths_(std::string handle, Rcpp::List sp); -RcppExport SEXP _httpuv_setStaticPaths_(SEXP handleSEXP, SEXP spSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< std::string >::type handle(handleSEXP); - Rcpp::traits::input_parameter< Rcpp::List >::type sp(spSEXP); - rcpp_result_gen = Rcpp::wrap(setStaticPaths_(handle, sp)); - return rcpp_result_gen; -END_RCPP -} -// removeStaticPaths_ -Rcpp::List removeStaticPaths_(std::string handle, Rcpp::CharacterVector paths); -RcppExport SEXP _httpuv_removeStaticPaths_(SEXP handleSEXP, SEXP pathsSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< std::string >::type handle(handleSEXP); - Rcpp::traits::input_parameter< Rcpp::CharacterVector >::type paths(pathsSEXP); - rcpp_result_gen = Rcpp::wrap(removeStaticPaths_(handle, paths)); - return rcpp_result_gen; -END_RCPP -} -// getStaticPathOptions_ -Rcpp::List getStaticPathOptions_(std::string handle); -RcppExport SEXP _httpuv_getStaticPathOptions_(SEXP handleSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< std::string >::type handle(handleSEXP); - rcpp_result_gen = Rcpp::wrap(getStaticPathOptions_(handle)); - return rcpp_result_gen; -END_RCPP -} -// setStaticPathOptions_ -Rcpp::List setStaticPathOptions_(std::string handle, Rcpp::List opts); -RcppExport SEXP _httpuv_setStaticPathOptions_(SEXP handleSEXP, SEXP optsSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< std::string >::type handle(handleSEXP); - Rcpp::traits::input_parameter< Rcpp::List >::type opts(optsSEXP); - rcpp_result_gen = Rcpp::wrap(setStaticPathOptions_(handle, opts)); - return rcpp_result_gen; -END_RCPP -} -// base64encode -std::string base64encode(const Rcpp::RawVector& x); -RcppExport SEXP _httpuv_base64encode(SEXP xSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< const Rcpp::RawVector& >::type x(xSEXP); - rcpp_result_gen = Rcpp::wrap(base64encode(x)); - return rcpp_result_gen; -END_RCPP -} -// encodeURI -Rcpp::CharacterVector encodeURI(Rcpp::CharacterVector value); -RcppExport SEXP _httpuv_encodeURI(SEXP valueSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< Rcpp::CharacterVector >::type value(valueSEXP); - rcpp_result_gen = Rcpp::wrap(encodeURI(value)); - return rcpp_result_gen; -END_RCPP -} -// encodeURIComponent -Rcpp::CharacterVector encodeURIComponent(Rcpp::CharacterVector value); -RcppExport SEXP _httpuv_encodeURIComponent(SEXP valueSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< Rcpp::CharacterVector >::type value(valueSEXP); - rcpp_result_gen = Rcpp::wrap(encodeURIComponent(value)); - return rcpp_result_gen; -END_RCPP -} -// decodeURI -Rcpp::CharacterVector decodeURI(Rcpp::CharacterVector value); -RcppExport SEXP _httpuv_decodeURI(SEXP valueSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< Rcpp::CharacterVector >::type value(valueSEXP); - rcpp_result_gen = Rcpp::wrap(decodeURI(value)); - return rcpp_result_gen; -END_RCPP -} -// decodeURIComponent -Rcpp::CharacterVector decodeURIComponent(Rcpp::CharacterVector value); -RcppExport SEXP _httpuv_decodeURIComponent(SEXP valueSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< Rcpp::CharacterVector >::type value(valueSEXP); - rcpp_result_gen = Rcpp::wrap(decodeURIComponent(value)); - return rcpp_result_gen; -END_RCPP -} -// ipFamily -int ipFamily(const std::string& ip); -RcppExport SEXP _httpuv_ipFamily(SEXP ipSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< const std::string& >::type ip(ipSEXP); - rcpp_result_gen = Rcpp::wrap(ipFamily(ip)); - return rcpp_result_gen; -END_RCPP -} -// invokeCppCallback -void invokeCppCallback(Rcpp::List data, SEXP callback_xptr); -RcppExport SEXP _httpuv_invokeCppCallback(SEXP dataSEXP, SEXP callback_xptrSEXP) { -BEGIN_RCPP - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< Rcpp::List >::type data(dataSEXP); - Rcpp::traits::input_parameter< SEXP >::type callback_xptr(callback_xptrSEXP); - invokeCppCallback(data, callback_xptr); - return R_NilValue; -END_RCPP -} -// getRNGState -void getRNGState(); -RcppExport SEXP _httpuv_getRNGState() { -BEGIN_RCPP - Rcpp::RNGScope rcpp_rngScope_gen; - getRNGState(); - return R_NilValue; -END_RCPP -} -// wsconn_address -std::string wsconn_address(SEXP external_ptr); -RcppExport SEXP _httpuv_wsconn_address(SEXP external_ptrSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< SEXP >::type external_ptr(external_ptrSEXP); - rcpp_result_gen = Rcpp::wrap(wsconn_address(external_ptr)); - return rcpp_result_gen; -END_RCPP -} -// log_level -std::string log_level(const std::string& level); -RcppExport SEXP _httpuv_log_level(SEXP levelSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< const std::string& >::type level(levelSEXP); - rcpp_result_gen = Rcpp::wrap(log_level(level)); - return rcpp_result_gen; -END_RCPP -} - -static const R_CallMethodDef CallEntries[] = { - {"_httpuv_sendWSMessage", (DL_FUNC) &_httpuv_sendWSMessage, 3}, - {"_httpuv_closeWS", (DL_FUNC) &_httpuv_closeWS, 3}, - {"_httpuv_makeTcpServer", (DL_FUNC) &_httpuv_makeTcpServer, 11}, - {"_httpuv_makePipeServer", (DL_FUNC) &_httpuv_makePipeServer, 11}, - {"_httpuv_stopServer_", (DL_FUNC) &_httpuv_stopServer_, 1}, - {"_httpuv_getStaticPaths_", (DL_FUNC) &_httpuv_getStaticPaths_, 1}, - {"_httpuv_setStaticPaths_", (DL_FUNC) &_httpuv_setStaticPaths_, 2}, - {"_httpuv_removeStaticPaths_", (DL_FUNC) &_httpuv_removeStaticPaths_, 2}, - {"_httpuv_getStaticPathOptions_", (DL_FUNC) &_httpuv_getStaticPathOptions_, 1}, - {"_httpuv_setStaticPathOptions_", (DL_FUNC) &_httpuv_setStaticPathOptions_, 2}, - {"_httpuv_base64encode", (DL_FUNC) &_httpuv_base64encode, 1}, - {"_httpuv_encodeURI", (DL_FUNC) &_httpuv_encodeURI, 1}, - {"_httpuv_encodeURIComponent", (DL_FUNC) &_httpuv_encodeURIComponent, 1}, - {"_httpuv_decodeURI", (DL_FUNC) &_httpuv_decodeURI, 1}, - {"_httpuv_decodeURIComponent", (DL_FUNC) &_httpuv_decodeURIComponent, 1}, - {"_httpuv_ipFamily", (DL_FUNC) &_httpuv_ipFamily, 1}, - {"_httpuv_invokeCppCallback", (DL_FUNC) &_httpuv_invokeCppCallback, 2}, - {"_httpuv_getRNGState", (DL_FUNC) &_httpuv_getRNGState, 0}, - {"_httpuv_wsconn_address", (DL_FUNC) &_httpuv_wsconn_address, 1}, - {"_httpuv_log_level", (DL_FUNC) &_httpuv_log_level, 1}, - {NULL, NULL, 0} -}; - -RcppExport void R_init_httpuv(DllInfo *dll) { - R_registerRoutines(dll, NULL, CallEntries, NULL, NULL); - R_useDynamicSymbols(dll, FALSE); -} diff --git a/src/auto_deleter.h b/src/auto_deleter.h index 9a618c35e..1e04084f9 100644 --- a/src/auto_deleter.h +++ b/src/auto_deleter.h @@ -1,27 +1,26 @@ #ifndef AUTO_DELETER_HPP #define AUTO_DELETER_HPP -#include #include "callbackqueue.h" #include "thread.h" +#include "utils.h" +#include #include - -extern CallbackQueue* background_queue; - +extern CallbackQueue *background_queue; // A deleter function, which, if called on the main thread, will delete the // object immediately. If called on the background thread, it will schedule // deletion to happen on the main thread. This is useful in cases where we // don't know ahead of time which thread will be triggering the deletion. -template -void auto_deleter_main(void* obj) { +template void auto_deleter_main(void *obj) { // Unlike auto_deleter_background, this function takes a void* argument. // This is because later() can only pass a void* to the callback. if (is_main_thread()) { try { - delete reinterpret_cast(obj); - } catch (...) {} + delete reinterpret_cast(obj); + } catch (...) { + } } else if (is_background_thread()) { later::later(auto_deleter_main, obj, 0); @@ -35,20 +34,20 @@ void auto_deleter_main(void* obj) { // the object immediately. If called on the main thread, it will schedule // deletion to happen on the background thread. This is useful in cases where // we don't know ahead of time which thread will be triggering the deletion. -template -void auto_deleter_background(T* obj) { +template void auto_deleter_background(T *obj) { if (is_main_thread()) { background_queue->push(std::bind(auto_deleter_background, obj)); } else if (is_background_thread()) { try { delete obj; - } catch (...) {} + } catch (...) { + } } else { - debug_log("Can't detect correct thread for auto_deleter_background.", LOG_ERROR); + debug_log("Can't detect correct thread for auto_deleter_background.", + LOG_ERROR); } } - #endif diff --git a/src/base64/base64.cpp b/src/base64/base64.cpp index 63a999a97..4770ec2f8 100644 --- a/src/base64/base64.cpp +++ b/src/base64/base64.cpp @@ -5,17 +5,20 @@ /* * Translation Table as described in RFC1113 */ -static const char cb64[]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +static const char cb64[] = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; /* * encodeblock * * encode 3 8-bit binary bytes as 4 '6-bit' characters */ -void encodeblock( unsigned char in[3], unsigned char out[4], int len ) -{ - out[0] = cb64[ in[0] >> 2 ]; - out[1] = cb64[ ((in[0] & 0x03) << 4) | ((in[1] & 0xf0) >> 4) ]; - out[2] = (unsigned char) (len > 1 ? cb64[ ((in[1] & 0x0f) << 2) | ((in[2] & 0xc0) >> 6) ] : '='); - out[3] = (unsigned char) (len > 2 ? cb64[ in[2] & 0x3f ] : '='); +void encodeblock(unsigned char in[3], unsigned char out[4], int len) { + out[0] = cb64[in[0] >> 2]; + out[1] = cb64[((in[0] & 0x03) << 4) | ((in[1] & 0xf0) >> 4)]; + out[2] = + (unsigned char)(len > 1 + ? cb64[((in[1] & 0x0f) << 2) | ((in[2] & 0xc0) >> 6)] + : '='); + out[3] = (unsigned char)(len > 2 ? cb64[in[2] & 0x3f] : '='); } diff --git a/src/base64/base64.hpp b/src/base64/base64.hpp index 852bc1447..6fe05ec84 100644 --- a/src/base64/base64.hpp +++ b/src/base64/base64.hpp @@ -1,35 +1,34 @@ #ifndef BASE64_H #define BASE64_H -void encodeblock( unsigned char in[3], unsigned char out[4], int len ); +void encodeblock(unsigned char in[3], unsigned char out[4], int len); template -std::string b64encode(InputIterator begin, InputIterator end) -{ - unsigned char in[3], out[4]; - int i, len; +std::string b64encode(InputIterator begin, InputIterator end) { + unsigned char in[3], out[4]; + int i, len; - std::string databuf; + std::string databuf; - while( begin != end ) { - len = 0; - for( i = 0; i < 3; i++ ) { - if( begin != end ) { - in[i] = static_cast( *begin++ ); - len++; - } else { - in[i] = 0; - } + while (begin != end) { + len = 0; + for (i = 0; i < 3; i++) { + if (begin != end) { + in[i] = static_cast(*begin++); + len++; + } else { + in[i] = 0; } - if( len ) { - encodeblock( in, out, len ); - for( i = 0; i < 4; i++ ) { - databuf.push_back(out[i]); - } + } + if (len) { + encodeblock(in, out, len); + for (i = 0; i < 4; i++) { + databuf.push_back(out[i]); } - } + } + } - return databuf; + return databuf; } #endif diff --git a/src/callback.cpp b/src/callback.cpp index fe1c2bf55..299a08d68 100644 --- a/src/callback.cpp +++ b/src/callback.cpp @@ -2,14 +2,14 @@ // Invoke a callback and delete the object. The Callback object must have been // heap-allocated. -void invoke_callback(void* data) { - Callback* cb = reinterpret_cast(data); +void invoke_callback(void *data) { + Callback *cb = reinterpret_cast(data); (*cb)(); delete cb; } // Schedule a std::function to be invoked with later(). void invoke_later(std::function f, double secs) { - StdFunctionCallback* b_fun = new StdFunctionCallback(f); - later::later(invoke_callback, (void*)b_fun, secs); + StdFunctionCallback *b_fun = new StdFunctionCallback(f); + later::later(invoke_callback, (void *)b_fun, secs); } diff --git a/src/callback.h b/src/callback.h index b9e47b33b..5a03ee0da 100644 --- a/src/callback.h +++ b/src/callback.h @@ -12,23 +12,17 @@ class Callback { // If the Callback class were integrated into later, this wouldn't be // necessary -- later could accept a void(Callback*) function. -void invoke_callback(void* data); - +void invoke_callback(void *data); // Wrapper class for std functions class StdFunctionCallback : public Callback { private: - std::function fun; + std::function fun; public: - StdFunctionCallback(std::function fun) - : fun(fun) { - } - - void operator()() { - fun(); - } + StdFunctionCallback(std::function fun) : fun(fun) {} + void operator()() { fun(); } }; void invoke_later(std::function f, double secs = 0); diff --git a/src/callbackqueue.cpp b/src/callbackqueue.cpp index fb976c7c9..d3078dce4 100644 --- a/src/callbackqueue.cpp +++ b/src/callbackqueue.cpp @@ -1,33 +1,30 @@ -#include #include "callbackqueue.h" -#include "tqueue.h" #include "thread.h" +#include "tqueue.h" +#include #include - // This non-class function is a plain C wrapper for CallbackQueue::flush(), and // is needed as a callback to pass to uv_async_send. void flush_callback_queue(uv_async_t *handle) { - CallbackQueue* wq = reinterpret_cast(handle->data); + CallbackQueue *wq = reinterpret_cast(handle->data); wq->flush(); } - -CallbackQueue::CallbackQueue(uv_loop_t* loop) { +CallbackQueue::CallbackQueue(uv_loop_t *loop) { ASSERT_BACKGROUND_THREAD() uv_async_init(loop, &flush_handle, flush_callback_queue); - flush_handle.data = reinterpret_cast(this); + flush_handle.data = reinterpret_cast(this); } - -void CallbackQueue::push(std::function cb) { +void CallbackQueue::push(std::function cb) { q.push(cb); uv_async_send(&flush_handle); } void CallbackQueue::flush() { ASSERT_BACKGROUND_THREAD() - std::function cb; + std::function cb; while (1) { // Do queue operations inside this guarded scope, but we'll execute the diff --git a/src/callbackqueue.h b/src/callbackqueue.h index 9596d9217..b5d770adb 100644 --- a/src/callbackqueue.h +++ b/src/callbackqueue.h @@ -7,16 +7,15 @@ class CallbackQueue { public: - CallbackQueue(uv_loop_t* loop); - void push(std::function cb); + CallbackQueue(uv_loop_t *loop); + void push(std::function cb); // Needs to be a friend to call .flush() friend void flush_callback_queue(uv_async_t *handle); private: void flush(); uv_async_t flush_handle; - tqueue< std::function > q; + tqueue> q; }; - #endif diff --git a/src/constants.h b/src/constants.h index a7bc98bb4..5e9fed776 100644 --- a/src/constants.h +++ b/src/constants.h @@ -3,8 +3,8 @@ #include -#include #include +#include #include enum Opcode { @@ -21,28 +21,26 @@ enum Opcode { const size_t MAX_HEADER_BYTES = 14; const size_t MAX_FOOTER_BYTES = 1; -enum WSParseState { - InHeader, - InPayload -}; +enum WSParseState { InHeader, InPayload }; struct compare_ci { - bool operator()(const std::string& a, const std::string& b) const { + bool operator()(const std::string &a, const std::string &b) const { return strcasecmp(a.c_str(), b.c_str()) < 0; } }; typedef std::map RequestHeaders; -typedef std::vector > ResponseHeaders; +typedef std::vector> ResponseHeaders; class NoCopy { protected: NoCopy() {} ~NoCopy() {} + private: - NoCopy(const NoCopy&) {} - const NoCopy& operator=(const NoCopy& a) { return a; } + NoCopy(const NoCopy &) {} + const NoCopy &operator=(const NoCopy &a) { return a; } }; // trim from both ends @@ -51,7 +49,7 @@ static inline std::string trim(const std::string &s) { if (start == std::string::npos) return std::string(); size_t end = s.find_last_not_of("\t ") + 1; - return s.substr(start, end-start); + return s.substr(start, end - start); } #endif // CONSTANTS_H diff --git a/src/cpp11.cpp b/src/cpp11.cpp new file mode 100644 index 000000000..b2851c01c --- /dev/null +++ b/src/cpp11.cpp @@ -0,0 +1,184 @@ +// Generated by cpp11: do not edit by hand +// clang-format off + + +#include "cpp11/declarations.hpp" +#include + +// httpuv.cpp +void sendWSMessage(SEXP conn, bool binary, SEXP message); +extern "C" SEXP _httpuv_sendWSMessage(SEXP conn, SEXP binary, SEXP message) { + BEGIN_CPP11 + sendWSMessage(cpp11::as_cpp>(conn), cpp11::as_cpp>(binary), cpp11::as_cpp>(message)); + return R_NilValue; + END_CPP11 +} +// httpuv.cpp +void closeWS(SEXP conn, uint16_t code, std::string reason); +extern "C" SEXP _httpuv_closeWS(SEXP conn, SEXP code, SEXP reason) { + BEGIN_CPP11 + closeWS(cpp11::as_cpp>(conn), cpp11::as_cpp>(code), cpp11::as_cpp>(reason)); + return R_NilValue; + END_CPP11 +} +// httpuv.cpp +SEXP makeTcpServer(const std::string & host, int port, sexp onHeaders, function onBodyData, function onRequest, function onWSOpen, function onWSMessage, function onWSClose, list staticPaths, list staticPathOptions, bool quiet); +extern "C" SEXP _httpuv_makeTcpServer(SEXP host, SEXP port, SEXP onHeaders, SEXP onBodyData, SEXP onRequest, SEXP onWSOpen, SEXP onWSMessage, SEXP onWSClose, SEXP staticPaths, SEXP staticPathOptions, SEXP quiet) { + BEGIN_CPP11 + return cpp11::as_sexp(makeTcpServer(cpp11::as_cpp>(host), cpp11::as_cpp>(port), cpp11::as_cpp>(onHeaders), cpp11::as_cpp>(onBodyData), cpp11::as_cpp>(onRequest), cpp11::as_cpp>(onWSOpen), cpp11::as_cpp>(onWSMessage), cpp11::as_cpp>(onWSClose), cpp11::as_cpp>(staticPaths), cpp11::as_cpp>(staticPathOptions), cpp11::as_cpp>(quiet))); + END_CPP11 +} +// httpuv.cpp +SEXP makePipeServer(const std::string & name, int mask, sexp onHeaders, function onBodyData, function onRequest, function onWSOpen, function onWSMessage, function onWSClose, list staticPaths, list staticPathOptions, bool quiet); +extern "C" SEXP _httpuv_makePipeServer(SEXP name, SEXP mask, SEXP onHeaders, SEXP onBodyData, SEXP onRequest, SEXP onWSOpen, SEXP onWSMessage, SEXP onWSClose, SEXP staticPaths, SEXP staticPathOptions, SEXP quiet) { + BEGIN_CPP11 + return cpp11::as_sexp(makePipeServer(cpp11::as_cpp>(name), cpp11::as_cpp>(mask), cpp11::as_cpp>(onHeaders), cpp11::as_cpp>(onBodyData), cpp11::as_cpp>(onRequest), cpp11::as_cpp>(onWSOpen), cpp11::as_cpp>(onWSMessage), cpp11::as_cpp>(onWSClose), cpp11::as_cpp>(staticPaths), cpp11::as_cpp>(staticPathOptions), cpp11::as_cpp>(quiet))); + END_CPP11 +} +// httpuv.cpp +void stopServer_(std::string handle); +extern "C" SEXP _httpuv_stopServer_(SEXP handle) { + BEGIN_CPP11 + stopServer_(cpp11::as_cpp>(handle)); + return R_NilValue; + END_CPP11 +} +// httpuv.cpp +list getStaticPaths_(std::string handle); +extern "C" SEXP _httpuv_getStaticPaths_(SEXP handle) { + BEGIN_CPP11 + return cpp11::as_sexp(getStaticPaths_(cpp11::as_cpp>(handle))); + END_CPP11 +} +// httpuv.cpp +list setStaticPaths_(std::string handle, list sp); +extern "C" SEXP _httpuv_setStaticPaths_(SEXP handle, SEXP sp) { + BEGIN_CPP11 + return cpp11::as_sexp(setStaticPaths_(cpp11::as_cpp>(handle), cpp11::as_cpp>(sp))); + END_CPP11 +} +// httpuv.cpp +list removeStaticPaths_(std::string handle, strings paths); +extern "C" SEXP _httpuv_removeStaticPaths_(SEXP handle, SEXP paths) { + BEGIN_CPP11 + return cpp11::as_sexp(removeStaticPaths_(cpp11::as_cpp>(handle), cpp11::as_cpp>(paths))); + END_CPP11 +} +// httpuv.cpp +list getStaticPathOptions_(std::string handle); +extern "C" SEXP _httpuv_getStaticPathOptions_(SEXP handle) { + BEGIN_CPP11 + return cpp11::as_sexp(getStaticPathOptions_(cpp11::as_cpp>(handle))); + END_CPP11 +} +// httpuv.cpp +list setStaticPathOptions_(std::string handle, list opts); +extern "C" SEXP _httpuv_setStaticPathOptions_(SEXP handle, SEXP opts) { + BEGIN_CPP11 + return cpp11::as_sexp(setStaticPathOptions_(cpp11::as_cpp>(handle), cpp11::as_cpp>(opts))); + END_CPP11 +} +// httpuv.cpp +std::string base64encode(const raws & x); +extern "C" SEXP _httpuv_base64encode(SEXP x) { + BEGIN_CPP11 + return cpp11::as_sexp(base64encode(cpp11::as_cpp>(x))); + END_CPP11 +} +// httpuv.cpp +strings encodeURI_(strings value); +extern "C" SEXP _httpuv_encodeURI_(SEXP value) { + BEGIN_CPP11 + return cpp11::as_sexp(encodeURI_(cpp11::as_cpp>(value))); + END_CPP11 +} +// httpuv.cpp +strings encodeURIComponent_(strings value); +extern "C" SEXP _httpuv_encodeURIComponent_(SEXP value) { + BEGIN_CPP11 + return cpp11::as_sexp(encodeURIComponent_(cpp11::as_cpp>(value))); + END_CPP11 +} +// httpuv.cpp +strings decodeURI_(strings value); +extern "C" SEXP _httpuv_decodeURI_(SEXP value) { + BEGIN_CPP11 + return cpp11::as_sexp(decodeURI_(cpp11::as_cpp>(value))); + END_CPP11 +} +// httpuv.cpp +strings decodeURIComponent_(strings value); +extern "C" SEXP _httpuv_decodeURIComponent_(SEXP value) { + BEGIN_CPP11 + return cpp11::as_sexp(decodeURIComponent_(cpp11::as_cpp>(value))); + END_CPP11 +} +// httpuv.cpp +int ipFamily_(const std::string & ip); +extern "C" SEXP _httpuv_ipFamily_(SEXP ip) { + BEGIN_CPP11 + return cpp11::as_sexp(ipFamily_(cpp11::as_cpp>(ip))); + END_CPP11 +} +// httpuv.cpp +void invokeCppCallback(SEXP data, SEXP callback_xptr); +extern "C" SEXP _httpuv_invokeCppCallback(SEXP data, SEXP callback_xptr) { + BEGIN_CPP11 + invokeCppCallback(cpp11::as_cpp>(data), cpp11::as_cpp>(callback_xptr)); + return R_NilValue; + END_CPP11 +} +// httpuv.cpp +void getRNGState_(); +extern "C" SEXP _httpuv_getRNGState_() { + BEGIN_CPP11 + getRNGState_(); + return R_NilValue; + END_CPP11 +} +// httpuv.cpp +std::string wsconn_address(SEXP external_ptr); +extern "C" SEXP _httpuv_wsconn_address(SEXP external_ptr) { + BEGIN_CPP11 + return cpp11::as_sexp(wsconn_address(cpp11::as_cpp>(external_ptr))); + END_CPP11 +} +// utils.cpp +std::string log_level(const std::string & level); +extern "C" SEXP _httpuv_log_level(SEXP level) { + BEGIN_CPP11 + return cpp11::as_sexp(log_level(cpp11::as_cpp>(level))); + END_CPP11 +} + +extern "C" { +static const R_CallMethodDef CallEntries[] = { + {"_httpuv_base64encode", (DL_FUNC) &_httpuv_base64encode, 1}, + {"_httpuv_closeWS", (DL_FUNC) &_httpuv_closeWS, 3}, + {"_httpuv_decodeURIComponent_", (DL_FUNC) &_httpuv_decodeURIComponent_, 1}, + {"_httpuv_decodeURI_", (DL_FUNC) &_httpuv_decodeURI_, 1}, + {"_httpuv_encodeURIComponent_", (DL_FUNC) &_httpuv_encodeURIComponent_, 1}, + {"_httpuv_encodeURI_", (DL_FUNC) &_httpuv_encodeURI_, 1}, + {"_httpuv_getRNGState_", (DL_FUNC) &_httpuv_getRNGState_, 0}, + {"_httpuv_getStaticPathOptions_", (DL_FUNC) &_httpuv_getStaticPathOptions_, 1}, + {"_httpuv_getStaticPaths_", (DL_FUNC) &_httpuv_getStaticPaths_, 1}, + {"_httpuv_invokeCppCallback", (DL_FUNC) &_httpuv_invokeCppCallback, 2}, + {"_httpuv_ipFamily_", (DL_FUNC) &_httpuv_ipFamily_, 1}, + {"_httpuv_log_level", (DL_FUNC) &_httpuv_log_level, 1}, + {"_httpuv_makePipeServer", (DL_FUNC) &_httpuv_makePipeServer, 11}, + {"_httpuv_makeTcpServer", (DL_FUNC) &_httpuv_makeTcpServer, 11}, + {"_httpuv_removeStaticPaths_", (DL_FUNC) &_httpuv_removeStaticPaths_, 2}, + {"_httpuv_sendWSMessage", (DL_FUNC) &_httpuv_sendWSMessage, 3}, + {"_httpuv_setStaticPathOptions_", (DL_FUNC) &_httpuv_setStaticPathOptions_, 2}, + {"_httpuv_setStaticPaths_", (DL_FUNC) &_httpuv_setStaticPaths_, 2}, + {"_httpuv_stopServer_", (DL_FUNC) &_httpuv_stopServer_, 1}, + {"_httpuv_wsconn_address", (DL_FUNC) &_httpuv_wsconn_address, 1}, + {NULL, NULL, 0} +}; +} + +extern "C" attribute_visible void R_init_httpuv(DllInfo* dll){ + R_registerRoutines(dll, NULL, CallEntries, NULL, NULL); + R_useDynamicSymbols(dll, FALSE); + R_forceSymbols(dll, TRUE); +} diff --git a/src/filedatasource-unix.cpp b/src/filedatasource-unix.cpp index 6db068299..88263a1d1 100644 --- a/src/filedatasource-unix.cpp +++ b/src/filedatasource-unix.cpp @@ -2,13 +2,14 @@ #include "filedatasource.h" #include "utils.h" +#include #include -#include #include +#include #include -#include -FileDataSourceResult FileDataSource::initialize(const std::string& path, bool owned) { +FileDataSourceResult FileDataSource::initialize(const std::string &path, + bool owned) { // This can be called from either the main thread or background thread. _fd = open(path.c_str(), O_RDONLY); @@ -17,14 +18,15 @@ FileDataSourceResult FileDataSource::initialize(const std::string& path, bool ow _lastErrorMessage = "File does not exist: " + path + "\n"; return FDS_NOT_EXIST; } else { - _lastErrorMessage = "Error opening file " + path + ": " + toString(errno) + "\n"; + _lastErrorMessage = + "Error opening file " + path + ": " + toString(errno) + "\n"; return FDS_ERROR; } - } - else { + } else { struct stat info = {0}; if (fstat(_fd, &info)) { - _lastErrorMessage = "Error opening path " + path + ": " + toString(errno) + "\n"; + _lastErrorMessage = + "Error opening path " + path + ": " + toString(errno) + "\n"; ::close(_fd); return FDS_ERROR; } @@ -48,16 +50,14 @@ FileDataSourceResult FileDataSource::initialize(const std::string& path, bool ow } } -uint64_t FileDataSource::size() const { - return _length; -} +uint64_t FileDataSource::size() const { return _length; } uv_buf_t FileDataSource::getData(size_t bytesDesired) { ASSERT_BACKGROUND_THREAD() if (bytesDesired == 0) return uv_buf_init(NULL, 0); - char* buffer = (char*)malloc(bytesDesired); + char *buffer = (char *)malloc(bytesDesired); if (!buffer) { throw std::runtime_error("Couldn't allocate buffer"); } @@ -72,9 +72,7 @@ uv_buf_t FileDataSource::getData(size_t bytesDesired) { return uv_buf_init(buffer, bytesRead); } -void FileDataSource::freeData(uv_buf_t buffer) { - free(buffer.base); -} +void FileDataSource::freeData(uv_buf_t buffer) { free(buffer.base); } time_t FileDataSource::getMtime() { struct stat res; @@ -95,5 +93,4 @@ std::string FileDataSource::lastErrorMessage() const { return _lastErrorMessage; } - #endif // #ifndef _WIN32 diff --git a/src/filedatasource-win.cpp b/src/filedatasource-win.cpp index e5366966b..9007c5a72 100644 --- a/src/filedatasource-win.cpp +++ b/src/filedatasource-win.cpp @@ -9,25 +9,22 @@ // so we can use FILE_FLAG_DELETE_ON_CLOSE, which is not available // using the POSIX file functions. - -FileDataSourceResult FileDataSource::initialize(const std::string& path, bool owned) { +FileDataSourceResult FileDataSource::initialize(const std::string &path, + bool owned) { // This can be called from either the main thread or background thread. DWORD flags = FILE_FLAG_SEQUENTIAL_SCAN; if (owned) flags |= FILE_FLAG_DELETE_ON_CLOSE; - - _hFile = CreateFileW(utf8ToWide(path).data(), - GENERIC_READ, - FILE_SHARE_READ, // allow other processes to read - NULL, // security attributes - OPEN_EXISTING, - flags, - NULL); + _hFile = CreateFileW(utf8ToWide(path).data(), GENERIC_READ, + FILE_SHARE_READ, // allow other processes to read + NULL, // security attributes + OPEN_EXISTING, flags, NULL); if (_hFile == INVALID_HANDLE_VALUE) { - if (GetLastError() == ERROR_FILE_NOT_FOUND || GetLastError() == ERROR_PATH_NOT_FOUND) { + if (GetLastError() == ERROR_FILE_NOT_FOUND || + GetLastError() == ERROR_PATH_NOT_FOUND) { _lastErrorMessage = "File does not exist: " + path + "\n"; return FDS_NOT_EXIST; @@ -43,32 +40,31 @@ FileDataSourceResult FileDataSource::initialize(const std::string& path, bool ow return FDS_ISDIR; } else { - _lastErrorMessage = "Error opening file " + path + ": " + toString(GetLastError()) + "\n"; + _lastErrorMessage = + "Error opening file " + path + ": " + toString(GetLastError()) + "\n"; return FDS_ERROR; } } - if (!GetFileSizeEx(_hFile, &_length)) { CloseHandle(_hFile); _hFile = INVALID_HANDLE_VALUE; - _lastErrorMessage = "Error retrieving file size for " + path + ": " + toString(GetLastError()) + "\n"; + _lastErrorMessage = "Error retrieving file size for " + path + ": " + + toString(GetLastError()) + "\n"; return FDS_ERROR; } return FDS_OK; } -uint64_t FileDataSource::size() const { - return _length.QuadPart; -} +uint64_t FileDataSource::size() const { return _length.QuadPart; } uv_buf_t FileDataSource::getData(size_t bytesDesired) { ASSERT_BACKGROUND_THREAD() if (bytesDesired == 0) return uv_buf_init(NULL, 0); - char* buffer = (char*)malloc(bytesDesired); + char *buffer = (char *)malloc(bytesDesired); if (!buffer) { throw std::runtime_error("Couldn't allocate buffer"); } @@ -84,13 +80,11 @@ uv_buf_t FileDataSource::getData(size_t bytesDesired) { return uv_buf_init(buffer, bytesRead); } -void FileDataSource::freeData(uv_buf_t buffer) { - free(buffer.base); -} +void FileDataSource::freeData(uv_buf_t buffer) { free(buffer.base); } -time_t FileTimeToTimeT(const FILETIME& ft) { +time_t FileTimeToTimeT(const FILETIME &ft) { ULARGE_INTEGER ull; - ull.LowPart = ft.dwLowDateTime; + ull.LowPart = ft.dwLowDateTime; ull.HighPart = ft.dwHighDateTime; return ull.QuadPart / 10000000ULL - 11644473600ULL; } @@ -116,5 +110,4 @@ std::string FileDataSource::lastErrorMessage() const { return _lastErrorMessage; } - #endif // #ifdef _WIN32 diff --git a/src/filedatasource.h b/src/filedatasource.h index d32ac0b07..9428132d0 100644 --- a/src/filedatasource.h +++ b/src/filedatasource.h @@ -3,16 +3,14 @@ #include "uvutil.h" - // Status codes for FileDataSource::initialize(). enum FileDataSourceResult { - FDS_OK = 0, // Initialization worked - FDS_NOT_EXIST, // File did not exist - FDS_ISDIR, // File is a directory - FDS_ERROR // Other error + FDS_OK = 0, // Initialization worked + FDS_NOT_EXIST, // File did not exist + FDS_ISDIR, // File is a directory + FDS_ERROR // Other error }; - class FileDataSource : public DataSource { #ifdef _WIN32 HANDLE _hFile; @@ -26,11 +24,9 @@ class FileDataSource : public DataSource { public: FileDataSource() {} - ~FileDataSource() { - close(); - } + ~FileDataSource() { close(); } - FileDataSourceResult initialize(const std::string& path, bool owned); + FileDataSourceResult initialize(const std::string &path, bool owned); uint64_t size() const; uv_buf_t getData(size_t bytesDesired); void freeData(uv_buf_t buffer); diff --git a/src/fs.cpp b/src/fs.cpp index 108ae89f7..25cbe4190 100644 --- a/src/fs.cpp +++ b/src/fs.cpp @@ -2,15 +2,14 @@ #include "utils.h" #ifdef _WIN32 -#include #include "winutils.h" +#include #else #include #endif #include - // Given a filename, return the extension. std::string find_extension(const std::string &filename) { size_t found_idx = filename.find_last_of('.'); @@ -34,7 +33,6 @@ std::string basename(const std::string &path) { } } - // filename is assumed to be UTF-8. bool is_directory(const std::string &filename) { #ifdef _WIN32 diff --git a/src/gzipdatasource.cpp b/src/gzipdatasource.cpp index a6cb789ba..3655a39bc 100644 --- a/src/gzipdatasource.cpp +++ b/src/gzipdatasource.cpp @@ -1,12 +1,13 @@ #include "gzipdatasource.h" #include "utils.h" -GZipDataSource::GZipDataSource(std::shared_ptr pData) : - _pData(pData), _state(Streaming) { +GZipDataSource::GZipDataSource(std::shared_ptr pData) + : _pData(pData), _state(Streaming) { _zstrm = {0}; _inputBuf = {0}; - int res = deflateInit2(&_zstrm, 6, Z_DEFLATED, 15 + 16, 8, Z_DEFAULT_STRATEGY); + int res = + deflateInit2(&_zstrm, 6, Z_DEFLATED, 15 + 16, 8, Z_DEFAULT_STRATEGY); if (res != Z_OK) { if (_zstrm.msg) { throw std::runtime_error(_zstrm.msg); @@ -23,7 +24,8 @@ GZipDataSource::~GZipDataSource() { } uint64_t GZipDataSource::size() const { - debug_log("GZipDataSource::size() was called, this should never happen\n", LOG_WARN); + debug_log("GZipDataSource::size() was called, this should never happen\n", + LOG_WARN); return 0; } @@ -34,7 +36,7 @@ uv_buf_t GZipDataSource::getData(size_t bytesDesired) { } // Prepare the output area to be written to - Bytef* outputBuf = (Bytef*)malloc(bytesDesired); + Bytef *outputBuf = (Bytef *)malloc(bytesDesired); _zstrm.next_out = outputBuf; _zstrm.avail_out = bytesDesired; @@ -46,7 +48,7 @@ uv_buf_t GZipDataSource::getData(size_t bytesDesired) { freeInputBuffer(); _inputBuf = _pData->getData(bytesDesired); - _zstrm.next_in = (Bytef*)_inputBuf.base; + _zstrm.next_in = (Bytef *)_inputBuf.base; _zstrm.avail_in = _inputBuf.len; if (_inputBuf.len == 0) { @@ -60,18 +62,14 @@ uv_buf_t GZipDataSource::getData(size_t bytesDesired) { freeInputBuffer(); uv_buf_t ret = {0}; - ret.base = (char*)outputBuf; + ret.base = (char *)outputBuf; ret.len = bytesDesired - _zstrm.avail_out; return ret; } -void GZipDataSource::freeData(uv_buf_t buffer) { - free(buffer.base); -} +void GZipDataSource::freeData(uv_buf_t buffer) { free(buffer.base); } -void GZipDataSource::close() { - _pData->close(); -} +void GZipDataSource::close() { _pData->close(); } // Attempt to deflate more data, reading from _zstrm.next_in and writing to // _zstrm.next_out. Both reads and (potentially) writes _state. diff --git a/src/gzipdatasource.h b/src/gzipdatasource.h index 382153c00..fd5960d0e 100644 --- a/src/gzipdatasource.h +++ b/src/gzipdatasource.h @@ -1,9 +1,8 @@ #ifndef GZIPDATASOURCE_H #define GZIPDATASOURCE_H -#include #include "uvutil.h" - +#include enum GDState { Streaming, Finishing, Done }; diff --git a/src/http-parser/http_parser.h b/src/http-parser/http_parser.h index eafc19ad5..20d2a0e1d 100644 --- a/src/http-parser/http_parser.h +++ b/src/http-parser/http_parser.h @@ -30,8 +30,8 @@ extern "C" { #define HTTP_PARSER_VERSION_PATCH 1 #include -#if defined(_WIN32) && !defined(__MINGW32__) && \ - (!defined(_MSC_VER) || _MSC_VER<1600) && !defined(__WINE__) +#if defined(_WIN32) && !defined(__MINGW32__) && \ + (!defined(_MSC_VER) || _MSC_VER < 1600) && !defined(__WINE__) #include #include typedef __int8 int8_t; @@ -50,7 +50,7 @@ typedef unsigned __int64 uint64_t; * faster */ #ifndef HTTP_PARSER_STRICT -# define HTTP_PARSER_STRICT 1 +#define HTTP_PARSER_STRICT 1 #endif /* Maximium header size allowed. If the macro is not defined @@ -61,13 +61,12 @@ typedef unsigned __int64 uint64_t; * to a very large number (e.g. -DHTTP_MAX_HEADER_SIZE=0x7fffffff) */ #ifndef HTTP_MAX_HEADER_SIZE -# define HTTP_MAX_HEADER_SIZE (80*1024) +#define HTTP_MAX_HEADER_SIZE (80 * 1024) #endif typedef struct http_parser http_parser; typedef struct http_parser_settings http_parser_settings; - /* Callbacks should return non-zero to indicate an error. The parser will * then halt execution. * @@ -86,139 +85,125 @@ typedef struct http_parser_settings http_parser_settings; * many times for each string. E.G. you might get 10 callbacks for "on_url" * each providing just a few characters more data. */ -typedef int (*http_data_cb) (http_parser*, const char *at, size_t length); -typedef int (*http_cb) (http_parser*); - +typedef int (*http_data_cb)(http_parser *, const char *at, size_t length); +typedef int (*http_cb)(http_parser *); /* Request Methods */ -#define HTTP_METHOD_MAP(XX) \ - XX(0, DELETE, DELETE) \ - XX(1, GET, GET) \ - XX(2, HEAD, HEAD) \ - XX(3, POST, POST) \ - XX(4, PUT, PUT) \ - /* pathological */ \ - XX(5, CONNECT, CONNECT) \ - XX(6, OPTIONS, OPTIONS) \ - XX(7, TRACE, TRACE) \ - /* WebDAV */ \ - XX(8, COPY, COPY) \ - XX(9, LOCK, LOCK) \ - XX(10, MKCOL, MKCOL) \ - XX(11, MOVE, MOVE) \ - XX(12, PROPFIND, PROPFIND) \ - XX(13, PROPPATCH, PROPPATCH) \ - XX(14, SEARCH, SEARCH) \ - XX(15, UNLOCK, UNLOCK) \ - XX(16, BIND, BIND) \ - XX(17, REBIND, REBIND) \ - XX(18, UNBIND, UNBIND) \ - XX(19, ACL, ACL) \ - /* subversion */ \ - XX(20, REPORT, REPORT) \ - XX(21, MKACTIVITY, MKACTIVITY) \ - XX(22, CHECKOUT, CHECKOUT) \ - XX(23, MERGE, MERGE) \ - /* upnp */ \ - XX(24, MSEARCH, M-SEARCH) \ - XX(25, NOTIFY, NOTIFY) \ - XX(26, SUBSCRIBE, SUBSCRIBE) \ - XX(27, UNSUBSCRIBE, UNSUBSCRIBE) \ - /* RFC-5789 */ \ - XX(28, PATCH, PATCH) \ - XX(29, PURGE, PURGE) \ - /* CalDAV */ \ - XX(30, MKCALENDAR, MKCALENDAR) \ - /* RFC-2068, section 19.6.1.2 */ \ - XX(31, LINK, LINK) \ - XX(32, UNLINK, UNLINK) \ - -enum http_method - { +#define HTTP_METHOD_MAP(XX) \ + XX(0, DELETE, DELETE) \ + XX(1, GET, GET) \ + XX(2, HEAD, HEAD) \ + XX(3, POST, POST) \ + XX(4, PUT, PUT) \ + /* pathological */ \ + XX(5, CONNECT, CONNECT) \ + XX(6, OPTIONS, OPTIONS) \ + XX(7, TRACE, TRACE) \ + /* WebDAV */ \ + XX(8, COPY, COPY) \ + XX(9, LOCK, LOCK) \ + XX(10, MKCOL, MKCOL) \ + XX(11, MOVE, MOVE) \ + XX(12, PROPFIND, PROPFIND) \ + XX(13, PROPPATCH, PROPPATCH) \ + XX(14, SEARCH, SEARCH) \ + XX(15, UNLOCK, UNLOCK) \ + XX(16, BIND, BIND) \ + XX(17, REBIND, REBIND) \ + XX(18, UNBIND, UNBIND) \ + XX(19, ACL, ACL) \ + /* subversion */ \ + XX(20, REPORT, REPORT) \ + XX(21, MKACTIVITY, MKACTIVITY) \ + XX(22, CHECKOUT, CHECKOUT) \ + XX(23, MERGE, MERGE) \ + /* upnp */ \ + XX(24, MSEARCH, M - SEARCH) \ + XX(25, NOTIFY, NOTIFY) \ + XX(26, SUBSCRIBE, SUBSCRIBE) \ + XX(27, UNSUBSCRIBE, UNSUBSCRIBE) \ + /* RFC-5789 */ \ + XX(28, PATCH, PATCH) \ + XX(29, PURGE, PURGE) \ + /* CalDAV */ \ + XX(30, MKCALENDAR, MKCALENDAR) \ + /* RFC-2068, section 19.6.1.2 */ \ + XX(31, LINK, LINK) \ + XX(32, UNLINK, UNLINK) + +enum http_method { #define XX(num, name, string) HTTP_##name = num, HTTP_METHOD_MAP(XX) #undef XX - }; - +}; enum http_parser_type { HTTP_REQUEST, HTTP_RESPONSE, HTTP_BOTH }; - /* Flag values for http_parser.flags field */ -enum flags - { F_CHUNKED = 1 << 0 - , F_CONNECTION_KEEP_ALIVE = 1 << 1 - , F_CONNECTION_CLOSE = 1 << 2 - , F_CONNECTION_UPGRADE = 1 << 3 - , F_TRAILING = 1 << 4 - , F_UPGRADE = 1 << 5 - , F_SKIPBODY = 1 << 6 - , F_CONTENTLENGTH = 1 << 7 - }; - +enum flags { + F_CHUNKED = 1 << 0, + F_CONNECTION_KEEP_ALIVE = 1 << 1, + F_CONNECTION_CLOSE = 1 << 2, + F_CONNECTION_UPGRADE = 1 << 3, + F_TRAILING = 1 << 4, + F_UPGRADE = 1 << 5, + F_SKIPBODY = 1 << 6, + F_CONTENTLENGTH = 1 << 7 +}; /* Map for errno-related constants * * The provided argument should be a macro that takes 2 arguments. */ -#define HTTP_ERRNO_MAP(XX) \ - /* No error */ \ - XX(OK, "success") \ - \ - /* Callback-related errors */ \ - XX(CB_message_begin, "the on_message_begin callback failed") \ - XX(CB_url, "the on_url callback failed") \ - XX(CB_header_field, "the on_header_field callback failed") \ - XX(CB_header_value, "the on_header_value callback failed") \ - XX(CB_headers_complete, "the on_headers_complete callback failed") \ - XX(CB_body, "the on_body callback failed") \ - XX(CB_message_complete, "the on_message_complete callback failed") \ - XX(CB_status, "the on_status callback failed") \ - XX(CB_chunk_header, "the on_chunk_header callback failed") \ - XX(CB_chunk_complete, "the on_chunk_complete callback failed") \ - \ - /* Parsing-related errors */ \ - XX(REENTRANT_CALL, "re-entrant call to http_parser_execute") \ - XX(INVALID_EOF_STATE, "stream ended at an unexpected time") \ - XX(HEADER_OVERFLOW, \ - "too many header bytes seen; overflow detected") \ - XX(CLOSED_CONNECTION, \ - "data received after completed connection: close message") \ - XX(INVALID_VERSION, "invalid HTTP version") \ - XX(INVALID_STATUS, "invalid HTTP status code") \ - XX(INVALID_METHOD, "invalid HTTP method") \ - XX(INVALID_URL, "invalid URL") \ - XX(INVALID_HOST, "invalid host") \ - XX(INVALID_PORT, "invalid port") \ - XX(INVALID_PATH, "invalid path") \ - XX(INVALID_QUERY_STRING, "invalid query string") \ - XX(INVALID_FRAGMENT, "invalid fragment") \ - XX(LF_EXPECTED, "LF character expected") \ - XX(INVALID_HEADER_TOKEN, "invalid character in header") \ - XX(INVALID_CONTENT_LENGTH, \ - "invalid character in content-length header") \ - XX(UNEXPECTED_CONTENT_LENGTH, \ - "unexpected content-length header") \ - XX(INVALID_CHUNK_SIZE, \ - "invalid character in chunk size header") \ - XX(INVALID_CONSTANT, "invalid constant string") \ - XX(INVALID_INTERNAL_STATE, "encountered unexpected internal state")\ - XX(STRICT, "strict mode assertion failed") \ - XX(PAUSED, "parser is paused") \ +#define HTTP_ERRNO_MAP(XX) \ + /* No error */ \ + XX(OK, "success") \ + \ + /* Callback-related errors */ \ + XX(CB_message_begin, "the on_message_begin callback failed") \ + XX(CB_url, "the on_url callback failed") \ + XX(CB_header_field, "the on_header_field callback failed") \ + XX(CB_header_value, "the on_header_value callback failed") \ + XX(CB_headers_complete, "the on_headers_complete callback failed") \ + XX(CB_body, "the on_body callback failed") \ + XX(CB_message_complete, "the on_message_complete callback failed") \ + XX(CB_status, "the on_status callback failed") \ + XX(CB_chunk_header, "the on_chunk_header callback failed") \ + XX(CB_chunk_complete, "the on_chunk_complete callback failed") \ + \ + /* Parsing-related errors */ \ + XX(REENTRANT_CALL, "re-entrant call to http_parser_execute") \ + XX(INVALID_EOF_STATE, "stream ended at an unexpected time") \ + XX(HEADER_OVERFLOW, "too many header bytes seen; overflow detected") \ + XX(CLOSED_CONNECTION, \ + "data received after completed connection: close message") \ + XX(INVALID_VERSION, "invalid HTTP version") \ + XX(INVALID_STATUS, "invalid HTTP status code") \ + XX(INVALID_METHOD, "invalid HTTP method") \ + XX(INVALID_URL, "invalid URL") \ + XX(INVALID_HOST, "invalid host") \ + XX(INVALID_PORT, "invalid port") \ + XX(INVALID_PATH, "invalid path") \ + XX(INVALID_QUERY_STRING, "invalid query string") \ + XX(INVALID_FRAGMENT, "invalid fragment") \ + XX(LF_EXPECTED, "LF character expected") \ + XX(INVALID_HEADER_TOKEN, "invalid character in header") \ + XX(INVALID_CONTENT_LENGTH, "invalid character in content-length header") \ + XX(UNEXPECTED_CONTENT_LENGTH, "unexpected content-length header") \ + XX(INVALID_CHUNK_SIZE, "invalid character in chunk size header") \ + XX(INVALID_CONSTANT, "invalid constant string") \ + XX(INVALID_INTERNAL_STATE, "encountered unexpected internal state") \ + XX(STRICT, "strict mode assertion failed") \ + XX(PAUSED, "parser is paused") \ XX(UNKNOWN, "an unknown error occurred") - /* Define HPE_* values for each errno value above */ #define HTTP_ERRNO_GEN(n, s) HPE_##n, -enum http_errno { - HTTP_ERRNO_MAP(HTTP_ERRNO_GEN) -}; +enum http_errno { HTTP_ERRNO_MAP(HTTP_ERRNO_GEN) }; #undef HTTP_ERRNO_GEN - /* Get an http_errno value from an http_parser */ -#define HTTP_PARSER_ERRNO(p) ((enum http_errno) (p)->http_errno) - +#define HTTP_PARSER_ERRNO(p) ((enum http_errno)(p)->http_errno) struct http_parser { /** PRIVATE **/ @@ -249,7 +234,6 @@ struct http_parser { /** PUBLIC **/ void *data; /* A pointer to get hook to the "connection" or "socket" object */ - /** ADDED FOR ASYNC on_headers_complete **/ /* The status code set by the application code after processing the * headers. Initial value is -1. After headers have been processed, it should @@ -262,40 +246,37 @@ struct http_parser { int is_running; }; - struct http_parser_settings { - http_cb on_message_begin; + http_cb on_message_begin; http_data_cb on_url; http_data_cb on_status; http_data_cb on_header_field; http_data_cb on_header_value; - http_cb on_headers_complete; + http_cb on_headers_complete; http_data_cb on_body; - http_cb on_message_complete; + http_cb on_message_complete; /* When on_chunk_header is called, the current chunk length is stored * in parser->content_length. */ - http_cb on_chunk_header; - http_cb on_chunk_complete; + http_cb on_chunk_header; + http_cb on_chunk_complete; /* If 0, on_headers_complete is expected to be synchronous and return a * meaningful result. If 1, it is expected to be async, and return 0 * immediately. */ - int is_async_on_headers_complete; + int is_async_on_headers_complete; }; - -enum http_parser_url_fields - { UF_SCHEMA = 0 - , UF_HOST = 1 - , UF_PORT = 2 - , UF_PATH = 3 - , UF_QUERY = 4 - , UF_FRAGMENT = 5 - , UF_USERINFO = 6 - , UF_MAX = 7 - }; - +enum http_parser_url_fields { + UF_SCHEMA = 0, + UF_HOST = 1, + UF_PORT = 2, + UF_PATH = 3, + UF_QUERY = 4, + UF_FRAGMENT = 5, + UF_USERINFO = 6, + UF_MAX = 7 +}; /* Result structure for http_parser_parse_url(). * @@ -305,16 +286,15 @@ enum http_parser_url_fields * a uint16_t. */ struct http_parser_url { - uint16_t field_set; /* Bitmask of (1 << UF_*) values */ - uint16_t port; /* Converted UF_PORT string */ + uint16_t field_set; /* Bitmask of (1 << UF_*) values */ + uint16_t port; /* Converted UF_PORT string */ struct { - uint16_t off; /* Offset into buffer in which field starts */ - uint16_t len; /* Length of run in buffer */ + uint16_t off; /* Offset into buffer in which field starts */ + uint16_t len; /* Length of run in buffer */ } field_data[UF_MAX]; }; - /* Returns the library version. Bits 16-23 contain the major version number, * bits 8-15 the minor version number and bits 0-7 the patch level. * Usage example: @@ -329,18 +309,15 @@ unsigned long http_parser_version(void); void http_parser_init(http_parser *parser, enum http_parser_type type); - /* Initialize http_parser_settings members to 0 */ void http_parser_settings_init(http_parser_settings *settings); - /* Executes the parser. Returns number of parsed bytes. Sets * `parser->http_errno` on error. */ size_t http_parser_execute(http_parser *parser, const http_parser_settings *settings, - const char *data, - size_t len); + const char *data, size_t len); /* Return 1 if the parser is in the s_wait_for_on_headers_completed state, * 0 otherwise. */ @@ -375,8 +352,7 @@ const char *http_errno_description(enum http_errno err); void http_parser_url_init(struct http_parser_url *u); /* Parse a URL; return nonzero on failure */ -int http_parser_parse_url(const char *buf, size_t buflen, - int is_connect, +int http_parser_parse_url(const char *buf, size_t buflen, int is_connect, struct http_parser_url *u); /* Pause or un-pause the parser; a nonzero value pauses */ diff --git a/src/http.cpp b/src/http.cpp index d21e3389d..bde09c446 100644 --- a/src/http.cpp +++ b/src/http.cpp @@ -1,23 +1,22 @@ #include "http.h" +#include "callbackqueue.h" #include "httprequest.h" #include "httpresponse.h" -#include "callbackqueue.h" #include "socket.h" -#include "utils.h" #include "thread.h" +#include "utils.h" #include #include #include #include -#include #include - +#include // TODO: Streaming response body (with chunked transfer encoding) // TODO: Fast/easy use of files as response body -void on_request(uv_stream_t* handle, int status) { +void on_request(uv_stream_t *handle, int status) { ASSERT_BACKGROUND_THREAD() if (status) { err_printf("connection error: %s\n", uv_strerror(status)); @@ -25,14 +24,13 @@ void on_request(uv_stream_t* handle, int status) { } // Copy the shared_ptr - std::shared_ptr pSocket(*(std::shared_ptr*)handle->data); - CallbackQueue* bg_queue = pSocket->background_queue; + std::shared_ptr pSocket(*(std::shared_ptr *)handle->data); + CallbackQueue *bg_queue = pSocket->background_queue; // Freed by HttpRequest itself when close() is called, which // can occur on EOF, error, or when the Socket is destroyed std::shared_ptr req = createHttpRequest( - handle->loop, pSocket->pWebApplication, pSocket, bg_queue - ); + handle->loop, pSocket->pWebApplication, pSocket, bg_queue); int r = uv_accept(handle, req->handle()); if (r) { @@ -41,26 +39,20 @@ void on_request(uv_stream_t* handle, int status) { } req->handleRequest(); - } -uv_stream_t* createPipeServer( - uv_loop_t* pLoop, - const std::string& name, - int mask, - std::shared_ptr pWebApplication, - bool quiet, - CallbackQueue* background_queue -) { +uv_stream_t *createPipeServer(uv_loop_t *pLoop, const std::string &name, + int mask, + std::shared_ptr pWebApplication, + bool quiet, CallbackQueue *background_queue) { ASSERT_BACKGROUND_THREAD() // We own pWebApplication. It will be destroyed by the socket but if in // the future we have failure cases that stop execution before we get // that far, we MUST delete pWebApplication ourselves. - std::shared_ptr pSocket = std::make_shared( - pWebApplication, background_queue - ); + std::shared_ptr pSocket = + std::make_shared(pWebApplication, background_queue); // TODO: Handle error uv_pipe_init(pLoop, &pSocket->handle.pipe, 0); @@ -79,15 +71,17 @@ uv_stream_t* createPipeServer( if (r) { if (!quiet) err_printf("createPipeServer: %s\n", uv_strerror(r)); - // It's important that close() is explicitly called, so that the uv_pipe_t is cleaned up + // It's important that close() is explicitly called, so that the uv_pipe_t + // is cleaned up pSocket->close(); return NULL; } - r = uv_listen((uv_stream_t*)&pSocket->handle.stream, 128, &on_request); + r = uv_listen((uv_stream_t *)&pSocket->handle.stream, 128, &on_request); if (r) { if (!quiet) err_printf("createPipeServer: %s\n", uv_strerror(r)); - // It's important that close() is explicitly called, so that the uv_pipe_t is cleaned up + // It's important that close() is explicitly called, so that the uv_pipe_t + // is cleaned up pSocket->close(); return NULL; } @@ -97,41 +91,32 @@ uv_stream_t* createPipeServer( // A wrapper for createPipeServer. The main thread schedules this to run on // the background thread, then waits for this to finish, using a barrier. -void createPipeServerSync( - uv_loop_t* loop, - const std::string& name, - int mask, - std::shared_ptr pWebApplication, - bool quiet, - CallbackQueue* background_queue, - uv_stream_t** pServer, - std::shared_ptr blocker -) { +void createPipeServerSync(uv_loop_t *loop, const std::string &name, int mask, + std::shared_ptr pWebApplication, + bool quiet, CallbackQueue *background_queue, + uv_stream_t **pServer, + std::shared_ptr blocker) { ASSERT_BACKGROUND_THREAD() - *pServer = createPipeServer(loop, name, mask, pWebApplication, quiet, background_queue); + *pServer = createPipeServer(loop, name, mask, pWebApplication, quiet, + background_queue); // Tell the main thread that the server is ready blocker->wait(); } -uv_stream_t* createTcpServer( - uv_loop_t* pLoop, - const std::string& host, - int port, - std::shared_ptr pWebApplication, - bool quiet, - CallbackQueue* background_queue -) { +uv_stream_t *createTcpServer(uv_loop_t *pLoop, const std::string &host, + int port, + std::shared_ptr pWebApplication, + bool quiet, CallbackQueue *background_queue) { ASSERT_BACKGROUND_THREAD() // We own pWebApplication. It will be destroyed by the socket but if in // the future we have failure cases that stop execution before we get // that far, we MUST delete pWebApplication ourselves. - std::shared_ptr pSocket = std::make_shared( - pWebApplication, background_queue - ); + std::shared_ptr pSocket = + std::make_shared(pWebApplication, background_queue); // TODO: Handle error uv_tcp_init(pLoop, &pSocket->handle.tcp); @@ -143,15 +128,15 @@ uv_stream_t* createTcpServer( int r; // Lifetime of these needs to encompass use of pAddress in uv_tcp_bind() struct sockaddr_in6 addr6; - struct sockaddr_in addr4; - sockaddr* pAddress; + struct sockaddr_in addr4; + sockaddr *pAddress; int family = ip_family(host); if (family == AF_INET6) { r = uv_ip6_addr(host.c_str(), port, &addr6); - pAddress = reinterpret_cast(&addr6); - } else if (family == AF_INET){ + pAddress = reinterpret_cast(&addr6); + } else if (family == AF_INET) { r = uv_ip4_addr(host.c_str(), port, &addr4); - pAddress = reinterpret_cast(&addr4); + pAddress = reinterpret_cast(&addr4); } else { r = 1; if (!quiet) @@ -161,7 +146,8 @@ uv_stream_t* createTcpServer( if (r) { if (!quiet) err_printf("createTcpServer: %s\n", uv_strerror(r)); - // It's important that close() is explicitly called, so that the uv_tcp_t is cleaned up + // It's important that close() is explicitly called, so that the uv_tcp_t is + // cleaned up pSocket->close(); return NULL; } @@ -171,15 +157,17 @@ uv_stream_t* createTcpServer( if (r) { if (!quiet) err_printf("createTcpServer: %s\n", uv_strerror(r)); - // It's important that close() is explicitly called, so that the uv_tcp_t is cleaned up + // It's important that close() is explicitly called, so that the uv_tcp_t is + // cleaned up pSocket->close(); return NULL; } - r = uv_listen((uv_stream_t*)&pSocket->handle.stream, 128, &on_request); + r = uv_listen((uv_stream_t *)&pSocket->handle.stream, 128, &on_request); if (r) { if (!quiet) err_printf("createTcpServer: %s\n", uv_strerror(r)); - // It's important that close() is explicitly called, so that the uv_tcp_t is cleaned up + // It's important that close() is explicitly called, so that the uv_tcp_t is + // cleaned up pSocket->close(); return NULL; } @@ -189,29 +177,24 @@ uv_stream_t* createTcpServer( // A wrapper for createTcpServer. The main thread schedules this to run on the // background thread, then waits for this to finish, using a barrier. -void createTcpServerSync( - uv_loop_t* pLoop, - const std::string& host, - int port, - std::shared_ptr pWebApplication, - bool quiet, - CallbackQueue* background_queue, - uv_stream_t** pServer, - std::shared_ptr blocker -) { +void createTcpServerSync(uv_loop_t *pLoop, const std::string &host, int port, + std::shared_ptr pWebApplication, + bool quiet, CallbackQueue *background_queue, + uv_stream_t **pServer, + std::shared_ptr blocker) { ASSERT_BACKGROUND_THREAD() - *pServer = createTcpServer(pLoop, host, port, pWebApplication, quiet, background_queue); + *pServer = createTcpServer(pLoop, host, port, pWebApplication, quiet, + background_queue); // Tell the main thread that the server is ready blocker->wait(); } - -void freeServer(uv_stream_t* pHandle) { +void freeServer(uv_stream_t *pHandle) { ASSERT_BACKGROUND_THREAD() // TODO: Check if server is still running? - std::shared_ptr* ppSocket = (std::shared_ptr*)pHandle->data; + std::shared_ptr *ppSocket = (std::shared_ptr *)pHandle->data; (*ppSocket)->close(); // ppSocket gets deleted in a callback in close() } diff --git a/src/http.h b/src/http.h index 882bbf288..a76ff3b85 100644 --- a/src/http.h +++ b/src/http.h @@ -1,14 +1,14 @@ #ifndef HTTP_HPP #define HTTP_HPP -#include -#include -#include -#include "webapplication.h" -#include "websockets.h" +#include "auto_deleter.h" #include "callbackqueue.h" #include "utils.h" -#include "auto_deleter.h" +#include "webapplication.h" +#include "websockets.h" +#include +#include +#include typedef struct { union { @@ -23,97 +23,69 @@ struct Address { std::string host; unsigned short port; - Address() : port(0) { - } + Address() : port(0) {} }; class Socket; -uv_stream_t* createPipeServer(uv_loop_t* loop, const std::string& name, int mask, - std::shared_ptr pWebApplication); - -uv_stream_t* createTcpServer(uv_loop_t* loop, const std::string& host, int port, - std::shared_ptr pWebApplication); - -void createPipeServerSync(uv_loop_t* loop, const std::string& name, int mask, - std::shared_ptr pWebApplication, bool quiet, - CallbackQueue* background_queue, - uv_stream_t** pServer, std::shared_ptr blocker); +uv_stream_t *createPipeServer(uv_loop_t *loop, const std::string &name, + int mask, + std::shared_ptr pWebApplication); -void createTcpServerSync(uv_loop_t* loop, const std::string& host, int port, - std::shared_ptr pWebApplication, bool quiet, - CallbackQueue* background_queue, - uv_stream_t** pServer, std::shared_ptr blocker); +uv_stream_t *createTcpServer(uv_loop_t *loop, const std::string &host, int port, + std::shared_ptr pWebApplication); -void freeServer(uv_stream_t* pServer); -bool runNonBlocking(uv_loop_t* loop); +void createPipeServerSync(uv_loop_t *loop, const std::string &name, int mask, + std::shared_ptr pWebApplication, + bool quiet, CallbackQueue *background_queue, + uv_stream_t **pServer, + std::shared_ptr blocker); +void createTcpServerSync(uv_loop_t *loop, const std::string &host, int port, + std::shared_ptr pWebApplication, + bool quiet, CallbackQueue *background_queue, + uv_stream_t **pServer, + std::shared_ptr blocker); -// NOTE: externalize/internalize_shared_ptr were originally template functions -// but were made into non-template functions because gcc 4.4.7 (used on RHEL -// 6) gives the following error with the templated versions: -// sorry, unimplemented: mangling template_id_expr -// This was due to a bug in gcc which was fixed in later versions. -// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38600 +void freeServer(uv_stream_t *pServer); +bool runNonBlocking(uv_loop_t *loop); // externalize_shared_ptr is used to pass a shared_ptr to R, and have its // lifetime be tied to the R external pointer object. This function creates a // copy of the shared_ptr (incrementing the shared_ptr's target's refcount) -// using `new`, and puts it inside of the XPtr. When the XPtr is garbage -// collected, the shared_ptr is deleted, which decrements the refcount. +// using `new`, and puts it inside of the external_pointer. When the +// external_pointer is garbage collected, the shared_ptr is deleted, which +// decrements the refcount. // -// As long as R has the XPtr object, the shared_ptr's target won't be deleted. -// Also, when the XPtr gets GC'd, the shared_ptr will get deleted, and if the -// refcount goes to 0, then the target object will be deleted (or, if it has a -// deleter, that will be called). This means that the target object could be -// deleted from the main thread due to a GC event in R. -// -// The reason we need the explicit Xptr type is because we want to set the last -// argument (finalizeOnExit) to true. -inline Rcpp::XPtr, - Rcpp::PreserveStorage, - auto_deleter_background >, - true> externalize_shared_ptr(std::shared_ptr obj) -{ - ASSERT_MAIN_THREAD() - std::shared_ptr* obj_copy = new std::shared_ptr(obj); - - Rcpp::XPtr, - Rcpp::PreserveStorage, - auto_deleter_background >, - true> obj_xptr(obj_copy, true); - - return obj_xptr; -} - -// Given an XPtr to a shared_ptr, return a copy of the shared_ptr. This -// increases the shared_ptr's ref count by one. -inline std::shared_ptr internalize_shared_ptr( - Rcpp::XPtr, - Rcpp::PreserveStorage, - auto_deleter_background >, - true> obj_xptr) -{ +// As long as R has the external_pointer object, the shared_ptr's target won't +// be deleted. Also, when the external_pointer gets GC'd, the shared_ptr will +// get deleted, and if the refcount goes to 0, then the target object will be +// deleted (or, if it has a deleter, that will be called). This means that the +// target object could be deleted from the main thread due to a GC event in R. +inline external_pointer< + std::shared_ptr, + auto_deleter_background>> +externalize_shared_ptr(std::shared_ptr obj) { ASSERT_MAIN_THREAD() - std::shared_ptr* obj_copy = obj_xptr.get(); - // Return a copy of the shared pointer. - return *obj_copy; + std::shared_ptr *obj_copy = + new std::shared_ptr(obj); + return external_pointer< + std::shared_ptr, + auto_deleter_background>>( + obj_copy, true, true); } - -template -std::string externalize_str(T* pServer) { +template std::string externalize_str(T *pServer) { std::ostringstream os; os << reinterpret_cast(pServer); return os.str(); } -template -T* internalize_str(std::string serverHandle) { +template T *internalize_str(std::string serverHandle) { std::istringstream is(serverHandle); uintptr_t result; is >> result; - return reinterpret_cast(result); + return reinterpret_cast(result); } #endif // HTTP_HPP diff --git a/src/httprequest.cpp b/src/httprequest.cpp index 55fee9528..0fd45c7f4 100644 --- a/src/httprequest.cpp +++ b/src/httprequest.cpp @@ -1,14 +1,13 @@ -#include -#include #include "httprequest.h" -#include +#include "auto_deleter.h" #include "callback.h" -#include "utils.h" #include "thread.h" -#include "auto_deleter.h" - +#include "utils.h" +#include +#include +#include -http_parser_settings& request_settings() { +http_parser_settings &request_settings() { static http_parser_settings settings; settings.on_message_begin = HttpRequest_on_message_begin; settings.on_url = HttpRequest_on_url; @@ -22,22 +21,23 @@ http_parser_settings& request_settings() { return settings; } -void on_alloc(uv_handle_t* handle, size_t suggested_size, uv_buf_t* buf) { +void on_alloc(uv_handle_t *handle, size_t suggested_size, uv_buf_t *buf) { ASSERT_BACKGROUND_THREAD() // Freed in HttpRequest::_on_request_read - void* result = malloc(suggested_size); - *buf = uv_buf_init((char*)result, suggested_size); + void *result = malloc(suggested_size); + *buf = uv_buf_init((char *)result, suggested_size); } // Does a header field `name` exist? -bool HttpRequest::hasHeader(const std::string& name) const { +bool HttpRequest::hasHeader(const std::string &name) const { return _headers.find(name) != _headers.end(); } // Does a header field `name` exist and have a particular value? If ci is // true, do a case-insensitive comparison of the value (fields are always // case- insensitive.) -bool HttpRequest::hasHeader(const std::string& name, const std::string& value, bool ci) const { +bool HttpRequest::hasHeader(const std::string &name, const std::string &value, + bool ci) const { RequestHeaders::const_iterator item = _headers.find(name); if (item == _headers.end()) return false; @@ -51,7 +51,7 @@ bool HttpRequest::hasHeader(const std::string& name, const std::string& value, b // Return the value of a specified header. If the specified header isn't // found, return "". -std::string HttpRequest::getHeader(const std::string& name) const { +std::string HttpRequest::getHeader(const std::string &name) const { RequestHeaders::const_iterator item = _headers.find(name); if (item == _headers.end()) return ""; @@ -59,9 +59,7 @@ std::string HttpRequest::getHeader(const std::string& name) const { return item->second; } -uv_stream_t* HttpRequest::handle() { - return &_handle.stream; -} +uv_stream_t *HttpRequest::handle() { return &_handle.stream; } Address HttpRequest::serverAddress() { Address address; @@ -69,7 +67,7 @@ Address HttpRequest::serverAddress() { if (_handle.isTcp) { struct sockaddr_in addr = {0}; int len = sizeof(sockaddr_in); - int r = uv_tcp_getsockname(&_handle.tcp, (struct sockaddr*)&addr, &len); + int r = uv_tcp_getsockname(&_handle.tcp, (struct sockaddr *)&addr, &len); if (r) { // TODO: warn? return address; @@ -81,7 +79,7 @@ Address HttpRequest::serverAddress() { } // addrstr is a pointer to static buffer, no need to free - char* addrstr = inet_ntoa(addr.sin_addr); + char *addrstr = inet_ntoa(addr.sin_addr); if (addrstr) address.host = std::string(addrstr); else { @@ -99,7 +97,7 @@ Address HttpRequest::clientAddress() { if (_handle.isTcp) { struct sockaddr_in addr = {0}; int len = sizeof(sockaddr_in); - int r = uv_tcp_getpeername(&_handle.tcp, (struct sockaddr*)&addr, &len); + int r = uv_tcp_getpeername(&_handle.tcp, (struct sockaddr *)&addr, &len); if (r) { // TODO: warn? return address; @@ -111,7 +109,7 @@ Address HttpRequest::clientAddress() { } // addrstr is a pointer to static buffer, no need to free - char* addrstr = inet_ntoa(addr.sin_addr); + char *addrstr = inet_ntoa(addr.sin_addr); if (addrstr) address.host = std::string(addrstr); else { @@ -141,29 +139,24 @@ void HttpRequest::_newRequest() { // Schedule on main thread: // this->_initializeEnv(); - invoke_later( - std::bind(&HttpRequest::_initializeEnv, shared_from_this()) - ); + invoke_later(std::bind(&HttpRequest::_initializeEnv, shared_from_this())); } void HttpRequest::_initializeEnv() { ASSERT_MAIN_THREAD() - using namespace Rcpp; - - Environment base(R_BaseEnv); - Function new_env = Rcpp::as(base["new.env"]); + environment base(R_BaseEnv); + function new_env(base["new.env"]); // The deleter is called either when this function is called again, or when // the HttpRequest object is deleted. The deletion will happen on the // background thread; auto_deleter_main() schedules the deletion of the - // Rcpp::Environment object on the main thread. - _env = std::shared_ptr( - new Environment(new_env(_["parent"] = R_EmptyEnv)), - auto_deleter_main - ); + // environment object on the main thread. + _env = std::shared_ptr( + new environment(new_env("parent"_nm = R_EmptyEnv)), + auto_deleter_main); } -Rcpp::Environment& HttpRequest::env() { +environment &HttpRequest::env() { ASSERT_MAIN_THREAD() return *_env; } @@ -172,13 +165,9 @@ std::string HttpRequest::method() const { return http_method_str((enum http_method)_parser.method); } -std::string HttpRequest::url() const { - return _url; -} +std::string HttpRequest::url() const { return _url; } -const RequestHeaders& HttpRequest::headers() const { - return _headers; -} +const RequestHeaders &HttpRequest::headers() const { return _headers; } void HttpRequest::responseScheduled() { ASSERT_MAIN_THREAD() @@ -197,31 +186,32 @@ void HttpRequest::requestCompleted() { _handling_request = false; } - // ============================================================================ // Miscellaneous callbacks for http parser // ============================================================================ -int HttpRequest::_on_message_begin(http_parser* pParser) { +int HttpRequest::_on_message_begin(http_parser *pParser) { ASSERT_BACKGROUND_THREAD() debug_log("HttpRequest::_on_message_begin", LOG_DEBUG); _newRequest(); return 0; } -int HttpRequest::_on_url(http_parser* pParser, const char* pAt, size_t length) { +int HttpRequest::_on_url(http_parser *pParser, const char *pAt, size_t length) { ASSERT_BACKGROUND_THREAD() debug_log("HttpRequest::_on_url", LOG_DEBUG); _url = std::string(pAt, length); return 0; } -int HttpRequest::_on_status(http_parser* pParser, const char* pAt, size_t length) { +int HttpRequest::_on_status(http_parser *pParser, const char *pAt, + size_t length) { ASSERT_BACKGROUND_THREAD() debug_log("HttpRequest::_on_status", LOG_DEBUG); return 0; } -int HttpRequest::_on_header_field(http_parser* pParser, const char* pAt, size_t length) { +int HttpRequest::_on_header_field(http_parser *pParser, const char *pAt, + size_t length) { ASSERT_BACKGROUND_THREAD() debug_log("HttpRequest::_on_header_field", LOG_DEBUG); @@ -234,7 +224,8 @@ int HttpRequest::_on_header_field(http_parser* pParser, const char* pAt, size_t return 0; } -int HttpRequest::_on_header_value(http_parser* pParser, const char* pAt, size_t length) { +int HttpRequest::_on_header_value(http_parser *pParser, const char *pAt, + size_t length) { ASSERT_BACKGROUND_THREAD() debug_log("HttpRequest::_on_header_value", LOG_DEBUG); @@ -300,9 +291,7 @@ void HttpRequest::updateUpgradeStatus() { }; } -bool HttpRequest::isUpgrade() const { - return _is_upgrade; -} +bool HttpRequest::isUpgrade() const { return _is_upgrade; } // ============================================================================ // Headers complete @@ -315,7 +304,7 @@ bool HttpRequest::isUpgrade() const { // asynchronously, we don't know at this point if there has been an error. If // one of those conditions occurs, we'll set it later, but before we call // http_parser_execute() again. -int HttpRequest::_on_headers_complete(http_parser* pParser) { +int HttpRequest::_on_headers_complete(http_parser *pParser) { ASSERT_BACKGROUND_THREAD() debug_log("HttpRequest::_on_headers_complete", LOG_DEBUG); updateUpgradeStatus(); @@ -323,35 +312,28 @@ int HttpRequest::_on_headers_complete(http_parser* pParser) { // Attempt static serving here. If the request is for a static path, this // will be a response object; if not, it will be an empty shared_ptr. std::shared_ptr pResponse = - _pWebApplication->staticFileResponse(shared_from_this()); + _pWebApplication->staticFileResponse(shared_from_this()); if (pResponse) { // The request was for a static path. Skip over the webapplication code // (which calls back into R on the main thread). Just add a call to // _on_headers_complete_complete to the queue on the background thread. - std::function cb( - std::bind(&HttpRequest::_on_headers_complete_complete, shared_from_this(), pResponse) - ); + std::function cb( + std::bind(&HttpRequest::_on_headers_complete_complete, + shared_from_this(), pResponse)); _background_queue->push(cb); return 0; } - std::function)> schedule_bg_callback( - std::bind(&HttpRequest::_schedule_on_headers_complete_complete, shared_from_this(), std::placeholders::_1) - ); - - // Use later to schedule _pWebApplication->onHeaders(this, schedule_bg_callback) - // to run on the main thread. That function in turn calls - // this->_schedule_on_headers_complete_complete. - invoke_later( - std::bind( - &WebApplication::onHeaders, - _pWebApplication, - shared_from_this(), - schedule_bg_callback - ) - ); + std::bind(&HttpRequest::_schedule_on_headers_complete_complete, + shared_from_this(), std::placeholders::_1)); + + // Use later to schedule _pWebApplication->onHeaders(this, + // schedule_bg_callback) to run on the main thread. That function in turn + // calls this->_schedule_on_headers_complete_complete. + invoke_later(std::bind(&WebApplication::onHeaders, _pWebApplication, + shared_from_this(), schedule_bg_callback)); return 0; } @@ -359,30 +341,33 @@ int HttpRequest::_on_headers_complete(http_parser* pParser) { // This is called at the end of WebApplication::onHeaders(). It puts an item // on the write queue and signals to the background thread that there's // something there. -void HttpRequest::_schedule_on_headers_complete_complete(std::shared_ptr pResponse) { +void HttpRequest::_schedule_on_headers_complete_complete( + std::shared_ptr pResponse) { ASSERT_MAIN_THREAD() debug_log("HttpRequest::_schedule_on_headers_complete_complete", LOG_DEBUG); if (pResponse) responseScheduled(); - std::function cb( - std::bind(&HttpRequest::_on_headers_complete_complete, shared_from_this(), pResponse) - ); + std::function cb( + std::bind(&HttpRequest::_on_headers_complete_complete, shared_from_this(), + pResponse)); _background_queue->push(cb); } // This is called after the user's R onHeaders() function has finished. It can // write a response, if onHeaders() wants that. It also sets a status code for // http-parser and then re-executes the parser. Runs on the background thread. -void HttpRequest::_on_headers_complete_complete(std::shared_ptr pResponse) { +void HttpRequest::_on_headers_complete_complete( + std::shared_ptr pResponse) { ASSERT_BACKGROUND_THREAD() debug_log("HttpRequest::_on_headers_complete_complete", LOG_DEBUG); int result = 0; if (pResponse) { - bool bodyExpected = hasHeader("Content-Length") || hasHeader("Transfer-Encoding"); + bool bodyExpected = + hasHeader("Content-Length") || hasHeader("Transfer-Encoding"); bool shouldKeepAlive = http_should_keep_alive(&_parser); // There are two reasons we might want to send a message and close: @@ -397,7 +382,7 @@ void HttpRequest::_on_headers_complete_complete(std::shared_ptr pR if (bodyExpected || !shouldKeepAlive) { pResponse->closeAfterWritten(); - uv_read_stop((uv_stream_t*)handle()); + uv_read_stop((uv_stream_t *)handle()); _ignoreNewData = true; } @@ -408,16 +393,14 @@ void HttpRequest::_on_headers_complete_complete(std::shared_ptr pR // here; we just want processing to terminate, which we indicate with // result = 3. result = 3; - } - else { + } else { // If the request is Expect: Continue, and the app didn't say otherwise, // then give it what it wants if (hasHeader("Expect", "100-continue")) { pResponse = std::shared_ptr( - new HttpResponse(shared_from_this(), 100, "Continue", - std::shared_ptr()), - auto_deleter_background - ); + new HttpResponse(shared_from_this(), 100, "Continue", + std::shared_ptr()), + auto_deleter_background); pResponse->writeResponse(); } } @@ -429,49 +412,42 @@ void HttpRequest::_on_headers_complete_complete(std::shared_ptr pR this->_parse_http_data_from_buffer(); } - // ============================================================================ // Message body (for POST) // ============================================================================ -int HttpRequest::_on_body(http_parser* pParser, const char* pAt, size_t length) { +int HttpRequest::_on_body(http_parser *pParser, const char *pAt, + size_t length) { ASSERT_BACKGROUND_THREAD() debug_log("HttpRequest::_on_body", LOG_DEBUG); // Copy pAt because the source data is deleted right after calling this // function. - std::shared_ptr > buf = std::make_shared >(pAt, pAt + length); + std::shared_ptr> buf = + std::make_shared>(pAt, pAt + length); std::function)> schedule_bg_callback( - std::bind(&HttpRequest::_schedule_on_body_error, shared_from_this(), std::placeholders::_1) - ); + std::bind(&HttpRequest::_schedule_on_body_error, shared_from_this(), + std::placeholders::_1)); // Schedule on main thread: // _pWebApplication->onBodyData(this, pAt, length, schedule_bg_callback); - invoke_later( - std::bind( - &WebApplication::onBodyData, - _pWebApplication, - shared_from_this(), - buf, - schedule_bg_callback - ) - ); + invoke_later(std::bind(&WebApplication::onBodyData, _pWebApplication, + shared_from_this(), buf, schedule_bg_callback)); return 0; } -void HttpRequest::_schedule_on_body_error(std::shared_ptr pResponse) { +void HttpRequest::_schedule_on_body_error( + std::shared_ptr pResponse) { ASSERT_MAIN_THREAD() debug_log("HttpRequest::_schedule_on_body_error", LOG_DEBUG); responseScheduled(); - std::function cb( - std::bind(&HttpRequest::_on_body_error, shared_from_this(), pResponse) - ); + std::function cb( + std::bind(&HttpRequest::_on_body_error, shared_from_this(), pResponse)); _background_queue->push(cb); - } void HttpRequest::_on_body_error(std::shared_ptr pResponse) { @@ -481,18 +457,17 @@ void HttpRequest::_on_body_error(std::shared_ptr pResponse) { http_parser_pause(&_parser, 1); pResponse->closeAfterWritten(); - uv_read_stop((uv_stream_t*)handle()); + uv_read_stop((uv_stream_t *)handle()); _ignoreNewData = true; pResponse->writeResponse(); } - // ============================================================================ // Message complete // ============================================================================ -int HttpRequest::_on_message_complete(http_parser* pParser) { +int HttpRequest::_on_message_complete(http_parser *pParser) { ASSERT_BACKGROUND_THREAD() debug_log("HttpRequest::_on_message_complete", LOG_DEBUG); @@ -500,38 +475,34 @@ int HttpRequest::_on_message_complete(http_parser* pParser) { return 0; std::function)> schedule_bg_callback( - std::bind(&HttpRequest::_schedule_on_message_complete_complete, shared_from_this(), std::placeholders::_1) - ); - - // Use later to schedule _pWebApplication->getResponse(this, schedule_bg_callback) - // to run on the main thread. That function in turn calls - // this->_schedule_on_message_complete_complete. - invoke_later( - std::bind( - &WebApplication::getResponse, - _pWebApplication, - shared_from_this(), - schedule_bg_callback - ) - ); + std::bind(&HttpRequest::_schedule_on_message_complete_complete, + shared_from_this(), std::placeholders::_1)); + + // Use later to schedule _pWebApplication->getResponse(this, + // schedule_bg_callback) to run on the main thread. That function in turn + // calls this->_schedule_on_message_complete_complete. + invoke_later(std::bind(&WebApplication::getResponse, _pWebApplication, + shared_from_this(), schedule_bg_callback)); return 0; } // This is called by the user's application code during or after the end of // WebApplication::getResponse(). It puts an item on the background queue. -void HttpRequest::_schedule_on_message_complete_complete(std::shared_ptr pResponse) { +void HttpRequest::_schedule_on_message_complete_complete( + std::shared_ptr pResponse) { ASSERT_MAIN_THREAD() responseScheduled(); - std::function cb( - std::bind(&HttpRequest::_on_message_complete_complete, shared_from_this(), pResponse) - ); + std::function cb( + std::bind(&HttpRequest::_on_message_complete_complete, shared_from_this(), + pResponse)); _background_queue->push(cb); } -void HttpRequest::_on_message_complete_complete(std::shared_ptr pResponse) { +void HttpRequest::_on_message_complete_complete( + std::shared_ptr pResponse) { ASSERT_BACKGROUND_THREAD() debug_log("HttpRequest::_on_message_complete_complete", LOG_DEBUG); @@ -548,7 +519,7 @@ void HttpRequest::_on_message_complete_complete(std::shared_ptr pR if (!http_should_keep_alive(&_parser)) { pResponse->closeAfterWritten(); - uv_read_stop((uv_stream_t*)handle()); + uv_read_stop((uv_stream_t *)handle()); _ignoreNewData = true; } @@ -556,23 +527,22 @@ void HttpRequest::_on_message_complete_complete(std::shared_ptr pR pResponse->writeResponse(); } - // ============================================================================ // Incoming websocket messages // ============================================================================ // Called from WebSocketConnection::onFrameComplete -void HttpRequest::onWSMessage(bool binary, const char* data, size_t len) { +void HttpRequest::onWSMessage(bool binary, const char *data, size_t len) { ASSERT_BACKGROUND_THREAD() debug_log("HttpRequest::onWSMessage", LOG_DEBUG); // Copy data because the source data is deleted right after calling this // function. - std::shared_ptr > buf = std::make_shared >(data, data + len); + std::shared_ptr> buf = + std::make_shared>(data, data + len); - std::function error_callback( - std::bind(&HttpRequest::schedule_close, shared_from_this()) - ); + std::function error_callback( + std::bind(&HttpRequest::schedule_close, shared_from_this())); std::shared_ptr p_wsc = _pWebSocketConnection; // It's possible for _pWebSocketConnection to have had its refcount drop to @@ -584,16 +554,8 @@ void HttpRequest::onWSMessage(bool binary, const char* data, size_t len) { // Schedule: // _pWebApplication->onWSMessage(p_wsc, binary, data, len); - invoke_later( - std::bind( - &WebApplication::onWSMessage, - _pWebApplication, - p_wsc, - binary, - buf, - error_callback - ) - ); + invoke_later(std::bind(&WebApplication::onWSMessage, _pWebApplication, p_wsc, + binary, buf, error_callback)); } void HttpRequest::onWSClose(int code) { @@ -607,40 +569,42 @@ void HttpRequest::onWSClose(int code) { typedef struct { uv_write_t writeReq; - std::vector* pHeader; - std::vector* pData; - std::vector* pFooter; + std::vector *pHeader; + std::vector *pData; + std::vector *pFooter; } ws_send_t; -void on_ws_message_sent(uv_write_t* handle, int status) { +void on_ws_message_sent(uv_write_t *handle, int status) { ASSERT_BACKGROUND_THREAD() debug_log("on_ws_message_sent", LOG_DEBUG); // TODO: Handle error if status != 0 - ws_send_t* pSend = (ws_send_t*)handle; + ws_send_t *pSend = (ws_send_t *)handle; delete pSend->pHeader; delete pSend->pData; delete pSend->pFooter; free(pSend); } -void HttpRequest::sendWSFrame(const char* pHeader, size_t headerSize, - const char* pData, size_t dataSize, - const char* pFooter, size_t footerSize) { +void HttpRequest::sendWSFrame(const char *pHeader, size_t headerSize, + const char *pData, size_t dataSize, + const char *pFooter, size_t footerSize) { ASSERT_BACKGROUND_THREAD() debug_log("HttpRequest::sendWSFrame", LOG_DEBUG); - ws_send_t* pSend = (ws_send_t*)malloc(sizeof(ws_send_t)); + ws_send_t *pSend = (ws_send_t *)malloc(sizeof(ws_send_t)); memset(pSend, 0, sizeof(ws_send_t)); pSend->pHeader = new std::vector(pHeader, pHeader + headerSize); pSend->pData = new std::vector(pData, pData + dataSize); pSend->pFooter = new std::vector(pFooter, pFooter + footerSize); uv_buf_t buffers[3]; - buffers[0] = uv_buf_init(safe_vec_addr(*pSend->pHeader), pSend->pHeader->size()); + buffers[0] = + uv_buf_init(safe_vec_addr(*pSend->pHeader), pSend->pHeader->size()); buffers[1] = uv_buf_init(safe_vec_addr(*pSend->pData), pSend->pData->size()); - buffers[2] = uv_buf_init(safe_vec_addr(*pSend->pFooter), pSend->pFooter->size()); + buffers[2] = + uv_buf_init(safe_vec_addr(*pSend->pFooter), pSend->pFooter->size()); // TODO: Handle return code - uv_write(&pSend->writeReq, (uv_stream_t*)handle(), buffers, 3, + uv_write(&pSend->writeReq, (uv_stream_t *)handle(), buffers, 3, &on_ws_message_sent); } @@ -649,12 +613,11 @@ void HttpRequest::closeWSSocket() { close(); } - // ============================================================================ // Closing connection // ============================================================================ -void HttpRequest::_on_closed(uv_handle_t* handle) { +void HttpRequest::_on_closed(uv_handle_t *handle) { ASSERT_BACKGROUND_THREAD() debug_log("HttpRequest::_on_closed", LOG_DEBUG); @@ -697,12 +660,7 @@ void HttpRequest::close() { // Schedule: // _pWebApplication->onWSClose(p_wsc) invoke_later( - std::bind( - &WebApplication::onWSClose, - _pWebApplication, - p_wsc - ) - ); + std::bind(&WebApplication::onWSClose, _pWebApplication, p_wsc)); } _pSocket->removeConnection(shared_from_this()); @@ -717,12 +675,9 @@ void HttpRequest::schedule_close() { debug_log("HttpRequest::schedule_close", LOG_DEBUG); // Schedule on background thread: // pRequest->close() - _background_queue->push( - std::bind(&HttpRequest::close, shared_from_this()) - ); + _background_queue->push(std::bind(&HttpRequest::close, shared_from_this())); } - // ============================================================================ // Open websocket // ============================================================================ @@ -731,9 +686,8 @@ void HttpRequest::_call_r_on_ws_open() { ASSERT_MAIN_THREAD() debug_log("HttpRequest::_call_r_on_ws_open", LOG_DEBUG); - std::function error_callback( - std::bind(&HttpRequest::schedule_close, shared_from_this()) - ); + std::function error_callback( + std::bind(&HttpRequest::schedule_close, shared_from_this())); this->_pWebApplication->onWSOpen(shared_from_this(), error_callback); @@ -748,29 +702,24 @@ void HttpRequest::_call_r_on_ws_open() { // _requestBuffer is likely empty at this point, but copy its contents and // _pass along just in case. - std::shared_ptr > req_buffer = std::make_shared >(_requestBuffer); + std::shared_ptr> req_buffer = + std::make_shared>(_requestBuffer); _requestBuffer.clear(); - // Schedule on background thread: // p_wsc->read(safe_vec_addr(*req_buffer), req_buffer->size()) - std::function cb( - std::bind(&WebSocketConnection::read, - p_wsc, - safe_vec_addr(*req_buffer), - req_buffer->size() - ) - ); + std::function cb(std::bind(&WebSocketConnection::read, p_wsc, + safe_vec_addr(*req_buffer), + req_buffer->size())); _background_queue->push(cb); } - // ============================================================================ // Parse incoming data // ============================================================================ -void HttpRequest::_parse_http_data(char* buffer, const ssize_t n) { +void HttpRequest::_parse_http_data(char *buffer, const ssize_t n) { ASSERT_BACKGROUND_THREAD() int parsed = http_parser_execute(&_parser, &request_settings(), buffer, n); @@ -780,7 +729,7 @@ void HttpRequest::_parse_http_data(char* buffer, const ssize_t n) { _requestBuffer.insert(_requestBuffer.end(), buffer + parsed, buffer + n); } else if (isUpgrade()) { - char* pData = buffer + parsed; + char *pData = buffer + parsed; size_t pDataLen = n - parsed; std::shared_ptr p_wsc = _pWebSocketConnection; @@ -793,15 +742,15 @@ void HttpRequest::_parse_http_data(char* buffer, const ssize_t n) { if (p_wsc->accept(_headers, pData, pDataLen)) { // Freed in on_response_written - std::shared_ptrpDS = std::make_shared(); + std::shared_ptr pDS = + std::make_shared(); std::shared_ptr pResp( - new HttpResponse(shared_from_this(), 101, "Switching Protocols", pDS), - auto_deleter_background - ); + new HttpResponse(shared_from_this(), 101, "Switching Protocols", pDS), + auto_deleter_background); std::vector body; - p_wsc->handshake(_url, _headers, &pData, &pDataLen, - &pResp->headers(), &body); + p_wsc->handshake(_url, _headers, &pData, &pDataLen, &pResp->headers(), + &body); if (body.size() > 0) { pDS->add(body); } @@ -816,8 +765,7 @@ void HttpRequest::_parse_http_data(char* buffer, const ssize_t n) { // Schedule on main thread: // this->_call_r_on_ws_open() invoke_later( - std::bind(&HttpRequest::_call_r_on_ws_open, shared_from_this()) - ); + std::bind(&HttpRequest::_call_r_on_ws_open, shared_from_this())); } if (_protocol != WebSockets) { @@ -826,12 +774,10 @@ void HttpRequest::_parse_http_data(char* buffer, const ssize_t n) { } } else if (parsed < n) { if (!_ignoreNewData) { - debug_log( - std::string("HttpRequest::_parse_http_data error: ") + - http_errno_description(HTTP_PARSER_ERRNO(&_parser)), - LOG_INFO - ); - uv_read_stop((uv_stream_t*)handle()); + debug_log(std::string("HttpRequest::_parse_http_data error: ") + + http_errno_description(HTTP_PARSER_ERRNO(&_parser)), + LOG_INFO); + uv_read_stop((uv_stream_t *)handle()); close(); } } @@ -847,10 +793,11 @@ void HttpRequest::_parse_http_data_from_buffer() { this->_parse_http_data(safe_vec_addr(req_buffer), req_buffer.size()); } -void HttpRequest::_on_request_read(uv_stream_t*, ssize_t nread, const uv_buf_t* buf) { +void HttpRequest::_on_request_read(uv_stream_t *, ssize_t nread, + const uv_buf_t *buf) { ASSERT_BACKGROUND_THREAD() if (nread > 0) { - //std::cerr << nread << " bytes read\n"; + // std::cerr << nread << " bytes read\n"; if (_ignoreNewData) { // Do nothing } else if (_protocol == HTTP) { @@ -858,8 +805,8 @@ void HttpRequest::_on_request_read(uv_stream_t*, ssize_t nread, const uv_buf_t* } else if (_protocol == WebSockets) { std::shared_ptr p_wsc = _pWebSocketConnection; - // It's possible for _pWebSocketConnection to have had its refcount drop to - // zero from another thread or earlier callback in this thread. If that + // It's possible for _pWebSocketConnection to have had its refcount drop + // to zero from another thread or earlier callback in this thread. If that // happened, do nothing. if (p_wsc) { p_wsc->read(buf->base, nread); @@ -868,11 +815,9 @@ void HttpRequest::_on_request_read(uv_stream_t*, ssize_t nread, const uv_buf_t* } else if (nread < 0) { if (nread == UV_EOF || nread == UV_ECONNRESET) { } else { - debug_log( - std::string("HttpRequest::on_request_read error: ") + - uv_strerror(nread), - LOG_INFO - ); + debug_log(std::string("HttpRequest::on_request_read error: ") + + uv_strerror(nread), + LOG_INFO); } close(); } else { @@ -887,36 +832,40 @@ void HttpRequest::handleRequest() { ASSERT_BACKGROUND_THREAD() int r = uv_read_start(handle(), &on_alloc, &HttpRequest_on_request_read); if (r) { - debug_log( - std::string("HttpRequest::handlRequest error: [uv_read_start] ") + - uv_strerror(r), - LOG_INFO - ); + debug_log(std::string("HttpRequest::handlRequest error: [uv_read_start] ") + + uv_strerror(r), + LOG_INFO); return; } } - -#define IMPLEMENT_CALLBACK_1(type, function_name, return_type, type_1) \ - return_type type##_##function_name(type_1 arg1) { \ - return ((type*)(arg1->data))->_##function_name(arg1); \ +#define IMPLEMENT_CALLBACK_1(type, function_name, return_type, type_1) \ + return_type type##_##function_name(type_1 arg1) { \ + return ((type *)(arg1->data))->_##function_name(arg1); \ } #define IMPLEMENT_CALLBACK_2(type, function_name, return_type, type_1, type_2) \ - return_type type##_##function_name(type_1 arg1, type_2 arg2) { \ - return ((type*)(arg1->data))->_##function_name(arg1, arg2); \ + return_type type##_##function_name(type_1 arg1, type_2 arg2) { \ + return ((type *)(arg1->data))->_##function_name(arg1, arg2); \ } -#define IMPLEMENT_CALLBACK_3(type, function_name, return_type, type_1, type_2, type_3) \ - return_type type##_##function_name(type_1 arg1, type_2 arg2, type_3 arg3) { \ - return ((type*)(arg1->data))->_##function_name(arg1, arg2, arg3); \ +#define IMPLEMENT_CALLBACK_3(type, function_name, return_type, type_1, type_2, \ + type_3) \ + return_type type##_##function_name(type_1 arg1, type_2 arg2, type_3 arg3) { \ + return ((type *)(arg1->data))->_##function_name(arg1, arg2, arg3); \ } -IMPLEMENT_CALLBACK_1(HttpRequest, on_message_begin, int, http_parser*) -IMPLEMENT_CALLBACK_3(HttpRequest, on_url, int, http_parser*, const char*, size_t) -IMPLEMENT_CALLBACK_3(HttpRequest, on_status, int, http_parser*, const char*, size_t) -IMPLEMENT_CALLBACK_3(HttpRequest, on_header_field, int, http_parser*, const char*, size_t) -IMPLEMENT_CALLBACK_3(HttpRequest, on_header_value, int, http_parser*, const char*, size_t) -IMPLEMENT_CALLBACK_1(HttpRequest, on_headers_complete, int, http_parser*) -IMPLEMENT_CALLBACK_3(HttpRequest, on_body, int, http_parser*, const char*, size_t) -IMPLEMENT_CALLBACK_1(HttpRequest, on_message_complete, int, http_parser*) -IMPLEMENT_CALLBACK_1(HttpRequest, on_closed, void, uv_handle_t*) -IMPLEMENT_CALLBACK_3(HttpRequest, on_request_read, void, uv_stream_t*, ssize_t, const uv_buf_t*) +IMPLEMENT_CALLBACK_1(HttpRequest, on_message_begin, int, http_parser *) +IMPLEMENT_CALLBACK_3(HttpRequest, on_url, int, http_parser *, const char *, + size_t) +IMPLEMENT_CALLBACK_3(HttpRequest, on_status, int, http_parser *, const char *, + size_t) +IMPLEMENT_CALLBACK_3(HttpRequest, on_header_field, int, http_parser *, + const char *, size_t) +IMPLEMENT_CALLBACK_3(HttpRequest, on_header_value, int, http_parser *, + const char *, size_t) +IMPLEMENT_CALLBACK_1(HttpRequest, on_headers_complete, int, http_parser *) +IMPLEMENT_CALLBACK_3(HttpRequest, on_body, int, http_parser *, const char *, + size_t) +IMPLEMENT_CALLBACK_1(HttpRequest, on_message_complete, int, http_parser *) +IMPLEMENT_CALLBACK_1(HttpRequest, on_closed, void, uv_handle_t *) +IMPLEMENT_CALLBACK_3(HttpRequest, on_request_read, void, uv_stream_t *, ssize_t, + const uv_buf_t *) diff --git a/src/httprequest.h b/src/httprequest.h index 543e4baa5..e101c0d78 100644 --- a/src/httprequest.h +++ b/src/httprequest.h @@ -1,33 +1,29 @@ #ifndef HTTPREQUEST_HPP #define HTTPREQUEST_HPP -#include #include +#include -#include -#include -#include -#include "http-parser/http_parser.h" -#include "socket.h" -#include "webapplication.h" +#include "auto_deleter.h" #include "callbackqueue.h" +#include "http-parser/http_parser.h" #include "httpresponse.h" -#include "utils.h" +#include "socket.h" #include "thread.h" -#include "auto_deleter.h" +#include "utils.h" +#include "webapplication.h" +#include +#include +#include -enum Protocol { - HTTP, - WebSockets -}; +enum Protocol { HTTP, WebSockets }; // HttpRequest is a bit of a misnomer -- a HttpRequest object represents a // single connection, on which multiple actual HTTP requests can be made. class HttpRequest : public WebSocketConnectionCallbacks, - public std::enable_shared_from_this -{ + public std::enable_shared_from_this { private: - uv_loop_t* _pLoop; + uv_loop_t *_pLoop; std::shared_ptr _pWebApplication; VariantHandle _handle; std::shared_ptr _pSocket; @@ -38,13 +34,13 @@ class HttpRequest : public WebSocketConnectionCallbacks, std::string _lastHeaderField; std::shared_ptr _pWebSocketConnection; - // `_env` is an shared_ptr instead of an Environment because it + // `_env` is an shared_ptr instead of an environment because it // must be created and deleted on the main thread. However, the creation and // deletion of HttpRequest objects happens on the background thread, and so - // the lifetime of the Environment can't be strictly tied to the lifetime of + // the lifetime of the environment can't be strictly tied to the lifetime of // the HttpRequest. It is instantiated with a deleter function that ensures // deletion happens on the main thread. - std::shared_ptr _env; + std::shared_ptr _env; void _newRequest(); void _initializeEnv(); @@ -62,7 +58,7 @@ class HttpRequest : public WebSocketConnectionCallbacks, // true after the headers are complete. bool _is_upgrade; - void _parse_http_data(char* buf, const ssize_t n); + void _parse_http_data(char *buf, const ssize_t n); // Parse data that has been stored in the buffer. void _parse_http_data_from_buffer(); @@ -78,36 +74,22 @@ class HttpRequest : public WebSocketConnectionCallbacks, // Most of the methods in HttpRequest run on a background thread. Some // methods run on the main thread. This is used by the main-thread methods // to schedule callbacks to run on the background thread. - CallbackQueue* _background_queue; + CallbackQueue *_background_queue; // Used to keep track of state when parsing headers. This is needed because // sometimes the header fields and values can be split across multiple TCP // messages, resulting in multiple calls to _on_header_field or // _on_header_value. - enum LastHeaderState - { - START, - FIELD, - VALUE - }; + enum LastHeaderState { START, FIELD, VALUE }; LastHeaderState _last_header_state; public: - HttpRequest(uv_loop_t* pLoop, - std::shared_ptr pWebApplication, - std::shared_ptr pSocket, - CallbackQueue* backgroundQueue) - : _pLoop(pLoop), - _pWebApplication(pWebApplication), - _pSocket(pSocket), - _protocol(HTTP), - _ignoreNewData(false), - _is_closing(false), - _is_upgrade(false), - _response_scheduled(false), - _handling_request(false), - _background_queue(backgroundQueue) - { + HttpRequest(uv_loop_t *pLoop, std::shared_ptr pWebApplication, + std::shared_ptr pSocket, CallbackQueue *backgroundQueue) + : _pLoop(pLoop), _pWebApplication(pWebApplication), _pSocket(pSocket), + _protocol(HTTP), _ignoreNewData(false), _is_closing(false), + _is_upgrade(false), _response_scheduled(false), + _handling_request(false), _background_queue(backgroundQueue) { ASSERT_BACKGROUND_THREAD() uv_tcp_init(pLoop, &_handle.tcp); _handle.isTcp = true; @@ -127,30 +109,30 @@ class HttpRequest : public WebSocketConnectionCallbacks, _pWebSocketConnection.reset(); } - uv_stream_t* handle(); + uv_stream_t *handle(); std::shared_ptr websocket() const { return _pWebSocketConnection; } Address clientAddress(); Address serverAddress(); - Rcpp::Environment& env(); + environment &env(); void handleRequest(); std::string method() const; std::string url() const; - const RequestHeaders& headers() const; + const RequestHeaders &headers() const; - bool hasHeader(const std::string& name) const; - bool hasHeader(const std::string& name, const std::string& value, bool ci = false) const; - std::string getHeader(const std::string& name) const; + bool hasHeader(const std::string &name) const; + bool hasHeader(const std::string &name, const std::string &value, + bool ci = false) const; + std::string getHeader(const std::string &name) const; // Is the request an Upgrade (i.e. WebSocket connection)? bool isUpgrade() const; - void sendWSFrame(const char* pHeader, size_t headerSize, - const char* pData, size_t dataSize, - const char* pFooter, size_t footerSize); + void sendWSFrame(const char *pHeader, size_t headerSize, const char *pData, + size_t dataSize, const char *pFooter, size_t footerSize); void closeWSSocket(); // Call this function from the main thread to indicate that a response has @@ -167,95 +149,98 @@ class HttpRequest : public WebSocketConnectionCallbacks, void requestCompleted(); void _call_r_on_ws_open(); - void _schedule_on_headers_complete_complete(std::shared_ptr pResponse); + void _schedule_on_headers_complete_complete( + std::shared_ptr pResponse); void _on_headers_complete_complete(std::shared_ptr pResponse); void _schedule_on_body_error(std::shared_ptr pResponse); void _on_body_error(std::shared_ptr pResponse); - void _schedule_on_message_complete_complete(std::shared_ptr pResponse); + void _schedule_on_message_complete_complete( + std::shared_ptr pResponse); void _on_message_complete_complete(std::shared_ptr pResponse); public: // Callbacks - virtual int _on_message_begin(http_parser* pParser); - virtual int _on_url(http_parser* pParser, const char* pAt, size_t length); - virtual int _on_status(http_parser* pParser, const char* pAt, size_t length); - virtual int _on_header_field(http_parser* pParser, const char* pAt, size_t length); - virtual int _on_header_value(http_parser* pParser, const char* pAt, size_t length); - virtual int _on_headers_complete(http_parser* pParser); - virtual int _on_body(http_parser* pParser, const char* pAt, size_t length); - virtual int _on_message_complete(http_parser* pParser); - - virtual void onWSMessage(bool binary, const char* data, size_t len); + virtual int _on_message_begin(http_parser *pParser); + virtual int _on_url(http_parser *pParser, const char *pAt, size_t length); + virtual int _on_status(http_parser *pParser, const char *pAt, size_t length); + virtual int _on_header_field(http_parser *pParser, const char *pAt, + size_t length); + virtual int _on_header_value(http_parser *pParser, const char *pAt, + size_t length); + virtual int _on_headers_complete(http_parser *pParser); + virtual int _on_body(http_parser *pParser, const char *pAt, size_t length); + virtual int _on_message_complete(http_parser *pParser); + + virtual void onWSMessage(bool binary, const char *data, size_t len); virtual void onWSClose(int code); // Update whether or not this HttpRequest is to be upgraded. This is called // from _on_headers_complete(). void updateUpgradeStatus(); - void _on_closed(uv_handle_t* handle); + void _on_closed(uv_handle_t *handle); void close(); void schedule_close(); - void _on_request_read(uv_stream_t*, ssize_t nread, const uv_buf_t* buf); + void _on_request_read(uv_stream_t *, ssize_t nread, const uv_buf_t *buf); void _on_response_write(int status); void _initializeSocket() { // Coerce to parent class std::shared_ptr this_base( - std::static_pointer_cast(shared_from_this()) - ); + std::static_pointer_cast( + shared_from_this())); _pWebSocketConnection = std::shared_ptr( - new WebSocketConnection(this->_pLoop, this_base), - auto_deleter_background - ); + new WebSocketConnection(this->_pLoop, this_base), + auto_deleter_background); _pSocket->addConnection(shared_from_this()); } }; - // Same for Websocketconnection // Factory function needed because we can't call shared_from_this() inside the // constructor. inline std::shared_ptr createHttpRequest( - uv_loop_t* pLoop, - std::shared_ptr pWebApplication, - std::shared_ptr pSocket, - CallbackQueue* backgroundQueue) -{ + uv_loop_t *pLoop, std::shared_ptr pWebApplication, + std::shared_ptr pSocket, CallbackQueue *backgroundQueue) { ASSERT_BACKGROUND_THREAD() // The shared_ptr has a custom deleter which ensures that the HttpRequest is // deleted on the background thread. std::shared_ptr req( - new HttpRequest(pLoop, pWebApplication, pSocket, backgroundQueue), - auto_deleter_background - ); + new HttpRequest(pLoop, pWebApplication, pSocket, backgroundQueue), + auto_deleter_background); req->_initializeSocket(); return req; } - -#define DECLARE_CALLBACK_1(type, function_name, return_type, type_1) \ +#define DECLARE_CALLBACK_1(type, function_name, return_type, type_1) \ return_type type##_##function_name(type_1 arg1); -#define DECLARE_CALLBACK_3(type, function_name, return_type, type_1, type_2, type_3) \ +#define DECLARE_CALLBACK_3(type, function_name, return_type, type_1, type_2, \ + type_3) \ return_type type##_##function_name(type_1 arg1, type_2 arg2, type_3 arg3); -#define DECLARE_CALLBACK_2(type, function_name, return_type, type_1, type_2) \ +#define DECLARE_CALLBACK_2(type, function_name, return_type, type_1, type_2) \ return_type type##_##function_name(type_1 arg1, type_2 arg2); -DECLARE_CALLBACK_1(HttpRequest, on_message_begin, int, http_parser*) -DECLARE_CALLBACK_3(HttpRequest, on_url, int, http_parser*, const char*, size_t) -DECLARE_CALLBACK_3(HttpRequest, on_status, int, http_parser*, const char*, size_t) -DECLARE_CALLBACK_3(HttpRequest, on_header_field, int, http_parser*, const char*, size_t) -DECLARE_CALLBACK_3(HttpRequest, on_header_value, int, http_parser*, const char*, size_t) -DECLARE_CALLBACK_1(HttpRequest, on_headers_complete, int, http_parser*) -DECLARE_CALLBACK_3(HttpRequest, on_body, int, http_parser*, const char*, size_t) -DECLARE_CALLBACK_1(HttpRequest, on_message_complete, int, http_parser*) -DECLARE_CALLBACK_1(HttpRequest, on_closed, void, uv_handle_t*) -DECLARE_CALLBACK_3(HttpRequest, on_request_read, void, uv_stream_t*, ssize_t, const uv_buf_t*) -DECLARE_CALLBACK_2(HttpRequest, on_response_write, void, uv_write_t*, int) - +DECLARE_CALLBACK_1(HttpRequest, on_message_begin, int, http_parser *) +DECLARE_CALLBACK_3(HttpRequest, on_url, int, http_parser *, const char *, + size_t) +DECLARE_CALLBACK_3(HttpRequest, on_status, int, http_parser *, const char *, + size_t) +DECLARE_CALLBACK_3(HttpRequest, on_header_field, int, http_parser *, + const char *, size_t) +DECLARE_CALLBACK_3(HttpRequest, on_header_value, int, http_parser *, + const char *, size_t) +DECLARE_CALLBACK_1(HttpRequest, on_headers_complete, int, http_parser *) +DECLARE_CALLBACK_3(HttpRequest, on_body, int, http_parser *, const char *, + size_t) +DECLARE_CALLBACK_1(HttpRequest, on_message_complete, int, http_parser *) +DECLARE_CALLBACK_1(HttpRequest, on_closed, void, uv_handle_t *) +DECLARE_CALLBACK_3(HttpRequest, on_request_read, void, uv_stream_t *, ssize_t, + const uv_buf_t *) +DECLARE_CALLBACK_2(HttpRequest, on_response_write, void, uv_write_t *, int) #endif // HTTPREQUEST_HPP diff --git a/src/httpresponse.cpp b/src/httpresponse.cpp index c2a1c0870..168740c91 100644 --- a/src/httpresponse.cpp +++ b/src/httpresponse.cpp @@ -1,36 +1,35 @@ #include "httpresponse.h" -#include "httprequest.h" #include "constants.h" +#include "gzipdatasource.h" +#include "httprequest.h" #include "thread.h" #include "utils.h" -#include "gzipdatasource.h" #include - -void on_response_written(uv_write_t* handle, int status) { +void on_response_written(uv_write_t *handle, int status) { ASSERT_BACKGROUND_THREAD() // Make a local copy of the shared_ptr before deleting the original one. - std::shared_ptr pResponse(*(std::shared_ptr*)handle->data); + std::shared_ptr pResponse( + *(std::shared_ptr *)handle->data); - delete (std::shared_ptr*)handle->data; + delete (std::shared_ptr *)handle->data; free(handle); pResponse->onResponseWritten(status); } +ResponseHeaders &HttpResponse::headers() { return _headers; } -ResponseHeaders& HttpResponse::headers() { - return _headers; -} - -void HttpResponse::addHeader(const std::string& name, const std::string& value) { +void HttpResponse::addHeader(const std::string &name, + const std::string &value) { _headers.push_back(std::pair(name, value)); } // Set a header to a particular value. If the header already exists, delete // it, and add the header with the new value. The new header will be the last // item. -void HttpResponse::setHeader(const std::string& name, const std::string& value) { +void HttpResponse::setHeader(const std::string &name, + const std::string &value) { // Look for existing header with same name, and delete if present ResponseHeaders::iterator it = _headers.begin(); while (it != _headers.end()) { @@ -46,16 +45,15 @@ void HttpResponse::setHeader(const std::string& name, const std::string& value) class HttpResponseExtendedWrite : public ExtendedWrite { std::shared_ptr _pParent; + public: HttpResponseExtendedWrite(std::shared_ptr pParent, - uv_stream_t* pHandle, + uv_stream_t *pHandle, std::shared_ptr pDataSource, - bool chunked) : - ExtendedWrite(pHandle, pDataSource, chunked), _pParent(pParent) {} + bool chunked) + : ExtendedWrite(pHandle, pDataSource, chunked), _pParent(pParent) {} - void onWriteComplete(int status) { - delete this; - } + void onWriteComplete(int status) { delete this; } }; void HttpResponse::writeResponse() { @@ -67,8 +65,7 @@ void HttpResponse::writeResponse() { bool contentEncoding = false; std::string contentLength; for (ResponseHeaders::const_iterator it = _headers.begin(); - it != _headers.end(); - it++) { + it != _headers.end(); it++) { if (strcasecmp(it->first.c_str(), "Content-Length") == 0) { contentLength = it->second; } else { @@ -132,29 +129,32 @@ void HttpResponse::writeResponse() { // For Hixie-76 and HyBi-03, it's important that the body be sent immediately, // before any WebSocket traffic is sent from the server - if (_statusCode == 101 && _pBody != NULL && _pBody->size() > 0 && _pBody->size() < 256) { + if (_statusCode == 101 && _pBody != NULL && _pBody->size() > 0 && + _pBody->size() < 256) { uv_buf_t buffer = _pBody->getData(_pBody->size()); if (buffer.len > 0) { _responseHeader.reserve(_responseHeader.size() + buffer.len); } - _responseHeader.insert(_responseHeader.end(), buffer.base, buffer.base + buffer.len); + _responseHeader.insert(_responseHeader.end(), buffer.base, + buffer.base + buffer.len); if (buffer.len == _pBody->size()) { // We used up the body, kill it _pBody.reset(); } } - uv_buf_t headerBuf = uv_buf_init(safe_vec_addr(_responseHeader), _responseHeader.size()); - uv_write_t* pWriteReq = (uv_write_t*)malloc(sizeof(uv_write_t)); + uv_buf_t headerBuf = + uv_buf_init(safe_vec_addr(_responseHeader), _responseHeader.size()); + uv_write_t *pWriteReq = (uv_write_t *)malloc(sizeof(uv_write_t)); memset(pWriteReq, 0, sizeof(uv_write_t)); // Pointer to shared_ptr pWriteReq->data = new std::shared_ptr(shared_from_this()); int r = uv_write(pWriteReq, _pRequest->handle(), &headerBuf, 1, - &on_response_written); + &on_response_written); if (r) { debug_log(std::string("uv_write() error:") + uv_strerror(r), LOG_INFO); - delete (std::shared_ptr*)pWriteReq->data; + delete (std::shared_ptr *)pWriteReq->data; free(pWriteReq); } else { _pRequest->requestCompleted(); @@ -171,8 +171,8 @@ void HttpResponse::onResponseWritten(int status) { } if (_pBody != NULL) { - HttpResponseExtendedWrite* pResponseWrite = new HttpResponseExtendedWrite( - shared_from_this(), _pRequest->handle(), _pBody, this->_chunked); + HttpResponseExtendedWrite *pResponseWrite = new HttpResponseExtendedWrite( + shared_from_this(), _pRequest->handle(), _pBody, this->_chunked); pResponseWrite->begin(); } } diff --git a/src/httpresponse.h b/src/httpresponse.h index ed7b78f96..e09cd6b3b 100644 --- a/src/httpresponse.h +++ b/src/httpresponse.h @@ -1,15 +1,15 @@ #ifndef HTTPRESPONSE_HPP #define HTTPRESPONSE_HPP +#include "constants.h" +#include "utils.h" +#include "uvutil.h" #include #include -#include "uvutil.h" -#include "utils.h" -#include "constants.h" class HttpRequest; -class HttpResponse : public std::enable_shared_from_this { +class HttpResponse : public std::enable_shared_from_this { std::shared_ptr _pRequest; int _statusCode; @@ -21,25 +21,18 @@ class HttpResponse : public std::enable_shared_from_this { bool _chunked; public: - HttpResponse(std::shared_ptr pRequest, - int statusCode, - const std::string& status, - std::shared_ptr pBody) - : _pRequest(pRequest), - _statusCode(statusCode), - _status(status), - _pBody(pBody), - _closeAfterWritten(false), - _chunked(false) - { + HttpResponse(std::shared_ptr pRequest, int statusCode, + const std::string &status, std::shared_ptr pBody) + : _pRequest(pRequest), _statusCode(statusCode), _status(status), + _pBody(pBody), _closeAfterWritten(false), _chunked(false) { _headers.push_back(std::make_pair("Date", http_date_string(time(NULL)))); } ~HttpResponse(); - ResponseHeaders& headers(); + ResponseHeaders &headers(); - void addHeader(const std::string& name, const std::string& value); - void setHeader(const std::string& name, const std::string& value); + void addHeader(const std::string &name, const std::string &value); + void setHeader(const std::string &name, const std::string &value); void writeResponse(); void onResponseWritten(int status); void closeAfterWritten(); diff --git a/src/httpuv.cpp b/src/httpuv.cpp index 25963b1d9..fa20815ed 100644 --- a/src/httpuv.cpp +++ b/src/httpuv.cpp @@ -1,44 +1,44 @@ #define _FILE_OFFSET_BITS 64 -#include -#include -#include -#include -#include -#include -#include -#include -#include "base64/base64.hpp" -#include "uvutil.h" -#include "webapplication.h" -#include "http.h" -#include "callbackqueue.h" -#include "utils.h" -#include "thread.h" #include "httpuv.h" #include "auto_deleter.h" +#include "base64/base64.hpp" +#include "callbackqueue.h" +#include "http.h" #include "socket.h" +#include "thread.h" +#include "utils.h" +#include "uvutil.h" +#include "webapplication.h" #include +#include +#include +#include +#include +#include +#include +#include +#include +#include "cpp11.hpp" +#include "R.h" +#include "Rmath.h" -void throwError(int err, - const std::string& prefix = std::string(), - const std::string& suffix = std::string()) -{ +using namespace cpp11; + +void throwError(int err, const std::string &prefix = std::string(), + const std::string &suffix = std::string()) { ASSERT_MAIN_THREAD() std::string msg = prefix + uv_strerror(err) + suffix; - throw Rcpp::exception(msg.c_str()); + stop(msg); } // For keeping track of all running server apps. -std::vector pServers; - +std::vector pServers; class UVLoop { public: - UVLoop() : _initialized(false) { - uv_mutex_init(&_mutex); - }; + UVLoop() : _initialized(false) { uv_mutex_init(&_mutex); }; void ensure_initialized() { guard guard(_mutex); @@ -48,7 +48,7 @@ class UVLoop { } } - uv_loop_t* get() { + uv_loop_t *get() { guard guard(_mutex); if (!_initialized) { throw std::runtime_error("io_loop not initialized!"); @@ -74,7 +74,7 @@ class UVLoop { // A queue of tasks to run on the background thread. This is how the main // thread schedules work to be done on the background thread. -CallbackQueue* background_queue; +CallbackQueue *background_queue; uv_thread_t io_thread_id; ThreadSafe io_thread_running(false); @@ -82,7 +82,7 @@ ThreadSafe io_thread_running(false); UVLoop io_loop; uv_async_t async_stop_io_loop; -void close_handle_cb(uv_handle_t* handle, void* arg) { +void close_handle_cb(uv_handle_t *handle, void *arg) { ASSERT_BACKGROUND_THREAD() if (!uv_is_closing(handle)) { uv_close(handle, NULL); @@ -109,9 +109,10 @@ void block_sigpipe() { } #endif -void io_thread(void* data) { +void io_thread(void *data) { register_background_thread(); - std::shared_ptr* pBlocker = reinterpret_cast*>(data); + std::shared_ptr *pBlocker = + reinterpret_cast *>(data); std::shared_ptr blocker = std::shared_ptr(*pBlocker); delete pBlocker; @@ -159,117 +160,95 @@ void ensure_io_thread() { // We want to pass a copy of the shared_ptr to the new pthread. To do that, we // need to create a new shared_ptr and get the regular pointer to it. - std::shared_ptr* pBlocker = new std::shared_ptr(blocker); + std::shared_ptr *pBlocker = new std::shared_ptr(blocker); int ret = uv_thread_create(&io_thread_id, io_thread, pBlocker); // Wait for io_loop to be initialized before continuing blocker->wait(); if (ret != 0) { - Rcpp::stop(std::string("Error: ") + uv_strerror(ret)); + stop(std::string("Error: ") + uv_strerror(ret)); } } - // ============================================================================ // Outgoing websocket messages // ============================================================================ -// [[Rcpp::export]] -void sendWSMessage(SEXP conn, - bool binary, - Rcpp::RObject message) -{ +[[cpp11::register]] void sendWSMessage(SEXP conn, bool binary, SEXP message) { ASSERT_MAIN_THREAD() - Rcpp::XPtr, - Rcpp::PreserveStorage, - auto_deleter_background >, - true> conn_xptr(conn); - std::shared_ptr wsc = internalize_shared_ptr(conn_xptr); + external_pointer< + std::shared_ptr, + auto_deleter_background>> + conn_xptr(conn); + std::shared_ptr wsc = *conn_xptr; Opcode mode; SEXP msg_sexp; - std::vector* str; + std::vector *str; // Efficiently copy message into a new vector. There's probably a // cleaner way to do this. - if (binary) { + if (binary) { mode = Binary; - msg_sexp = PROTECT(Rcpp::as(message)); - str = new std::vector(RAW(msg_sexp), RAW(msg_sexp) + Rf_length(msg_sexp)); + msg_sexp = PROTECT(message); + str = new std::vector(RAW(msg_sexp), + RAW(msg_sexp) + Rf_length(msg_sexp)); UNPROTECT(1); } else { mode = Text; msg_sexp = PROTECT(STRING_ELT(message, 0)); - str = new std::vector(CHAR(msg_sexp), CHAR(msg_sexp) + Rf_length(msg_sexp)); + str = new std::vector(CHAR(msg_sexp), + CHAR(msg_sexp) + Rf_length(msg_sexp)); UNPROTECT(1); } - - std::function cb( - std::bind(&WebSocketConnection::sendWSMessage, wsc, - mode, - safe_vec_addr(*str), - str->size() - ) - ); + std::function cb(std::bind(&WebSocketConnection::sendWSMessage, + wsc, mode, safe_vec_addr(*str), + str->size())); background_queue->push(cb); // Free str after data is written // deleter_background>(str) - background_queue->push(std::bind(deleter_background >, str)); + background_queue->push(std::bind(deleter_background>, str)); } -// [[Rcpp::export]] -void closeWS(SEXP conn, - uint16_t code, - std::string reason) -{ +[[cpp11::register]] void closeWS(SEXP conn, uint16_t code, std::string reason) { ASSERT_MAIN_THREAD() debug_log("closeWS", LOG_DEBUG); - Rcpp::XPtr, - Rcpp::PreserveStorage, - auto_deleter_background >, - true> conn_xptr(conn); - std::shared_ptr wsc = internalize_shared_ptr(conn_xptr); + external_pointer< + std::shared_ptr, + auto_deleter_background>> + conn_xptr(conn); + std::shared_ptr wsc = *conn_xptr; // Schedule on background thread: // wsc->closeWS(code, reason); background_queue->push( - std::bind(&WebSocketConnection::closeWS, wsc, code, reason) - ); + std::bind(&WebSocketConnection::closeWS, wsc, code, reason)); } - // ============================================================================ // Create/stop servers // ============================================================================ -// [[Rcpp::export]] -Rcpp::RObject makeTcpServer(const std::string& host, int port, - Rcpp::Function onHeaders, - Rcpp::Function onBodyData, - Rcpp::Function onRequest, - Rcpp::Function onWSOpen, - Rcpp::Function onWSMessage, - Rcpp::Function onWSClose, - Rcpp::List staticPaths, - Rcpp::List staticPathOptions, - bool quiet -) { - - using namespace Rcpp; +[[cpp11::register]] SEXP makeTcpServer(const std::string &host, int port, + sexp onHeaders, function onBodyData, + function onRequest, function onWSOpen, + function onWSMessage, function onWSClose, + list staticPaths, list staticPathOptions, + bool quiet) { + register_main_thread(); // Deleted when owning pServer is deleted. If pServer creation fails, // this should be deleted when it goes out of scope. std::shared_ptr pHandler( - new RWebApplication(onHeaders, onBodyData, onRequest, - onWSOpen, onWSMessage, onWSClose, - staticPaths, staticPathOptions), - auto_deleter_main - ); + new RWebApplication(onHeaders, onBodyData, onRequest, onWSOpen, + onWSMessage, onWSClose, staticPaths, + staticPathOptions), + auto_deleter_main); ensure_io_thread(); @@ -277,7 +256,7 @@ Rcpp::RObject makeTcpServer(const std::string& host, int port, // this function, since it is passed to the background thread. std::shared_ptr blocker = std::make_shared(2); - uv_stream_t* pServer; + uv_stream_t *pServer; // Run on background thread: // createTcpServerSync( @@ -286,12 +265,9 @@ Rcpp::RObject makeTcpServer(const std::string& host, int port, // background_queue, &pServer, blocker // ); background_queue->push( - std::bind(createTcpServerSync, - io_loop.get(), host.c_str(), port, - std::static_pointer_cast(pHandler), - quiet, background_queue, &pServer, blocker - ) - ); + std::bind(createTcpServerSync, io_loop.get(), host.c_str(), port, + std::static_pointer_cast(pHandler), quiet, + background_queue, &pServer, blocker)); // Wait for server to be created before continuing blocker->wait(); @@ -302,40 +278,31 @@ Rcpp::RObject makeTcpServer(const std::string& host, int port, pServers.push_back(pServer); - return Rcpp::wrap(externalize_str(pServer)); + return as_sexp(externalize_str(pServer)); } -// [[Rcpp::export]] -Rcpp::RObject makePipeServer(const std::string& name, - int mask, - Rcpp::Function onHeaders, - Rcpp::Function onBodyData, - Rcpp::Function onRequest, - Rcpp::Function onWSOpen, - Rcpp::Function onWSMessage, - Rcpp::Function onWSClose, - Rcpp::List staticPaths, - Rcpp::List staticPathOptions, - bool quiet -) { +[[cpp11::register]] SEXP makePipeServer(const std::string &name, int mask, + sexp onHeaders, function onBodyData, + function onRequest, function onWSOpen, + function onWSMessage, + function onWSClose, list staticPaths, + list staticPathOptions, bool quiet) { - using namespace Rcpp; register_main_thread(); // Deleted when owning pServer is deleted. If pServer creation fails, // this should be deleted when it goes out of scope. std::shared_ptr pHandler( - new RWebApplication(onHeaders, onBodyData, onRequest, - onWSOpen, onWSMessage, onWSClose, - staticPaths, staticPathOptions), - auto_deleter_main - ); + new RWebApplication(onHeaders, onBodyData, onRequest, onWSOpen, + onWSMessage, onWSClose, staticPaths, + staticPathOptions), + auto_deleter_main); ensure_io_thread(); std::shared_ptr blocker = std::make_shared(2); - uv_stream_t* pServer; + uv_stream_t *pServer; // Run on background thread: // createPipeServerSync( @@ -344,12 +311,9 @@ Rcpp::RObject makePipeServer(const std::string& name, // background_queue, &pServer, blocker // ); background_queue->push( - std::bind(createPipeServerSync, - io_loop.get(), name.c_str(), mask, - std::static_pointer_cast(pHandler), - quiet, background_queue, &pServer, blocker - ) - ); + std::bind(createPipeServerSync, io_loop.get(), name.c_str(), mask, + std::static_pointer_cast(pHandler), quiet, + background_queue, &pServer, blocker)); // Wait for server to be created before continuing blocker->wait(); @@ -360,118 +324,111 @@ Rcpp::RObject makePipeServer(const std::string& name, pServers.push_back(pServer); - return Rcpp::wrap(externalize_str(pServer)); + return as_sexp(externalize_str(pServer)); } - -void stopServer_(uv_stream_t* pServer) { +void stopServer_(uv_stream_t *pServer) { ASSERT_MAIN_THREAD() // Remove it from the list of running servers. // Note: we're removing it from the pServers list without waiting for the // background thread to call freeServer(). - std::vector::iterator pos = std::find(pServers.begin(), pServers.end(), pServer); + std::vector::iterator pos = + std::find(pServers.begin(), pServers.end(), pServer); if (pos != pServers.end()) { pServers.erase(pos); } else { - throw Rcpp::exception("pServer handle not found in list of running servers."); + stop("pServer handle not found in list of running servers."); } // Run on background thread: // freeServer(pServer); - background_queue->push( - std::bind(freeServer, pServer) - ); + background_queue->push(std::bind(freeServer, pServer)); } -// [[Rcpp::export]] -void stopServer_(std::string handle) { +[[cpp11::register]] void stopServer_(std::string handle) { ASSERT_MAIN_THREAD() - uv_stream_t* pServer = internalize_str(handle); + uv_stream_t *pServer = internalize_str(handle); stopServer_(pServer); } -void stop_loop_timer_cb(uv_timer_t* handle) { - uv_stop(handle->loop); -} - +void stop_loop_timer_cb(uv_timer_t *handle) { uv_stop(handle->loop); } // ============================================================================ // Static file serving // ============================================================================ -std::shared_ptr get_pWebApplication(uv_stream_t* pServer) { +std::shared_ptr get_pWebApplication(uv_stream_t *pServer) { // Copy the Socket shared_ptr - std::shared_ptr pSocket(*(std::shared_ptr*)pServer->data); + std::shared_ptr pSocket(*(std::shared_ptr *)pServer->data); return pSocket->pWebApplication; } std::shared_ptr get_pWebApplication(std::string handle) { - uv_stream_t* pServer = internalize_str(handle); + uv_stream_t *pServer = internalize_str(handle); return get_pWebApplication(pServer); } -// [[Rcpp::export]] -Rcpp::List getStaticPaths_(std::string handle) { +[[cpp11::register]] list getStaticPaths_(std::string handle) { ASSERT_MAIN_THREAD() return get_pWebApplication(handle)->getStaticPathManager().pathsAsRObject(); } -// [[Rcpp::export]] -Rcpp::List setStaticPaths_(std::string handle, Rcpp::List sp) { +[[cpp11::register]] list setStaticPaths_(std::string handle, list sp) { ASSERT_MAIN_THREAD() get_pWebApplication(handle)->getStaticPathManager().set(sp); return getStaticPaths_(handle); } -// [[Rcpp::export]] -Rcpp::List removeStaticPaths_(std::string handle, Rcpp::CharacterVector paths) { +[[cpp11::register]] list removeStaticPaths_(std::string handle, strings paths) { ASSERT_MAIN_THREAD() get_pWebApplication(handle)->getStaticPathManager().remove(paths); return getStaticPaths_(handle); } -// [[Rcpp::export]] -Rcpp::List getStaticPathOptions_(std::string handle) { +[[cpp11::register]] list getStaticPathOptions_(std::string handle) { ASSERT_MAIN_THREAD() - return get_pWebApplication(handle)->getStaticPathManager().getOptions().asRObject(); + return get_pWebApplication(handle) + ->getStaticPathManager() + .getOptions() + .asRObject(); } - -// [[Rcpp::export]] -Rcpp::List setStaticPathOptions_(std::string handle, Rcpp::List opts) { +[[cpp11::register]] list setStaticPathOptions_(std::string handle, list opts) { ASSERT_MAIN_THREAD() get_pWebApplication(handle)->getStaticPathManager().setOptions(opts); return getStaticPathOptions_(handle); } - // ============================================================================ // Miscellaneous utility functions // ============================================================================ -// [[Rcpp::export]] -std::string base64encode(const Rcpp::RawVector& x) { - return b64encode(x.begin(), x.end()); +[[cpp11::register]] std::string base64encode(const raws &x) { + std::vector buf(x.begin(), x.end()); + return b64encode(buf.begin(), buf.end()); } -static std::string allowed = ";,/?:@&=+$abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-_.!~*'()"; +static std::string allowed = + ";,/" + "?:@&=+$abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-_.!~" + "*'()"; bool isReservedUrlChar(char c) { switch (c) { - case ';': - case ',': - case '/': - case '?': - case ':': - case '@': - case '&': - case '=': - case '+': - case '$': - return true; - default: - return false; + case ';': + case ',': + case '/': + case '?': + case ':': + case '@': + case '&': + case '=': + case '+': + case '$': + return true; + default: + return false; } } @@ -485,16 +442,16 @@ bool needsEscape(char c, bool encodeReserved) { if (isReservedUrlChar(c)) return encodeReserved; switch (c) { - case '-': - case '_': - case '.': - case '!': - case '~': - case '*': - case '\'': - case '(': - case ')': - return false; + case '-': + case '_': + case '.': + case '!': + case '~': + case '*': + case '\'': + case '(': + case ')': + return false; } return true; } @@ -502,71 +459,44 @@ bool needsEscape(char c, bool encodeReserved) { std::string doEncodeURI(std::string value, bool encodeReserved) { std::ostringstream os; os << std::hex << std::uppercase; - for (std::string::const_iterator it = value.begin(); - it != value.end(); - it++) { + for (std::string::const_iterator it = value.begin(); it != value.end(); + it++) { if (!needsEscape(*it, encodeReserved)) { os << *it; } else { - os << '%' << std::setw(2) << std::setfill('0') << static_cast(static_cast(*it)); + os << '%' << std::setw(2) << std::setfill('0') + << static_cast(static_cast(*it)); } } return os.str(); } -//' URI encoding/decoding -//' -//' Encodes/decodes strings using URI encoding/decoding in the same way that web -//' browsers do. The precise behaviors of these functions can be found at -//' developer.mozilla.org: -//' \href{https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI}{encodeURI}, -//' \href{https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent}{encodeURIComponent}, -//' \href{https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI}{decodeURI}, -//' \href{https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent}{decodeURIComponent} -//' -//' Intended as a faster replacement for [utils::URLencode()] and -//' [utils::URLdecode()]. -//' -//' encodeURI differs from encodeURIComponent in that the former will not encode -//' reserved characters: \code{;,/?:@@&=+$} -//' -//' decodeURI differs from decodeURIComponent in that it will refuse to decode -//' encoded sequences that decode to a reserved character. (If in doubt, use -//' decodeURIComponent.) -//' -//' For \code{encodeURI} and \code{encodeURIComponent}, input strings will be -//' converted to UTF-8 before URL-encoding. -//' -//' @param value Character vector to be encoded or decoded. -//' @return Encoded or decoded character vector of the same length as the -//' input value. \code{decodeURI} and \code{decodeURIComponent} will return -//' strings that are UTF-8 encoded. -//' -//' @export -// [[Rcpp::export]] -Rcpp::CharacterVector encodeURI(Rcpp::CharacterVector value) { - Rcpp::CharacterVector out(value.size(), NA_STRING); - - for (int i = 0; i < value.size(); i++) { - if (value[i] != NA_STRING) { - std::string encoded = doEncodeURI(Rf_translateCharUTF8(value[i]), false); - out[i] = Rf_mkCharCE(encoded.c_str(), CE_UTF8); +[[cpp11::register]] strings encodeURI_(strings value) { + writable::strings out(value.size()); + + for (R_xlen_t i = 0; i < value.size(); i++) { + if (value[i] == NA_STRING) { + out[i] = r_string(NA_STRING); + } else { + std::string encoded = + doEncodeURI(Rf_translateCharUTF8(SEXP(value[i])), false); + out[i] = r_string(Rf_mkCharCE(encoded.c_str(), CE_UTF8)); } } return out; } -//' @rdname encodeURI -//' @export -// [[Rcpp::export]] -Rcpp::CharacterVector encodeURIComponent(Rcpp::CharacterVector value) { - Rcpp::CharacterVector out(value.size(), NA_STRING); +[[cpp11::register]] strings encodeURIComponent_(strings value) { + writable::strings out(value.size()); - for (int i = 0; i < value.size(); i++) { - if (value[i] != NA_STRING) { - std::string encoded = doEncodeURI(Rf_translateCharUTF8(value[i]), true); - out[i] = Rf_mkCharCE(encoded.c_str(), CE_UTF8); + for (R_xlen_t i = 0; i < value.size(); i++) { + if (value[i] == NA_STRING) { + out[i] = r_string(NA_STRING); + } else { + std::string encoded = + doEncodeURI(Rf_translateCharUTF8(SEXP(value[i])), true); + out[i] = r_string(Rf_mkCharCE(encoded.c_str(), CE_UTF8)); } } return out; @@ -574,31 +504,53 @@ Rcpp::CharacterVector encodeURIComponent(Rcpp::CharacterVector value) { int hexToInt(char c) { switch (c) { - case '0': return 0; - case '1': return 1; - case '2': return 2; - case '3': return 3; - case '4': return 4; - case '5': return 5; - case '6': return 6; - case '7': return 7; - case '8': return 8; - case '9': return 9; - case 'A': case 'a': return 10; - case 'B': case 'b': return 11; - case 'C': case 'c': return 12; - case 'D': case 'd': return 13; - case 'E': case 'e': return 14; - case 'F': case 'f': return 15; - default: return -1; + case '0': + return 0; + case '1': + return 1; + case '2': + return 2; + case '3': + return 3; + case '4': + return 4; + case '5': + return 5; + case '6': + return 6; + case '7': + return 7; + case '8': + return 8; + case '9': + return 9; + case 'A': + case 'a': + return 10; + case 'B': + case 'b': + return 11; + case 'C': + case 'c': + return 12; + case 'D': + case 'd': + return 13; + case 'E': + case 'e': + return 14; + case 'F': + case 'f': + return 15; + default: + return -1; } } std::string doDecodeURI(std::string value, bool component) { std::ostringstream os; - for (std::string::const_iterator it = value.begin(); - it != value.end(); - it++) { + for (std::string::const_iterator it = value.begin(); it != value.end(); + it++) { // If there aren't enough characters left for this to be a // valid escape code, just use the character and move on @@ -631,60 +583,39 @@ std::string doDecodeURI(std::string value, bool component) { return os.str(); } +[[cpp11::register]] strings decodeURI_(strings value) { + writable::strings out(value.size()); -//' @rdname encodeURI -//' @export -// [[Rcpp::export]] -Rcpp::CharacterVector decodeURI(Rcpp::CharacterVector value) { - Rcpp::CharacterVector out(value.size(), NA_STRING); - - for (int i = 0; i < value.size(); i++) { - if (value[i] != NA_STRING) { - std::string decoded = doDecodeURI(Rcpp::as(value[i]), false); - out[i] = Rf_mkCharLenCE(decoded.c_str(), decoded.length(), CE_UTF8); + for (R_xlen_t i = 0; i < value.size(); i++) { + if (value[i] == NA_STRING) { + out[i] = r_string(NA_STRING); + } else { + std::string decoded = doDecodeURI(std::string(value[i]), false); + out[i] = + r_string(Rf_mkCharLenCE(decoded.c_str(), decoded.length(), CE_UTF8)); } } return out; } -//' @rdname encodeURI -//' @export -// [[Rcpp::export]] -Rcpp::CharacterVector decodeURIComponent(Rcpp::CharacterVector value) { - Rcpp::CharacterVector out(value.size(), NA_STRING); +[[cpp11::register]] strings decodeURIComponent_(strings value) { + writable::strings out(value.size()); - for (int i = 0; i < value.size(); i++) { - if (value[i] != NA_STRING) { - std::string decoded = doDecodeURI(Rcpp::as(value[i]), true); - out[i] = Rf_mkCharLenCE(decoded.c_str(), decoded.length(), CE_UTF8); + for (R_xlen_t i = 0; i < value.size(); i++) { + if (value[i] == NA_STRING) { + out[i] = r_string(NA_STRING); + } else { + std::string decoded = doDecodeURI(std::string(value[i]), true); + out[i] = + r_string(Rf_mkCharLenCE(decoded.c_str(), decoded.length(), CE_UTF8)); } } return out; } -//' Check whether an address is IPv4 or IPv6 -//' -//' Given an IP address, this checks whether it is an IPv4 or IPv6 address. -//' -//' @param ip A single string representing an IP address. -//' -//' @return -//' For IPv4 addresses, \code{4}; for IPv6 addresses, \code{6}. If the address is -//' neither, \code{-1}. -//' -//' @examples -//' ipFamily("127.0.0.1") # 4 -//' ipFamily("500.0.0.500") # -1 -//' ipFamily("500.0.0.500") # -1 -//' -//' ipFamily("::") # 6 -//' ipFamily("::1") # 6 -//' ipFamily("fe80::1ff:fe23:4567:890a") # 6 -//' @export -// [[Rcpp::export]] -int ipFamily(const std::string& ip) { +[[cpp11::register]] int ipFamily_(const std::string &ip) { int family = ip_family(ip); if (family == AF_INET6) return 6; @@ -694,19 +625,17 @@ int ipFamily(const std::string& ip) { return -1; } - // Given a List and an external pointer to a C++ function that takes a List, // invoke the function with the List as the single argument. This also clears // the external pointer so that the C++ function can't be called again. -// [[Rcpp::export]] -void invokeCppCallback(Rcpp::List data, SEXP callback_xptr) { +[[cpp11::register]] void invokeCppCallback(SEXP data, SEXP callback_xptr) { ASSERT_MAIN_THREAD() if (TYPEOF(callback_xptr) != EXTPTRSXP) { - throw Rcpp::exception("Expected external pointer."); + stop("Expected external pointer."); } - std::function* callback_wrapper = - (std::function*)(R_ExternalPtrAddr(callback_xptr)); + std::function *callback_wrapper = + (std::function *)(R_ExternalPtrAddr(callback_xptr)); (*callback_wrapper)(data); @@ -717,30 +646,15 @@ void invokeCppCallback(Rcpp::List data, SEXP callback_xptr) { R_ClearExternalPtr(callback_xptr); } -//' Apply the value of .Random.seed to R's internal RNG state -//' -//' This function is needed in unusual cases where a C++ function calls -//' an R function which sets the value of \code{.Random.seed}. This function -//' should be called at the end of the R function to ensure that the new value -//' \code{.Random.seed} is preserved. Otherwise, Rcpp may overwrite it with a -//' previous value. -//' -//' @keywords internal -//' @export -// [[Rcpp::export]] -void getRNGState() { - GetRNGstate(); -} +[[cpp11::register]] void getRNGState_() { GetRNGstate(); } // We are given an external pointer to a // std::shared_ptr. This returns a hexadecimal string // representing the address of the WebSocketConnection (not the shared_ptr to // it!). -// -//[[Rcpp::export]] -std::string wsconn_address(SEXP external_ptr) { - Rcpp::XPtr > xptr(external_ptr); +[[cpp11::register]] std::string wsconn_address(SEXP external_ptr) { + external_pointer> xptr(external_ptr); std::ostringstream os; - os << std::hex << reinterpret_cast(xptr.get()->get()); + os << std::hex << reinterpret_cast((*xptr).get()); return os.str(); } diff --git a/src/httpuv.h b/src/httpuv.h index 097fefb43..b77098926 100644 --- a/src/httpuv.h +++ b/src/httpuv.h @@ -1,11 +1,12 @@ #ifndef HTTPUV_HPP #define HTTPUV_HPP -#include +#include "cpp11.hpp" #include +using namespace cpp11; -void invokeCppCallback(Rcpp::List data, SEXP callback_xptr); +void invokeCppCallback(SEXP data, SEXP callback_xptr); std::string doEncodeURI(std::string value, bool encodeReserved); std::string doDecodeURI(std::string value, bool component); diff --git a/src/libuv/.clang-tidy b/src/libuv/.clang-tidy new file mode 100644 index 000000000..0f912ae86 --- /dev/null +++ b/src/libuv/.clang-tidy @@ -0,0 +1,47 @@ +--- +# Configuration file for clang-tidy +# This configuration is tailored for the libuv C library project + +# Use default checks with minimal necessary disables +Checks: + # don't suggest reordering struct definitions + - -clang-analyzer-optin.performance.Padding + # allow memcpy (instead of memcpy_s) + - -clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling + # allow strcpy + - -clang-analyzer-security.insecureAPI.strcpy + # allow TBAA + - -clang-analyzer-unix.MallocSizeof + # always allow `if () statement;` instead of `if () { statement; }` + - -readability-braces-around-statements + # allow any use of case and _ conventions in names + - -readability-identifier-naming + # allow defining a function prototype without naming all arguments + - -readability-named-parameter + # allow 1u instead of 1U constants + - -readability-uppercase-literal-suffix + +# Configure specific check options +CheckOptions: + - key: performance-unnecessary-value-param.AllowedTypes + value: 'uv_.*_t' + - key: readability-braces-around-statements.ShortStatementLines + value: '2' + - key: readability-function-size.LineThreshold + value: '150' + - key: readability-function-size.StatementThreshold + value: '80' + - key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic + value: 'true' + +# Header filter - only analyze project files, not system headers +HeaderFilterRegex: '^.*/(src|include|test)/.*\.(h|c)$' + +# Format style for fix suggestions +FormatStyle: file + +# Treat warnings as errors +WarningsAsErrors: false + +# Use color, even when run through a program like ninja +UseColor: true diff --git a/src/libuv/.github/dependabot.yml b/src/libuv/.github/dependabot.yml new file mode 100644 index 000000000..700707ced --- /dev/null +++ b/src/libuv/.github/dependabot.yml @@ -0,0 +1,7 @@ +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" # Location of package manifests + schedule: + interval: "weekly" diff --git a/src/libuv/.github/stale.yml b/src/libuv/.github/stale.yml deleted file mode 100644 index 6f2fb663c..000000000 --- a/src/libuv/.github/stale.yml +++ /dev/null @@ -1,23 +0,0 @@ -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 28 -# Number of days of inactivity before a stale issue is closed -# Set to false to disable. If disabled, issues still need to be closed -# manually, but will remain marked as stale. -daysUntilClose: false -# Issues with these labels will never be considered stale -exemptLabels: - - v2 - - enhancement - - good first issue - - feature-request - - doc - - bug - - not-stale -# Label to use when marking an issue as stale -staleLabel: stale -# Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. Thank you for your contributions. -# Comment to post when closing a stale issue. Set to `false` to disable -closeComment: false diff --git a/src/libuv/.github/workflows/CI-docs.yml b/src/libuv/.github/workflows/CI-docs.yml new file mode 100644 index 000000000..32e24c72e --- /dev/null +++ b/src/libuv/.github/workflows/CI-docs.yml @@ -0,0 +1,25 @@ +name: CI-docs + +on: + pull_request: + paths: + - 'docs/**' + - '!docs/code/**' + - '.github/workflows/CI-docs.yml' + +jobs: + docs-src: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 + with: + python-version: '3.9' + cache: 'pip' # caching pip dependencies + - run: pip install -r docs/requirements.txt + - name: html + run: | + make -C docs html + - name: linkcheck + run: | + make -C docs linkcheck diff --git a/src/libuv/.github/workflows/CI-sample.yml b/src/libuv/.github/workflows/CI-sample.yml new file mode 100644 index 000000000..9e7bb8ba3 --- /dev/null +++ b/src/libuv/.github/workflows/CI-sample.yml @@ -0,0 +1,33 @@ +name: ci-sample + +on: + pull_request: + paths: + - '**' + - '!docs/**' + - '!.**' + - 'docs/code/**' + - '.github/workflows/CI-sample.yml' + push: + branches: + - v[0-9].* + - master + +jobs: + build: + strategy: + fail-fast: false + matrix: + os: [macos-latest, ubuntu-latest, windows-latest] + runs-on: ${{matrix.os}} + steps: + - uses: actions/checkout@v6 + - name: setup + run: cmake -E make_directory ${{runner.workspace}}/libuv/docs/code/build + - name: configure + # you may like use Ninja on unix-like OS, but for windows, the only easy way is to use Visual Studio if you want Ninja + run: cmake .. + working-directory: ${{runner.workspace}}/libuv/docs/code/build + - name: build + run: cmake --build . + working-directory: ${{runner.workspace}}/libuv/docs/code/build diff --git a/src/libuv/.github/workflows/CI-unix.yml b/src/libuv/.github/workflows/CI-unix.yml new file mode 100644 index 000000000..6b82ae5b5 --- /dev/null +++ b/src/libuv/.github/workflows/CI-unix.yml @@ -0,0 +1,181 @@ +name: CI-unix + +on: + pull_request: + paths: + - '**' + - '!docs/**' + - '!src/win/**' + - '!.**' + - '.github/workflows/CI-unix.yml' + push: + branches: + - v[0-9].* + - master + +jobs: + build-linux: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - name: configure + run: | + ./autogen.sh + mkdir build + (cd build && ../configure) + - name: distcheck + run: | + make -C build distcheck + + build-android: + runs-on: ubuntu-latest + env: + ANDROID_AVD_HOME: /root/.android/avd + steps: + - uses: actions/checkout@v6 + - name: Envinfo + run: npx envinfo + - name: Enable KVM + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + - name: Build and Test + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 30 + arch: x86_64 + target: google_apis + ram-size: 2048M + emulator-options: -no-audio -no-window -gpu off -no-boot-anim -netdelay none -netspeed full -writable-system -no-snapshot-save -no-snapshot-load -no-snapshot + disable-animations: true + script: | + echo "::group::Configure" + cmake -B build -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI="x86_64" -DANDROID_PLATFORM=android-30 + echo "::endgroup::" + + echo "::group::Build" + cmake --build build + + ## Correct some ld bugs that cause problems with libuv tests + wget "https://github.com/termux/termux-elf-cleaner/releases/download/v2.2.1/termux-elf-cleaner" -P build + chmod a+x build/termux-elf-cleaner + build/termux-elf-cleaner --api-level 30 ./build/uv_run_tests + build/termux-elf-cleaner --api-level 30 ./build/uv_run_tests_a + + adb shell "su 0 setenforce 0" # to allow some syscalls like link, chmod, etc. + + ## Push the build and test fixtures to the device + adb push build /data/local/tmp + adb shell mkdir /data/local/tmp/build/test + adb push test/fixtures /data/local/tmp/build/test + echo "::endgroup::" + + ## Run the tests + file build/uv_run_tests_a + adb shell "cd /data/local/tmp/build && env UV_TEST_TIMEOUT_MULTIPLIER=5 ./uv_run_tests_a" + + build-macos: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [macos-14, macos-15, macos-15-intel] + steps: + - uses: actions/checkout@v6 + - name: Envinfo + run: npx envinfo + - name: Disable Firewall + run: | + /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate + sudo defaults write /Library/Preferences/com.apple.alf globalstate -int 0 + /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate + - name: Setup + run: | + brew install ninja automake libtool + - name: Configure + run: | + cmake -B build -DBUILD_TESTING=ON -G Ninja + - name: Build + run: | + cmake --build build + ls -lh + - name: platform_output + run: | + ./build/uv_run_tests platform_output + - name: platform_output_a + run: | + ./build/uv_run_tests_a platform_output + - name: Test + if: ${{ matrix.os == 'macos-15' || matrix.os == 'macos-15-intel' }} + run: | + cd build && sudo UV_RUN_AS_ROOT=1 ctest -V + - name: Test + if: ${{ matrix.os != 'macos-15' && matrix.os != 'macos-15-intel' }} + run: | + cd build && ctest -V + - name: Autotools configure + if: always() + run: | + ./autogen.sh + mkdir build-auto + (cd build-auto && ../configure) + make -C build-auto -j4 + + build-ios: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [macos-14, macos-15] + steps: + - uses: actions/checkout@v6 + - name: Configure + run: | + cmake -B build-ios -GXcode -DCMAKE_SYSTEM_NAME:STRING=iOS -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED:BOOL=NO -DCMAKE_CONFIGURATION_TYPES:STRING=Release + - name: Build + run: | + cmake --build build-ios + ls -lh build-ios + + build-cross-qemu: + runs-on: ubuntu-24.04 + name: build-cross-qemu-${{ matrix.config.target }} + + strategy: + fail-fast: false + matrix: + config: + - {target: arm, toolchain: gcc-arm-linux-gnueabi, cc: arm-linux-gnueabi-gcc, qemu: qemu-arm } + - {target: armhf, toolchain: gcc-arm-linux-gnueabihf, cc: arm-linux-gnueabihf-gcc, qemu: qemu-arm } + - {target: aarch64, toolchain: gcc-aarch64-linux-gnu, cc: aarch64-linux-gnu-gcc, qemu: qemu-aarch64 } + - {target: riscv64, toolchain: gcc-riscv64-linux-gnu, cc: riscv64-linux-gnu-gcc, qemu: qemu-riscv64 } + - {target: ppc, toolchain: gcc-powerpc-linux-gnu, cc: powerpc-linux-gnu-gcc, qemu: qemu-ppc } + - {target: ppc64, toolchain: gcc-powerpc64-linux-gnu, cc: powerpc64-linux-gnu-gcc, qemu: qemu-ppc64 } + - {target: ppc64le, toolchain: gcc-powerpc64le-linux-gnu, cc: powerpc64le-linux-gnu-gcc, qemu: qemu-ppc64le } + - {target: s390x, toolchain: gcc-s390x-linux-gnu, cc: s390x-linux-gnu-gcc, qemu: qemu-s390x } + - {target: mips, toolchain: gcc-mips-linux-gnu, cc: mips-linux-gnu-gcc, qemu: qemu-mips } + - {target: mips64, toolchain: gcc-mips64-linux-gnuabi64, cc: mips64-linux-gnuabi64-gcc, qemu: qemu-mips64 } + - {target: mipsel, toolchain: gcc-mipsel-linux-gnu, cc: mipsel-linux-gnu-gcc, qemu: qemu-mipsel } + - {target: mips64el, toolchain: gcc-mips64el-linux-gnuabi64, cc: mips64el-linux-gnuabi64-gcc,qemu: qemu-mips64el } + - {target: arm (u64 slots), toolchain: gcc-arm-linux-gnueabi, cc: arm-linux-gnueabi-gcc, qemu: qemu-arm } + - {target: aarch64 (u64 slots), toolchain: gcc-aarch64-linux-gnu, cc: aarch64-linux-gnu-gcc, qemu: qemu-aarch64 } + - {target: ppc (u64 slots), toolchain: gcc-powerpc-linux-gnu, cc: powerpc-linux-gnu-gcc, qemu: qemu-ppc } + - {target: ppc64 (u64 slots), toolchain: gcc-powerpc64-linux-gnu, cc: powerpc64-linux-gnu-gcc, qemu: qemu-ppc64 } + + steps: + - uses: actions/checkout@v6 + - name: Install qemu and ${{ matrix.config.toolchain }} + run: | + sudo apt update + sudo apt install qemu-user qemu-user-binfmt ${{ matrix.config.toolchain }} -y + - name: Configure with ${{ matrix.config.cc }} + run: | + cmake -B build -DBUILD_TESTING=ON -DQEMU=ON -DCMAKE_C_COMPILER=${{ matrix.config.cc }} + - name: Build + run: | + cmake --build build + ls -lh build + - name: Test + run: | + ${{ matrix.config.qemu }} build/uv_run_tests_a diff --git a/src/libuv/.github/workflows/CI-win.yml b/src/libuv/.github/workflows/CI-win.yml new file mode 100644 index 000000000..7dcd7096a --- /dev/null +++ b/src/libuv/.github/workflows/CI-win.yml @@ -0,0 +1,128 @@ +name: CI-win + +on: + pull_request: + paths: + - '**' + - '!docs/**' + - '!src/unix/**' + - '!.**' + - '.github/workflows/CI-win.yml' + push: + branches: + - v[0-9].* + - master + +jobs: + build-windows: + runs-on: windows-${{ matrix.config.server }} + name: build-${{ join(matrix.config.*, '-') }} + strategy: + fail-fast: false + matrix: + config: + - {toolchain: Visual Studio 17 2022, arch: Win32, server: 2022} + - {toolchain: Visual Studio 17 2022, arch: x64, server: 2022} + - {toolchain: Visual Studio 17 2022, arch: x64, server: 2022, config: ASAN} + - {toolchain: Visual Studio 17 2022, arch: x64, server: 2022, config: UBSAN} + - {toolchain: Visual Studio 17 2022, arch: arm64, server: 2022} + - {toolchain: Visual Studio 17 2022, arch: x64, server: 2025} + steps: + - uses: actions/checkout@v6 + - name: Build + run: + cmake -S . -B build -DBUILD_TESTING=ON + -G "${{ matrix.config.toolchain }}" -A ${{ matrix.config.arch }} + ${{ matrix.config.config == 'ASAN' && '-DASAN=on -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded' || '' }} + + cmake --build build --config RelWithDebInfo + + ${{ matrix.config.config == 'ASAN' && 'Copy-Item -Path "build\\*.exe" -Destination "build\\RelWithDebInfo\\"' || '' }} + + ${{ matrix.config.config == 'ASAN' && 'Copy-Item -Path "build\\*.dll" -Destination "build\\RelWithDebInfo\\"' || '' }} + + ls -l build + + ls -l build\\RelWithDebInfo + - name: platform_output_a + if: ${{ matrix.config.arch != 'arm64' }} + shell: cmd + run: + build\\RelWithDebInfo\\uv_run_tests_a.exe platform_output + - name: platform_output + if: ${{ matrix.config.arch != 'arm64' }} + shell: cmd + run: + build\\RelWithDebInfo\\uv_run_tests.exe platform_output + - name: Test + # only valid with libuv-master with the fix for + # https://github.com/libuv/leps/blob/master/005-windows-handles-not-fd.md + if: ${{ matrix.config.config != 'ASAN' && matrix.config.arch != 'arm64' }} + shell: cmd + run: + cd build + + ctest -C RelWithDebInfo -V + - name: Test only static + if: ${{ matrix.config.config == 'ASAN' && matrix.config.arch != 'arm64' }} + shell: cmd + run: + build\\RelWithDebInfo\\uv_run_tests_a.exe + + build-mingw: + runs-on: ubuntu-latest + name: build-mingw-${{ matrix.config.arch }} + strategy: + fail-fast: false + matrix: + config: + - {arch: i686, server: 2022, libgcc: dw2 } + - {arch: x86_64, server: 2022, libgcc: seh } + steps: + - uses: actions/checkout@v6 + - name: Install mingw32 environment + run: | + sudo apt update + sudo apt install mingw-w64 ninja-build -y + - name: Build + run: | + cmake -B build -G Ninja -DHOST_ARCH=${{ matrix.config.arch }} -DBUILD_TESTING=ON -DCMAKE_TOOLCHAIN_FILE=cmake-toolchains/cross-mingw32.cmake + cmake --build build + cmake --install build --prefix "`pwd`/build/usr" + mkdir -p build/usr/test build/usr/bin + cp -av test/fixtures build/usr/test + cp -av build/uv_run_tests_a.exe build/uv_run_tests.exe build/uv_run_tests_a_no_ext build/uv_run_tests_no_ext \ + `${{ matrix.config.arch }}-w64-mingw32-gcc -print-file-name=libgcc_s_${{ matrix.config.libgcc }}-1.dll` \ + `${{ matrix.config.arch }}-w64-mingw32-gcc -print-file-name=libwinpthread-1.dll` \ + `${{ matrix.config.arch }}-w64-mingw32-gcc -print-file-name=libatomic-1.dll` \ + build/usr/bin + - name: Upload build artifacts + uses: actions/upload-artifact@v7 + with: + name: mingw-${{ matrix.config.arch }} + path: build/usr/**/* + retention-days: 2 + + test-mingw: + runs-on: windows-${{ matrix.config.server }} + name: test-mingw-${{ matrix.config.arch }} + needs: build-mingw + strategy: + fail-fast: false + matrix: + config: + - {arch: i686, server: 2022} + - {arch: x86_64, server: 2022} + steps: + - name: Download build artifacts + uses: actions/download-artifact@v8 + with: + name: mingw-${{ matrix.config.arch }} + - name: Test + shell: cmd + run: | + bin\uv_run_tests_a.exe + - name: Test + shell: cmd + run: | + bin\uv_run_tests.exe diff --git a/src/libuv/.github/workflows/CI.yml b/src/libuv/.github/workflows/CI.yml deleted file mode 100644 index c8af0199c..000000000 --- a/src/libuv/.github/workflows/CI.yml +++ /dev/null @@ -1,118 +0,0 @@ -name: CI - -on: [push, pull_request] - -jobs: - build-windows: - runs-on: windows-${{ matrix.config.server }} - name: build-${{ matrix.config.toolchain}}-${{ matrix.config.arch}} - strategy: - fail-fast: false - matrix: - config: - - {toolchain: Visual Studio 15 2017, arch: Win32, server: 2016} - - {toolchain: Visual Studio 15 2017, arch: x64, server: 2016} - - {toolchain: Visual Studio 16 2019, arch: Win32, server: 2019} - - {toolchain: Visual Studio 16 2019, arch: x64, server: 2019} - - {toolchain: Visual Studio 17 2022, arch: Win32, server: 2022} - - {toolchain: Visual Studio 17 2022, arch: x64, server: 2022} - steps: - - uses: actions/checkout@v2 - - name: Envinfo - run: npx envinfo - - name: Build - shell: cmd - run: | - mkdir -p build - cd build - cmake .. -DBUILD_TESTING=ON -G "${{ matrix.config.toolchain }}" -A ${{ matrix.config.arch }} - cmake --build . - - name: Test - shell: cmd - run: | - cd build - ctest -C Debug --output-on-failure - - build-android: - runs-on: ubuntu-latest - container: reactnativecommunity/react-native-android:2020-5-20 - steps: - - uses: actions/checkout@v2 - - name: Envinfo - run: npx envinfo - - name: Build android arm64 - # see build options you can use in https://developer.android.com/ndk/guides/cmake - run: | - mkdir build && cd build - $ANDROID_HOME/cmake/3.10.2.4988404/bin/cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_HOME/ndk/20.0.5594570/build/cmake/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-21 .. - $ANDROID_HOME/cmake/3.10.2.4988404/bin/cmake --build . - - build-macos: - runs-on: macos-10.15 - steps: - - uses: actions/checkout@v2 - - name: Envinfo - run: npx envinfo - - name: Setup - run: | - brew install ninja - - name: Build - run: | - mkdir build - cd build && cmake .. -DBUILD_TESTING=ON -G Ninja - cmake --build . - ls -lh - - name: Test - run: | - cd build && ctest -V - - build-cross-qemu: - runs-on: ubuntu-latest - name: build-cross-qemu-${{ matrix.config.target }} - - strategy: - fail-fast: false - matrix: - config: - - {target: arm, toolchain: gcc-arm-linux-gnueabi, cc: arm-linux-gnueabi-gcc, qemu: qemu-arm-static } - - {target: armhf, toolchain: gcc-arm-linux-gnueabihf, cc: arm-linux-gnueabihf-gcc, qemu: qemu-arm-static } - - {target: aarch64, toolchain: gcc-aarch64-linux-gnu, cc: aarch64-linux-gnu-gcc, qemu: qemu-aarch64-static } - - {target: riscv64, toolchain: gcc-riscv64-linux-gnu, cc: riscv64-linux-gnu-gcc, qemu: qemu-riscv64-static } - - {target: ppc, toolchain: gcc-powerpc-linux-gnu, cc: powerpc-linux-gnu-gcc, qemu: qemu-ppc-static } - - {target: ppc64, toolchain: gcc-powerpc64-linux-gnu, cc: powerpc64-linux-gnu-gcc, qemu: qemu-ppc64-static } - - {target: ppc64le, toolchain: gcc-powerpc64le-linux-gnu, cc: powerpc64le-linux-gnu-gcc, qemu: qemu-ppc64le-static } - - {target: s390x, toolchain: gcc-s390x-linux-gnu, cc: s390x-linux-gnu-gcc, qemu: qemu-s390x-static } - - {target: mips, toolchain: gcc-mips-linux-gnu, cc: mips-linux-gnu-gcc, qemu: qemu-mips-static } - - {target: mips64, toolchain: gcc-mips64-linux-gnuabi64, cc: mips64-linux-gnuabi64-gcc, qemu: qemu-mips64-static } - - {target: mipsel, toolchain: gcc-mipsel-linux-gnu, cc: mipsel-linux-gnu-gcc, qemu: qemu-mipsel-static } - - {target: mips64el,toolchain: gcc-mips64el-linux-gnuabi64, cc: mips64el-linux-gnuabi64-gcc,qemu: qemu-mips64el-static } - - {target: alpha, toolchain: gcc-alpha-linux-gnu, cc: alpha-linux-gnu-gcc, qemu: qemu-alpha-static } - - {target: arm (u64 slots), toolchain: gcc-arm-linux-gnueabi, cc: arm-linux-gnueabi-gcc, qemu: qemu-arm-static} - - {target: aarch64 (u64 slots), toolchain: gcc-aarch64-linux-gnu, cc: aarch64-linux-gnu-gcc, qemu: qemu-aarch64-static} - - {target: ppc (u64 slots), toolchain: gcc-powerpc-linux-gnu, cc: powerpc-linux-gnu-gcc, qemu: qemu-ppc-static} - - {target: ppc64 (u64 slots), toolchain: gcc-powerpc64-linux-gnu, cc: powerpc64-linux-gnu-gcc, qemu: qemu-ppc64-static} - - steps: - - uses: actions/checkout@v2 - - name: Install QEMU - # this ensure install latest qemu on ubuntu, apt get version is old - env: - QEMU_SRC: "http://archive.ubuntu.com/ubuntu/pool/universe/q/qemu" - QEMU_VER: "qemu-user-static_4\\.2-.*_amd64.deb$" - run: | - DEB=`curl -s $QEMU_SRC/ | grep -o -E 'href="([^"#]+)"' | cut -d'"' -f2 | grep $QEMU_VER | tail -1` - wget $QEMU_SRC/$DEB - sudo dpkg -i $DEB - - name: Install ${{ matrix.config.toolchain }} - run: | - sudo apt update - sudo apt install ${{ matrix.config.toolchain }} -y - - name: Build - run: | - mkdir build - cd build && cmake .. -DBUILD_TESTING=ON -DQEMU=ON -DCMAKE_C_COMPILER=${{ matrix.config.cc }} - cmake --build . - ls -lh - - name: Test - run: | - ${{ matrix.config.qemu }} build/uv_run_tests_a diff --git a/src/libuv/.github/workflows/sanitizer.yml b/src/libuv/.github/workflows/sanitizer.yml index c0a54b282..6c84a9f15 100644 --- a/src/libuv/.github/workflows/sanitizer.yml +++ b/src/libuv/.github/workflows/sanitizer.yml @@ -1,26 +1,104 @@ name: Sanitizer checks -on: [push, pull_request] +on: + pull_request: + paths: + - '**' + - '!docs/**' + - '!.**' + - '.github/workflows/sanitizer.yml' + push: + branches: + - v[0-9].* + - master jobs: - sanitizers: - runs-on: ubuntu-latest + sanitizers-linux: + runs-on: ubuntu-22.04 + strategy: + matrix: + config: + - name: ASAN + flags: -DASAN=ON -DCMAKE_BUILD_TYPE=Debug + - name: MSAN + flags: -DMSAN=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang + - name: TSAN + flags: -DTSAN=ON -DCMAKE_BUILD_TYPE=Release + - name: UBSAN + flags: -DUBSAN=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 - name: Setup run: | sudo apt-get install ninja-build - name: Envinfo run: npx envinfo - - name: TSAN - run: | - mkdir build-tsan - (cd build-tsan && cmake .. -G Ninja -DBUILD_TESTING=ON -DTSAN=ON -DCMAKE_BUILD_TYPE=Release) - cmake --build build-tsan - ./build-tsan/uv_run_tests_a || true # currently permit failures - - name: ASAN - run: | - mkdir build-asan - (cd build-asan && cmake .. -G Ninja -DBUILD_TESTING=ON -DASAN=ON -DCMAKE_BUILD_TYPE=Debug) - cmake --build build-asan - ./build-asan/uv_run_tests_a + + # [AM]SAN fail on newer kernels due to a bigger PIE slide + - name: Disable ASLR + run: | + sudo sysctl -w kernel.randomize_va_space=0 + + - name: Build ${{ matrix.config.name }} + run: | + cmake -B build -G Ninja -DBUILD_TESTING=ON ${{ matrix.config.flags }} + cmake --build build + + - name: Test ${{ matrix.config.name }} + run: | + # Note: path must be absolute because some tests chdir. + # TSan exits with an error when it can't find the file. + if [ "${{ matrix.config.name }}" = "TSAN" ]; then + env TSAN_OPTIONS="suppressions=$PWD/tsansupp.txt" ./build/uv_run_tests_a + else + ./build/uv_run_tests_a + fi + + sanitizers-macos: + runs-on: macos-14 + strategy: + matrix: + config: + - name: ASAN + flags: -DASAN=ON -DCMAKE_BUILD_TYPE=Debug + - name: TSAN + flags: -DTSAN=ON -DCMAKE_BUILD_TYPE=Release + - name: UBSAN + flags: -DUBSAN=ON -DCMAKE_BUILD_TYPE=Debug + steps: + - uses: actions/checkout@v6 + + - name: Envinfo + run: npx envinfo + + - name: Build ${{ matrix.config.name }} + run: | + cmake -B build -DBUILD_TESTING=ON ${{ matrix.config.flags }} + cmake --build build + - name: Test ${{ matrix.config.name }} + run: ./build/uv_run_tests_a + + sanitizers-windows: + runs-on: windows-2022 + steps: + - uses: actions/checkout@v6 + - name: Setup + run: | + choco install ninja + + # Note: clang shipped with VS2022 has an issue where the UBSAN runtime doesn't link. + - name: Install LLVM and Clang + uses: KyleMayes/install-llvm-action@v2 + with: + version: "17" + + - name: Envinfo + run: npx envinfo + + - name: UBSAN Build + run: | + cmake -B build-ubsan -G Ninja -DBUILD_TESTING=ON -DUBSAN=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang + cmake --build build-ubsan + - name: UBSAN Test + run: | + ./build-ubsan/uv_run_tests_a diff --git a/src/libuv/.gitignore b/src/libuv/.gitignore index 7eb49322a..6d396efb4 100644 --- a/src/libuv/.gitignore +++ b/src/libuv/.gitignore @@ -7,9 +7,11 @@ *.sdf *.suo .vs/ +.vscode/ *.VC.db *.VC.opendb core +.cache vgcore.* .buildstamp .dirstamp @@ -74,3 +76,5 @@ cmake-build-debug/ # make dist output libuv-*.tar.* +/dist.libuv.org/ +/libuv-release-tool/ diff --git a/src/libuv/.mailmap b/src/libuv/.mailmap index b23377c61..b8adf7b6a 100644 --- a/src/libuv/.mailmap +++ b/src/libuv/.mailmap @@ -4,6 +4,7 @@ Aaron Bieber Alan Gutierrez Andrius Bentkus Andy Fiddaman +Andy Pan Bert Belder Bert Belder Bert Belder @@ -18,6 +19,7 @@ David Carlier Devchandra Meetei Leishangthem Fedor Indutny Frank Denis +Hüseyin Açacak <110401522+huseyinacacak-janea@users.noreply.github.com> Imran Iqbal Isaac Z. Schlueter Jason Williams @@ -25,10 +27,13 @@ Jesse Gorzinski Jesse Gorzinski Juan José Arboleda Justin Venus +Keno Fischer Keno Fischer Keno Fischer +Lawrence Stubbs Leith Bade Leonard Hecker +Lewis Russell Maciej Małecki Marc Schlaich Michael @@ -36,9 +41,11 @@ Michael Neumann Michael Penick Nicholas Vavilov Nick Logan +Olivier Valentin Rasmus Christian Pedersen Rasmus Christian Pedersen -Richard Lau +Richard Lau +Richard Lau Robert Mustacchi Ryan Dahl Ryan Emery @@ -46,7 +53,8 @@ Sakthipriyan Vairamani Sam Roberts San-Tai Hsu Santiago Gimeno -Saúl Ibarra Corretgé +Saúl Ibarra Corretgé +Saúl Ibarra Corretgé Saúl Ibarra Corretgé Shigeki Ohtsu Shuowang (Wayne) Zhang @@ -60,5 +68,7 @@ gengjiawen jBarz jBarz ptlomholt +theanarkh <2923878201@qq.com> tjarlama <59913901+tjarlama@users.noreply.github.com> +ywave620 <60539365+ywave620@users.noreply.github.com> zlargon diff --git a/src/libuv/.readthedocs.yaml b/src/libuv/.readthedocs.yaml index e53b9f3e8..5290ec33e 100644 --- a/src/libuv/.readthedocs.yaml +++ b/src/libuv/.readthedocs.yaml @@ -2,10 +2,14 @@ version: 2 sphinx: builder: html - configuration: null + configuration: docs/src/conf.py fail_on_warning: false +build: + os: "ubuntu-22.04" + tools: + python: "3.9" + python: - version: 3.8 install: - requirements: docs/requirements.txt diff --git a/src/libuv/AUTHORS b/src/libuv/AUTHORS index a18d09668..c8def1535 100644 --- a/src/libuv/AUTHORS +++ b/src/libuv/AUTHORS @@ -210,7 +210,7 @@ guworks RossBencina Roger A. Light chenttuuvv -Richard Lau +Richard Lau ronkorving Corbin Simpson Zachary Hamm @@ -496,3 +496,141 @@ Jesper Storm Bache Campbell He Andrey Hohutkin deal +David Machaj <46852402+dmachaj@users.noreply.github.com> +Jessica Clarke +Jeremy Rose +woclass +Luca Adrian L +WenTao Ou +jonilaitinen +UMU +Paul Evans +wyckster +Vittore F. Scolari +roflcopter4 <15476346+roflcopter4@users.noreply.github.com> +V-for-Vasili +Denny C. Dai +Hannah Shi +tuftedocelot +blogdaren +chucksilvers +Sergey Fedorov +theanarkh <2923878201@qq.com> +Samuel Cabrero +自发对称破缺 <429839446@qq.com> +Luan Devecchi +Steven Schveighoffer +number201724 +Daniel +Christian Clason +ywave620 +jensbjorgensen +daomingq +Qix +Edward Humes <29870961+aurxenon@users.noreply.github.com> +Tim Besard +Sergey Rubanov +Stefan Stojanovic +Zvicii +dundargoc <33953936+dundargoc@users.noreply.github.com> +Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com> +panran <310762957@qq.com> +Tamás Bálint Misius +Bruno Passeri +Jason Zhang +Lewis Russell +sivadeilra +cui fliter +Mohammed Keyvanzadeh +Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> +Stefan Karpinski +liuxiang88 <94350585+liuxiang88@users.noreply.github.com> +Jeffrey H. Johnson +Abdirahim Musse <33973272+abmusse@users.noreply.github.com> +小明 <7737673+caobug@users.noreply.github.com> +Shuduo Sang +Keith Winstein +michalbiesek +Alois Klink +SmorkalovG +Pleuvens +jolai <58589285+laijonathan@users.noreply.github.com> +Julien Roncaglia +prubel +Per Allansson <65364157+per-allansson@users.noreply.github.com> +Matheus Izvekov +Christian Heimlich +Hao Hu <33607772+hhu8@users.noreply.github.com> +matoro <12038583+matoro@users.noreply.github.com> +Bo Anderson +Ardi Nugraha <33378542+ardi-nugraha@users.noreply.github.com> +Anton Bachin +Trevor Flynn +Andy Pan +Viacheslav Muravyev +Anthony Alayo +Thomas Walter <31201229+waltoss@users.noreply.github.com> +hiiizxf <385122613@qq.com> +Geddy +Farzin Monsef +tgolang <154592711+tgolang@users.noreply.github.com> +josedelinux +Hüseyin Açacak <110401522+huseyinacacak-janea@users.noreply.github.com> +Uilian Ries +Olivier Valentin +郑苏波 (Super Zheng) +zeertzjq +Ian Butterworth +握猫猫 <164346864@qq.com> +Zuohui Yang <274048862@qq.com> +Edigleysson Silva (Edy) +Raihaan Shouhell +Rialbat +Adam +Poul T Lomholt +Thad House +Julian A Avar C <28635807+julian-a-avar-c@users.noreply.github.com> +amcgoogan <105525867+amcgoogan@users.noreply.github.com> +Rafael Gonzaga +Morten Engelhardt Olsen +Andrey +Julio Jordán +Jinho Jang +Velikiy Kirill +rainlow <37818892+rainlow@users.noreply.github.com> +Paolo Insogna +Robert Nagy +mugitya03 +Itay Bookstein +crupest +AE1020 <68134252+AE1020@users.noreply.github.com> +dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> +jhnh204 <51738134+jhnh204@users.noreply.github.com> +chemodax <53048645+chemodax@users.noreply.github.com> +Deep C +Luca Saccarola <96259932+saccarosium@users.noreply.github.com> +wisemanny <118970226+wisemanny@users.noreply.github.com> +Sean Dewar <6256228+seandewar@users.noreply.github.com> +Lawrence Stubbs +Emily +Anton Kirilov +Savas Sahin +m0cg +moe li +green-br +Christian Guinard <28689358+christiangnrd@users.noreply.github.com> +Gang Zhuo +Ayush Kumar +Ambuj Vashistha +Bart Louwers +Kartik Puri <84309847+BOXER78@users.noreply.github.com> +Oblivionsage <126214490+Oblivionsage@users.noreply.github.com> +Cody Tapscott <84105208+topolarity@users.noreply.github.com> +tobil4sk +Han Gao +mischief +StefanStojanovic +Przemysław Sobala +Quaylyn Rimer <31830590+killerdevildog@users.noreply.github.com> +Yasser Nascimento +Rudi Heitbaum diff --git a/src/libuv/CMakeLists.txt b/src/libuv/CMakeLists.txt index b41e5462d..9b38b5553 100644 --- a/src/libuv/CMakeLists.txt +++ b/src/libuv/CMakeLists.txt @@ -1,8 +1,13 @@ -cmake_minimum_required(VERSION 3.4) -project(libuv LANGUAGES C) +cmake_minimum_required(VERSION 3.10) -cmake_policy(SET CMP0057 NEW) # Enable IN_LIST operator -cmake_policy(SET CMP0064 NEW) # Support if (TEST) operator +if(POLICY CMP0091) + cmake_policy(SET CMP0091 NEW) # Enable MSVC_RUNTIME_LIBRARY setting +endif() +if(POLICY CMP0092) + cmake_policy(SET CMP0092 NEW) # disable /W3 warning, if possible +endif() + +project(libuv LANGUAGES C) list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") @@ -15,11 +20,16 @@ include(CTest) set(CMAKE_C_VISIBILITY_PRESET hidden) set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS ON) -set(CMAKE_C_STANDARD 90) +set(CMAKE_C_STANDARD 11) + +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + + +option(LIBUV_BUILD_SHARED "Build shared lib" ON) cmake_dependent_option(LIBUV_BUILD_TESTS "Build the unit tests when BUILD_TESTING is enabled and we are the root project" ON - "BUILD_TESTING;CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR" OFF) + "BUILD_TESTING;LIBUV_BUILD_SHARED;CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR" OFF) cmake_dependent_option(LIBUV_BUILD_BENCH "Build the benchmarks when building unit tests and we are the root project" ON "LIBUV_BUILD_TESTS" OFF) @@ -27,28 +37,66 @@ cmake_dependent_option(LIBUV_BUILD_BENCH # Qemu Build option(QEMU "build for qemu" OFF) if(QEMU) - add_definitions(-D__QEMU__=1) + list(APPEND uv_defines __QEMU__=1) endif() +# Note: these are mutually exclusive. option(ASAN "Enable AddressSanitizer (ASan)" OFF) +option(MSAN "Enable MemorySanitizer (MSan)" OFF) option(TSAN "Enable ThreadSanitizer (TSan)" OFF) +option(UBSAN "Enable UndefinedBehaviorSanitizer (UBSan)" OFF) -if((ASAN OR TSAN) AND NOT (CMAKE_C_COMPILER_ID MATCHES "AppleClang|GNU|Clang")) - message(SEND_ERROR "Sanitizer support requires clang or gcc. Try again with -DCMAKE_C_COMPILER.") +if(MSAN AND NOT CMAKE_C_COMPILER_ID MATCHES "AppleClang|Clang") + message(SEND_ERROR "MemorySanitizer requires clang. Try again with -DCMAKE_C_COMPILER=clang") endif() if(ASAN) - add_definitions(-D__ASAN__=1) - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=address") - set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=address") - set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=address") + list(APPEND uv_defines __ASAN__=1) + if(CMAKE_C_COMPILER_ID MATCHES "AppleClang|GNU|Clang") + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=address") + set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=address") + set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=address") + elseif(MSVC) + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /fsanitize=address") + else() + message(SEND_ERROR "AddressSanitizer support requires clang, gcc, or msvc. Try again with -DCMAKE_C_COMPILER.") + endif() +endif() + +if(MSAN) + list(APPEND uv_defines __MSAN__=1) + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=memory") + set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=memory") + set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=memory") endif() if(TSAN) - add_definitions(-D__TSAN__=1) - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=thread") - set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=thread") - set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=thread") + list(APPEND uv_defines __TSAN__=1) + if(CMAKE_C_COMPILER_ID MATCHES "AppleClang|GNU|Clang") + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=thread") + set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=thread") + set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=thread") + else() + message(SEND_ERROR "ThreadSanitizer support requires clang or gcc. Try again with -DCMAKE_C_COMPILER.") + endif() +endif() + +if(UBSAN) + cmake_minimum_required(VERSION 3.13) + list(APPEND uv_defines __UBSAN__=1) + if(CMAKE_C_COMPILER_ID MATCHES "AppleClang|GNU|Clang") + add_compile_options("-fsanitize=undefined" "-fno-sanitize-recover=undefined") + if (NOT WIN32) + add_link_options("-fsanitize=undefined") + endif() + if(MSVC) + add_compile_options("/Oy-") + else() + add_compile_options("-fno-omit-frame-pointer") + endif() + else() + message(SEND_ERROR "UndefinedBehaviorSanitizer support requires clang or gcc. Try again with -DCMAKE_C_COMPILER.") + endif() endif() # Compiler check @@ -119,12 +167,19 @@ list(APPEND uv_cflags ${lint-utf8-msvc} ) check_c_compiler_flag(-fno-strict-aliasing UV_F_STRICT_ALIASING) list(APPEND uv_cflags $<$:-fno-strict-aliasing>) +if (MSVC) + # Error on calling undeclared functions. + list(APPEND uv_cflags "/we4013") +endif() + set(uv_sources src/fs-poll.c src/idna.c src/inet.c src/random.c src/strscpy.c + src/strtok.c + src/thread-common.c src/threadpool.c src/timer.c src/uv-common.c @@ -132,14 +187,17 @@ set(uv_sources src/version.c) if(WIN32) - list(APPEND uv_defines WIN32_LEAN_AND_MEAN _WIN32_WINNT=0x0602) + list(APPEND uv_defines WIN32_LEAN_AND_MEAN _WIN32_WINNT=0x0A00 _CRT_DECLARE_NONSTDC_NAMES=0) list(APPEND uv_libraries psapi user32 advapi32 iphlpapi userenv - ws2_32) + ws2_32 + dbghelp + ole32 + shell32) list(APPEND uv_sources src/win/async.c src/win/core.c @@ -215,16 +273,11 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Android") list(APPEND uv_defines _GNU_SOURCE) list(APPEND uv_libraries dl) list(APPEND uv_sources - src/unix/android-ifaddrs.c - src/unix/linux-core.c - src/unix/linux-inotify.c - src/unix/linux-syscalls.c + src/unix/linux.c src/unix/procfs-exepath.c - src/unix/pthread-fixes.c src/unix/random-getentropy.c src/unix/random-getrandom.c - src/unix/random-sysctl-linux.c - src/unix/epoll.c) + src/unix/random-sysctl-linux.c) endif() if(APPLE OR CMAKE_SYSTEM_NAME MATCHES "Android|Linux") @@ -259,17 +312,26 @@ if(APPLE) src/unix/fsevents.c) endif() +if(CMAKE_SYSTEM_NAME STREQUAL "GNU") + list(APPEND uv_defines _GNU_SOURCE _POSIX_C_SOURCE=200112 _XOPEN_SOURCE=500) + list(APPEND uv_libraries dl) + list(APPEND uv_sources + src/unix/bsd-ifaddrs.c + src/unix/no-fsevents.c + src/unix/no-proctitle.c + src/unix/posix-hrtime.c + src/unix/posix-poll.c + src/unix/hurd.c) +endif() + if(CMAKE_SYSTEM_NAME STREQUAL "Linux") list(APPEND uv_defines _GNU_SOURCE _POSIX_C_SOURCE=200112) list(APPEND uv_libraries dl rt) list(APPEND uv_sources - src/unix/linux-core.c - src/unix/linux-inotify.c - src/unix/linux-syscalls.c + src/unix/linux.c src/unix/procfs-exepath.c src/unix/random-getrandom.c - src/unix/random-sysctl-linux.c - src/unix/epoll.c) + src/unix/random-sysctl-linux.c) endif() if(CMAKE_SYSTEM_NAME STREQUAL "NetBSD") @@ -300,7 +362,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "OS390") list(APPEND uv_defines _XOPEN_SOURCE=600) list(APPEND uv_defines _XOPEN_SOURCE_EXTENDED) list(APPEND uv_sources - src/unix/pthread-fixes.c src/unix/os390.c src/unix/os390-syscalls.c src/unix/os390-proctitle.c) @@ -338,6 +399,10 @@ if(CMAKE_SYSTEM_NAME STREQUAL "OS400") endif() if(CMAKE_SYSTEM_NAME STREQUAL "SunOS") + if(CMAKE_SYSTEM_VERSION STREQUAL "5.10") + list(APPEND uv_defines SUNOS_NO_IFADDRS) + list(APPEND uv_libraries rt) + endif() list(APPEND uv_defines __EXTENSIONS__ _XOPEN_SOURCE=500 _REENTRANT) list(APPEND uv_libraries kstat nsl sendfile socket) list(APPEND uv_sources @@ -370,27 +435,45 @@ endif() if(APPLE OR CMAKE_SYSTEM_NAME MATCHES "DragonFly|FreeBSD|Linux|NetBSD|OpenBSD") list(APPEND uv_test_libraries util) + list(APPEND uv_libraries m) endif() -add_library(uv SHARED ${uv_sources}) -target_compile_definitions(uv - INTERFACE - USING_UV_SHARED=1 - PRIVATE - BUILDING_UV_SHARED=1 - ${uv_defines}) -target_compile_options(uv PRIVATE ${uv_cflags}) -target_include_directories(uv - PUBLIC - $ - $ - PRIVATE - $) -if(CMAKE_SYSTEM_NAME STREQUAL "OS390") - target_include_directories(uv PUBLIC $) - set_target_properties(uv PROPERTIES LINKER_LANGUAGE CXX) +if(CYGWIN OR MSYS) + list(APPEND uv_defines _GNU_SOURCE) + list(APPEND uv_sources + src/unix/cygwin.c + src/unix/bsd-ifaddrs.c + src/unix/no-fsevents.c + src/unix/no-proctitle.c + src/unix/posix-hrtime.c + src/unix/posix-poll.c + src/unix/procfs-exepath.c + src/unix/sysinfo-loadavg.c + src/unix/sysinfo-memory.c) +endif() + +if(LIBUV_BUILD_SHARED) + add_library(uv SHARED ${uv_sources}) + target_compile_definitions(uv + INTERFACE + USING_UV_SHARED=1 + PRIVATE + BUILDING_UV_SHARED=1 + ${uv_defines}) + target_compile_options(uv PRIVATE ${uv_cflags}) + target_include_directories(uv + PUBLIC + $ + $ + PRIVATE + $) + if(CMAKE_SYSTEM_NAME STREQUAL "OS390") + target_include_directories(uv PUBLIC $) + set_target_properties(uv PROPERTIES LINKER_LANGUAGE CXX) + endif() + target_link_libraries(uv ${uv_libraries}) + set_target_properties(uv PROPERTIES OUTPUT_NAME "uv") endif() -target_link_libraries(uv ${uv_libraries}) add_library(uv_a STATIC ${uv_sources}) target_compile_definitions(uv_a PRIVATE ${uv_defines}) @@ -406,6 +489,10 @@ if(CMAKE_SYSTEM_NAME STREQUAL "OS390") set_target_properties(uv_a PROPERTIES LINKER_LANGUAGE CXX) endif() target_link_libraries(uv_a ${uv_libraries}) +set_target_properties(uv_a PROPERTIES OUTPUT_NAME "uv") +if(WIN32) + set_target_properties(uv_a PROPERTIES PREFIX "lib") +endif() if(LIBUV_BUILD_TESTS) # Small hack: use ${uv_test_sources} now to get the runner skeleton, @@ -418,6 +505,7 @@ if(LIBUV_BUILD_TESTS) test/benchmark-fs-stat.c test/benchmark-getaddrinfo.c test/benchmark-loop-count.c + test/benchmark-queue-work.c test/benchmark-million-async.c test/benchmark-million-timers.c test/benchmark-multi-accept.c @@ -447,7 +535,6 @@ if(LIBUV_BUILD_TESTS) test/test-async-null-cb.c test/test-async.c test/test-barrier.c - test/test-callback-order.c test/test-callback-stack.c test/test-close-fd.c test/test-close-order.c @@ -487,6 +574,7 @@ if(LIBUV_BUILD_TESTS) test/test-hrtime.c test/test-idle.c test/test-idna.c + test/test-iouring-pollhup.c test/test-ip4-addr.c test/test-ip6-addr.c test/test-ip-name.c @@ -497,6 +585,7 @@ if(LIBUV_BUILD_TESTS) test/test-loop-close.c test/test-loop-configure.c test/test-loop-handles.c + test/test-loop-oom.c test/test-loop-stop.c test/test-loop-time.c test/test-metrics.c @@ -546,10 +635,12 @@ if(LIBUV_BUILD_TESTS) test/test-spawn.c test/test-stdio-over-pipes.c test/test-strscpy.c + test/test-strtok.c test/test-tcp-alloc-cb-fail.c test/test-tcp-bind-error.c test/test-tcp-bind6-error.c test/test-tcp-close-accept.c + test/test-tcp-close-after-read-timeout.c test/test-tcp-close-while-connecting.c test/test-tcp-close.c test/test-tcp-close-reset.c @@ -562,9 +653,12 @@ if(LIBUV_BUILD_TESTS) test/test-tcp-oob.c test/test-tcp-open.c test/test-tcp-read-stop.c + test/test-tcp-reuseport.c test/test-tcp-read-stop-start.c + test/test-tcp-rst.c test/test-tcp-shutdown-after-write.c test/test-tcp-try-write.c + test/test-tcp-write-in-a-row.c test/test-tcp-try-write-error.c test/test-tcp-unexpected-read.c test/test-tcp-write-after-connect.c @@ -573,8 +667,11 @@ if(LIBUV_BUILD_TESTS) test/test-tcp-write-to-half-open-connection.c test/test-tcp-writealot.c test/test-test-macros.c + test/test-thread-affinity.c test/test-thread-equal.c test/test-thread.c + test/test-thread-name.c + test/test-thread-priority.c test/test-threadpool-cancel.c test/test-threadpool.c test/test-timer-again.c @@ -604,7 +701,11 @@ if(LIBUV_BUILD_TESTS) test/test-udp-send-immediate.c test/test-udp-sendmmsg-error.c test/test-udp-send-unreachable.c + test/test-udp-recv-cb-close-pollerr.c + test/test-udp-recvmsg-unreachable-error.c test/test-udp-try-send.c + test/test-udp-recv-in-a-row.c + test/test-udp-reuseport.c test/test-uname.c test/test-walk-handles.c test/test-watcher-cross-stop.c) @@ -621,6 +722,12 @@ if(LIBUV_BUILD_TESTS) set_tests_properties(uv_test PROPERTIES ENVIRONMENT "LIBPATH=${CMAKE_BINARY_DIR}:$ENV{LIBPATH}") endif() + if(WIN32) + add_custom_command(TARGET uv_run_tests POST_BUILD + COMMAND "${CMAKE_COMMAND}" -E copy + "$" + "$/uv_run_tests_no_ext") + endif() add_executable(uv_run_tests_a ${uv_test_sources} uv_win_longpath.manifest) target_compile_definitions(uv_run_tests_a PRIVATE ${uv_defines}) target_compile_options(uv_run_tests_a PRIVATE ${uv_cflags}) @@ -637,6 +744,20 @@ if(LIBUV_BUILD_TESTS) set_target_properties(uv_run_tests PROPERTIES LINKER_LANGUAGE CXX) set_target_properties(uv_run_tests_a PROPERTIES LINKER_LANGUAGE CXX) endif() + if(WIN32) + add_custom_command(TARGET uv_run_tests_a POST_BUILD + COMMAND "${CMAKE_COMMAND}" -E copy + "$" + "$/uv_run_tests_a_no_ext") + endif() + + if(QNX) + install(TARGETS uv_run_tests uv_run_tests_a uv_run_benchmarks_a + DESTINATION ${CMAKE_INSTALL_BINDIR}/libuv_tests) + + install(DIRECTORY test/fixtures + DESTINATION ${CMAKE_INSTALL_BINDIR}/libuv_tests) + endif() endif() # Now for some gibbering horrors from beyond the stars... @@ -648,30 +769,60 @@ string(REPLACE ";" " " LIBS "${LIBS}") file(STRINGS configure.ac configure_ac REGEX ^AC_INIT) string(REGEX MATCH "([0-9]+)[.][0-9]+[.][0-9]+" PACKAGE_VERSION "${configure_ac}") set(UV_VERSION_MAJOR "${CMAKE_MATCH_1}") -# The version in the filename is mirroring the behaviour of autotools. -set_target_properties(uv PROPERTIES - VERSION ${UV_VERSION_MAJOR}.0.0 - SOVERSION ${UV_VERSION_MAJOR}) + set(includedir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}) set(libdir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}) set(prefix ${CMAKE_INSTALL_PREFIX}) -configure_file(libuv.pc.in libuv.pc @ONLY) configure_file(libuv-static.pc.in libuv-static.pc @ONLY) install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR}) -install(FILES ${PROJECT_BINARY_DIR}/libuv.pc ${PROJECT_BINARY_DIR}/libuv-static.pc +install(FILES LICENSE-extra DESTINATION ${CMAKE_INSTALL_DOCDIR}) +install(FILES ${PROJECT_BINARY_DIR}/libuv-static.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) -install(TARGETS uv EXPORT libuvConfig - RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) -install(TARGETS uv_a ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -install(EXPORT libuvConfig DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libuv) +install(TARGETS uv_a EXPORT libuvConfig + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(EXPORT libuvConfig + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libuv + NAMESPACE libuv::) +write_basic_package_version_file(libuvConfigVersion.cmake + VERSION ${PACKAGE_VERSION} + COMPATIBILITY SameMajorVersion) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libuvConfigVersion.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libuv) + +if(LIBUV_BUILD_SHARED) + # The version in the filename is mirroring the behaviour of autotools. + set_target_properties(uv PROPERTIES + VERSION ${UV_VERSION_MAJOR}.0.0 + SOVERSION ${UV_VERSION_MAJOR}) + configure_file(libuv.pc.in libuv.pc @ONLY) + install(FILES ${PROJECT_BINARY_DIR}/libuv.pc + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + install(TARGETS uv EXPORT libuvConfig + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() if(MSVC) set(CMAKE_DEBUG_POSTFIX d) + get_filename_component(CMAKE_C_COMPILER_DIR ${CMAKE_C_COMPILER} DIRECTORY) + if(ASAN) + file(INSTALL "${CMAKE_C_COMPILER_DIR}/llvm-symbolizer.exe" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") + file(INSTALL "${CMAKE_C_COMPILER_DIR}/clang_rt.asan_dynamic-x86_64.dll" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") + file(INSTALL "${CMAKE_C_COMPILER_DIR}/clang_rt.asan_dbg_dynamic-x86_64.dll" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") + endif() endif() +if(BUILD_SHARED_LIBS) + set(LIB_SELECTED uv) +else() + set(LIB_SELECTED uv_a) +endif() + +add_library(libuv::libuv ALIAS ${LIB_SELECTED}) + message(STATUS "summary of build options: Install prefix: ${CMAKE_INSTALL_PREFIX} Target system: ${CMAKE_SYSTEM_NAME} @@ -679,3 +830,77 @@ message(STATUS "summary of build options: C compiler: ${CMAKE_C_COMPILER} (${CMAKE_C_COMPILER_ID}) CFLAGS: ${CMAKE_C_FLAGS_${_build_type}} ${CMAKE_C_FLAGS} ") + +# clang-tidy support +option(ENABLE_CLANG_TIDY "Enable clang-tidy checks" ON) +if(ENABLE_CLANG_TIDY) + find_program(CLANG_TIDY_EXE NAMES "clang-tidy") + if(CLANG_TIDY_EXE) + set(CMAKE_C_CLANG_TIDY "${CLANG_TIDY_EXE}") + message(STATUS "clang-tidy found: ${CLANG_TIDY_EXE}") + else() + set(CMAKE_C_CLANG_TIDY "clang-tidy") + message(STATUS "clang-tidy not found: install clang-tidy or set -DCLANG_TIDY_EXE to run tidy analysis on this platform") + endif() + + # Collect source files from existing targets (deduplicated) + set(ALL_SOURCE_FILES) + set(SRC_TARGETS) + set(TEST_TARGETS) + set(TIDY_TARGETS) + + # Add main library sources + list(APPEND ALL_SOURCE_FILES ${uv_sources}) + + # Add test sources if tests are enabled + if(LIBUV_BUILD_TESTS) + list(APPEND ALL_SOURCE_FILES ${uv_test_sources}) + endif() + + # Remove duplicates and non-existent files + list(REMOVE_DUPLICATES ALL_SOURCE_FILES) + + foreach(SOURCE_FILE ${ALL_SOURCE_FILES}) + # Create a clean target name + string(REPLACE "/" "-" TARGET_NAME ${SOURCE_FILE}) + string(REGEX REPLACE "\\.[^.]*$" "" TARGET_NAME ${TARGET_NAME}) + set(FULL_TARGET_NAME "tidy-${TARGET_NAME}") + + # Create individual target for this source file + add_custom_target(${FULL_TARGET_NAME} + COMMAND ${CMAKE_C_CLANG_TIDY} -p "${CMAKE_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE}" + COMMENT "Running clang-tidy on ${SOURCE_FILE}" + VERBATIM) + + # Add to appropriate folder list + if(SOURCE_FILE MATCHES "^src/") + list(APPEND SRC_TARGETS ${FULL_TARGET_NAME}) + elseif(SOURCE_FILE MATCHES "^test/") + list(APPEND TEST_TARGETS ${FULL_TARGET_NAME}) + endif() + + # Add to list of all tidy targets + list(APPEND TIDY_TARGETS ${FULL_TARGET_NAME}) + endforeach() + + # Create folder-based targets + if(SRC_TARGETS) + add_custom_target(tidy-src + COMMENT "Running clang-tidy on src files" + VERBATIM) + add_dependencies(tidy-src ${SRC_TARGETS}) + endif() + + if(TEST_TARGETS) + add_custom_target(tidy-test + COMMENT "Running clang-tidy on test files" + VERBATIM) + add_dependencies(tidy-test ${TEST_TARGETS}) + endif() + + # Create main tidy target that depends on all individual targets + add_custom_target(tidy + COMMENT "Running clang-tidy on all source files" + VERBATIM) + add_dependencies(tidy ${TIDY_TARGETS}) +endif() diff --git a/src/libuv/ChangeLog b/src/libuv/ChangeLog index ad661769a..0a4fd4b51 100644 --- a/src/libuv/ChangeLog +++ b/src/libuv/ChangeLog @@ -1,4 +1,1496 @@ -2022.01.05, Version 1.43.0 (Stable) +2026.03.06, Version 1.52.1 (Stable) + +Changes since version 1.52.0: + +* misc: add simple clang-tidy setup (Jameson Nash) + +* unix: check RLIMIT_AS and RLIMIT_DATA in uv_get_constrained_memory (Jameson + Nash) + +* win: add fs-fd-hash-inl.h to tarball (tobil4sk) + +* unix,win: support NULL loop for sync uv_getaddrinfo (Saúl Ibarra Corretgé) + +* Fix const-correctness warning in linux.c (Quaylyn Rimer) + +* build(deps): bump actions/upload-artifact from 6 to 7 (dependabot[bot]) + +* build(deps): bump actions/download-artifact from 7 to 8 (dependabot[bot]) + +* unix: fix compilation warnings with GCC 15 (Saúl Ibarra Corretgé) + +* test: remove conditionals from `uv_thread_self` usage (Yasser Nascimento) + +* unix: fix discard const (Rudi Heitbaum) + +* unix: do not cast to char variables that are const char (Rudi Heitbaum) + +* linux: fix crash if poll callback closes handle before `POLLERR` (Juan José + Arboleda) + + +2026.02.11, Version 1.52.0 (Stable), b556c0629d0fd250b5feefbc91b84c6f5e3dae48 + +Changes since version 1.51.0: + +* src: remove unused include of in timer.c (Juan José Arboleda) + +* test: skip `udp_multicast_join` if not system-wide available (Juan José + Arboleda) + +* test: remove unused include of in runner.h (Juan José Arboleda) + +* doc: don't mention UV_LOOP_ENABLE_IO_URING_SQPOLL (Poul T Lomholt) + +* unix: fix uv_thread_{get,set}priority error codes (Ryan Liptak) + +* build: dedup sanitizer jobs using matrix strategy (Juan José Arboleda) + +* doc: update ncurses link (Saúl Ibarra Corretgé) + +* tcp: support customizing TCP_KEEPINTVL and TCP_KEEPCNT (Andy Pan) + +* linux: fix -Wformat-truncation warning (Ben Noordhuis) + +* src: fix nullptr dereference in uv__print_handles (jhnh204) + +* build: make automake link libm on bsd-likes (Juan José Arboleda) + +* include: remove unused macro undefs from uv.h (Juan José Arboleda) + +* win: handle empty string in uv_get_process_title (Ben Noordhuis) + +* win: use WSA_FLAG_NO_HANDLE_INHERIT in WSASocketW (chemodax) + +* unix: handle possible `ENOMEM` in `uv__tcp_listen` (Juan José Arboleda) + +* win: replace GetModuleHandleA with GetModuleHandleW (chemodax) + +* qnx: add qnx 8 support (Deep C) + +* mailmap: update email address for Richard Lau (Richard Lau) + +* win: remove obsolete comment (Ben Noordhuis) + +* unix: handle possible `ENOMEM` in `uv__pipe_listen` (Juan José Arboleda) + +* unix: deduplicate uv_free_interface_addresses (Juan José Arboleda) + +* test: pass correct string type to GetModuleHandleW (Ben Noordhuis) + +* win: remove unnecessary inlining from fs.c (Ben Noordhuis) + +* win: move uv__process_reqs to core.c (Ben Noordhuis) + +* win: remove unnecessary inlining from header file (Ben Noordhuis) + +* test: skip slow process title test on asan+macos (Ben Noordhuis) + +* win: dissolve atomicops-inl.h (Ben Noordhuis) + +* win: move uv__process_endgames to core.c (Ben Noordhuis) + +* win: move uv__insert_pending_req to core.c (Ben Noordhuis) + +* win: replace inline asm with compiler intrinsic (Ben Noordhuis) + +* win,pipe: minimal fix to uv_read_cb->uv_read_start recursion bug (Jameson + Nash) + +* doc: make requirements work with newer python (Luca Saccarola) + +* win: fix -Wcast-function-type warnings in winapi.c (Ben Noordhuis) + +* win: fix -Wsign-compare warnings (Ben Noordhuis) + +* test: simplify ASSERT_OK macro for static analysis (Jameson Nash) + +* win: add arm64 machine type to uv_os_uname (wisemanny) + +* win: use ProcessPrng (Ben Noordhuis) + +* win: work around wine bug in uv_fs_{unlink,rmdir} (Keno Fischer) + +* doc: fix return value for uv_pipe_connect2 (Sean Dewar) + +* unix: fix udp sendmmsg fallback path (Ben Noordhuis) + +* doc: add binding `C framework` uv_coroutine to LINKS.md (Lawrence Stubbs) + +* linux: handle cgroups cpu.max with limit < period (Ben Noordhuis) + +* doc: update link, repo name change to c-asio (Lawrence Stubbs) + +* build(deps): bump actions/download-artifact from 4 to 5 (dependabot[bot]) + +* doc: remove nodeuv from LINKS.md (Ben Noordhuis) + +* test: use relative paths for pipes and unix sockets (Emily) + +* build(deps): bump actions/checkout from 4 to 5 (dependabot[bot]) + +* unix: improve uv__cpu_relax() on arm (Anton Kirilov) + +* win: fix compiler warnings (Savas Sahin) + +* unix: replace uv__io_t callback pointer with enum (Ben Noordhuis) + +* test,win: fix -Wunused-function warnings (Ben Noordhuis) + +* test,win: fix -Wcast-function-type warnings (Ben Noordhuis) + +* test,win: fix -Wattributes warnings (Ben Noordhuis) + +* win: shrink fd hash table from 2592k to 162k (Ben Noordhuis) + +* unix: fix build on the bsds (Ben Noordhuis) + +* netbsd: fix thread affinity compilation error (Santiago Gimeno) + +* unix: remove UV__SIGNAL_EVENT dispatch from uv__io_cb (Juan José Arboleda) + +* build: add -Werror when testing -Wflags (Jameson Nash) + +* win: fix path size calculation (Ben Noordhuis) + +* doc: correct uv_cancel return value (m0cg) + +* unix,win: look up UV_THREADPOOL_SIZE with uv_os_getenv (moe li) + +* build(deps): bump actions/setup-python from 5 to 6 (dependabot[bot]) + +* unix: fix uv__signal_loop_cleanup call in init (Jameson Nash) + +* aix: fix nullptr check in uv__skip_lines (Ben Noordhuis) + +* unix: add neoverse-v2 cpu identifier (green-br) + +* test: make `thread_priority` robust against system default nice levels + + (Juan José Arboleda) + +* unix,win: implement `uv_udp_open_ex` (Juan José Arboleda) + +* aix: add stub function to satisfy linker (Ben Noordhuis) + +* linux: add MSG_ERRQUEUE ipv4/ipv6 udp support (Juan José Arboleda) + +* ibmi: add stub function to satisfy linker (Ben Noordhuis) + +* darwin: better heuristic for available memory (Christian Guinard) + +* build(deps): bump actions/download-artifact from 5 to 6 (dependabot[bot]) + +* build(deps): bump actions/upload-artifact from 4 to 5 (dependabot[bot]) + +* unix: fix use of uninitialized variable (Ben Noordhuis) + +* doc: fix documentation for uv_utf16_to_wtf8() function (Gang Zhuo) + +* win: rename minimal_windows10_version1709() for libuv's convention (Andy Pan) + +* build(deps): bump actions/checkout from 5 to 6 (dependabot[bot]) + +* win: fix race in uv_fs_event_start() (Ben Noordhuis) + +* unix: support nanosecond resolution in uv__fs_to_timespec (Ayush Kumar) + +* win: handle sshfs-win quirk in uv_fs_readdir() (Ben Noordhuis) + +* unix,win: fix leak in uv_os_environ error path (Ambuj Vashistha) + +* test: add macros to run fs tests with io_uring (Santiago Gimeno) + +* linux: fix uv_fs_ftruncate io_uring implementation (Santiago Gimeno) + +* Update OS X reference to macOS in README (Bart Louwers) + +* ci: update macos runner images (Ben Noordhuis) + +* doc: add example usage for uv_sleep (Kartik Puri) + +* ci: add macos-15-intel to matrix (Ben Noordhuis) + +* win: Optimize file/directory delete. (chemodax) + +* build(deps): bump actions/download-artifact from 6 to 7 (dependabot[bot]) + +* build(deps): bump actions/upload-artifact from 5 to 6 (dependabot[bot]) + +* test: run more fs tests using io_uring too (Santiago Gimeno) + +* doc: add handle and request usage guidelines (Ben Noordhuis) + +* unix: remove handle from queue on uv_spawn() error (Oblivionsage) + +* doc: remove hp-ux from supported platforms list (Ben Noordhuis) + +* unix,win: add f_frsize field to uv_statfs_t (Ben Noordhuis) + +* test: fix -Wuninitialized-const-pointer warning (Ben Noordhuis) + +* test: fix -Wstringop-overread warning (Ben Noordhuis) + +* test: make pty test work under asan (Ben Noordhuis) + +* win: readlink support for IO_REPARSE_TAG_LX_SYMLINK (Cody Tapscott) + +* unix: fix partial read handling after POLLHUP (Ben Noordhuis) + +* unix: factor out common i/o poll code (Ben Noordhuis) + +* test: disable udp_reuseport test under qemu (Ben Noordhuis) + +* test: disable tcp_reuseport test under qemu (Ben Noordhuis) + +* unix,win: check nbufs argument is reasonable (Ben Noordhuis) + +* win: refactor to support large statfs blocks (Santiago Gimeno) + +* unix: remove sunpro references (Ben Noordhuis) + +* idna: fix assert in wtf8_to_utf16 conversion (tobil4sk) + +* aix,ibmi: fix test suite build breakage (Ben Noordhuis) + +* unix: implement cpu_relax() for riscv64 (Han Gao) + +* doc: add setuid warning to uv_exepath (Ben Noordhuis) + +* unix: make OpenBSD uv_exepath work (mischief) + +* win: fix uv_get_process_title (StefanStojanovic) + +* unix,udp: fix -Wgnu-folding-constant warning (Saúl Ibarra Corretgé) + +* cmake: add libuvConfigVersion.cmake file (Przemysław Sobala) + + +2025.04.25, Version 1.51.0 (Stable), 5152db2cbfeb5582e9c27c5ea1dba2cd9e10759b + +Changes since version 1.50.0: + +* win: fix leak in uv_os_tmpdir (Saúl Ibarra Corretgé) + +* docs: fix RTD build (Saúl Ibarra Corretgé) + +* win: lazy-load [GS]etThreadDescription symbols (Ben Noordhuis) + +* linux: try preadv64/pwritev64 before preadv/pwritev (Ben Noordhuis) + +* win: check cwd length before spawning a child process (Morten Engelhardt + Olsen) + +* macos,bsd: handle missing /dev/null in chroot env (Andrey) + +* doc: fix README link text (Julio Jordán) + +* win: fix order of FILE_STAT_BASIC_INFORMATION struct fields (Hüseyin Açacak) + +* macos: increase child process stdio buffer size (Jinho Jang) + +* doc: add C3 bindings to LINKS.md (Velikiy Kirill) + +* unix: remove unnecessary errno.h include in poll.c (Juan José Arboleda) + +* win: fix the inconsistency in volume serial number (Hüseyin Açacak) + +* unix: add thread affinity support on openharmony (rainlow) + +* unix: enable getrusage for SunOS (Paolo Insogna) + +* unix,win: accept NAN/INFINITY as file timestamps (Ben Noordhuis) + +* win: add ENABLE_VIRTUAL_TERMINAL_INPUT raw tty mode (Anna Henningsen) + +* test: handle UV_ENOTSUP in platform_output (cjihrig) + +* doc: fix rendering of threading.html (Tobias Nießen) + +* unix,sunos: enable use of sendmmsg on Solaris and Illumos (Stacey Marshall) + +* unix: handle out of memory in iface name copy (Ben Noordhuis) + +* openbsd: do not error out if cpuspeed is not available (Robert Nagy) + +* test: skip thread_name_threadpool on AIX/IBMi (Abdirahim Musse) + +* aix,ibmi: fix undeclared identifiers (Richard Lau) + +* unix,sunos: prefer SO_REUSEPORT for load balancing (Stacey Marshall) + +* doc: free lib pointer before function return (mugitya03) + +* test: link with libm (Juan José Arboleda) + +* style: rename parameter to match definition (Mohammed Keyvanzadeh) + +* test: support partial output lines in test runner (cjihrig) + +* build: switch from c90 to c11 (Ben Noordhuis) + +* linux: allow nul bytes in abstract socket address (Itay Bookstein) + +* sunos: use pipe2 on solaris and illumos (Andy Pan) + +* unix: remove TOCTOU issues from uv_pipe_chmod (Ben Noordhuis) + +* unix: use pipe_fname if getsockname returns nothing (crupest) + +* haiku: use uint32 instead of uint32_t (AE1020) + +* doc: update thread pool stack size comment (Ben Noordhuis) + +* unix: improve uv_loop_init OOM handling (Ben Noordhuis) + +* test: merge uv_tcp_connect callbacks (Juan José Arboleda) + +* test: skip multievent tests on macOS with TSAN enabled (Juan José Arboleda) + +* linux: align CPU quota calculation with Rust (Juan José Arboleda) + +* kqueue: improve fs event watcher OOM handling (Juan José Arboleda) + +* sunos: improve fs event watcher OOM handling (Juan José Arboleda) + +* build: shorten instructions for cmake build (Juan José Arboleda) + + +2025.01.15, Version 1.50.0 (Stable), 8fb9cb919489a48880680a56efecff6a7dfb4504 + +Changes since version 1.49.2: + +* ci: run macOS and iOS tests also on macOS 14 (Saúl Ibarra Corretgé) + +* unix,win: map ENOEXEC errno (Saúl Ibarra Corretgé) + +* test: skip multicast join test on ENOEXEC (Saúl Ibarra Corretgé) + +* ci: make sure the macOS firewall is disabled (Saúl Ibarra Corretgé) + +* darwin,test: squelch EBUSY error on multicast join (Saúl Ibarra Corretgé) + +* build: update minimum cmake to 3.10 (Ben Noordhuis) + +* kqueue: use EVFILT_USER for async if available (Jameson Nash) + +* unix,win: fix off-by-one in uv_wtf8_to_utf16() (Ben Noordhuis) + +* doc: add scala-native-loop to LINKS.md (Julian A Avar C) + +* unix: fix build breakage on haiku, openbsd, etc (Jeffrey H. Johnson) + +* kqueue: lower overhead in uv__io_check_fd (Andy Pan) + +* doc: move cjihrig back to active maintainers (cjihrig) + +* build(deps): bump actions/checkout from 3 to 4 (dependabot[bot]) + +* unix,pipe: fix handling null buffer in uv_pipe_get{sock,peer}name (Saúl + Ibarra Corretgé) + +* unix,win: harmonize buffer checking (Saúl Ibarra Corretgé) + +* unix,win: add support for detached threads (Juan José Arboleda) + +* src: add uv_thread_set/getname() methods (Santiago Gimeno) + +* build: fix qemu builds (Ben Noordhuis) + +* win: drop support for windows 8 (Ben Noordhuis) + +* linux: fix uv_cpu_info() arm cpu model detection (Ben Noordhuis) + +* linux: always use io_uring for epoll batching (Ben Noordhuis) + +* doc: clarify repeating timer behavior more (Ben Noordhuis) + +* unix,win: handle nbufs=0 in uv_udp_try_send (Ben Noordhuis) + +* win: use GetQueuedCompletionStatusEx directly (Saúl Ibarra Corretgé) + +* win: enable uv_thread_{get,set}name on MinGW (Saúl Ibarra Corretgé) + +* win: drop support for the legacy MinGW (Saúl Ibarra Corretgé) + +* win,fs: get (most) fstat when no permission (Jameson Nash) + +* win: plug uv_fs_event_start memory leak (amcgoogan) + +* test: address FreeBSD kernel bug causing NULL path in fsevents (Juan José + Arboleda) + +* unix: refactor udp sendmsg code (Ben Noordhuis) + +* unix,win: add uv_udp_try_send2 (Ben Noordhuis) + +* test: fix flaky flaky udp_mmsg test (Juan José Arboleda) + +* build: enable fdsan in Android (Juan José Arboleda) + +* test: fix udp-multicast-join for FreeBSD (Juan José Arboleda) + +* win: fix leak processing fs event (Saúl Ibarra Corretgé) + +* src: set a default thread name for workers (Rafael Gonzaga) + +* misc: implement uv_getrusage_thread (Juan José Arboleda) + + +2024.10.18, Version 1.49.2 (Stable), e1095c7a4373ce00cd8874d8e820de5afb25776e + +Changes since version 1.49.1: + +* win,fs: remove trailing slash in junctions (Hüseyin Açacak) + +* Revert "linux: eliminate a read on eventfd per wakeup" (Ben Noordhuis) + +* win: Fix linked list logic in getaddrinfo (Thad House) + +* win: fix compilation against Windows 24H2 SDK (Thad House) + +* win: remap ERROR_NOACCESS and ERROR_BUFFER_OVERFLOW (Jameson Nash) + +* win,fs: match trailing slash presence in junctions to user input (Jameson + Nash) + + +2024.10.11, Version 1.49.1 (Stable), 8be336f4ee296d20e1c071a44d6adf279e202236 + +Changes since version 1.49.0: + +* build: add darwin-syscalls.h to release tarball (Ben Noordhuis) + +* linux: use IORING_SETUP_NO_SQARRAY when available (Ben Noordhuis) + +* linux: use IORING_OP_FTRUNCATE when available (Ben Noordhuis) + +* win: fix pNtQueryDirectoryFile check (Rialbat) + +* win: fix WriteFile() error translation (Santiago Gimeno) + +* win,fs: uv_fs_rmdir() to return ENOENT on file (Santiago Gimeno) + +* win,pipe: ipc code does not support async read (Jameson Nash) + +* netbsd: fix build (Adam) + +* win,fs: fix bug in fs__readdir (Hüseyin Açacak) + +* unix: workaround gcc bug on armv7 (Santiago Gimeno) + +* unix: work around arm-linux-gnueabihf-gcc bug (Ben Noordhuis) + +* unix: fix uv_tcp_keepalive in smartOS (Santiago Gimeno) + +* unix: fix uv_getrusage ru_maxrss on solaris (Poul T Lomholt) + + +2024.09.25, Version 1.49.0 (Stable), d2e56a5e8d3e39947b78405ca6e4727c70f5568a + +Changes since version 1.48.0: + +* test: fix -Wpointer-to-int-cast on 32 bits systems (Ben Noordhuis) + +* build: add alias for libuv to CMakeLists.txt (Anthony Alayo) + +* linux: create io_uring sqpoll ring lazily (Ben Noordhuis) + +* misc: run sample CI when code changes (Jameson Nash) + +* linux: fix uv_available_parallelism using cgroup (Thomas Walter) + +* doc: fix tty example segfault (hiiizxf) + +* udp,unix: fix sendmsg use-after-free (Geddy) + +* cygwin: implement uv_resident_set_memory (Farzin Monsef) + +* win: almost fix race detecting ESRCH in uv_kill (Santiago Gimeno) + +* test: disable env var test under win32+asan (Ben Noordhuis) + +* unix,fs: fix realpath calls that use the system allocator (Saúl Ibarra + Corretgé) + +* sunos: sync tcp keep-alive with other unices (Andy Pan) + +* linux: fix /proc/self/stat executable name parsing (Farzin Monsef) + +* test,ci: fix [AM]San, disable ASLR (Ben Noordhuis) + +* win: remove _alloca usage (Ben Noordhuis) + +* unix: reinstate preadv/pwritev fallback code (Ben Noordhuis) + +* linux: don't delay EPOLL_CTL_DEL operations (Ben Noordhuis) + +* doc: fix typos in ChangeLog (tgolang) + +* unix,win: error on zero delay tcp keepalive (Saúl Ibarra Corretgé) + +* win: simplify uv_once implementation (Saúl Ibarra Corretgé) + +* doc: correct udp socket options documentation (Ben Noordhuis) + +* linux: don't use sendmmsg() for single datagrams (Ben Noordhuis) + +* unix: fix fd leaks in SCM_RIGHTS error path (Ben Noordhuis) + +* win: robustify uv_os_getenv() error checking (Ben Noordhuis) + +* test: use newer ASSERT_MEM_EQ macro (Ben Noordhuis) + +* unix: de-duplicate conditions for using kqueue (Brad King) + +* darwin: simplify uv_hrtime (Saúl Ibarra Corretgé) + +* mailmap: update saghul's main email address (Saúl Ibarra Corretgé) + +* win: remove no longer needed define (Saúl Ibarra Corretgé) + +* doc: fix some typos (josedelinux) + +* linux,darwin: make `uv_fs_copyfile` behaves like `cp -r` (Juan José Arboleda) + +* dragonfly: disable SO_REUSEPORT for UDP socket bindings (Andy Pan) + +* test: remove the obsolete HAVE_KQUEUE macro (Andy Pan) + +* unix: use the presence of SOCK_* instead of OS macros for socketpair (Andy + Pan) + +* bsd: support pipe2() on *BSD (Andy Pan) + +* unix: support SO_REUSEPORT with load balancing for TCP (Andy Pan) + +* doc: add entries for extended getpw (Juan José Arboleda) + +* test: fix the flaky test-tcp-reuseport (Andy Pan) + +* aix,ibmi: fix compilation errors in fs_copyfile (Jeffrey H. Johnson) + +* unix: support SO_REUSEPORT with load balancing for UDP (Andy Pan) + +* tcpkeepalive: distinguish OS versions and use proper time units (Andy Pan) + +* win: map ERROR_BAD_EXE_FORMAT to UV_EFTYPE (Hüseyin Açacak) + +* doc: add instruction how to install with Conan (Uilian Ries) + +* unix,win: remove unused req parameter from macros (Viacheslav Muravyev) + +* build: fix android ci build (Ben Noordhuis) + +* unix,win: export wtf8 functions properly (Ben Noordhuis) + +* hurd: add includes and macro prerequisites (Olivier Valentin) + +* hurd: stub uv_thread_setpriority() (Olivier Valentin) + +* ci: use macOS 12 for macOS and iOS builds (Saúl Ibarra Corretgé) + +* darwin: fix crash on iOS(arm64) (郑苏波 (Super Zheng)) + +* Create dependabot.yml for updating github-actions (Jameson Nash) + +* doc: correct names of Win32 APIs in fs.rst (zeertzjq) + +* ci: bump upload and download-artifact versions (dependabot[bot]) + +* ci: bump actions/setup-python from 4 to 5 (dependabot[bot]) + +* ci: bump KyleMayes/install-llvm-action from 1 to 2 (dependabot[bot]) + +* win,error: remap ERROR_NO_DATA to EAGAIN (Jameson Nash) + +* test: handle zero-length udp datagram (Ben Noordhuis) + +* misc: remove splay trees macros (Viacheslav Muravyev) + +* test,openbsd: remove superfluous ifdef guard (Ben Noordhuis) + +* win,fs: use posix delete semantics, if supported (Ian Butterworth) + +* win: fix env var in uv_os_homedir and uv_os_tmpdir (Hüseyin Açacak) + +* fsevents: detect watched directory removal (Santiago Gimeno) + +* ci: bump actions/checkout to 4 (dependabot[bot]) + +* linux: eliminate a read on eventfd per wakeup (Andy Pan) + +* test: pipe_overlong_path handle ENAMETOOLONG (Abdirahim Musse) + +* win,fs: use the new Windows fast stat API (Hüseyin Açacak) + +* win,pipe: fix race with concurrent readers (Jameson Nash) + +* win,signal: fix data race dispatching SIGWINCH (Jameson Nash) + +* build: ubsan fixes (Matheus Izvekov) + +* linux: disable SQPOLL io_uring by default (Santiago Gimeno) + +* win: fix fs.c ubsan failure (Matheus Izvekov) + +* test: rmdir can return `EEXIST` or `ENOTEMPTY` (Richard Lau) + +* test: check for `UV_CHANGE` or `UV_RENAME` event (Richard Lau) + +* unix,fs: silence -Wunused-result warning (Santiago Gimeno) + +* linux: support abstract unix socket autobinding (Ben Noordhuis) + +* kqueue: use EVFILT_USER for async if available (Andy Pan) + +* win: remove deprecated GetVersionExW call (Shelley Vohr) + +* doc: document uv_loop_option (握猫猫) + +* doc: fix the `uv_*_set_data` series of functions (握猫猫) + +* doc: properly label enumerations and types (握猫猫) + +* doc: document specific macOS fs_event behavior (Santiago Gimeno) + +* win,pipe: restore fallback handling for blocking pipes (Jameson Nash) + +* unix,win: remove unused rb-tree macro parameters (Viacheslav Muravyev) + +* win: compute parallelism from process cpu affinity (Ben Noordhuis) + +* win: use NtQueryInformationProcess in uv_os_getppid (Zuohui Yang) + +* win,pipe: fix missing assignment to success (Jameson Nash) + +* win: fix uv_available_parallelism on win32 (Ben Noordhuis) + +* win,pipe: fix another missing assignment to success (Jameson Nash) + +* kqueue: disallow ill-suited file descriptor kinds (Andy Pan) + +* unix: restore tty attributes on handle close (Ben Noordhuis) + +* test: delete test with invalid assumption (Ben Noordhuis) + +* dragonflybsd: fix compilation failure (Jeffrey H. Johnson) + +* test: run android tests on ci (Edigleysson Silva (Edy)) + +* darwin: add udp mmsg support (Raihaan Shouhell) + +* unix: work around arm-linux-gnueabihf-gcc bug (Ben Noordhuis) + +* unix: expand uv_available_parallelism() to support more platforms (Ondřej + Surý) + +* doc: add known issue in armv7 (Santiago Gimeno) + + +2024.02.07, Version 1.48.0 (Stable), e9f29cb984231524e3931aa0ae2c5dae1a32884e + +Changes since version 1.47.0: + +* misc: remove deprecated stalebot file (Jameson Nash) + +* build: disable windows asan buildbot (Ben Noordhuis) + +* test: don't run tcp_writealot under msan (Ben Noordhuis) + +* build,win: remove extraneous -lshell32 (Ben Noordhuis) + +* unix: ignore ifaddrs with NULL ifa_addr (Stephen Gallagher) + +* unix,win: utility for setting priority for thread (Hao Hu) + +* pipe: add back error handling to connect / bind (Jameson Nash) + +* test: check if ipv6 link-local traffic is routable (Ben Noordhuis) + +* win: remove check for UV_PIPE_NO_TRUNCATE (Jameson Nash) + +* linux: disable io_uring on hppa below kernel 6.1.51 (matoro) + +* unix,win: fix read past end of pipe name buffer (Ben Noordhuis) + +* unix: unbreak macOS < 10.14 (Sergey Fedorov) + +* aix: disable ipv6 link local (Abdirahim Musse) + +* doc: move cjihrig to emeriti (cjihrig) + +* unix: correct pwritev conditional (Bo Anderson) + +* test_fs.c: Fix issue on 32-bit systems using btrfs (Stephen Gallagher) + +* misc: ignore libuv-release-tool files (Jameson Nash) + +* win: honor NoDefaultCurrentDirectoryInExePath env var (Ardi Nugraha) + +* idna: fix compilation warning (Saúl Ibarra Corretgé) + +* linux: remove HAVE_IFADDRS_H macro (Ben Noordhuis) + +* test: skip tcp-write-in-a-row on IBM i (Abdirahim Musse) + +* build,win: work around missing uuid.dll on MinGW (Anton Bachin) + +* win: stop using deprecated names (Matheus Izvekov) + +* unix,win: fix busy loop with zero timeout timers (Matheus Izvekov) + +* aix,ibmi: use uv_interface_addresses instead of getifaddrs (Abdirahim Musse) + +* linux: fix bind/connect for abstract sockets (Santiago Gimeno) + +* win: replace c99 comments with c89 comments (Trevor Flynn) + +* build: add .cache clangd folder to .gitignore (Juan José Arboleda) + +* unix: support full TCP keep-alive on Solaris (Andy Pan) + +* freebsd: fix F_KINFO file path handling (David Carlier) + +* linux: retry fs op if unsupported by io_uring (Santiago Gimeno) + +* freebsd: fix build on non-intel archs (David Carlier) + +* unix: optimize uv__tcp_keepalive cpp directives (Andy Pan) + +* linux: disable io_uring on ppc64 and ppc64le (Brad King) + +* doc: add very basic Security Policy document (Santiago Gimeno) + +* build: re-enable msvc-asan job on CI (Jameson Nash) + +* win/spawn: optionally run executable paths with no file extension (Brad King) + +* win: fix ESRCH implementation (Jameson Nash) + +* unix,win: reset the timer queue on stop (Santiago Gimeno) + +* fix: always zero-terminate idna output (Ben Noordhuis) + +* fix: reject zero-length idna inputs (Ben Noordhuis) + +* test: empty strings are not valid IDNA (Santiago Gimeno) + +* Merge pull request from GHSA-f74f-cvh7-c6q6 (Ben Noordhuis) + + +2023.11.06, Version 1.47.0 (Stable), be6b81a352d17513c95be153afcb3148f1a451cd + +Changes since version 1.46.0: + +* test: fix license blurb (Ben Noordhuis) + +* linux: fix harmless warn_unused_result warning (Shuduo Sang) + +* darwin: fix build warnings (小明) + +* linux: don't use io_uring on pre-5.10.186 kernels (Ben Noordhuis) + +* fs: fix WTF-8 decoding issue (Jameson Nash) + +* test: enable disabled tcp_connect6_error_fault (Ben Noordhuis) + +* test: enable disabled fs_link (Ben Noordhuis) + +* test: enable disabled spawn_same_stdout_stderr (Ben Noordhuis) + +* linux: handle UNAME26 personality (Ben Noordhuis) + +* build: move cmake_minimum_required version to 3.9 (Keith Winstein) + +* unix: set ipv6 scope id for link-local addresses (Ben Noordhuis) + +* unix: match kqueue and epoll code (Trevor Norris) + +* win,spawn: allow `%PATH%` to be unset (Kyle Edwards) + +* doc: switch to Furo, a more modern Sphinx theme (Saúl Ibarra Corretgé) + +* darwin: make TCP_KEEPINTVL and TCP_KEEPCNT available (小明) + +* win,fs: avoid winapi macro redefinition (Brad King) + +* linux: add missing riscv syscall numbers (michalbiesek) + +* doc: fix broken "Shared library" Wikipedia link (Alois Klink) + +* unix: get mainline kernel version in Ubuntu (Santiago Gimeno) + +* unix: get mainline kernel version in Debian (Ben Noordhuis) + +* build: fix qemu install in CI-unix workflow (Santiago Gimeno) + +* unix: disable io_uring close on selected kernels (Santiago Gimeno) + +* test: skip tests when ipv6 is not available (Santiago Gimeno) + +* ibmi: implement ifaddrs, getifaddrs, freeifaddrs (Abdirahim Musse) + +* unix: reset signal counters after fork (SmorkalovG) + +* win,process: avoid assert after spawning Store app (Jameson Nash) + +* unix: remove pread/preadv conditionals (Ben Noordhuis) + +* unix: remove pwrite/pwritev conditionals (Ben Noordhuis) + +* darwin: remove workaround for data corruption bug (Ben Noordhuis) + +* src: default to stream=stderr in handle printer (Ben Noordhuis) + +* test: switch to new-style ASSERT_EQ macros (Pleuvens) + +* zos: correctly get cpu model in uv_cpu_info() (jolai) + +* test: fix get_passwd2 on IBM i (Abdirahim Musse) + +* unix: don't malloc on sync uv_fs_read (Ben Noordhuis) + +* freebsd: get fs event path with fcntl(F_KINFO) (David Carlier) + +* test: switch from ASSERT_* to ASSERT_PTR_* (Pleuvens) + +* darwin: workaround apple pthread_cond_wait bug (Julien Roncaglia) + +* doc: uv_close should be called after exit callback (Pleuvens) + +* test: 192.0.2.0/24 is the actual -TEST-NET-1 (prubel) + +* unix: add back preadv/pwritev fallback (Ben Noordhuis) + +* unix: rename variable for consistency (Ben Noordhuis) + +* unix: merge read/write code into single functions (Ben Noordhuis) + +* doc: filename arg to uv_fs_event_cb can be NULL (Ben Noordhuis) + +* build,win: we need to link against shell32.lib (Per Allansson) + +* unix: no preadv/pwritev workaround if not needed (Jeffrey H. Johnson) + +* build: add CI for Windows ARM64 (build only) (Per Allansson) + +* linux: disable io_uring on 32 bits arm systems (Ben Noordhuis) + +* build: run sanitizers on macos ci (Ben Noordhuis) + +* misc: export WTF8 conversion utilities (Jameson Nash) + +* build: fix libuv.a file name for cmake (Jameson Nash) + +* build: add windows ubsan and clang ci (Matheus Izvekov) + +* win: improve accuracy of ProductName between arch (Christian Heimlich) + + +2023.06.30, Version 1.46.0 (Stable), f0bb7e40f0508bedf6fad33769b3f87bb8aedfa6 + +Changes since version 1.45.0: + +* Add SHA to ChangeLog (Santiago Gimeno) + +* misc: update readthedocs config (Jameson Nash) + +* test: remove erroneous RETURN_SKIP (Ben Noordhuis) + +* android: disable io_uring support (Ben Noordhuis) + +* linux: add some more iouring backed fs ops (Santiago Gimeno) + +* build: add autoconf option for disable-maintainer-mode (Jameson Nash) + +* fs: use WTF-8 on Windows (Stefan Karpinski) + +* unix,win: replace QUEUE with struct uv__queue (Ben Noordhuis) + +* linux: fs_read to use io_uring if iovcnt > IOV_MAX (Santiago Gimeno) + +* ios: fix uv_getrusage() ru_maxrss calculation (Ben Noordhuis) + +* include: update outdated code comment (Ben Noordhuis) + +* linux: support abstract unix sockets (Ben Noordhuis) + +* unix,win: add UV_PIPE_NO_TRUNCATE flag (Ben Noordhuis) + +* unix: add loongarch support (liuxiang88) + +* doc: add DPS8M to LINKS.md (Jeffrey H. Johnson) + +* include: add EUNATCH errno mapping (Abdirahim Musse) + +* src: don't run timers if loop is stopped/unref'd (Trevor Norris) + +* win: fix -Wpointer-to-int-cast warning (Ben Noordhuis) + +* test,win: fix -Wunused-variable warning (Ben Noordhuis) + +* test,win: fix -Wformat warning (Ben Noordhuis) + +* linux: work around io_uring IORING_OP_CLOSE bug (Ben Noordhuis) + +* win: remove unused functions (Ben Noordhuis) + +* bench: add bench to check uv_loop_alive (Trevor Norris) + +* test: add uv_cancel test for threadpool (Trevor Norris) + +* unix: skip prohibited syscalls on tvOS and watchOS (小明) + +* unix,fs: make no_pwritev access thread-safe (Santiago Gimeno) + +* unix: fix build for lower versions of Android (小明) + + +2023.05.19, Version 1.45.0 (Stable), 96e05543f53b19d9642b4b0dd73b86ad3cea313e + +Changes since version 1.44.2: + +* win: remove stdint-msvc2008.h (Ben Noordhuis) + +* android: remove pthread-fixes.c (Ben Noordhuis) + +* build: enable MSVC_RUNTIME_LIBRARY setting (自发对称破缺) + +* unix: switch to c11 atomics (Ben Noordhuis) + +* unix: don't accept() connections in a loop (Ben Noordhuis) + +* win: fix off-by-1 buffer overrun in uv_exepath() (Ben Noordhuis) + +* build: switch ci from macos-10.15 to macos-11 (Ben Noordhuis) + +* win: fix thread race in uv_cwd() and uv_chdir() (Ben Noordhuis) + +* unix,win: remove UV_HANDLE_SHUTTING flag (Santiago Gimeno) + +* win: support Windows 11 in uv_os_uname() (Luan Devecchi) + +* unix: fix uv_getrusage() ru_maxrss reporting (Ben Noordhuis) + +* doc: add note about offset -1 in uv_fs_read/write (Steven Schveighoffer) + +* test: fix musl libc.a dlerror() test expectation (Ben Noordhuis) + +* kqueue: DRY file descriptor deletion logic (Ben Noordhuis) + +* linux: teach uv_get_constrained_memory() cgroupsv2 (Ben Noordhuis) + +* build: upgrade qemu-user-static package (Ben Noordhuis) + +* linux: move epoll.c back into linux-core.c (Ben Noordhuis) + +* unix: remove pre-macos 10.8 compatibility hack (Ben Noordhuis) + +* unix,win: fix memory leak in uv_fs_scandir() (Ben Noordhuis) + +* build: restore qemu download logic (Ben Noordhuis) + +* win: fix uv__pipe_accept memory leak (number201724) + +* doc: update LINKS.md (Daniel) + +* unix: simplify atomic op in uv_tty_reset_mode() (Ben Noordhuis) + +* build: add LIBUV_BUILD_SHARED cmake option (Christian Clason) + +* linux: remove unused or obsolete syscall wrappers (Ben Noordhuis) + +* linux: merge files back into single file (Ben Noordhuis) + +* stream: process more than one write req per loop tick (ywave620) + +* unix,win: give thread pool threads an 8 MB stack (Ben Noordhuis) + +* build: add MemorySanitizer (MSAN) support (Ben Noordhuis) + +* doc: add uv_poll_cb status==UV_EBADF note (jensbjorgensen) + +* build: support AddressSanitizer on MSVC (Jameson Nash) + +* win,pipe: improve method of obtaining pid for ipc (number201724) + +* thread: add support for affinity (daomingq) + +* include: map ENODATA error code (Ben Noordhuis) + +* build: remove bashism from autogen.sh (Santiago Gimeno) + +* win,tcp,udp: remove "active streams" optimization (Saúl Ibarra Corretgé) + +* win: drop code checking for Windows XP / Server 2k3 (Saúl Ibarra Corretgé) + +* unix,win: fix 'sprintf' is deprecated warning (twosee) + +* doc: mention close_cb can be NULL (Qix) + +* win: optimize udp receive performance (ywave620) + +* win: fix an incompatible types warning (twosee) + +* doc: document 0 return value for free/total memory (Ben Noordhuis) + +* darwin: use hw.cpufrequency again for frequency info (Jameson Nash) + +* win,test: change format of TEST_PIPENAME's (Santiago Gimeno) + +* win,pipe: fixes in uv_pipe_connect() (Santiago Gimeno) + +* misc: fix return value of memory functions (theanarkh) + +* src: add new metrics APIs (Trevor Norris) + +* thread: add uv_thread_getcpu() (daomingq) + +* build: don't use ifaddrs.h on solaris 10 (Edward Humes) + +* unix,win: add uv_get_available_memory() (Tim Besard) + +* test: fix -Wunused-but-set-variable warnings (Ben Noordhuis) + +* doc: bump min supported linux and freebsd versions (Ben Noordhuis) + +* Add Socket Runtime to the LINKS.md (Sergey Rubanov) + +* unix: drop kfreebsd support (Ben Noordhuis) + +* win: fix fstat for pipes and character files (Stefan Stojanovic) + +* win: fix -Wunused-variable warning (Ben Noordhuis) + +* win: fix -Wunused-function warning (Ben Noordhuis) + +* build: drop qemu-alpha from ci matrix (Ben Noordhuis) + +* win: move child_stdio_buffer out of uv_process_t (Santiago Gimeno) + +* test: fix some unreachable code warnings (Santiago Gimeno) + +* linux: simplify uv_uptime() (Ben Noordhuis) + +* test: unflake fs_event_watch_dir test (Ben Noordhuis) + +* darwin: remove unused fsevents symbol lookups (Ben Noordhuis) + +* build: add define guard around UV_EXTERN (Zvicii) + +* build: add UndefinedBehaviorSanitizer support (Ben Noordhuis) + +* build: enable platform_output test on qemu (Ben Noordhuis) + +* linux: handle cpu hotplugging in uv_cpu_info() (Ben Noordhuis) + +* build: remove unnecessary policy setting (dundargoc) + +* docs: add vcpkg instruction step (Jack·Boos·Yu) + +* win,fs: fix readlink errno for a non-symlink file (Darshan Sen) + +* misc: extend getpw to take uid as an argument (Jameson Nash) + +* unix,win: use static_assert when available (Ben Noordhuis) + +* docs: delete code Makefile (Jameson Nash) + +* docs: add CI for docs PRs (Jameson Nash) + +* docs: update Sphinx version on RTD (Jameson Nash) + +* doc: clean up license file (Ben Noordhuis) + +* test: fix some warnings when compiling tests (panran) + +* build,win: add mingw-w64 CI configuration (Jameson Nash) + +* build: add CI for distcheck (Jameson Nash) + +* unix: remove busy loop from uv_async_send (Jameson Nash) + +* doc: document uv_fs_cb type (Tamás Bálint Misius) + +* build: Improve build by cmake for Cygwin (erw7) + +* build: add libuv:: namespace to libuvConfig.cmake (AJ Heller) + +* test: fix ThreadSanitizer thread leak warning (Ben Noordhuis) + +* test: fix ThreadSanitizer data race warning (Ben Noordhuis) + +* test: fix ThreadSanitizer data race warning (Ben Noordhuis) + +* test: fix ThreadSanitizer data race warning (Ben Noordhuis) + +* test: cond-skip fork_threadpool_queue_work_simple (Ben Noordhuis) + +* test: cond-skip signal_multiple_loops (Ben Noordhuis) + +* test: cond-skip tcp_writealot (Ben Noordhuis) + +* build: promote tsan ci to must-pass (Ben Noordhuis) + +* build: add CI for OpenBSD and FreeBSD (James McCoy) + +* build,test: fix distcheck errors (Jameson Nash) + +* test: remove bad tty window size assumption (Ben Noordhuis) + +* darwin,process: feed kevent the signal to reap children (Jameson Nash) + +* unix: abort on clock_gettime() error (Ben Noordhuis) + +* test: remove timing-sensitive check (Ben Noordhuis) + +* unix: DRY and fix tcp bind error path (Jameson Nash) + +* macos: fix fsevents thread race conditions (Ben Noordhuis) + +* win: fix leak in uv_chdir (Trevor Norris) + +* test: make valgrind happy (Trevor Norris) + +* barrier: wait for prior out before next in (Jameson Nash) + +* test: fix visual studio 2015 build error (Ben Noordhuis) + +* linux: fix ceph copy error truncating readonly files (Bruno Passeri) + +* test: silence more valgrind warnings (Trevor Norris) + +* doc: add entries to LINKS.md (Trevor Norris) + +* win,unix: change execution order of timers (Trevor Norris) + +* doc: add trevnorris to maintainers (Trevor Norris) + +* linux: remove epoll_pwait() emulation code path (Ben Noordhuis) + +* linux: replace unsafe macro with inline function (Ben Noordhuis) + +* linux: remove arm oabi support (Ben Noordhuis) + +* unix,sunos: SO_REUSEPORT not valid on all sockets (Stacey Marshall) + +* doc: consistent single backquote in misc.rst (Jason Zhang) + +* src: switch to use C11 atomics where available (Trevor Norris) + +* test: don't use static buffer for formatting (Ben Noordhuis) + +* linux: introduce io_uring support (Ben Noordhuis) + +* linux: fix academic valgrind warning (Ben Noordhuis) + +* test: disable signal test under ASan and MSan (Ben Noordhuis) + +* linux: add IORING_OP_OPENAT support (Ben Noordhuis) + +* linux: add IORING_OP_CLOSE support (Ben Noordhuis) + +* linux: remove bug workaround for obsolete kernels (Ben Noordhuis) + +* doc: update active maintainers list (Ben Noordhuis) + +* test: add ASSERT_OK (Trevor Norris) + +* src: fix events/events_waiting metrics counter (Trevor Norris) + +* unix,win: add uv_clock_gettime() (Ben Noordhuis) + +* build: remove freebsd and openbsd buildbots (Ben Noordhuis) + +* win: fix race condition in uv__init_console() (sivadeilra) + +* linux: fix logic bug in sqe ring space check (Ben Noordhuis) + +* linux: use io_uring to batch epoll_ctl calls (Ben Noordhuis) + +* macos: update minimum supported version (Santiago Gimeno) + +* docs: fix some typos (cui fliter) + +* unix: use memcpy() instead of type punning (Ben Noordhuis) + +* test: add additional assert (Mohammed Keyvanzadeh) + +* build: export compile_commands.json (Lewis Russell) + +* win,process: write minidumps when sending SIGQUIT (Elliot Saba) + +* unix: constrained_memory should return UINT64_MAX (Tim Besard) + +* unix: handle CQ overflow in iou ring (Santiago Gimeno) + +* unix: remove clang compiler warning pragmas (Ben Noordhuis) + +* win: fix mingw build (gengjiawen) + +* test: fix -Wbool-compare compiler warning (Ben Noordhuis) + +* win: define MiniDumpWithAvxXStateContext always (Santiago Gimeno) + +* freebsd: hard-code UV_ENODATA definition (Santiago Gimeno) + +* linux: work around EOWNERDEAD io_uring kernel bug (Ben Noordhuis) + +* linux: fix WRITEV with lots of bufs using io_uring (Santiago Gimeno) + + +2022.07.12, Version 1.44.2 (Stable), 0c1fa696aa502eb749c2c4735005f41ba00a27b8 + +Changes since version 1.44.1: + +* Add SHA to ChangeLog (Jameson Nash) + +* aix, ibmi: handle server hang when remote sends TCP RST (V-for-Vasili) + +* build: make CI a bit noisier (Jameson Nash) + +* process: reset the signal mask if the fork fails (Jameson Nash) + +* zos: implement cmpxchgi() using assembly (Shuowang (Wayne) Zhang) + +* build: AC_SUBST for AM_CFLAGS (Claes Nästén) + +* ibmi: Implement UDP disconnect (V-for-Vasili) + +* doc: update active maintainers list (Ben Noordhuis) + +* build: fix kFreeBSD build (James McCoy) + +* build: remove Windows 2016 workflows (Darshan Sen) + +* Revert "win,errors: remap ERROR_ACCESS_DENIED to UV_EACCES" (Darshan Sen) + +* unix: simplify getpwuid call (Jameson Nash) + +* build: filter CI by paths and branches (Jameson Nash) + +* build: add iOS to macos CI (Jameson Nash) + +* build: re-enable CI for windows changes (Jameson Nash) + +* process,iOS: fix build breakage in process.c (Denny C. Dai) + +* test: remove unused declarations in tcp_rst test (V-for-Vasili) + +* core: add thread-safe strtok implementation (Guilherme Íscaro) + +* win: fix incompatible-types warning (twosee) + +* test: fix flaky file watcher test (Ben Noordhuis) + +* build: fix AIX xlc autotools build (V-for-Vasili) + +* unix,win: fix UV_RUN_ONCE + uv_idle_stop loop hang (Ben Noordhuis) + +* win: fix unexpected ECONNRESET error on TCP socket (twosee) + +* doc: make sample cross-platform build (gengjiawen) + +* test: separate some static variables by test cases (Hannah Shi) + +* sunos: fs-event callback can be called after uv_close() (Andy Fiddaman) + +* uv: re-register interest in a file after change (Shuowang (Wayne) Zhang) + +* uv: register UV_RENAME event for _RFIM_UNLINK (Shuowang (Wayne) Zhang) + +* uv: register __rfim_event 156 as UV_RENAME (Shuowang (Wayne) Zhang) + +* doc: remove smartos from supported platforms (Ben Noordhuis) + +* macos: avoid posix_spawnp() cwd bug (Jameson Nash) + +* release: check versions of autogen scripts are newer (Jameson Nash) + +* test: rewrite embed test (Ben Noordhuis) + +* openbsd: use utimensat instead of lutimes (tuftedocelot) + +* doc: fix link to uvwget example main() function (blogdaren) + +* unix: use MSG_CMSG_CLOEXEC where supported (Ben Noordhuis) + +* test: remove disabled callback_order test (Ben Noordhuis) + +* win,pipe: fix bugs with pipe resource lifetime management (Jameson Nash) + +* loop: better align order-of-events behavior between platforms (Jameson Nash) + +* aix,test: uv_backend_fd is not supported by poll (V-for-Vasili) + +* kqueue: skip EVFILT_PROC when invalidating fds (chucksilvers) + +* darwin: fix atomic-ops.h ppc64 build (Sergey Fedorov) + +* zos: don't err when killing a zombie process (Shuowang (Wayne) Zhang) + +* zos: avoid fs event callbacks after uv_close() (Shuowang (Wayne) Zhang) + +* zos: correctly format interface addresses names (Shuowang (Wayne) Zhang) + +* zos: add uv_interface_addresses() netmask support (Shuowang (Wayne) Zhang) + +* zos: improve memory management of ip addresses (Shuowang (Wayne) Zhang) + +* tcp,pipe: fail `bind` or `listen` after `close` (theanarkh) + +* zos: implement uv_available_parallelism() (Shuowang (Wayne) Zhang) + +* udp,win: fix UDP compiler warning (Jameson Nash) + +* zos: fix early exit of epoll_wait() (Shuowang (Wayne) Zhang) + +* unix,tcp: fix errno handling in uv__tcp_bind() (Samuel Cabrero) + +* shutdown,unix: reduce code duplication (Jameson Nash) + +* unix: fix c99 comments (Ben Noordhuis) + +* unix: retry tcgetattr/tcsetattr() on EINTR (Ben Noordhuis) + +* docs: update introduction.rst (Ikko Ashimine) + +* unix,stream: optimize uv_shutdown() codepath (Jameson Nash) + +* zos: delay signal handling until after normal i/o (Shuowang (Wayne) Zhang) + +* stream: uv__drain() always needs to stop POLLOUT (Jameson Nash) + +* unix,tcp: allow EINVAL errno from setsockopt in uv_tcp_close_reset() (Stacey + Marshall) + +* win,shutdown: improve how shutdown is dispatched (Jameson Nash) + + +2022.03.09, Version 1.44.1 (Stable), e8b7eb6908a847ffbe6ab2eec7428e43a0aa53a2 + +Changes since version 1.44.0: + +* process: simplify uv__write_int calls (Jameson Nash) + +* macos: don't use thread-unsafe strtok() (Ben Noordhuis) + +* process: fix hang after NOTE_EXIT (Jameson Nash) + + +2022.03.07, Version 1.44.0 (Stable), d2bff508457336d808ba7148b33088f6acbfe0a6 + +Changes since version 1.43.0: + +* darwin: remove EPROTOTYPE error workaround (Ben Noordhuis) + +* doc: fix v1.43.0 changelog entries (cjihrig) + +* win: replace CRITICAL_SECTION+Semaphore with SRWLock (David Machaj) + +* darwin: translate EPROTOTYPE to ECONNRESET (Ben Noordhuis) + +* android: use libc getifaddrs() (Ben Noordhuis) + +* unix: fix STATIC_ASSERT to check what it means to check (Jessica Clarke) + +* unix: ensure struct msghdr is zeroed in recvmmsg (Ondřej Surý) + +* test: test with maximum recvmmsg buffer (Ondřej Surý) + +* unix: don't allow too small thread stack size (Ben Noordhuis) + +* bsd: ensure mutex is initialized (Ben Noordhuis) + +* doc: add gengjiawen as maintainer (gengjiawen) + +* process: monitor for exit with kqueue on BSDs (Jeremy Rose) + +* test: fix flaky uv_fs_lutime test (Momtchil Momtchev) + +* build: fix cmake install locations (Jameson Nash) + +* thread,win: fix C90 style nit (ssrlive) + +* build: rename CFLAGS to AM_CFLAGS (Jameson Nash) + +* doc/guide: update content and sample code (woclass) + +* process,bsd: handle kevent NOTE_EXIT failure (Jameson Nash) + +* test: remove flaky test ipc_closed_handle (Ben Noordhuis) + +* darwin: bump minimum supported version to 10.15 (Ben Noordhuis) + +* win: return fractional seconds in uv_uptime() (Luca Adrian L) + +* build: export uv_a for cmake (WenTao Ou) + +* loop: add pending work to loop-alive check (Jameson Nash) + +* win: use GetTickCount64 for uptime again (Jameson Nash) + +* win: restrict system DLL load paths (jonilaitinen) + +* win,errors: remap ERROR_ACCESS_DENIED to UV_EACCES (Darshan Sen) + +* bench: add `uv_queue_work` ping-pong measurement (Momtchil Momtchev) + +* build: fix error C4146 on MSVC (UMU) + +* test: fix benchmark-ping-udp (Ryan Liptak) + +* win,fs: consider broken pipe error a normal EOF (Momtchil Momtchev) + +* document the values of enum uv_stdio_flags (Paul Evans) + +* win,loop: add missing uv_update_time (twosee) + +* win,fs: avoid closing an invalid handle (Jameson Nash) + +* fix oopsie from + +* doc: clarify android api level (Ben Noordhuis) + +* win: fix style nits [NFC] (Jameson Nash) + +* test: fix flaky udp_mmsg test (Santiago Gimeno) + +* test: fix ipc_send_recv_pipe flakiness (Ben Noordhuis) + +* doc: checkout -> check out (wyckster) + +* core: change uv_get_password uid/gid to unsigned (Jameson Nash) + +* hurd: unbreak build on GNU/Hurd (Vittore F. Scolari) + +* freebsd: use copy_file_range() in uv_fs_sendfile() (David Carlier) + +* test: use closefd in runner-unix.c (Guilherme Íscaro) + +* Reland "macos: use posix_spawn instead of fork" (Jameson Nash) + +* android: fix build error when no ifaddrs.h (ssrlive) + +* unix,win: add uv_available_parallelism() (Ben Noordhuis) + +* process: remove OpenBSD from kevent list (Jameson Nash) + +* zos: fix build breakage (Ben Noordhuis) + +* process: only use F_DUPFD_CLOEXEC if it is defined (Jameson Nash) + +* win,poll: add the MSAFD GUID for AF_UNIX (roflcopter4) + +* unix: simplify uv__cloexec_fcntl() (Ben Noordhuis) + +* doc: add secondary GPG ID for vtjnash (Jameson Nash) + +* unix: remove uv__cloexec_ioctl() (Jameson Nash) + + +2022.01.05, Version 1.43.0 (Stable), 988f2bfc4defb9a85a536a3e645834c161143ee0 Changes since version 1.42.0: @@ -18,73 +1510,73 @@ Changes since version 1.42.0: * win,fsevent: fix uv_fs_event_stop() assert (Ben Noordhuis) -* unix: remove redundant include in unix.h ( +* unix: remove redundant include in unix.h (Juan José Arboleda) -* doc: mark SmartOS as Tier 3 support ( +* doc: mark SmartOS as Tier 3 support (Ben Noordhuis) -* doc: fix broken links for netbsd's sysctl manpage ( +* doc: fix broken links for netbsd's sysctl manpage (YAKSH BARIYA) -* misc: adjust stalebot deadline ( +* misc: adjust stalebot deadline (Ben Noordhuis) -* test: remove `dns-server.c` as it is not used anywhere ( +* test: remove `dns-server.c` as it is not used anywhere (Darshan Sen) -* build: fix non-cmake android builds ( +* build: fix non-cmake android builds (YAKSH BARIYA) -* doc: replace pyuv with uvloop ( +* doc: replace pyuv with uvloop (Ofek Lev) -* asan: fix some tests ( +* asan: fix some tests (Jameson Nash) -* build: add experimental TSAN configuration ( +* build: add experimental TSAN configuration (Jameson Nash) -* pipe: remove useless assertion ( +* pipe: remove useless assertion (~locpyl-tidnyd) -* bsd: destroy mutex in uv__process_title_cleanup() ( +* bsd: destroy mutex in uv__process_title_cleanup() (Darshan Sen) -* build: add windows build to CI ( +* build: add windows build to CI (Darshan Sen) -* win,fs: fix error code in uv_fs_read() and uv_fs_write() ( Sen) +* win,fs: fix error code in uv_fs_read() and uv_fs_write() (Darshan Sen) -* build: add macos-latest to ci matrix ( +* build: add macos-latest to ci matrix (Ben Noordhuis) -* udp: fix &/&& typo in macro condition ( +* udp: fix &/&& typo in macro condition (Evan Miller) * build: install cmake package module (Petr Menšík) -* win: fix build for mingw32 ( +* win: fix build for mingw32 (Nicolas Noble) * build: fix build failures with MinGW new headers (erw7) -* build: fix win build with cmake versions before v3.14 ( +* build: fix win build with cmake versions before v3.14 (AJ Heller) -* unix: support aarch64 in uv_cpu_info() ( +* unix: support aarch64 in uv_cpu_info() (Juan José Arboleda) -* linux: work around CIFS EPERM bug ( +* linux: work around CIFS EPERM bug (Ben Noordhuis) -* sunos: Oracle Developer Studio support ( +* sunos: Oracle Developer Studio support (Stacey Marshall) -* Revert "sunos: Oracle Developer Studio support ( +* Revert "sunos: Oracle Developer Studio support (cjihrig) -* sunos: Oracle Developer Studio support ( +* sunos: Oracle Developer Studio support (Stacey Marshall) -* stream: permit read after seeing EOF ( +* stream: permit read after seeing EOF (Jameson Nash) -* thread: initialize uv_thread_self for all threads ( +* thread: initialize uv_thread_self for all threads (Jameson Nash) -* kqueue: ignore write-end closed notifications ( +* kqueue: ignore write-end closed notifications (Jameson Nash) -* macos: fix the cfdata length in uv__get_cpu_speed ( Bache) +* macos: fix the cfdata length in uv__get_cpu_speed (Jesper Storm Bache) -* unix,win: add uv_ip_name to get name from sockaddr ( +* unix,win: add uv_ip_name to get name from sockaddr (Campbell He) * win,test: fix a few typos (AJ Heller) -* zos: use destructor for uv__threadpool_cleanup() ( Zhang) +* zos: use destructor for uv__threadpool_cleanup() (Wayne Zhang) -* linux: use MemAvailable instead of MemFree ( +* linux: use MemAvailable instead of MemFree (Andrey Hohutkin) -* freebsd: call dlerror() only if necessary ( +* freebsd: call dlerror() only if necessary (Jameson Nash) -* bsd,windows,zos: fix udp disconnect EINVAL ( +* bsd,windows,zos: fix udp disconnect EINVAL (deal) 2021.07.21, Version 1.42.0 (Stable), 6ce14710da7079eb248868171f6343bc409ea3a4 @@ -109,7 +1601,7 @@ Changes since version 1.41.0: * zos: treat __rfim_utok as binary (Shuowang (Wayne) Zhang) -* zos: use execvpe() to set environ explictly (Shuowang (Wayne) Zhang) +* zos: use execvpe() to set environ explicitly (Shuowang (Wayne) Zhang) * zos: use custom proctitle implementation (Shuowang (Wayne) Zhang) @@ -2615,7 +4107,7 @@ Changes since version 1.9.1: * zos: implement uv__io_check_fd (John Barboza) -* unix: unneccessary use const qualifier in container_of (John Barboza) +* unix: unnecessary use const qualifier in container_of (John Barboza) * win,tty: add support for ANSI codes in win10 v1511 (Imran Iqbal) @@ -4718,7 +6210,7 @@ Changes since version 0.11.8: is an int64_t, and no longer an int. (Bert Belder) * process: make uv_spawn() return some types of errors immediately on windows, - instead of passing the error code the the exit callback. This brings it on + instead of passing the error code the exit callback. This brings it on par with libuv's behavior on unix. (Bert Belder) diff --git a/src/libuv/LICENSE b/src/libuv/LICENSE index 28f17339e..6566365d4 100644 --- a/src/libuv/LICENSE +++ b/src/libuv/LICENSE @@ -1,6 +1,3 @@ -libuv is licensed for use as follows: - -==== Copyright (c) 2015-present libuv project contributors. Permission is hereby granted, free of charge, to any person obtaining a copy @@ -20,51 +17,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -==== - -This license applies to parts of libuv originating from the -https://github.com/joyent/libuv repository: - -==== - -Copyright Joyent, Inc. and other Node contributors. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. - -==== - -This license applies to all parts of libuv that are not externally -maintained libraries. - -The externally maintained libraries used by libuv are: - - - tree.h (from FreeBSD), copyright Niels Provos. Two clause BSD license. - - - inet_pton and inet_ntop implementations, contained in src/inet.c, are - copyright the Internet Systems Consortium, Inc., and licensed under the ISC - license. - - - stdint-msvc2008.h (from msinttypes), copyright Alexander Chemeris. Three - clause BSD license. - - - pthread-fixes.c, copyright Google Inc. and Sony Mobile Communications AB. - Three clause BSD license. - - - android-ifaddrs.h, android-ifaddrs.c, copyright Berkeley Software Design - Inc, Kenneth MacKay and Emergya (Cloud4all, FP7/2007-2013, grant agreement - n° 289016). Three clause BSD license. diff --git a/src/libuv/LICENSE-extra b/src/libuv/LICENSE-extra new file mode 100644 index 000000000..7d8ee65fc --- /dev/null +++ b/src/libuv/LICENSE-extra @@ -0,0 +1,36 @@ +This license applies to parts of libuv originating from the +https://github.com/joyent/libuv repository: + +==== + +Copyright Joyent, Inc. and other Node contributors. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. + +==== + +This license applies to all parts of libuv that are not externally +maintained libraries. + +The externally maintained libraries used by libuv are: + + - tree.h (from FreeBSD), copyright Niels Provos. Two clause BSD license. + + - inet_pton and inet_ntop implementations, contained in src/inet.c, are + copyright the Internet Systems Consortium, Inc., and licensed under the ISC + license. diff --git a/src/libuv/LINKS.md b/src/libuv/LINKS.md index b8204e56e..c73c45522 100644 --- a/src/libuv/LINKS.md +++ b/src/libuv/LINKS.md @@ -1,16 +1,20 @@ ### Apps / VM +* [AliceO2](https://github.com/AliceO2Group/AliceO2): The framework and detector specific code for the reconstruction, calibration and simulation for the ALICE experiment at CERN. +* [Beam](https://github.com/BeamMW/beam): A scalable, confidential cryptocurrency based on the Mimblewimble protocol. * [BIND 9](https://bind.isc.org/): DNS software system including an authoritative server, a recursive resolver and related utilities. * [cjdns](https://github.com/cjdelisle/cjdns): Encrypted self-configuring network/VPN routing engine * [clearskies_core](https://github.com/larroy/clearskies_core): Clearskies file synchronization program. (C++11) * [CMake](https://cmake.org) open-source, cross-platform family of tools designed to build, test and package software -* [Coherence](https://github.com/liesware/coherence/): Cryptographic server for modern web apps. +* [Cocos-Engine](https://github.com/cocos/cocos-engine): The runtime framework for Cocos Creator editor. +* [Coherence](https://github.com/liesware/coherence/): Cryptographic server for modern web apps. +* [DPS8M](https://dps8m.gitlab.io): GE ∕ Honeywell ∕ Bull DPS‑8/M and 6180/L68 mainframe simulator. * [DPS-For-IoT](https://github.com/intel/dps-for-iot/wiki): Fully distributed publish/subscribe protocol. * [HashLink](https://github.com/HaxeFoundation/hashlink): Haxe run-time with libuv support included. * [Haywire](https://github.com/kellabyte/Haywire): Asynchronous HTTP server. * [H2O](https://github.com/h2o/h2o): An optimized HTTP server with support for HTTP/1.x and HTTP/2. * [Igropyr](https://github.com/guenchi/Igropyr): a async Scheme http server base on libuv. * [Julia](http://julialang.org/): Scientific computing programming language -* [Kestrel](https://github.com/aspnet/AspNetCore/tree/master/src/Servers/Kestrel): web server (C# + libuv + [ASP.NET Core](http://github.com/aspnet)) +* [Kestrel](https://github.com/dotnet/aspnetcore/tree/main/src/Servers/Kestrel): web server (C# + libuv + [ASP.NET Core](http://github.com/aspnet)) * [Knot DNS Resolver](https://www.knot-resolver.cz/): A minimalistic DNS caching resolver * [Lever](http://leverlanguage.com): runtime, libuv at the 0.9.0 release * [libnode](https://github.com/plenluno/libnode): C++ implementation of Node.js @@ -26,12 +30,14 @@ * [node9](https://github.com/jvburnes/node9): A portable, hybrid, distributed OS based on Inferno, LuaJIT and Libuv * [node.js](http://www.nodejs.org/): Javascript (using Google's V8) + libuv * [node.native](https://github.com/d5/node.native): node.js-like API for C++11 -* [nodeuv](https://github.com/nodeuv): An organization with several c++ wrappers for libs which are used in node.js. * [phastlight](https://github.com/phastlight/phastlight): Command line tool and web server written in PHP 5.3+ inspired by Node.js * [pilight](https://www.pilight.org/): home automation ("domotica") * [pixie](https://github.com/pixie-lang/pixie): clojure-inspired lisp with a tracing JIT +* [Pixie-io](https://github.com/pixie-io/pixie): Open-source observability tool for Kubernetes applications. * [potion](https://github.com/perl11/potion)/[p2](https://github.com/perl11/p2): runtime * [racer](https://libraries.io/rubygems/racer): Ruby web server written as an C extension +* [scala-native-loop](https://github.com/scala-native/scala-native-loop): Extensible event loop and async-oriented IO for Scala Native; powered by libuv +* [Socket Runtime](https://sockets.sh): A runtime for creating native cross-platform software on mobile and desktop using HTML, CSS, and JavaScript * [spider-gazelle](https://github.com/cotag/spider-gazelle): Ruby web server using libuv bindings * [Suave](http://suave.io/): A simple web development F# library providing a lightweight web server and a set of combinators to manipulate route flow and task composition * [Swish](https://github.com/becls/swish/): Concurrency engine with Erlang-like concepts. Includes a web server. @@ -39,6 +45,7 @@ * [Urbit](http://urbit.org): runtime * [uv_callback](https://github.com/litesync/uv_callback) libuv thread communication * [uvloop](https://github.com/MagicStack/uvloop): Ultra fast implementation of python's asyncio event loop on top of libuv +* [WPILib](https://github.com/wpilibsuite/allwpilib): Libraries for creating robot programs for the roboRIO. * [Wren CLI](https://github.com/wren-lang/wren-cli): For io, process, scheduler and timer modules ### Other @@ -59,6 +66,7 @@ * [lluv](https://github.com/moteus/lua-lluv) * C++11 * [uvpp](https://github.com/larroy/uvpp) - Not complete, exposes very few aspects of `libuv` + * [nsuv](https://github.com/nodesource/nsuv) - Template wrapper focused on enforcing compile-time type safety when propagating data * C++17 * [uvw](https://github.com/skypjack/uvw) - Header-only, event based, tiny and easy to use *libuv* wrapper in modern C++. * Python @@ -99,3 +107,7 @@ * [node.pas](https://github.com/vovach777/node.pas) NodeJS-like ecosystem * Haskell * [Z.Haskell](https://z.haskell.world) +* C3 + * [libuv.c3l](https://github.com/velikoss/libuv.c3l) +* C + * [c-asio](https://github.com/zelang-dev/c-asio) A memory safe focus *C framework*, combining [c-raii](https://zelang-dev.github.io/c-raii), `libuv`, **coroutine** and other concurrency primitives. diff --git a/src/libuv/MAINTAINERS.md b/src/libuv/MAINTAINERS.md index fb7e5ef34..ff8be88b7 100644 --- a/src/libuv/MAINTAINERS.md +++ b/src/libuv/MAINTAINERS.md @@ -1,23 +1,16 @@ - # Project Maintainers libuv is currently managed by the following individuals: -* **Anna Henningsen** ([@addaleax](https://github.com/addaleax)) -* **Bartosz Sosnowski** ([@bzoz](https://github.com/bzoz)) * **Ben Noordhuis** ([@bnoordhuis](https://github.com/bnoordhuis)) - GPG key: D77B 1E34 243F BAF0 5F8E 9CC3 4F55 C8C8 46AB 89B9 (pubkey-bnoordhuis) -* **Bert Belder** ([@piscisaureus](https://github.com/piscisaureus)) * **Colin Ihrig** ([@cjihrig](https://github.com/cjihrig)) - GPG key: 94AE 3667 5C46 4D64 BAFA 68DD 7434 390B DBE9 B9C5 (pubkey-cjihrig) - GPG key: 5735 3E0D BDAA A7E8 39B6 6A1A FF47 D5E4 AD8B 4FDC (pubkey-cjihrig-kb) -* **Fedor Indutny** ([@indutny](https://github.com/indutny)) - - GPG key: AF2E EA41 EC34 47BF DD86 FED9 D706 3CCE 19B7 E890 (pubkey-indutny) -* **Imran Iqbal** ([@imran-iq](https://github.com/imran-iq)) - - GPG key: 9DFE AA5F 481B BF77 2D90 03CE D592 4925 2F8E C41A (pubkey-iwuzhere) * **Jameson Nash** ([@vtjnash](https://github.com/vtjnash)) - GPG key: AEAD 0A4B 6867 6775 1A0E 4AEF 34A2 5FB1 2824 6514 (pubkey-vtjnash) -* **John Barboza** ([@jbarz](https://github.com/jbarz)) + - GPG key: CFBB 9CA9 A5BE AFD7 0E2B 3C5A 79A6 7C55 A367 9C8B (pubkey2022-vtjnash) +* **Jiawen Geng** ([@gengjiawen](https://github.com/gengjiawen)) * **Kaoru Takanashi** ([@erw7](https://github.com/erw7)) - GPG Key: 5804 F999 8A92 2AFB A398 47A0 7183 5090 6134 887F (pubkey-erw7) * **Richard Lau** ([@richardlau](https://github.com/richardlau)) @@ -26,6 +19,18 @@ libuv is currently managed by the following individuals: - GPG key: 612F 0EAD 9401 6223 79DF 4402 F28C 3C8D A33C 03BE (pubkey-santigimeno) * **Saúl Ibarra Corretgé** ([@saghul](https://github.com/saghul)) - GPG key: FDF5 1936 4458 319F A823 3DC9 410E 5553 AE9B C059 (pubkey-saghul) +* **Trevor Norris** ([@trevnorris](https://github.com/trevnorris)) + - GPG key: AEFC 279A 0C93 0676 7E58 29A1 251C A676 820D C7F3 (pubkey-trevnorris) + +## Project Maintainers emeriti + +* **Anna Henningsen** ([@addaleax](https://github.com/addaleax)) +* **Bartosz Sosnowski** ([@bzoz](https://github.com/bzoz)) +* **Bert Belder** ([@piscisaureus](https://github.com/piscisaureus)) +* **Fedor Indutny** ([@indutny](https://github.com/indutny)) + - GPG key: AF2E EA41 EC34 47BF DD86 FED9 D706 3CCE 19B7 E890 (pubkey-indutny) +* **Imran Iqbal** ([@imran-iq](https://github.com/imran-iq)) +* **John Barboza** ([@jbarz](https://github.com/jbarz)) ## Storing a maintainer key in Git diff --git a/src/libuv/Makefile.am b/src/libuv/Makefile.am index 4b61ef211..e957b0d45 100644 --- a/src/libuv/Makefile.am +++ b/src/libuv/Makefile.am @@ -27,8 +27,8 @@ uvinclude_HEADERS = include/uv/errno.h \ CLEANFILES = lib_LTLIBRARIES = libuv.la -libuv_la_CFLAGS = @CFLAGS@ -libuv_la_LDFLAGS = -no-undefined -version-info 1:0:0 +libuv_la_CFLAGS = $(AM_CFLAGS) +libuv_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined -version-info 1:0:0 libuv_la_SOURCES = src/fs-poll.c \ src/heap-inl.h \ src/idna.c \ @@ -38,12 +38,15 @@ libuv_la_SOURCES = src/fs-poll.c \ src/random.c \ src/strscpy.c \ src/strscpy.h \ + src/thread-common.c \ src/threadpool.c \ src/timer.c \ src/uv-data-getter-setters.c \ src/uv-common.c \ src/uv-common.h \ - src/version.c + src/version.c \ + src/strtok.c \ + src/strtok.h if SUNOS # Can't be turned into a CC_CHECK_CFLAGS in configure.ac, it makes compilers @@ -56,15 +59,15 @@ if WINNT uvinclude_HEADERS += include/uv/win.h include/uv/tree.h AM_CPPFLAGS += -I$(top_srcdir)/src/win \ -DWIN32_LEAN_AND_MEAN \ - -D_WIN32_WINNT=0x0602 + -D_WIN32_WINNT=0x0A00 libuv_la_SOURCES += src/win/async.c \ - src/win/atomicops-inl.h \ src/win/core.c \ src/win/detect-wakeup.c \ src/win/dl.c \ src/win/error.c \ src/win/fs-event.c \ src/win/fs.c \ + src/win/fs-fd-hash-inl.h \ src/win/getaddrinfo.c \ src/win/getnameinfo.c \ src/win/handle.c \ @@ -94,7 +97,6 @@ else # WINNT uvinclude_HEADERS += include/uv/unix.h AM_CPPFLAGS += -I$(top_srcdir)/src/unix libuv_la_SOURCES += src/unix/async.c \ - src/unix/atomic-ops.h \ src/unix/core.c \ src/unix/dl.c \ src/unix/fs.c \ @@ -108,7 +110,6 @@ libuv_la_SOURCES += src/unix/async.c \ src/unix/process.c \ src/unix/random-devurandom.c \ src/unix/signal.c \ - src/unix/spinlock.h \ src/unix/stream.c \ src/unix/tcp.c \ src/unix/thread.c \ @@ -120,18 +121,26 @@ endif # WINNT EXTRA_DIST = test/fixtures/empty_file \ test/fixtures/load_error.node \ test/fixtures/lorem_ipsum.txt \ + test/fixtures/one_file/one_file \ include \ docs \ img \ CONTRIBUTING.md \ LICENSE \ + LICENSE-extra \ README.md TESTS = test/run-tests check_PROGRAMS = test/run-tests -test_run_tests_CFLAGS = +test_run_tests_CFLAGS = $(AM_CFLAGS) + +if WINNT +check-am: test/run-tests_no_ext +test/run-tests_no_ext: test/run-tests$(EXEEXT) + cp test/run-tests$(EXEEXT) test/run-tests_no_ext +endif if SUNOS # Can't be turned into a CC_CHECK_CFLAGS in configure.ac, it makes compilers @@ -139,7 +148,7 @@ if SUNOS test_run_tests_CFLAGS += -pthreads endif -test_run_tests_LDFLAGS = +test_run_tests_LDFLAGS = $(AM_LDFLAGS) test_run_tests_SOURCES = test/blackhole-server.c \ test/echo-server.c \ test/run-tests.c \ @@ -150,7 +159,6 @@ test_run_tests_SOURCES = test/blackhole-server.c \ test/test-async.c \ test/test-async-null-cb.c \ test/test-barrier.c \ - test/test-callback-order.c \ test/test-callback-stack.c \ test/test-close-fd.c \ test/test-close-order.c \ @@ -190,6 +198,7 @@ test_run_tests_SOURCES = test/blackhole-server.c \ test/test-hrtime.c \ test/test-idle.c \ test/test-idna.c \ + test/test-iouring-pollhup.c \ test/test-ip4-addr.c \ test/test-ip6-addr.c \ test/test-ip-name.c \ @@ -197,12 +206,13 @@ test_run_tests_SOURCES = test/blackhole-server.c \ test/test-ipc-send-recv.c \ test/test-ipc.c \ test/test-list.h \ - test/test-loop-handles.c \ test/test-loop-alive.c \ test/test-loop-close.c \ + test/test-loop-configure.c \ + test/test-loop-handles.c \ + test/test-loop-oom.c \ test/test-loop-stop.c \ test/test-loop-time.c \ - test/test-loop-configure.c \ test/test-metrics.c \ test/test-multiple-listen.c \ test/test-mutexes.c \ @@ -250,11 +260,13 @@ test_run_tests_SOURCES = test/blackhole-server.c \ test/test-spawn.c \ test/test-stdio-over-pipes.c \ test/test-strscpy.c \ + test/test-strtok.c \ test/test-tcp-alloc-cb-fail.c \ test/test-tcp-bind-error.c \ test/test-tcp-bind6-error.c \ test/test-tcp-close-accept.c \ test/test-tcp-close-while-connecting.c \ + test/test-tcp-close-after-read-timeout.c \ test/test-tcp-close.c \ test/test-tcp-close-reset.c \ test/test-tcp-create-socket-early.c \ @@ -265,7 +277,9 @@ test_run_tests_SOURCES = test/blackhole-server.c \ test/test-tcp-flags.c \ test/test-tcp-open.c \ test/test-tcp-read-stop.c \ + test/test-tcp-reuseport.c \ test/test-tcp-read-stop-start.c \ + test/test-tcp-rst.c \ test/test-tcp-shutdown-after-write.c \ test/test-tcp-unexpected-read.c \ test/test-tcp-oob.c \ @@ -274,11 +288,15 @@ test_run_tests_SOURCES = test/blackhole-server.c \ test/test-tcp-writealot.c \ test/test-tcp-write-fail.c \ test/test-tcp-try-write.c \ + test/test-tcp-write-in-a-row.c \ test/test-tcp-try-write-error.c \ test/test-tcp-write-queue-order.c \ test/test-test-macros.c \ test/test-thread-equal.c \ test/test-thread.c \ + test/test-thread-affinity.c \ + test/test-thread-name.c \ + test/test-thread-priority.c \ test/test-threadpool-cancel.c \ test/test-threadpool.c \ test/test-timer-again.c \ @@ -308,7 +326,11 @@ test_run_tests_SOURCES = test/blackhole-server.c \ test/test-udp-send-immediate.c \ test/test-udp-sendmmsg-error.c \ test/test-udp-send-unreachable.c \ + test/test-udp-recv-cb-close-pollerr.c \ + test/test-udp-recvmsg-unreachable-error.c \ test/test-udp-try-send.c \ + test/test-udp-recv-in-a-row.c \ + test/test-udp-reuseport.c \ test/test-uname.c \ test/test-walk-handles.c \ test/test-watcher-cross-stop.c @@ -345,6 +367,7 @@ endif if SUNOS test_run_tests_CFLAGS += -D__EXTENSIONS__ \ -D_XOPEN_SOURCE=500 \ + -DSUNOS_NO_IFADDRS \ -D_REENTRANT endif @@ -388,10 +411,7 @@ libuv_la_SOURCES += src/unix/aix-common.c \ endif if ANDROID -uvinclude_HEADERS += include/uv/android-ifaddrs.h libuv_la_CFLAGS += -D_GNU_SOURCE -libuv_la_SOURCES += src/unix/android-ifaddrs.c \ - src/unix/pthread-fixes.c endif if CYGWIN @@ -415,12 +435,13 @@ libuv_la_CFLAGS += -D_DARWIN_UNLIMITED_SELECT=1 libuv_la_SOURCES += src/unix/bsd-ifaddrs.c \ src/unix/darwin-proctitle.c \ src/unix/darwin-stub.h \ + src/unix/darwin-syscalls.h \ src/unix/darwin.c \ src/unix/fsevents.c \ src/unix/kqueue.c \ src/unix/proctitle.c \ src/unix/random-getentropy.c -test_run_tests_LDFLAGS += -lutil +test_run_tests_LDFLAGS += -lutil -lm endif if DRAGONFLY @@ -430,7 +451,7 @@ libuv_la_SOURCES += src/unix/bsd-ifaddrs.c \ src/unix/freebsd.c \ src/unix/kqueue.c \ src/unix/posix-hrtime.c -test_run_tests_LDFLAGS += -lutil +test_run_tests_LDFLAGS += -lutil -lm endif if FREEBSD @@ -441,7 +462,7 @@ libuv_la_SOURCES += src/unix/bsd-ifaddrs.c \ src/unix/kqueue.c \ src/unix/posix-hrtime.c \ src/unix/random-getrandom.c -test_run_tests_LDFLAGS += -lutil +test_run_tests_LDFLAGS += -lutil -lm endif if HAIKU @@ -457,24 +478,23 @@ endif if HURD uvinclude_HEADERS += include/uv/posix.h -libuv_la_SOURCES += src/unix/no-fsevents.c \ +libuv_la_SOURCES += src/unix/bsd-ifaddrs.c \ + src/unix/no-fsevents.c \ + src/unix/no-proctitle.c \ src/unix/posix-hrtime.c \ - src/unix/posix-poll.c + src/unix/posix-poll.c \ + src/unix/hurd.c endif if LINUX uvinclude_HEADERS += include/uv/linux.h libuv_la_CFLAGS += -D_GNU_SOURCE -libuv_la_SOURCES += src/unix/linux-core.c \ - src/unix/linux-inotify.c \ - src/unix/linux-syscalls.c \ - src/unix/linux-syscalls.h \ +libuv_la_SOURCES += src/unix/linux.c \ src/unix/procfs-exepath.c \ src/unix/proctitle.c \ src/unix/random-getrandom.c \ - src/unix/random-sysctl-linux.c \ - src/unix/epoll.c -test_run_tests_LDFLAGS += -lutil + src/unix/random-sysctl-linux.c +test_run_tests_LDFLAGS += -lutil -lm endif if MSYS @@ -497,7 +517,7 @@ libuv_la_SOURCES += src/unix/bsd-ifaddrs.c \ src/unix/kqueue.c \ src/unix/netbsd.c \ src/unix/posix-hrtime.c -test_run_tests_LDFLAGS += -lutil +test_run_tests_LDFLAGS += -lutil -lm endif if OPENBSD @@ -508,14 +528,13 @@ libuv_la_SOURCES += src/unix/bsd-ifaddrs.c \ src/unix/openbsd.c \ src/unix/posix-hrtime.c \ src/unix/random-getentropy.c -test_run_tests_LDFLAGS += -lutil +test_run_tests_LDFLAGS += -lutil -lm endif if SUNOS uvinclude_HEADERS += include/uv/sunos.h libuv_la_CFLAGS += -D__EXTENSIONS__ \ -D_XOPEN_SOURCE=500 \ - -DSUNOS_NO_IFADDRS \ -D_REENTRANT libuv_la_SOURCES += src/unix/no-proctitle.c \ src/unix/sunos.c @@ -538,8 +557,7 @@ libuv_la_CFLAGS += -D_UNIX03_THREADS \ -qXPLINK \ -qFLOAT=IEEE libuv_la_LDFLAGS += -qXPLINK -libuv_la_SOURCES += src/unix/pthread-fixes.c \ - src/unix/os390.c \ +libuv_la_SOURCES += src/unix/os390.c \ src/unix/os390-syscalls.c \ src/unix/proctitle.c endif diff --git a/src/libuv/Makefile.in b/src/libuv/Makefile.in index 5b0d60175..b578c5682 100644 --- a/src/libuv/Makefile.in +++ b/src/libuv/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.5 from Makefile.am. +# Makefile.in generated by automake 1.18.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2021 Free Software Foundation, Inc. +# Copyright (C) 1994-2025 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -86,6 +86,8 @@ am__make_running_with_option = \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +am__rm_f = rm -f $(am__rm_f_notfound) +am__rm_rf = rm -rf $(am__rm_f_notfound) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -111,16 +113,16 @@ host_triplet = @host@ @WINNT_TRUE@am__append_2 = include/uv/win.h include/uv/tree.h @WINNT_TRUE@am__append_3 = -I$(top_srcdir)/src/win \ @WINNT_TRUE@ -DWIN32_LEAN_AND_MEAN \ -@WINNT_TRUE@ -D_WIN32_WINNT=0x0602 +@WINNT_TRUE@ -D_WIN32_WINNT=0x0A00 @WINNT_TRUE@am__append_4 = src/win/async.c \ -@WINNT_TRUE@ src/win/atomicops-inl.h \ @WINNT_TRUE@ src/win/core.c \ @WINNT_TRUE@ src/win/detect-wakeup.c \ @WINNT_TRUE@ src/win/dl.c \ @WINNT_TRUE@ src/win/error.c \ @WINNT_TRUE@ src/win/fs-event.c \ @WINNT_TRUE@ src/win/fs.c \ +@WINNT_TRUE@ src/win/fs-fd-hash-inl.h \ @WINNT_TRUE@ src/win/getaddrinfo.c \ @WINNT_TRUE@ src/win/getnameinfo.c \ @WINNT_TRUE@ src/win/handle.c \ @@ -148,7 +150,6 @@ host_triplet = @host@ @WINNT_FALSE@am__append_5 = include/uv/unix.h @WINNT_FALSE@am__append_6 = -I$(top_srcdir)/src/unix @WINNT_FALSE@am__append_7 = src/unix/async.c \ -@WINNT_FALSE@ src/unix/atomic-ops.h \ @WINNT_FALSE@ src/unix/core.c \ @WINNT_FALSE@ src/unix/dl.c \ @WINNT_FALSE@ src/unix/fs.c \ @@ -162,7 +163,6 @@ host_triplet = @host@ @WINNT_FALSE@ src/unix/process.c \ @WINNT_FALSE@ src/unix/random-devurandom.c \ @WINNT_FALSE@ src/unix/signal.c \ -@WINNT_FALSE@ src/unix/spinlock.h \ @WINNT_FALSE@ src/unix/stream.c \ @WINNT_FALSE@ src/unix/tcp.c \ @WINNT_FALSE@ src/unix/thread.c \ @@ -193,6 +193,7 @@ check_PROGRAMS = test/run-tests$(EXEEXT) @LINUX_TRUE@am__append_14 = -D_GNU_SOURCE @SUNOS_TRUE@am__append_15 = -D__EXTENSIONS__ \ @SUNOS_TRUE@ -D_XOPEN_SOURCE=500 \ +@SUNOS_TRUE@ -DSUNOS_NO_IFADDRS \ @SUNOS_TRUE@ -D_REENTRANT @OS390_TRUE@am__append_16 = -D_ISOC99_SOURCE \ @@ -229,14 +230,10 @@ check_PROGRAMS = test/run-tests$(EXEEXT) @OS400_TRUE@ src/unix/posix-poll.c \ @OS400_TRUE@ src/unix/no-fsevents.c -@ANDROID_TRUE@am__append_23 = include/uv/android-ifaddrs.h -@ANDROID_TRUE@am__append_24 = -D_GNU_SOURCE -@ANDROID_TRUE@am__append_25 = src/unix/android-ifaddrs.c \ -@ANDROID_TRUE@ src/unix/pthread-fixes.c - -@CYGWIN_TRUE@am__append_26 = include/uv/posix.h -@CYGWIN_TRUE@am__append_27 = -D_GNU_SOURCE -@CYGWIN_TRUE@am__append_28 = src/unix/cygwin.c \ +@ANDROID_TRUE@am__append_23 = -D_GNU_SOURCE +@CYGWIN_TRUE@am__append_24 = include/uv/posix.h +@CYGWIN_TRUE@am__append_25 = -D_GNU_SOURCE +@CYGWIN_TRUE@am__append_26 = src/unix/cygwin.c \ @CYGWIN_TRUE@ src/unix/bsd-ifaddrs.c \ @CYGWIN_TRUE@ src/unix/no-fsevents.c \ @CYGWIN_TRUE@ src/unix/no-proctitle.c \ @@ -246,65 +243,65 @@ check_PROGRAMS = test/run-tests$(EXEEXT) @CYGWIN_TRUE@ src/unix/sysinfo-loadavg.c \ @CYGWIN_TRUE@ src/unix/sysinfo-memory.c -@DARWIN_TRUE@am__append_29 = include/uv/darwin.h -@DARWIN_TRUE@am__append_30 = -D_DARWIN_USE_64_BIT_INODE=1 \ +@DARWIN_TRUE@am__append_27 = include/uv/darwin.h +@DARWIN_TRUE@am__append_28 = -D_DARWIN_USE_64_BIT_INODE=1 \ @DARWIN_TRUE@ -D_DARWIN_UNLIMITED_SELECT=1 -@DARWIN_TRUE@am__append_31 = src/unix/bsd-ifaddrs.c \ +@DARWIN_TRUE@am__append_29 = src/unix/bsd-ifaddrs.c \ @DARWIN_TRUE@ src/unix/darwin-proctitle.c \ @DARWIN_TRUE@ src/unix/darwin-stub.h \ +@DARWIN_TRUE@ src/unix/darwin-syscalls.h \ @DARWIN_TRUE@ src/unix/darwin.c \ @DARWIN_TRUE@ src/unix/fsevents.c \ @DARWIN_TRUE@ src/unix/kqueue.c \ @DARWIN_TRUE@ src/unix/proctitle.c \ @DARWIN_TRUE@ src/unix/random-getentropy.c -@DARWIN_TRUE@am__append_32 = -lutil -@DRAGONFLY_TRUE@am__append_33 = include/uv/bsd.h -@DRAGONFLY_TRUE@am__append_34 = src/unix/bsd-ifaddrs.c \ +@DARWIN_TRUE@am__append_30 = -lutil -lm +@DRAGONFLY_TRUE@am__append_31 = include/uv/bsd.h +@DRAGONFLY_TRUE@am__append_32 = src/unix/bsd-ifaddrs.c \ @DRAGONFLY_TRUE@ src/unix/bsd-proctitle.c \ @DRAGONFLY_TRUE@ src/unix/freebsd.c \ @DRAGONFLY_TRUE@ src/unix/kqueue.c \ @DRAGONFLY_TRUE@ src/unix/posix-hrtime.c -@DRAGONFLY_TRUE@am__append_35 = -lutil -@FREEBSD_TRUE@am__append_36 = include/uv/bsd.h -@FREEBSD_TRUE@am__append_37 = src/unix/bsd-ifaddrs.c \ +@DRAGONFLY_TRUE@am__append_33 = -lutil -lm +@FREEBSD_TRUE@am__append_34 = include/uv/bsd.h +@FREEBSD_TRUE@am__append_35 = src/unix/bsd-ifaddrs.c \ @FREEBSD_TRUE@ src/unix/bsd-proctitle.c \ @FREEBSD_TRUE@ src/unix/freebsd.c \ @FREEBSD_TRUE@ src/unix/kqueue.c \ @FREEBSD_TRUE@ src/unix/posix-hrtime.c \ @FREEBSD_TRUE@ src/unix/random-getrandom.c -@FREEBSD_TRUE@am__append_38 = -lutil -@HAIKU_TRUE@am__append_39 = include/uv/posix.h -@HAIKU_TRUE@am__append_40 = -D_BSD_SOURCE -@HAIKU_TRUE@am__append_41 = src/unix/bsd-ifaddrs.c \ +@FREEBSD_TRUE@am__append_36 = -lutil -lm +@HAIKU_TRUE@am__append_37 = include/uv/posix.h +@HAIKU_TRUE@am__append_38 = -D_BSD_SOURCE +@HAIKU_TRUE@am__append_39 = src/unix/bsd-ifaddrs.c \ @HAIKU_TRUE@ src/unix/haiku.c \ @HAIKU_TRUE@ src/unix/no-fsevents.c \ @HAIKU_TRUE@ src/unix/no-proctitle.c \ @HAIKU_TRUE@ src/unix/posix-hrtime.c \ @HAIKU_TRUE@ src/unix/posix-poll.c -@HURD_TRUE@am__append_42 = include/uv/posix.h -@HURD_TRUE@am__append_43 = src/unix/no-fsevents.c \ +@HURD_TRUE@am__append_40 = include/uv/posix.h +@HURD_TRUE@am__append_41 = src/unix/bsd-ifaddrs.c \ +@HURD_TRUE@ src/unix/no-fsevents.c \ +@HURD_TRUE@ src/unix/no-proctitle.c \ @HURD_TRUE@ src/unix/posix-hrtime.c \ -@HURD_TRUE@ src/unix/posix-poll.c - -@LINUX_TRUE@am__append_44 = include/uv/linux.h -@LINUX_TRUE@am__append_45 = -D_GNU_SOURCE -@LINUX_TRUE@am__append_46 = src/unix/linux-core.c \ -@LINUX_TRUE@ src/unix/linux-inotify.c \ -@LINUX_TRUE@ src/unix/linux-syscalls.c \ -@LINUX_TRUE@ src/unix/linux-syscalls.h \ +@HURD_TRUE@ src/unix/posix-poll.c \ +@HURD_TRUE@ src/unix/hurd.c + +@LINUX_TRUE@am__append_42 = include/uv/linux.h +@LINUX_TRUE@am__append_43 = -D_GNU_SOURCE +@LINUX_TRUE@am__append_44 = src/unix/linux.c \ @LINUX_TRUE@ src/unix/procfs-exepath.c \ @LINUX_TRUE@ src/unix/proctitle.c \ @LINUX_TRUE@ src/unix/random-getrandom.c \ -@LINUX_TRUE@ src/unix/random-sysctl-linux.c \ -@LINUX_TRUE@ src/unix/epoll.c +@LINUX_TRUE@ src/unix/random-sysctl-linux.c -@LINUX_TRUE@am__append_47 = -lutil -@MSYS_TRUE@am__append_48 = -D_GNU_SOURCE -@MSYS_TRUE@am__append_49 = src/unix/cygwin.c \ +@LINUX_TRUE@am__append_45 = -lutil -lm +@MSYS_TRUE@am__append_46 = -D_GNU_SOURCE +@MSYS_TRUE@am__append_47 = src/unix/cygwin.c \ @MSYS_TRUE@ src/unix/bsd-ifaddrs.c \ @MSYS_TRUE@ src/unix/no-fsevents.c \ @MSYS_TRUE@ src/unix/no-proctitle.c \ @@ -314,33 +311,32 @@ check_PROGRAMS = test/run-tests$(EXEEXT) @MSYS_TRUE@ src/unix/sysinfo-loadavg.c \ @MSYS_TRUE@ src/unix/sysinfo-memory.c -@NETBSD_TRUE@am__append_50 = include/uv/bsd.h -@NETBSD_TRUE@am__append_51 = src/unix/bsd-ifaddrs.c \ +@NETBSD_TRUE@am__append_48 = include/uv/bsd.h +@NETBSD_TRUE@am__append_49 = src/unix/bsd-ifaddrs.c \ @NETBSD_TRUE@ src/unix/bsd-proctitle.c \ @NETBSD_TRUE@ src/unix/kqueue.c \ @NETBSD_TRUE@ src/unix/netbsd.c \ @NETBSD_TRUE@ src/unix/posix-hrtime.c -@NETBSD_TRUE@am__append_52 = -lutil -@OPENBSD_TRUE@am__append_53 = include/uv/bsd.h -@OPENBSD_TRUE@am__append_54 = src/unix/bsd-ifaddrs.c \ +@NETBSD_TRUE@am__append_50 = -lutil -lm +@OPENBSD_TRUE@am__append_51 = include/uv/bsd.h +@OPENBSD_TRUE@am__append_52 = src/unix/bsd-ifaddrs.c \ @OPENBSD_TRUE@ src/unix/bsd-proctitle.c \ @OPENBSD_TRUE@ src/unix/kqueue.c \ @OPENBSD_TRUE@ src/unix/openbsd.c \ @OPENBSD_TRUE@ src/unix/posix-hrtime.c \ @OPENBSD_TRUE@ src/unix/random-getentropy.c -@OPENBSD_TRUE@am__append_55 = -lutil -@SUNOS_TRUE@am__append_56 = include/uv/sunos.h -@SUNOS_TRUE@am__append_57 = -D__EXTENSIONS__ \ +@OPENBSD_TRUE@am__append_53 = -lutil -lm +@SUNOS_TRUE@am__append_54 = include/uv/sunos.h +@SUNOS_TRUE@am__append_55 = -D__EXTENSIONS__ \ @SUNOS_TRUE@ -D_XOPEN_SOURCE=500 \ -@SUNOS_TRUE@ -DSUNOS_NO_IFADDRS \ @SUNOS_TRUE@ -D_REENTRANT -@SUNOS_TRUE@am__append_58 = src/unix/no-proctitle.c \ +@SUNOS_TRUE@am__append_56 = src/unix/no-proctitle.c \ @SUNOS_TRUE@ src/unix/sunos.c -@OS390_TRUE@am__append_59 = -D_UNIX03_THREADS \ +@OS390_TRUE@am__append_57 = -D_UNIX03_THREADS \ @OS390_TRUE@ -D_UNIX03_SOURCE \ @OS390_TRUE@ -D_OPEN_SYS_IF_EXT=1 \ @OS390_TRUE@ -D_OPEN_MSGQ_EXT \ @@ -356,9 +352,8 @@ check_PROGRAMS = test/run-tests$(EXEEXT) @OS390_TRUE@ -qXPLINK \ @OS390_TRUE@ -qFLOAT=IEEE -@OS390_TRUE@am__append_60 = -qXPLINK -@OS390_TRUE@am__append_61 = src/unix/pthread-fixes.c \ -@OS390_TRUE@ src/unix/os390.c \ +@OS390_TRUE@am__append_58 = -qXPLINK +@OS390_TRUE@am__append_59 = src/unix/os390.c \ @OS390_TRUE@ src/unix/os390-syscalls.c \ @OS390_TRUE@ src/unix/proctitle.c @@ -382,7 +377,8 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = libuv.pc CONFIG_CLEAN_VPATH_FILES = test/fixtures/empty_file \ - test/fixtures/load_error.node test/fixtures/lorem_ipsum.txt + test/fixtures/load_error.node test/fixtures/lorem_ipsum.txt \ + test/fixtures/one_file/one_file am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -405,10 +401,9 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ + { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \ } am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfigdir)" \ "$(DESTDIR)$(includedir)" "$(DESTDIR)$(uvincludedir)" @@ -416,42 +411,40 @@ LTLIBRARIES = $(lib_LTLIBRARIES) libuv_la_LIBADD = am__libuv_la_SOURCES_DIST = src/fs-poll.c src/heap-inl.h src/idna.c \ src/idna.h src/inet.c src/queue.h src/random.c src/strscpy.c \ - src/strscpy.h src/threadpool.c src/timer.c \ + src/strscpy.h src/thread-common.c src/threadpool.c src/timer.c \ src/uv-data-getter-setters.c src/uv-common.c src/uv-common.h \ - src/version.c src/win/async.c src/win/atomicops-inl.h \ + src/version.c src/strtok.c src/strtok.h src/win/async.c \ src/win/core.c src/win/detect-wakeup.c src/win/dl.c \ src/win/error.c src/win/fs-event.c src/win/fs.c \ - src/win/getaddrinfo.c src/win/getnameinfo.c src/win/handle.c \ - src/win/handle-inl.h src/win/internal.h src/win/loop-watcher.c \ - src/win/pipe.c src/win/poll.c src/win/process-stdio.c \ - src/win/process.c src/win/req-inl.h src/win/signal.c \ - src/win/stream.c src/win/stream-inl.h src/win/tcp.c \ - src/win/thread.c src/win/tty.c src/win/udp.c src/win/util.c \ - src/win/winapi.c src/win/winapi.h src/win/winsock.c \ - src/win/winsock.h src/unix/async.c src/unix/atomic-ops.h \ - src/unix/core.c src/unix/dl.c src/unix/fs.c \ + src/win/fs-fd-hash-inl.h src/win/getaddrinfo.c \ + src/win/getnameinfo.c src/win/handle.c src/win/handle-inl.h \ + src/win/internal.h src/win/loop-watcher.c src/win/pipe.c \ + src/win/poll.c src/win/process-stdio.c src/win/process.c \ + src/win/req-inl.h src/win/signal.c src/win/stream.c \ + src/win/stream-inl.h src/win/tcp.c src/win/thread.c \ + src/win/tty.c src/win/udp.c src/win/util.c src/win/winapi.c \ + src/win/winapi.h src/win/winsock.c src/win/winsock.h \ + src/unix/async.c src/unix/core.c src/unix/dl.c src/unix/fs.c \ src/unix/getaddrinfo.c src/unix/getnameinfo.c \ src/unix/internal.h src/unix/loop-watcher.c src/unix/loop.c \ src/unix/pipe.c src/unix/poll.c src/unix/process.c \ src/unix/random-devurandom.c src/unix/signal.c \ - src/unix/spinlock.h src/unix/stream.c src/unix/tcp.c \ - src/unix/thread.c src/unix/tty.c src/unix/udp.c src/unix/aix.c \ + src/unix/stream.c src/unix/tcp.c src/unix/thread.c \ + src/unix/tty.c src/unix/udp.c src/unix/aix.c \ src/unix/aix-common.c src/unix/ibmi.c src/unix/posix-poll.c \ - src/unix/no-fsevents.c src/unix/android-ifaddrs.c \ - src/unix/pthread-fixes.c src/unix/cygwin.c \ + src/unix/no-fsevents.c src/unix/cygwin.c \ src/unix/bsd-ifaddrs.c src/unix/no-proctitle.c \ src/unix/posix-hrtime.c src/unix/procfs-exepath.c \ src/unix/sysinfo-loadavg.c src/unix/sysinfo-memory.c \ src/unix/darwin-proctitle.c src/unix/darwin-stub.h \ - src/unix/darwin.c src/unix/fsevents.c src/unix/kqueue.c \ - src/unix/proctitle.c src/unix/random-getentropy.c \ - src/unix/bsd-proctitle.c src/unix/freebsd.c \ - src/unix/random-getrandom.c src/unix/haiku.c \ - src/unix/linux-core.c src/unix/linux-inotify.c \ - src/unix/linux-syscalls.c src/unix/linux-syscalls.h \ - src/unix/random-sysctl-linux.c src/unix/epoll.c \ - src/unix/netbsd.c src/unix/openbsd.c src/unix/sunos.c \ - src/unix/os390.c src/unix/os390-syscalls.c + src/unix/darwin-syscalls.h src/unix/darwin.c \ + src/unix/fsevents.c src/unix/kqueue.c src/unix/proctitle.c \ + src/unix/random-getentropy.c src/unix/bsd-proctitle.c \ + src/unix/freebsd.c src/unix/random-getrandom.c \ + src/unix/haiku.c src/unix/hurd.c src/unix/linux.c \ + src/unix/random-sysctl-linux.c src/unix/netbsd.c \ + src/unix/openbsd.c src/unix/sunos.c src/unix/os390.c \ + src/unix/os390-syscalls.c am__dirstamp = $(am__leading_dot)dirstamp @WINNT_TRUE@am__objects_1 = src/win/libuv_la-async.lo \ @WINNT_TRUE@ src/win/libuv_la-core.lo \ @@ -494,9 +487,7 @@ am__dirstamp = $(am__leading_dot)dirstamp @OS400_TRUE@ src/unix/libuv_la-ibmi.lo \ @OS400_TRUE@ src/unix/libuv_la-posix-poll.lo \ @OS400_TRUE@ src/unix/libuv_la-no-fsevents.lo -@ANDROID_TRUE@am__objects_5 = src/unix/libuv_la-android-ifaddrs.lo \ -@ANDROID_TRUE@ src/unix/libuv_la-pthread-fixes.lo -@CYGWIN_TRUE@am__objects_6 = src/unix/libuv_la-cygwin.lo \ +@CYGWIN_TRUE@am__objects_5 = src/unix/libuv_la-cygwin.lo \ @CYGWIN_TRUE@ src/unix/libuv_la-bsd-ifaddrs.lo \ @CYGWIN_TRUE@ src/unix/libuv_la-no-fsevents.lo \ @CYGWIN_TRUE@ src/unix/libuv_la-no-proctitle.lo \ @@ -505,42 +496,42 @@ am__dirstamp = $(am__leading_dot)dirstamp @CYGWIN_TRUE@ src/unix/libuv_la-procfs-exepath.lo \ @CYGWIN_TRUE@ src/unix/libuv_la-sysinfo-loadavg.lo \ @CYGWIN_TRUE@ src/unix/libuv_la-sysinfo-memory.lo -@DARWIN_TRUE@am__objects_7 = src/unix/libuv_la-bsd-ifaddrs.lo \ +@DARWIN_TRUE@am__objects_6 = src/unix/libuv_la-bsd-ifaddrs.lo \ @DARWIN_TRUE@ src/unix/libuv_la-darwin-proctitle.lo \ @DARWIN_TRUE@ src/unix/libuv_la-darwin.lo \ @DARWIN_TRUE@ src/unix/libuv_la-fsevents.lo \ @DARWIN_TRUE@ src/unix/libuv_la-kqueue.lo \ @DARWIN_TRUE@ src/unix/libuv_la-proctitle.lo \ @DARWIN_TRUE@ src/unix/libuv_la-random-getentropy.lo -@DRAGONFLY_TRUE@am__objects_8 = src/unix/libuv_la-bsd-ifaddrs.lo \ +@DRAGONFLY_TRUE@am__objects_7 = src/unix/libuv_la-bsd-ifaddrs.lo \ @DRAGONFLY_TRUE@ src/unix/libuv_la-bsd-proctitle.lo \ @DRAGONFLY_TRUE@ src/unix/libuv_la-freebsd.lo \ @DRAGONFLY_TRUE@ src/unix/libuv_la-kqueue.lo \ @DRAGONFLY_TRUE@ src/unix/libuv_la-posix-hrtime.lo -@FREEBSD_TRUE@am__objects_9 = src/unix/libuv_la-bsd-ifaddrs.lo \ +@FREEBSD_TRUE@am__objects_8 = src/unix/libuv_la-bsd-ifaddrs.lo \ @FREEBSD_TRUE@ src/unix/libuv_la-bsd-proctitle.lo \ @FREEBSD_TRUE@ src/unix/libuv_la-freebsd.lo \ @FREEBSD_TRUE@ src/unix/libuv_la-kqueue.lo \ @FREEBSD_TRUE@ src/unix/libuv_la-posix-hrtime.lo \ @FREEBSD_TRUE@ src/unix/libuv_la-random-getrandom.lo -@HAIKU_TRUE@am__objects_10 = src/unix/libuv_la-bsd-ifaddrs.lo \ +@HAIKU_TRUE@am__objects_9 = src/unix/libuv_la-bsd-ifaddrs.lo \ @HAIKU_TRUE@ src/unix/libuv_la-haiku.lo \ @HAIKU_TRUE@ src/unix/libuv_la-no-fsevents.lo \ @HAIKU_TRUE@ src/unix/libuv_la-no-proctitle.lo \ @HAIKU_TRUE@ src/unix/libuv_la-posix-hrtime.lo \ @HAIKU_TRUE@ src/unix/libuv_la-posix-poll.lo -@HURD_TRUE@am__objects_11 = src/unix/libuv_la-no-fsevents.lo \ +@HURD_TRUE@am__objects_10 = src/unix/libuv_la-bsd-ifaddrs.lo \ +@HURD_TRUE@ src/unix/libuv_la-no-fsevents.lo \ +@HURD_TRUE@ src/unix/libuv_la-no-proctitle.lo \ @HURD_TRUE@ src/unix/libuv_la-posix-hrtime.lo \ -@HURD_TRUE@ src/unix/libuv_la-posix-poll.lo -@LINUX_TRUE@am__objects_12 = src/unix/libuv_la-linux-core.lo \ -@LINUX_TRUE@ src/unix/libuv_la-linux-inotify.lo \ -@LINUX_TRUE@ src/unix/libuv_la-linux-syscalls.lo \ +@HURD_TRUE@ src/unix/libuv_la-posix-poll.lo \ +@HURD_TRUE@ src/unix/libuv_la-hurd.lo +@LINUX_TRUE@am__objects_11 = src/unix/libuv_la-linux.lo \ @LINUX_TRUE@ src/unix/libuv_la-procfs-exepath.lo \ @LINUX_TRUE@ src/unix/libuv_la-proctitle.lo \ @LINUX_TRUE@ src/unix/libuv_la-random-getrandom.lo \ -@LINUX_TRUE@ src/unix/libuv_la-random-sysctl-linux.lo \ -@LINUX_TRUE@ src/unix/libuv_la-epoll.lo -@MSYS_TRUE@am__objects_13 = src/unix/libuv_la-cygwin.lo \ +@LINUX_TRUE@ src/unix/libuv_la-random-sysctl-linux.lo +@MSYS_TRUE@am__objects_12 = src/unix/libuv_la-cygwin.lo \ @MSYS_TRUE@ src/unix/libuv_la-bsd-ifaddrs.lo \ @MSYS_TRUE@ src/unix/libuv_la-no-fsevents.lo \ @MSYS_TRUE@ src/unix/libuv_la-no-proctitle.lo \ @@ -549,34 +540,34 @@ am__dirstamp = $(am__leading_dot)dirstamp @MSYS_TRUE@ src/unix/libuv_la-procfs-exepath.lo \ @MSYS_TRUE@ src/unix/libuv_la-sysinfo-loadavg.lo \ @MSYS_TRUE@ src/unix/libuv_la-sysinfo-memory.lo -@NETBSD_TRUE@am__objects_14 = src/unix/libuv_la-bsd-ifaddrs.lo \ +@NETBSD_TRUE@am__objects_13 = src/unix/libuv_la-bsd-ifaddrs.lo \ @NETBSD_TRUE@ src/unix/libuv_la-bsd-proctitle.lo \ @NETBSD_TRUE@ src/unix/libuv_la-kqueue.lo \ @NETBSD_TRUE@ src/unix/libuv_la-netbsd.lo \ @NETBSD_TRUE@ src/unix/libuv_la-posix-hrtime.lo -@OPENBSD_TRUE@am__objects_15 = src/unix/libuv_la-bsd-ifaddrs.lo \ +@OPENBSD_TRUE@am__objects_14 = src/unix/libuv_la-bsd-ifaddrs.lo \ @OPENBSD_TRUE@ src/unix/libuv_la-bsd-proctitle.lo \ @OPENBSD_TRUE@ src/unix/libuv_la-kqueue.lo \ @OPENBSD_TRUE@ src/unix/libuv_la-openbsd.lo \ @OPENBSD_TRUE@ src/unix/libuv_la-posix-hrtime.lo \ @OPENBSD_TRUE@ src/unix/libuv_la-random-getentropy.lo -@SUNOS_TRUE@am__objects_16 = src/unix/libuv_la-no-proctitle.lo \ +@SUNOS_TRUE@am__objects_15 = src/unix/libuv_la-no-proctitle.lo \ @SUNOS_TRUE@ src/unix/libuv_la-sunos.lo -@OS390_TRUE@am__objects_17 = src/unix/libuv_la-pthread-fixes.lo \ -@OS390_TRUE@ src/unix/libuv_la-os390.lo \ +@OS390_TRUE@am__objects_16 = src/unix/libuv_la-os390.lo \ @OS390_TRUE@ src/unix/libuv_la-os390-syscalls.lo \ @OS390_TRUE@ src/unix/libuv_la-proctitle.lo am_libuv_la_OBJECTS = src/libuv_la-fs-poll.lo src/libuv_la-idna.lo \ src/libuv_la-inet.lo src/libuv_la-random.lo \ - src/libuv_la-strscpy.lo src/libuv_la-threadpool.lo \ - src/libuv_la-timer.lo src/libuv_la-uv-data-getter-setters.lo \ + src/libuv_la-strscpy.lo src/libuv_la-thread-common.lo \ + src/libuv_la-threadpool.lo src/libuv_la-timer.lo \ + src/libuv_la-uv-data-getter-setters.lo \ src/libuv_la-uv-common.lo src/libuv_la-version.lo \ - $(am__objects_1) $(am__objects_2) $(am__objects_3) \ - $(am__objects_4) $(am__objects_5) $(am__objects_6) \ - $(am__objects_7) $(am__objects_8) $(am__objects_9) \ - $(am__objects_10) $(am__objects_11) $(am__objects_12) \ - $(am__objects_13) $(am__objects_14) $(am__objects_15) \ - $(am__objects_16) $(am__objects_17) + src/libuv_la-strtok.lo $(am__objects_1) $(am__objects_2) \ + $(am__objects_3) $(am__objects_4) $(am__objects_5) \ + $(am__objects_6) $(am__objects_7) $(am__objects_8) \ + $(am__objects_9) $(am__objects_10) $(am__objects_11) \ + $(am__objects_12) $(am__objects_13) $(am__objects_14) \ + $(am__objects_15) $(am__objects_16) libuv_la_OBJECTS = $(am_libuv_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -589,32 +580,33 @@ am__test_run_tests_SOURCES_DIST = test/blackhole-server.c \ test/echo-server.c test/run-tests.c test/runner.c \ test/runner.h test/task.h test/test-active.c test/test-async.c \ test/test-async-null-cb.c test/test-barrier.c \ - test/test-callback-order.c test/test-callback-stack.c \ - test/test-close-fd.c test/test-close-order.c \ - test/test-condvar.c test/test-connect-unspecified.c \ - test/test-connection-fail.c test/test-cwd-and-chdir.c \ - test/test-default-loop-close.c test/test-delayed-accept.c \ - test/test-dlerror.c test/test-eintr-handling.c \ - test/test-embed.c test/test-emfile.c test/test-env-vars.c \ - test/test-error.c test/test-fail-always.c \ - test/test-fs-copyfile.c test/test-fs-event.c \ - test/test-fs-poll.c test/test-fs.c test/test-fs-readdir.c \ - test/test-fs-fd-hash.c test/test-fs-open-flags.c \ - test/test-fork.c test/test-getters-setters.c \ - test/test-get-currentexe.c test/test-get-loadavg.c \ - test/test-get-memory.c test/test-get-passwd.c \ - test/test-getaddrinfo.c test/test-gethostname.c \ - test/test-getnameinfo.c test/test-getsockname.c \ - test/test-gettimeofday.c test/test-handle-fileno.c \ - test/test-homedir.c test/test-hrtime.c test/test-idle.c \ - test/test-idna.c test/test-ip4-addr.c test/test-ip6-addr.c \ - test/test-ip-name.c test/test-ipc-heavy-traffic-deadlock-bug.c \ + test/test-callback-stack.c test/test-close-fd.c \ + test/test-close-order.c test/test-condvar.c \ + test/test-connect-unspecified.c test/test-connection-fail.c \ + test/test-cwd-and-chdir.c test/test-default-loop-close.c \ + test/test-delayed-accept.c test/test-dlerror.c \ + test/test-eintr-handling.c test/test-embed.c \ + test/test-emfile.c test/test-env-vars.c test/test-error.c \ + test/test-fail-always.c test/test-fs-copyfile.c \ + test/test-fs-event.c test/test-fs-poll.c test/test-fs.c \ + test/test-fs-readdir.c test/test-fs-fd-hash.c \ + test/test-fs-open-flags.c test/test-fork.c \ + test/test-getters-setters.c test/test-get-currentexe.c \ + test/test-get-loadavg.c test/test-get-memory.c \ + test/test-get-passwd.c test/test-getaddrinfo.c \ + test/test-gethostname.c test/test-getnameinfo.c \ + test/test-getsockname.c test/test-gettimeofday.c \ + test/test-handle-fileno.c test/test-homedir.c \ + test/test-hrtime.c test/test-idle.c test/test-idna.c \ + test/test-iouring-pollhup.c test/test-ip4-addr.c \ + test/test-ip6-addr.c test/test-ip-name.c \ + test/test-ipc-heavy-traffic-deadlock-bug.c \ test/test-ipc-send-recv.c test/test-ipc.c test/test-list.h \ - test/test-loop-handles.c test/test-loop-alive.c \ - test/test-loop-close.c test/test-loop-stop.c \ - test/test-loop-time.c test/test-loop-configure.c \ - test/test-metrics.c test/test-multiple-listen.c \ - test/test-mutexes.c \ + test/test-loop-alive.c test/test-loop-close.c \ + test/test-loop-configure.c test/test-loop-handles.c \ + test/test-loop-oom.c test/test-loop-stop.c \ + test/test-loop-time.c test/test-metrics.c \ + test/test-multiple-listen.c test/test-mutexes.c \ test/test-not-readable-nor-writable-on-read-error.c \ test/test-not-writable-after-shutdown.c test/test-osx-select.c \ test/test-pass-always.c test/test-ping-pong.c \ @@ -640,28 +632,31 @@ am__test_run_tests_SOURCES_DIST = test/blackhole-server.c \ test/test-signal-pending-on-close.c test/test-signal.c \ test/test-socket-buffer-size.c test/test-spawn.c \ test/test-stdio-over-pipes.c test/test-strscpy.c \ - test/test-tcp-alloc-cb-fail.c test/test-tcp-bind-error.c \ - test/test-tcp-bind6-error.c test/test-tcp-close-accept.c \ - test/test-tcp-close-while-connecting.c test/test-tcp-close.c \ + test/test-strtok.c test/test-tcp-alloc-cb-fail.c \ + test/test-tcp-bind-error.c test/test-tcp-bind6-error.c \ + test/test-tcp-close-accept.c \ + test/test-tcp-close-while-connecting.c \ + test/test-tcp-close-after-read-timeout.c test/test-tcp-close.c \ test/test-tcp-close-reset.c \ test/test-tcp-create-socket-early.c \ test/test-tcp-connect-error-after-write.c \ test/test-tcp-connect-error.c test/test-tcp-connect-timeout.c \ test/test-tcp-connect6-error.c test/test-tcp-flags.c \ test/test-tcp-open.c test/test-tcp-read-stop.c \ - test/test-tcp-read-stop-start.c \ - test/test-tcp-shutdown-after-write.c \ + test/test-tcp-reuseport.c test/test-tcp-read-stop-start.c \ + test/test-tcp-rst.c test/test-tcp-shutdown-after-write.c \ test/test-tcp-unexpected-read.c test/test-tcp-oob.c \ test/test-tcp-write-to-half-open-connection.c \ test/test-tcp-write-after-connect.c test/test-tcp-writealot.c \ test/test-tcp-write-fail.c test/test-tcp-try-write.c \ - test/test-tcp-try-write-error.c \ + test/test-tcp-write-in-a-row.c test/test-tcp-try-write-error.c \ test/test-tcp-write-queue-order.c test/test-test-macros.c \ test/test-thread-equal.c test/test-thread.c \ - test/test-threadpool-cancel.c test/test-threadpool.c \ - test/test-timer-again.c test/test-timer-from-check.c \ - test/test-timer.c test/test-tmpdir.c \ - test/test-tty-duplicate-key.c \ + test/test-thread-affinity.c test/test-thread-name.c \ + test/test-thread-priority.c test/test-threadpool-cancel.c \ + test/test-threadpool.c test/test-timer-again.c \ + test/test-timer-from-check.c test/test-timer.c \ + test/test-tmpdir.c test/test-tty-duplicate-key.c \ test/test-tty-escape-sequence-processing.c test/test-tty.c \ test/test-udp-alloc-cb-fail.c test/test-udp-bind.c \ test/test-udp-connect.c test/test-udp-connect6.c \ @@ -674,12 +669,16 @@ am__test_run_tests_SOURCES_DIST = test/blackhole-server.c \ test/test-udp-options.c test/test-udp-send-and-recv.c \ test/test-udp-send-hang-loop.c test/test-udp-send-immediate.c \ test/test-udp-sendmmsg-error.c \ - test/test-udp-send-unreachable.c test/test-udp-try-send.c \ - test/test-uname.c test/test-walk-handles.c \ - test/test-watcher-cross-stop.c test/runner-win.c \ - test/runner-win.h test/runner-unix.c test/runner-unix.h -@WINNT_TRUE@am__objects_18 = test/run_tests-runner-win.$(OBJEXT) -@WINNT_FALSE@am__objects_19 = test/run_tests-runner-unix.$(OBJEXT) + test/test-udp-send-unreachable.c \ + test/test-udp-recv-cb-close-pollerr.c \ + test/test-udp-recvmsg-unreachable-error.c \ + test/test-udp-try-send.c test/test-udp-recv-in-a-row.c \ + test/test-udp-reuseport.c test/test-uname.c \ + test/test-walk-handles.c test/test-watcher-cross-stop.c \ + test/runner-win.c test/runner-win.h test/runner-unix.c \ + test/runner-unix.h +@WINNT_TRUE@am__objects_17 = test/run_tests-runner-win.$(OBJEXT) +@WINNT_FALSE@am__objects_18 = test/run_tests-runner-unix.$(OBJEXT) am_test_run_tests_OBJECTS = test/run_tests-blackhole-server.$(OBJEXT) \ test/run_tests-echo-server.$(OBJEXT) \ test/run_tests-run-tests.$(OBJEXT) \ @@ -688,7 +687,6 @@ am_test_run_tests_OBJECTS = test/run_tests-blackhole-server.$(OBJEXT) \ test/run_tests-test-async.$(OBJEXT) \ test/run_tests-test-async-null-cb.$(OBJEXT) \ test/run_tests-test-barrier.$(OBJEXT) \ - test/run_tests-test-callback-order.$(OBJEXT) \ test/run_tests-test-callback-stack.$(OBJEXT) \ test/run_tests-test-close-fd.$(OBJEXT) \ test/run_tests-test-close-order.$(OBJEXT) \ @@ -728,18 +726,20 @@ am_test_run_tests_OBJECTS = test/run_tests-blackhole-server.$(OBJEXT) \ test/run_tests-test-hrtime.$(OBJEXT) \ test/run_tests-test-idle.$(OBJEXT) \ test/run_tests-test-idna.$(OBJEXT) \ + test/run_tests-test-iouring-pollhup.$(OBJEXT) \ test/run_tests-test-ip4-addr.$(OBJEXT) \ test/run_tests-test-ip6-addr.$(OBJEXT) \ test/run_tests-test-ip-name.$(OBJEXT) \ test/run_tests-test-ipc-heavy-traffic-deadlock-bug.$(OBJEXT) \ test/run_tests-test-ipc-send-recv.$(OBJEXT) \ test/run_tests-test-ipc.$(OBJEXT) \ - test/run_tests-test-loop-handles.$(OBJEXT) \ test/run_tests-test-loop-alive.$(OBJEXT) \ test/run_tests-test-loop-close.$(OBJEXT) \ + test/run_tests-test-loop-configure.$(OBJEXT) \ + test/run_tests-test-loop-handles.$(OBJEXT) \ + test/run_tests-test-loop-oom.$(OBJEXT) \ test/run_tests-test-loop-stop.$(OBJEXT) \ test/run_tests-test-loop-time.$(OBJEXT) \ - test/run_tests-test-loop-configure.$(OBJEXT) \ test/run_tests-test-metrics.$(OBJEXT) \ test/run_tests-test-multiple-listen.$(OBJEXT) \ test/run_tests-test-mutexes.$(OBJEXT) \ @@ -787,11 +787,13 @@ am_test_run_tests_OBJECTS = test/run_tests-blackhole-server.$(OBJEXT) \ test/run_tests-test-spawn.$(OBJEXT) \ test/run_tests-test-stdio-over-pipes.$(OBJEXT) \ test/run_tests-test-strscpy.$(OBJEXT) \ + test/run_tests-test-strtok.$(OBJEXT) \ test/run_tests-test-tcp-alloc-cb-fail.$(OBJEXT) \ test/run_tests-test-tcp-bind-error.$(OBJEXT) \ test/run_tests-test-tcp-bind6-error.$(OBJEXT) \ test/run_tests-test-tcp-close-accept.$(OBJEXT) \ test/run_tests-test-tcp-close-while-connecting.$(OBJEXT) \ + test/run_tests-test-tcp-close-after-read-timeout.$(OBJEXT) \ test/run_tests-test-tcp-close.$(OBJEXT) \ test/run_tests-test-tcp-close-reset.$(OBJEXT) \ test/run_tests-test-tcp-create-socket-early.$(OBJEXT) \ @@ -802,7 +804,9 @@ am_test_run_tests_OBJECTS = test/run_tests-blackhole-server.$(OBJEXT) \ test/run_tests-test-tcp-flags.$(OBJEXT) \ test/run_tests-test-tcp-open.$(OBJEXT) \ test/run_tests-test-tcp-read-stop.$(OBJEXT) \ + test/run_tests-test-tcp-reuseport.$(OBJEXT) \ test/run_tests-test-tcp-read-stop-start.$(OBJEXT) \ + test/run_tests-test-tcp-rst.$(OBJEXT) \ test/run_tests-test-tcp-shutdown-after-write.$(OBJEXT) \ test/run_tests-test-tcp-unexpected-read.$(OBJEXT) \ test/run_tests-test-tcp-oob.$(OBJEXT) \ @@ -811,11 +815,15 @@ am_test_run_tests_OBJECTS = test/run_tests-blackhole-server.$(OBJEXT) \ test/run_tests-test-tcp-writealot.$(OBJEXT) \ test/run_tests-test-tcp-write-fail.$(OBJEXT) \ test/run_tests-test-tcp-try-write.$(OBJEXT) \ + test/run_tests-test-tcp-write-in-a-row.$(OBJEXT) \ test/run_tests-test-tcp-try-write-error.$(OBJEXT) \ test/run_tests-test-tcp-write-queue-order.$(OBJEXT) \ test/run_tests-test-test-macros.$(OBJEXT) \ test/run_tests-test-thread-equal.$(OBJEXT) \ test/run_tests-test-thread.$(OBJEXT) \ + test/run_tests-test-thread-affinity.$(OBJEXT) \ + test/run_tests-test-thread-name.$(OBJEXT) \ + test/run_tests-test-thread-priority.$(OBJEXT) \ test/run_tests-test-threadpool-cancel.$(OBJEXT) \ test/run_tests-test-threadpool.$(OBJEXT) \ test/run_tests-test-timer-again.$(OBJEXT) \ @@ -845,11 +853,15 @@ am_test_run_tests_OBJECTS = test/run_tests-blackhole-server.$(OBJEXT) \ test/run_tests-test-udp-send-immediate.$(OBJEXT) \ test/run_tests-test-udp-sendmmsg-error.$(OBJEXT) \ test/run_tests-test-udp-send-unreachable.$(OBJEXT) \ + test/run_tests-test-udp-recv-cb-close-pollerr.$(OBJEXT) \ + test/run_tests-test-udp-recvmsg-unreachable-error.$(OBJEXT) \ test/run_tests-test-udp-try-send.$(OBJEXT) \ + test/run_tests-test-udp-recv-in-a-row.$(OBJEXT) \ + test/run_tests-test-udp-reuseport.$(OBJEXT) \ test/run_tests-test-uname.$(OBJEXT) \ test/run_tests-test-walk-handles.$(OBJEXT) \ test/run_tests-test-watcher-cross-stop.$(OBJEXT) \ - $(am__objects_18) $(am__objects_19) + $(am__objects_17) $(am__objects_18) test_run_tests_OBJECTS = $(am_test_run_tests_OBJECTS) test_run_tests_DEPENDENCIES = libuv.la test_run_tests_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ @@ -876,6 +888,8 @@ am__depfiles_remade = src/$(DEPDIR)/libuv_la-fs-poll.Plo \ src/$(DEPDIR)/libuv_la-inet.Plo \ src/$(DEPDIR)/libuv_la-random.Plo \ src/$(DEPDIR)/libuv_la-strscpy.Plo \ + src/$(DEPDIR)/libuv_la-strtok.Plo \ + src/$(DEPDIR)/libuv_la-thread-common.Plo \ src/$(DEPDIR)/libuv_la-threadpool.Plo \ src/$(DEPDIR)/libuv_la-timer.Plo \ src/$(DEPDIR)/libuv_la-uv-common.Plo \ @@ -883,7 +897,6 @@ am__depfiles_remade = src/$(DEPDIR)/libuv_la-fs-poll.Plo \ src/$(DEPDIR)/libuv_la-version.Plo \ src/unix/$(DEPDIR)/libuv_la-aix-common.Plo \ src/unix/$(DEPDIR)/libuv_la-aix.Plo \ - src/unix/$(DEPDIR)/libuv_la-android-ifaddrs.Plo \ src/unix/$(DEPDIR)/libuv_la-async.Plo \ src/unix/$(DEPDIR)/libuv_la-bsd-ifaddrs.Plo \ src/unix/$(DEPDIR)/libuv_la-bsd-proctitle.Plo \ @@ -892,18 +905,16 @@ am__depfiles_remade = src/$(DEPDIR)/libuv_la-fs-poll.Plo \ src/unix/$(DEPDIR)/libuv_la-darwin-proctitle.Plo \ src/unix/$(DEPDIR)/libuv_la-darwin.Plo \ src/unix/$(DEPDIR)/libuv_la-dl.Plo \ - src/unix/$(DEPDIR)/libuv_la-epoll.Plo \ src/unix/$(DEPDIR)/libuv_la-freebsd.Plo \ src/unix/$(DEPDIR)/libuv_la-fs.Plo \ src/unix/$(DEPDIR)/libuv_la-fsevents.Plo \ src/unix/$(DEPDIR)/libuv_la-getaddrinfo.Plo \ src/unix/$(DEPDIR)/libuv_la-getnameinfo.Plo \ src/unix/$(DEPDIR)/libuv_la-haiku.Plo \ + src/unix/$(DEPDIR)/libuv_la-hurd.Plo \ src/unix/$(DEPDIR)/libuv_la-ibmi.Plo \ src/unix/$(DEPDIR)/libuv_la-kqueue.Plo \ - src/unix/$(DEPDIR)/libuv_la-linux-core.Plo \ - src/unix/$(DEPDIR)/libuv_la-linux-inotify.Plo \ - src/unix/$(DEPDIR)/libuv_la-linux-syscalls.Plo \ + src/unix/$(DEPDIR)/libuv_la-linux.Plo \ src/unix/$(DEPDIR)/libuv_la-loop-watcher.Plo \ src/unix/$(DEPDIR)/libuv_la-loop.Plo \ src/unix/$(DEPDIR)/libuv_la-netbsd.Plo \ @@ -919,7 +930,6 @@ am__depfiles_remade = src/$(DEPDIR)/libuv_la-fs-poll.Plo \ src/unix/$(DEPDIR)/libuv_la-process.Plo \ src/unix/$(DEPDIR)/libuv_la-procfs-exepath.Plo \ src/unix/$(DEPDIR)/libuv_la-proctitle.Plo \ - src/unix/$(DEPDIR)/libuv_la-pthread-fixes.Plo \ src/unix/$(DEPDIR)/libuv_la-random-devurandom.Plo \ src/unix/$(DEPDIR)/libuv_la-random-getentropy.Plo \ src/unix/$(DEPDIR)/libuv_la-random-getrandom.Plo \ @@ -967,7 +977,6 @@ am__depfiles_remade = src/$(DEPDIR)/libuv_la-fs-poll.Plo \ test/$(DEPDIR)/run_tests-test-async-null-cb.Po \ test/$(DEPDIR)/run_tests-test-async.Po \ test/$(DEPDIR)/run_tests-test-barrier.Po \ - test/$(DEPDIR)/run_tests-test-callback-order.Po \ test/$(DEPDIR)/run_tests-test-callback-stack.Po \ test/$(DEPDIR)/run_tests-test-close-fd.Po \ test/$(DEPDIR)/run_tests-test-close-order.Po \ @@ -1007,6 +1016,7 @@ am__depfiles_remade = src/$(DEPDIR)/libuv_la-fs-poll.Plo \ test/$(DEPDIR)/run_tests-test-hrtime.Po \ test/$(DEPDIR)/run_tests-test-idle.Po \ test/$(DEPDIR)/run_tests-test-idna.Po \ + test/$(DEPDIR)/run_tests-test-iouring-pollhup.Po \ test/$(DEPDIR)/run_tests-test-ip-name.Po \ test/$(DEPDIR)/run_tests-test-ip4-addr.Po \ test/$(DEPDIR)/run_tests-test-ip6-addr.Po \ @@ -1017,6 +1027,7 @@ am__depfiles_remade = src/$(DEPDIR)/libuv_la-fs-poll.Plo \ test/$(DEPDIR)/run_tests-test-loop-close.Po \ test/$(DEPDIR)/run_tests-test-loop-configure.Po \ test/$(DEPDIR)/run_tests-test-loop-handles.Po \ + test/$(DEPDIR)/run_tests-test-loop-oom.Po \ test/$(DEPDIR)/run_tests-test-loop-stop.Po \ test/$(DEPDIR)/run_tests-test-loop-time.Po \ test/$(DEPDIR)/run_tests-test-metrics.Po \ @@ -1066,10 +1077,12 @@ am__depfiles_remade = src/$(DEPDIR)/libuv_la-fs-poll.Plo \ test/$(DEPDIR)/run_tests-test-spawn.Po \ test/$(DEPDIR)/run_tests-test-stdio-over-pipes.Po \ test/$(DEPDIR)/run_tests-test-strscpy.Po \ + test/$(DEPDIR)/run_tests-test-strtok.Po \ test/$(DEPDIR)/run_tests-test-tcp-alloc-cb-fail.Po \ test/$(DEPDIR)/run_tests-test-tcp-bind-error.Po \ test/$(DEPDIR)/run_tests-test-tcp-bind6-error.Po \ test/$(DEPDIR)/run_tests-test-tcp-close-accept.Po \ + test/$(DEPDIR)/run_tests-test-tcp-close-after-read-timeout.Po \ test/$(DEPDIR)/run_tests-test-tcp-close-reset.Po \ test/$(DEPDIR)/run_tests-test-tcp-close-while-connecting.Po \ test/$(DEPDIR)/run_tests-test-tcp-close.Po \ @@ -1083,17 +1096,23 @@ am__depfiles_remade = src/$(DEPDIR)/libuv_la-fs-poll.Plo \ test/$(DEPDIR)/run_tests-test-tcp-open.Po \ test/$(DEPDIR)/run_tests-test-tcp-read-stop-start.Po \ test/$(DEPDIR)/run_tests-test-tcp-read-stop.Po \ + test/$(DEPDIR)/run_tests-test-tcp-reuseport.Po \ + test/$(DEPDIR)/run_tests-test-tcp-rst.Po \ test/$(DEPDIR)/run_tests-test-tcp-shutdown-after-write.Po \ test/$(DEPDIR)/run_tests-test-tcp-try-write-error.Po \ test/$(DEPDIR)/run_tests-test-tcp-try-write.Po \ test/$(DEPDIR)/run_tests-test-tcp-unexpected-read.Po \ test/$(DEPDIR)/run_tests-test-tcp-write-after-connect.Po \ test/$(DEPDIR)/run_tests-test-tcp-write-fail.Po \ + test/$(DEPDIR)/run_tests-test-tcp-write-in-a-row.Po \ test/$(DEPDIR)/run_tests-test-tcp-write-queue-order.Po \ test/$(DEPDIR)/run_tests-test-tcp-write-to-half-open-connection.Po \ test/$(DEPDIR)/run_tests-test-tcp-writealot.Po \ test/$(DEPDIR)/run_tests-test-test-macros.Po \ + test/$(DEPDIR)/run_tests-test-thread-affinity.Po \ test/$(DEPDIR)/run_tests-test-thread-equal.Po \ + test/$(DEPDIR)/run_tests-test-thread-name.Po \ + test/$(DEPDIR)/run_tests-test-thread-priority.Po \ test/$(DEPDIR)/run_tests-test-thread.Po \ test/$(DEPDIR)/run_tests-test-threadpool-cancel.Po \ test/$(DEPDIR)/run_tests-test-threadpool.Po \ @@ -1119,6 +1138,10 @@ am__depfiles_remade = src/$(DEPDIR)/libuv_la-fs-poll.Plo \ test/$(DEPDIR)/run_tests-test-udp-multicast-ttl.Po \ test/$(DEPDIR)/run_tests-test-udp-open.Po \ test/$(DEPDIR)/run_tests-test-udp-options.Po \ + test/$(DEPDIR)/run_tests-test-udp-recv-cb-close-pollerr.Po \ + test/$(DEPDIR)/run_tests-test-udp-recv-in-a-row.Po \ + test/$(DEPDIR)/run_tests-test-udp-recvmsg-unreachable-error.Po \ + test/$(DEPDIR)/run_tests-test-udp-reuseport.Po \ test/$(DEPDIR)/run_tests-test-udp-send-and-recv.Po \ test/$(DEPDIR)/run_tests-test-udp-send-hang-loop.Po \ test/$(DEPDIR)/run_tests-test-udp-send-immediate.Po \ @@ -1159,9 +1182,8 @@ DATA = $(pkgconfig_DATA) am__uvinclude_HEADERS_DIST = include/uv/errno.h \ include/uv/threadpool.h include/uv/version.h include/uv/win.h \ include/uv/tree.h include/uv/unix.h include/uv/aix.h \ - include/uv/posix.h include/uv/android-ifaddrs.h \ - include/uv/darwin.h include/uv/bsd.h include/uv/linux.h \ - include/uv/sunos.h + include/uv/posix.h include/uv/darwin.h include/uv/bsd.h \ + include/uv/linux.h include/uv/sunos.h HEADERS = $(include_HEADERS) $(uvinclude_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, @@ -1206,30 +1228,34 @@ am__tty_colors = { \ am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/libuv.pc.in \ $(top_srcdir)/test/fixtures/empty_file \ $(top_srcdir)/test/fixtures/load_error.node \ - $(top_srcdir)/test/fixtures/lorem_ipsum.txt AUTHORS ChangeLog \ - README.md ar-lib compile config.guess config.sub depcomp \ - install-sh ltmain.sh missing + $(top_srcdir)/test/fixtures/lorem_ipsum.txt \ + $(top_srcdir)/test/fixtures/one_file/one_file AUTHORS \ + ChangeLog README.md ar-lib compile config.guess config.sub \ + depcomp install-sh ltmain.sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ - find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -rf "$(distdir)" \ + find "$(distdir)" -type d ! -perm -700 -exec chmod u+rwx {} ';' \ + ; rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) DIST_ARCHIVES = $(distdir).tar.gz -GZIP_ENV = --best +GZIP_ENV = -9 DIST_TARGETS = dist-gzip # Exists only to be overridden by the user if desired. AM_DISTCHECK_DVI_TARGET = dvi distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' -distcleancheck_listfiles = find . -type f -print +distcleancheck_listfiles = \ + find . \( -type f -a \! \ + \( -name .nfs* -o -name .smb* -o -name .__afs* \) \) -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ @@ -1256,6 +1282,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ @@ -1308,8 +1335,10 @@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__rm_f_notfound = @am__rm_f_notfound@ am__tar = @am__tar@ am__untar = @am__untar@ +am__xargs_n = @am__xargs_n@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ @@ -1359,74 +1388,76 @@ include_HEADERS = include/uv.h uvincludedir = $(includedir)/uv uvinclude_HEADERS = include/uv/errno.h include/uv/threadpool.h \ include/uv/version.h $(am__append_2) $(am__append_5) \ - $(am__append_18) $(am__append_21) $(am__append_23) \ - $(am__append_26) $(am__append_29) $(am__append_33) \ - $(am__append_36) $(am__append_39) $(am__append_42) \ - $(am__append_44) $(am__append_50) $(am__append_53) \ - $(am__append_56) + $(am__append_18) $(am__append_21) $(am__append_24) \ + $(am__append_27) $(am__append_31) $(am__append_34) \ + $(am__append_37) $(am__append_40) $(am__append_42) \ + $(am__append_48) $(am__append_51) $(am__append_54) CLEANFILES = lib_LTLIBRARIES = libuv.la -libuv_la_CFLAGS = @CFLAGS@ $(am__append_1) $(am__append_17) \ - $(am__append_20) $(am__append_24) $(am__append_27) \ - $(am__append_30) $(am__append_40) $(am__append_45) \ - $(am__append_48) $(am__append_57) $(am__append_59) -libuv_la_LDFLAGS = -no-undefined -version-info 1:0:0 $(am__append_60) +libuv_la_CFLAGS = $(AM_CFLAGS) $(am__append_1) $(am__append_17) \ + $(am__append_20) $(am__append_23) $(am__append_25) \ + $(am__append_28) $(am__append_38) $(am__append_43) \ + $(am__append_46) $(am__append_55) $(am__append_57) +libuv_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined -version-info 1:0:0 \ + $(am__append_58) libuv_la_SOURCES = src/fs-poll.c src/heap-inl.h src/idna.c src/idna.h \ src/inet.c src/queue.h src/random.c src/strscpy.c \ - src/strscpy.h src/threadpool.c src/timer.c \ + src/strscpy.h src/thread-common.c src/threadpool.c src/timer.c \ src/uv-data-getter-setters.c src/uv-common.c src/uv-common.h \ - src/version.c $(am__append_4) $(am__append_7) $(am__append_19) \ - $(am__append_22) $(am__append_25) $(am__append_28) \ - $(am__append_31) $(am__append_34) $(am__append_37) \ - $(am__append_41) $(am__append_43) $(am__append_46) \ - $(am__append_49) $(am__append_51) $(am__append_54) \ - $(am__append_58) $(am__append_61) + src/version.c src/strtok.c src/strtok.h $(am__append_4) \ + $(am__append_7) $(am__append_19) $(am__append_22) \ + $(am__append_26) $(am__append_29) $(am__append_32) \ + $(am__append_35) $(am__append_39) $(am__append_41) \ + $(am__append_44) $(am__append_47) $(am__append_49) \ + $(am__append_52) $(am__append_56) $(am__append_59) EXTRA_DIST = test/fixtures/empty_file \ test/fixtures/load_error.node \ test/fixtures/lorem_ipsum.txt \ + test/fixtures/one_file/one_file \ include \ docs \ img \ CONTRIBUTING.md \ LICENSE \ + LICENSE-extra \ README.md -test_run_tests_CFLAGS = $(am__append_8) $(am__append_11) \ +test_run_tests_CFLAGS = $(AM_CFLAGS) $(am__append_8) $(am__append_11) \ $(am__append_12) $(am__append_13) $(am__append_14) \ $(am__append_15) $(am__append_16) -test_run_tests_LDFLAGS = $(am__append_32) $(am__append_35) \ - $(am__append_38) $(am__append_47) $(am__append_52) \ - $(am__append_55) +test_run_tests_LDFLAGS = $(AM_LDFLAGS) $(am__append_30) \ + $(am__append_33) $(am__append_36) $(am__append_45) \ + $(am__append_50) $(am__append_53) test_run_tests_SOURCES = test/blackhole-server.c test/echo-server.c \ test/run-tests.c test/runner.c test/runner.h test/task.h \ test/test-active.c test/test-async.c test/test-async-null-cb.c \ - test/test-barrier.c test/test-callback-order.c \ - test/test-callback-stack.c test/test-close-fd.c \ - test/test-close-order.c test/test-condvar.c \ - test/test-connect-unspecified.c test/test-connection-fail.c \ - test/test-cwd-and-chdir.c test/test-default-loop-close.c \ - test/test-delayed-accept.c test/test-dlerror.c \ - test/test-eintr-handling.c test/test-embed.c \ - test/test-emfile.c test/test-env-vars.c test/test-error.c \ - test/test-fail-always.c test/test-fs-copyfile.c \ - test/test-fs-event.c test/test-fs-poll.c test/test-fs.c \ - test/test-fs-readdir.c test/test-fs-fd-hash.c \ - test/test-fs-open-flags.c test/test-fork.c \ - test/test-getters-setters.c test/test-get-currentexe.c \ - test/test-get-loadavg.c test/test-get-memory.c \ - test/test-get-passwd.c test/test-getaddrinfo.c \ - test/test-gethostname.c test/test-getnameinfo.c \ - test/test-getsockname.c test/test-gettimeofday.c \ - test/test-handle-fileno.c test/test-homedir.c \ - test/test-hrtime.c test/test-idle.c test/test-idna.c \ + test/test-barrier.c test/test-callback-stack.c \ + test/test-close-fd.c test/test-close-order.c \ + test/test-condvar.c test/test-connect-unspecified.c \ + test/test-connection-fail.c test/test-cwd-and-chdir.c \ + test/test-default-loop-close.c test/test-delayed-accept.c \ + test/test-dlerror.c test/test-eintr-handling.c \ + test/test-embed.c test/test-emfile.c test/test-env-vars.c \ + test/test-error.c test/test-fail-always.c \ + test/test-fs-copyfile.c test/test-fs-event.c \ + test/test-fs-poll.c test/test-fs.c test/test-fs-readdir.c \ + test/test-fs-fd-hash.c test/test-fs-open-flags.c \ + test/test-fork.c test/test-getters-setters.c \ + test/test-get-currentexe.c test/test-get-loadavg.c \ + test/test-get-memory.c test/test-get-passwd.c \ + test/test-getaddrinfo.c test/test-gethostname.c \ + test/test-getnameinfo.c test/test-getsockname.c \ + test/test-gettimeofday.c test/test-handle-fileno.c \ + test/test-homedir.c test/test-hrtime.c test/test-idle.c \ + test/test-idna.c test/test-iouring-pollhup.c \ test/test-ip4-addr.c test/test-ip6-addr.c test/test-ip-name.c \ test/test-ipc-heavy-traffic-deadlock-bug.c \ test/test-ipc-send-recv.c test/test-ipc.c test/test-list.h \ - test/test-loop-handles.c test/test-loop-alive.c \ - test/test-loop-close.c test/test-loop-stop.c \ - test/test-loop-time.c test/test-loop-configure.c \ - test/test-metrics.c test/test-multiple-listen.c \ - test/test-mutexes.c \ + test/test-loop-alive.c test/test-loop-close.c \ + test/test-loop-configure.c test/test-loop-handles.c \ + test/test-loop-oom.c test/test-loop-stop.c \ + test/test-loop-time.c test/test-metrics.c \ + test/test-multiple-listen.c test/test-mutexes.c \ test/test-not-readable-nor-writable-on-read-error.c \ test/test-not-writable-after-shutdown.c test/test-osx-select.c \ test/test-pass-always.c test/test-ping-pong.c \ @@ -1452,28 +1483,31 @@ test_run_tests_SOURCES = test/blackhole-server.c test/echo-server.c \ test/test-signal-pending-on-close.c test/test-signal.c \ test/test-socket-buffer-size.c test/test-spawn.c \ test/test-stdio-over-pipes.c test/test-strscpy.c \ - test/test-tcp-alloc-cb-fail.c test/test-tcp-bind-error.c \ - test/test-tcp-bind6-error.c test/test-tcp-close-accept.c \ - test/test-tcp-close-while-connecting.c test/test-tcp-close.c \ + test/test-strtok.c test/test-tcp-alloc-cb-fail.c \ + test/test-tcp-bind-error.c test/test-tcp-bind6-error.c \ + test/test-tcp-close-accept.c \ + test/test-tcp-close-while-connecting.c \ + test/test-tcp-close-after-read-timeout.c test/test-tcp-close.c \ test/test-tcp-close-reset.c \ test/test-tcp-create-socket-early.c \ test/test-tcp-connect-error-after-write.c \ test/test-tcp-connect-error.c test/test-tcp-connect-timeout.c \ test/test-tcp-connect6-error.c test/test-tcp-flags.c \ test/test-tcp-open.c test/test-tcp-read-stop.c \ - test/test-tcp-read-stop-start.c \ - test/test-tcp-shutdown-after-write.c \ + test/test-tcp-reuseport.c test/test-tcp-read-stop-start.c \ + test/test-tcp-rst.c test/test-tcp-shutdown-after-write.c \ test/test-tcp-unexpected-read.c test/test-tcp-oob.c \ test/test-tcp-write-to-half-open-connection.c \ test/test-tcp-write-after-connect.c test/test-tcp-writealot.c \ test/test-tcp-write-fail.c test/test-tcp-try-write.c \ - test/test-tcp-try-write-error.c \ + test/test-tcp-write-in-a-row.c test/test-tcp-try-write-error.c \ test/test-tcp-write-queue-order.c test/test-test-macros.c \ test/test-thread-equal.c test/test-thread.c \ - test/test-threadpool-cancel.c test/test-threadpool.c \ - test/test-timer-again.c test/test-timer-from-check.c \ - test/test-timer.c test/test-tmpdir.c \ - test/test-tty-duplicate-key.c \ + test/test-thread-affinity.c test/test-thread-name.c \ + test/test-thread-priority.c test/test-threadpool-cancel.c \ + test/test-threadpool.c test/test-timer-again.c \ + test/test-timer-from-check.c test/test-timer.c \ + test/test-tmpdir.c test/test-tty-duplicate-key.c \ test/test-tty-escape-sequence-processing.c test/test-tty.c \ test/test-udp-alloc-cb-fail.c test/test-udp-bind.c \ test/test-udp-connect.c test/test-udp-connect6.c \ @@ -1486,10 +1520,13 @@ test_run_tests_SOURCES = test/blackhole-server.c test/echo-server.c \ test/test-udp-options.c test/test-udp-send-and-recv.c \ test/test-udp-send-hang-loop.c test/test-udp-send-immediate.c \ test/test-udp-sendmmsg-error.c \ - test/test-udp-send-unreachable.c test/test-udp-try-send.c \ - test/test-uname.c test/test-walk-handles.c \ - test/test-watcher-cross-stop.c $(am__append_9) \ - $(am__append_10) + test/test-udp-send-unreachable.c \ + test/test-udp-recv-cb-close-pollerr.c \ + test/test-udp-recvmsg-unreachable-error.c \ + test/test-udp-try-send.c test/test-udp-recv-in-a-row.c \ + test/test-udp-reuseport.c test/test-uname.c \ + test/test-walk-handles.c test/test-watcher-cross-stop.c \ + $(am__append_9) $(am__append_10) test_run_tests_LDADD = libuv.la pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = @PACKAGE_NAME@.pc @@ -1534,13 +1571,8 @@ libuv.pc: $(top_builddir)/config.status $(srcdir)/libuv.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list + $(am__rm_f) $(check_PROGRAMS) + test -z "$(EXEEXT)" || $(am__rm_f) $(check_PROGRAMS:$(EXEEXT)=) install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @@ -1567,21 +1599,19 @@ uninstall-libLTLIBRARIES: done clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + -$(am__rm_f) $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } + echo rm -f $${locs}; \ + $(am__rm_f) $${locs} src/$(am__dirstamp): @$(MKDIR_P) src - @: > src/$(am__dirstamp) + @: >>src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/$(DEPDIR) - @: > src/$(DEPDIR)/$(am__dirstamp) + @: >>src/$(DEPDIR)/$(am__dirstamp) src/libuv_la-fs-poll.lo: src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/libuv_la-idna.lo: src/$(am__dirstamp) \ @@ -1592,6 +1622,8 @@ src/libuv_la-random.lo: src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/libuv_la-strscpy.lo: src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) +src/libuv_la-thread-common.lo: src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) src/libuv_la-threadpool.lo: src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/libuv_la-timer.lo: src/$(am__dirstamp) \ @@ -1602,12 +1634,14 @@ src/libuv_la-uv-common.lo: src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/libuv_la-version.lo: src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) +src/libuv_la-strtok.lo: src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) src/win/$(am__dirstamp): @$(MKDIR_P) src/win - @: > src/win/$(am__dirstamp) + @: >>src/win/$(am__dirstamp) src/win/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/win/$(DEPDIR) - @: > src/win/$(DEPDIR)/$(am__dirstamp) + @: >>src/win/$(DEPDIR)/$(am__dirstamp) src/win/libuv_la-async.lo: src/win/$(am__dirstamp) \ src/win/$(DEPDIR)/$(am__dirstamp) src/win/libuv_la-core.lo: src/win/$(am__dirstamp) \ @@ -1658,10 +1692,10 @@ src/win/libuv_la-winsock.lo: src/win/$(am__dirstamp) \ src/win/$(DEPDIR)/$(am__dirstamp) src/unix/$(am__dirstamp): @$(MKDIR_P) src/unix - @: > src/unix/$(am__dirstamp) + @: >>src/unix/$(am__dirstamp) src/unix/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/unix/$(DEPDIR) - @: > src/unix/$(DEPDIR)/$(am__dirstamp) + @: >>src/unix/$(DEPDIR)/$(am__dirstamp) src/unix/libuv_la-async.lo: src/unix/$(am__dirstamp) \ src/unix/$(DEPDIR)/$(am__dirstamp) src/unix/libuv_la-core.lo: src/unix/$(am__dirstamp) \ @@ -1708,10 +1742,6 @@ src/unix/libuv_la-posix-poll.lo: src/unix/$(am__dirstamp) \ src/unix/$(DEPDIR)/$(am__dirstamp) src/unix/libuv_la-no-fsevents.lo: src/unix/$(am__dirstamp) \ src/unix/$(DEPDIR)/$(am__dirstamp) -src/unix/libuv_la-android-ifaddrs.lo: src/unix/$(am__dirstamp) \ - src/unix/$(DEPDIR)/$(am__dirstamp) -src/unix/libuv_la-pthread-fixes.lo: src/unix/$(am__dirstamp) \ - src/unix/$(DEPDIR)/$(am__dirstamp) src/unix/libuv_la-cygwin.lo: src/unix/$(am__dirstamp) \ src/unix/$(DEPDIR)/$(am__dirstamp) src/unix/libuv_la-bsd-ifaddrs.lo: src/unix/$(am__dirstamp) \ @@ -1746,16 +1776,12 @@ src/unix/libuv_la-random-getrandom.lo: src/unix/$(am__dirstamp) \ src/unix/$(DEPDIR)/$(am__dirstamp) src/unix/libuv_la-haiku.lo: src/unix/$(am__dirstamp) \ src/unix/$(DEPDIR)/$(am__dirstamp) -src/unix/libuv_la-linux-core.lo: src/unix/$(am__dirstamp) \ +src/unix/libuv_la-hurd.lo: src/unix/$(am__dirstamp) \ src/unix/$(DEPDIR)/$(am__dirstamp) -src/unix/libuv_la-linux-inotify.lo: src/unix/$(am__dirstamp) \ - src/unix/$(DEPDIR)/$(am__dirstamp) -src/unix/libuv_la-linux-syscalls.lo: src/unix/$(am__dirstamp) \ +src/unix/libuv_la-linux.lo: src/unix/$(am__dirstamp) \ src/unix/$(DEPDIR)/$(am__dirstamp) src/unix/libuv_la-random-sysctl-linux.lo: src/unix/$(am__dirstamp) \ src/unix/$(DEPDIR)/$(am__dirstamp) -src/unix/libuv_la-epoll.lo: src/unix/$(am__dirstamp) \ - src/unix/$(DEPDIR)/$(am__dirstamp) src/unix/libuv_la-netbsd.lo: src/unix/$(am__dirstamp) \ src/unix/$(DEPDIR)/$(am__dirstamp) src/unix/libuv_la-openbsd.lo: src/unix/$(am__dirstamp) \ @@ -1771,10 +1797,10 @@ libuv.la: $(libuv_la_OBJECTS) $(libuv_la_DEPENDENCIES) $(EXTRA_libuv_la_DEPENDEN $(AM_V_CCLD)$(libuv_la_LINK) -rpath $(libdir) $(libuv_la_OBJECTS) $(libuv_la_LIBADD) $(LIBS) test/$(am__dirstamp): @$(MKDIR_P) test - @: > test/$(am__dirstamp) + @: >>test/$(am__dirstamp) test/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) test/$(DEPDIR) - @: > test/$(DEPDIR)/$(am__dirstamp) + @: >>test/$(DEPDIR)/$(am__dirstamp) test/run_tests-blackhole-server.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-echo-server.$(OBJEXT): test/$(am__dirstamp) \ @@ -1791,8 +1817,6 @@ test/run_tests-test-async-null-cb.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-barrier.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) -test/run_tests-test-callback-order.$(OBJEXT): test/$(am__dirstamp) \ - test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-callback-stack.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-close-fd.$(OBJEXT): test/$(am__dirstamp) \ @@ -1871,6 +1895,8 @@ test/run_tests-test-idle.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-idna.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) +test/run_tests-test-iouring-pollhup.$(OBJEXT): test/$(am__dirstamp) \ + test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-ip4-addr.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-ip6-addr.$(OBJEXT): test/$(am__dirstamp) \ @@ -1883,18 +1909,20 @@ test/run_tests-test-ipc-send-recv.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-ipc.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) -test/run_tests-test-loop-handles.$(OBJEXT): test/$(am__dirstamp) \ - test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-loop-alive.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-loop-close.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) +test/run_tests-test-loop-configure.$(OBJEXT): test/$(am__dirstamp) \ + test/$(DEPDIR)/$(am__dirstamp) +test/run_tests-test-loop-handles.$(OBJEXT): test/$(am__dirstamp) \ + test/$(DEPDIR)/$(am__dirstamp) +test/run_tests-test-loop-oom.$(OBJEXT): test/$(am__dirstamp) \ + test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-loop-stop.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-loop-time.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) -test/run_tests-test-loop-configure.$(OBJEXT): test/$(am__dirstamp) \ - test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-metrics.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-multiple-listen.$(OBJEXT): test/$(am__dirstamp) \ @@ -1989,6 +2017,8 @@ test/run_tests-test-stdio-over-pipes.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-strscpy.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) +test/run_tests-test-strtok.$(OBJEXT): test/$(am__dirstamp) \ + test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-tcp-alloc-cb-fail.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-tcp-bind-error.$(OBJEXT): test/$(am__dirstamp) \ @@ -1999,6 +2029,8 @@ test/run_tests-test-tcp-close-accept.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-tcp-close-while-connecting.$(OBJEXT): \ test/$(am__dirstamp) test/$(DEPDIR)/$(am__dirstamp) +test/run_tests-test-tcp-close-after-read-timeout.$(OBJEXT): \ + test/$(am__dirstamp) test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-tcp-close.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-tcp-close-reset.$(OBJEXT): test/$(am__dirstamp) \ @@ -2019,8 +2051,12 @@ test/run_tests-test-tcp-open.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-tcp-read-stop.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) +test/run_tests-test-tcp-reuseport.$(OBJEXT): test/$(am__dirstamp) \ + test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-tcp-read-stop-start.$(OBJEXT): \ test/$(am__dirstamp) test/$(DEPDIR)/$(am__dirstamp) +test/run_tests-test-tcp-rst.$(OBJEXT): test/$(am__dirstamp) \ + test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-tcp-shutdown-after-write.$(OBJEXT): \ test/$(am__dirstamp) test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-tcp-unexpected-read.$(OBJEXT): \ @@ -2037,6 +2073,8 @@ test/run_tests-test-tcp-write-fail.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-tcp-try-write.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) +test/run_tests-test-tcp-write-in-a-row.$(OBJEXT): \ + test/$(am__dirstamp) test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-tcp-try-write-error.$(OBJEXT): \ test/$(am__dirstamp) test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-tcp-write-queue-order.$(OBJEXT): \ @@ -2047,6 +2085,12 @@ test/run_tests-test-thread-equal.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-thread.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) +test/run_tests-test-thread-affinity.$(OBJEXT): test/$(am__dirstamp) \ + test/$(DEPDIR)/$(am__dirstamp) +test/run_tests-test-thread-name.$(OBJEXT): test/$(am__dirstamp) \ + test/$(DEPDIR)/$(am__dirstamp) +test/run_tests-test-thread-priority.$(OBJEXT): test/$(am__dirstamp) \ + test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-threadpool-cancel.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-threadpool.$(OBJEXT): test/$(am__dirstamp) \ @@ -2105,8 +2149,16 @@ test/run_tests-test-udp-sendmmsg-error.$(OBJEXT): \ test/$(am__dirstamp) test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-udp-send-unreachable.$(OBJEXT): \ test/$(am__dirstamp) test/$(DEPDIR)/$(am__dirstamp) +test/run_tests-test-udp-recv-cb-close-pollerr.$(OBJEXT): \ + test/$(am__dirstamp) test/$(DEPDIR)/$(am__dirstamp) +test/run_tests-test-udp-recvmsg-unreachable-error.$(OBJEXT): \ + test/$(am__dirstamp) test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-udp-try-send.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) +test/run_tests-test-udp-recv-in-a-row.$(OBJEXT): test/$(am__dirstamp) \ + test/$(DEPDIR)/$(am__dirstamp) +test/run_tests-test-udp-reuseport.$(OBJEXT): test/$(am__dirstamp) \ + test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-uname.$(OBJEXT): test/$(am__dirstamp) \ test/$(DEPDIR)/$(am__dirstamp) test/run_tests-test-walk-handles.$(OBJEXT): test/$(am__dirstamp) \ @@ -2140,6 +2192,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libuv_la-inet.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libuv_la-random.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libuv_la-strscpy.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libuv_la-strtok.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libuv_la-thread-common.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libuv_la-threadpool.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libuv_la-timer.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libuv_la-uv-common.Plo@am__quote@ # am--include-marker @@ -2147,7 +2201,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libuv_la-version.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-aix-common.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-aix.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-android-ifaddrs.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-async.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-bsd-ifaddrs.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-bsd-proctitle.Plo@am__quote@ # am--include-marker @@ -2156,18 +2209,16 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-darwin-proctitle.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-darwin.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-dl.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-epoll.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-freebsd.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-fs.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-fsevents.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-getaddrinfo.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-getnameinfo.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-haiku.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-hurd.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-ibmi.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-kqueue.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-linux-core.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-linux-inotify.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-linux-syscalls.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-linux.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-loop-watcher.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-loop.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-netbsd.Plo@am__quote@ # am--include-marker @@ -2183,7 +2234,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-process.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-procfs-exepath.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-proctitle.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-pthread-fixes.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-random-devurandom.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-random-getentropy.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/unix/$(DEPDIR)/libuv_la-random-getrandom.Plo@am__quote@ # am--include-marker @@ -2231,7 +2281,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-async-null-cb.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-async.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-barrier.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-callback-order.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-callback-stack.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-close-fd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-close-order.Po@am__quote@ # am--include-marker @@ -2271,6 +2320,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-hrtime.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-idle.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-idna.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-iouring-pollhup.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-ip-name.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-ip4-addr.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-ip6-addr.Po@am__quote@ # am--include-marker @@ -2281,6 +2331,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-loop-close.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-loop-configure.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-loop-handles.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-loop-oom.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-loop-stop.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-loop-time.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-metrics.Po@am__quote@ # am--include-marker @@ -2330,10 +2381,12 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-spawn.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-stdio-over-pipes.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-strscpy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-strtok.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-alloc-cb-fail.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-bind-error.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-bind6-error.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-close-accept.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-close-after-read-timeout.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-close-reset.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-close-while-connecting.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-close.Po@am__quote@ # am--include-marker @@ -2347,17 +2400,23 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-open.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-read-stop-start.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-read-stop.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-reuseport.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-rst.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-shutdown-after-write.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-try-write-error.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-try-write.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-unexpected-read.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-write-after-connect.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-write-fail.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-write-in-a-row.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-write-queue-order.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-write-to-half-open-connection.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-tcp-writealot.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-test-macros.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-thread-affinity.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-thread-equal.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-thread-name.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-thread-priority.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-thread.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-threadpool-cancel.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-threadpool.Po@am__quote@ # am--include-marker @@ -2383,6 +2442,10 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-udp-multicast-ttl.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-udp-open.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-udp-options.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-udp-recv-cb-close-pollerr.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-udp-recv-in-a-row.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-udp-recvmsg-unreachable-error.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-udp-reuseport.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-udp-send-and-recv.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-udp-send-hang-loop.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/run_tests-test-udp-send-immediate.Po@am__quote@ # am--include-marker @@ -2395,7 +2458,7 @@ distclean-compile: $(am__depfiles_remade): @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + @: >>$@ am--depfiles: $(am__depfiles_remade) @@ -2458,6 +2521,13 @@ src/libuv_la-strscpy.lo: src/strscpy.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -c -o src/libuv_la-strscpy.lo `test -f 'src/strscpy.c' || echo '$(srcdir)/'`src/strscpy.c +src/libuv_la-thread-common.lo: src/thread-common.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -MT src/libuv_la-thread-common.lo -MD -MP -MF src/$(DEPDIR)/libuv_la-thread-common.Tpo -c -o src/libuv_la-thread-common.lo `test -f 'src/thread-common.c' || echo '$(srcdir)/'`src/thread-common.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libuv_la-thread-common.Tpo src/$(DEPDIR)/libuv_la-thread-common.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/thread-common.c' object='src/libuv_la-thread-common.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -c -o src/libuv_la-thread-common.lo `test -f 'src/thread-common.c' || echo '$(srcdir)/'`src/thread-common.c + src/libuv_la-threadpool.lo: src/threadpool.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -MT src/libuv_la-threadpool.lo -MD -MP -MF src/$(DEPDIR)/libuv_la-threadpool.Tpo -c -o src/libuv_la-threadpool.lo `test -f 'src/threadpool.c' || echo '$(srcdir)/'`src/threadpool.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libuv_la-threadpool.Tpo src/$(DEPDIR)/libuv_la-threadpool.Plo @@ -2493,6 +2563,13 @@ src/libuv_la-version.lo: src/version.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -c -o src/libuv_la-version.lo `test -f 'src/version.c' || echo '$(srcdir)/'`src/version.c +src/libuv_la-strtok.lo: src/strtok.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -MT src/libuv_la-strtok.lo -MD -MP -MF src/$(DEPDIR)/libuv_la-strtok.Tpo -c -o src/libuv_la-strtok.lo `test -f 'src/strtok.c' || echo '$(srcdir)/'`src/strtok.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libuv_la-strtok.Tpo src/$(DEPDIR)/libuv_la-strtok.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/strtok.c' object='src/libuv_la-strtok.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -c -o src/libuv_la-strtok.lo `test -f 'src/strtok.c' || echo '$(srcdir)/'`src/strtok.c + src/win/libuv_la-async.lo: src/win/async.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -MT src/win/libuv_la-async.lo -MD -MP -MF src/win/$(DEPDIR)/libuv_la-async.Tpo -c -o src/win/libuv_la-async.lo `test -f 'src/win/async.c' || echo '$(srcdir)/'`src/win/async.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/win/$(DEPDIR)/libuv_la-async.Tpo src/win/$(DEPDIR)/libuv_la-async.Plo @@ -2822,20 +2899,6 @@ src/unix/libuv_la-no-fsevents.lo: src/unix/no-fsevents.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -c -o src/unix/libuv_la-no-fsevents.lo `test -f 'src/unix/no-fsevents.c' || echo '$(srcdir)/'`src/unix/no-fsevents.c -src/unix/libuv_la-android-ifaddrs.lo: src/unix/android-ifaddrs.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -MT src/unix/libuv_la-android-ifaddrs.lo -MD -MP -MF src/unix/$(DEPDIR)/libuv_la-android-ifaddrs.Tpo -c -o src/unix/libuv_la-android-ifaddrs.lo `test -f 'src/unix/android-ifaddrs.c' || echo '$(srcdir)/'`src/unix/android-ifaddrs.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/unix/$(DEPDIR)/libuv_la-android-ifaddrs.Tpo src/unix/$(DEPDIR)/libuv_la-android-ifaddrs.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/unix/android-ifaddrs.c' object='src/unix/libuv_la-android-ifaddrs.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -c -o src/unix/libuv_la-android-ifaddrs.lo `test -f 'src/unix/android-ifaddrs.c' || echo '$(srcdir)/'`src/unix/android-ifaddrs.c - -src/unix/libuv_la-pthread-fixes.lo: src/unix/pthread-fixes.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -MT src/unix/libuv_la-pthread-fixes.lo -MD -MP -MF src/unix/$(DEPDIR)/libuv_la-pthread-fixes.Tpo -c -o src/unix/libuv_la-pthread-fixes.lo `test -f 'src/unix/pthread-fixes.c' || echo '$(srcdir)/'`src/unix/pthread-fixes.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/unix/$(DEPDIR)/libuv_la-pthread-fixes.Tpo src/unix/$(DEPDIR)/libuv_la-pthread-fixes.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/unix/pthread-fixes.c' object='src/unix/libuv_la-pthread-fixes.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -c -o src/unix/libuv_la-pthread-fixes.lo `test -f 'src/unix/pthread-fixes.c' || echo '$(srcdir)/'`src/unix/pthread-fixes.c - src/unix/libuv_la-cygwin.lo: src/unix/cygwin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -MT src/unix/libuv_la-cygwin.lo -MD -MP -MF src/unix/$(DEPDIR)/libuv_la-cygwin.Tpo -c -o src/unix/libuv_la-cygwin.lo `test -f 'src/unix/cygwin.c' || echo '$(srcdir)/'`src/unix/cygwin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/unix/$(DEPDIR)/libuv_la-cygwin.Tpo src/unix/$(DEPDIR)/libuv_la-cygwin.Plo @@ -2955,26 +3018,19 @@ src/unix/libuv_la-haiku.lo: src/unix/haiku.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -c -o src/unix/libuv_la-haiku.lo `test -f 'src/unix/haiku.c' || echo '$(srcdir)/'`src/unix/haiku.c -src/unix/libuv_la-linux-core.lo: src/unix/linux-core.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -MT src/unix/libuv_la-linux-core.lo -MD -MP -MF src/unix/$(DEPDIR)/libuv_la-linux-core.Tpo -c -o src/unix/libuv_la-linux-core.lo `test -f 'src/unix/linux-core.c' || echo '$(srcdir)/'`src/unix/linux-core.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/unix/$(DEPDIR)/libuv_la-linux-core.Tpo src/unix/$(DEPDIR)/libuv_la-linux-core.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/unix/linux-core.c' object='src/unix/libuv_la-linux-core.lo' libtool=yes @AMDEPBACKSLASH@ +src/unix/libuv_la-hurd.lo: src/unix/hurd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -MT src/unix/libuv_la-hurd.lo -MD -MP -MF src/unix/$(DEPDIR)/libuv_la-hurd.Tpo -c -o src/unix/libuv_la-hurd.lo `test -f 'src/unix/hurd.c' || echo '$(srcdir)/'`src/unix/hurd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/unix/$(DEPDIR)/libuv_la-hurd.Tpo src/unix/$(DEPDIR)/libuv_la-hurd.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/unix/hurd.c' object='src/unix/libuv_la-hurd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -c -o src/unix/libuv_la-linux-core.lo `test -f 'src/unix/linux-core.c' || echo '$(srcdir)/'`src/unix/linux-core.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -c -o src/unix/libuv_la-hurd.lo `test -f 'src/unix/hurd.c' || echo '$(srcdir)/'`src/unix/hurd.c -src/unix/libuv_la-linux-inotify.lo: src/unix/linux-inotify.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -MT src/unix/libuv_la-linux-inotify.lo -MD -MP -MF src/unix/$(DEPDIR)/libuv_la-linux-inotify.Tpo -c -o src/unix/libuv_la-linux-inotify.lo `test -f 'src/unix/linux-inotify.c' || echo '$(srcdir)/'`src/unix/linux-inotify.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/unix/$(DEPDIR)/libuv_la-linux-inotify.Tpo src/unix/$(DEPDIR)/libuv_la-linux-inotify.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/unix/linux-inotify.c' object='src/unix/libuv_la-linux-inotify.lo' libtool=yes @AMDEPBACKSLASH@ +src/unix/libuv_la-linux.lo: src/unix/linux.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -MT src/unix/libuv_la-linux.lo -MD -MP -MF src/unix/$(DEPDIR)/libuv_la-linux.Tpo -c -o src/unix/libuv_la-linux.lo `test -f 'src/unix/linux.c' || echo '$(srcdir)/'`src/unix/linux.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/unix/$(DEPDIR)/libuv_la-linux.Tpo src/unix/$(DEPDIR)/libuv_la-linux.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/unix/linux.c' object='src/unix/libuv_la-linux.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -c -o src/unix/libuv_la-linux-inotify.lo `test -f 'src/unix/linux-inotify.c' || echo '$(srcdir)/'`src/unix/linux-inotify.c - -src/unix/libuv_la-linux-syscalls.lo: src/unix/linux-syscalls.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -MT src/unix/libuv_la-linux-syscalls.lo -MD -MP -MF src/unix/$(DEPDIR)/libuv_la-linux-syscalls.Tpo -c -o src/unix/libuv_la-linux-syscalls.lo `test -f 'src/unix/linux-syscalls.c' || echo '$(srcdir)/'`src/unix/linux-syscalls.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/unix/$(DEPDIR)/libuv_la-linux-syscalls.Tpo src/unix/$(DEPDIR)/libuv_la-linux-syscalls.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/unix/linux-syscalls.c' object='src/unix/libuv_la-linux-syscalls.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -c -o src/unix/libuv_la-linux-syscalls.lo `test -f 'src/unix/linux-syscalls.c' || echo '$(srcdir)/'`src/unix/linux-syscalls.c +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -c -o src/unix/libuv_la-linux.lo `test -f 'src/unix/linux.c' || echo '$(srcdir)/'`src/unix/linux.c src/unix/libuv_la-random-sysctl-linux.lo: src/unix/random-sysctl-linux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -MT src/unix/libuv_la-random-sysctl-linux.lo -MD -MP -MF src/unix/$(DEPDIR)/libuv_la-random-sysctl-linux.Tpo -c -o src/unix/libuv_la-random-sysctl-linux.lo `test -f 'src/unix/random-sysctl-linux.c' || echo '$(srcdir)/'`src/unix/random-sysctl-linux.c @@ -2983,13 +3039,6 @@ src/unix/libuv_la-random-sysctl-linux.lo: src/unix/random-sysctl-linux.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -c -o src/unix/libuv_la-random-sysctl-linux.lo `test -f 'src/unix/random-sysctl-linux.c' || echo '$(srcdir)/'`src/unix/random-sysctl-linux.c -src/unix/libuv_la-epoll.lo: src/unix/epoll.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -MT src/unix/libuv_la-epoll.lo -MD -MP -MF src/unix/$(DEPDIR)/libuv_la-epoll.Tpo -c -o src/unix/libuv_la-epoll.lo `test -f 'src/unix/epoll.c' || echo '$(srcdir)/'`src/unix/epoll.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/unix/$(DEPDIR)/libuv_la-epoll.Tpo src/unix/$(DEPDIR)/libuv_la-epoll.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/unix/epoll.c' object='src/unix/libuv_la-epoll.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -c -o src/unix/libuv_la-epoll.lo `test -f 'src/unix/epoll.c' || echo '$(srcdir)/'`src/unix/epoll.c - src/unix/libuv_la-netbsd.lo: src/unix/netbsd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libuv_la_CFLAGS) $(CFLAGS) -MT src/unix/libuv_la-netbsd.lo -MD -MP -MF src/unix/$(DEPDIR)/libuv_la-netbsd.Tpo -c -o src/unix/libuv_la-netbsd.lo `test -f 'src/unix/netbsd.c' || echo '$(srcdir)/'`src/unix/netbsd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/unix/$(DEPDIR)/libuv_la-netbsd.Tpo src/unix/$(DEPDIR)/libuv_la-netbsd.Plo @@ -3137,20 +3186,6 @@ test/run_tests-test-barrier.obj: test/test-barrier.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-barrier.obj `if test -f 'test/test-barrier.c'; then $(CYGPATH_W) 'test/test-barrier.c'; else $(CYGPATH_W) '$(srcdir)/test/test-barrier.c'; fi` -test/run_tests-test-callback-order.o: test/test-callback-order.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-callback-order.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-callback-order.Tpo -c -o test/run_tests-test-callback-order.o `test -f 'test/test-callback-order.c' || echo '$(srcdir)/'`test/test-callback-order.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-callback-order.Tpo test/$(DEPDIR)/run_tests-test-callback-order.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-callback-order.c' object='test/run_tests-test-callback-order.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-callback-order.o `test -f 'test/test-callback-order.c' || echo '$(srcdir)/'`test/test-callback-order.c - -test/run_tests-test-callback-order.obj: test/test-callback-order.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-callback-order.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-callback-order.Tpo -c -o test/run_tests-test-callback-order.obj `if test -f 'test/test-callback-order.c'; then $(CYGPATH_W) 'test/test-callback-order.c'; else $(CYGPATH_W) '$(srcdir)/test/test-callback-order.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-callback-order.Tpo test/$(DEPDIR)/run_tests-test-callback-order.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-callback-order.c' object='test/run_tests-test-callback-order.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-callback-order.obj `if test -f 'test/test-callback-order.c'; then $(CYGPATH_W) 'test/test-callback-order.c'; else $(CYGPATH_W) '$(srcdir)/test/test-callback-order.c'; fi` - test/run_tests-test-callback-stack.o: test/test-callback-stack.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-callback-stack.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-callback-stack.Tpo -c -o test/run_tests-test-callback-stack.o `test -f 'test/test-callback-stack.c' || echo '$(srcdir)/'`test/test-callback-stack.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-callback-stack.Tpo test/$(DEPDIR)/run_tests-test-callback-stack.Po @@ -3697,6 +3732,20 @@ test/run_tests-test-idna.obj: test/test-idna.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-idna.obj `if test -f 'test/test-idna.c'; then $(CYGPATH_W) 'test/test-idna.c'; else $(CYGPATH_W) '$(srcdir)/test/test-idna.c'; fi` +test/run_tests-test-iouring-pollhup.o: test/test-iouring-pollhup.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-iouring-pollhup.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-iouring-pollhup.Tpo -c -o test/run_tests-test-iouring-pollhup.o `test -f 'test/test-iouring-pollhup.c' || echo '$(srcdir)/'`test/test-iouring-pollhup.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-iouring-pollhup.Tpo test/$(DEPDIR)/run_tests-test-iouring-pollhup.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-iouring-pollhup.c' object='test/run_tests-test-iouring-pollhup.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-iouring-pollhup.o `test -f 'test/test-iouring-pollhup.c' || echo '$(srcdir)/'`test/test-iouring-pollhup.c + +test/run_tests-test-iouring-pollhup.obj: test/test-iouring-pollhup.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-iouring-pollhup.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-iouring-pollhup.Tpo -c -o test/run_tests-test-iouring-pollhup.obj `if test -f 'test/test-iouring-pollhup.c'; then $(CYGPATH_W) 'test/test-iouring-pollhup.c'; else $(CYGPATH_W) '$(srcdir)/test/test-iouring-pollhup.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-iouring-pollhup.Tpo test/$(DEPDIR)/run_tests-test-iouring-pollhup.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-iouring-pollhup.c' object='test/run_tests-test-iouring-pollhup.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-iouring-pollhup.obj `if test -f 'test/test-iouring-pollhup.c'; then $(CYGPATH_W) 'test/test-iouring-pollhup.c'; else $(CYGPATH_W) '$(srcdir)/test/test-iouring-pollhup.c'; fi` + test/run_tests-test-ip4-addr.o: test/test-ip4-addr.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-ip4-addr.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-ip4-addr.Tpo -c -o test/run_tests-test-ip4-addr.o `test -f 'test/test-ip4-addr.c' || echo '$(srcdir)/'`test/test-ip4-addr.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-ip4-addr.Tpo test/$(DEPDIR)/run_tests-test-ip4-addr.Po @@ -3781,20 +3830,6 @@ test/run_tests-test-ipc.obj: test/test-ipc.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-ipc.obj `if test -f 'test/test-ipc.c'; then $(CYGPATH_W) 'test/test-ipc.c'; else $(CYGPATH_W) '$(srcdir)/test/test-ipc.c'; fi` -test/run_tests-test-loop-handles.o: test/test-loop-handles.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-loop-handles.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-loop-handles.Tpo -c -o test/run_tests-test-loop-handles.o `test -f 'test/test-loop-handles.c' || echo '$(srcdir)/'`test/test-loop-handles.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-loop-handles.Tpo test/$(DEPDIR)/run_tests-test-loop-handles.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-loop-handles.c' object='test/run_tests-test-loop-handles.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-loop-handles.o `test -f 'test/test-loop-handles.c' || echo '$(srcdir)/'`test/test-loop-handles.c - -test/run_tests-test-loop-handles.obj: test/test-loop-handles.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-loop-handles.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-loop-handles.Tpo -c -o test/run_tests-test-loop-handles.obj `if test -f 'test/test-loop-handles.c'; then $(CYGPATH_W) 'test/test-loop-handles.c'; else $(CYGPATH_W) '$(srcdir)/test/test-loop-handles.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-loop-handles.Tpo test/$(DEPDIR)/run_tests-test-loop-handles.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-loop-handles.c' object='test/run_tests-test-loop-handles.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-loop-handles.obj `if test -f 'test/test-loop-handles.c'; then $(CYGPATH_W) 'test/test-loop-handles.c'; else $(CYGPATH_W) '$(srcdir)/test/test-loop-handles.c'; fi` - test/run_tests-test-loop-alive.o: test/test-loop-alive.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-loop-alive.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-loop-alive.Tpo -c -o test/run_tests-test-loop-alive.o `test -f 'test/test-loop-alive.c' || echo '$(srcdir)/'`test/test-loop-alive.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-loop-alive.Tpo test/$(DEPDIR)/run_tests-test-loop-alive.Po @@ -3823,6 +3858,48 @@ test/run_tests-test-loop-close.obj: test/test-loop-close.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-loop-close.obj `if test -f 'test/test-loop-close.c'; then $(CYGPATH_W) 'test/test-loop-close.c'; else $(CYGPATH_W) '$(srcdir)/test/test-loop-close.c'; fi` +test/run_tests-test-loop-configure.o: test/test-loop-configure.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-loop-configure.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-loop-configure.Tpo -c -o test/run_tests-test-loop-configure.o `test -f 'test/test-loop-configure.c' || echo '$(srcdir)/'`test/test-loop-configure.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-loop-configure.Tpo test/$(DEPDIR)/run_tests-test-loop-configure.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-loop-configure.c' object='test/run_tests-test-loop-configure.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-loop-configure.o `test -f 'test/test-loop-configure.c' || echo '$(srcdir)/'`test/test-loop-configure.c + +test/run_tests-test-loop-configure.obj: test/test-loop-configure.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-loop-configure.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-loop-configure.Tpo -c -o test/run_tests-test-loop-configure.obj `if test -f 'test/test-loop-configure.c'; then $(CYGPATH_W) 'test/test-loop-configure.c'; else $(CYGPATH_W) '$(srcdir)/test/test-loop-configure.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-loop-configure.Tpo test/$(DEPDIR)/run_tests-test-loop-configure.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-loop-configure.c' object='test/run_tests-test-loop-configure.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-loop-configure.obj `if test -f 'test/test-loop-configure.c'; then $(CYGPATH_W) 'test/test-loop-configure.c'; else $(CYGPATH_W) '$(srcdir)/test/test-loop-configure.c'; fi` + +test/run_tests-test-loop-handles.o: test/test-loop-handles.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-loop-handles.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-loop-handles.Tpo -c -o test/run_tests-test-loop-handles.o `test -f 'test/test-loop-handles.c' || echo '$(srcdir)/'`test/test-loop-handles.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-loop-handles.Tpo test/$(DEPDIR)/run_tests-test-loop-handles.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-loop-handles.c' object='test/run_tests-test-loop-handles.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-loop-handles.o `test -f 'test/test-loop-handles.c' || echo '$(srcdir)/'`test/test-loop-handles.c + +test/run_tests-test-loop-handles.obj: test/test-loop-handles.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-loop-handles.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-loop-handles.Tpo -c -o test/run_tests-test-loop-handles.obj `if test -f 'test/test-loop-handles.c'; then $(CYGPATH_W) 'test/test-loop-handles.c'; else $(CYGPATH_W) '$(srcdir)/test/test-loop-handles.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-loop-handles.Tpo test/$(DEPDIR)/run_tests-test-loop-handles.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-loop-handles.c' object='test/run_tests-test-loop-handles.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-loop-handles.obj `if test -f 'test/test-loop-handles.c'; then $(CYGPATH_W) 'test/test-loop-handles.c'; else $(CYGPATH_W) '$(srcdir)/test/test-loop-handles.c'; fi` + +test/run_tests-test-loop-oom.o: test/test-loop-oom.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-loop-oom.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-loop-oom.Tpo -c -o test/run_tests-test-loop-oom.o `test -f 'test/test-loop-oom.c' || echo '$(srcdir)/'`test/test-loop-oom.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-loop-oom.Tpo test/$(DEPDIR)/run_tests-test-loop-oom.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-loop-oom.c' object='test/run_tests-test-loop-oom.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-loop-oom.o `test -f 'test/test-loop-oom.c' || echo '$(srcdir)/'`test/test-loop-oom.c + +test/run_tests-test-loop-oom.obj: test/test-loop-oom.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-loop-oom.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-loop-oom.Tpo -c -o test/run_tests-test-loop-oom.obj `if test -f 'test/test-loop-oom.c'; then $(CYGPATH_W) 'test/test-loop-oom.c'; else $(CYGPATH_W) '$(srcdir)/test/test-loop-oom.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-loop-oom.Tpo test/$(DEPDIR)/run_tests-test-loop-oom.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-loop-oom.c' object='test/run_tests-test-loop-oom.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-loop-oom.obj `if test -f 'test/test-loop-oom.c'; then $(CYGPATH_W) 'test/test-loop-oom.c'; else $(CYGPATH_W) '$(srcdir)/test/test-loop-oom.c'; fi` + test/run_tests-test-loop-stop.o: test/test-loop-stop.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-loop-stop.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-loop-stop.Tpo -c -o test/run_tests-test-loop-stop.o `test -f 'test/test-loop-stop.c' || echo '$(srcdir)/'`test/test-loop-stop.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-loop-stop.Tpo test/$(DEPDIR)/run_tests-test-loop-stop.Po @@ -3851,20 +3928,6 @@ test/run_tests-test-loop-time.obj: test/test-loop-time.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-loop-time.obj `if test -f 'test/test-loop-time.c'; then $(CYGPATH_W) 'test/test-loop-time.c'; else $(CYGPATH_W) '$(srcdir)/test/test-loop-time.c'; fi` -test/run_tests-test-loop-configure.o: test/test-loop-configure.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-loop-configure.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-loop-configure.Tpo -c -o test/run_tests-test-loop-configure.o `test -f 'test/test-loop-configure.c' || echo '$(srcdir)/'`test/test-loop-configure.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-loop-configure.Tpo test/$(DEPDIR)/run_tests-test-loop-configure.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-loop-configure.c' object='test/run_tests-test-loop-configure.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-loop-configure.o `test -f 'test/test-loop-configure.c' || echo '$(srcdir)/'`test/test-loop-configure.c - -test/run_tests-test-loop-configure.obj: test/test-loop-configure.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-loop-configure.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-loop-configure.Tpo -c -o test/run_tests-test-loop-configure.obj `if test -f 'test/test-loop-configure.c'; then $(CYGPATH_W) 'test/test-loop-configure.c'; else $(CYGPATH_W) '$(srcdir)/test/test-loop-configure.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-loop-configure.Tpo test/$(DEPDIR)/run_tests-test-loop-configure.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-loop-configure.c' object='test/run_tests-test-loop-configure.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-loop-configure.obj `if test -f 'test/test-loop-configure.c'; then $(CYGPATH_W) 'test/test-loop-configure.c'; else $(CYGPATH_W) '$(srcdir)/test/test-loop-configure.c'; fi` - test/run_tests-test-metrics.o: test/test-metrics.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-metrics.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-metrics.Tpo -c -o test/run_tests-test-metrics.o `test -f 'test/test-metrics.c' || echo '$(srcdir)/'`test/test-metrics.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-metrics.Tpo test/$(DEPDIR)/run_tests-test-metrics.Po @@ -4523,6 +4586,20 @@ test/run_tests-test-strscpy.obj: test/test-strscpy.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-strscpy.obj `if test -f 'test/test-strscpy.c'; then $(CYGPATH_W) 'test/test-strscpy.c'; else $(CYGPATH_W) '$(srcdir)/test/test-strscpy.c'; fi` +test/run_tests-test-strtok.o: test/test-strtok.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-strtok.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-strtok.Tpo -c -o test/run_tests-test-strtok.o `test -f 'test/test-strtok.c' || echo '$(srcdir)/'`test/test-strtok.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-strtok.Tpo test/$(DEPDIR)/run_tests-test-strtok.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-strtok.c' object='test/run_tests-test-strtok.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-strtok.o `test -f 'test/test-strtok.c' || echo '$(srcdir)/'`test/test-strtok.c + +test/run_tests-test-strtok.obj: test/test-strtok.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-strtok.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-strtok.Tpo -c -o test/run_tests-test-strtok.obj `if test -f 'test/test-strtok.c'; then $(CYGPATH_W) 'test/test-strtok.c'; else $(CYGPATH_W) '$(srcdir)/test/test-strtok.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-strtok.Tpo test/$(DEPDIR)/run_tests-test-strtok.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-strtok.c' object='test/run_tests-test-strtok.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-strtok.obj `if test -f 'test/test-strtok.c'; then $(CYGPATH_W) 'test/test-strtok.c'; else $(CYGPATH_W) '$(srcdir)/test/test-strtok.c'; fi` + test/run_tests-test-tcp-alloc-cb-fail.o: test/test-tcp-alloc-cb-fail.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-tcp-alloc-cb-fail.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-tcp-alloc-cb-fail.Tpo -c -o test/run_tests-test-tcp-alloc-cb-fail.o `test -f 'test/test-tcp-alloc-cb-fail.c' || echo '$(srcdir)/'`test/test-tcp-alloc-cb-fail.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-tcp-alloc-cb-fail.Tpo test/$(DEPDIR)/run_tests-test-tcp-alloc-cb-fail.Po @@ -4593,6 +4670,20 @@ test/run_tests-test-tcp-close-while-connecting.obj: test/test-tcp-close-while-co @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-tcp-close-while-connecting.obj `if test -f 'test/test-tcp-close-while-connecting.c'; then $(CYGPATH_W) 'test/test-tcp-close-while-connecting.c'; else $(CYGPATH_W) '$(srcdir)/test/test-tcp-close-while-connecting.c'; fi` +test/run_tests-test-tcp-close-after-read-timeout.o: test/test-tcp-close-after-read-timeout.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-tcp-close-after-read-timeout.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-tcp-close-after-read-timeout.Tpo -c -o test/run_tests-test-tcp-close-after-read-timeout.o `test -f 'test/test-tcp-close-after-read-timeout.c' || echo '$(srcdir)/'`test/test-tcp-close-after-read-timeout.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-tcp-close-after-read-timeout.Tpo test/$(DEPDIR)/run_tests-test-tcp-close-after-read-timeout.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-tcp-close-after-read-timeout.c' object='test/run_tests-test-tcp-close-after-read-timeout.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-tcp-close-after-read-timeout.o `test -f 'test/test-tcp-close-after-read-timeout.c' || echo '$(srcdir)/'`test/test-tcp-close-after-read-timeout.c + +test/run_tests-test-tcp-close-after-read-timeout.obj: test/test-tcp-close-after-read-timeout.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-tcp-close-after-read-timeout.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-tcp-close-after-read-timeout.Tpo -c -o test/run_tests-test-tcp-close-after-read-timeout.obj `if test -f 'test/test-tcp-close-after-read-timeout.c'; then $(CYGPATH_W) 'test/test-tcp-close-after-read-timeout.c'; else $(CYGPATH_W) '$(srcdir)/test/test-tcp-close-after-read-timeout.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-tcp-close-after-read-timeout.Tpo test/$(DEPDIR)/run_tests-test-tcp-close-after-read-timeout.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-tcp-close-after-read-timeout.c' object='test/run_tests-test-tcp-close-after-read-timeout.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-tcp-close-after-read-timeout.obj `if test -f 'test/test-tcp-close-after-read-timeout.c'; then $(CYGPATH_W) 'test/test-tcp-close-after-read-timeout.c'; else $(CYGPATH_W) '$(srcdir)/test/test-tcp-close-after-read-timeout.c'; fi` + test/run_tests-test-tcp-close.o: test/test-tcp-close.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-tcp-close.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-tcp-close.Tpo -c -o test/run_tests-test-tcp-close.o `test -f 'test/test-tcp-close.c' || echo '$(srcdir)/'`test/test-tcp-close.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-tcp-close.Tpo test/$(DEPDIR)/run_tests-test-tcp-close.Po @@ -4733,6 +4824,20 @@ test/run_tests-test-tcp-read-stop.obj: test/test-tcp-read-stop.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-tcp-read-stop.obj `if test -f 'test/test-tcp-read-stop.c'; then $(CYGPATH_W) 'test/test-tcp-read-stop.c'; else $(CYGPATH_W) '$(srcdir)/test/test-tcp-read-stop.c'; fi` +test/run_tests-test-tcp-reuseport.o: test/test-tcp-reuseport.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-tcp-reuseport.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-tcp-reuseport.Tpo -c -o test/run_tests-test-tcp-reuseport.o `test -f 'test/test-tcp-reuseport.c' || echo '$(srcdir)/'`test/test-tcp-reuseport.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-tcp-reuseport.Tpo test/$(DEPDIR)/run_tests-test-tcp-reuseport.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-tcp-reuseport.c' object='test/run_tests-test-tcp-reuseport.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-tcp-reuseport.o `test -f 'test/test-tcp-reuseport.c' || echo '$(srcdir)/'`test/test-tcp-reuseport.c + +test/run_tests-test-tcp-reuseport.obj: test/test-tcp-reuseport.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-tcp-reuseport.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-tcp-reuseport.Tpo -c -o test/run_tests-test-tcp-reuseport.obj `if test -f 'test/test-tcp-reuseport.c'; then $(CYGPATH_W) 'test/test-tcp-reuseport.c'; else $(CYGPATH_W) '$(srcdir)/test/test-tcp-reuseport.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-tcp-reuseport.Tpo test/$(DEPDIR)/run_tests-test-tcp-reuseport.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-tcp-reuseport.c' object='test/run_tests-test-tcp-reuseport.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-tcp-reuseport.obj `if test -f 'test/test-tcp-reuseport.c'; then $(CYGPATH_W) 'test/test-tcp-reuseport.c'; else $(CYGPATH_W) '$(srcdir)/test/test-tcp-reuseport.c'; fi` + test/run_tests-test-tcp-read-stop-start.o: test/test-tcp-read-stop-start.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-tcp-read-stop-start.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-tcp-read-stop-start.Tpo -c -o test/run_tests-test-tcp-read-stop-start.o `test -f 'test/test-tcp-read-stop-start.c' || echo '$(srcdir)/'`test/test-tcp-read-stop-start.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-tcp-read-stop-start.Tpo test/$(DEPDIR)/run_tests-test-tcp-read-stop-start.Po @@ -4747,6 +4852,20 @@ test/run_tests-test-tcp-read-stop-start.obj: test/test-tcp-read-stop-start.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-tcp-read-stop-start.obj `if test -f 'test/test-tcp-read-stop-start.c'; then $(CYGPATH_W) 'test/test-tcp-read-stop-start.c'; else $(CYGPATH_W) '$(srcdir)/test/test-tcp-read-stop-start.c'; fi` +test/run_tests-test-tcp-rst.o: test/test-tcp-rst.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-tcp-rst.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-tcp-rst.Tpo -c -o test/run_tests-test-tcp-rst.o `test -f 'test/test-tcp-rst.c' || echo '$(srcdir)/'`test/test-tcp-rst.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-tcp-rst.Tpo test/$(DEPDIR)/run_tests-test-tcp-rst.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-tcp-rst.c' object='test/run_tests-test-tcp-rst.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-tcp-rst.o `test -f 'test/test-tcp-rst.c' || echo '$(srcdir)/'`test/test-tcp-rst.c + +test/run_tests-test-tcp-rst.obj: test/test-tcp-rst.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-tcp-rst.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-tcp-rst.Tpo -c -o test/run_tests-test-tcp-rst.obj `if test -f 'test/test-tcp-rst.c'; then $(CYGPATH_W) 'test/test-tcp-rst.c'; else $(CYGPATH_W) '$(srcdir)/test/test-tcp-rst.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-tcp-rst.Tpo test/$(DEPDIR)/run_tests-test-tcp-rst.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-tcp-rst.c' object='test/run_tests-test-tcp-rst.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-tcp-rst.obj `if test -f 'test/test-tcp-rst.c'; then $(CYGPATH_W) 'test/test-tcp-rst.c'; else $(CYGPATH_W) '$(srcdir)/test/test-tcp-rst.c'; fi` + test/run_tests-test-tcp-shutdown-after-write.o: test/test-tcp-shutdown-after-write.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-tcp-shutdown-after-write.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-tcp-shutdown-after-write.Tpo -c -o test/run_tests-test-tcp-shutdown-after-write.o `test -f 'test/test-tcp-shutdown-after-write.c' || echo '$(srcdir)/'`test/test-tcp-shutdown-after-write.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-tcp-shutdown-after-write.Tpo test/$(DEPDIR)/run_tests-test-tcp-shutdown-after-write.Po @@ -4859,6 +4978,20 @@ test/run_tests-test-tcp-try-write.obj: test/test-tcp-try-write.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-tcp-try-write.obj `if test -f 'test/test-tcp-try-write.c'; then $(CYGPATH_W) 'test/test-tcp-try-write.c'; else $(CYGPATH_W) '$(srcdir)/test/test-tcp-try-write.c'; fi` +test/run_tests-test-tcp-write-in-a-row.o: test/test-tcp-write-in-a-row.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-tcp-write-in-a-row.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-tcp-write-in-a-row.Tpo -c -o test/run_tests-test-tcp-write-in-a-row.o `test -f 'test/test-tcp-write-in-a-row.c' || echo '$(srcdir)/'`test/test-tcp-write-in-a-row.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-tcp-write-in-a-row.Tpo test/$(DEPDIR)/run_tests-test-tcp-write-in-a-row.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-tcp-write-in-a-row.c' object='test/run_tests-test-tcp-write-in-a-row.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-tcp-write-in-a-row.o `test -f 'test/test-tcp-write-in-a-row.c' || echo '$(srcdir)/'`test/test-tcp-write-in-a-row.c + +test/run_tests-test-tcp-write-in-a-row.obj: test/test-tcp-write-in-a-row.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-tcp-write-in-a-row.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-tcp-write-in-a-row.Tpo -c -o test/run_tests-test-tcp-write-in-a-row.obj `if test -f 'test/test-tcp-write-in-a-row.c'; then $(CYGPATH_W) 'test/test-tcp-write-in-a-row.c'; else $(CYGPATH_W) '$(srcdir)/test/test-tcp-write-in-a-row.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-tcp-write-in-a-row.Tpo test/$(DEPDIR)/run_tests-test-tcp-write-in-a-row.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-tcp-write-in-a-row.c' object='test/run_tests-test-tcp-write-in-a-row.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-tcp-write-in-a-row.obj `if test -f 'test/test-tcp-write-in-a-row.c'; then $(CYGPATH_W) 'test/test-tcp-write-in-a-row.c'; else $(CYGPATH_W) '$(srcdir)/test/test-tcp-write-in-a-row.c'; fi` + test/run_tests-test-tcp-try-write-error.o: test/test-tcp-try-write-error.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-tcp-try-write-error.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-tcp-try-write-error.Tpo -c -o test/run_tests-test-tcp-try-write-error.o `test -f 'test/test-tcp-try-write-error.c' || echo '$(srcdir)/'`test/test-tcp-try-write-error.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-tcp-try-write-error.Tpo test/$(DEPDIR)/run_tests-test-tcp-try-write-error.Po @@ -4929,6 +5062,48 @@ test/run_tests-test-thread.obj: test/test-thread.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-thread.obj `if test -f 'test/test-thread.c'; then $(CYGPATH_W) 'test/test-thread.c'; else $(CYGPATH_W) '$(srcdir)/test/test-thread.c'; fi` +test/run_tests-test-thread-affinity.o: test/test-thread-affinity.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-thread-affinity.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-thread-affinity.Tpo -c -o test/run_tests-test-thread-affinity.o `test -f 'test/test-thread-affinity.c' || echo '$(srcdir)/'`test/test-thread-affinity.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-thread-affinity.Tpo test/$(DEPDIR)/run_tests-test-thread-affinity.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-thread-affinity.c' object='test/run_tests-test-thread-affinity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-thread-affinity.o `test -f 'test/test-thread-affinity.c' || echo '$(srcdir)/'`test/test-thread-affinity.c + +test/run_tests-test-thread-affinity.obj: test/test-thread-affinity.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-thread-affinity.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-thread-affinity.Tpo -c -o test/run_tests-test-thread-affinity.obj `if test -f 'test/test-thread-affinity.c'; then $(CYGPATH_W) 'test/test-thread-affinity.c'; else $(CYGPATH_W) '$(srcdir)/test/test-thread-affinity.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-thread-affinity.Tpo test/$(DEPDIR)/run_tests-test-thread-affinity.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-thread-affinity.c' object='test/run_tests-test-thread-affinity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-thread-affinity.obj `if test -f 'test/test-thread-affinity.c'; then $(CYGPATH_W) 'test/test-thread-affinity.c'; else $(CYGPATH_W) '$(srcdir)/test/test-thread-affinity.c'; fi` + +test/run_tests-test-thread-name.o: test/test-thread-name.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-thread-name.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-thread-name.Tpo -c -o test/run_tests-test-thread-name.o `test -f 'test/test-thread-name.c' || echo '$(srcdir)/'`test/test-thread-name.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-thread-name.Tpo test/$(DEPDIR)/run_tests-test-thread-name.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-thread-name.c' object='test/run_tests-test-thread-name.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-thread-name.o `test -f 'test/test-thread-name.c' || echo '$(srcdir)/'`test/test-thread-name.c + +test/run_tests-test-thread-name.obj: test/test-thread-name.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-thread-name.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-thread-name.Tpo -c -o test/run_tests-test-thread-name.obj `if test -f 'test/test-thread-name.c'; then $(CYGPATH_W) 'test/test-thread-name.c'; else $(CYGPATH_W) '$(srcdir)/test/test-thread-name.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-thread-name.Tpo test/$(DEPDIR)/run_tests-test-thread-name.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-thread-name.c' object='test/run_tests-test-thread-name.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-thread-name.obj `if test -f 'test/test-thread-name.c'; then $(CYGPATH_W) 'test/test-thread-name.c'; else $(CYGPATH_W) '$(srcdir)/test/test-thread-name.c'; fi` + +test/run_tests-test-thread-priority.o: test/test-thread-priority.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-thread-priority.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-thread-priority.Tpo -c -o test/run_tests-test-thread-priority.o `test -f 'test/test-thread-priority.c' || echo '$(srcdir)/'`test/test-thread-priority.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-thread-priority.Tpo test/$(DEPDIR)/run_tests-test-thread-priority.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-thread-priority.c' object='test/run_tests-test-thread-priority.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-thread-priority.o `test -f 'test/test-thread-priority.c' || echo '$(srcdir)/'`test/test-thread-priority.c + +test/run_tests-test-thread-priority.obj: test/test-thread-priority.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-thread-priority.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-thread-priority.Tpo -c -o test/run_tests-test-thread-priority.obj `if test -f 'test/test-thread-priority.c'; then $(CYGPATH_W) 'test/test-thread-priority.c'; else $(CYGPATH_W) '$(srcdir)/test/test-thread-priority.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-thread-priority.Tpo test/$(DEPDIR)/run_tests-test-thread-priority.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-thread-priority.c' object='test/run_tests-test-thread-priority.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-thread-priority.obj `if test -f 'test/test-thread-priority.c'; then $(CYGPATH_W) 'test/test-thread-priority.c'; else $(CYGPATH_W) '$(srcdir)/test/test-thread-priority.c'; fi` + test/run_tests-test-threadpool-cancel.o: test/test-threadpool-cancel.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-threadpool-cancel.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-threadpool-cancel.Tpo -c -o test/run_tests-test-threadpool-cancel.o `test -f 'test/test-threadpool-cancel.c' || echo '$(srcdir)/'`test/test-threadpool-cancel.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-threadpool-cancel.Tpo test/$(DEPDIR)/run_tests-test-threadpool-cancel.Po @@ -5335,6 +5510,34 @@ test/run_tests-test-udp-send-unreachable.obj: test/test-udp-send-unreachable.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-udp-send-unreachable.obj `if test -f 'test/test-udp-send-unreachable.c'; then $(CYGPATH_W) 'test/test-udp-send-unreachable.c'; else $(CYGPATH_W) '$(srcdir)/test/test-udp-send-unreachable.c'; fi` +test/run_tests-test-udp-recv-cb-close-pollerr.o: test/test-udp-recv-cb-close-pollerr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-udp-recv-cb-close-pollerr.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-udp-recv-cb-close-pollerr.Tpo -c -o test/run_tests-test-udp-recv-cb-close-pollerr.o `test -f 'test/test-udp-recv-cb-close-pollerr.c' || echo '$(srcdir)/'`test/test-udp-recv-cb-close-pollerr.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-udp-recv-cb-close-pollerr.Tpo test/$(DEPDIR)/run_tests-test-udp-recv-cb-close-pollerr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-udp-recv-cb-close-pollerr.c' object='test/run_tests-test-udp-recv-cb-close-pollerr.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-udp-recv-cb-close-pollerr.o `test -f 'test/test-udp-recv-cb-close-pollerr.c' || echo '$(srcdir)/'`test/test-udp-recv-cb-close-pollerr.c + +test/run_tests-test-udp-recv-cb-close-pollerr.obj: test/test-udp-recv-cb-close-pollerr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-udp-recv-cb-close-pollerr.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-udp-recv-cb-close-pollerr.Tpo -c -o test/run_tests-test-udp-recv-cb-close-pollerr.obj `if test -f 'test/test-udp-recv-cb-close-pollerr.c'; then $(CYGPATH_W) 'test/test-udp-recv-cb-close-pollerr.c'; else $(CYGPATH_W) '$(srcdir)/test/test-udp-recv-cb-close-pollerr.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-udp-recv-cb-close-pollerr.Tpo test/$(DEPDIR)/run_tests-test-udp-recv-cb-close-pollerr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-udp-recv-cb-close-pollerr.c' object='test/run_tests-test-udp-recv-cb-close-pollerr.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-udp-recv-cb-close-pollerr.obj `if test -f 'test/test-udp-recv-cb-close-pollerr.c'; then $(CYGPATH_W) 'test/test-udp-recv-cb-close-pollerr.c'; else $(CYGPATH_W) '$(srcdir)/test/test-udp-recv-cb-close-pollerr.c'; fi` + +test/run_tests-test-udp-recvmsg-unreachable-error.o: test/test-udp-recvmsg-unreachable-error.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-udp-recvmsg-unreachable-error.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-udp-recvmsg-unreachable-error.Tpo -c -o test/run_tests-test-udp-recvmsg-unreachable-error.o `test -f 'test/test-udp-recvmsg-unreachable-error.c' || echo '$(srcdir)/'`test/test-udp-recvmsg-unreachable-error.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-udp-recvmsg-unreachable-error.Tpo test/$(DEPDIR)/run_tests-test-udp-recvmsg-unreachable-error.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-udp-recvmsg-unreachable-error.c' object='test/run_tests-test-udp-recvmsg-unreachable-error.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-udp-recvmsg-unreachable-error.o `test -f 'test/test-udp-recvmsg-unreachable-error.c' || echo '$(srcdir)/'`test/test-udp-recvmsg-unreachable-error.c + +test/run_tests-test-udp-recvmsg-unreachable-error.obj: test/test-udp-recvmsg-unreachable-error.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-udp-recvmsg-unreachable-error.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-udp-recvmsg-unreachable-error.Tpo -c -o test/run_tests-test-udp-recvmsg-unreachable-error.obj `if test -f 'test/test-udp-recvmsg-unreachable-error.c'; then $(CYGPATH_W) 'test/test-udp-recvmsg-unreachable-error.c'; else $(CYGPATH_W) '$(srcdir)/test/test-udp-recvmsg-unreachable-error.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-udp-recvmsg-unreachable-error.Tpo test/$(DEPDIR)/run_tests-test-udp-recvmsg-unreachable-error.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-udp-recvmsg-unreachable-error.c' object='test/run_tests-test-udp-recvmsg-unreachable-error.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-udp-recvmsg-unreachable-error.obj `if test -f 'test/test-udp-recvmsg-unreachable-error.c'; then $(CYGPATH_W) 'test/test-udp-recvmsg-unreachable-error.c'; else $(CYGPATH_W) '$(srcdir)/test/test-udp-recvmsg-unreachable-error.c'; fi` + test/run_tests-test-udp-try-send.o: test/test-udp-try-send.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-udp-try-send.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-udp-try-send.Tpo -c -o test/run_tests-test-udp-try-send.o `test -f 'test/test-udp-try-send.c' || echo '$(srcdir)/'`test/test-udp-try-send.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-udp-try-send.Tpo test/$(DEPDIR)/run_tests-test-udp-try-send.Po @@ -5349,6 +5552,34 @@ test/run_tests-test-udp-try-send.obj: test/test-udp-try-send.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-udp-try-send.obj `if test -f 'test/test-udp-try-send.c'; then $(CYGPATH_W) 'test/test-udp-try-send.c'; else $(CYGPATH_W) '$(srcdir)/test/test-udp-try-send.c'; fi` +test/run_tests-test-udp-recv-in-a-row.o: test/test-udp-recv-in-a-row.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-udp-recv-in-a-row.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-udp-recv-in-a-row.Tpo -c -o test/run_tests-test-udp-recv-in-a-row.o `test -f 'test/test-udp-recv-in-a-row.c' || echo '$(srcdir)/'`test/test-udp-recv-in-a-row.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-udp-recv-in-a-row.Tpo test/$(DEPDIR)/run_tests-test-udp-recv-in-a-row.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-udp-recv-in-a-row.c' object='test/run_tests-test-udp-recv-in-a-row.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-udp-recv-in-a-row.o `test -f 'test/test-udp-recv-in-a-row.c' || echo '$(srcdir)/'`test/test-udp-recv-in-a-row.c + +test/run_tests-test-udp-recv-in-a-row.obj: test/test-udp-recv-in-a-row.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-udp-recv-in-a-row.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-udp-recv-in-a-row.Tpo -c -o test/run_tests-test-udp-recv-in-a-row.obj `if test -f 'test/test-udp-recv-in-a-row.c'; then $(CYGPATH_W) 'test/test-udp-recv-in-a-row.c'; else $(CYGPATH_W) '$(srcdir)/test/test-udp-recv-in-a-row.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-udp-recv-in-a-row.Tpo test/$(DEPDIR)/run_tests-test-udp-recv-in-a-row.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-udp-recv-in-a-row.c' object='test/run_tests-test-udp-recv-in-a-row.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-udp-recv-in-a-row.obj `if test -f 'test/test-udp-recv-in-a-row.c'; then $(CYGPATH_W) 'test/test-udp-recv-in-a-row.c'; else $(CYGPATH_W) '$(srcdir)/test/test-udp-recv-in-a-row.c'; fi` + +test/run_tests-test-udp-reuseport.o: test/test-udp-reuseport.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-udp-reuseport.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-udp-reuseport.Tpo -c -o test/run_tests-test-udp-reuseport.o `test -f 'test/test-udp-reuseport.c' || echo '$(srcdir)/'`test/test-udp-reuseport.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-udp-reuseport.Tpo test/$(DEPDIR)/run_tests-test-udp-reuseport.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-udp-reuseport.c' object='test/run_tests-test-udp-reuseport.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-udp-reuseport.o `test -f 'test/test-udp-reuseport.c' || echo '$(srcdir)/'`test/test-udp-reuseport.c + +test/run_tests-test-udp-reuseport.obj: test/test-udp-reuseport.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-udp-reuseport.obj -MD -MP -MF test/$(DEPDIR)/run_tests-test-udp-reuseport.Tpo -c -o test/run_tests-test-udp-reuseport.obj `if test -f 'test/test-udp-reuseport.c'; then $(CYGPATH_W) 'test/test-udp-reuseport.c'; else $(CYGPATH_W) '$(srcdir)/test/test-udp-reuseport.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-udp-reuseport.Tpo test/$(DEPDIR)/run_tests-test-udp-reuseport.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test/test-udp-reuseport.c' object='test/run_tests-test-udp-reuseport.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -c -o test/run_tests-test-udp-reuseport.obj `if test -f 'test/test-udp-reuseport.c'; then $(CYGPATH_W) 'test/test-udp-reuseport.c'; else $(CYGPATH_W) '$(srcdir)/test/test-udp-reuseport.c'; fi` + test/run_tests-test-uname.o: test/test-uname.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_run_tests_CFLAGS) $(CFLAGS) -MT test/run_tests-test-uname.o -MD -MP -MF test/$(DEPDIR)/run_tests-test-uname.Tpo -c -o test/run_tests-test-uname.o `test -f 'test/test-uname.c' || echo '$(srcdir)/'`test/test-uname.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) test/$(DEPDIR)/run_tests-test-uname.Tpo test/$(DEPDIR)/run_tests-test-uname.Po @@ -5646,12 +5877,13 @@ check-TESTS: $(TESTS) echo "$${col}$$dashes$${std}"; \ test "$$failed" -eq 0; \ else :; fi + distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) $(am__remove_distdir) - test -d "$(distdir)" || mkdir "$(distdir)" + $(AM_V_at)$(MKDIR_P) "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -5696,6 +5928,10 @@ dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) +dist-bzip3: distdir + tardir=$(distdir) && $(am__tar) | bzip3 -c >$(distdir).tar.bz3 + $(am__post_remove_distdir) + dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) @@ -5737,9 +5973,11 @@ dist dist-all: distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ + eval GZIP= gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.bz3*) \ + bzip3 -dc $(distdir).tar.bz3 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ @@ -5747,7 +5985,7 @@ distcheck: dist *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ + eval GZIP= gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ *.tar.zst*) \ @@ -5851,19 +6089,19 @@ install-strip: mostlyclean-generic: clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + -$(am__rm_f) $(CLEANFILES) distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f src/$(DEPDIR)/$(am__dirstamp) - -rm -f src/$(am__dirstamp) - -rm -f src/unix/$(DEPDIR)/$(am__dirstamp) - -rm -f src/unix/$(am__dirstamp) - -rm -f src/win/$(DEPDIR)/$(am__dirstamp) - -rm -f src/win/$(am__dirstamp) - -rm -f test/$(DEPDIR)/$(am__dirstamp) - -rm -f test/$(am__dirstamp) + -$(am__rm_f) $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES) + -$(am__rm_f) src/$(DEPDIR)/$(am__dirstamp) + -$(am__rm_f) src/$(am__dirstamp) + -$(am__rm_f) src/unix/$(DEPDIR)/$(am__dirstamp) + -$(am__rm_f) src/unix/$(am__dirstamp) + -$(am__rm_f) src/win/$(DEPDIR)/$(am__dirstamp) + -$(am__rm_f) src/win/$(am__dirstamp) + -$(am__rm_f) test/$(DEPDIR)/$(am__dirstamp) + -$(am__rm_f) test/$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -5875,11 +6113,13 @@ clean-am: clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \ distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f src/$(DEPDIR)/libuv_la-fs-poll.Plo + -rm -f src/$(DEPDIR)/libuv_la-fs-poll.Plo -rm -f src/$(DEPDIR)/libuv_la-idna.Plo -rm -f src/$(DEPDIR)/libuv_la-inet.Plo -rm -f src/$(DEPDIR)/libuv_la-random.Plo -rm -f src/$(DEPDIR)/libuv_la-strscpy.Plo + -rm -f src/$(DEPDIR)/libuv_la-strtok.Plo + -rm -f src/$(DEPDIR)/libuv_la-thread-common.Plo -rm -f src/$(DEPDIR)/libuv_la-threadpool.Plo -rm -f src/$(DEPDIR)/libuv_la-timer.Plo -rm -f src/$(DEPDIR)/libuv_la-uv-common.Plo @@ -5887,7 +6127,6 @@ distclean: distclean-am -rm -f src/$(DEPDIR)/libuv_la-version.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-aix-common.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-aix.Plo - -rm -f src/unix/$(DEPDIR)/libuv_la-android-ifaddrs.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-async.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-bsd-ifaddrs.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-bsd-proctitle.Plo @@ -5896,18 +6135,16 @@ distclean: distclean-am -rm -f src/unix/$(DEPDIR)/libuv_la-darwin-proctitle.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-darwin.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-dl.Plo - -rm -f src/unix/$(DEPDIR)/libuv_la-epoll.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-freebsd.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-fs.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-fsevents.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-getaddrinfo.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-getnameinfo.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-haiku.Plo + -rm -f src/unix/$(DEPDIR)/libuv_la-hurd.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-ibmi.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-kqueue.Plo - -rm -f src/unix/$(DEPDIR)/libuv_la-linux-core.Plo - -rm -f src/unix/$(DEPDIR)/libuv_la-linux-inotify.Plo - -rm -f src/unix/$(DEPDIR)/libuv_la-linux-syscalls.Plo + -rm -f src/unix/$(DEPDIR)/libuv_la-linux.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-loop-watcher.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-loop.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-netbsd.Plo @@ -5923,7 +6160,6 @@ distclean: distclean-am -rm -f src/unix/$(DEPDIR)/libuv_la-process.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-procfs-exepath.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-proctitle.Plo - -rm -f src/unix/$(DEPDIR)/libuv_la-pthread-fixes.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-random-devurandom.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-random-getentropy.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-random-getrandom.Plo @@ -5971,7 +6207,6 @@ distclean: distclean-am -rm -f test/$(DEPDIR)/run_tests-test-async-null-cb.Po -rm -f test/$(DEPDIR)/run_tests-test-async.Po -rm -f test/$(DEPDIR)/run_tests-test-barrier.Po - -rm -f test/$(DEPDIR)/run_tests-test-callback-order.Po -rm -f test/$(DEPDIR)/run_tests-test-callback-stack.Po -rm -f test/$(DEPDIR)/run_tests-test-close-fd.Po -rm -f test/$(DEPDIR)/run_tests-test-close-order.Po @@ -6011,6 +6246,7 @@ distclean: distclean-am -rm -f test/$(DEPDIR)/run_tests-test-hrtime.Po -rm -f test/$(DEPDIR)/run_tests-test-idle.Po -rm -f test/$(DEPDIR)/run_tests-test-idna.Po + -rm -f test/$(DEPDIR)/run_tests-test-iouring-pollhup.Po -rm -f test/$(DEPDIR)/run_tests-test-ip-name.Po -rm -f test/$(DEPDIR)/run_tests-test-ip4-addr.Po -rm -f test/$(DEPDIR)/run_tests-test-ip6-addr.Po @@ -6021,6 +6257,7 @@ distclean: distclean-am -rm -f test/$(DEPDIR)/run_tests-test-loop-close.Po -rm -f test/$(DEPDIR)/run_tests-test-loop-configure.Po -rm -f test/$(DEPDIR)/run_tests-test-loop-handles.Po + -rm -f test/$(DEPDIR)/run_tests-test-loop-oom.Po -rm -f test/$(DEPDIR)/run_tests-test-loop-stop.Po -rm -f test/$(DEPDIR)/run_tests-test-loop-time.Po -rm -f test/$(DEPDIR)/run_tests-test-metrics.Po @@ -6070,10 +6307,12 @@ distclean: distclean-am -rm -f test/$(DEPDIR)/run_tests-test-spawn.Po -rm -f test/$(DEPDIR)/run_tests-test-stdio-over-pipes.Po -rm -f test/$(DEPDIR)/run_tests-test-strscpy.Po + -rm -f test/$(DEPDIR)/run_tests-test-strtok.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-alloc-cb-fail.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-bind-error.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-bind6-error.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-close-accept.Po + -rm -f test/$(DEPDIR)/run_tests-test-tcp-close-after-read-timeout.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-close-reset.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-close-while-connecting.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-close.Po @@ -6087,17 +6326,23 @@ distclean: distclean-am -rm -f test/$(DEPDIR)/run_tests-test-tcp-open.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-read-stop-start.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-read-stop.Po + -rm -f test/$(DEPDIR)/run_tests-test-tcp-reuseport.Po + -rm -f test/$(DEPDIR)/run_tests-test-tcp-rst.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-shutdown-after-write.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-try-write-error.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-try-write.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-unexpected-read.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-write-after-connect.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-write-fail.Po + -rm -f test/$(DEPDIR)/run_tests-test-tcp-write-in-a-row.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-write-queue-order.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-write-to-half-open-connection.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-writealot.Po -rm -f test/$(DEPDIR)/run_tests-test-test-macros.Po + -rm -f test/$(DEPDIR)/run_tests-test-thread-affinity.Po -rm -f test/$(DEPDIR)/run_tests-test-thread-equal.Po + -rm -f test/$(DEPDIR)/run_tests-test-thread-name.Po + -rm -f test/$(DEPDIR)/run_tests-test-thread-priority.Po -rm -f test/$(DEPDIR)/run_tests-test-thread.Po -rm -f test/$(DEPDIR)/run_tests-test-threadpool-cancel.Po -rm -f test/$(DEPDIR)/run_tests-test-threadpool.Po @@ -6123,6 +6368,10 @@ distclean: distclean-am -rm -f test/$(DEPDIR)/run_tests-test-udp-multicast-ttl.Po -rm -f test/$(DEPDIR)/run_tests-test-udp-open.Po -rm -f test/$(DEPDIR)/run_tests-test-udp-options.Po + -rm -f test/$(DEPDIR)/run_tests-test-udp-recv-cb-close-pollerr.Po + -rm -f test/$(DEPDIR)/run_tests-test-udp-recv-in-a-row.Po + -rm -f test/$(DEPDIR)/run_tests-test-udp-recvmsg-unreachable-error.Po + -rm -f test/$(DEPDIR)/run_tests-test-udp-reuseport.Po -rm -f test/$(DEPDIR)/run_tests-test-udp-send-and-recv.Po -rm -f test/$(DEPDIR)/run_tests-test-udp-send-hang-loop.Po -rm -f test/$(DEPDIR)/run_tests-test-udp-send-immediate.Po @@ -6180,11 +6429,13 @@ installcheck-am: maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache - -rm -f src/$(DEPDIR)/libuv_la-fs-poll.Plo + -rm -f src/$(DEPDIR)/libuv_la-fs-poll.Plo -rm -f src/$(DEPDIR)/libuv_la-idna.Plo -rm -f src/$(DEPDIR)/libuv_la-inet.Plo -rm -f src/$(DEPDIR)/libuv_la-random.Plo -rm -f src/$(DEPDIR)/libuv_la-strscpy.Plo + -rm -f src/$(DEPDIR)/libuv_la-strtok.Plo + -rm -f src/$(DEPDIR)/libuv_la-thread-common.Plo -rm -f src/$(DEPDIR)/libuv_la-threadpool.Plo -rm -f src/$(DEPDIR)/libuv_la-timer.Plo -rm -f src/$(DEPDIR)/libuv_la-uv-common.Plo @@ -6192,7 +6443,6 @@ maintainer-clean: maintainer-clean-am -rm -f src/$(DEPDIR)/libuv_la-version.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-aix-common.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-aix.Plo - -rm -f src/unix/$(DEPDIR)/libuv_la-android-ifaddrs.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-async.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-bsd-ifaddrs.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-bsd-proctitle.Plo @@ -6201,18 +6451,16 @@ maintainer-clean: maintainer-clean-am -rm -f src/unix/$(DEPDIR)/libuv_la-darwin-proctitle.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-darwin.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-dl.Plo - -rm -f src/unix/$(DEPDIR)/libuv_la-epoll.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-freebsd.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-fs.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-fsevents.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-getaddrinfo.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-getnameinfo.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-haiku.Plo + -rm -f src/unix/$(DEPDIR)/libuv_la-hurd.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-ibmi.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-kqueue.Plo - -rm -f src/unix/$(DEPDIR)/libuv_la-linux-core.Plo - -rm -f src/unix/$(DEPDIR)/libuv_la-linux-inotify.Plo - -rm -f src/unix/$(DEPDIR)/libuv_la-linux-syscalls.Plo + -rm -f src/unix/$(DEPDIR)/libuv_la-linux.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-loop-watcher.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-loop.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-netbsd.Plo @@ -6228,7 +6476,6 @@ maintainer-clean: maintainer-clean-am -rm -f src/unix/$(DEPDIR)/libuv_la-process.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-procfs-exepath.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-proctitle.Plo - -rm -f src/unix/$(DEPDIR)/libuv_la-pthread-fixes.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-random-devurandom.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-random-getentropy.Plo -rm -f src/unix/$(DEPDIR)/libuv_la-random-getrandom.Plo @@ -6276,7 +6523,6 @@ maintainer-clean: maintainer-clean-am -rm -f test/$(DEPDIR)/run_tests-test-async-null-cb.Po -rm -f test/$(DEPDIR)/run_tests-test-async.Po -rm -f test/$(DEPDIR)/run_tests-test-barrier.Po - -rm -f test/$(DEPDIR)/run_tests-test-callback-order.Po -rm -f test/$(DEPDIR)/run_tests-test-callback-stack.Po -rm -f test/$(DEPDIR)/run_tests-test-close-fd.Po -rm -f test/$(DEPDIR)/run_tests-test-close-order.Po @@ -6316,6 +6562,7 @@ maintainer-clean: maintainer-clean-am -rm -f test/$(DEPDIR)/run_tests-test-hrtime.Po -rm -f test/$(DEPDIR)/run_tests-test-idle.Po -rm -f test/$(DEPDIR)/run_tests-test-idna.Po + -rm -f test/$(DEPDIR)/run_tests-test-iouring-pollhup.Po -rm -f test/$(DEPDIR)/run_tests-test-ip-name.Po -rm -f test/$(DEPDIR)/run_tests-test-ip4-addr.Po -rm -f test/$(DEPDIR)/run_tests-test-ip6-addr.Po @@ -6326,6 +6573,7 @@ maintainer-clean: maintainer-clean-am -rm -f test/$(DEPDIR)/run_tests-test-loop-close.Po -rm -f test/$(DEPDIR)/run_tests-test-loop-configure.Po -rm -f test/$(DEPDIR)/run_tests-test-loop-handles.Po + -rm -f test/$(DEPDIR)/run_tests-test-loop-oom.Po -rm -f test/$(DEPDIR)/run_tests-test-loop-stop.Po -rm -f test/$(DEPDIR)/run_tests-test-loop-time.Po -rm -f test/$(DEPDIR)/run_tests-test-metrics.Po @@ -6375,10 +6623,12 @@ maintainer-clean: maintainer-clean-am -rm -f test/$(DEPDIR)/run_tests-test-spawn.Po -rm -f test/$(DEPDIR)/run_tests-test-stdio-over-pipes.Po -rm -f test/$(DEPDIR)/run_tests-test-strscpy.Po + -rm -f test/$(DEPDIR)/run_tests-test-strtok.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-alloc-cb-fail.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-bind-error.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-bind6-error.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-close-accept.Po + -rm -f test/$(DEPDIR)/run_tests-test-tcp-close-after-read-timeout.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-close-reset.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-close-while-connecting.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-close.Po @@ -6392,17 +6642,23 @@ maintainer-clean: maintainer-clean-am -rm -f test/$(DEPDIR)/run_tests-test-tcp-open.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-read-stop-start.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-read-stop.Po + -rm -f test/$(DEPDIR)/run_tests-test-tcp-reuseport.Po + -rm -f test/$(DEPDIR)/run_tests-test-tcp-rst.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-shutdown-after-write.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-try-write-error.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-try-write.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-unexpected-read.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-write-after-connect.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-write-fail.Po + -rm -f test/$(DEPDIR)/run_tests-test-tcp-write-in-a-row.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-write-queue-order.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-write-to-half-open-connection.Po -rm -f test/$(DEPDIR)/run_tests-test-tcp-writealot.Po -rm -f test/$(DEPDIR)/run_tests-test-test-macros.Po + -rm -f test/$(DEPDIR)/run_tests-test-thread-affinity.Po -rm -f test/$(DEPDIR)/run_tests-test-thread-equal.Po + -rm -f test/$(DEPDIR)/run_tests-test-thread-name.Po + -rm -f test/$(DEPDIR)/run_tests-test-thread-priority.Po -rm -f test/$(DEPDIR)/run_tests-test-thread.Po -rm -f test/$(DEPDIR)/run_tests-test-threadpool-cancel.Po -rm -f test/$(DEPDIR)/run_tests-test-threadpool.Po @@ -6428,6 +6684,10 @@ maintainer-clean: maintainer-clean-am -rm -f test/$(DEPDIR)/run_tests-test-udp-multicast-ttl.Po -rm -f test/$(DEPDIR)/run_tests-test-udp-open.Po -rm -f test/$(DEPDIR)/run_tests-test-udp-options.Po + -rm -f test/$(DEPDIR)/run_tests-test-udp-recv-cb-close-pollerr.Po + -rm -f test/$(DEPDIR)/run_tests-test-udp-recv-in-a-row.Po + -rm -f test/$(DEPDIR)/run_tests-test-udp-recvmsg-unreachable-error.Po + -rm -f test/$(DEPDIR)/run_tests-test-udp-reuseport.Po -rm -f test/$(DEPDIR)/run_tests-test-udp-send-and-recv.Po -rm -f test/$(DEPDIR)/run_tests-test-udp-send-hang-loop.Po -rm -f test/$(DEPDIR)/run_tests-test-udp-send-immediate.Po @@ -6462,8 +6722,8 @@ uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES \ check-TESTS check-am clean clean-checkPROGRAMS clean-cscope \ clean-generic clean-libLTLIBRARIES clean-libtool cscope \ cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ - dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ - dist-zstd distcheck distclean distclean-compile \ + dist-bzip3 dist-gzip dist-lzip dist-shar dist-tarZ dist-xz \ + dist-zip dist-zstd distcheck distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-data \ @@ -6482,6 +6742,17 @@ uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES \ .PRECIOUS: Makefile +@WINNT_TRUE@check-am: test/run-tests_no_ext +@WINNT_TRUE@test/run-tests_no_ext: test/run-tests$(EXEEXT) +@WINNT_TRUE@ cp test/run-tests$(EXEEXT) test/run-tests_no_ext + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: + +# Tell GNU make to disable its built-in pattern rules. +%:: %,v +%:: RCS/%,v +%:: RCS/% +%:: s.% +%:: SCCS/s.% diff --git a/src/libuv/README.md b/src/libuv/README.md index 06486febc..1f1fdbfe3 100644 --- a/src/libuv/README.md +++ b/src/libuv/README.md @@ -43,8 +43,11 @@ The ABI/API changes can be tracked [here](http://abi-laboratory.pro/tracker/time ## Licensing -libuv is licensed under the MIT license. Check the [LICENSE file](LICENSE). -The documentation is licensed under the CC BY 4.0 license. Check the [LICENSE-docs file](LICENSE-docs). +libuv is licensed under the MIT license. Check the [LICENSE](LICENSE) and +[LICENSE-extra](LICENSE-extra) files. + +The documentation is licensed under the CC BY 4.0 license. Check the +[LICENSE-docs file](LICENSE-docs). ## Community @@ -186,9 +189,7 @@ $ make install To build with [CMake][]: ```bash -$ mkdir -p build - -$ (cd build && cmake .. -DBUILD_TESTING=ON) # generate project with tests +$ cmake -B build -DBUILD_TESTING=ON # generate project with tests $ cmake --build build # add `-j ` with cmake >= 3.12 # Run tests: @@ -214,12 +215,33 @@ $ cmake ../.. \ $ brew install --HEAD libuv ``` -Note to OS X users: +Note to macOS users: Make sure that you specify the architecture you wish to build for in the "ARCHS" flag. You can specify more than one by delimiting with a space (e.g. "x86_64 i386"). +### Install with vcpkg + +```bash +$ git clone https://github.com/microsoft/vcpkg.git +$ ./bootstrap-vcpkg.bat # for powershell +$ ./bootstrap-vcpkg.sh # for bash +$ ./vcpkg install libuv +``` + +### Install with Conan + +You can install pre-built binaries for libuv or build it from source using [Conan](https://conan.io/). Use the following command: + +```bash +conan install --requires="libuv/[*]" --build=missing +``` + +The libuv Conan recipe is kept up to date by Conan maintainers and community contributors. +If the version is out of date, please [create an issue or pull request](https://github.com/conan-io/conan-center-index) on the ConanCenterIndex repository. + + ### Running tests Some tests are timing sensitive. Relaxing test timeouts may be necessary diff --git a/src/libuv/SECURITY.md b/src/libuv/SECURITY.md new file mode 100644 index 000000000..32abba815 --- /dev/null +++ b/src/libuv/SECURITY.md @@ -0,0 +1,27 @@ +# Security Policy + +## Supported Versions + +Currently, we are providing security updates for the latest release in the v1.x series: + +| Version | Supported | +| ------- | ------------------ | +| Latest v1.x | :white_check_mark: | + +## Reporting a Vulnerability + +If you believe you have found a security vulnerability in `libuv`, please use the [GitHub's private vulnerability reporting feature](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability#privately-reporting-a-security-vulnerability) in the [libuv repository](https://github.com/libuv/libuv) to report it to us. + +This will allow us to assess the risk, and make a fix available before we add a bug report to the GitHub repository. + +Please do: + +* Provide as much information as you can about the vulnerability. +* Provide details about your configuration and environment, if applicable. + +Please do not: + +* Post any information about the vulnerability in public places. +* Attempt to exploit the vulnerability yourself. + +We take all security bugs seriously. Thank you for improving the security of `libuv`. We appreciate your efforts and responsible disclosure and will make every effort to acknowledge your contributions. \ No newline at end of file diff --git a/src/libuv/SUPPORTED_PLATFORMS.md b/src/libuv/SUPPORTED_PLATFORMS.md index 87e23823a..b317da6f4 100644 --- a/src/libuv/SUPPORTED_PLATFORMS.md +++ b/src/libuv/SUPPORTED_PLATFORMS.md @@ -2,18 +2,16 @@ | System | Support type | Supported versions | Notes | |---|---|---|---| -| GNU/Linux | Tier 1 | Linux >= 2.6.32 with glibc >= 2.12 | | -| macOS | Tier 1 | macOS >= 10.7 | | -| Windows | Tier 1 | >= Windows 8 | VS 2015 and later are supported | -| FreeBSD | Tier 1 | >= 10 | | +| GNU/Linux | Tier 1 | Linux >= 3.10 with glibc >= 2.17 | | +| macOS | Tier 1 | macOS >= 11 | Currently supported macOS releases | +| Windows | Tier 1 | >= Windows 10 | VS 2017 and later are supported | +| FreeBSD | Tier 2 | >= 12 | | | AIX | Tier 2 | >= 6 | Maintainers: @libuv/aix | | IBM i | Tier 2 | >= IBM i 7.2 | Maintainers: @libuv/ibmi | | z/OS | Tier 2 | >= V2R2 | Maintainers: @libuv/zos | | Linux with musl | Tier 2 | musl >= 1.0 | | -| SmartOS | Tier 3 | >= 14.4 | | -| Android | Tier 3 | NDK >= r15b | | -| MinGW | Tier 3 | MinGW32 and MinGW-w64 | | -| SunOS | Tier 3 | Solaris 121 and later | | +| Android | Tier 3 | NDK >= r15b | Android 7.0, `-DANDROID_PLATFORM=android-24` | +| MinGW | Tier 3 | MinGW-w64 | | | Other | Tier 3 | N/A | | ## Support types diff --git a/src/libuv/aclocal.m4 b/src/libuv/aclocal.m4 index ac4b8fe54..3ed9d1283 100644 --- a/src/libuv/aclocal.m4 +++ b/src/libuv/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.16.5 -*- Autoconf -*- +# generated automatically by aclocal 1.18.1 -*- Autoconf -*- -# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# Copyright (C) 1996-2025 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -14,13 +14,13 @@ m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.72],, -[m4_warning([this file was generated for autoconf 2.72. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.73],, +[m4_warning([this file was generated for autoconf 2.73. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# Copyright (C) 2002-2021 Free Software Foundation, Inc. +# Copyright (C) 2002-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.]) # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.16' +[am__api_version='1.18' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.16.5], [], +m4_if([$1], [1.18.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -51,12 +51,12 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.16.5])dnl +[AM_AUTOMAKE_VERSION([1.18.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) -# Copyright (C) 2011-2021 Free Software Foundation, Inc. +# Copyright (C) 2011-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -70,16 +70,18 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) AC_DEFUN([AM_PROG_AR], [AC_BEFORE([$0], [LT_INIT])dnl AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl +AC_BEFORE([$0], [AC_PROG_AR])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([ar-lib])dnl AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false]) : ${AR=ar} +: ${ARFLAGS=cr} AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], [AC_LANG_PUSH([C]) am_cv_ar_interface=ar AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])], - [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' + [am_ar_try='$AR $ARFLAGS libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=ar @@ -118,7 +120,7 @@ AC_SUBST([AR])dnl # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# Copyright (C) 2001-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -170,7 +172,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2021 Free Software Foundation, Inc. +# Copyright (C) 1997-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -201,7 +203,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# Copyright (C) 1999-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -333,7 +335,7 @@ AC_CACHE_CHECK([dependency style of $depcc], # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: + # When given -MP, icc 7.0 and 7.1 complain thus: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported @@ -392,7 +394,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# Copyright (C) 1999-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -460,7 +462,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# Copyright (C) 1996-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -560,8 +562,9 @@ AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_IF_OPTION([tar-v7], [_AM_PROG_TAR([v7])], + [_AM_PROG_TAR([ustar])])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], @@ -594,7 +597,7 @@ if test -z "$CSCOPE"; then fi AC_SUBST([CSCOPE]) -AC_REQUIRE([AM_SILENT_RULES])dnl +AC_REQUIRE([_AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. @@ -602,47 +605,9 @@ AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. +AC_REQUIRE([_AM_PROG_RM_F]) +AC_REQUIRE([_AM_PROG_XARGS_N]) -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) - fi -fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. @@ -675,7 +640,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# Copyright (C) 2001-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -696,7 +661,7 @@ if test x"${install_sh+set}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2021 Free Software Foundation, Inc. +# Copyright (C) 2003-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -718,7 +683,7 @@ AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# Copyright (C) 1996-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -753,7 +718,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# Copyright (C) 2001-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -796,7 +761,7 @@ AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2021 Free Software Foundation, Inc. +# Copyright (C) 1997-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -830,7 +795,7 @@ fi # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# Copyright (C) 2001-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -859,7 +824,7 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# Copyright (C) 1999-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -891,7 +856,10 @@ AC_CACHE_CHECK( break fi done - rm -f core conftest* + # aligned with autoconf, so not including core; see bug#72225. + rm -f -r a.out a.exe b.out conftest.$ac_ext conftest.$ac_objext \ + conftest.dSYM conftest1.$ac_ext conftest1.$ac_objext conftest1.dSYM \ + conftest2.$ac_ext conftest2.$ac_objext conftest2.dSYM unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. @@ -906,7 +874,23 @@ AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# Copyright (C) 2022-2025 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_RM_F +# --------------- +# Check whether 'rm -f' without any arguments works. +# https://bugs.gnu.org/10828 +AC_DEFUN([_AM_PROG_RM_F], +[am__rm_f_notfound= +AS_IF([(rm -f && rm -fr && rm -rf) 2>/dev/null], [], [am__rm_f_notfound='""']) +AC_SUBST(am__rm_f_notfound) +]) + +# Copyright (C) 2001-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -925,26 +909,181 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# Copyright (C) 1996-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +# _AM_SLEEP_FRACTIONAL_SECONDS +# ---------------------------- +AC_DEFUN([_AM_SLEEP_FRACTIONAL_SECONDS], [dnl +AC_CACHE_CHECK([whether sleep supports fractional seconds], + am_cv_sleep_fractional_seconds, [dnl +AS_IF([sleep 0.001 2>/dev/null], [am_cv_sleep_fractional_seconds=yes], + [am_cv_sleep_fractional_seconds=no]) +])]) + +# _AM_FILESYSTEM_TIMESTAMP_RESOLUTION +# ----------------------------------- +# Determine the filesystem's resolution for file modification +# timestamps. The coarsest we know of is FAT, with a resolution +# of only two seconds, even with the most recent "exFAT" extensions. +# The finest (e.g. ext4 with large inodes, XFS, ZFS) is one +# nanosecond, matching clock_gettime. However, it is probably not +# possible to delay execution of a shell script for less than one +# millisecond, due to process creation overhead and scheduling +# granularity, so we don't check for anything finer than that. (See below.) +AC_DEFUN([_AM_FILESYSTEM_TIMESTAMP_RESOLUTION], [dnl +AC_REQUIRE([_AM_SLEEP_FRACTIONAL_SECONDS]) +AC_CACHE_CHECK([filesystem timestamp resolution], + am_cv_filesystem_timestamp_resolution, [dnl +# Default to the worst case. +am_cv_filesystem_timestamp_resolution=2 + +# Only try to go finer than 1 sec if sleep can do it. +# Don't try 1 sec, because if 0.01 sec and 0.1 sec don't work, +# - 1 sec is not much of a win compared to 2 sec, and +# - it takes 2 seconds to perform the test whether 1 sec works. +# +# Instead, just use the default 2s on platforms that have 1s resolution, +# accept the extra 1s delay when using $sleep in the Automake tests, in +# exchange for not incurring the 2s delay for running the test for all +# packages. +# +am_try_resolutions= +if test "$am_cv_sleep_fractional_seconds" = yes; then + # Even a millisecond often causes a bunch of false positives, + # so just try a hundredth of a second. The time saved between .001 and + # .01 is not terribly consequential. + am_try_resolutions="0.01 0.1 $am_try_resolutions" +fi + +# In order to catch current-generation FAT out, we must *modify* files +# that already exist; the *creation* timestamp is finer. Use names +# that make ls -t sort them differently when they have equal +# timestamps than when they have distinct timestamps, keeping +# in mind that ls -t prints the *newest* file first. +rm -f conftest.ts? +: > conftest.ts1 +: > conftest.ts2 +: > conftest.ts3 + +# Make sure ls -t actually works. Do 'set' in a subshell so we don't +# clobber the current shell's arguments. (Outer-level square brackets +# are removed by m4; they're present so that m4 does not expand +# ; be careful, easy to get confused.) +if ( + set X `[ls -t conftest.ts[12]]` && + { + test "$[]*" != "X conftest.ts1 conftest.ts2" || + test "$[]*" != "X conftest.ts2 conftest.ts1"; + } +); then :; else + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + _AS_ECHO_UNQUOTED( + ["Bad output from ls -t: \"`[ls -t conftest.ts[12]]`\""], + [AS_MESSAGE_LOG_FD]) + AC_MSG_FAILURE([ls -t produces unexpected output. +Make sure there is not a broken ls alias in your environment.]) +fi + +for am_try_res in $am_try_resolutions; do + # Any one fine-grained sleep might happen to cross the boundary + # between two values of a coarser actual resolution, but if we do + # two fine-grained sleeps in a row, at least one of them will fall + # entirely within a coarse interval. + echo alpha > conftest.ts1 + sleep $am_try_res + echo beta > conftest.ts2 + sleep $am_try_res + echo gamma > conftest.ts3 + + # We assume that 'ls -t' will make use of high-resolution + # timestamps if the operating system supports them at all. + if (set X `ls -t conftest.ts?` && + test "$[]2" = conftest.ts3 && + test "$[]3" = conftest.ts2 && + test "$[]4" = conftest.ts1); then + # + # Ok, ls -t worked. If we're at a resolution of 1 second, we're done, + # because we don't need to test make. + make_ok=true + if test $am_try_res != 1; then + # But if we've succeeded so far with a subsecond resolution, we + # have one more thing to check: make. It can happen that + # everything else supports the subsecond mtimes, but make doesn't; + # notably on macOS, which ships make 3.81 from 2006 (the last one + # released under GPLv2). https://bugs.gnu.org/68808 + # + # We test $MAKE if it is defined in the environment, else "make". + # It might get overridden later, but our hope is that in practice + # it does not matter: it is the system "make" which is (by far) + # the most likely to be broken, whereas if the user overrides it, + # probably they did so with a better, or at least not worse, make. + # https://lists.gnu.org/archive/html/automake/2024-06/msg00051.html + # + # Create a Makefile (real tab character here): + rm -f conftest.mk + echo 'conftest.ts1: conftest.ts2' >conftest.mk + echo ' touch conftest.ts2' >>conftest.mk + # + # Now, running + # touch conftest.ts1; touch conftest.ts2; make + # should touch ts1 because ts2 is newer. This could happen by luck, + # but most often, it will fail if make's support is insufficient. So + # test for several consecutive successes. + # + # (We reuse conftest.ts[12] because we still want to modify existing + # files, not create new ones, per above.) + n=0 + make=${MAKE-make} + until test $n -eq 3; do + echo one > conftest.ts1 + sleep $am_try_res + echo two > conftest.ts2 # ts2 should now be newer than ts1 + if $make -f conftest.mk | grep 'up to date' >/dev/null; then + make_ok=false + break # out of $n loop + fi + n=`expr $n + 1` + done + fi + # + if $make_ok; then + # Everything we know to check worked out, so call this resolution good. + am_cv_filesystem_timestamp_resolution=$am_try_res + break # out of $am_try_res loop + fi + # Otherwise, we'll go on to check the next resolution. + fi +done +rm -f conftest.ts? +# (end _am_filesystem_timestamp_resolution) +])]) + # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) +[AC_REQUIRE([_AM_FILESYSTEM_TIMESTAMP_RESOLUTION]) +# This check should not be cached, as it may vary across builds of +# different projects. +AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_RESULT([no]) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_RESULT([no]) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac @@ -953,49 +1092,40 @@ esac # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! +am_build_env_is_sane=no +am_has_slept=no +rm -f conftest.file +for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[]*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + test "$[]2" = conftest.file + ); then + am_build_env_is_sane=yes + break + fi + # Just in case. + sleep "$am_cv_filesystem_timestamp_resolution" + am_has_slept=yes +done + +AC_MSG_RESULT([$am_build_env_is_sane]) +if test "$am_build_env_is_sane" = no; then + AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi -AC_MSG_RESULT([yes]) + # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & +AS_IF([test -e conftest.file || grep 'slept: no' conftest.file >/dev/null 2>&1],, [dnl + ( sleep "$am_cv_filesystem_timestamp_resolution" ) & am_sleep_pid=$! -fi +]) AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then @@ -1006,18 +1136,18 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2021 Free Software Foundation, Inc. +# Copyright (C) 2009-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# ("yes" being less verbose, "no" or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], [dnl +# _AM_SILENT_RULES +# ---------------- +# Enable less verbose build rules support. +AC_DEFUN([_AM_SILENT_RULES], +[AM_DEFAULT_VERBOSITY=1 +AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) @@ -1025,11 +1155,6 @@ AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. @@ -1048,14 +1173,6 @@ am__doit: else am_cv_make_support_nested_variables=no fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl @@ -1064,9 +1181,37 @@ AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +dnl Delay evaluation of AM_DEFAULT_VERBOSITY to the end to allow multiple calls +dnl to AM_SILENT_RULES to change the default value. +AC_CONFIG_COMMANDS_PRE([dnl +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; +esac +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +])dnl ]) -# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Set the default verbosity level to DEFAULT ("yes" being less verbose, "no" or +# empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_REQUIRE([_AM_SILENT_RULES]) +AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1])m4_newline +dnl We intentionally force a newline after the assignment, since a) nothing +dnl good can come of more text following, and b) that was the behavior +dnl before 1.17. See https://bugs.gnu.org/72267. +]) + +# Copyright (C) 2001-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1094,7 +1239,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2021 Free Software Foundation, Inc. +# Copyright (C) 2006-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1113,7 +1258,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2021 Free Software Foundation, Inc. +# Copyright (C) 2004-2025 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1159,15 +1304,19 @@ m4_if([$1], [v7], am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) + if test x$am_uid = xunknown; then + AC_MSG_WARN([ancient id detected; assuming current UID is ok, but dist-ustar might not work]) + elif test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) else - AC_MSG_RESULT([no]) - _am_tools=none + AC_MSG_RESULT([no]) + _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) + if test x$gm_gid = xunknown; then + AC_MSG_WARN([ancient id detected; assuming current GID is ok, but dist-ustar might not work]) + elif test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none @@ -1244,6 +1393,26 @@ AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR +# Copyright (C) 2022-2025 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_XARGS_N +# ---------------- +# Check whether 'xargs -n' works. It should work everywhere, so the fallback +# is not optimized at all as we never expect to use it. +AC_DEFUN([_AM_PROG_XARGS_N], +[AC_CACHE_CHECK([xargs -n works], am_cv_xargs_n_works, [dnl +AS_IF([test "`echo 1 2 3 | xargs -n2 echo`" = "1 2 +3"], [am_cv_xargs_n_works=yes], [am_cv_xargs_n_works=no])]) +AS_IF([test "$am_cv_xargs_n_works" = yes], [am__xargs_n='xargs -n'], [dnl + am__xargs_n='am__xargs_n () { shift; sed "s/ /\\n/g" | while read am__xargs_n_arg; do "$@" "$am__xargs_n_arg"; done; }' +])dnl +AC_SUBST(am__xargs_n) +]) + m4_include([m4/ax_pthread.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) diff --git a/src/libuv/ar-lib b/src/libuv/ar-lib index c349042c3..d0a7b5c8a 100755 --- a/src/libuv/ar-lib +++ b/src/libuv/ar-lib @@ -2,9 +2,9 @@ # Wrapper for Microsoft lib.exe me=ar-lib -scriptversion=2019-07-04.01; # UTC +scriptversion=2025-02-03.05; # UTC -# Copyright (C) 2010-2021 Free Software Foundation, Inc. +# Copyright (C) 2010-2025 Free Software Foundation, Inc. # Written by Peter Rosin . # # This program is free software; you can redistribute it and/or modify @@ -51,9 +51,20 @@ func_file_conv () # lazily determine how to convert abs files case `uname -s` in MINGW*) - file_conv=mingw + if test -n "$MSYSTEM" && (cygpath --version) >/dev/null 2>&1; then + # MSYS2 environment. + file_conv=cygwin + else + # Original MinGW environment. + file_conv=mingw + fi ;; - CYGWIN* | MSYS*) + MSYS*) + # Old MSYS environment, or MSYS2 with 32-bit MSYS2 shell. + file_conv=cygwin + ;; + CYGWIN*) + # Cygwin environment. file_conv=cygwin ;; *) @@ -65,8 +76,8 @@ func_file_conv () mingw) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin | msys) - file=`cygpath -m "$file" || echo "$file"` + cygwin) + file=`cygpath -w "$file" || echo "$file"` ;; wine) file=`winepath -w "$file" || echo "$file"` @@ -105,11 +116,15 @@ case $1 in Usage: $me [--help] [--version] PROGRAM ACTION ARCHIVE [MEMBER...] Members may be specified in a file named with @FILE. + +Report bugs to . +GNU Automake home page: . +General help using GNU software: . EOF exit $? ;; -v | --v*) - echo "$me, version $scriptversion" + echo "$me (GNU Automake) $scriptversion" exit $? ;; esac @@ -135,6 +150,10 @@ do AR="$AR $1" shift ;; + -nologo | -NOLOGO) + # We always invoke AR with -nologo, so don't need to add it again. + shift + ;; *) action=$1 shift diff --git a/src/libuv/autogen.sh b/src/libuv/autogen.sh index 271c2ee8c..cf82cc634 100755 --- a/src/libuv/autogen.sh +++ b/src/libuv/autogen.sh @@ -14,9 +14,16 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +set -eu cd `dirname "$0"` -if [ "$LIBTOOLIZE" = "" ] && [ "`uname`" = "Darwin" ]; then +if [ "${1:-dev}" = "release" ]; then + export LIBUV_RELEASE=true +else + export LIBUV_RELEASE=false +fi + +if [ "${LIBTOOLIZE:-}" = "" ] && [ "`uname`" = "Darwin" ]; then LIBTOOLIZE=glibtoolize fi @@ -25,9 +32,17 @@ AUTOCONF=${AUTOCONF:-autoconf} AUTOMAKE=${AUTOMAKE:-automake} LIBTOOLIZE=${LIBTOOLIZE:-libtoolize} +aclocal_version=`"$ACLOCAL" --version | head -n 1 | sed 's/[^.0-9]//g'` +autoconf_version=`"$AUTOCONF" --version | head -n 1 | sed 's/[^.0-9]//g'` automake_version=`"$AUTOMAKE" --version | head -n 1 | sed 's/[^.0-9]//g'` automake_version_major=`echo "$automake_version" | cut -d. -f1` automake_version_minor=`echo "$automake_version" | cut -d. -f2` +libtoolize_version=`"$LIBTOOLIZE" --version | head -n 1 | sed 's/[^.0-9]//g'` + +if [ $aclocal_version != $automake_version ]; then + echo "FATAL: aclocal version appears not to be from the same as automake" + exit 1 +fi UV_EXTRA_AUTOMAKE_FLAGS= if test "$automake_version_major" -gt 1 || \ @@ -39,8 +54,22 @@ fi echo "m4_define([UV_EXTRA_AUTOMAKE_FLAGS], [$UV_EXTRA_AUTOMAKE_FLAGS])" \ > m4/libuv-extra-automake-flags.m4 -set -ex -"$LIBTOOLIZE" --copy +(set -x +"$LIBTOOLIZE" --copy --force "$ACLOCAL" -I m4 +) +if $LIBUV_RELEASE; then + "$AUTOCONF" -o /dev/null m4/libuv-check-versions.m4 + echo " +AC_PREREQ($autoconf_version) +AC_INIT([libuv-release-check], [0.0]) +AM_INIT_AUTOMAKE([$automake_version]) +LT_PREREQ($libtoolize_version) +AC_OUTPUT +" > m4/libuv-check-versions.m4 +fi +( +set -x "$AUTOCONF" "$AUTOMAKE" --add-missing --copy +) diff --git a/src/libuv/cmake-toolchains/cross-mingw32.cmake b/src/libuv/cmake-toolchains/cross-mingw32.cmake new file mode 100644 index 000000000..3fe1dd69e --- /dev/null +++ b/src/libuv/cmake-toolchains/cross-mingw32.cmake @@ -0,0 +1,17 @@ +if(NOT HOST_ARCH) + message(SEND_ERROR "-DHOST_ARCH required to be specified") +endif() + +list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES + HOST_ARCH + ) + +SET(CMAKE_SYSTEM_NAME Windows) +set(COMPILER_PREFIX "${HOST_ARCH}-w64-mingw32") +find_program(CMAKE_RC_COMPILER NAMES ${COMPILER_PREFIX}-windres) +find_program(CMAKE_C_COMPILER NAMES ${COMPILER_PREFIX}-gcc) +find_program(CMAKE_CXX_COMPILER NAMES ${COMPILER_PREFIX}-g++) + +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) diff --git a/src/libuv/compile b/src/libuv/compile index df363c8fb..02ff093c3 100755 --- a/src/libuv/compile +++ b/src/libuv/compile @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2018-03-07.03; # UTC +scriptversion=2025-06-18.21; # UTC -# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# Copyright (C) 1999-2025 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -37,11 +37,11 @@ IFS=" "" $nl" file_conv= -# func_file_conv build_file lazy +# func_file_conv build_file unneeded_conversions # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion -# type is listed in (the comma separated) LAZY, no conversion will -# take place. +# type is listed in (the comma separated) UNNEEDED_CONVERSIONS, no +# conversion will take place. func_file_conv () { file=$1 @@ -51,9 +51,20 @@ func_file_conv () # lazily determine how to convert abs files case `uname -s` in MINGW*) - file_conv=mingw + if test -n "$MSYSTEM" && (cygpath --version) >/dev/null 2>&1; then + # MSYS2 environment. + file_conv=cygwin + else + # Original MinGW environment. + file_conv=mingw + fi ;; - CYGWIN* | MSYS*) + MSYS*) + # Old MSYS environment, or MSYS2 with 32-bit MSYS2 shell. + file_conv=cygwin + ;; + CYGWIN*) + # Cygwin environment. file_conv=cygwin ;; *) @@ -63,12 +74,14 @@ func_file_conv () fi case $file_conv/,$2, in *,$file_conv,*) + # This is the optimization mentioned above: + # If UNNEEDED_CONVERSIONS contains $file_conv, don't convert. ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin/* | msys/*) - file=`cygpath -m "$file" || echo "$file"` + cygwin/*) + file=`cygpath -w "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` @@ -143,7 +156,7 @@ func_cl_wrapper () # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in - *.o | *.[oO][bB][jJ]) + *.o | *.lo | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift @@ -248,14 +261,17 @@ If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . +GNU Automake home page: . +General help using GNU software: . EOF exit $? ;; -v | --v*) - echo "compile $scriptversion" + echo "compile (GNU Automake) $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + clang-cl | *[/\\]clang-cl | clang-cl.exe | *[/\\]clang-cl.exe | \ icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; @@ -340,9 +356,9 @@ exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp nil t) # time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-format: "%Y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/src/libuv/config.guess b/src/libuv/config.guess index e81d3ae7c..48a684601 100755 --- a/src/libuv/config.guess +++ b/src/libuv/config.guess @@ -1,14 +1,14 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2021 Free Software Foundation, Inc. +# Copyright 1992-2024 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2021-06-03' +timestamp='2024-07-27' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or +# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but @@ -47,7 +47,7 @@ me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] -Output the configuration name of the system \`$me' is run on. +Output the configuration name of the system '$me' is run on. Options: -h, --help print this help, then exit @@ -60,13 +60,13 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2021 Free Software Foundation, Inc. +Copyright 1992-2024 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" -Try \`$me --help' for more information." +Try '$me --help' for more information." # Parse command line while test $# -gt 0 ; do @@ -102,8 +102,8 @@ GUESS= # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. +# Historically, 'CC_FOR_BUILD' used to be named 'HOST_CC'. We still +# use 'HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. @@ -123,7 +123,7 @@ set_cc_for_build() { dummy=$tmp/dummy case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in ,,) echo "int x;" > "$dummy.c" - for driver in cc gcc c89 c99 ; do + for driver in cc gcc c17 c99 c89 ; do if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD=$driver break @@ -155,6 +155,9 @@ Linux|GNU|GNU/*) set_cc_for_build cat <<-EOF > "$dummy.c" + #if defined(__ANDROID__) + LIBC=android + #else #include #if defined(__UCLIBC__) LIBC=uclibc @@ -162,6 +165,8 @@ Linux|GNU|GNU/*) LIBC=dietlibc #elif defined(__GLIBC__) LIBC=gnu + #elif defined(__LLVM_LIBC__) + LIBC=llvm #else #include /* First heuristic to detect musl libc. */ @@ -169,6 +174,7 @@ Linux|GNU|GNU/*) LIBC=musl #endif #endif + #endif EOF cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` eval "$cc_set_libc" @@ -437,7 +443,7 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in # This test works for both compilers. if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 @@ -459,7 +465,7 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in UNAME_RELEASE=`uname -v` ;; esac - # Japanese Language versions have a version number like `4.1.3-JL'. + # Japanese Language versions have a version number like '4.1.3-JL'. SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` GUESS=sparc-sun-sunos$SUN_REL ;; @@ -628,7 +634,8 @@ EOF sed 's/^ //' << EOF > "$dummy.c" #include - main() + int + main () { if (!__power_pc()) exit(1); @@ -712,7 +719,8 @@ EOF #include #include - int main () + int + main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); @@ -904,7 +912,7 @@ EOF fi ;; *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` + UNAME_PROCESSOR=`uname -p` case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;; @@ -929,6 +937,9 @@ EOF i*:PW*:*) GUESS=$UNAME_MACHINE-pc-pw32 ;; + *:SerenityOS:*:*) + GUESS=$UNAME_MACHINE-pc-serenity + ;; *:Interix*:*) case $UNAME_MACHINE in x86) @@ -963,11 +974,37 @@ EOF GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC ;; + x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*) + GUESS="$UNAME_MACHINE-pc-managarm-mlibc" + ;; + *:[Mm]anagarm:*:*) + GUESS="$UNAME_MACHINE-unknown-managarm-mlibc" + ;; *:Minix:*:*) GUESS=$UNAME_MACHINE-unknown-minix ;; aarch64:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + set_cc_for_build + CPU=$UNAME_MACHINE + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + ABI=64 + sed 's/^ //' << EOF > "$dummy.c" + #ifdef __ARM_EABI__ + #ifdef __ARM_PCS_VFP + ABI=eabihf + #else + ABI=eabi + #endif + #endif +EOF + cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` + eval "$cc_set_abi" + case $ABI in + eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;; + esac + fi + GUESS=$CPU-unknown-linux-$LIBCABI ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be @@ -1033,7 +1070,16 @@ EOF k1om:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; - loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + kvx:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + kvx:cos:*:*) + GUESS=$UNAME_MACHINE-unknown-cos + ;; + kvx:mbr:*:*) + GUESS=$UNAME_MACHINE-unknown-mbr + ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; m32r*:Linux:*:*) @@ -1148,16 +1194,27 @@ EOF ;; x86_64:Linux:*:*) set_cc_for_build + CPU=$UNAME_MACHINE LIBCABI=$LIBC if test "$CC_FOR_BUILD" != no_compiler_found; then - if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_X32 >/dev/null - then - LIBCABI=${LIBC}x32 - fi + ABI=64 + sed 's/^ //' << EOF > "$dummy.c" + #ifdef __i386__ + ABI=x86 + #else + #ifdef __ILP32__ + ABI=x32 + #endif + #endif +EOF + cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` + eval "$cc_set_abi" + case $ABI in + x86) CPU=i686 ;; + x32) LIBCABI=${LIBC}x32 ;; + esac fi - GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI + GUESS=$CPU-pc-linux-$LIBCABI ;; xtensa*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC @@ -1177,7 +1234,7 @@ EOF GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION ;; i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility + # If we were able to find 'uname', then EMX Unix compatibility # is probably installed. GUESS=$UNAME_MACHINE-pc-os2-emx ;; @@ -1318,7 +1375,7 @@ EOF GUESS=ns32k-sni-sysv fi ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + PENTIUM:*:4.0*:*) # Unisys 'ClearPath HMP IX 4000' SVR4/MP effort # says GUESS=i586-unisys-sysv4 ;; @@ -1364,8 +1421,11 @@ EOF BePC:Haiku:*:*) # Haiku running on Intel PC compatible. GUESS=i586-pc-haiku ;; - x86_64:Haiku:*:*) - GUESS=x86_64-unknown-haiku + ppc:Haiku:*:*) # Haiku running on Apple PowerPC + GUESS=powerpc-apple-haiku + ;; + *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat) + GUESS=$UNAME_MACHINE-unknown-haiku ;; SX-4:SUPER-UX:*:*) GUESS=sx4-nec-superux$UNAME_RELEASE @@ -1522,6 +1582,9 @@ EOF i*86:rdos:*:*) GUESS=$UNAME_MACHINE-pc-rdos ;; + i*86:Fiwix:*:*) + GUESS=$UNAME_MACHINE-pc-fiwix + ;; *:AROS:*:*) GUESS=$UNAME_MACHINE-unknown-aros ;; @@ -1534,6 +1597,9 @@ EOF *:Unleashed:*:*) GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE ;; + *:Ironclad:*:*) + GUESS=$UNAME_MACHINE-unknown-ironclad + ;; esac # Do we have a guess based on uname results? @@ -1557,6 +1623,7 @@ cat > "$dummy.c" <." version="\ GNU config.sub ($timestamp) -Copyright 1992-2021 Free Software Foundation, Inc. +Copyright 1992-2024 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" -Try \`$me --help' for more information." +Try '$me --help' for more information." # Parse command line while test $# -gt 0 ; do @@ -120,7 +120,6 @@ case $# in esac # Split fields of configuration type -# shellcheck disable=SC2162 saved_IFS=$IFS IFS="-" read field1 field2 field3 field4 <&2 + echo "Invalid configuration '$1': more than four components" >&2 exit 1 ;; *-*-*-*) @@ -142,10 +141,21 @@ case $1 in # parts maybe_os=$field2-$field3 case $maybe_os in - nto-qnx* | linux-* | uclinux-uclibc* \ - | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ - | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ - | storm-chaos* | os2-emx* | rtmk-nova*) + cloudabi*-eabi* \ + | kfreebsd*-gnu* \ + | knetbsd*-gnu* \ + | kopensolaris*-gnu* \ + | linux-* \ + | managarm-* \ + | netbsd*-eabi* \ + | netbsd*-gnu* \ + | nto-qnx* \ + | os2-emx* \ + | rtmk-nova* \ + | storm-chaos* \ + | uclinux-gnu* \ + | uclinux-uclibc* \ + | windows-* ) basic_machine=$field1 basic_os=$maybe_os ;; @@ -160,8 +170,12 @@ case $1 in esac ;; *-*) - # A lone config we happen to match not fitting any pattern case $field1-$field2 in + # Shorthands that happen to contain a single dash + convex-c[12] | convex-c3[248]) + basic_machine=$field2-convex + basic_os= + ;; decstation-3100) basic_machine=mips-dec basic_os= @@ -169,28 +183,88 @@ case $1 in *-*) # Second component is usually, but not always the OS case $field2 in - # Prevent following clause from handling this valid os + # Do not treat sunos as a manufacturer sun*os*) basic_machine=$field1 basic_os=$field2 ;; - zephyr*) - basic_machine=$field1-unknown - basic_os=$field2 - ;; # Manufacturers - dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ - | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ - | unicom* | ibm* | next | hp | isi* | apollo | altos* \ - | convergent* | ncr* | news | 32* | 3600* | 3100* \ - | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ - | ultra | tti* | harris | dolphin | highlevel | gould \ - | cbm | ns | masscomp | apple | axis | knuth | cray \ - | microblaze* | sim | cisco \ - | oki | wec | wrs | winbond) + 3100* \ + | 32* \ + | 3300* \ + | 3600* \ + | 7300* \ + | acorn \ + | altos* \ + | apollo \ + | apple \ + | atari \ + | att* \ + | axis \ + | be \ + | bull \ + | cbm \ + | ccur \ + | cisco \ + | commodore \ + | convergent* \ + | convex* \ + | cray \ + | crds \ + | dec* \ + | delta* \ + | dg \ + | digital \ + | dolphin \ + | encore* \ + | gould \ + | harris \ + | highlevel \ + | hitachi* \ + | hp \ + | ibm* \ + | intergraph \ + | isi* \ + | knuth \ + | masscomp \ + | microblaze* \ + | mips* \ + | motorola* \ + | ncr* \ + | news \ + | next \ + | ns \ + | oki \ + | omron* \ + | pc533* \ + | rebel \ + | rom68k \ + | rombug \ + | semi \ + | sequent* \ + | siemens \ + | sgi* \ + | siemens \ + | sim \ + | sni \ + | sony* \ + | stratus \ + | sun \ + | sun[234]* \ + | tektronix \ + | tti* \ + | ultra \ + | unicom* \ + | wec \ + | winbond \ + | wrs) basic_machine=$field1-$field2 basic_os= ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; *) basic_machine=$field1 basic_os=$field2 @@ -271,26 +345,6 @@ case $1 in basic_machine=arm-unknown basic_os=cegcc ;; - convex-c1) - basic_machine=c1-convex - basic_os=bsd - ;; - convex-c2) - basic_machine=c2-convex - basic_os=bsd - ;; - convex-c32) - basic_machine=c32-convex - basic_os=bsd - ;; - convex-c34) - basic_machine=c34-convex - basic_os=bsd - ;; - convex-c38) - basic_machine=c38-convex - basic_os=bsd - ;; cray) basic_machine=j90-cray basic_os=unicos @@ -713,15 +767,26 @@ case $basic_machine in vendor=dec basic_os=tops20 ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) + delta | 3300 | delta-motorola | 3300-motorola | motorola-delta | motorola-3300) cpu=m68k vendor=motorola ;; - dpx2*) + # This used to be dpx2*, but that gets the RS6000-based + # DPX/20 and the x86-based DPX/2-100 wrong. See + # https://oldskool.silicium.org/stations/bull_dpx20.htm + # https://www.feb-patrimoine.com/english/bull_dpx2.htm + # https://www.feb-patrimoine.com/english/unix_and_bull.htm + dpx2 | dpx2[23]00 | dpx2[23]xx) cpu=m68k vendor=bull - basic_os=sysv3 + ;; + dpx2100 | dpx21xx) + cpu=i386 + vendor=bull + ;; + dpx20) + cpu=rs6000 + vendor=bull ;; encore | umax | mmax) cpu=ns32k @@ -836,18 +901,6 @@ case $basic_machine in next | m*-next) cpu=m68k vendor=next - case $basic_os in - openstep*) - ;; - nextstep*) - ;; - ns2*) - basic_os=nextstep2 - ;; - *) - basic_os=nextstep3 - ;; - esac ;; np1) cpu=np1 @@ -936,14 +989,13 @@ case $basic_machine in ;; *-*) - # shellcheck disable=SC2162 saved_IFS=$IFS IFS="-" read cpu vendor <&2 + echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2 exit 1 ;; esac @@ -1301,11 +1491,12 @@ esac # Decode manufacturer-specific aliases for certain operating systems. -if test x$basic_os != x +if test x"$basic_os" != x then -# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just # set os. +obj= case $basic_os in gnu/linux*) kernel=linux @@ -1320,7 +1511,6 @@ case $basic_os in os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` ;; *-*) - # shellcheck disable=SC2162 saved_IFS=$IFS IFS="-" read kernel os <&2 + fi + ;; + *) + echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2 + exit 1 + ;; +esac + +case $obj in + aout* | coff* | elf* | pe*) + ;; + '') + # empty is fine + ;; *) - echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 + echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2 + exit 1 + ;; +esac + +# Here we handle the constraint that a (synthetic) cpu and os are +# valid only in combination with each other and nowhere else. +case $cpu-$os in + # The "javascript-unknown-ghcjs" triple is used by GHC; we + # accept it here in order to tolerate that, but reject any + # variations. + javascript-ghcjs) + ;; + javascript-* | *-ghcjs) + echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2 exit 1 ;; esac # As a final step for OS-related things, validate the OS-kernel combination # (given a valid OS), if there is a kernel. -case $kernel-$os in - linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ - | linux-musl* | linux-relibc* | linux-uclibc* ) +case $kernel-$os-$obj in + linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \ + | linux-mlibc*- | linux-musl*- | linux-newlib*- \ + | linux-relibc*- | linux-uclibc*- | linux-ohos*- ) + ;; + uclinux-uclibc*- | uclinux-gnu*- ) + ;; + managarm-mlibc*- | managarm-kernel*- ) ;; - uclinux-uclibc* ) + windows*-msvc*-) ;; - -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \ + | -uclibc*- ) # These are just libc implementations, not actual OSes, and thus # require a kernel. - echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2 exit 1 ;; - kfreebsd*-gnu* | kopensolaris*-gnu*) + -kernel*- ) + echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2 + exit 1 ;; - vxworks-simlinux | vxworks-simwindows | vxworks-spe) + *-kernel*- ) + echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2 + exit 1 ;; - nto-qnx*) + *-msvc*- ) + echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2 + exit 1 ;; - os2-emx) + kfreebsd*-gnu*- | knetbsd*-gnu*- | netbsd*-gnu*- | kopensolaris*-gnu*-) + ;; + vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-) + ;; + nto-qnx*-) ;; - *-eabi* | *-gnueabi*) + os2-emx-) ;; - -*) + rtmk-nova-) + ;; + *-eabi*- | *-gnueabi*-) + ;; + none--*) + # None (no kernel, i.e. freestanding / bare metal), + # can be paired with an machine code file format + ;; + -*-) # Blank kernel with real OS is always fine. ;; - *-*) - echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + --*) + # Blank kernel and OS with real machine code file format is always fine. + ;; + *-*-*) + echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2 exit 1 ;; esac @@ -1803,7 +2273,7 @@ case $vendor in *-riscix*) vendor=acorn ;; - *-sunos*) + *-sunos* | *-solaris*) vendor=sun ;; *-cnk* | *-aix*) @@ -1873,7 +2343,7 @@ case $vendor in ;; esac -echo "$cpu-$vendor-${kernel:+$kernel-}$os" +echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}" exit # Local variables: diff --git a/src/libuv/configure b/src/libuv/configure index 40e986809..514c66c1c 100755 --- a/src/libuv/configure +++ b/src/libuv/configure @@ -1,11 +1,11 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for libuv 1.43.0. +# Generated by GNU Autoconf 2.73 for libuv 1.52.1. # # Report bugs to . # # -# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Copyright (C) 1992-1996, 1998-2017, 2020-2026 Free Software Foundation, # Inc. # # @@ -17,21 +17,21 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. + # contradicts POSIX and common usage. Disable this. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else $as_nop - case `(set -o) 2>/dev/null` in #( +else case e in #( + e) case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; +esac ;; esac fi @@ -103,13 +103,13 @@ IFS=$as_save_IFS ;; esac -# We did not find ourselves, most probably we were run as `sh COMMAND' +# We did not find ourselves, most probably we were run as 'sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + printf '%s\n' "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi @@ -131,27 +131,30 @@ case $- in # (((( *x* ) as_opts=-x ;; * ) as_opts= ;; esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +case $# in # (( + 0) exec $CONFIG_SHELL $as_opts "$as_myself" ;; + *) exec $CONFIG_SHELL $as_opts "$as_myself" "$@" ;; +esac # Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +# out after a failed 'exec'. +printf '%s\n' "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="as_nop=: -if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 + as_bourne_compatible="if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. + # contradicts POSIX and common usage. Disable this. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST -else \$as_nop - case \`(set -o) 2>/dev/null\` in +else case e in #( + e) case \`(set -o) 2>/dev/null\` in *posix*) set -o posix ;; +esac ;; esac fi " @@ -169,8 +172,9 @@ as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ) then : -else \$as_nop - exitcode=1; echo positional parameters were not saved. +else case e in #( + e) exitcode=1; echo positional parameters were not saved. ;; +esac fi test x\$exitcode = x0 || exit 1 blah=\$(echo \$(echo blah)) @@ -192,14 +196,15 @@ test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null then : as_have_required=yes -else $as_nop - as_have_required=no +else case e in #( + e) as_have_required=no ;; +esac fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null then : -else $as_nop - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +else case e in #( + e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do @@ -232,12 +237,13 @@ IFS=$as_save_IFS if $as_found then : -else $as_nop - if { test -f "$SHELL" || test -f "$SHELL.exe"; } && +else case e in #( + e) if { test -f "$SHELL" || test -f "$SHELL.exe"; } && as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$SHELL as_have_required=yes -fi +fi ;; +esac fi @@ -257,29 +263,33 @@ case $- in # (((( *x* ) as_opts=-x ;; * ) as_opts= ;; esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +case $# in # (( + 0) exec $CONFIG_SHELL $as_opts "$as_myself" ;; + *) exec $CONFIG_SHELL $as_opts "$as_myself" "$@" ;; +esac # Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +# out after a failed 'exec'. +printf '%s\n' "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno then : - printf "%s\n" "$0: This script requires a shell more modern than all" - printf "%s\n" "$0: the shells that I found on your system." + printf '%s\n' "$0: This script requires a shell more modern than all" + printf '%s\n' "$0: the shells that I found on your system." if test ${ZSH_VERSION+y} ; then - printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" - printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." + printf '%s\n' "$0: In particular, zsh $ZSH_VERSION has bugs and should" + printf '%s\n' "$0: be upgraded to zsh 4.3.4 or later." else - printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and + printf '%s\n' "$0: Please tell bug-autoconf@gnu.org and $0: https://github.com/libuv/libuv/issues about your $0: system, including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 -fi +fi ;; +esac fi fi SHELL=${CONFIG_SHELL-/bin/sh} @@ -318,14 +328,6 @@ as_fn_exit () as_fn_set_status $1 exit $1 } # as_fn_exit -# as_fn_nop -# --------- -# Do nothing but, unlike ":", preserve the value of $?. -as_fn_nop () -{ - return $? -} -as_nop=as_fn_nop # as_fn_mkdir_p # ------------- @@ -340,7 +342,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf '%s\n' "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -349,7 +351,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X"$as_dir" | +printf '%s\n' X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -394,11 +396,12 @@ then : { eval $1+=\$2 }' -else $as_nop - as_fn_append () +else case e in #( + e) as_fn_append () { eval $1=\$$1\$2 - } + } ;; +esac fi # as_fn_append # as_fn_arith ARG... @@ -412,21 +415,14 @@ then : { as_val=$(( $* )) }' -else $as_nop - as_fn_arith () +else case e in #( + e) as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` - } + } ;; +esac fi # as_fn_arith -# as_fn_nop -# --------- -# Do nothing but, unlike ":", preserve the value of $?. -as_fn_nop () -{ - return $? -} -as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- @@ -438,9 +434,9 @@ as_fn_error () as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - printf "%s\n" "$as_me: error: $2" >&2 + printf '%s\n' "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -467,7 +463,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X/"$0" | +printf '%s\n' X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -500,6 +496,8 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits /[$]LINENO/= ' <$as_myself | sed ' + t clear + :clear s/[$]LINENO.*/&-/ t lineno b @@ -511,7 +509,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + { printf '%s\n' "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall @@ -525,30 +523,6 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits exit } - -# Determine whether it's possible to make 'echo' print without a newline. -# These variables are no longer used directly by Autoconf, but are AC_SUBSTed -# for compatibility with existing Makefiles. -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -# For backward compatibility with old third-party macros, we provide -# the shell variables $as_echo and $as_echo_n. New code should use -# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. -as_echo='printf %s\n' -as_echo_n='printf %s' - - rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -560,9 +534,9 @@ if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable. + # In both cases, we have to default to 'cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then @@ -587,14 +561,19 @@ as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated # Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" +as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g" +as_tr_sh="eval sed '$as_sed_sh'" # deprecated SHELL=${CONFIG_SHELL-/bin/sh} +# Provided for backward compatibility. Change uses to AS_ECHO(["message"]). +as_echo='printf %s\n' + test -n "$DJDIR" || exec 7<&0 &1 @@ -607,6 +586,7 @@ ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # Initializations. # ac_default_prefix=/usr/local +ac_clean_CONFIG_STATUS= ac_clean_files= ac_config_libobj_dir=. LIBOBJS= @@ -618,8 +598,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libuv' PACKAGE_TARNAME='libuv' -PACKAGE_VERSION='1.43.0' -PACKAGE_STRING='libuv 1.43.0' +PACKAGE_VERSION='1.52.1' +PACKAGE_STRING='libuv 1.52.1' PACKAGE_BUGREPORT='https://github.com/libuv/libuv/issues' PACKAGE_URL='' @@ -655,6 +635,7 @@ ac_includes_default="\ #endif" ac_header_c_list= +: ${enable_year2038:=no} ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS @@ -706,6 +687,7 @@ MANIFEST_TOOL RANLIB DLLTOOL OBJDUMP +FILECMD LN_S NM ac_ct_DUMPBIN @@ -718,6 +700,7 @@ SED LIBTOOL ac_ct_AR AR +AM_CFLAGS am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE @@ -745,6 +728,8 @@ build MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE +am__xargs_n +am__rm_f_notfound AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V @@ -775,13 +760,13 @@ am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM +ECHO_T +ECHO_N +ECHO_C target_alias host_alias build_alias LIBS -ECHO_T -ECHO_N -ECHO_C DEFS mandir localedir @@ -823,13 +808,17 @@ enable_maintainer_mode enable_shared enable_static enable_dependency_tracking +enable_pic with_pic +enable_cxx_stdlib enable_fast_install +enable_aix_soname with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock enable_largefile +enable_year2038 ' ac_precious_vars='build_alias host_alias @@ -949,9 +938,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: \`$ac_useropt'" + as_fn_error $? "invalid feature name: '$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf '%s\n' "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -975,9 +964,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: \`$ac_useropt'" + as_fn_error $? "invalid feature name: '$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf '%s\n' "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -1188,9 +1177,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: \`$ac_useropt'" + as_fn_error $? "invalid package name: '$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf '%s\n' "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1204,9 +1193,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: \`$ac_useropt'" + as_fn_error $? "invalid package name: '$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf '%s\n' "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1234,8 +1223,8 @@ do | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" + -*) as_fn_error $? "unrecognized option: '$ac_option' +Try '$0 --help' for more information" ;; *=*) @@ -1243,16 +1232,16 @@ Try \`$0 --help' for more information" # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + as_fn_error $? "invalid variable name: '$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. - printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 + printf '%s\n' "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 + printf '%s\n' "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; @@ -1260,7 +1249,7 @@ Try \`$0 --help' for more information" done if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` + ac_option=--`printf '%s\n' $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi @@ -1268,7 +1257,7 @@ if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + *) printf '%s\n' "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1293,7 +1282,7 @@ do as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done -# There might be people who depend on the old broken behavior: `$host' +# There might be people who depend on the old broken behavior: '$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias @@ -1332,7 +1321,7 @@ $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X"$as_myself" | +printf '%s\n' X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -1361,7 +1350,7 @@ if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_msg="sources are in $srcdir, but 'cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` @@ -1389,7 +1378,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libuv 1.43.0 to adapt to many kinds of systems. +'configure' configures libuv 1.52.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1403,11 +1392,11 @@ Configuration: --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages + -q, --quiet, --silent do not print 'checking ...' messages --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' + -C, --config-cache alias for '--cache-file=config.cache' -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] + --srcdir=DIR find the sources in DIR [configure dir or '..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX @@ -1415,10 +1404,10 @@ Installation directories: --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. +By default, 'make install' will install all the files in +'$ac_default_prefix/bin', '$ac_default_prefix/lib' etc. You can specify +an installation prefix other than '$ac_default_prefix' using '--prefix', +for instance '--prefix=\$HOME'. For better control, use the options below. @@ -1460,7 +1449,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libuv 1.43.0:";; + short | recursive ) echo "Configuration of libuv 1.52.1:";; esac cat <<\_ACEOF @@ -1470,8 +1459,8 @@ Optional Features: --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") - --enable-maintainer-mode - enable make rules and dependencies not useful (and + --disable-maintainer-mode + disable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] @@ -1479,19 +1468,24 @@ Optional Features: do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build + --enable-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --enable-cxx-stdlib[=PKGS] + let the compiler frontend decide what standard + libraries to link when building C++ shared libraries + and modules [default=no] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] + --enable-aix-soname=aix|svr4|both + shared library versioning (aka "SONAME") variant to + provide on AIX, [default=aix]. --disable-libtool-lock avoid locking (might break parallel builds) --disable-largefile omit support for large files + --enable-year2038 support timestamps after 2038 Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use - both] - --with-aix-soname=aix|svr4|both - shared library versioning (aka "SONAME") variant to - provide on AIX, [default=aix]. --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified). @@ -1508,7 +1502,7 @@ Some influential environment variables: User-defined run-time library search path. CPP C preprocessor -Use these variables to override the choices made by `configure' or to help +Use these variables to override the choices made by 'configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . @@ -1527,9 +1521,9 @@ if test "$ac_init_help" = "recursive"; then case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf '%s\n' "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`printf '%s\n' "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -1566,7 +1560,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix echo && $SHELL "$ac_srcdir/configure" --help=recursive else - printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + printf '%s\n' "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done @@ -1575,10 +1569,10 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libuv configure 1.43.0 -generated by GNU Autoconf 2.71 +libuv configure 1.52.1 +generated by GNU Autoconf 2.73 -Copyright (C) 2021 Free Software Foundation, Inc. +Copyright (C) 2026 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1602,7 +1596,7 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 +printf '%s\n' "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1610,18 +1604,19 @@ printf "%s\n" "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext then : ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else case e in #( + e) printf '%s\n' "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1 + ac_retval=1 ;; +esac fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval @@ -1641,7 +1636,7 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 +printf '%s\n' "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1649,7 +1644,7 @@ printf "%s\n" "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err @@ -1659,11 +1654,12 @@ printf "%s\n" "$ac_try_echo"; } >&5 } then : ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else case e in #( + e) printf '%s\n' "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1 + ac_retval=1 ;; +esac fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would @@ -1682,13 +1678,13 @@ fi ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> @@ -1696,14 +1692,16 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes" -else $as_nop - eval "$3=no" +else case e in #( + e) eval "$3=no" ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi eval ac_res=\$$3 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf '%s\n' "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile @@ -1714,20 +1712,20 @@ printf "%s\n" "$ac_res" >&6; } ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. */ + which can conflict with char $2 (void); below. */ #include #undef $2 @@ -1738,7 +1736,7 @@ else $as_nop #ifdef __cplusplus extern "C" #endif -char $2 (); +char $2 (void); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ @@ -1757,15 +1755,17 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$3=yes" -else $as_nop - eval "$3=no" +else case e in #( + e) eval "$3=no" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext ;; +esac fi eval ac_res=\$$3 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf '%s\n' "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func @@ -1782,7 +1782,7 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 +printf '%s\n' "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1790,18 +1790,19 @@ printf "%s\n" "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err } then : ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else case e in #( + e) printf '%s\n' "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1 + ac_retval=1 ;; +esac fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval @@ -1812,7 +1813,7 @@ for ac_arg do case $ac_arg in *\'*) - ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`printf '%s\n' "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append ac_configure_args_raw " '$ac_arg'" done @@ -1824,15 +1825,15 @@ case $ac_configure_args_raw in ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. ac_unsafe_a="$ac_unsafe_z#~" ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" - ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; + ac_configure_args_raw=` printf '%s\n' "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; esac cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libuv $as_me 1.43.0, which was -generated by GNU Autoconf 2.71. Invocation command line was +It was created by libuv $as_me 1.52.1, which was +generated by GNU Autoconf 2.73. Invocation command line was $ $0$ac_configure_args_raw @@ -1872,7 +1873,7 @@ do */) ;; *) as_dir=$as_dir/ ;; esac - printf "%s\n" "PATH: $as_dir" + printf '%s\n' "PATH: $as_dir" done IFS=$as_save_IFS @@ -1907,7 +1908,7 @@ do | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) - ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`printf '%s\n' "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; @@ -1936,31 +1937,22 @@ done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Sanitize IFS. - IFS=" "" $as_nl" - # Save into config.log some information that might help in debugging. - { - echo - - printf "%s\n" "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, +# Dump the cache to stdout. It can be in a pipe (this is a requirement). +ac_cache_dump () +{ + # The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. ( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + *_cv_*) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf '%s\n' "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -1969,67 +1961,95 @@ printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} esac ;; esac done + (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) + # 'set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) + # 'set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) - echo +} + +# Print debugging info to stdout. +ac_dump_debugging_info () +{ + echo + + printf '%s\n' "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + ac_cache_dump + echo - printf "%s\n" "## ----------------- ## + printf '%s\n' "## ----------------- ## ## Output variables. ## ## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'*) ac_val=`printf '%s\n' "$ac_val" | sed "s/'/'\\\\\\\\''/g"`;; + esac + printf '%s\n' "$ac_var='$ac_val'" + done | sort + echo + + if test -n "$ac_subst_files"; then + printf '%s\n' "## ------------------- ## +## File substitutions. ## +## ------------------- ##" echo - for ac_var in $ac_subst_vars + for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'*) ac_val=`printf '%s\n' "$ac_val" | sed "s/'/'\\\\\\\\''/g"`;; esac - printf "%s\n" "$ac_var='\''$ac_val'\''" + printf '%s\n' "$ac_var='$ac_val'" done | sort echo + fi - if test -n "$ac_subst_files"; then - printf "%s\n" "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - printf "%s\n" "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - printf "%s\n" "## ----------- ## + if test -s confdefs.h; then + printf '%s\n' "## ----------- ## ## confdefs.h. ## ## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - printf "%s\n" "$as_me: caught signal $ac_signal" - printf "%s\n" "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + printf '%s\n' "$as_me: caught signal $ac_signal" + printf '%s\n' "$as_me: exit $exit_status" +} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. +ac_exit_trap () +{ + exit_status= + # Sanitize IFS. + IFS=" "" $as_nl" + # Save into config.log some information that might help in debugging. + ac_dump_debugging_info >&5 + eval "rm -f $ac_clean_CONFIG_STATUS core *.core core.conftest.*" && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status -' 0 +} + +trap 'ac_exit_trap $?' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done @@ -2038,21 +2058,21 @@ ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h -printf "%s\n" "/* confdefs.h */" > confdefs.h +printf '%s\n' "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. -printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h +printf '%s\n' "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h -printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h +printf '%s\n' "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h -printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h +printf '%s\n' "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h -printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h +printf '%s\n' "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h -printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h +printf '%s\n' "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h -printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h +printf '%s\n' "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. @@ -2074,14 +2094,14 @@ do ac_site_file=./$ac_site_file ;; esac if test -f "$ac_site_file" && test -r "$ac_site_file"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +printf '%s\n' "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ - || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + || { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } fi done @@ -2089,27 +2109,120 @@ if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -printf "%s\n" "$as_me: loading cache $cache_file" >&6;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +printf '%s\n' "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -printf "%s\n" "$as_me: creating cache $cache_file" >&6;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +printf '%s\n' "$as_me: creating cache $cache_file" >&6;} >$cache_file fi +# Test code for whether the C compiler supports C23 (global declarations) +ac_c_conftest_c23_globals=' +/* Does the compiler advertise conformance to C17 or earlier? + Although GCC 14 does not do that, even with -std=gnu23, + it is close enough, and defines __STDC_VERSION == 202000L. */ +#if !defined __STDC_VERSION__ || __STDC_VERSION__ <= 201710L +# error "Compiler advertises conformance to C17 or earlier" +#endif + +// Check alignas. +char alignas (double) c23_aligned_as_double; +char alignas (0) c23_no_special_alignment; +extern char c23_aligned_as_int; +char alignas (0) alignas (int) c23_aligned_as_int; + +// Check alignof. +enum +{ + c23_int_alignment = alignof (int), + c23_int_array_alignment = alignof (int[100]), + c23_char_alignment = alignof (char) +}; +static_assert (0 < -alignof (int), "alignof is signed"); + +int function_with_unnamed_parameter (int) { return 0; } + +void c23_noreturn (); + +/* Test parsing of string and char UTF-8 literals (including hex escapes). + The parens pacify GCC 15. */ +bool use_u8 = (!sizeof u8"\xFF") == (!u8'\''x'\''); + +bool check_that_bool_works = true | false | !nullptr; +#if !true +# error "true does not work in #if" +#endif +#if false +#elifdef __STDC_VERSION__ +#else +# error "#elifdef does not work" +#endif + +#ifndef __has_c_attribute +# error "__has_c_attribute not defined" +#endif + +#ifndef __has_include +# error "__has_include not defined" +#endif + +#define LPAREN() ( +#define FORTY_TWO(x) 42 +#define VA_OPT_TEST(r, x, ...) __VA_OPT__ (FORTY_TWO r x)) +static_assert (VA_OPT_TEST (LPAREN (), 0, <:-) == 42); + +static_assert (0b101010 == 42); +static_assert (0B101010 == 42); +static_assert (0xDEAD'\''BEEF == 3'\''735'\''928'\''559); +static_assert (0.500'\''000'\''000 == 0.5); + +enum unsignedish : unsigned int { uione = 1 }; +static_assert (0 < -uione); + +#include +constexpr nullptr_t null_pointer = nullptr; + +static typeof (1 + 1L) two () { return 2; } +static long int three () { return 3; } +' + +# Test code for whether the C compiler supports C23 (body of main). +ac_c_conftest_c23_main=' + { + label_before_declaration: + int arr[10] = {}; + if (arr[0]) + goto label_before_declaration; + if (!arr[0]) + goto label_at_end_of_block; + label_at_end_of_block: + } + ok |= !null_pointer; + ok |= two != three; +' + +# Test code for whether the C compiler supports C23 (complete). +ac_c_conftest_c23_program="${ac_c_conftest_c23_globals} + +int +main (int, char **) +{ + int ok = 0; + ${ac_c_conftest_c23_main} + return ok; +} +" + # Test code for whether the C compiler supports C89 (global declarations) ac_c_conftest_c89_globals=' -/* Does the compiler advertise C89 conformance? - Do not test the value of __STDC__, because some compilers set it to 0 - while being otherwise adequately conformant. */ -#if !defined __STDC__ -# error "Compiler does not advertise C89 conformance" -#endif +/* Do not test the value of __STDC__, because some compilers define it to 0 + or do not define it, while otherwise adequately conforming. */ #include #include @@ -2117,9 +2230,7 @@ struct stat; /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ struct buf { int x; }; struct buf * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; +static char *e (char **p, int i) { return p[i]; } @@ -2133,6 +2244,21 @@ static char *f (char * (*g) (char **, int), char **p, ...) return s; } +/* C89 style stringification. */ +#define noexpand_stringify(a) #a +const char *stringified = noexpand_stringify(arbitrary+token=sequence); + +/* C89 style token pasting. Exercises some of the corner cases that + e.g. old MSVC gets wrong, but not very hard. */ +#define noexpand_concat(a,b) a##b +#define expand_concat(a,b) noexpand_concat(a,b) +extern int vA; +extern int vbee; +#define aye A +#define bee B +int *pvA = &expand_concat(v,aye); +int *pvbee = &noexpand_concat(v,bee); + /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not \xHH hex character constants. These do not provoke an error unfortunately, instead are silently treated @@ -2160,20 +2286,24 @@ ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); # Test code for whether the C compiler supports C99 (global declarations) ac_c_conftest_c99_globals=' -// Does the compiler advertise C99 conformance? +/* Does the compiler advertise C99 conformance? */ #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L # error "Compiler does not advertise C99 conformance" #endif +// See if C++-style comments work. + #include extern int puts (const char *); extern int printf (const char *, ...); extern int dprintf (int, const char *, ...); extern void *malloc (size_t); +extern void free (void *); // Check varargs macros. These examples are taken from C99 6.10.3.5. // dprintf is used instead of fprintf to avoid needing to declare -// FILE and stderr. +// FILE and stderr, and "aND" is used instead of "and" to work around +// GCC bug 40564 which is irrelevant here. #define debug(...) dprintf (2, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) @@ -2184,7 +2314,7 @@ test_varargs_macros (void) int y = 5678; debug ("Flag"); debug ("X = %d\n", x); - showlist (The first, second, and third items.); + showlist (The first, second, aND third items.); report (x>y, "x is %d but y is %d", x, y); } @@ -2219,7 +2349,6 @@ typedef const char *ccp; static inline int test_restrict (ccp restrict text) { - // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) @@ -2273,18 +2402,20 @@ ac_c_conftest_c99_main=' // Check restrict. if (test_restrict ("String literal") == 0) success = true; - char *restrict newvar = "Another string"; + const char *restrict newvar = "Another string"; // Check varargs. success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. - struct incomplete_array *ia = - malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + static struct incomplete_array *volatile incomplete_array_pointer; + struct incomplete_array *ia = incomplete_array_pointer; ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; + // Work around memory leak warnings. + free (ia); // Check named initializers. struct named_init ni = { @@ -2295,18 +2426,17 @@ ac_c_conftest_c99_main=' ni.number = 58; - int dynamic_array[ni.number]; - dynamic_array[0] = argv[0][0]; - dynamic_array[ni.number - 1] = 543; + // Do not test for VLAs, as some otherwise-conforming compilers lack them. + // C code should instead use __STDC_NO_VLA__; see Autoconf manual. // work around unused variable warnings ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' - || dynamic_array[ni.number - 1] != 543); + || ni.number != 58); ' # Test code for whether the C compiler supports C11 (global declarations) ac_c_conftest_c11_globals=' -// Does the compiler advertise C11 conformance? +/* Does the compiler advertise C11 conformance? */ #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L # error "Compiler does not advertise C11 conformance" #endif @@ -2433,7 +2563,7 @@ ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${ # $ac_aux_dir_candidates and give up. ac_missing_aux_files="" ac_first_candidate=: -printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 +printf '%s\n' "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in $ac_aux_dir_candidates @@ -2446,7 +2576,7 @@ do esac as_found=: - printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 ac_aux_dir_found=yes ac_install_sh= for ac_aux in $ac_aux_files @@ -2457,13 +2587,13 @@ do if test x"$ac_aux" = x"install-sh" then if test -f "${as_dir}install-sh"; then - printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 ac_install_sh="${as_dir}install-sh -c" elif test -f "${as_dir}install.sh"; then - printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 ac_install_sh="${as_dir}install.sh -c" elif test -f "${as_dir}shtool"; then - printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 ac_install_sh="${as_dir}shtool install -c" else ac_aux_dir_found=no @@ -2475,7 +2605,7 @@ do fi else if test -f "${as_dir}${ac_aux}"; then - printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 else ac_aux_dir_found=no if $ac_first_candidate; then @@ -2498,8 +2628,9 @@ IFS=$as_save_IFS if $as_found then : -else $as_nop - as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 +else case e in #( + e) as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 ;; +esac fi @@ -2527,38 +2658,44 @@ for ac_var in $ac_precious_vars; do eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5 +printf '%s\n' "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5 +printf '%s\n' "$as_me: error: '$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` + ac_old_val_w= + for ac_val in x $ac_old_val; do + ac_old_val_w="$ac_old_val_w $ac_val" + done + ac_new_val_w= + for ac_val in x $ac_new_val; do + ac_new_val_w="$ac_new_val_w $ac_val" + done if test "$ac_old_val_w" != "$ac_new_val_w"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5 +printf '%s\n' "$as_me: error: '$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5 +printf '%s\n' "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: former value: '$ac_old_val'" >&5 +printf '%s\n' "$as_me: former value: '$ac_old_val'" >&2;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: current value: '$ac_new_val'" >&5 +printf '%s\n' "$as_me: current value: '$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in - *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_arg=$ac_var=`printf '%s\n' "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in @@ -2568,17 +2705,34 @@ printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} fi done if $ac_cache_corrupted; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +printf '%s\n' "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run '${MAKE-make} distclean' and/or 'rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -2651,7 +2805,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -am__api_version='1.16' + + + + +am__api_version='1.18' @@ -2669,14 +2827,14 @@ am__api_version='1.16' # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 printf %s "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test ${ac_cv_path_install+y} then : printf %s "(cached) " >&6 -else $as_nop - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +else case e in #( + e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS @@ -2692,8 +2850,8 @@ case $as_dir in #(( ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root + # OSF/1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF/1 since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do @@ -2730,7 +2888,8 @@ esac IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir - + ;; +esac fi if test ${ac_cv_path_install+y}; then INSTALL=$ac_cv_path_install @@ -2742,8 +2901,8 @@ fi INSTALL=$ac_install_sh fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -printf "%s\n" "$INSTALL" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +printf '%s\n' "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. @@ -2753,7 +2912,166 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether sleep supports fractional seconds" >&5 +printf %s "checking whether sleep supports fractional seconds... " >&6; } +if test ${am_cv_sleep_fractional_seconds+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if sleep 0.001 2>/dev/null +then : + am_cv_sleep_fractional_seconds=yes +else case e in #( + e) am_cv_sleep_fractional_seconds=no ;; +esac +fi + ;; +esac +fi +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_sleep_fractional_seconds" >&5 +printf '%s\n' "$am_cv_sleep_fractional_seconds" >&6; } + +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking filesystem timestamp resolution" >&5 +printf %s "checking filesystem timestamp resolution... " >&6; } +if test ${am_cv_filesystem_timestamp_resolution+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) # Default to the worst case. +am_cv_filesystem_timestamp_resolution=2 + +# Only try to go finer than 1 sec if sleep can do it. +# Don't try 1 sec, because if 0.01 sec and 0.1 sec don't work, +# - 1 sec is not much of a win compared to 2 sec, and +# - it takes 2 seconds to perform the test whether 1 sec works. +# +# Instead, just use the default 2s on platforms that have 1s resolution, +# accept the extra 1s delay when using $sleep in the Automake tests, in +# exchange for not incurring the 2s delay for running the test for all +# packages. +# +am_try_resolutions= +if test "$am_cv_sleep_fractional_seconds" = yes; then + # Even a millisecond often causes a bunch of false positives, + # so just try a hundredth of a second. The time saved between .001 and + # .01 is not terribly consequential. + am_try_resolutions="0.01 0.1 $am_try_resolutions" +fi + +# In order to catch current-generation FAT out, we must *modify* files +# that already exist; the *creation* timestamp is finer. Use names +# that make ls -t sort them differently when they have equal +# timestamps than when they have distinct timestamps, keeping +# in mind that ls -t prints the *newest* file first. +rm -f conftest.ts? +: > conftest.ts1 +: > conftest.ts2 +: > conftest.ts3 + +# Make sure ls -t actually works. Do 'set' in a subshell so we don't +# clobber the current shell's arguments. (Outer-level square brackets +# are removed by m4; they're present so that m4 does not expand +# ; be careful, easy to get confused.) +if ( + set X `ls -t conftest.ts[12]` && + { + test "$*" != "X conftest.ts1 conftest.ts2" || + test "$*" != "X conftest.ts2 conftest.ts1"; + } +); then :; else + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + printf '%s\n' ""Bad output from ls -t: \"`ls -t conftest.ts[12]`\""" >&5 + { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error $? "ls -t produces unexpected output. +Make sure there is not a broken ls alias in your environment. +See 'config.log' for more details" "$LINENO" 5; } +fi + +for am_try_res in $am_try_resolutions; do + # Any one fine-grained sleep might happen to cross the boundary + # between two values of a coarser actual resolution, but if we do + # two fine-grained sleeps in a row, at least one of them will fall + # entirely within a coarse interval. + echo alpha > conftest.ts1 + sleep $am_try_res + echo beta > conftest.ts2 + sleep $am_try_res + echo gamma > conftest.ts3 + + # We assume that 'ls -t' will make use of high-resolution + # timestamps if the operating system supports them at all. + if (set X `ls -t conftest.ts?` && + test "$2" = conftest.ts3 && + test "$3" = conftest.ts2 && + test "$4" = conftest.ts1); then + # + # Ok, ls -t worked. If we're at a resolution of 1 second, we're done, + # because we don't need to test make. + make_ok=true + if test $am_try_res != 1; then + # But if we've succeeded so far with a subsecond resolution, we + # have one more thing to check: make. It can happen that + # everything else supports the subsecond mtimes, but make doesn't; + # notably on macOS, which ships make 3.81 from 2006 (the last one + # released under GPLv2). https://bugs.gnu.org/68808 + # + # We test $MAKE if it is defined in the environment, else "make". + # It might get overridden later, but our hope is that in practice + # it does not matter: it is the system "make" which is (by far) + # the most likely to be broken, whereas if the user overrides it, + # probably they did so with a better, or at least not worse, make. + # https://lists.gnu.org/archive/html/automake/2024-06/msg00051.html + # + # Create a Makefile (real tab character here): + rm -f conftest.mk + echo 'conftest.ts1: conftest.ts2' >conftest.mk + echo ' touch conftest.ts2' >>conftest.mk + # + # Now, running + # touch conftest.ts1; touch conftest.ts2; make + # should touch ts1 because ts2 is newer. This could happen by luck, + # but most often, it will fail if make's support is insufficient. So + # test for several consecutive successes. + # + # (We reuse conftest.ts[12] because we still want to modify existing + # files, not create new ones, per above.) + n=0 + make=${MAKE-make} + until test $n -eq 3; do + echo one > conftest.ts1 + sleep $am_try_res + echo two > conftest.ts2 # ts2 should now be newer than ts1 + if $make -f conftest.mk | grep 'up to date' >/dev/null; then + make_ok=false + break # out of $n loop + fi + n=`expr $n + 1` + done + fi + # + if $make_ok; then + # Everything we know to check worked out, so call this resolution good. + am_cv_filesystem_timestamp_resolution=$am_try_res + break # out of $am_try_res loop + fi + # Otherwise, we'll go on to check the next resolution. + fi +done +rm -f conftest.ts? +# (end _am_filesystem_timestamp_resolution) + ;; +esac +fi +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_filesystem_timestamp_resolution" >&5 +printf '%s\n' "$am_cv_filesystem_timestamp_resolution" >&6; } + +# This check should not be cached, as it may vary across builds of +# different projects. +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 printf %s "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. @@ -2761,10 +3079,14 @@ am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac @@ -2773,49 +3095,45 @@ esac # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! +am_build_env_is_sane=no +am_has_slept=no +rm -f conftest.file +for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + test "$2" = conftest.file + ); then + am_build_env_is_sane=yes + break + fi + # Just in case. + sleep "$am_cv_filesystem_timestamp_resolution" + am_has_slept=yes +done + +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_build_env_is_sane" >&5 +printf '%s\n' "$am_build_env_is_sane" >&6; } +if test "$am_build_env_is_sane" = no; then + as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & +if test -e conftest.file || grep 'slept: no' conftest.file >/dev/null 2>&1 +then : + +else case e in #( + e) ( sleep "$am_cv_filesystem_timestamp_resolution" ) & am_sleep_pid=$! + ;; +esac fi rm -f conftest.file @@ -2826,9 +3144,9 @@ test "$program_prefix" != NONE && test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. -# By default was `s,x,x', remove it if useless. +# By default was 's,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"` +program_transform_name=`printf '%s\n' "$program_transform_name" | sed "$ac_script"` # Expand $ac_aux_dir to an absolute path. @@ -2843,8 +3161,8 @@ if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +printf '%s\n' "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh+set}" != xset; then @@ -2864,13 +3182,13 @@ if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_STRIP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$STRIP"; then +else case e in #( + e) if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2885,22 +3203,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -printf "%s\n" "$STRIP" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +printf '%s\n' "$STRIP" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -2909,13 +3228,13 @@ if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_STRIP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_STRIP"; then +else case e in #( + e) if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -2930,22 +3249,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -printf "%s\n" "$ac_ct_STRIP" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +printf '%s\n' "$ac_ct_STRIP" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then @@ -2953,8 +3273,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP @@ -2967,14 +3287,14 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 printf %s "checking for a race-free mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test ${ac_cv_path_mkdir+y} then : printf %s "(cached) " >&6 -else $as_nop - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +else case e in #( + e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS @@ -2988,7 +3308,7 @@ do as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir ('*'coreutils) '* | \ - 'BusyBox '* | \ + *'BusyBox '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext break 3;; @@ -2997,34 +3317,33 @@ do done done IFS=$as_save_IFS - + ;; +esac fi test -d ./--version && rmdir ./--version if test ${ac_cv_path_mkdir+y}; then MKDIR_P="$ac_cv_path_mkdir -p" else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" + # As a last resort, use plain mkdir -p, + # in the hope it doesn't have the bugs of ancient mkdir. + MKDIR_P='mkdir -p' fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -printf "%s\n" "$MKDIR_P" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +printf '%s\n' "$MKDIR_P" >&6; } -for ac_prog in gawk mawk nawk awk +for ac_prog in gawk mawk nawk awk 'busybox awk' do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AWK+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$AWK"; then +else case e in #( + e) if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3039,40 +3358,41 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -printf "%s\n" "$AWK" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +printf '%s\n' "$AWK" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi test -n "$AWK" && break done -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} -ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +ac_make=`printf '%s\n' "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval test \${ac_cv_prog_make_${ac_make}_set+y} then : printf %s "(cached) " >&6 -else $as_nop - cat >conftest.make <<\_ACEOF +else case e in #( + e) cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: - @echo '@@@%%%=$(MAKE)=@@@%%%' + @printf '%s\n' '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in @@ -3081,15 +3401,16 @@ case `${MAKE-make} -f conftest.make 2>/dev/null` in *) eval ac_cv_prog_make_${ac_make}_set=no;; esac -rm -f conftest.make +rm -f conftest.make ;; +esac fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf '%s\n' "yes" >&6; } SET_MAKE= else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -3102,25 +3423,21 @@ else fi rmdir .tst 2>/dev/null +AM_DEFAULT_VERBOSITY=1 # Check whether --enable-silent-rules was given. if test ${enable_silent_rules+y} then : enableval=$enable_silent_rules; fi -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=1;; -esac am_make=${MAKE-make} -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 printf %s "checking whether $am_make supports nested variables... " >&6; } if test ${am_cv_make_support_nested_variables+y} then : printf %s "(cached) " >&6 -else $as_nop - if printf "%s\n" 'TRUE=$(BAR$(V)) +else case e in #( + e) if printf '%s\n' 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 @@ -3130,19 +3447,50 @@ am__doit: am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no +fi ;; +esac fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +printf '%s\n' "$am_cv_make_support_nested_variables" >&6; } AM_BACKSLASH='\' +am__rm_f_notfound= +if (rm -f && rm -fr && rm -rf) 2>/dev/null +then : + +else case e in #( + e) am__rm_f_notfound='""' ;; +esac +fi + + +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking xargs -n works" >&5 +printf %s "checking xargs -n works... " >&6; } +if test ${am_cv_xargs_n_works+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test "`echo 1 2 3 | xargs -n2 echo`" = "1 2 +3" +then : + am_cv_xargs_n_works=yes +else case e in #( + e) am_cv_xargs_n_works=no ;; +esac +fi ;; +esac +fi +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_xargs_n_works" >&5 +printf '%s\n' "$am_cv_xargs_n_works" >&6; } +if test "$am_cv_xargs_n_works" = yes +then : + am__xargs_n='xargs -n' +else case e in #( + e) am__xargs_n='am__xargs_n () { shift; sed "s/ /\\n/g" | while read am__xargs_n_arg; do "" "$am__xargs_n_arg"; done; }' + ;; +esac +fi + if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." @@ -3165,13 +3513,13 @@ fi # Define the identity of the package. PACKAGE='libuv' - VERSION='1.43.0' + VERSION='1.52.1' -printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h +printf '%s\n' "#define PACKAGE \"$PACKAGE\"" >>confdefs.h -printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h +printf '%s\n' "#define VERSION \"$VERSION\"" >>confdefs.h # Some tools Automake needs. @@ -3203,9 +3551,133 @@ AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar pax cpio none' +_am_tools='gnutar plaintar pax cpio none' + +# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5 +printf %s "checking whether UID '$am_uid' is supported by ustar format... " >&6; } + if test x$am_uid = xunknown; then + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: ancient id detected; assuming current UID is ok, but dist-ustar might not work" >&5 +printf '%s\n' "$as_me: WARNING: ancient id detected; assuming current UID is ok, but dist-ustar might not work" >&2;} + elif test $am_uid -le $am_max_uid; then + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf '%s\n' "yes" >&6; } + else + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } + _am_tools=none + fi + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5 +printf %s "checking whether GID '$am_gid' is supported by ustar format... " >&6; } + if test x$gm_gid = xunknown; then + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: ancient id detected; assuming current GID is ok, but dist-ustar might not work" >&5 +printf '%s\n' "$as_me: WARNING: ancient id detected; assuming current GID is ok, but dist-ustar might not work" >&2;} + elif test $am_gid -le $am_max_gid; then + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf '%s\n' "yes" >&6; } + else + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } + _am_tools=none + fi + + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 +printf %s "checking how to create a ustar tar archive... " >&6; } -am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_ustar-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + { echo "$as_me:$LINENO: $_am_tar --version" >&5 + ($_am_tar --version) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && break + done + am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x ustar -w "$$tardir"' + am__tar_='pax -L -x ustar -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H ustar -L' + am__tar_='find "$tardir" -print | cpio -o -H ustar -L' + am__untar='cpio -i -H ustar -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_ustar}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 + (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + rm -rf conftest.dir + if test -s conftest.tar; then + { echo "$as_me:$LINENO: $am__untar &5 + ($am__untar &5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + { echo "$as_me:$LINENO: cat conftest.dir/file" >&5 + (cat conftest.dir/file) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + if test ${am_cv_prog_tar_ustar+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) am_cv_prog_tar_ustar=$_am_tool ;; +esac +fi + + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 +printf '%s\n' "$am_cv_prog_tar_ustar" >&6; } @@ -3226,61 +3698,24 @@ fi -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 - fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 printf %s "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test ${enable_maintainer_mode+y} then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else $as_nop - USE_MAINTAINER_MODE=no +else case e in #( + e) USE_MAINTAINER_MODE=yes ;; +esac fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -printf "%s\n" "$USE_MAINTAINER_MODE" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +printf '%s\n' "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' @@ -3291,30 +3726,31 @@ fi MAINT=$MAINTAINER_MODE_TRUE - + # pass --disable-maintainer-mode if autotools may be unavailable # Make sure we can run config.sub. $SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 printf %s "checking build system type... " >&6; } if test ${ac_cv_build+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_build_alias=$build_alias +else case e in #( + e) ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` || as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5 - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -printf "%s\n" "$ac_cv_build" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +printf '%s\n' "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; @@ -3330,25 +3766,26 @@ shift; shift # except with old shells: build_os=$* IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac +case $build_os in *\ *) build_os=`printf '%s\n' "$build_os" | sed 's/ /-/g'`;; esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 printf %s "checking host system type... " >&6; } if test ${ac_cv_host+y} then : printf %s "(cached) " >&6 -else $as_nop - if test "x$host_alias" = x; then +else case e in #( + e) if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` || as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5 fi - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -printf "%s\n" "$ac_cv_host" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +printf '%s\n' "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; @@ -3364,7 +3801,7 @@ shift; shift # except with old shells: host_os=$* IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac +case $host_os in *\ *) host_os=`printf '%s\n' "$host_os" | sed 's/ /-/g'`;; esac # Check whether --enable-shared was given. @@ -3387,8 +3824,9 @@ then : IFS=$lt_save_ifs ;; esac -else $as_nop - enable_shared=yes +else case e in #( + e) enable_shared=yes ;; +esac fi @@ -3419,8 +3857,9 @@ then : IFS=$lt_save_ifs ;; esac -else $as_nop - enable_static=yes +else case e in #( + e) enable_static=yes ;; +esac fi @@ -3439,6 +3878,9 @@ fi + + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -3448,13 +3890,13 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3469,22 +3911,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -printf "%s\n" "$CC" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf '%s\n' "$CC" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -3493,13 +3936,13 @@ if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then +else case e in #( + e) if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3514,22 +3957,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -printf "%s\n" "$ac_ct_CC" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf '%s\n' "$ac_ct_CC" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -3537,8 +3981,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -3551,13 +3995,13 @@ if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3572,22 +4016,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -printf "%s\n" "$CC" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf '%s\n' "$CC" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -3596,13 +4041,13 @@ fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no @@ -3622,7 +4067,7 @@ do continue fi ac_cv_prog_CC="cc" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3641,15 +4086,16 @@ if test $ac_prog_rejected = yes; then ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -printf "%s\n" "$CC" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf '%s\n' "$CC" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -3660,13 +4106,13 @@ if test -z "$CC"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3681,22 +4127,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -printf "%s\n" "$CC" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf '%s\n' "$CC" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -3709,13 +4156,13 @@ if test -z "$CC"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then +else case e in #( + e) if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3730,22 +4177,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -printf "%s\n" "$ac_ct_CC" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf '%s\n' "$ac_ct_CC" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -3757,8 +4205,8 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -3770,13 +4218,13 @@ if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. set dummy ${ac_tool_prefix}clang; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3791,22 +4239,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}clang" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -printf "%s\n" "$CC" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf '%s\n' "$CC" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -3815,13 +4264,13 @@ if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "clang", so it can be a program name with args. set dummy clang; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then +else case e in #( + e) if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3836,22 +4285,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="clang" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -printf "%s\n" "$ac_ct_CC" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf '%s\n' "$ac_ct_CC" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -3859,8 +4309,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -3872,13 +4322,13 @@ fi fi -test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +test -z "$CC" && { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. -printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion -version; do @@ -3888,7 +4338,7 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 +printf '%s\n' "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -3898,7 +4348,7 @@ printf "%s\n" "$ac_try_echo"; } >&5 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done @@ -3918,9 +4368,9 @@ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 printf %s "checking whether the C compiler works... " >&6; } -ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +ac_link_default=`printf '%s\n' "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" @@ -3941,14 +4391,14 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 +printf '%s\n' "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' + # Autoconf-2.13 could set the ac_cv_exeext variable to 'no'. +# So ignore a value of 'no', otherwise this would lead to 'EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. @@ -3968,7 +4418,7 @@ do ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' + # safe: cross compilers may not add the suffix if given an '-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. @@ -3979,33 +4429,35 @@ do done test "$ac_cv_exeext" = no && ac_cv_exeext= -else $as_nop - ac_file='' +else case e in #( + e) ac_file='' ;; +esac fi if test -z "$ac_file" then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -printf "%s\n" "$as_me: failed program was:" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } +printf '%s\n' "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } +See 'config.log' for more details" "$LINENO" 5; } +else case e in #( + e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf '%s\n' "yes" >&6; } ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 printf %s "checking for C compiler default output file name... " >&6; } -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -printf "%s\n" "$ac_file" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +printf '%s\n' "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 printf %s "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in @@ -4013,16 +4465,16 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 +printf '%s\n' "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. + # If both 'conftest.exe' and 'conftest' are 'present' (well, observable) +# catch 'conftest.exe'. For instance with Cygwin, 'ls conftest' will +# work properly (i.e., refer to 'conftest.exe'), while it won't with +# 'rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in @@ -4032,15 +4484,16 @@ for ac_file in conftest.exe conftest conftest.*; do * ) break;; esac done -else $as_nop - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } ;; +esac fi rm -f conftest conftest$ac_cv_exeext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -printf "%s\n" "$ac_cv_exeext" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +printf '%s\n' "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext @@ -4052,6 +4505,8 @@ int main (void) { FILE *f = fopen ("conftest.out", "w"); + if (!f) + return 1; return ferror (f) || fclose (f) != 0; ; @@ -4061,7 +4516,7 @@ _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" @@ -4070,10 +4525,10 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 +printf '%s\n' "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in @@ -4081,36 +4536,37 @@ printf "%s\n" "$ac_try_echo"; } >&5 *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 +printf '%s\n' "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } +If you meant to cross compile, use '--host'. +See 'config.log' for more details" "$LINENO" 5; } fi fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -printf "%s\n" "$cross_compiling" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +printf '%s\n' "$cross_compiling" >&6; } -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +rm -f conftest.$ac_ext conftest$ac_cv_exeext \ + conftest.o conftest.obj conftest.out ac_clean_files=$ac_clean_files_save -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 printf %s "checking for suffix of object files... " >&6; } if test ${ac_cv_objext+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -4128,10 +4584,10 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 +printf '%s\n' "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : for ac_file in conftest.o conftest.obj conftest.*; do @@ -4142,28 +4598,30 @@ then : break;; esac done -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else case e in #( + e) printf '%s\n' "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } ;; +esac fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext +rm -f conftest.$ac_cv_objext conftest.$ac_ext ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -printf "%s\n" "$ac_cv_objext" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +printf '%s\n' "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 printf %s "checking whether the compiler supports GNU C... " >&6; } if test ${ac_cv_c_compiler_gnu+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -4180,15 +4638,17 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_compiler_gnu=yes -else $as_nop - ac_compiler_gnu=no +else case e in #( + e) ac_compiler_gnu=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf '%s\n' "$ac_cv_c_compiler_gnu" >&6; } ac_compiler_gnu=$ac_cv_c_compiler_gnu if test $ac_compiler_gnu = yes; then @@ -4198,13 +4658,13 @@ else fi ac_test_CFLAGS=${CFLAGS+y} ac_save_CFLAGS=$CFLAGS -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 printf %s "checking whether $CC accepts -g... " >&6; } if test ${ac_cv_prog_cc_g+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_save_c_werror_flag=$ac_c_werror_flag +else case e in #( + e) ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" @@ -4222,8 +4682,8 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes -else $as_nop - CFLAGS="" +else case e in #( + e) CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -4238,8 +4698,8 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : -else $as_nop - ac_c_werror_flag=$ac_save_c_werror_flag +else case e in #( + e) ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -4256,15 +4716,18 @@ if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag + ac_c_werror_flag=$ac_save_c_werror_flag ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf '%s\n' "$ac_cv_prog_cc_g" >&6; } if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then @@ -4283,19 +4746,68 @@ fi ac_prog_cc_stdc=no if test x$ac_prog_cc_stdc = xno then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C23 features" >&5 +printf %s "checking for $CC option to enable C23 features... " >&6; } +if test ${ac_cv_prog_cc_c23+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_prog_cc_c23=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c23_program +_ACEOF +for ac_arg in '' -std=gnu23 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c23=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c23" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC ;; +esac +fi + +if test "x$ac_cv_prog_cc_c23" = xno +then : + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf '%s\n' "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c23" = x +then : + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf '%s\n' "none needed" >&6; } +else case e in #( + e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c23" >&5 +printf '%s\n' "$ac_cv_prog_cc_c23" >&6; } + CC="$CC $ac_cv_prog_cc_c23" ;; +esac +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c23 + ac_prog_cc_stdc=c23 ;; +esac +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 printf %s "checking for $CC option to enable C11 features... " >&6; } if test ${ac_cv_prog_cc_c11+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c11=no +else case e in #( + e) ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c11_program _ACEOF -for ac_arg in '' -std=gnu11 +for ac_arg in '' -std=gnu11 -std:c11 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" @@ -4306,36 +4818,39 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c11" != "xno" && break done rm -f conftest.$ac_ext -CC=$ac_save_CC +CC=$ac_save_CC ;; +esac fi if test "x$ac_cv_prog_cc_c11" = xno then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cc_c11" = x -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 -printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } - CC="$CC $ac_cv_prog_cc_c11" + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf '%s\n' "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c11" = x +then : + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf '%s\n' "none needed" >&6; } +else case e in #( + e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf '%s\n' "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" ;; +esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 - ac_prog_cc_stdc=c11 + ac_prog_cc_stdc=c11 ;; +esac fi fi if test x$ac_prog_cc_stdc = xno then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 printf %s "checking for $CC option to enable C99 features... " >&6; } if test ${ac_cv_prog_cc_c99+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c99=no +else case e in #( + e) ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -4352,36 +4867,39 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext -CC=$ac_save_CC +CC=$ac_save_CC ;; +esac fi if test "x$ac_cv_prog_cc_c99" = xno then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cc_c99" = x -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 -printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } - CC="$CC $ac_cv_prog_cc_c99" + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf '%s\n' "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c99" = x +then : + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf '%s\n' "none needed" >&6; } +else case e in #( + e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf '%s\n' "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" ;; +esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 - ac_prog_cc_stdc=c99 + ac_prog_cc_stdc=c99 ;; +esac fi fi if test x$ac_prog_cc_stdc = xno then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 printf %s "checking for $CC option to enable C89 features... " >&6; } if test ${ac_cv_prog_cc_c89+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c89=no +else case e in #( + e) ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -4398,25 +4916,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext -CC=$ac_save_CC +CC=$ac_save_CC ;; +esac fi if test "x$ac_cv_prog_cc_c89" = xno then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cc_c89" = x -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } - CC="$CC $ac_cv_prog_cc_c89" + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf '%s\n' "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c89" = x +then : + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf '%s\n' "none needed" >&6; } +else case e in #( + e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf '%s\n' "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" ;; +esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 - ac_prog_cc_stdc=c89 + ac_prog_cc_stdc=c89 ;; +esac fi fi @@ -4432,13 +4953,13 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 printf %s "checking whether $CC understands -c and -o together... " >&6; } if test ${am_cv_prog_cc_c_o+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -4467,11 +4988,15 @@ _ACEOF break fi done - rm -f core conftest* - unset am_i + # aligned with autoconf, so not including core; see bug#72225. + rm -f -r a.out a.exe b.out conftest.$ac_ext conftest.$ac_objext \ + conftest.dSYM conftest1.$ac_ext conftest1.$ac_objext conftest1.dSYM \ + conftest2.$ac_ext conftest2.$ac_objext conftest2.dSYM + unset am_i ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +printf '%s\n' "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. @@ -4490,7 +5015,7 @@ DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; } cat > confinc.mk << 'END' am__doit: @@ -4522,8 +5047,8 @@ esac fi done rm -f confinc.* confmf.* -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 -printf "%s\n" "${_am_result}" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +printf '%s\n' "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test ${enable_dependency_tracking+y} @@ -4548,13 +5073,13 @@ fi depcc="$CC" am_compiler_list= -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 printf %s "checking dependency style of $depcc... " >&6; } if test ${am_cv_CC_dependencies_compiler_type+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then +else case e in #( + e) if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up @@ -4641,7 +5166,7 @@ else $as_nop # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: + # When given -MP, icc 7.0 and 7.1 complain thus: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported @@ -4658,10 +5183,11 @@ else $as_nop else am_cv_CC_dependencies_compiler_type=none fi - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +printf '%s\n' "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if @@ -4679,18 +5205,18 @@ fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC way to treat warnings as errors" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC way to treat warnings as errors" >&5 printf %s "checking for $CC way to treat warnings as errors... " >&6; } if test ${cc_cv_werror+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) if test ${cc_cv_cflags__Werror+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_save_CFLAGS="$CFLAGS" +else case e in #( + e) ac_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -4699,25 +5225,27 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "cc_cv_cflags__Werror='yes'" -else $as_nop - eval "cc_cv_cflags__Werror='no'" +else case e in #( + e) eval "cc_cv_cflags__Werror='no'" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" - + ;; +esac fi if eval test x$cc_cv_cflags__Werror = xyes then : cc_cv_werror=-Werror -else $as_nop - +else case e in #( + e) if test ${cc_cv_cflags__errwarn__all+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_save_CFLAGS="$CFLAGS" +else case e in #( + e) ac_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -errwarn=%all" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -4726,12 +5254,14 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "cc_cv_cflags__errwarn__all='yes'" -else $as_nop - eval "cc_cv_cflags__errwarn__all='no'" +else case e in #( + e) eval "cc_cv_cflags__errwarn__all='no'" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" - + ;; +esac fi @@ -4739,24 +5269,26 @@ fi then : cc_cv_werror=-errwarn=%all fi - + ;; +esac fi - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cc_cv_werror" >&5 -printf "%s\n" "$cc_cv_werror" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cc_cv_werror" >&5 +printf '%s\n' "$cc_cv_werror" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports __attribute__(( visibility(\"default\") ))" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $CC supports __attribute__(( visibility(\"default\") ))" >&5 printf %s "checking if $CC supports __attribute__(( visibility(\"default\") ))... " >&6; } if test ${cc_cv_attribute_visibility_default+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_save_CFLAGS="$CFLAGS" +else case e in #( + e) ac_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $cc_cv_werror" ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -4771,8 +5303,9 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "cc_cv_attribute_visibility_default='yes'" -else $as_nop - eval "cc_cv_attribute_visibility_default='no'" +else case e in #( + e) eval "cc_cv_attribute_visibility_default='no'" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_ext=c @@ -4782,513 +5315,610 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu CFLAGS="$ac_save_CFLAGS" - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cc_cv_attribute_visibility_default" >&5 -printf "%s\n" "$cc_cv_attribute_visibility_default" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cc_cv_attribute_visibility_default" >&5 +printf '%s\n' "$cc_cv_attribute_visibility_default" >&6; } if eval test x$cc_cv_attribute_visibility_default = xyes then : -printf "%s\n" "#define SUPPORT_ATTRIBUTE_VISIBILITY_DEFAULT 1" >>confdefs.h +printf '%s\n' "#define SUPPORT_ATTRIBUTE_VISIBILITY_DEFAULT 1" >>confdefs.h - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports -fvisibility=hidden" >&5 -printf %s "checking if $CC supports -fvisibility=hidden... " >&6; } -if test ${cc_cv_flag_visibility+y} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $CC supports -fvisibility=hidden flag" >&5 +printf %s "checking if $CC supports -fvisibility=hidden flag... " >&6; } +if test ${cc_cv_cflags_werror__fvisibility_hidden+y} then : printf %s "(cached) " >&6 -else $as_nop - cc_flag_visibility_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" +else case e in #( + e) - if test ${cc_cv_cflags__fvisibility_hidden+y} + if test ${cc_cv_cflags_werror__fvisibility_hidden+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fvisibility=hidden" +else case e in #( + e) ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror -fvisibility=hidden" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int a; _ACEOF if ac_fn_c_try_compile "$LINENO" then : - eval "cc_cv_cflags__fvisibility_hidden='yes'" -else $as_nop - eval "cc_cv_cflags__fvisibility_hidden='no'" + eval "cc_cv_cflags_werror__fvisibility_hidden='yes'" +else case e in #( + e) eval "cc_cv_cflags_werror__fvisibility_hidden='no'" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" - + ;; +esac fi - if eval test x$cc_cv_cflags__fvisibility_hidden = xyes + if eval test x$cc_cv_cflags_werror__fvisibility_hidden = xyes then : - cc_cv_flag_visibility='yes' -else $as_nop - cc_cv_flag_visibility='no' -fi - CFLAGS="$cc_flag_visibility_save_CFLAGS" fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cc_cv_flag_visibility" >&5 -printf "%s\n" "$cc_cv_flag_visibility" >&6; } + ;; +esac +fi +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cc_cv_cflags_werror__fvisibility_hidden" >&5 +printf '%s\n' "$cc_cv_cflags_werror__fvisibility_hidden" >&6; } - if test "x$cc_cv_flag_visibility" = "xyes" + if eval test x$cc_cv_cflags_werror__fvisibility_hidden = xyes then : + AM_CFLAGS="$AM_CFLAGS -fvisibility=hidden"; DEBUG_CFLAGS="$DEBUG_CFLAGS -fvisibility=hidden"; +fi -printf "%s\n" "#define SUPPORT_FLAG_VISIBILITY 1" >>confdefs.h - CFLAGS="${CFLAGS} -fvisibility=hidden" -fi fi +# Xlc has a flag "-f". Need to use CC_CHECK_FLAG_SUPPORTED_APPEND so +# we exclude -fno-strict-aliasing for xlc - for flag in -fno-strict-aliasing; do - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 -printf %s "checking if $CC supports $flag flag... " >&6; } -if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $CC supports -fno-strict-aliasing flag" >&5 +printf %s "checking if $CC supports -fno-strict-aliasing flag... " >&6; } +if test ${cc_cv_cflags__fno_strict_aliasing+y} then : printf %s "(cached) " >&6 -else $as_nop - - if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } +else case e in #( + e) + if test ${cc_cv_cflags__fno_strict_aliasing+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $flag" +else case e in #( + e) ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fno-strict-aliasing" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int a; _ACEOF if ac_fn_c_try_compile "$LINENO" then : - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" -else $as_nop - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='no'" + eval "cc_cv_cflags__fno_strict_aliasing='yes'" +else case e in #( + e) eval "cc_cv_cflags__fno_strict_aliasing='no'" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" + ;; +esac +fi + + if eval test x$cc_cv_cflags__fno_strict_aliasing = xyes +then : + +fi + ;; +esac fi +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cc_cv_cflags__fno_strict_aliasing" >&5 +printf '%s\n' "$cc_cv_cflags__fno_strict_aliasing" >&6; } + if eval test x$cc_cv_cflags__fno_strict_aliasing = xyes +then : - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $CC supports -fno-strict-aliasing flag" >&5 +printf %s "checking if $CC supports -fno-strict-aliasing flag... " >&6; } +if test ${cc_cv_ldflags__fno_strict_aliasing+y} then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -fno-strict-aliasing" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 1; } +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "cc_cv_ldflags__fno_strict_aliasing='yes'" +else case e in #( + e) eval "cc_cv_ldflags__fno_strict_aliasing=" ;; +esac fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + LDFLAGS="$ac_save_LDFLAGS" + ;; +esac fi -eval ac_res=\$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cc_cv_ldflags__fno_strict_aliasing" >&5 +printf '%s\n' "$cc_cv_ldflags__fno_strict_aliasing" >&6; } - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + if eval test x$cc_cv_ldflags__fno_strict_aliasing = xyes then : - CFLAGS="$CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; + AM_CFLAGS="$AM_CFLAGS -fno-strict-aliasing"; + DEBUG_CFLAGS="$DEBUG_CFLAGS -fno-strict-aliasing"; + + +fi + + fi - done for flag in -g; do - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 printf %s "checking if $CC supports $flag flag... " >&6; } -if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } +if { as_var=`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop +else case e in #( + e) - if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } + if { as_var=`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $flag" +else case e in #( + e) ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror $flag" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int a; _ACEOF if ac_fn_c_try_compile "$LINENO" then : - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" -else $as_nop - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='no'" + eval "`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`='yes'" +else case e in #( + e) eval "`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`='no'" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" - + ;; +esac fi - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + if eval test x$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` = xyes then : fi - + ;; +esac fi -eval ac_res=\$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } +eval ac_res=\$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf '%s\n' "$ac_res" >&6; } - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + if eval test x$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` = xyes then : - CFLAGS="$CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; + AM_CFLAGS="$AM_CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; fi + + done - for flag in -std=gnu89; do + for flag in -std=gnu11; do - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 printf %s "checking if $CC supports $flag flag... " >&6; } -if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } +if { as_var=`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop +else case e in #( + e) - if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } + if { as_var=`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $flag" +else case e in #( + e) ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror $flag" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int a; _ACEOF if ac_fn_c_try_compile "$LINENO" then : - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" -else $as_nop - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='no'" + eval "`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`='yes'" +else case e in #( + e) eval "`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`='no'" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" - + ;; +esac fi - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + if eval test x$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` = xyes then : fi - + ;; +esac fi -eval ac_res=\$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } +eval ac_res=\$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf '%s\n' "$ac_res" >&6; } - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + if eval test x$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` = xyes then : - CFLAGS="$CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; + AM_CFLAGS="$AM_CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; fi + + done for flag in -Wall; do - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 printf %s "checking if $CC supports $flag flag... " >&6; } -if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } +if { as_var=`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop +else case e in #( + e) - if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } + if { as_var=`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $flag" +else case e in #( + e) ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror $flag" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int a; _ACEOF if ac_fn_c_try_compile "$LINENO" then : - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" -else $as_nop - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='no'" + eval "`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`='yes'" +else case e in #( + e) eval "`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`='no'" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" - + ;; +esac fi - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + if eval test x$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` = xyes then : fi - + ;; +esac fi -eval ac_res=\$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } +eval ac_res=\$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf '%s\n' "$ac_res" >&6; } - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + if eval test x$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` = xyes then : - CFLAGS="$CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; + AM_CFLAGS="$AM_CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; fi + + done for flag in -Wextra; do - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 printf %s "checking if $CC supports $flag flag... " >&6; } -if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } +if { as_var=`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop +else case e in #( + e) - if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } + if { as_var=`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $flag" +else case e in #( + e) ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror $flag" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int a; _ACEOF if ac_fn_c_try_compile "$LINENO" then : - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" -else $as_nop - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='no'" + eval "`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`='yes'" +else case e in #( + e) eval "`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`='no'" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" - + ;; +esac fi - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + if eval test x$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` = xyes then : fi - + ;; +esac fi -eval ac_res=\$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } +eval ac_res=\$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf '%s\n' "$ac_res" >&6; } - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + if eval test x$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` = xyes then : - CFLAGS="$CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; + AM_CFLAGS="$AM_CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; fi + + done for flag in -Wno-long-long; do - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 printf %s "checking if $CC supports $flag flag... " >&6; } -if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } +if { as_var=`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop +else case e in #( + e) - if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } + if { as_var=`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $flag" +else case e in #( + e) ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror $flag" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int a; _ACEOF if ac_fn_c_try_compile "$LINENO" then : - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" -else $as_nop - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='no'" + eval "`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`='yes'" +else case e in #( + e) eval "`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`='no'" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" - + ;; +esac fi - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + if eval test x$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` = xyes then : fi - + ;; +esac fi -eval ac_res=\$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } +eval ac_res=\$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf '%s\n' "$ac_res" >&6; } - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + if eval test x$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` = xyes then : - CFLAGS="$CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; + AM_CFLAGS="$AM_CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; fi + + done for flag in -Wno-unused-parameter; do - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 printf %s "checking if $CC supports $flag flag... " >&6; } -if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } +if { as_var=`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop +else case e in #( + e) - if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } + if { as_var=`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $flag" +else case e in #( + e) ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror $flag" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int a; _ACEOF if ac_fn_c_try_compile "$LINENO" then : - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" -else $as_nop - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='no'" + eval "`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`='yes'" +else case e in #( + e) eval "`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`='no'" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" - + ;; +esac fi - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + if eval test x$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` = xyes then : fi - + ;; +esac fi -eval ac_res=\$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } +eval ac_res=\$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf '%s\n' "$ac_res" >&6; } - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + if eval test x$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` = xyes then : - CFLAGS="$CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; + AM_CFLAGS="$AM_CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; fi + + done for flag in -Wno-declaration-after-statement; do - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 printf %s "checking if $CC supports $flag flag... " >&6; } -if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } +if { as_var=`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop +else case e in #( + e) - if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } + if { as_var=`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $flag" +else case e in #( + e) ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror $flag" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int a; _ACEOF if ac_fn_c_try_compile "$LINENO" then : - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" -else $as_nop - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='no'" + eval "`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`='yes'" +else case e in #( + e) eval "`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`='no'" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" - + ;; +esac fi - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + if eval test x$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` = xyes then : fi - + ;; +esac fi -eval ac_res=\$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } +eval ac_res=\$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf '%s\n' "$ac_res" >&6; } - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + if eval test x$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` = xyes then : - CFLAGS="$CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; + AM_CFLAGS="$AM_CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; fi + + done for flag in -Wstrict-prototypes; do - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $CC supports $flag flag" >&5 printf %s "checking if $CC supports $flag flag... " >&6; } -if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } +if { as_var=`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop +else case e in #( + e) - if { as_var=`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`; eval test \${$as_var+y}; } + if { as_var=`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $flag" +else case e in #( + e) ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror $flag" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int a; _ACEOF if ac_fn_c_try_compile "$LINENO" then : - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='yes'" -else $as_nop - eval "`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh`='no'" + eval "`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`='yes'" +else case e in #( + e) eval "`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"`='no'" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" - + ;; +esac fi - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + if eval test x$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` = xyes then : fi - + ;; +esac fi -eval ac_res=\$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } +eval ac_res=\$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf '%s\n' "$ac_res" >&6; } - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes + if eval test x$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` = xyes then : - CFLAGS="$CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; + AM_CFLAGS="$AM_CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; fi + + done # AM_PROG_AR is not available in automake v0.11 but it's essential in v0.12. @@ -5298,13 +5928,13 @@ fi do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AR+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$AR"; then +else case e in #( + e) if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -5319,22 +5949,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi AR=$ac_cv_prog_AR if test -n "$AR"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -printf "%s\n" "$AR" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +printf '%s\n' "$AR" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -5347,13 +5978,13 @@ if test -z "$AR"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_AR+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_AR"; then +else case e in #( + e) if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -5368,22 +5999,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -printf "%s\n" "$ac_ct_AR" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +printf '%s\n' "$ac_ct_AR" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -5395,8 +6027,8 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR @@ -5404,14 +6036,15 @@ esac fi : ${AR=ar} +: ${ARFLAGS=cr} -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 printf %s "checking the archiver ($AR) interface... " >&6; } if test ${am_cv_ar_interface+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_ext=c +else case e in #( + e) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -5424,11 +6057,11 @@ int some_variable = 0; _ACEOF if ac_fn_c_try_compile "$LINENO" then : - am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' + am_ar_try='$AR $ARFLAGS libconftest.a conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=ar @@ -5437,7 +6070,7 @@ then : { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=lib @@ -5454,10 +6087,11 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 -printf "%s\n" "$am_cv_ar_interface" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 +printf '%s\n' "$am_cv_ar_interface" >&6; } case $am_cv_ar_interface in ar) @@ -5479,14 +6113,14 @@ esac # autoconf complains if AC_PROG_LIBTOOL precedes AM_PROG_AR. case `pwd` in *\ * | *\ *) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 -printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +printf '%s\n' "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac -macro_version='2.4.6' -macro_revision='2.4.6' +macro_version='2.6.0.23-b08cb' +macro_revision='2.6.0.23' @@ -5524,7 +6158,7 @@ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 printf %s "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ @@ -5551,12 +6185,12 @@ func_echo_all () } case $ECHO in - printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5 -printf "%s\n" "printf" >&6; } ;; - print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 -printf "%s\n" "print -r" >&6; } ;; - *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5 -printf "%s\n" "cat" >&6; } ;; + printf*) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +printf '%s\n' "printf" >&6; } ;; + print*) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +printf '%s\n' "print -r" >&6; } ;; + *) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +printf '%s\n' "cat" >&6; } ;; esac @@ -5572,13 +6206,13 @@ esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 printf %s "checking for a sed that does not truncate output... " >&6; } if test ${ac_cv_path_SED+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ +else case e in #( + e) ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done @@ -5603,9 +6237,10 @@ do as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in +case `"$ac_path_SED" --version 2>&1` in #( *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +#( *) ac_count=0 printf %s 0123456789 >"conftest.in" @@ -5614,7 +6249,7 @@ case `"$ac_path_SED" --version 2>&1` in cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - printf "%s\n" '' >> "conftest.nl" + printf '%s\n' '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val @@ -5640,10 +6275,11 @@ IFS=$as_save_IFS else ac_cv_path_SED=$SED fi - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -printf "%s\n" "$ac_cv_path_SED" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +printf '%s\n' "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed @@ -5660,13 +6296,13 @@ Xsed="$SED -e 1s/^X//" -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 printf %s "checking for grep that handles long lines and -e... " >&6; } if test ${ac_cv_path_GREP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -z "$GREP"; then +else case e in #( + e) if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -5685,9 +6321,10 @@ do as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in +case `"$ac_path_GREP" --version 2>&1` in #( *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +#( *) ac_count=0 printf %s 0123456789 >"conftest.in" @@ -5696,7 +6333,7 @@ case `"$ac_path_GREP" --version 2>&1` in cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - printf "%s\n" 'GREP' >> "conftest.nl" + printf '%s\n' 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val @@ -5722,20 +6359,21 @@ IFS=$as_save_IFS else ac_cv_path_GREP=$GREP fi - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -printf "%s\n" "$ac_cv_path_GREP" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +printf '%s\n' "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 printf %s "checking for egrep... " >&6; } if test ${ac_cv_path_EGREP+y} then : printf %s "(cached) " >&6 -else $as_nop - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 +else case e in #( + e) if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then @@ -5757,9 +6395,10 @@ do as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in +case `"$ac_path_EGREP" --version 2>&1` in #( *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +#( *) ac_count=0 printf %s 0123456789 >"conftest.in" @@ -5768,7 +6407,7 @@ case `"$ac_path_EGREP" --version 2>&1` in cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - printf "%s\n" 'EGREP' >> "conftest.nl" + printf '%s\n' 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val @@ -5795,20 +6434,23 @@ else ac_cv_path_EGREP=$EGREP fi - fi + fi ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -printf "%s\n" "$ac_cv_path_EGREP" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +printf '%s\n' "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" + EGREP_TRADITIONAL=$EGREP + ac_cv_path_EGREP_TRADITIONAL=$EGREP -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 printf %s "checking for fgrep... " >&6; } if test ${ac_cv_path_FGREP+y} then : printf %s "(cached) " >&6 -else $as_nop - if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 +else case e in #( + e) if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then @@ -5830,9 +6472,10 @@ do as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP -case `"$ac_path_FGREP" --version 2>&1` in +case `"$ac_path_FGREP" --version 2>&1` in #( *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +#( *) ac_count=0 printf %s 0123456789 >"conftest.in" @@ -5841,7 +6484,7 @@ case `"$ac_path_FGREP" --version 2>&1` in cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - printf "%s\n" 'FGREP' >> "conftest.nl" + printf '%s\n' 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val @@ -5868,10 +6511,11 @@ else ac_cv_path_FGREP=$FGREP fi - fi + fi ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 -printf "%s\n" "$ac_cv_path_FGREP" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +printf '%s\n' "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" @@ -5899,17 +6543,18 @@ test -z "$GREP" && GREP=grep if test ${with_gnu_ld+y} then : withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes -else $as_nop - with_gnu_ld=no +else case e in #( + e) with_gnu_ld=no ;; +esac fi ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 printf %s "checking for ld used by $CC... " >&6; } case $host in - *-*-mingw*) + *-*-mingw* | *-*-windows*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) @@ -5936,17 +6581,17 @@ printf %s "checking for ld used by $CC... " >&6; } ;; esac elif test yes = "$with_gnu_ld"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 printf %s "checking for GNU ld... " >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 printf %s "checking for non-GNU ld... " >&6; } fi if test ${lt_cv_path_LD+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -z "$LD"; then +else case e in #( + e) if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs @@ -5969,25 +6614,26 @@ else $as_nop IFS=$lt_save_ifs else lt_cv_path_LD=$LD # Let the user override the test with a path. -fi +fi ;; +esac fi LD=$lt_cv_path_LD if test -n "$LD"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 -printf "%s\n" "$LD" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 +printf '%s\n' "$LD" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 printf %s "checking if the linker ($LD) is GNU ld... " >&6; } if test ${lt_cv_prog_gnu_ld+y} then : printf %s "(cached) " >&6 -else $as_nop - # I'd rather use --version here, but apparently some GNU lds only accept -v. +else case e in #( + e) # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &1 &5 -printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 +printf '%s\n' "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld @@ -6009,13 +6656,13 @@ with_gnu_ld=$lt_cv_prog_gnu_ld -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test ${lt_cv_path_NM+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$NM"; then +else case e in #( + e) if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else @@ -6036,16 +6683,16 @@ else # Tru64's nm complains that /dev/null is an invalid object file # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in - mingw*) lt_bad_file=conftest.nm/nofile ;; + mingw* | windows*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac - case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 @@ -6062,10 +6709,11 @@ else IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} +fi ;; +esac fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 -printf "%s\n" "$lt_cv_path_NM" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +printf '%s\n' "$lt_cv_path_NM" >&6; } if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else @@ -6078,13 +6726,13 @@ else do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DUMPBIN+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$DUMPBIN"; then +else case e in #( + e) if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -6099,22 +6747,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 -printf "%s\n" "$DUMPBIN" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +printf '%s\n' "$DUMPBIN" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -6127,13 +6776,13 @@ if test -z "$DUMPBIN"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_DUMPBIN+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_DUMPBIN"; then +else case e in #( + e) if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -6148,22 +6797,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 -printf "%s\n" "$ac_ct_DUMPBIN" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +printf '%s\n' "$ac_ct_DUMPBIN" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -6175,15 +6825,15 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi - case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; @@ -6204,13 +6854,13 @@ test -z "$NM" && NM=nm -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 printf %s "checking the name lister ($NM) interface... " >&6; } if test ${lt_cv_nm_interface+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_nm_interface="BSD nm" +else case e in #( + e) lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) @@ -6223,30 +6873,31 @@ else $as_nop if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi - rm -f conftest* + rm -f conftest* ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 -printf "%s\n" "$lt_cv_nm_interface" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +printf '%s\n' "$lt_cv_nm_interface" >&6; } -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 printf %s "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf '%s\n' "yes" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -printf "%s\n" "no, using $LN_S" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +printf '%s\n' "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 printf %s "checking the maximum length of command line arguments... " >&6; } if test ${lt_cv_sys_max_cmd_len+y} then : printf %s "(cached) " >&6 -else $as_nop - i=0 +else case e in #( + e) i=0 teststring=ABCD case $build_os in @@ -6258,14 +6909,14 @@ else $as_nop lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. + gnu* | ironclad*) + # Under GNU Hurd and Ironclad, this test is not required because there + # is no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; - cygwin* | mingw* | cegcc*) + cygwin* | mingw* | windows* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, @@ -6287,7 +6938,7 @@ else $as_nop lt_cv_sys_max_cmd_len=8192; ;; - bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` @@ -6330,7 +6981,7 @@ else $as_nop sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi @@ -6368,15 +7019,16 @@ else $as_nop fi ;; esac - + ;; +esac fi if test -n "$lt_cv_sys_max_cmd_len"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 -printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +printf '%s\n' "$lt_cv_sys_max_cmd_len" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 -printf "%s\n" "none" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none" >&5 +printf '%s\n' "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len @@ -6420,16 +7072,16 @@ esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 printf %s "checking how to convert $build file names to $host format... " >&6; } if test ${lt_cv_to_host_file_cmd+y} then : printf %s "(cached) " >&6 -else $as_nop - case $host in +else case e in #( + e) case $host in *-*-mingw* ) case $build in - *-*-mingw* ) # actually msys + *-*-mingw* | *-*-windows* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) @@ -6442,7 +7094,7 @@ else $as_nop ;; *-*-cygwin* ) case $build in - *-*-mingw* ) # actually msys + *-*-mingw* | *-*-windows* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) @@ -6457,55 +7109,120 @@ else $as_nop lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac - + ;; +esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +printf '%s\n' "$lt_cv_to_host_file_cmd" >&6; } -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 printf %s "checking how to convert $build file names to toolchain format... " >&6; } if test ${lt_cv_to_tool_file_cmd+y} then : printf %s "(cached) " >&6 -else $as_nop - #assume ordinary cross tools, or native build. +else case e in #( + e) #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in - *-*-mingw* ) + *-*-mingw* | *-*-windows* ) case $build in - *-*-mingw* ) # actually msys + *-*-mingw* | *-*-windows* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac - + ;; +esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +printf '%s\n' "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +case $host in + *-*-mingw* | *-*-windows* | *-*-cygwin*) case $build in + *-*-mingw* | *-*-windows* | *-*-cygwin*) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether cygpath is installed" >&5 +printf %s "checking whether cygpath is installed... " >&6; } + if test ${lt_cv_cygpath_installed+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_cygpath_installed=ignoring + cygpath --help &> /dev/null + _lt_result=$? + if test 0 = "$_lt_result" +then : + lt_cv_cygpath_installed=yes +else case e in #( + e) lt_cv_cygpath_installed=no ;; +esac +fi + ;; +esac +fi + + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cygpath_installed" >&5 +printf '%s\n' "$lt_cv_cygpath_installed" >&6; } + + + if test "xyes" != "x$lt_cv_cygpath_installed" +then : + + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to use cmd with one slash or two slashes" >&5 +printf %s "checking whether to use cmd with one slash or two slashes... " >&6; } + if test ${lt_cv_cmd_slashes+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + _lt_result=`cmd /c echo one-slash works. Not checked //c echo two-slashes 2>/dev/null` + if test 0 != $? +then : + as_fn_error $? "Do not know how to convert paths" "$LINENO" 5 +fi + case $_lt_result in + one-slash*) lt_cv_cmd_slashes="one" ;; + two-slashes*) lt_cv_cmd_slashes="two" ;; + *) as_fn_error $? "Do not know how to convert paths" "$LINENO" 5 + ;; +esac + ;; +esac +fi + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cmd_slashes" >&5 +printf '%s\n' "$lt_cv_cmd_slashes" >&6; } +fi + ;; +esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 + ;; +esac +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 printf %s "checking for $LD option to reload object files... " >&6; } if test ${lt_cv_ld_reload_flag+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_ld_reload_flag='-r' +else case e in #( + e) lt_cv_ld_reload_flag='-r' ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 -printf "%s\n" "$lt_cv_ld_reload_flag" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +printf '%s\n' "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; @@ -6513,14 +7230,14 @@ case $reload_flag in esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | mingw* | windows* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) if test yes = "$GCC"; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' + reload_cmds='$LTCC $LTCFLAGS $stdlibflag $wl-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi @@ -6535,16 +7252,66 @@ esac +# Extract the first word of "file", so it can be a program name with args. +set dummy file; ac_word=$2 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_FILECMD+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$FILECMD"; then + ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_FILECMD="file" + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_FILECMD" && ac_cv_prog_FILECMD=":" +fi ;; +esac +fi +FILECMD=$ac_cv_prog_FILECMD +if test -n "$FILECMD"; then + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5 +printf '%s\n' "$FILECMD" >&6; } +else + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } +fi + + + + + + + + if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OBJDUMP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$OBJDUMP"; then +else case e in #( + e) if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -6559,22 +7326,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -printf "%s\n" "$OBJDUMP" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +printf '%s\n' "$OBJDUMP" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -6583,13 +7351,13 @@ if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_OBJDUMP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_OBJDUMP"; then +else case e in #( + e) if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -6604,22 +7372,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -printf "%s\n" "$ac_ct_OBJDUMP" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +printf '%s\n' "$ac_ct_OBJDUMP" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then @@ -6627,8 +7396,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP @@ -6647,13 +7416,13 @@ test -z "$OBJDUMP" && OBJDUMP=objdump -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 printf %s "checking how to recognize dependent libraries... " >&6; } if test ${lt_cv_deplibs_check_method+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_file_magic_cmd='$MAGIC_CMD' +else case e in #( + e) lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support @@ -6661,7 +7430,6 @@ lt_cv_deplibs_check_method='unknown' # 'none' -- dependencies not supported. # 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # that responds to the $file_magic_cmd with a given extended regex. # If you have 'file' or equivalent on your system and you're not sure @@ -6678,7 +7446,7 @@ beos*) bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_cmd='$FILECMD -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; @@ -6688,7 +7456,7 @@ cygwin*) lt_cv_file_magic_cmd='func_win32_libid' ;; -mingw* | pw32*) +mingw* | windows* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. @@ -6697,7 +7465,7 @@ mingw* | pw32*) lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. - lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|pe-aarch64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; @@ -6712,14 +7480,14 @@ darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac @@ -6733,7 +7501,7 @@ haiku*) ;; hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' @@ -6765,12 +7533,16 @@ irix5* | irix6* | nonstopux*) lt_cv_deplibs_check_method=pass_all ;; +*-mlibc) + lt_cv_deplibs_check_method=pass_all + ;; + # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; -netbsd*) +netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else @@ -6780,7 +7552,7 @@ netbsd*) newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; @@ -6788,7 +7560,7 @@ newos6*) lt_cv_deplibs_check_method=pass_all ;; -openbsd* | bitrig*) +openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else @@ -6804,6 +7576,10 @@ rdos*) lt_cv_deplibs_check_method=pass_all ;; +serenity*) + lt_cv_deplibs_check_method=pass_all + ;; + solaris*) lt_cv_deplibs_check_method=pass_all ;; @@ -6846,16 +7622,17 @@ os2*) lt_cv_deplibs_check_method=pass_all ;; esac - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 -printf "%s\n" "$lt_cv_deplibs_check_method" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +printf '%s\n' "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in - mingw* | pw32*) + mingw* | windows* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else @@ -6893,13 +7670,13 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DLLTOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$DLLTOOL"; then +else case e in #( + e) if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -6914,22 +7691,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -printf "%s\n" "$DLLTOOL" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +printf '%s\n' "$DLLTOOL" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -6938,13 +7716,13 @@ if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_DLLTOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_DLLTOOL"; then +else case e in #( + e) if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -6959,22 +7737,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -printf "%s\n" "$ac_ct_DLLTOOL" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +printf '%s\n' "$ac_ct_DLLTOOL" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then @@ -6982,8 +7761,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL @@ -7003,16 +7782,16 @@ test -z "$DLLTOOL" && DLLTOOL=dlltool -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 printf %s "checking how to associate runtime and link libraries... " >&6; } if test ${lt_cv_sharedlib_from_linklib_cmd+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_sharedlib_from_linklib_cmd='unknown' +else case e in #( + e) lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | mingw* | windows* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in @@ -7029,10 +7808,11 @@ cygwin* | mingw* | pw32* | cegcc*) lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +printf '%s\n' "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO @@ -7043,18 +7823,16 @@ test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then - for ac_prog in ar - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_AR+y} +if test ${ac_cv_prog_RANLIB+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. +else case e in #( + e) if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -7067,43 +7845,40 @@ do esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS +fi ;; +esac fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -printf "%s\n" "$AR" >&6; } +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +printf '%s\n' "$RANLIB" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi - test -n "$AR" && break - done fi -if test -z "$AR"; then - ac_ct_AR=$AR - for ac_prog in ar -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_AR+y} +if test ${ac_cv_prog_ac_ct_RANLIB+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else case e in #( + e) if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -7116,62 +7891,189 @@ do esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AR="$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + ac_cv_prog_ac_ct_RANLIB="ranlib" + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS +fi ;; +esac fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -printf "%s\n" "$ac_ct_AR" >&6; } +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +printf '%s\n' "$ac_ct_RANLIB" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi - - test -n "$ac_ct_AR" && break -done - - if test "x$ac_ct_AR" = x; then - AR="false" + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - AR=$ac_ct_AR + RANLIB=$ac_ct_RANLIB fi +else + RANLIB="$ac_cv_prog_RANLIB" fi -: ${AR=ar} -: ${AR_FLAGS=cru} - - - - - - - - - - +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AR+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +printf '%s\n' "$AR" >&6; } +else + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AR+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +printf '%s\n' "$ac_ct_AR" >&6; } +else + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} + -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 + + + + +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because that's what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS + + + + + + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. + + + + + + +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 printf %s "checking for archiver @FILE support... " >&6; } if test ${lt_cv_ar_at_file+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_ar_at_file=no +else case e in #( + e) lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -7190,7 +8092,7 @@ then : { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. @@ -7198,7 +8100,7 @@ then : { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ @@ -7208,10 +8110,11 @@ then : fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -printf "%s\n" "$lt_cv_ar_at_file" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +printf '%s\n' "$lt_cv_ar_at_file" >&6; } if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= @@ -7228,13 +8131,13 @@ fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_STRIP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$STRIP"; then +else case e in #( + e) if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7249,22 +8152,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -printf "%s\n" "$STRIP" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +printf '%s\n' "$STRIP" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -7273,13 +8177,13 @@ if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_STRIP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_STRIP"; then +else case e in #( + e) if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7294,22 +8198,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -printf "%s\n" "$ac_ct_STRIP" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +printf '%s\n' "$ac_ct_STRIP" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then @@ -7317,8 +8222,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP @@ -7334,107 +8239,6 @@ test -z "$STRIP" && STRIP=: -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_RANLIB+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -printf "%s\n" "$RANLIB" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_RANLIB+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -printf "%s\n" "$ac_ct_RANLIB" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi test -z "$RANLIB" && RANLIB=: @@ -7449,15 +8253,8 @@ old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then - case $host_os in - bitrig* | openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" - ;; - esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in @@ -7516,13 +8313,13 @@ compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 printf %s "checking command to parse $NM output from $compiler object... " >&6; } if test ${lt_cv_sys_global_symbol_pipe+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] @@ -7537,7 +8334,7 @@ case $host_os in aix*) symcode='[BCDT]' ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | mingw* | windows* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) @@ -7552,7 +8349,7 @@ osf*) symcode='[BCDEGQRST]' ;; solaris*) - symcode='[BDRT]' + symcode='[BCDRT]' ;; sco3.2v5*) symcode='[DT]' @@ -7576,13 +8373,13 @@ esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. - lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \([a-zA-Z_][a-zA-Z0-9_]*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. - lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" - lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_cdecl_hook=" -e 's/^I .* \([a-zA-Z_][a-zA-Z0-9_]*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \([a-zA-Z_][a-zA-Z0-9_]*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ - -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ - -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" + -e 's/^I .* \(lib[a-zA-Z_][a-zA-Z0-9_]*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \([a-zA-Z_][a-zA-Z0-9_]*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= @@ -7594,29 +8391,29 @@ fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +lt_cv_sys_global_symbol_to_cdecl="$SED -n"\ $lt_cdecl_hook\ -" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ -" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" +" -e 's/^T .* \([a-zA-Z_][a-zA-Z0-9_]*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \([a-zA-Z_][a-zA-Z0-9_]*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ -" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" +" -e 's/^$symcode$symcode* .* \([a-zA-Z_][a-zA-Z0-9_]*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ -" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ -" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" +" -e 's/^$symcode$symcode* .* \(lib[a-zA-Z_][a-zA-Z0-9_]*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \([a-zA-Z_][a-zA-Z0-9_]*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in -mingw*) +mingw* | windows*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac @@ -7631,9 +8428,11 @@ for ac_symprfx in "" "_"; do if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. - # Also find C++ and __fastcall symbols from MSVC++, - # which start with @ or ?. + # Also find C++ and __fastcall symbols from MSVC++ or ICC, + # which start with @ or ?. And Cygwin gawk-4.1.4-3 and newer + # treats input as binary, have to drop carriage return first. lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {sub(/\\r\$/,\"\")};"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ @@ -7649,9 +8448,9 @@ for ac_symprfx in "" "_"; do " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no @@ -7667,21 +8466,18 @@ void nm_test_func(void){} #ifdef __cplusplus } #endif -int main(){nm_test_var='a';nm_test_func();return(0);} +int main(void){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 - (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "$nlist"; then + $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5 + if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" @@ -7749,7 +8545,7 @@ _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then pipe_works=yes fi @@ -7777,18 +8573,19 @@ _LT_EOF lt_cv_sys_global_symbol_pipe= fi done - + ;; +esac fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5 -printf "%s\n" "failed" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +printf '%s\n' "failed" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -printf "%s\n" "ok" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +printf '%s\n' "ok" >&6; } fi # Response file support. @@ -7834,15 +8631,16 @@ fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 printf %s "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test ${with_sysroot+y} then : withval=$with_sysroot; -else $as_nop - with_sysroot=no +else case e in #( + e) with_sysroot=no ;; +esac fi @@ -7850,35 +8648,37 @@ lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then - lt_sysroot=`$CC --print-sysroot 2>/dev/null` + # Trim trailing / since we'll always append absolute paths and we want + # to avoid //, if only for less confusing output for the user. + lt_sysroot=`$CC --print-sysroot 2>/dev/null | $SED 's:/\+$::'` fi ;; #( /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 -printf "%s\n" "$with_sysroot" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 +printf '%s\n' "$with_sysroot" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -printf "%s\n" "${lt_sysroot:-no}" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +printf '%s\n' "${lt_sysroot:-no}" >&6; } -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 printf %s "checking for a working dd... " >&6; } if test ${ac_cv_path_lt_DD+y} then : printf %s "(cached) " >&6 -else $as_nop - printf 0123456789abcdef0123456789abcdef >conftest.i +else case e in #( + e) printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} if test -z "$lt_DD"; then @@ -7914,19 +8714,20 @@ else ac_cv_path_lt_DD=$lt_DD fi -rm -f conftest.i conftest2.i conftest.out +rm -f conftest.i conftest2.i conftest.out ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 -printf "%s\n" "$ac_cv_path_lt_DD" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 +printf '%s\n' "$ac_cv_path_lt_DD" >&6; } -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 printf %s "checking how to truncate binary pipes... " >&6; } if test ${lt_cv_truncate_bin+y} then : printf %s "(cached) " >&6 -else $as_nop - printf 0123456789abcdef0123456789abcdef >conftest.i +else case e in #( + e) printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then @@ -7934,10 +8735,11 @@ if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; the && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out -test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 -printf "%s\n" "$lt_cv_truncate_bin" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 +printf '%s\n' "$lt_cv_truncate_bin" >&6; } @@ -7977,9 +8779,9 @@ ia64-*-hpux*) if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; @@ -7997,10 +8799,10 @@ ia64-*-hpux*) if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test yes = "$lt_cv_prog_gnu_ld"; then - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; @@ -8012,7 +8814,7 @@ ia64-*-hpux*) ;; esac else - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; @@ -8035,10 +8837,10 @@ mips64*-*linux*) if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then emul=elf - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; @@ -8046,7 +8848,7 @@ mips64*-*linux*) emul="${emul}64" ;; esac - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; @@ -8054,7 +8856,7 @@ mips64*-*linux*) emul="${emul}ltsmip" ;; esac - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; @@ -8065,7 +8867,7 @@ mips64*-*linux*) ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) +s390*-*linux*|s390*-*tpf*|sparc*-*linux*|x86_64-gnu*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when @@ -8076,16 +8878,16 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; - x86_64-*linux*) - case `/usr/bin/file conftest.o` in + x86_64-*linux*|x86_64-gnu*) + case `$FILECMD conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; @@ -8113,7 +8915,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; - x86_64-*linux*) + x86_64-*linux*|x86_64-gnu*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) @@ -8139,13 +8941,13 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 printf %s "checking whether the C compiler needs -belf... " >&6; } if test ${lt_cv_cc_needs_belf+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_ext=c +else case e in #( + e) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -8165,8 +8967,9 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_cc_needs_belf=yes -else $as_nop - lt_cv_cc_needs_belf=no +else case e in #( + e) lt_cv_cc_needs_belf=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext @@ -8175,10 +8978,11 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 -printf "%s\n" "$lt_cv_cc_needs_belf" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +printf '%s\n' "$lt_cv_cc_needs_belf" >&6; } if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS @@ -8191,9 +8995,9 @@ printf "%s\n" "$lt_cv_cc_needs_belf" >&6; } if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) @@ -8228,13 +9032,13 @@ need_locks=$enable_libtool_lock if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_MANIFEST_TOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$MANIFEST_TOOL"; then +else case e in #( + e) if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -8249,22 +9053,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -printf "%s\n" "$MANIFEST_TOOL" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +printf '%s\n' "$MANIFEST_TOOL" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -8273,13 +9078,13 @@ if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_MANIFEST_TOOL"; then +else case e in #( + e) if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -8294,22 +9099,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +printf '%s\n' "$ac_ct_MANIFEST_TOOL" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then @@ -8317,8 +9123,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL @@ -8328,24 +9134,25 @@ else fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -if test ${lt_cv_path_mainfest_tool+y} +if test ${lt_cv_path_manifest_tool+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_path_mainfest_tool=no +else case e in #( + e) lt_cv_path_manifest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then - lt_cv_path_mainfest_tool=yes + lt_cv_path_manifest_tool=yes fi - rm -f conftest* + rm -f conftest* ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; } -if test yes != "$lt_cv_path_mainfest_tool"; then +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_manifest_tool" >&5 +printf '%s\n' "$lt_cv_path_manifest_tool" >&6; } +if test yes != "$lt_cv_path_manifest_tool"; then MANIFEST_TOOL=: fi @@ -8359,13 +9166,13 @@ fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DSYMUTIL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$DSYMUTIL"; then +else case e in #( + e) if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -8380,22 +9187,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 -printf "%s\n" "$DSYMUTIL" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +printf '%s\n' "$DSYMUTIL" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -8404,13 +9212,13 @@ if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_DSYMUTIL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_DSYMUTIL"; then +else case e in #( + e) if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -8425,22 +9233,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 -printf "%s\n" "$ac_ct_DSYMUTIL" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +printf '%s\n' "$ac_ct_DSYMUTIL" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then @@ -8448,8 +9257,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL @@ -8461,13 +9270,13 @@ fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_NMEDIT+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$NMEDIT"; then +else case e in #( + e) if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -8482,22 +9291,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 -printf "%s\n" "$NMEDIT" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +printf '%s\n' "$NMEDIT" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -8506,13 +9316,13 @@ if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_NMEDIT+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_NMEDIT"; then +else case e in #( + e) if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -8527,22 +9337,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 -printf "%s\n" "$ac_ct_NMEDIT" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +printf '%s\n' "$ac_ct_NMEDIT" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then @@ -8550,8 +9361,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT @@ -8563,13 +9374,13 @@ fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_LIPO+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$LIPO"; then +else case e in #( + e) if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -8584,22 +9395,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 -printf "%s\n" "$LIPO" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +printf '%s\n' "$LIPO" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -8608,13 +9420,13 @@ if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_LIPO+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_LIPO"; then +else case e in #( + e) if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -8629,22 +9441,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 -printf "%s\n" "$ac_ct_LIPO" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +printf '%s\n' "$ac_ct_LIPO" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then @@ -8652,8 +9465,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO @@ -8665,13 +9478,13 @@ fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OTOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$OTOOL"; then +else case e in #( + e) if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -8686,22 +9499,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 -printf "%s\n" "$OTOOL" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +printf '%s\n' "$OTOOL" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -8710,13 +9524,13 @@ if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_OTOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_OTOOL"; then +else case e in #( + e) if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -8731,22 +9545,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 -printf "%s\n" "$ac_ct_OTOOL" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +printf '%s\n' "$ac_ct_OTOOL" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then @@ -8754,8 +9569,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL @@ -8767,13 +9582,13 @@ fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OTOOL64+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$OTOOL64"; then +else case e in #( + e) if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -8788,22 +9603,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 -printf "%s\n" "$OTOOL64" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +printf '%s\n' "$OTOOL64" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -8812,13 +9628,13 @@ if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_OTOOL64+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_OTOOL64"; then +else case e in #( + e) if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -8833,22 +9649,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 -printf "%s\n" "$ac_ct_OTOOL64" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +printf '%s\n' "$ac_ct_OTOOL64" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then @@ -8856,8 +9673,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 @@ -8892,13 +9709,13 @@ fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 printf %s "checking for -single_module linker flag... " >&6; } if test ${lt_cv_apple_cc_single_mod+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_apple_cc_single_mod=no +else case e in #( + e) lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE @@ -8924,18 +9741,58 @@ else $as_nop fi rm -rf libconftest.dylib* rm -f conftest.* - fi + fi ;; +esac +fi +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +printf '%s\n' "$lt_cv_apple_cc_single_mod" >&6; } + + # Feature test to disable chained fixups since it is not + # compatible with '-undefined dynamic_lookup' + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for -no_fixup_chains linker flag" >&5 +printf %s "checking for -no_fixup_chains linker flag... " >&6; } +if test ${lt_cv_support_no_fixup_chains+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-no_fixup_chains" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + lt_cv_support_no_fixup_chains=yes +else case e in #( + e) lt_cv_support_no_fixup_chains=no + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 -printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_support_no_fixup_chains" >&5 +printf '%s\n' "$lt_cv_support_no_fixup_chains" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 printf %s "checking for -exported_symbols_list linker flag... " >&6; } if test ${lt_cv_ld_exported_symbols_list+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_ld_exported_symbols_list=no +else case e in #( + e) lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" @@ -8953,35 +9810,37 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_ld_exported_symbols_list=yes -else $as_nop - lt_cv_ld_exported_symbols_list=no +else case e in #( + e) lt_cv_ld_exported_symbols_list=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 -printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +printf '%s\n' "$lt_cv_ld_exported_symbols_list" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 printf %s "checking for -force_load linker flag... " >&6; } if test ${lt_cv_ld_force_load+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_ld_force_load=no +else case e in #( + e) lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5 + $AR $AR_FLAGS libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF -int main() { return 0;} +int main(void) { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err @@ -8995,27 +9854,47 @@ _LT_EOF fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 -printf "%s\n" "$lt_cv_ld_force_load" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +printf '%s\n' "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) - case ${MACOSX_DEPLOYMENT_TARGET},$host in - 10.[012],*|,*powerpc*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - *) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + case $MACOSX_DEPLOYMENT_TARGET,$host in + 10.[012],*|,*powerpc*-darwin[5-8]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + *) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' + if test yes = "$lt_cv_support_no_fixup_chains"; then + as_fn_append _lt_dar_allow_undefined ' $wl-no_fixup_chains' + fi + ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi + _lt_dar_needs_single_mod=no + case $host_os in + rhapsody* | darwin1.*) + _lt_dar_needs_single_mod=yes ;; + darwin*) + # When targeting Mac OS X 10.4 (darwin 8) or later, + # -single_module is the default and -multi_module is unsupported. + # The toolchain on macOS 10.14 (darwin 18) and later cannot + # target any OS version that needs -single_module. + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*-darwin[567].*|10.[0-3],*-darwin[5-9].*|10.[0-3],*-darwin1[0-7].*) + _lt_dar_needs_single_mod=yes ;; + esac + ;; + esac if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else @@ -9070,7 +9949,7 @@ do if test $ac_cache; then ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then - printf "%s\n" "#define $ac_item 1" >> confdefs.h + printf '%s\n' "#define $ac_item 1" >> confdefs.h fi ac_header= ac_cache= elif test $ac_header; then @@ -9090,14 +9969,14 @@ done if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes then : -printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h +printf '%s\n' "#define STDC_HEADERS 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes then : - printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h + printf '%s\n' "#define HAVE_DLFCN_H 1" >>confdefs.h fi @@ -9117,28 +9996,90 @@ fi - -# Check whether --with-pic was given. + # Check whether --enable-pic was given. +if test ${enable_pic+y} +then : + enableval=$enable_pic; lt_p=${PACKAGE-default} + case $enableval in + yes|no) pic_mode=$enableval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else case e in #( + e) # Check whether --with-pic was given. if test ${with_pic+y} then : withval=$with_pic; lt_p=${PACKAGE-default} - case $withval in - yes|no) pic_mode=$withval ;; + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else case e in #( + e) pic_mode=default ;; +esac +fi + + ;; +esac +fi + + + + + + + + + stdlibflag=-nostdlib +# Check whether --enable-cxx-stdlib was given. +if test ${enable_cxx_stdlib+y} +then : + enableval=$enable_cxx_stdlib; p=${PACKAGE-default} + case $enableval in + yes) enable_cxx_stdlib=yes ;; + no) enable_cxx_stdlib=no ;; *) - pic_mode=default + enable_cxx_stdlib=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for lt_pkg in $withval; do + for pkg in $enableval; do IFS=$lt_save_ifs - if test "X$lt_pkg" = "X$lt_p"; then - pic_mode=yes + if test "X$pkg" = "X$p"; then + enable_cxx_stdlib=yes fi done IFS=$lt_save_ifs ;; esac -else $as_nop - pic_mode=default +else case e in #( + e) enable_cxx_stdlib=no ;; +esac +fi + + +if test yes = "$enable_cxx_stdlib"; then + stdlibflag= fi @@ -9148,6 +10089,9 @@ fi + + + # Check whether --enable-fast-install was given. if test ${enable_fast_install+y} then : @@ -9168,8 +10112,9 @@ then : IFS=$lt_save_ifs ;; esac -else $as_nop - enable_fast_install=yes +else case e in #( + e) enable_fast_install=yes ;; +esac fi @@ -9182,33 +10127,50 @@ fi shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[5-9]*,yes) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 printf %s "checking which variant of shared library versioning to provide... " >&6; } - -# Check whether --with-aix-soname was given. + # Check whether --enable-aix-soname was given. +if test ${enable_aix_soname+y} +then : + enableval=$enable_aix_soname; case $enableval in + aix|svr4|both) + ;; + *) + as_fn_error $? "Unknown argument to --enable-aix-soname" "$LINENO" 5 + ;; + esac + lt_cv_with_aix_soname=$enable_aix_soname +else case e in #( + e) # Check whether --with-aix-soname was given. if test ${with_aix_soname+y} then : withval=$with_aix_soname; case $withval in - aix|svr4|both) - ;; - *) - as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 - ;; - esac - lt_cv_with_aix_soname=$with_aix_soname -else $as_nop - if test ${lt_cv_with_aix_soname+y} + aix|svr4|both) + ;; + *) + as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname +else case e in #( + e) if test ${lt_cv_with_aix_soname+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_with_aix_soname=aix +else case e in #( + e) lt_cv_with_aix_soname=aix ;; +esac +fi + ;; +esac fi - with_aix_soname=$lt_cv_with_aix_soname + enable_aix_soname=$lt_cv_with_aix_soname ;; +esac fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 -printf "%s\n" "$with_aix_soname" >&6; } + with_aix_soname=$enable_aix_soname + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 +printf '%s\n' "$with_aix_soname" >&6; } if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', @@ -9222,8 +10184,21 @@ printf "%s\n" "$with_aix_soname" >&6; } fi fi ;; +power*-*-aix[5-9]*,'') + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: for $host, specify if building shared libraries for versioning (svr4|both)" >&5 +printf '%s\n' "$as_me: WARNING: for $host, specify if building shared libraries for versioning (svr4|both)" >&2;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +printf %s "checking which variant of shared library versioning to provide... " >&6; } + with_aix_soname=aix + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: (default) $with_aix_soname" >&5 +printf '%s\n' "(default) $with_aix_soname" >&6; } + ;; *) + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +printf %s "checking which variant of shared library versioning to provide... " >&6; } with_aix_soname=aix + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: (default) $with_aix_soname" >&5 +printf '%s\n' "(default) $with_aix_soname" >&6; } ;; esac @@ -9290,13 +10265,13 @@ if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 printf %s "checking for objdir... " >&6; } if test ${lt_cv_objdir+y} then : printf %s "(cached) " >&6 -else $as_nop - rm -f .libs 2>/dev/null +else case e in #( + e) rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs @@ -9304,17 +10279,18 @@ else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi -rmdir .libs 2>/dev/null +rmdir .libs 2>/dev/null ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 -printf "%s\n" "$lt_cv_objdir" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +printf '%s\n' "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir -printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h +printf '%s\n' "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h @@ -9335,8 +10311,8 @@ esac ofile=libtool can_build_shared=yes -# All known linkers require a '.a' archive for static linking (except MSVC, -# which needs '.lib'). +# All known linkers require a '.a' archive for static linking (except MSVC and +# ICC, which need '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld @@ -9360,13 +10336,13 @@ test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 printf %s "checking for ${ac_tool_prefix}file... " >&6; } if test ${lt_cv_path_MAGIC_CMD+y} then : printf %s "(cached) " >&6 -else $as_nop - case $MAGIC_CMD in +else case e in #( + e) case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; @@ -9409,16 +10385,17 @@ _LT_EOF IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; +esac ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -printf "%s\n" "$MAGIC_CMD" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +printf '%s\n' "$MAGIC_CMD" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -9427,13 +10404,13 @@ fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for file" >&5 printf %s "checking for file... " >&6; } if test ${lt_cv_path_MAGIC_CMD+y} then : printf %s "(cached) " >&6 -else $as_nop - case $MAGIC_CMD in +else case e in #( + e) case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; @@ -9476,16 +10453,17 @@ _LT_EOF IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; +esac ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -printf "%s\n" "$MAGIC_CMD" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +printf '%s\n' "$MAGIC_CMD" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -9519,7 +10497,7 @@ objext=$objext lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' +lt_simple_link_test_code='int main(void){return(0);}' @@ -9570,13 +10548,13 @@ if test yes = "$GCC"; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test ${lt_cv_prog_compiler_rtti_exceptions+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_rtti_exceptions=no +else case e in #( + e) lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment @@ -9597,17 +10575,18 @@ else $as_nop if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.expsym $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + if test ! -s conftest.er2 || diff conftest.expsym conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +printf '%s\n' "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" @@ -9660,7 +10639,7 @@ lt_prog_compiler_static= # PIC is the default for these OSes. ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | windows* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -9745,7 +10724,7 @@ lt_prog_compiler_static= # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.expsym' fi ;; @@ -9763,7 +10742,7 @@ lt_prog_compiler_static= esac ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | windows* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' @@ -9796,7 +10775,13 @@ lt_prog_compiler_static= lt_prog_compiler_static='-non_shared' ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + *-mlibc) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | freebsd*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) @@ -9804,9 +10789,15 @@ lt_prog_compiler_static= lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; + *flang* | ftn | f18* | f95*) + # Flang compiler. + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. - icc* | ifort*) + icc* | ifort* | icx* | ifx*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' @@ -9829,6 +10820,12 @@ lt_prog_compiler_static= lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; + slimcc*) + # Hsiang-Ying Fu and Jim Huang's x86_64 SlimCC compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) @@ -9848,7 +10845,7 @@ lt_prog_compiler_static= lt_prog_compiler_static='-qstaticlink' ;; *) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' @@ -9902,6 +10899,9 @@ lt_prog_compiler_static= lt_prog_compiler_static='-non_shared' ;; + serenity*) + ;; + solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' @@ -9964,29 +10964,30 @@ case $host_os in ;; esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 printf %s "checking for $compiler option to produce PIC... " >&6; } if test ${lt_cv_prog_compiler_pic+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +else case e in #( + e) lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +printf '%s\n' "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test ${lt_cv_prog_compiler_pic_works+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_pic_works=no +else case e in #( + e) lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment @@ -10007,17 +11008,18 @@ else $as_nop if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.expsym $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + if test ! -s conftest.er2 || diff conftest.expsym conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 -printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +printf '%s\n' "$lt_cv_prog_compiler_pic_works" >&6; } if test yes = "$lt_cv_prog_compiler_pic_works"; then case $lt_prog_compiler_pic in @@ -10045,13 +11047,13 @@ fi # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test ${lt_cv_prog_compiler_static_works+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_static_works=no +else case e in #( + e) lt_cv_prog_compiler_static_works=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext @@ -10061,9 +11063,9 @@ else $as_nop if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.expsym $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then + if diff conftest.expsym conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else @@ -10072,10 +11074,11 @@ else $as_nop fi $RM -r conftest* LDFLAGS=$save_LDFLAGS - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 -printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +printf '%s\n' "$lt_cv_prog_compiler_static_works" >&6; } if test yes = "$lt_cv_prog_compiler_static_works"; then : @@ -10089,13 +11092,13 @@ fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test ${lt_cv_prog_compiler_c_o+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_c_o=no +else case e in #( + e) lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest @@ -10120,9 +11123,9 @@ else $as_nop then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.expsym $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + if test ! -s out/conftest.er2 || diff out/conftest.expsym out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi @@ -10135,23 +11138,24 @@ else $as_nop cd .. $RM -r conftest $RM conftest* - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +printf '%s\n' "$lt_cv_prog_compiler_c_o" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test ${lt_cv_prog_compiler_c_o+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_c_o=no +else case e in #( + e) lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest @@ -10176,9 +11180,9 @@ else $as_nop then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.expsym $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + if test ! -s out/conftest.er2 || diff out/conftest.expsym out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi @@ -10191,10 +11195,11 @@ else $as_nop cd .. $RM -r conftest $RM conftest* - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +printf '%s\n' "$lt_cv_prog_compiler_c_o" >&6; } @@ -10202,7 +11207,7 @@ printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } hard_links=nottested if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 printf %s "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* @@ -10210,11 +11215,11 @@ printf %s "checking if we can lock with hard links... " >&6; } touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 -printf "%s\n" "$hard_links" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +printf '%s\n' "$hard_links" >&6; } if test no = "$hard_links"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 -printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +printf '%s\n' "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else @@ -10226,7 +11231,7 @@ fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= @@ -10270,21 +11275,18 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries extract_expsyms_cmds= case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time + cygwin* | mingw* | windows* | pw32* | cegcc*) + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) + # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) with_gnu_ld=yes ;; - openbsd* | bitrig*) - with_gnu_ld=no - ;; esac ld_shlibs=yes @@ -10331,7 +11333,7 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries whole_archive_flag_spec= fi supports_anon_versioning=no - case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... @@ -10385,7 +11387,7 @@ _LT_EOF fi ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | mingw* | windows* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' @@ -10395,6 +11397,7 @@ _LT_EOF enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + file_list_spec='@' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' @@ -10414,7 +11417,7 @@ _LT_EOF haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - link_all_deplibs=yes + link_all_deplibs=no ;; os2*) @@ -10422,17 +11425,17 @@ _LT_EOF hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll - archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ + archive_cmds='echo "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + echo "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + echo EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' - archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ + archive_expsym_cmds='echo "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + echo "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + echo EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; @@ -10441,8 +11444,8 @@ _LT_EOF cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' - old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes + file_list_spec='@' ;; interix[3-9]*) @@ -10457,7 +11460,12 @@ _LT_EOF # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + *-mlibc) + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) @@ -10485,7 +11493,7 @@ _LT_EOF tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler + ifc* | ifort* | ifx*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= @@ -10500,7 +11508,7 @@ _LT_EOF compiler_needs_object=yes ;; esac - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes @@ -10512,13 +11520,14 @@ _LT_EOF if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' export_dynamic_flag_spec='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) @@ -10528,7 +11537,7 @@ _LT_EOF archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi @@ -10539,7 +11548,7 @@ _LT_EOF fi ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= @@ -10660,7 +11669,7 @@ _LT_EOF if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no @@ -10785,8 +11794,8 @@ else if test ${lt_cv_aix_libpath_+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -10818,7 +11827,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi - + ;; +esac fi aix_libpath=$lt_cv_aix_libpath_ @@ -10840,8 +11850,8 @@ else if test ${lt_cv_aix_libpath_+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -10873,7 +11883,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi - + ;; +esac fi aix_libpath=$lt_cv_aix_libpath_ @@ -10929,14 +11940,14 @@ fi export_dynamic_flag_spec=-rdynamic ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | mingw* | windows* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in - cl*) - # Native MSVC + cl* | icl* | icx* | icpx*) + # Native MSVC and Intel compilers hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes @@ -10946,14 +11957,20 @@ fi # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + # A check exists to verify if there are linker flags, which will use + # different commands when linking. + archive_cmds='$CC -Fe$output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp "$export_symbols" "$output_objdir/$soname.def"; - echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.expsym"; else - $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.expsym; + fi~ + if test -z "$linker_flags"; then + $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.expsym" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"; + else + $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.expsym" -Wl,$linker_flags-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"; fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' @@ -10977,7 +11994,7 @@ fi fi' ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. @@ -10985,7 +12002,7 @@ fi # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + archive_cmds='$CC -Fe$lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. @@ -11018,8 +12035,8 @@ fi output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" - archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" - module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + archive_expsym_cmds="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" else ld_shlibs=no @@ -11053,7 +12070,7 @@ fi ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes @@ -11119,13 +12136,13 @@ fi # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 printf %s "checking if $CC understands -b... " >&6; } if test ${lt_cv_prog_compiler__b+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler__b=no +else case e in #( + e) lt_cv_prog_compiler__b=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext @@ -11135,9 +12152,9 @@ else $as_nop if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.expsym $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then + if diff conftest.expsym conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else @@ -11146,10 +12163,11 @@ else $as_nop fi $RM -r conftest* LDFLAGS=$save_LDFLAGS - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 -printf "%s\n" "$lt_cv_prog_compiler__b" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +printf '%s\n' "$lt_cv_prog_compiler__b" >&6; } if test yes = "$lt_cv_prog_compiler__b"; then archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' @@ -11189,13 +12207,13 @@ fi # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if test ${lt_cv_irix_exported_symbol+y} then : printf %s "(cached) " >&6 -else $as_nop - save_LDFLAGS=$LDFLAGS +else case e in #( + e) save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -11204,15 +12222,17 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_irix_exported_symbol=yes -else $as_nop - lt_cv_irix_exported_symbol=no +else case e in #( + e) lt_cv_irix_exported_symbol=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS + LDFLAGS=$save_LDFLAGS ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +printf '%s\n' "$lt_cv_irix_exported_symbol" >&6; } if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi @@ -11227,17 +12247,21 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } link_all_deplibs=yes ;; + *-mlibc) + ;; + linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler ld_shlibs=yes archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' ;; esac ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else @@ -11259,7 +12283,7 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } *nto* | *qnx*) ;; - openbsd* | bitrig*) + openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no @@ -11283,17 +12307,17 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll - archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ + archive_cmds='echo "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + echo "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + echo EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' - archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ + archive_expsym_cmds='echo "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + echo "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + echo EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; @@ -11302,8 +12326,8 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' - old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes + file_list_spec='@' ;; osf3*) @@ -11327,8 +12351,8 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.expsym; done; printf "%s\\n" "-hidden">> $lib.expsym~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.expsym $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.expsym' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' @@ -11337,26 +12361,29 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } hardcode_libdir_separator=: ;; + serenity*) + ;; + solaris*) no_undefined_flag=' -z defs' if test yes = "$GCC"; then wlarc='$wl' archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + archive_expsym_cmds='echo "{ global:" > $lib.expsym~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo "local: *; };" >> $lib.expsym~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.expsym $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.expsym' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + archive_expsym_cmds='echo "{ global:" > $lib.expsym~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo "local: *; };" >> $lib.expsym~ + $LD -G$allow_undefined_flag -M $lib.expsym -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.expsym' ;; *) wlarc='$wl' archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + archive_expsym_cmds='echo "{ global:" > $lib.expsym~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo "local: *; };" >> $lib.expsym~ + $CC -G$allow_undefined_flag -M $lib.expsym -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.expsym' ;; esac fi @@ -11492,8 +12519,8 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 -printf "%s\n" "$ld_shlibs" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +printf '%s\n' "$ld_shlibs" >&6; } test no = "$ld_shlibs" && can_build_shared=no with_gnu_ld=$with_gnu_ld @@ -11529,19 +12556,19 @@ x|xyes) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 printf %s "checking whether -lc should be explicitly linked in... " >&6; } if test ${lt_cv_archive_cmds_need_lc+y} then : printf %s "(cached) " >&6 -else $as_nop - $RM conftest* +else case e in #( + e) $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest @@ -11559,7 +12586,7 @@ else $as_nop if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no @@ -11571,10 +12598,11 @@ else $as_nop cat conftest.err 1>&5 fi $RM conftest* - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 -printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +printf '%s\n' "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac @@ -11733,7 +12761,7 @@ esac - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 printf %s "checking dynamic linker characteristics... " >&6; } if test yes = "$GCC"; then @@ -11742,7 +12770,7 @@ if test yes = "$GCC"; then *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in - mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; + mingw* | windows* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` @@ -11800,7 +12828,7 @@ BEGIN {RS = " "; FS = "/|\n";} { # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in - mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + mingw* | windows* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([A-Za-z]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` @@ -11874,7 +12902,7 @@ aix[4-9]*) # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl - # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # linker flag in LDFLAGS as well, or --enable-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the @@ -11968,7 +12996,7 @@ bsdi[45]*) # libtool to hard-code these into programs ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | mingw* | windows* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no @@ -11979,15 +13007,29 @@ cygwin* | mingw* | pw32* | cegcc*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \$file`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' + # If user builds GCC with multilib enabled, + # it should just install on $(libdir) + # not on $(libdir)/../bin or 32 bits dlls would override 64 bit ones. + if test xyes = x"$multilib"; then + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + $install_prog $dir/$dlname $destdir/$dlname~ + chmod a+x $destdir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib $destdir/$dlname'\'' || exit \$?; + fi' + else + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + fi postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' @@ -11996,30 +13038,30 @@ cygwin* | mingw* | pw32* | cegcc*) case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; - mingw* | cegcc*) + mingw* | windows* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; - *,cl*) - # Native MSVC + *,cl* | *,icl* | *,icx*) + # Native MSVC and Intel compilers libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in - mingw*) + mingw* | windows*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' @@ -12032,7 +13074,7 @@ cygwin* | mingw* | pw32* | cegcc*) done IFS=$lt_save_ifs # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form @@ -12069,7 +13111,7 @@ cygwin* | mingw* | pw32* | cegcc*) ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; @@ -12102,7 +13144,7 @@ dgux*) shlibpath_var=LD_LIBRARY_PATH ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then @@ -12126,7 +13168,28 @@ freebsd* | dragonfly*) need_version=yes ;; esac + case $host_cpu in + powerpc64) + # On FreeBSD bi-arch platforms, a different variable is used for 32-bit + # binaries. See . + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int test_pointer_size[sizeof (void *) - 5]; + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : shlibpath_var=LD_LIBRARY_PATH +else case e in #( + e) shlibpath_var=LD_32_LIBRARY_PATH ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + *) + shlibpath_var=LD_LIBRARY_PATH + ;; + esac case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes @@ -12156,8 +13219,9 @@ haiku*) soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no - sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes + sys_lib_search_path_spec='/boot/system/non-packaged/develop/lib /boot/system/develop/lib' + sys_lib_dlsearch_path_spec='/boot/home/config/non-packaged/lib /boot/home/config/lib /boot/system/non-packaged/lib /boot/system/lib' + hardcode_into_libs=no ;; hpux9* | hpux10* | hpux11*) @@ -12258,6 +13322,18 @@ irix5* | irix6* | nonstopux*) hardcode_into_libs=yes ;; +*-mlibc) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='mlibc ld.so' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no @@ -12267,7 +13343,7 @@ linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no - library_names_spec='$libname$release$shared_ext' + library_names_spec='$libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH @@ -12279,8 +13355,9 @@ linux*android*) hardcode_into_libs=yes dynamic_linker='Android linker' - # Don't embed -rpath directories since the linker doesn't support them. - hardcode_libdir_flag_spec='-L$libdir' + # -rpath works at least for libraries that are not overridden by + # libraries installed in system locations. + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' ;; # This must be glibc/ELF. @@ -12298,8 +13375,8 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) if test ${lt_cv_shlibpath_overrides_runpath+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_shlibpath_overrides_runpath=no +else case e in #( + e) lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ @@ -12326,7 +13403,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir - + ;; +esac fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath @@ -12336,7 +13414,7 @@ fi # before this can be enabled. hardcode_into_libs=yes - # Ideally, we could use ldconfig to report *all* directores which are + # Ideally, we could use ldconfig to report *all* directories which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, @@ -12356,6 +13434,20 @@ fi dynamic_linker='GNU/Linux ld.so' ;; +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + enable_cxx_stdlib=yes + stdlibflag= + ;; + netbsd*) version_type=sunos need_lib_prefix=no @@ -12372,6 +13464,8 @@ netbsd*) shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes + enable_cxx_stdlib=yes + stdlibflag= ;; newsos6) @@ -12393,7 +13487,7 @@ newsos6) dynamic_linker='ldqnx.so' ;; -openbsd* | bitrig*) +openbsd*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no @@ -12416,9 +13510,14 @@ os2*) need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; - v=$($ECHO $release$versuffix | tr -d .-); - n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); - $ECHO $n$v`$shared_ext' + n=$($ECHO $libname | tr -d .-); + l=${#n}; test 3 -lt "$l" && l=3; mr=$((8 - $l)); + r=$($ECHO $release | tr -d .-); + l=${#r}; test 2 -lt "$l" && l=2; mv=$(($mr - $l)); + v=$($ECHO $versuffix | tr -d .- | cut -b -$mv); + r=$($ECHO $r | cut -b -$(($mr - ${#v}))); + n=$($ECHO $n | cut -b -$((8 - ${#r} - ${#v}))); + $ECHO $n$r$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH @@ -12453,6 +13552,17 @@ rdos*) dynamic_linker=no ;; +serenity*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + dynamic_linker='SerenityOS LibELF' + ;; + solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no @@ -12550,36 +13660,531 @@ uts4*) shlibpath_var=LD_LIBRARY_PATH ;; -*) - dynamic_linker=no - ;; -esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 -printf "%s\n" "$dynamic_linker" >&6; } -test no = "$dynamic_linker" && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test yes = "$GCC"; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then - sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec -fi - -if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then - sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec -fi - -# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... -configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec - -# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code -func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" - -# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool -configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH - +emscripten*) + version_type=none + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + dynamic_linker="Emscripten linker" + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test yes = "$GCC"; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + lt_prog_compiler_pic='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | windows* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.expsym' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + + mingw* | windows* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + *-mlibc) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | freebsd*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + *flang* | ftn | f18* | f95*) + # Flang compiler. + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort* | icx* | ifx*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + slimcc*) + # Hsiang-Ying Fu and Jim Huang's x86_64 SlimCC compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | $SED 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + serenity*) + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +printf %s "checking for $compiler option to produce PIC... " >&6; } +if test ${lt_cv_prog_compiler_pic+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ;; +esac +fi +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +printf '%s\n' "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if test ${lt_cv_prog_compiler_pic_works+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.expsym + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.expsym conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + ;; +esac +fi +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +printf '%s\n' "$lt_cv_prog_compiler_pic_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_pic_works"; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if test ${lt_cv_prog_compiler_static_works+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler_static_works=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.expsym + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.expsym conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + ;; +esac +fi +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +printf '%s\n' "$lt_cv_prog_compiler_static_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_static_works"; then + : +else + lt_prog_compiler_static= +fi + + + +='-fPIC' + archive_cmds='$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib' + archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib -s EXPORTED_FUNCTIONS=@$output_objdir/$soname.expsym' + archive_cmds_need_lc=no + no_undefined_flag= + ;; + +*) + dynamic_linker=no + ;; +esac +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +printf '%s\n' "$dynamic_linker" >&6; } +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH @@ -12676,7 +14281,8 @@ configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 + + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 printf %s "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || @@ -12701,8 +14307,8 @@ else # directories. hardcode_action=unsupported fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 -printf "%s\n" "$hardcode_action" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +printf '%s\n' "$hardcode_action" >&6; } if test relink = "$hardcode_action" || test yes = "$inherit_rpath"; then @@ -12734,7 +14340,7 @@ else lt_cv_dlopen_self=yes ;; - mingw* | pw32* | cegcc*) + mingw* | windows* | pw32* | cegcc*) lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; @@ -12746,21 +14352,27 @@ else darwin*) # if libdl is installed we need to link against it - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 printf %s "checking for dlopen in -ldl... " >&6; } if test ${ac_cv_lib_dl_dlopen+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dlopen (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (void); int main (void) { @@ -12772,24 +14384,27 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dl_dlopen=yes -else $as_nop - ac_cv_lib_dl_dlopen=no +else case e in #( + e) ac_cv_lib_dl_dlopen=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +printf '%s\n' "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl -else $as_nop - +else case e in #( + e) lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes - + ;; +esac fi ;; @@ -12807,22 +14422,28 @@ fi if test "x$ac_cv_func_shl_load" = xyes then : lt_cv_dlopen=shl_load -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +else case e in #( + e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 printf %s "checking for shl_load in -ldld... " >&6; } if test ${ac_cv_lib_dld_shl_load+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char shl_load (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (void); int main (void) { @@ -12834,39 +14455,47 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dld_shl_load=yes -else $as_nop - ac_cv_lib_dld_shl_load=no +else case e in #( + e) ac_cv_lib_dld_shl_load=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 -printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +printf '%s\n' "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes then : lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld -else $as_nop - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +else case e in #( + e) ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes then : lt_cv_dlopen=dlopen -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +else case e in #( + e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 printf %s "checking for dlopen in -ldl... " >&6; } if test ${ac_cv_lib_dl_dlopen+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dlopen (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (void); int main (void) { @@ -12878,34 +14507,42 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dl_dlopen=yes -else $as_nop - ac_cv_lib_dl_dlopen=no +else case e in #( + e) ac_cv_lib_dl_dlopen=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +printf '%s\n' "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +else case e in #( + e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 printf %s "checking for dlopen in -lsvld... " >&6; } if test ${ac_cv_lib_svld_dlopen+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dlopen (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (void); int main (void) { @@ -12917,34 +14554,42 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_svld_dlopen=yes -else $as_nop - ac_cv_lib_svld_dlopen=no +else case e in #( + e) ac_cv_lib_svld_dlopen=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 -printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +printf '%s\n' "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +else case e in #( + e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 printf %s "checking for dld_link in -ldld... " >&6; } if test ${ac_cv_lib_dld_dld_link+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dld_link (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (void); int main (void) { @@ -12956,33 +14601,40 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dld_dld_link=yes -else $as_nop - ac_cv_lib_dld_dld_link=no +else case e in #( + e) ac_cv_lib_dld_dld_link=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 -printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +printf '%s\n' "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes then : lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi - + ;; +esac fi - + ;; +esac fi - + ;; +esac fi - + ;; +esac fi - + ;; +esac fi ;; @@ -13005,13 +14657,13 @@ fi save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 printf %s "checking whether a program can dlopen itself... " >&6; } if test ${lt_cv_dlopen_self+y} then : printf %s "(cached) " >&6 -else $as_nop - if test yes = "$cross_compiling"; then : +else case e in #( + e) if test yes = "$cross_compiling"; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 @@ -13061,11 +14713,11 @@ else /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); +int fnord (void) __attribute__((visibility("default"))); #endif -int fnord () { return 42; } -int main () +int fnord (void) { return 42; } +int main (void) { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; @@ -13089,7 +14741,7 @@ _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? @@ -13105,20 +14757,21 @@ _LT_EOF fi rm -fr conftest* - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 -printf "%s\n" "$lt_cv_dlopen_self" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +printf '%s\n' "$lt_cv_dlopen_self" >&6; } if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 printf %s "checking whether a statically linked program can dlopen itself... " >&6; } if test ${lt_cv_dlopen_self_static+y} then : printf %s "(cached) " >&6 -else $as_nop - if test yes = "$cross_compiling"; then : +else case e in #( + e) if test yes = "$cross_compiling"; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 @@ -13168,11 +14821,11 @@ else /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); +int fnord (void) __attribute__((visibility("default"))); #endif -int fnord () { return 42; } -int main () +int fnord (void) { return 42; } +int main (void) { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; @@ -13196,7 +14849,7 @@ _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? @@ -13212,10 +14865,11 @@ _LT_EOF fi rm -fr conftest* - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 -printf "%s\n" "$lt_cv_dlopen_self_static" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +printf '%s\n' "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS=$save_CPPFLAGS @@ -13253,32 +14907,43 @@ fi striplib= old_striplib= -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 printf %s "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } +if test -z "$STRIP"; then + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP"; then + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf '%s\n' "yes" >&6; } + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough striplib="$STRIP -x" old_striplib="$STRIP -S" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - fi - ;; - *) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - ;; - esac + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf '%s\n' "yes" >&6; } + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf '%s\n' "yes" >&6; } + else + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } + fi + ;; + *) + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } + ;; + esac + fi fi @@ -13293,12 +14958,12 @@ fi # Report what library types will actually be built - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 printf %s "checking if libtool supports shared libraries... " >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 -printf "%s\n" "$can_build_shared" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +printf '%s\n' "$can_build_shared" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 printf %s "checking whether to build shared libraries... " >&6; } test no = "$can_build_shared" && enable_shared=no @@ -13323,15 +14988,15 @@ printf %s "checking whether to build shared libraries... " >&6; } fi ;; esac - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 -printf "%s\n" "$enable_shared" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +printf '%s\n' "$enable_shared" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 printf %s "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 -printf "%s\n" "$enable_static" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +printf '%s\n' "$enable_static" >&6; } @@ -13357,6 +15022,13 @@ CC=$lt_save_CC + + + + + + + ac_config_commands="$ac_config_commands libtool" @@ -13367,46 +15039,9 @@ CC=$lt_save_CC # Only expand once: -# Check whether --enable-silent-rules was given. -if test ${enable_silent_rules+y} -then : - enableval=$enable_silent_rules; -fi -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=0;; -esac -am_make=${MAKE-make} -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -printf %s "checking whether $am_make supports nested variables... " >&6; } -if test ${am_cv_make_support_nested_variables+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if printf "%s\n" 'TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AM_BACKSLASH='\' +AM_DEFAULT_VERBOSITY=0 + ac_ext=c @@ -13414,7 +15049,7 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 printf %s "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then @@ -13424,8 +15059,8 @@ if test -z "$CPP"; then if test ${ac_cv_prog_CPP+y} then : printf %s "(cached) " >&6 -else $as_nop - # Double quotes because $CC needs to be expanded +else case e in #( + e) # Double quotes because $CC needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp do ac_preproc_ok=false @@ -13443,9 +15078,10 @@ _ACEOF if ac_fn_c_try_cpp "$LINENO" then : -else $as_nop - # Broken: fails on valid input. -continue +else case e in #( + e) # Broken: fails on valid input. +continue ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext @@ -13459,15 +15095,16 @@ if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue -else $as_nop - # Passes both tests. +else case e in #( + e) # Passes both tests. ac_preproc_ok=: -break +break ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : @@ -13476,14 +15113,15 @@ fi done ac_cv_prog_CPP=$CPP - + ;; +esac fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -printf "%s\n" "$CPP" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +printf '%s\n' "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do @@ -13499,9 +15137,10 @@ _ACEOF if ac_fn_c_try_cpp "$LINENO" then : -else $as_nop - # Broken: fails on valid input. -continue +else case e in #( + e) # Broken: fails on valid input. +continue ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext @@ -13515,24 +15154,26 @@ if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue -else $as_nop - # Passes both tests. +else case e in #( + e) # Passes both tests. ac_preproc_ok=: -break +break ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : -else $as_nop - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } ;; +esac fi ac_ext=c @@ -13542,6 +15183,140 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for egrep -e" >&5 +printf %s "checking for egrep -e... " >&6; } +if test ${ac_cv_path_EGREP_TRADITIONAL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -z "$EGREP_TRADITIONAL"; then + ac_path_EGREP_TRADITIONAL_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in grep ggrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue +# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found. + # Check for GNU $ac_path_EGREP_TRADITIONAL +case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #( +*GNU*) + ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;; +#( +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf '%s\n' 'EGREP_TRADITIONAL' >> "conftest.nl" + "$ac_path_EGREP_TRADITIONAL" -E 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" + ac_path_EGREP_TRADITIONAL_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_TRADITIONAL_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then + : + fi +else + ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL +fi + + if test "$ac_cv_path_EGREP_TRADITIONAL" +then : + ac_cv_path_EGREP_TRADITIONAL="$ac_cv_path_EGREP_TRADITIONAL -E" +else case e in #( + e) if test -z "$EGREP_TRADITIONAL"; then + ac_path_EGREP_TRADITIONAL_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in egrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue +# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found. + # Check for GNU $ac_path_EGREP_TRADITIONAL +case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #( +*GNU*) + ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;; +#( +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf '%s\n' 'EGREP_TRADITIONAL' >> "conftest.nl" + "$ac_path_EGREP_TRADITIONAL" 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" + ac_path_EGREP_TRADITIONAL_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_TRADITIONAL_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL +fi + ;; +esac +fi ;; +esac +fi +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP_TRADITIONAL" >&5 +printf '%s\n' "$ac_cv_path_EGREP_TRADITIONAL" >&6; } + EGREP_TRADITIONAL=$ac_cv_path_EGREP_TRADITIONAL + @@ -13571,15 +15346,21 @@ then : fi CFLAGS="$CFLAGS $PTHREAD_CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS" >&5 printf %s "checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char pthread_join (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_join (void); int main (void) { @@ -13594,8 +15375,8 @@ then : fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 -printf "%s\n" "$ax_pthread_ok" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +printf '%s\n' "$ax_pthread_ok" >&6; } if test "x$ax_pthread_ok" = "xno"; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" @@ -13671,10 +15452,10 @@ case $host_os in _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1 + $EGREP_TRADITIONAL "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1 then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&5 -printf "%s\n" "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&5 +printf '%s\n' "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;} fi rm -rf conftest* @@ -13721,19 +15502,20 @@ esac if test "x$ax_pthread_check_macro" = "x--" then : ax_pthread_check_cond=0 -else $as_nop - ax_pthread_check_cond="!defined($ax_pthread_check_macro)" +else case e in #( + e) ax_pthread_check_cond="!defined($ax_pthread_check_macro)" ;; +esac fi # Are we compiling with Clang? -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC is Clang" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CC is Clang" >&5 printf %s "checking whether $CC is Clang... " >&6; } if test ${ax_cv_PTHREAD_CLANG+y} then : printf %s "(cached) " >&6 -else $as_nop - ax_cv_PTHREAD_CLANG=no +else case e in #( + e) ax_cv_PTHREAD_CLANG=no # Note that Autoconf sets GCC=yes for Clang as well as GCC if test "x$GCC" = "xyes"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13745,17 +15527,18 @@ else $as_nop _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1 + $EGREP_TRADITIONAL "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1 then : ax_cv_PTHREAD_CLANG=yes fi rm -rf conftest* fi - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5 -printf "%s\n" "$ax_cv_PTHREAD_CLANG" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5 +printf '%s\n' "$ax_cv_PTHREAD_CLANG" >&6; } ax_pthread_clang="$ax_cv_PTHREAD_CLANG" ax_pthread_clang_warning=no @@ -13801,13 +15584,13 @@ if test "x$ax_pthread_clang" = "xyes"; then # that build with -Werror. So if the active version of Clang has # this misfeature, we search for an option to squash it. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread" >&5 printf %s "checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread... " >&6; } if test ${ax_cv_PTHREAD_CLANG_NO_WARN_FLAG+y} then : printf %s "(cached) " >&6 -else $as_nop - ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown +else case e in #( + e) ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown # Create an alternate version of $ac_link that compiles and # links in two steps (.c -> .o, .o -> exe) instead of one # (.c -> exe), because the warning occurs only in the second @@ -13853,10 +15636,11 @@ then : ax_pthread_try=no fi ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try" - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5 -printf "%s\n" "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5 +printf '%s\n' "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; } case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in no | unknown) ;; @@ -13870,19 +15654,19 @@ for ax_pthread_try_flag in $ax_pthread_flags; do case $ax_pthread_try_flag in none) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 printf %s "checking whether pthreads work without any flags... " >&6; } ;; -mt,pthread) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with -mt -lpthread" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with -mt -lpthread" >&5 printf %s "checking whether pthreads work with -mt -lpthread... " >&6; } PTHREAD_CFLAGS="-mt" PTHREAD_LIBS="-lpthread" ;; -*) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $ax_pthread_try_flag" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $ax_pthread_try_flag" >&5 printf %s "checking whether pthreads work with $ax_pthread_try_flag... " >&6; } PTHREAD_CFLAGS="$ax_pthread_try_flag" ;; @@ -13890,13 +15674,13 @@ printf %s "checking whether pthreads work with $ax_pthread_try_flag... " >&6; } pthread-config) # Extract the first word of "pthread-config", so it can be a program name with args. set dummy pthread-config; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ax_pthread_config+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ax_pthread_config"; then +else case e in #( + e) if test -n "$ax_pthread_config"; then ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -13911,7 +15695,7 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ax_pthread_config="yes" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -13919,15 +15703,16 @@ done IFS=$as_save_IFS test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no" -fi +fi ;; +esac fi ax_pthread_config=$ac_cv_prog_ax_pthread_config if test -n "$ax_pthread_config"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5 -printf "%s\n" "$ax_pthread_config" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5 +printf '%s\n' "$ax_pthread_config" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -13940,7 +15725,7 @@ fi ;; *) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$ax_pthread_try_flag" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$ax_pthread_try_flag" >&5 printf %s "checking for the pthreads library -l$ax_pthread_try_flag... " >&6; } PTHREAD_LIBS="-l$ax_pthread_try_flag" ;; @@ -13992,8 +15777,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ CFLAGS="$ax_pthread_save_CFLAGS" LIBS="$ax_pthread_save_LIBS" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 -printf "%s\n" "$ax_pthread_ok" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +printf '%s\n' "$ax_pthread_ok" >&6; } if test "x$ax_pthread_ok" = "xyes" then : break @@ -14012,13 +15797,13 @@ if test "x$ax_pthread_ok" = "xyes"; then LIBS="$PTHREAD_LIBS $LIBS" # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 printf %s "checking for joinable pthread attribute... " >&6; } if test ${ax_cv_PTHREAD_JOINABLE_ATTR+y} then : printf %s "(cached) " >&6 -else $as_nop - ax_cv_PTHREAD_JOINABLE_ATTR=unknown +else case e in #( + e) ax_cv_PTHREAD_JOINABLE_ATTR=unknown for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14038,37 +15823,39 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext done - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5 -printf "%s\n" "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5 +printf '%s\n' "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; } if test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \ test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \ test "x$ax_pthread_joinable_attr_defined" != "xyes" then : -printf "%s\n" "#define PTHREAD_CREATE_JOINABLE $ax_cv_PTHREAD_JOINABLE_ATTR" >>confdefs.h +printf '%s\n' "#define PTHREAD_CREATE_JOINABLE $ax_cv_PTHREAD_JOINABLE_ATTR" >>confdefs.h ax_pthread_joinable_attr_defined=yes fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether more special flags are required for pthreads" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether more special flags are required for pthreads" >&5 printf %s "checking whether more special flags are required for pthreads... " >&6; } if test ${ax_cv_PTHREAD_SPECIAL_FLAGS+y} then : printf %s "(cached) " >&6 -else $as_nop - ax_cv_PTHREAD_SPECIAL_FLAGS=no +else case e in #( + e) ax_cv_PTHREAD_SPECIAL_FLAGS=no case $host_os in solaris*) ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS" ;; esac - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5 -printf "%s\n" "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5 +printf '%s\n' "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; } if test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \ test "x$ax_pthread_special_flags_added" != "xyes" then : @@ -14076,13 +15863,13 @@ then : ax_pthread_special_flags_added=yes fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5 + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5 printf %s "checking for PTHREAD_PRIO_INHERIT... " >&6; } if test ${ax_cv_PTHREAD_PRIO_INHERIT+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int @@ -14096,20 +15883,22 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ax_cv_PTHREAD_PRIO_INHERIT=yes -else $as_nop - ax_cv_PTHREAD_PRIO_INHERIT=no +else case e in #( + e) ax_cv_PTHREAD_PRIO_INHERIT=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5 -printf "%s\n" "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5 +printf '%s\n' "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; } if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \ test "x$ax_pthread_prio_inherit_defined" != "xyes" then : -printf "%s\n" "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h +printf '%s\n' "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h ax_pthread_prio_inherit_defined=yes @@ -14133,13 +15922,13 @@ fi ;; do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_PTHREAD_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$PTHREAD_CC"; then +else case e in #( + e) if test -n "$PTHREAD_CC"; then ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -14154,22 +15943,23 @@ do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_PTHREAD_CC="$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS -fi +fi ;; +esac fi PTHREAD_CC=$ac_cv_prog_PTHREAD_CC if test -n "$PTHREAD_CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 -printf "%s\n" "$PTHREAD_CC" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 +printf '%s\n' "$PTHREAD_CC" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf '%s\n' "no" >&6; } fi @@ -14208,20 +15998,26 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 printf %s "checking for library containing dlopen... " >&6; } if test ${ac_cv_search_dlopen+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dlopen (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (void); int main (void) { @@ -14252,14 +16048,16 @@ done if test ${ac_cv_search_dlopen+y} then : -else $as_nop - ac_cv_search_dlopen=no +else case e in #( + e) ac_cv_search_dlopen=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 -printf "%s\n" "$ac_cv_search_dlopen" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 +printf '%s\n' "$ac_cv_search_dlopen" >&6; } ac_res=$ac_cv_search_dlopen if test "$ac_res" != no then : @@ -14267,20 +16065,26 @@ then : fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing kstat_lookup" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing kstat_lookup" >&5 printf %s "checking for library containing kstat_lookup... " >&6; } if test ${ac_cv_search_kstat_lookup+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char kstat_lookup (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char kstat_lookup (void); int main (void) { @@ -14311,14 +16115,16 @@ done if test ${ac_cv_search_kstat_lookup+y} then : -else $as_nop - ac_cv_search_kstat_lookup=no +else case e in #( + e) ac_cv_search_kstat_lookup=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_kstat_lookup" >&5 -printf "%s\n" "$ac_cv_search_kstat_lookup" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_kstat_lookup" >&5 +printf '%s\n' "$ac_cv_search_kstat_lookup" >&6; } ac_res=$ac_cv_search_kstat_lookup if test "$ac_res" != no then : @@ -14326,20 +16132,26 @@ then : fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 printf %s "checking for library containing gethostbyname... " >&6; } if test ${ac_cv_search_gethostbyname+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char gethostbyname (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (void); int main (void) { @@ -14370,14 +16182,16 @@ done if test ${ac_cv_search_gethostbyname+y} then : -else $as_nop - ac_cv_search_gethostbyname=no +else case e in #( + e) ac_cv_search_gethostbyname=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5 -printf "%s\n" "$ac_cv_search_gethostbyname" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5 +printf '%s\n' "$ac_cv_search_gethostbyname" >&6; } ac_res=$ac_cv_search_gethostbyname if test "$ac_res" != no then : @@ -14385,20 +16199,26 @@ then : fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing perfstat_cpu" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing perfstat_cpu" >&5 printf %s "checking for library containing perfstat_cpu... " >&6; } if test ${ac_cv_search_perfstat_cpu+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char perfstat_cpu (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char perfstat_cpu (void); int main (void) { @@ -14429,14 +16249,16 @@ done if test ${ac_cv_search_perfstat_cpu+y} then : -else $as_nop - ac_cv_search_perfstat_cpu=no +else case e in #( + e) ac_cv_search_perfstat_cpu=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_perfstat_cpu" >&5 -printf "%s\n" "$ac_cv_search_perfstat_cpu" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_perfstat_cpu" >&5 +printf '%s\n' "$ac_cv_search_perfstat_cpu" >&6; } ac_res=$ac_cv_search_perfstat_cpu if test "$ac_res" != no then : @@ -14444,20 +16266,26 @@ then : fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5 printf %s "checking for library containing clock_gettime... " >&6; } if test ${ac_cv_search_clock_gettime+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char clock_gettime (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char clock_gettime (void); int main (void) { @@ -14488,14 +16316,16 @@ done if test ${ac_cv_search_clock_gettime+y} then : -else $as_nop - ac_cv_search_clock_gettime=no +else case e in #( + e) ac_cv_search_clock_gettime=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5 -printf "%s\n" "$ac_cv_search_clock_gettime" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5 +printf '%s\n' "$ac_cv_search_clock_gettime" >&6; } ac_res=$ac_cv_search_clock_gettime if test "$ac_res" != no then : @@ -14503,20 +16333,26 @@ then : fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing sendfile" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing sendfile" >&5 printf %s "checking for library containing sendfile... " >&6; } if test ${ac_cv_search_sendfile+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char sendfile (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char sendfile (void); int main (void) { @@ -14547,14 +16383,16 @@ done if test ${ac_cv_search_sendfile+y} then : -else $as_nop - ac_cv_search_sendfile=no +else case e in #( + e) ac_cv_search_sendfile=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sendfile" >&5 -printf "%s\n" "$ac_cv_search_sendfile" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sendfile" >&5 +printf '%s\n' "$ac_cv_search_sendfile" >&6; } ac_res=$ac_cv_search_sendfile if test "$ac_res" != no then : @@ -14562,20 +16400,26 @@ then : fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 printf %s "checking for library containing socket... " >&6; } if test ${ac_cv_search_socket+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char socket (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char socket (void); int main (void) { @@ -14606,14 +16450,16 @@ done if test ${ac_cv_search_socket+y} then : -else $as_nop - ac_cv_search_socket=no +else case e in #( + e) ac_cv_search_socket=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5 -printf "%s\n" "$ac_cv_search_socket" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5 +printf '%s\n' "$ac_cv_search_socket" >&6; } ac_res=$ac_cv_search_socket if test "$ac_res" != no then : @@ -14626,31 +16472,34 @@ if test ${enable_largefile+y} then : enableval=$enable_largefile; fi - -if test "$enable_largefile" != no; then - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 -printf %s "checking for special C compiler options needed for large files... " >&6; } -if test ${ac_cv_sys_largefile_CC+y} +if test "$enable_largefile,$enable_year2038" != no,no +then : + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to support large files" >&5 +printf %s "checking for $CC option to support large files... " >&6; } +if test ${ac_cv_sys_largefile_opts+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_sys_largefile_CC=no - if test "$GCC" != yes; then - ac_save_CC=$CC - while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) ac_save_CPPFLAGS=$CPPFLAGS + ac_opt_found=no + for ac_opt in "none needed" "-D_FILE_OFFSET_BITS=64" "-D_LARGE_FILES=1"; do + if test x"$ac_opt" != x"none needed" +then : + CPPFLAGS="$ac_save_CPPFLAGS $ac_opt" +fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, +#ifndef FTYPE +# define FTYPE off_t +#endif + /* Check that FTYPE can represent 2**63 - 1 correctly. + We can't simply define LARGE_FTYPE to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) +#define LARGE_FTYPE (((FTYPE) 1 << 31 << 31) - 1 + ((FTYPE) 1 << 31 << 31)) + int FTYPE_is_large[(LARGE_FTYPE % 2147483629 == 721 + && LARGE_FTYPE % 2147483647 == 1) ? 1 : -1]; int main (void) @@ -14660,142 +16509,80 @@ main (void) return 0; } _ACEOF - if ac_fn_c_try_compile "$LINENO" +if ac_fn_c_try_compile "$LINENO" then : - break -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam - CC="$CC -n32" + if test x"$ac_opt" = x"none needed" +then : + # GNU/Linux s390x and alpha need _FILE_OFFSET_BITS=64 for wide ino_t. + CPPFLAGS="$CPPFLAGS -DFTYPE=ino_t" if ac_fn_c_try_compile "$LINENO" then : - ac_cv_sys_largefile_CC=' -n32'; break + +else case e in #( + e) CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64" + if ac_fn_c_try_compile "$LINENO" +then : + ac_opt='-D_FILE_OFFSET_BITS=64' +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam - break - done - CC=$ac_save_CC - rm -f conftest.$ac_ext - fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 -printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; } - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC - fi - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } -if test ${ac_cv_sys_file_offset_bits+y} -then : - printf %s "(cached) " >&6 -else $as_nop - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_sys_file_offset_bits=no; break + ac_cv_sys_largefile_opts=$ac_opt + ac_opt_found=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _FILE_OFFSET_BITS 64 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main (void) -{ + test $ac_opt_found = no || break + done + CPPFLAGS=$ac_save_CPPFLAGS - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_sys_file_offset_bits=64; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ac_cv_sys_file_offset_bits=unknown - break -done + test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected" ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 -printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; } -case $ac_cv_sys_file_offset_bits in #( - no | unknown) ;; - *) -printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h -;; +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_opts" >&5 +printf '%s\n' "$ac_cv_sys_largefile_opts" >&6; } + +ac_have_largefile=yes +case $ac_cv_sys_largefile_opts in + "none needed") : ;; + "supported through gnulib") : ;; + "support not detected") ac_have_largefile=no ;; + "-D_FILE_OFFSET_BITS=64") +printf '%s\n' "#define _FILE_OFFSET_BITS 64" >>confdefs.h + ;; + "-D_LARGE_FILES=1") +printf '%s\n' "#define _LARGE_FILES 1" >>confdefs.h + ;; + *) as_fn_error $? "internal error: bad value for \$ac_cv_sys_largefile_opts" "$LINENO" 5 ;; esac -rm -rf conftest* - if test $ac_cv_sys_file_offset_bits = unknown; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 -printf %s "checking for _LARGE_FILES value needed for large files... " >&6; } -if test ${ac_cv_sys_large_files+y} + +if test "$enable_year2038" != no +then : + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to support timestamps after 2038" >&5 +printf %s "checking for $CC option to support timestamps after 2038... " >&6; } +if test ${ac_cv_sys_year2038_opts+y} then : printf %s "(cached) " >&6 -else $as_nop - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" +else case e in #( + e) ac_save_CPPFLAGS="$CPPFLAGS" + ac_opt_found=no + for ac_opt in "none needed" "-D_TIME_BITS=64" "-D__MINGW_USE_VC2005_COMPAT" "-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"; do + if test x"$ac_opt" != x"none needed" then : - ac_cv_sys_large_files=no; break + CPPFLAGS="$ac_save_CPPFLAGS $ac_opt" fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#define _LARGE_FILES 1 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; + + #include + /* Check that time_t can represent 2**32 - 1 correctly. */ + #define LARGE_TIME_T \\ + ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30))) + int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535 + && LARGE_TIME_T % 65537 == 0) + ? 1 : -1]; + int main (void) { @@ -14806,25 +16593,41 @@ main (void) _ACEOF if ac_fn_c_try_compile "$LINENO" then : - ac_cv_sys_large_files=1; break + ac_cv_sys_year2038_opts="$ac_opt" + ac_opt_found=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ac_cv_sys_large_files=unknown - break -done + test $ac_opt_found = no || break + done + CPPFLAGS="$ac_save_CPPFLAGS" + test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected" ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 -printf "%s\n" "$ac_cv_sys_large_files" >&6; } -case $ac_cv_sys_large_files in #( - no | unknown) ;; - *) -printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h -;; +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_year2038_opts" >&5 +printf '%s\n' "$ac_cv_sys_year2038_opts" >&6; } + +ac_have_year2038=yes +case $ac_cv_sys_year2038_opts in + "none needed") : ;; + "support not detected") ac_have_year2038=no ;; + "-D_TIME_BITS=64") +printf '%s\n' "#define _TIME_BITS 64" >>confdefs.h + ;; + "-D__MINGW_USE_VC2005_COMPAT") +printf '%s\n' "#define __MINGW_USE_VC2005_COMPAT 1" >>confdefs.h + ;; + "-U_USE_32_BIT_TIME_T"*) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error $? "the 'time_t' type is currently forced to be 32-bit. It +will stop working after mid-January 2038. Remove +_USE_32BIT_TIME_T from the compiler flags. +See 'config.log' for more details" "$LINENO" 5; } ;; + *) as_fn_error $? "internal error: bad value for \$ac_cv_sys_year2038_opts" "$LINENO" 5 ;; esac -rm -rf conftest* - fi + fi +fi if case $host_os in aix*) true ;; *) false ;; @@ -14881,7 +16684,7 @@ else fi if case $host_os in - *freebsd*) true ;; + freebsd*) true ;; *) false ;; esac; then FREEBSD_TRUE= @@ -15003,25 +16806,36 @@ fi case $host_os in mingw*) - LIBS="$LIBS -lws2_32 -lpsapi -liphlpapi -lshell32 -luserenv -luser32" + LIBS="$LIBS -lws2_32 -lpsapi -liphlpapi -luserenv -luser32 -ldbghelp -lole32 -lshell32" ;; esac case $host_os in - netbsd*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for kvm_open in -lkvm" >&5 + solaris2.10) + CFLAGS="$CFLAGS -DSUNOS_NO_IFADDRS" + ;; +esac +case $host_os in + netbsd*) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for kvm_open in -lkvm" >&5 printf %s "checking for kvm_open in -lkvm... " >&6; } if test ${ac_cv_lib_kvm_kvm_open+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lkvm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char kvm_open (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char kvm_open (void); int main (void) { @@ -15033,29 +16847,26 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_kvm_kvm_open=yes -else $as_nop - ac_cv_lib_kvm_kvm_open=no +else case e in #( + e) ac_cv_lib_kvm_kvm_open=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_kvm_kvm_open" >&5 -printf "%s\n" "$ac_cv_lib_kvm_kvm_open" >&6; } +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_kvm_kvm_open" >&5 +printf '%s\n' "$ac_cv_lib_kvm_kvm_open" >&6; } if test "x$ac_cv_lib_kvm_kvm_open" = xyes then : - printf "%s\n" "#define HAVE_LIBKVM 1" >>confdefs.h + printf '%s\n' "#define HAVE_LIBKVM 1" >>confdefs.h LIBS="-lkvm $LIBS" fi ;; esac -case $host_os in - kfreebsd*) - LIBS="$LIBS -lfreebsd-glue" - ;; -esac case $host_os in haiku) LIBS="$LIBS -lnetwork" @@ -15064,7 +16875,7 @@ esac ac_fn_c_check_header_compile "$LINENO" "sys/ahafs_evProds.h" "ac_cv_header_sys_ahafs_evProds_h" "$ac_includes_default" if test "x$ac_cv_header_sys_ahafs_evProds_h" = xyes then : - printf "%s\n" "#define HAVE_SYS_AHAFS_EVPRODS_H 1" >>confdefs.h + printf '%s\n' "#define HAVE_SYS_AHAFS_EVPRODS_H 1" >>confdefs.h fi @@ -15076,6 +16887,8 @@ ac_config_links="$ac_config_links test/fixtures/load_error.node:test/fixtures/lo ac_config_links="$ac_config_links test/fixtures/lorem_ipsum.txt:test/fixtures/lorem_ipsum.txt" +ac_config_links="$ac_config_links test/fixtures/one_file/one_file:test/fixtures/one_file/one_file" + cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -15086,50 +16899,13 @@ cat >confcache <<\_ACEOF # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the +# 'ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* 'ac_cv_foo' will be assigned the # following values. _ACEOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | +ac_cache_dump | sed ' /^ac_cv_env_/b end t clear @@ -15141,8 +16917,8 @@ printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -printf "%s\n" "$as_me: updating cache $cache_file" >&6;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +printf '%s\n' "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else @@ -15156,8 +16932,8 @@ printf "%s\n" "$as_me: updating cache $cache_file" >&6;} fi fi else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +printf '%s\n' "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache @@ -15188,9 +16964,7 @@ s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote -s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g -s/\[/\\&/g -s/\]/\\&/g +s/[][ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\$/$$/g H :any @@ -15210,7 +16984,7 @@ U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` + ac_i=`printf '%s\n' "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" @@ -15221,14 +16995,26 @@ LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 printf %s "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5 -printf "%s\n" "done" >&6; } + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: done" >&5 +printf '%s\n' "done" >&6; } +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; +esac +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi + if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' @@ -15249,6 +17035,12 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +# Check whether --enable-year2038 was given. +if test ${enable_year2038+y} +then : + enableval=$enable_year2038; +fi + if test -z "${AIX_TRUE}" && test -z "${AIX_FALSE}"; then as_fn_error $? "conditional \"AIX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -15315,13 +17107,18 @@ Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" +case $CONFIG_STATUS in + -*) CONFIG_STATUS=./$CONFIG_STATUS ;; + */*) : ;; + *) CONFIG_STATUS=./$CONFIG_STATUS ;; +esac + ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} +ac_clean_CONFIG_STATUS='"$CONFIG_STATUS"' +{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +printf '%s\n' "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +cat >"$CONFIG_STATUS" <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. @@ -15335,25 +17132,25 @@ ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +cat >>"$CONFIG_STATUS" <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. + # contradicts POSIX and common usage. Disable this. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else $as_nop - case `(set -o) 2>/dev/null` in +else case e in #( + e) case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; +esac ;; esac fi @@ -15425,13 +17222,13 @@ IFS=$as_save_IFS ;; esac -# We did not find ourselves, most probably we were run as `sh COMMAND' +# We did not find ourselves, most probably we were run as 'sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + printf '%s\n' "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi @@ -15447,14 +17244,13 @@ as_fn_error () as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - printf "%s\n" "$as_me: error: $2" >&2 + printf '%s\n' "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error - # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -15494,11 +17290,12 @@ then : { eval $1+=\$2 }' -else $as_nop - as_fn_append () +else case e in #( + e) as_fn_append () { eval $1=\$$1\$2 - } + } ;; +esac fi # as_fn_append # as_fn_arith ARG... @@ -15512,11 +17309,12 @@ then : { as_val=$(( $* )) }' -else $as_nop - as_fn_arith () +else case e in #( + e) as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` - } + } ;; +esac fi # as_fn_arith @@ -15543,7 +17341,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X/"$0" | +printf '%s\n' X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -15565,29 +17363,6 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits - -# Determine whether it's possible to make 'echo' print without a newline. -# These variables are no longer used directly by Autoconf, but are AC_SUBSTed -# for compatibility with existing Makefiles. -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -# For backward compatibility with old third-party macros, we provide -# the shell variables $as_echo and $as_echo_n. New code should use -# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. -as_echo='printf %s\n' -as_echo_n='printf %s' - rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -15599,9 +17374,9 @@ if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable. + # In both cases, we have to default to 'cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then @@ -15629,7 +17404,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf '%s\n' "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -15638,7 +17413,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X"$as_dir" | +printf '%s\n' X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -15682,26 +17457,28 @@ as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated # Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" +as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g" +as_tr_sh="eval sed '$as_sed_sh'" # deprecated exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## +## ------------------------------------- ## +## Main body of "$CONFIG_STATUS" script. ## +## ------------------------------------- ## _ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 +test $as_write_fail = 0 && chmod +x "$CONFIG_STATUS" || ac_write_fail=1 -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libuv $as_me 1.43.0, which was -generated by GNU Autoconf 2.71. Invocation command line was +This file was extended by libuv $as_me 1.52.1, which was +generated by GNU Autoconf 2.73. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -15720,7 +17497,7 @@ esac -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_links="$ac_config_links" @@ -15728,9 +17505,9 @@ config_commands="$ac_config_commands" _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions +'$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. @@ -15758,16 +17535,16 @@ $config_commands Report bugs to ." _ACEOF -ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` -ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config=`printf '%s\n' "$ac_configure_args" | sed "$ac_safe_unquote"` +ac_cs_config_escaped=`printf '%s\n' "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` +cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -libuv config.status 1.43.0 -configured by $0, generated by GNU Autoconf 2.71, +libuv config.status 1.52.1 +configured by $0, generated by GNU Autoconf 2.73, with options \\"\$ac_cs_config\\" -Copyright (C) 2021 Free Software Foundation, Inc. +Copyright (C) 2026 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -15776,10 +17553,14 @@ srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' -test -n "\$AWK" || AWK=awk +test -n "\$AWK" || { + awk '' >$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 @@ -15807,28 +17588,28 @@ do -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - printf "%s\n" "$ac_cs_version"; exit ;; + printf '%s\n' "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) - printf "%s\n" "$ac_cs_config"; exit ;; + printf '%s\n' "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in - *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_optarg=`printf '%s\n' "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) - printf "%s\n" "$ac_cs_usage"; exit ;; + printf '%s\n' "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; + -*) as_fn_error $? "unrecognized option: '$1' +Try '$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; @@ -15845,29 +17626,29 @@ if $ac_cs_silent; then fi _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift - \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 + \printf '%s\n' "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX - printf "%s\n" "$ac_log" + printf '%s\n' "$ac_log" } >&5 _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # @@ -15886,6 +17667,8 @@ enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_cxx_stdlib='`$ECHO "$enable_cxx_stdlib" | $SED "$delay_single_quote_subst"`' +stdlibflag='`$ECHO "$stdlibflag" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' @@ -15913,8 +17696,10 @@ lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_cygpath_installed='`$ECHO "$lt_cv_cygpath_installed" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' @@ -15923,6 +17708,7 @@ want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' @@ -16043,6 +17829,7 @@ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ +FILECMD \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ @@ -16051,7 +17838,7 @@ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ -AR_FLAGS \ +lt_ar_flags \ archiver_list_spec \ STRIP \ RANLIB \ @@ -16158,7 +17945,7 @@ fi _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets @@ -16171,8 +17958,9 @@ do "test/fixtures/empty_file") CONFIG_LINKS="$CONFIG_LINKS test/fixtures/empty_file:test/fixtures/empty_file" ;; "test/fixtures/load_error.node") CONFIG_LINKS="$CONFIG_LINKS test/fixtures/load_error.node:test/fixtures/load_error.node" ;; "test/fixtures/lorem_ipsum.txt") CONFIG_LINKS="$CONFIG_LINKS test/fixtures/lorem_ipsum.txt:test/fixtures/lorem_ipsum.txt" ;; + "test/fixtures/one_file/one_file") CONFIG_LINKS="$CONFIG_LINKS test/fixtures/one_file/one_file:test/fixtures/one_file/one_file" ;; - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + *) as_fn_error $? "invalid argument: '$ac_config_target'" "$LINENO" 5;; esac done @@ -16192,7 +17980,7 @@ fi # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. +# after its creation but before its name has been assigned to '$tmp'. $debug || { tmp= ac_tmp= @@ -16216,7 +18004,7 @@ ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. +# This happens for instance with './config.status config.h'. if test -n "$CONFIG_FILES"; then @@ -16244,13 +18032,13 @@ _ACEOF echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim_num=`echo "$ac_subst_vars" | sed -n '$='` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | sed -n '$='` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then @@ -16261,7 +18049,7 @@ for ac_last_try in false false false false false :; do done rm -f conf$$subs.sh -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' @@ -16306,9 +18094,9 @@ t delim N s/\n// } -' >>$CONFIG_STATUS || ac_write_fail=1 +' >>"$CONFIG_STATUS" || ac_write_fail=1 rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 @@ -16337,7 +18125,7 @@ cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && _ACAWK _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else @@ -16369,7 +18157,7 @@ s/^[^=]*=[ ]*$// }' fi -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" @@ -16382,7 +18170,7 @@ do esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :L* | :C*:*) as_fn_error $? "invalid tag '$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -16404,33 +18192,33 @@ do -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. + # because $ac_f cannot contain ':'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + as_fn_error 1 "cannot find input file: '$ac_f'" "$LINENO" 5;; esac - case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + case $ac_f in *\'*) ac_f=`printf '%s\n' "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done - # Let's still pretend it is `configure' which instantiates (i.e., don't + # Let's still pretend it is 'configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` - printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + printf '%s\n' "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -printf "%s\n" "$as_me: creating $ac_file" >&6;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf '%s\n' "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) - ac_sed_conf_input=`printf "%s\n" "$configure_input" | + ac_sed_conf_input=`printf '%s\n' "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac @@ -16447,7 +18235,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X"$ac_file" | +printf '%s\n' X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -16471,9 +18259,9 @@ printf "%s\n" X"$ac_file" | case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf '%s\n' "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`printf '%s\n' "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -16518,7 +18306,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix esac _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= @@ -16535,10 +18323,10 @@ ac_sed_dataroot=' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf '%s\n' "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g @@ -16549,14 +18337,14 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 esac _ACEOF -# Neutralize VPATH when `$srcdir' = `.'. +# Neutralize VPATH when '$srcdir' = '.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t @@ -16580,9 +18368,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable 'datarootdir' which seems to be undefined. Please make sure it is defined" >&5 -printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +printf '%s\n' "$as_me: WARNING: $ac_file contains a reference to the variable 'datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" @@ -16606,8 +18394,8 @@ which seems to be undefined. Please make sure it is defined" >&2;} ac_source=$srcdir/$ac_source fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5 -printf "%s\n" "$as_me: linking $ac_source to $ac_file" >&6;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5 +printf '%s\n' "$as_me: linking $ac_source to $ac_file" >&6;} if test ! -r "$ac_source"; then as_fn_error $? "$ac_source: file not found" "$LINENO" 5 @@ -16625,8 +18413,8 @@ printf "%s\n" "$as_me: linking $ac_source to $ac_file" >&6;} as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5 fi ;; - :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -printf "%s\n" "$as_me: executing $ac_file commands" >&6;} + :C) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +printf '%s\n' "$as_me: executing $ac_file commands" >&6;} ;; esac @@ -16648,7 +18436,7 @@ esac for am_mf do # Strip MF so we end up with the name of the file. - am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'` + am_mf=`printf '%s\n' "$am_mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile which includes # dependency-tracking related rules and includes. # Grep'ing the whole file directly is not great: AIX grep has a line @@ -16660,7 +18448,7 @@ $as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$am_mf" : 'X\(//\)[^/]' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X"$am_mf" | +printf '%s\n' X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -16682,7 +18470,7 @@ printf "%s\n" X"$am_mf" | $as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X/"$am_mf" | +printf '%s\n' X/"$am_mf" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -16707,15 +18495,15 @@ printf "%s\n" X/"$am_mf" | (exit $ac_status); } || am_rc=$? done if test $am_rc -ne 0; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "Something went wrong bootstrapping makefile fragments for automatic dependency tracking. If GNU make was not used, consider re-running the configure script with MAKE=\"gmake\" (or whatever is necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking). -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } fi { am_dirpart=; unset am_dirpart;} { am_filepart=; unset am_filepart;} @@ -16739,19 +18527,18 @@ See \`config.log' for more details" "$LINENO" 5; } cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 -# Copyright (C) 2014 Free Software Foundation, Inc. +# Copyright (C) 2025-2026 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of of the License, or +# the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, if you @@ -16789,6 +18576,12 @@ macro_revision=$macro_revision # What type of objects to build. pic_mode=$pic_mode +# Whether to let the compiler frontend decide what standard libraries to link when building C++ shared libraries and modules. +enable_cxx_stdlib=$enable_cxx_stdlib + +# Flag used for specifying not to link standard libraries. +stdlibflag=$stdlibflag + # Whether or not to optimize for fast installation. fast_install=$enable_fast_install @@ -16859,6 +18652,12 @@ to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd +# whether cygpath is installed. +cygpath_installed=$lt_cv_cygpath_installed + +# A file(cmd) program that detects file types. +FILECMD=$lt_FILECMD + # An object symbol dumper. OBJDUMP=$lt_OBJDUMP @@ -16883,8 +18682,11 @@ sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR +# Flags to create an archive (by configure). +lt_ar_flags=$lt_lt_ar_flags + # Flags to create an archive. -AR_FLAGS=$lt_AR_FLAGS +AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"} # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec @@ -17126,7 +18928,7 @@ hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is -# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# "absolute",i.e. impossible to change by setting \$shlibpath_var if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute @@ -17260,7 +19062,7 @@ ltmain=$ac_aux_dir/ltmain.sh # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ + $SED '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || @@ -17275,7 +19077,7 @@ done # for ac_tag as_fn_exit 0 _ACEOF -ac_clean_files=$ac_clean_files_save +ac_clean_CONFIG_STATUS= test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 @@ -17291,19 +19093,24 @@ test $ac_write_fail = 0 || # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: + case $CONFIG_STATUS in + -*) ac_no_opts=-- ;; + *) ac_no_opts= ;; +esac ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + $SHELL $ac_no_opts "$CONFIG_STATUS" $ac_config_status_args || + ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} + { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +printf '%s\n' "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi diff --git a/src/libuv/configure.ac b/src/libuv/configure.ac index eda93b22f..2ed970dfb 100644 --- a/src/libuv/configure.ac +++ b/src/libuv/configure.ac @@ -13,13 +13,13 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. AC_PREREQ(2.57) -AC_INIT([libuv], [1.43.0], [https://github.com/libuv/libuv/issues]) +AC_INIT([libuv], [1.52.1], [https://github.com/libuv/libuv/issues]) AC_CONFIG_MACRO_DIR([m4]) m4_include([m4/libuv-extra-automake-flags.m4]) m4_include([m4/as_case.m4]) m4_include([m4/libuv-check-flags.m4]) AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects] UV_EXTRA_AUTOMAKE_FLAGS) -AM_MAINTAINER_MODE +AM_MAINTAINER_MODE([enable]) # pass --disable-maintainer-mode if autotools may be unavailable AC_CANONICAL_HOST AC_ENABLE_SHARED AC_ENABLE_STATIC @@ -27,11 +27,13 @@ AC_PROG_CC AM_PROG_CC_C_O CC_ATTRIBUTE_VISIBILITY([default], [ - CC_FLAG_VISIBILITY([CFLAGS="${CFLAGS} -fvisibility=hidden"]) + CC_CHECK_CFLAG_APPEND([-fvisibility=hidden]) ]) -CC_CHECK_CFLAGS_APPEND([-fno-strict-aliasing]) +# Xlc has a flag "-f". Need to use CC_CHECK_FLAG_SUPPORTED_APPEND so +# we exclude -fno-strict-aliasing for xlc +CC_CHECK_FLAG_SUPPORTED_APPEND([-fno-strict-aliasing]) CC_CHECK_CFLAGS_APPEND([-g]) -CC_CHECK_CFLAGS_APPEND([-std=gnu89]) +CC_CHECK_CFLAGS_APPEND([-std=gnu11]) CC_CHECK_CFLAGS_APPEND([-Wall]) CC_CHECK_CFLAGS_APPEND([-Wextra]) CC_CHECK_CFLAGS_APPEND([-Wno-long-long]) @@ -61,7 +63,7 @@ AM_CONDITIONAL([ANDROID], [AS_CASE([$host_os],[linux-android*],[true], [false]) AM_CONDITIONAL([CYGWIN], [AS_CASE([$host_os],[cygwin*], [true], [false])]) AM_CONDITIONAL([DARWIN], [AS_CASE([$host_os],[darwin*], [true], [false])]) AM_CONDITIONAL([DRAGONFLY],[AS_CASE([$host_os],[dragonfly*], [true], [false])]) -AM_CONDITIONAL([FREEBSD], [AS_CASE([$host_os],[*freebsd*], [true], [false])]) +AM_CONDITIONAL([FREEBSD], [AS_CASE([$host_os],[freebsd*], [true], [false])]) AM_CONDITIONAL([HAIKU], [AS_CASE([$host_os],[haiku], [true], [false])]) AM_CONDITIONAL([HURD], [AS_CASE([$host_os],[gnu*], [true], [false])]) AM_CONDITIONAL([LINUX], [AS_CASE([$host_os],[linux*], [true], [false])]) @@ -73,12 +75,12 @@ AM_CONDITIONAL([OS400], [AS_CASE([$host_os],[os400], [true], [false]) AM_CONDITIONAL([SUNOS], [AS_CASE([$host_os],[solaris*], [true], [false])]) AM_CONDITIONAL([WINNT], [AS_CASE([$host_os],[mingw*], [true], [false])]) AS_CASE([$host_os],[mingw*], [ - LIBS="$LIBS -lws2_32 -lpsapi -liphlpapi -lshell32 -luserenv -luser32" + LIBS="$LIBS -lws2_32 -lpsapi -liphlpapi -luserenv -luser32 -ldbghelp -lole32 -lshell32" ]) -AS_CASE([$host_os], [netbsd*], [AC_CHECK_LIB([kvm], [kvm_open])]) -AS_CASE([$host_os], [kfreebsd*], [ - LIBS="$LIBS -lfreebsd-glue" +AS_CASE([$host_os], [solaris2.10], [ + CFLAGS="$CFLAGS -DSUNOS_NO_IFADDRS" ]) +AS_CASE([$host_os], [netbsd*], [AC_CHECK_LIB([kvm], [kvm_open])]) AS_CASE([$host_os], [haiku], [ LIBS="$LIBS -lnetwork" ]) @@ -87,4 +89,5 @@ AC_CONFIG_FILES([Makefile libuv.pc]) AC_CONFIG_LINKS([test/fixtures/empty_file:test/fixtures/empty_file]) AC_CONFIG_LINKS([test/fixtures/load_error.node:test/fixtures/load_error.node]) AC_CONFIG_LINKS([test/fixtures/lorem_ipsum.txt:test/fixtures/lorem_ipsum.txt]) +AC_CONFIG_LINKS([test/fixtures/one_file/one_file:test/fixtures/one_file/one_file]) AC_OUTPUT diff --git a/src/libuv/depcomp b/src/libuv/depcomp index 715e34311..9f6725b9e 100755 --- a/src/libuv/depcomp +++ b/src/libuv/depcomp @@ -1,9 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2018-03-07.03; # UTC +scriptversion=2025-06-18.21; # UTC -# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# Copyright (C) 1999-2025 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -47,11 +47,13 @@ Environment variables: libtool Whether libtool is used (yes/no). Report bugs to . +GNU Automake home page: . +General help using GNU software: . EOF exit $? ;; -v | --v*) - echo "depcomp $scriptversion" + echo "depcomp (GNU Automake) $scriptversion" exit $? ;; esac @@ -113,7 +115,6 @@ nl=' # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz -digits=0123456789 alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then @@ -128,7 +129,7 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" -# Avoid interferences from the environment. +# Avoid interference from the environment. gccflag= dashmflag= # Some modes work just like other modes, but use different flags. We @@ -198,8 +199,8 @@ gcc3) ;; gcc) -## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. -## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## Note that this doesn't just cater to obsolete pre-3.x GCC compilers. +## but also to in-use compilers like IBM xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: @@ -783,9 +784,9 @@ exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp nil t) # time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-format: "%Y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/src/libuv/docs/code/cgi/main.c b/src/libuv/docs/code/cgi/main.c index d2e34265a..97422110d 100644 --- a/src/libuv/docs/code/cgi/main.c +++ b/src/libuv/docs/code/cgi/main.c @@ -15,8 +15,8 @@ void cleanup_handles(uv_process_t *req, int64_t exit_status, int term_signal) { } void invoke_cgi_script(uv_tcp_t *client) { - size_t size = 500; - char path[size]; + char path[500]; + size_t size = sizeof(path); uv_exepath(path, &size); strcpy(path + (strlen(path) - strlen("cgi")), "tick"); diff --git a/src/libuv/docs/code/interfaces/main.c b/src/libuv/docs/code/interfaces/main.c index cac12c266..744a47f26 100644 --- a/src/libuv/docs/code/interfaces/main.c +++ b/src/libuv/docs/code/interfaces/main.c @@ -11,17 +11,17 @@ int main() { printf("Number of interfaces: %d\n", count); while (i--) { - uv_interface_address_t interface = info[i]; + uv_interface_address_t interface_a = info[i]; - printf("Name: %s\n", interface.name); - printf("Internal? %s\n", interface.is_internal ? "Yes" : "No"); + printf("Name: %s\n", interface_a.name); + printf("Internal? %s\n", interface_a.is_internal ? "Yes" : "No"); - if (interface.address.address4.sin_family == AF_INET) { - uv_ip4_name(&interface.address.address4, buf, sizeof(buf)); + if (interface_a.address.address4.sin_family == AF_INET) { + uv_ip4_name(&interface_a.address.address4, buf, sizeof(buf)); printf("IPv4 address: %s\n", buf); } - else if (interface.address.address4.sin_family == AF_INET6) { - uv_ip6_name(&interface.address.address6, buf, sizeof(buf)); + else if (interface_a.address.address4.sin_family == AF_INET6) { + uv_ip6_name(&interface_a.address.address6, buf, sizeof(buf)); printf("IPv6 address: %s\n", buf); } diff --git a/src/libuv/docs/code/pipe-echo-server/main.c b/src/libuv/docs/code/pipe-echo-server/main.c index 4f28fd03e..6a2338880 100644 --- a/src/libuv/docs/code/pipe-echo-server/main.c +++ b/src/libuv/docs/code/pipe-echo-server/main.c @@ -6,7 +6,7 @@ #ifdef _WIN32 #define PIPENAME "\\\\?\\pipe\\echo.sock" #else -#define PIPENAME "/tmp/echo.sock" +#define PIPENAME "echo.sock" #endif uv_loop_t *loop; diff --git a/src/libuv/docs/code/plugin/main.c b/src/libuv/docs/code/plugin/main.c index 06e581e63..01335bbcb 100644 --- a/src/libuv/docs/code/plugin/main.c +++ b/src/libuv/docs/code/plugin/main.c @@ -18,22 +18,21 @@ int main(int argc, char **argv) { return 0; } - uv_lib_t *lib = (uv_lib_t*) malloc(sizeof(uv_lib_t)); + uv_lib_t lib; while (--argc) { fprintf(stderr, "Loading %s\n", argv[argc]); - if (uv_dlopen(argv[argc], lib)) { - fprintf(stderr, "Error: %s\n", uv_dlerror(lib)); + if (uv_dlopen(argv[argc], &lib)) { + fprintf(stderr, "Error: %s\n", uv_dlerror(&lib)); continue; } init_plugin_function init_plugin; - if (uv_dlsym(lib, "initialize", (void **) &init_plugin)) { - fprintf(stderr, "dlsym error: %s\n", uv_dlerror(lib)); + if (uv_dlsym(&lib, "initialize", (void **) &init_plugin)) { + fprintf(stderr, "dlsym error: %s\n", uv_dlerror(&lib)); continue; } init_plugin(); } - return 0; } diff --git a/src/libuv/docs/code/thread-create/main.c b/src/libuv/docs/code/thread-create/main.c index 70224c1e2..7e345ef08 100644 --- a/src/libuv/docs/code/thread-create/main.c +++ b/src/libuv/docs/code/thread-create/main.c @@ -1,5 +1,4 @@ #include -#include #include @@ -7,7 +6,7 @@ void hare(void *arg) { int tracklen = *((int *) arg); while (tracklen) { tracklen--; - sleep(1); + uv_sleep(1000); fprintf(stderr, "Hare ran another step\n"); } fprintf(stderr, "Hare done running!\n"); @@ -18,7 +17,7 @@ void tortoise(void *arg) { while (tracklen) { tracklen--; fprintf(stderr, "Tortoise ran another step\n"); - sleep(3); + uv_sleep(3000); } fprintf(stderr, "Tortoise done running!\n"); } diff --git a/src/libuv/docs/code/tty/main.c b/src/libuv/docs/code/tty/main.c index d44ec62ce..ce3607982 100644 --- a/src/libuv/docs/code/tty/main.c +++ b/src/libuv/docs/code/tty/main.c @@ -5,25 +5,27 @@ uv_loop_t *loop; uv_tty_t tty; + int main() { - loop = uv_default_loop(); + uv_write_t req; + uv_buf_t buf; + uv_write_t req1; + uv_buf_t buf1; + loop = uv_default_loop(); uv_tty_init(loop, &tty, STDOUT_FILENO, 0); uv_tty_set_mode(&tty, UV_TTY_MODE_NORMAL); if (uv_guess_handle(1) == UV_TTY) { - uv_write_t req; - uv_buf_t buf; - buf.base = "\033[41;37m"; - buf.len = strlen(buf.base); - uv_write(&req, (uv_stream_t*) &tty, &buf, 1, NULL); + buf1.base = "\033[41;37m"; + buf1.len = strlen(buf1.base); + uv_write(&req1, (uv_stream_t*) &tty, &buf1, 1, NULL); } - uv_write_t req; - uv_buf_t buf; buf.base = "Hello TTY\n"; buf.len = strlen(buf.base); uv_write(&req, (uv_stream_t*) &tty, &buf, 1, NULL); + uv_tty_reset_mode(); return uv_run(loop, UV_RUN_DEFAULT); } diff --git a/src/libuv/docs/code/udp-dhcp/main.c b/src/libuv/docs/code/udp-dhcp/main.c index fc2ca0c8a..4dc283903 100644 --- a/src/libuv/docs/code/udp-dhcp/main.c +++ b/src/libuv/docs/code/udp-dhcp/main.c @@ -53,7 +53,8 @@ uv_buf_t make_discover_msg() { // HOPS buffer.base[3] = 0x0; // XID 4 bytes - buffer.base[4] = (unsigned int) random(); + if (uv_random(NULL, NULL, &buffer.base[4], 4, 0, NULL)) + abort(); // SECS buffer.base[8] = 0x0; // FLAGS diff --git a/src/libuv/docs/code/uvcat/main.c b/src/libuv/docs/code/uvcat/main.c index b03b09449..01923f2ae 100644 --- a/src/libuv/docs/code/uvcat/main.c +++ b/src/libuv/docs/code/uvcat/main.c @@ -1,7 +1,6 @@ #include #include #include -#include #include void on_read(uv_fs_t *req); diff --git a/src/libuv/docs/code/uvtee/main.c b/src/libuv/docs/code/uvtee/main.c index 6216c2eb4..be307b9a6 100644 --- a/src/libuv/docs/code/uvtee/main.c +++ b/src/libuv/docs/code/uvtee/main.c @@ -1,6 +1,5 @@ #include #include -#include #include #include diff --git a/src/libuv/docs/requirements.txt b/src/libuv/docs/requirements.txt index 8386e0178..0319b3087 100644 --- a/src/libuv/docs/requirements.txt +++ b/src/libuv/docs/requirements.txt @@ -1,42 +1,29 @@ # primary -Sphinx==3.5.4 +furo==2024.8.6 +Sphinx==7.0.1 # dependencies -alabaster==0.7.12 -appdirs==1.4.3 -Babel==2.9.0 -CacheControl==0.12.6 -certifi==2019.11.28 -chardet==3.0.4 -colorama==0.4.3 -contextlib2==0.6.0 -distlib==0.3.0 -distro==1.4.0 -docutils==0.16 -html5lib==1.0.1 -idna==2.8 -imagesize==1.2.0 -ipaddr==2.2.0 -Jinja2==2.11.3 -lockfile==0.12.2 -MarkupSafe==1.1.1 -msgpack==0.6.2 -packaging==20.3 -pep517==0.8.2 -progress==1.5 -Pygments==2.8.1 -pyparsing==2.4.6 -pytoml==0.1.21 -pytz==2021.1 -requests==2.22.0 -retrying==1.3.3 -six==1.14.0 -snowballstemmer==2.1.0 -sphinxcontrib-applehelp==1.0.2 -sphinxcontrib-devhelp==1.0.2 -sphinxcontrib-htmlhelp==1.0.3 +alabaster==0.7.16 +babel==2.17.0 +beautifulsoup4==4.13.3 +certifi==2025.1.31 +charset-normalizer==3.4.1 +docutils==0.20.1 +idna==3.10 +imagesize==1.4.1 +Jinja2==3.1.6 +MarkupSafe==3.0.2 +packaging==24.2 +Pygments==2.19.1 +requests==2.32.3 +snowballstemmer==2.2.0 +soupsieve==2.6 +sphinx-basic-ng==1.0.0b2 +sphinxcontrib-applehelp==2.0.0 +sphinxcontrib-devhelp==2.0.0 +sphinxcontrib-htmlhelp==2.1.0 sphinxcontrib-jsmath==1.0.1 -sphinxcontrib-qthelp==1.0.3 -sphinxcontrib-serializinghtml==1.1.4 -urllib3==1.25.8 -webencodings==0.5.1 +sphinxcontrib-qthelp==2.0.0 +sphinxcontrib-serializinghtml==2.0.0 +typing_extensions==4.13.0 +urllib3==2.3.0 diff --git a/src/libuv/docs/src/conf.py b/src/libuv/docs/src/conf.py index f6f43253d..354759a23 100644 --- a/src/libuv/docs/src/conf.py +++ b/src/libuv/docs/src/conf.py @@ -118,7 +118,7 @@ def get_libuv_version(): # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'nature' +html_theme = 'furo' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the diff --git a/src/libuv/docs/src/design.rst b/src/libuv/docs/src/design.rst index a23e33a21..7ad62076f 100644 --- a/src/libuv/docs/src/design.rst +++ b/src/libuv/docs/src/design.rst @@ -36,6 +36,31 @@ Requests represent (typically) short-lived operations. These operations can be p handle: write requests are used to write data on a handle; or standalone: getaddrinfo requests don't need a handle they run directly on the loop. +Guidelines for dealing with handles and requests: + +1. If `uv_foo_init()` succeeds in initializing the handle, you must call + :c:func:`uv_close()`. If the handle's init function errors, you don't + need to do anything. + +2. Only handles are closed, not requests. For example, :c:type:`uv_tcp_t` + is a handle, :c:type:`uv_write_t` is a request. + +3. The handle's memory can only be reclaimed or reused from inside the + :c:type:`uv_close_cb` or afterwards, not before. + +4. Most handles have init + start/stop functions; some handles don't. + Example: :c:type:`uv_tcp_t` vs. :c:type:`uv_process_t`; :c:func:`uv_spawn()` + combines handle initialization and process start into one. + +5. Requests are closed automatically when they complete, or when they are + cancelled with :c:func:`uv_cancel()`. + +6. No additional cleanup is needed except for :c:type:`uv_fs_t` and + :c:type:`uv_getaddrinfo_t` requests. For :c:type:`uv_fs_t`, call + :c:func:`uv_fs_req_cleanup()` once you are done with it; for + :c:type:`uv_getaddrinfo_t`, that's :c:func:`uv_freeaddrinfo()`. + +7. The request's memory can only be reclaimed or reused from that point onward. The I/O loop ^^^^^^^^^^^^ @@ -60,16 +85,15 @@ stages of a loop iteration: :align: center -#. The loop concept of 'now' is updated. The event loop caches the current time at the start of - the event loop tick in order to reduce the number of time-related system calls. +#. The loop concept of 'now' is initially set. + +#. Due timers are run if the loop was run with ``UV_RUN_DEFAULT``. All active timers scheduled + for a time before the loop's concept of *now* get their callbacks called. #. If the loop is *alive* an iteration is started, otherwise the loop will exit immediately. So, when is a loop considered to be *alive*? If a loop has active and ref'd handles, active requests or closing handles it's considered to be *alive*. -#. Due timers are run. All active timers scheduled for a time before the loop's concept of *now* - get their callbacks called. - #. Pending callbacks are called. All I/O callbacks are called right after polling for I/O, for the most part. There are cases, however, in which calling such a callback is deferred for the next loop iteration. If the previous iteration deferred any I/O callback it will be run at this point. @@ -101,9 +125,11 @@ stages of a loop iteration: #. Close callbacks are called. If a handle was closed by calling :c:func:`uv_close` it will get the close callback called. -#. Special case in case the loop was run with ``UV_RUN_ONCE``, as it implies forward progress. - It's possible that no I/O callbacks were fired after blocking for I/O, but some time has passed - so there might be timers which are due, those timers get their callbacks called. +#. The loop concept of 'now' is updated. + +#. Due timers are run. Note that 'now' is not updated again until the next loop iteration. + So if a timer became due while other timers were being processed, it won't be run until + the following event loop iteration. #. Iteration ends. If the loop was run with ``UV_RUN_NOWAIT`` or ``UV_RUN_ONCE`` modes the iteration ends and :c:func:`uv_run` will return. If the loop was run with ``UV_RUN_DEFAULT`` @@ -125,7 +151,7 @@ File I/O Unlike network I/O, there are no platform-specific file I/O primitives libuv could rely on, so the current approach is to run blocking file I/O operations in a thread pool. -For a thorough explanation of the cross-platform file I/O landscape, checkout +For a thorough explanation of the cross-platform file I/O landscape, check out `this post `_. libuv currently uses a global thread pool on which all loops can queue work. 3 types of diff --git a/src/libuv/docs/src/errors.rst b/src/libuv/docs/src/errors.rst index c7240f354..a2e94d96a 100644 --- a/src/libuv/docs/src/errors.rst +++ b/src/libuv/docs/src/errors.rst @@ -339,6 +339,9 @@ Error constants socket type not supported +.. c:macro:: UV_EUNATCH + + protocol driver not attached API --- diff --git a/src/libuv/docs/src/fs.rst b/src/libuv/docs/src/fs.rst index 0bf2abed5..99524e702 100644 --- a/src/libuv/docs/src/fs.rst +++ b/src/libuv/docs/src/fs.rst @@ -12,6 +12,15 @@ otherwise it will be performed asynchronously. All file operations are run on the threadpool. See :ref:`threadpool` for information on the threadpool size. +Starting with libuv v1.45.0, some file operations on Linux are handed off to +`io_uring ` when possible. Apart from +a (sometimes significant) increase in throughput there should be no change in +observable behavior. Libuv reverts to using its threadpool when the necessary +kernel features are unavailable or unsuitable. Starting with libuv v1.49.0 this +behavior was reverted and Libuv on Linux by default will be using the threadpool +again. In order to enable io_uring the :c:type:`uv_loop_t` instance must be +configured with the :c:type:`UV_LOOP_USE_IO_URING_SQPOLL` option. + .. note:: On Windows `uv_fs_*` functions use utf-8 encoding. @@ -24,7 +33,8 @@ Data types .. c:type:: uv_timespec_t - Portable equivalent of ``struct timespec``. + Y2K38-unsafe data type for storing times with nanosecond resolution. + Will be replaced with :c:type:`uv_timespec64_t` in libuv v2.0. :: @@ -119,13 +129,13 @@ Data types uint64_t f_bavail; uint64_t f_files; uint64_t f_ffree; - uint64_t f_spare[4]; + uint64_t f_frsize; + uint64_t f_spare[3]; } uv_statfs_t; -.. c:enum:: uv_dirent_t +.. c:enum:: uv_dirent_type_t - Cross platform (reduced) equivalent of ``struct dirent``. - Used in :c:func:`uv_fs_scandir_next`. + Type of dirent. :: @@ -140,6 +150,14 @@ Data types UV_DIRENT_BLOCK } uv_dirent_type_t; + +.. c:type:: uv_dirent_t + + Cross platform (reduced) equivalent of ``struct dirent``. + Used in :c:func:`uv_fs_scandir_next`. + + :: + typedef struct uv_dirent_s { const char* name; uv_dirent_type_t type; @@ -160,6 +178,10 @@ Data types size_t nentries; } uv_dir_t; +.. c:type:: void (*uv_fs_cb)(uv_fs_t* req) + + Callback called when a request is completed asynchronously. + Public members ^^^^^^^^^^^^^^ @@ -218,7 +240,8 @@ API .. c:function:: int uv_fs_read(uv_loop_t* loop, uv_fs_t* req, uv_file file, const uv_buf_t bufs[], unsigned int nbufs, int64_t offset, uv_fs_cb cb) - Equivalent to :man:`preadv(2)`. + Equivalent to :man:`preadv(2)`. If the `offset` argument is `-1`, then + the current file offset is used and updated. .. warning:: On Windows, under non-MSVC environments (e.g. when GCC or Clang is used @@ -231,7 +254,8 @@ API .. c:function:: int uv_fs_write(uv_loop_t* loop, uv_fs_t* req, uv_file file, const uv_buf_t bufs[], unsigned int nbufs, int64_t offset, uv_fs_cb cb) - Equivalent to :man:`pwritev(2)`. + Equivalent to :man:`pwritev(2)`. If the `offset` argument is `-1`, then + the current file offset is used and updated. .. warning:: On Windows, under non-MSVC environments (e.g. when GCC or Clang is used @@ -407,6 +431,12 @@ API Equivalent to :man:`utime(2)`, :man:`futimes(3)` and :man:`lutimes(3)` respectively. + Passing `UV_FS_UTIME_NOW` as the atime or mtime sets the timestamp to the + current time. + + Passing `UV_FS_UTIME_OMIT` as the atime or mtime leaves the timestamp + untouched. + .. note:: z/OS: `uv_fs_lutime()` is not implemented for z/OS. It can still be called but will return ``UV_ENOSYS``. @@ -441,7 +471,7 @@ API .. c:function:: int uv_fs_realpath(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_fs_cb cb) - Equivalent to :man:`realpath(3)` on Unix. Windows uses `GetFinalPathNameByHandle `_. + Equivalent to :man:`realpath(3)` on Unix. Windows uses `GetFinalPathNameByHandleW `_. The resulting string is stored in `req->ptr`. .. warning:: @@ -463,10 +493,6 @@ API The background story and some more details on these issues can be checked `here `_. - .. note:: - This function is not implemented on Windows XP and Windows Server 2003. - On these systems, UV_ENOSYS is returned. - .. versionadded:: 1.8.0 .. c:function:: int uv_fs_chown(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_uid_t uid, uv_gid_t gid, uv_fs_cb cb) @@ -644,7 +670,7 @@ File open constants .. note:: `UV_FS_O_RANDOM` is only supported on Windows via - `FILE_FLAG_RANDOM_ACCESS `_. + `FILE_FLAG_RANDOM_ACCESS `_. .. c:macro:: UV_FS_O_RDONLY @@ -661,7 +687,7 @@ File open constants .. note:: `UV_FS_O_SEQUENTIAL` is only supported on Windows via - `FILE_FLAG_SEQUENTIAL_SCAN `_. + `FILE_FLAG_SEQUENTIAL_SCAN `_. .. c:macro:: UV_FS_O_SHORT_LIVED @@ -669,7 +695,7 @@ File open constants .. note:: `UV_FS_O_SHORT_LIVED` is only supported on Windows via - `FILE_ATTRIBUTE_TEMPORARY `_. + `FILE_ATTRIBUTE_TEMPORARY `_. .. c:macro:: UV_FS_O_SYMLINK @@ -690,7 +716,7 @@ File open constants .. note:: `UV_FS_O_TEMPORARY` is only supported on Windows via - `FILE_ATTRIBUTE_TEMPORARY `_. + `FILE_ATTRIBUTE_TEMPORARY `_. .. c:macro:: UV_FS_O_TRUNC diff --git a/src/libuv/docs/src/fs_event.rst b/src/libuv/docs/src/fs_event.rst index e28ec625e..bfdecdd73 100644 --- a/src/libuv/docs/src/fs_event.rst +++ b/src/libuv/docs/src/fs_event.rst @@ -39,11 +39,20 @@ Data types .. c:type:: void (*uv_fs_event_cb)(uv_fs_event_t* handle, const char* filename, int events, int status) Callback passed to :c:func:`uv_fs_event_start` which will be called repeatedly - after the handle is started. If the handle was started with a directory the - `filename` parameter will be a relative path to a file contained in the directory. - The `events` parameter is an ORed mask of :c:type:`uv_fs_event` elements. + after the handle is started. -.. c:type:: uv_fs_event + If the handle was started with a directory the `filename` parameter will + be a relative path to a file contained in the directory, or `NULL` if the + file name cannot be determined. + + The `events` parameter is an ORed mask of :c:enum:`uv_fs_event` elements. + +.. note:: + For FreeBSD path could sometimes be `NULL` due to a kernel bug. + + .. _Reference: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197695 + +.. c:enum:: uv_fs_event Event types that :c:type:`uv_fs_event_t` handles monitor. @@ -54,7 +63,7 @@ Data types UV_CHANGE = 2 }; -.. c:type:: uv_fs_event_flags +.. c:enum:: uv_fs_event_flags Flags that can be passed to :c:func:`uv_fs_event_start` to control its behavior. @@ -105,10 +114,13 @@ API .. c:function:: int uv_fs_event_start(uv_fs_event_t* handle, uv_fs_event_cb cb, const char* path, unsigned int flags) Start the handle with the given callback, which will watch the specified - `path` for changes. `flags` can be an ORed mask of :c:type:`uv_fs_event_flags`. + `path` for changes. `flags` can be an ORed mask of :c:enum:`uv_fs_event_flags`. .. note:: Currently the only supported flag is ``UV_FS_EVENT_RECURSIVE`` and only on OSX and Windows. + .. note:: On macOS, events collected by the OS immediately before calling + ``uv_fs_event_start`` might be reported to the `uv_fs_event_cb` + callback. .. c:function:: int uv_fs_event_stop(uv_fs_event_t* handle) diff --git a/src/libuv/docs/src/guide/basics.rst b/src/libuv/docs/src/guide/basics.rst index 457fb15cb..2b21d730c 100644 --- a/src/libuv/docs/src/guide/basics.rst +++ b/src/libuv/docs/src/guide/basics.rst @@ -71,7 +71,7 @@ architecture of libuv and its background. If you have no prior experience with either libuv or libev, it is a quick, useful watch. libuv's event loop is explained in more detail in the `documentation -`_. +`_. .. raw:: html @@ -109,6 +109,11 @@ A default loop is provided by libuv and can be accessed using ``uv_default_loop()``. You should use this loop if you only want a single loop. +.. rubric:: default-loop/main.c +.. literalinclude:: ../../code/default-loop/main.c + :language: c + :linenos: + .. note:: node.js uses the default loop as its main loop. If you are writing bindings @@ -119,9 +124,9 @@ loop. Error handling -------------- -Initialization functions or synchronous functions which may fail return a negative number on error. Async functions that may fail will pass a status parameter to their callbacks. The error messages are defined as ``UV_E*`` `constants`_. +Initialization functions or synchronous functions which may fail return a negative number on error. Async functions that may fail will pass a status parameter to their callbacks. The error messages are defined as ``UV_E*`` `constants`_. -.. _constants: http://docs.libuv.org/en/v1.x/errors.html#error-constants +.. _constants: https://docs.libuv.org/en/v1.x/errors.html#error-constants You can use the ``uv_strerror(int)`` and ``uv_err_name(int)`` functions to get a ``const char *`` describing the error or the error name respectively. @@ -134,7 +139,7 @@ Handles and Requests libuv works by the user expressing interest in particular events. This is usually done by creating a **handle** to an I/O device, timer or process. Handles are opaque structs named as ``uv_TYPE_t`` where type signifies what the -handle is used for. +handle is used for. .. rubric:: libuv watchers .. code-block:: c @@ -169,6 +174,16 @@ handle is used for. typedef struct uv_udp_send_s uv_udp_send_t; typedef struct uv_fs_s uv_fs_t; typedef struct uv_work_s uv_work_t; + typedef struct uv_random_s uv_random_t; + + /* None of the above. */ + typedef struct uv_env_item_s uv_env_item_t; + typedef struct uv_cpu_info_s uv_cpu_info_t; + typedef struct uv_interface_address_s uv_interface_address_t; + typedef struct uv_dirent_s uv_dirent_t; + typedef struct uv_passwd_s uv_passwd_t; + typedef struct uv_utsname_s uv_utsname_t; + typedef struct uv_statfs_s uv_statfs_t; Handles represent long-lived objects. Async operations on such handles are diff --git a/src/libuv/docs/src/guide/filesystem.rst b/src/libuv/docs/src/guide/filesystem.rst index 2d5f6cb92..c0bfbf5b5 100644 --- a/src/libuv/docs/src/guide/filesystem.rst +++ b/src/libuv/docs/src/guide/filesystem.rst @@ -13,7 +13,7 @@ Simple filesystem read/write is achieved using the ``uv_fs_*`` functions and the watchers registered with the event loop when application interaction is required. -.. _thread pool: http://docs.libuv.org/en/v1.x/threadpool.html#thread-pool-work-scheduling +.. _thread pool: https://docs.libuv.org/en/v1.x/threadpool.html#thread-pool-work-scheduling All filesystem functions have two forms - *synchronous* and *asynchronous*. @@ -66,7 +66,7 @@ The ``result`` field of a ``uv_fs_t`` is the file descriptor in case of the .. literalinclude:: ../../code/uvcat/main.c :language: c :linenos: - :lines: 26-40 + :lines: 26-39 :emphasize-lines: 2,8,12 In the case of a read call, you should pass an *initialized* buffer which will @@ -91,7 +91,7 @@ callbacks. .. literalinclude:: ../../code/uvcat/main.c :language: c :linenos: - :lines: 16-24 + :lines: 17-24 :emphasize-lines: 6 .. warning:: @@ -132,6 +132,7 @@ same patterns as the read/write/open calls, returning the result in the int uv_fs_copyfile(uv_loop_t* loop, uv_fs_t* req, const char* path, const char* new_path, int flags, uv_fs_cb cb); int uv_fs_mkdir(uv_loop_t* loop, uv_fs_t* req, const char* path, int mode, uv_fs_cb cb); int uv_fs_mkdtemp(uv_loop_t* loop, uv_fs_t* req, const char* tpl, uv_fs_cb cb); + int uv_fs_mkstemp(uv_loop_t* loop, uv_fs_t* req, const char* tpl, uv_fs_cb cb); int uv_fs_rmdir(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_fs_cb cb); int uv_fs_scandir(uv_loop_t* loop, uv_fs_t* req, const char* path, int flags, uv_fs_cb cb); int uv_fs_scandir_next(uv_fs_t* req, uv_dirent_t* ent); @@ -149,6 +150,7 @@ same patterns as the read/write/open calls, returning the result in the int uv_fs_chmod(uv_loop_t* loop, uv_fs_t* req, const char* path, int mode, uv_fs_cb cb); int uv_fs_utime(uv_loop_t* loop, uv_fs_t* req, const char* path, double atime, double mtime, uv_fs_cb cb); int uv_fs_futime(uv_loop_t* loop, uv_fs_t* req, uv_file file, double atime, double mtime, uv_fs_cb cb); + int uv_fs_lutime(uv_loop_t* loop, uv_fs_t* req, const char* path, double atime, double mtime, uv_fs_cb cb); int uv_fs_lstat(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_fs_cb cb); int uv_fs_link(uv_loop_t* loop, uv_fs_t* req, const char* path, const char* new_path, uv_fs_cb cb); int uv_fs_symlink(uv_loop_t* loop, uv_fs_t* req, const char* path, const char* new_path, int flags, uv_fs_cb cb); @@ -158,6 +160,7 @@ same patterns as the read/write/open calls, returning the result in the int uv_fs_chown(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_uid_t uid, uv_gid_t gid, uv_fs_cb cb); int uv_fs_fchown(uv_loop_t* loop, uv_fs_t* req, uv_file file, uv_uid_t uid, uv_gid_t gid, uv_fs_cb cb); int uv_fs_lchown(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_uid_t uid, uv_gid_t gid, uv_fs_cb cb); + int uv_fs_statfs(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_fs_cb cb); .. _buffers-and-streams: @@ -190,7 +193,7 @@ and freed by the application. .. ERROR:: - THIS PROGRAM DOES NOT ALWAYS WORK, NEED SOMETHING BETTER** + **THIS PROGRAM DOES NOT ALWAYS WORK, NEED SOMETHING BETTER** To demonstrate streams we will need to use ``uv_pipe_t``. This allows streaming local files [#]_. Here is a simple tee utility using libuv. Doing all operations @@ -209,7 +212,7 @@ opened as bidirectional by default. .. literalinclude:: ../../code/uvtee/main.c :language: c :linenos: - :lines: 61-80 + :lines: 62-80 :emphasize-lines: 4,5,15 The third argument of ``uv_pipe_init()`` should be set to 1 for IPC using named @@ -285,6 +288,13 @@ a command whenever any of the watched files change:: ./onchange [file2] ... +.. note:: + + Currently this example only works on OSX and Windows. + Refer to the `notes of uv_fs_event_start`_ function. + +.. _notes of uv_fs_event_start: https://docs.libuv.org/en/v1.x/fs_event.html#c.uv_fs_event_start + The file change notification is started using ``uv_fs_event_init()``: .. rubric:: onchange/main.c - The setup @@ -300,8 +310,8 @@ argument, ``flags``, can be: .. code-block:: c /* - * Flags to be passed to uv_fs_event_start(). - */ + * Flags to be passed to uv_fs_event_start(). + */ enum uv_fs_event_flags { UV_FS_EVENT_WATCH_ENTRY = 1, UV_FS_EVENT_STAT = 2, @@ -319,9 +329,9 @@ The callback will receive the following arguments: #. ``const char *filename`` - If a directory is being monitored, this is the file which was changed. Only non-``null`` on Linux and Windows. May be ``null`` even on those platforms. - #. ``int flags`` - one of ``UV_RENAME`` or ``UV_CHANGE``, or a bitwise OR of - both. - #. ``int status`` - Currently 0. + #. ``int events`` - one of ``UV_RENAME`` or ``UV_CHANGE``, or a bitwise OR of + both. + #. ``int status`` - If ``status < 0``, there is an :ref:`libuv error`. In our example we simply print the arguments and run the command using ``system()``. diff --git a/src/libuv/docs/src/guide/introduction.rst b/src/libuv/docs/src/guide/introduction.rst index 0656e4d85..91f0fa558 100644 --- a/src/libuv/docs/src/guide/introduction.rst +++ b/src/libuv/docs/src/guide/introduction.rst @@ -8,7 +8,7 @@ It is meant to cover the main areas of libuv, but is not a comprehensive reference discussing every function and data structure. The `official libuv documentation`_ may be consulted for full details. -.. _official libuv documentation: http://docs.libuv.org/en/v1.x/ +.. _official libuv documentation: https://docs.libuv.org/en/v1.x/ This book is still a work in progress, so sections may be incomplete, but I hope you will enjoy it as it grows. @@ -47,25 +47,23 @@ Since then libuv has continued to mature and become a high quality standalone library for system programming. Users outside of node.js include Mozilla's Rust_ programming language, and a variety_ of language bindings. -This book and the code is based on libuv version `v1.3.0`_. +This book and the code is based on libuv version `v1.42.0`_. Code ---- -All the code from this book is included as part of the source of the book on -Github. `Clone`_/`Download`_ the book, then build libuv:: +All the example code and the source of the book is included as part of +the libuv_ project on GitHub. +Clone or Download libuv_, then build it:: - cd libuv - ./autogen.sh + sh autogen.sh ./configure make There is no need to ``make install``. To build the examples run ``make`` in the -``code/`` directory. +``docs/code/`` directory. -.. _Clone: https://github.com/nikhilm/uvbook -.. _Download: https://github.com/nikhilm/uvbook/downloads -.. _v1.3.0: https://github.com/libuv/libuv/tags +.. _v1.42.0: https://github.com/libuv/libuv/releases/tag/v1.42.0 .. _V8: https://v8.dev .. _libev: http://software.schmorp.de/pkg/libev.html .. _libuv: https://github.com/libuv/libuv diff --git a/src/libuv/docs/src/guide/networking.rst b/src/libuv/docs/src/guide/networking.rst index dcb564313..892ade002 100644 --- a/src/libuv/docs/src/guide/networking.rst +++ b/src/libuv/docs/src/guide/networking.rst @@ -164,7 +164,7 @@ IPv6 stack only IPv6 sockets can be used for both IPv4 and IPv6 communication. If you want to restrict the socket to IPv6 only, pass the ``UV_UDP_IPV6ONLY`` flag to -``uv_udp_bind`` [#]_. +``uv_udp_bind``. Multicast ~~~~~~~~~ @@ -250,7 +250,6 @@ times, with each address being reported once. ---- .. [#] https://beej.us/guide/bgnet/html/#broadcast-packetshello-world -.. [#] on Windows only supported on Windows Vista and later. .. [#] https://www.tldp.org/HOWTO/Multicast-HOWTO-6.html#ss6.1 .. [#] libuv use the system ``getaddrinfo`` in the libuv threadpool. libuv v0.8.0 and earlier also included c-ares_ as an alternative, but this has been diff --git a/src/libuv/docs/src/guide/processes.rst b/src/libuv/docs/src/guide/processes.rst index c1278f17f..024af1db4 100644 --- a/src/libuv/docs/src/guide/processes.rst +++ b/src/libuv/docs/src/guide/processes.rst @@ -53,6 +53,8 @@ ID of the child process. The exit callback will be invoked with the *exit status* and the type of *signal* which caused the exit. +Note that it is important **not** to call ``uv_close`` before the exit callback. + .. rubric:: spawn/main.c .. literalinclude:: ../../code/spawn/main.c :language: c @@ -126,7 +128,8 @@ of ``uv_kill`` is:: For processes started using libuv, you may use ``uv_process_kill`` instead, which accepts the ``uv_process_t`` watcher as the first argument, rather than -the pid. In this case, **remember to call** ``uv_close`` on the watcher. +the pid. In this case, **remember to call** ``uv_close`` on the watcher _after_ +the exit callback has been called. Signals ------- @@ -330,7 +333,7 @@ to hand off their I/O to other processes. Applications include load-balancing servers, worker processes and other ways to make optimum use of CPU. libuv only supports sending **TCP sockets or other pipes** over pipes for now. -To demonstrate, we will look at a echo server implementation that hands of +To demonstrate, we will look at an echo server implementation that hands off clients to worker processes in a round-robin fashion. This program is a bit involved, and while only snippets are included in the book, it is recommended to read the full code to really understand it. diff --git a/src/libuv/docs/src/guide/threads.rst b/src/libuv/docs/src/guide/threads.rst index 3990e4428..f5f984513 100644 --- a/src/libuv/docs/src/guide/threads.rst +++ b/src/libuv/docs/src/guide/threads.rst @@ -258,7 +258,8 @@ up a signal handler for termination. :lines: 43- When the user triggers the signal by pressing ``Ctrl+C`` we send -``uv_cancel()`` to all the workers. ``uv_cancel()`` will return ``0`` for those that are already executing or finished. +``uv_cancel()`` to all the workers. ``uv_cancel()`` will return ``0`` for those +tasks that are pending execution and could be cancelled. .. rubric:: queue-cancel/main.c .. literalinclude:: ../../code/queue-cancel/main.c diff --git a/src/libuv/docs/src/guide/utilities.rst b/src/libuv/docs/src/guide/utilities.rst index 4657b1b0b..9a399a7fa 100644 --- a/src/libuv/docs/src/guide/utilities.rst +++ b/src/libuv/docs/src/guide/utilities.rst @@ -220,7 +220,7 @@ progress with the download whenever libuv notifies of I/O readiness. .. literalinclude:: ../../code/uvwget/main.c :language: c :linenos: - :lines: 1-9,140- + :lines: 1-9,142- :emphasize-lines: 7,21,24-25 The way each library is integrated with libuv will vary. In the case of @@ -235,7 +235,7 @@ Our downloader is to be invoked as:: $ ./uvwget [url1] [url2] ... -So we add each argument as an URL +So we add each argument as a URL .. rubric:: uvwget/main.c - Adding urls .. literalinclude:: ../../code/uvwget/main.c @@ -363,7 +363,7 @@ to get the error message. argument. ``init_plugin_function`` is a function pointer to the sort of function we are looking for in the application's plugins. -.. _shared libraries: https://en.wikipedia.org/wiki/Shared_library#Shared_libraries +.. _shared libraries: https://en.wikipedia.org/wiki/Shared_library TTY --- @@ -435,7 +435,7 @@ As you can see this is very useful to produce nicely formatted output, or even console based arcade games if that tickles your fancy. For fancier control you can try `ncurses`_. -.. _ncurses: https://www.gnu.org/software/ncurses/ncurses.html +.. _ncurses: https://invisible-island.net/ncurses/announce.html .. versionchanged:: 1.23.1: the `readable` parameter is now unused and ignored. The appropriate value will now be auto-detected from the kernel. diff --git a/src/libuv/docs/src/handle.rst b/src/libuv/docs/src/handle.rst index 0edb7d7ad..2b1b8eec9 100644 --- a/src/libuv/docs/src/handle.rst +++ b/src/libuv/docs/src/handle.rst @@ -94,7 +94,7 @@ Public members .. c:member:: uv_handle_type uv_handle_t.type - The :c:type:`uv_handle_type`, indicating the type of the underlying handle. Readonly. + The :c:enum:`uv_handle_type`, indicating the type of the underlying handle. Readonly. .. c:member:: void* uv_handle_t.data @@ -153,6 +153,9 @@ API In-progress requests, like uv_connect_t or uv_write_t, are cancelled and have their callbacks called asynchronously with status=UV_ECANCELED. + `close_cb` can be `NULL` in cases where no cleanup or deallocation is + necessary. + .. c:function:: void uv_ref(uv_handle_t* handle) Reference the given handle. References are idempotent, that is, if a handle @@ -245,7 +248,7 @@ just for some handle types. .. versionadded:: 1.19.0 -.. c:function:: void* uv_handle_set_data(uv_handle_t* handle, void* data) +.. c:function:: void uv_handle_set_data(uv_handle_t* handle, void* data) Sets `handle->data` to `data`. diff --git a/src/libuv/docs/src/index.rst b/src/libuv/docs/src/index.rst index 5bdb4be84..448de4066 100644 --- a/src/libuv/docs/src/index.rst +++ b/src/libuv/docs/src/index.rst @@ -58,5 +58,5 @@ libuv can be downloaded from `here `_. Installation ------------ -Installation instructions can be found in `the README `_. +Installation instructions can be found in the `README `_. diff --git a/src/libuv/docs/src/loop.rst b/src/libuv/docs/src/loop.rst index 0f5ddfb3c..3d1973ba4 100644 --- a/src/libuv/docs/src/loop.rst +++ b/src/libuv/docs/src/loop.rst @@ -16,6 +16,19 @@ Data types Loop data type. +.. c:enum:: uv_loop_option + + Additional loop options. + See :c:func:`uv_loop_configure`. + + :: + + typedef enum { + UV_LOOP_BLOCK_SIGNAL = 0, + UV_METRICS_IDLE_TIME, + UV_LOOP_USE_IO_URING_SQPOLL + } uv_loop_option; + .. c:enum:: uv_run_mode Mode used to run the loop with :c:func:`uv_run`. @@ -73,8 +86,13 @@ API This option is necessary to use :c:func:`uv_metrics_idle_time`. + - UV_LOOP_USE_IO_URING_SQPOLL: Enable SQPOLL io_uring instance to handle + asynchronous file system operations. + .. versionchanged:: 1.39.0 added the UV_METRICS_IDLE_TIME option. + .. versionchanged:: 1.49.0 added the UV_LOOP_USE_IO_URING_SQPOLL option. + .. c:function:: int uv_loop_close(uv_loop_t* loop) Releases all internal loop resources. Call this function only when the loop @@ -238,7 +256,7 @@ API .. versionadded:: 1.19.0 -.. c:function:: void* uv_loop_set_data(uv_loop_t* loop, void* data) +.. c:function:: void uv_loop_set_data(uv_loop_t* loop, void* data) Sets `loop->data` to `data`. diff --git a/src/libuv/docs/src/metrics.rst b/src/libuv/docs/src/metrics.rst index 696c620d1..0141d0328 100644 --- a/src/libuv/docs/src/metrics.rst +++ b/src/libuv/docs/src/metrics.rst @@ -4,8 +4,46 @@ Metrics operations ====================== -libuv provides a metrics API to track the amount of time the event loop has -spent idle in the kernel's event provider. +libuv provides a metrics API to track various internal operations of the event +loop. + + +Data types +---------- + +.. c:type:: uv_metrics_t + + The struct that contains event loop metrics. It is recommended to retrieve + these metrics in a :c:type:`uv_prepare_cb` in order to make sure there are + no inconsistencies with the metrics counters. + + :: + + typedef struct { + uint64_t loop_count; + uint64_t events; + uint64_t events_waiting; + /* private */ + uint64_t* reserved[13]; + } uv_metrics_t; + + +Public members +^^^^^^^^^^^^^^ + +.. c:member:: uint64_t uv_metrics_t.loop_count + + Number of event loop iterations. + +.. c:member:: uint64_t uv_metrics_t.events + + Number of events that have been processed by the event handler. + +.. c:member:: uint64_t uv_metrics_t.events_waiting + + Number of events that were waiting to be processed when the event provider + was called. + API --- @@ -25,3 +63,9 @@ API :c:type:`UV_METRICS_IDLE_TIME`. .. versionadded:: 1.39.0 + +.. c:function:: int uv_metrics_info(uv_loop_t* loop, uv_metrics_t* metrics) + + Copy the current set of event loop metrics to the ``metrics`` pointer. + + .. versionadded:: 1.45.0 diff --git a/src/libuv/docs/src/misc.rst b/src/libuv/docs/src/misc.rst index 8017e8e15..09db6244a 100644 --- a/src/libuv/docs/src/misc.rst +++ b/src/libuv/docs/src/misc.rst @@ -73,7 +73,8 @@ Data types .. c:type:: uv_timeval_t - Data type for storing times. + Y2K38-unsafe data type for storing times with microsecond resolution. + Will be replaced with :c:type:`uv_timeval64_t` in libuv v2.0. :: @@ -84,7 +85,7 @@ Data types .. c:type:: uv_timeval64_t - Alternative data type for storing times. + Y2K38-safe data type for storing times with microsecond resolution. :: @@ -93,6 +94,28 @@ Data types int32_t tv_usec; } uv_timeval64_t; +.. c:type:: uv_timespec64_t + + Y2K38-safe data type for storing times with nanosecond resolution. + + :: + + typedef struct { + int64_t tv_sec; + int32_t tv_nsec; + } uv_timespec64_t; + +.. c:enum:: uv_clock_id + + Clock source for :c:func:`uv_clock_gettime`. + + :: + + typedef enum { + UV_CLOCK_MONOTONIC, + UV_CLOCK_REALTIME + } uv_clock_id; + .. c:type:: uv_rusage_t Data type for resource usage results. @@ -119,7 +142,10 @@ Data types } uv_rusage_t; Members marked with `(X)` are unsupported on Windows. - See :man:`getrusage(2)` for supported fields on Unix + See :man:`getrusage(2)` for supported fields on UNIX-like platforms. + + The maximum resident set size is reported in kilobytes, the unit most + platforms use natively. .. c:type:: uv_cpu_info_t @@ -173,6 +199,18 @@ Data types char* homedir; } uv_passwd_t; +.. c:type:: uv_group_t + + Data type for group file information. + + :: + + typedef struct uv_group_s { + char* groupname; + unsigned long gid; + char** members; + } uv_group_t; + .. c:type:: uv_utsname_t Data type for operating system name and version information. @@ -211,7 +249,7 @@ API type of the stdio streams. For :man:`isatty(3)` equivalent functionality use this function and test - for ``UV_TTY``. + for `UV_TTY`. .. c:function:: int uv_replace_allocator(uv_malloc_func malloc_func, uv_realloc_func realloc_func, uv_calloc_func calloc_func, uv_free_func free_func) @@ -225,8 +263,8 @@ API after all resources have been freed and thus libuv doesn't reference any allocated memory chunk. - On success, it returns 0, if any of the function pointers is NULL it - returns UV_EINVAL. + On success, it returns 0, if any of the function pointers is `NULL` it + returns `UV_EINVAL`. .. warning:: There is no protection against changing the allocator multiple times. If the user changes it they are responsible for making @@ -312,7 +350,7 @@ API .. c:function:: int uv_uptime(double* uptime) - Gets the current system uptime. + Gets the current system uptime. Depending on the system full or fractional seconds are returned. .. c:function:: int uv_getrusage(uv_rusage_t* rusage) @@ -322,6 +360,17 @@ API On Windows not all fields are set, the unsupported fields are filled with zeroes. See :c:type:`uv_rusage_t` for more details. +.. c:function:: int uv_getrusage_thread(uv_rusage_t* rusage) + + Gets the resource usage measures for the calling thread. + + .. versionadded:: 1.50.0 + + .. note:: + Not supported on all platforms. May return `UV_ENOTSUP`. + On macOS and Windows not all fields are set, the unsupported fields are filled with zeroes. + See :c:type:`uv_rusage_t` for more details. + .. c:function:: uv_pid_t uv_os_getpid(void) Returns the current process ID. @@ -334,15 +383,41 @@ API .. versionadded:: 1.16.0 +.. c:function:: unsigned int uv_available_parallelism(void) + + Returns an estimate of the default amount of parallelism a program should + use. Always returns a non-zero value. + + On Linux, inspects the calling thread's CPU affinity mask to determine if + it has been pinned to specific CPUs. + + On Windows, the available parallelism may be underreported on systems with + more than 64 logical CPUs. + + On other platforms, reports the number of CPUs that the operating system + considers to be online. + + .. versionadded:: 1.44.0 + .. c:function:: int uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count) Gets information about the CPUs on the system. The `cpu_infos` array will have `count` elements and needs to be freed with :c:func:`uv_free_cpu_info`. + Use :c:func:`uv_available_parallelism` if you need to know how many CPUs + are available for threads or child processes. + .. c:function:: void uv_free_cpu_info(uv_cpu_info_t* cpu_infos, int count) Frees the `cpu_infos` array previously allocated with :c:func:`uv_cpu_info`. +.. c:function:: int uv_cpumask_size(void) + + Returns the maximum size of the mask used for process/thread affinities, + or `UV_ENOTSUP` if affinities are not supported on the current platform. + + .. versionadded:: 1.45.0 + .. c:function:: int uv_interface_addresses(uv_interface_address_t** addresses, int* count) Gets address information about the network interfaces on the system. An @@ -447,6 +522,10 @@ API Gets the executable path. You *must* call `uv_setup_args` before calling this function. + Be careful in setuid executables. On some platforms the executable path + is an arbitrary string that is controlled by the user. On other platforms + environment variables are consulted that may be under control of the user. + .. c:function:: int uv_cwd(char* buffer, size_t* size) Gets the current working directory, and stores it in `buffer`. If the @@ -514,6 +593,35 @@ API .. versionadded:: 1.9.0 +.. c:function:: int uv_os_get_passwd2(uv_passwd_t* pwd, uv_uid_t uid) + + Gets a subset of the password file entry for the provided uid. + The populated data includes the username, euid, gid, shell, + and home directory. On non-Windows systems, all data comes from + :man:`getpwuid_r(3)`. On Windows, uid and gid are set to -1 and have no + meaning, and shell is `NULL`. After successfully calling this function, the + memory allocated to `pwd` needs to be freed with + :c:func:`uv_os_free_passwd`. + + .. versionadded:: 1.45.0 + +.. c:function:: int uv_os_get_group(uv_group_t* group, uv_uid_t gid) + + Gets a subset of the group file entry for the provided uid. + The populated data includes the group name, gid, and members. On non-Windows + systems, all data comes from :man:`getgrgid_r(3)`. On Windows, uid and gid + are set to -1 and have no meaning. After successfully calling this function, + the memory allocated to `group` needs to be freed with + :c:func:`uv_os_free_group`. + + .. versionadded:: 1.45.0 + +.. c:function:: void uv_os_free_group(uv_passwd_t* pwd) + + Frees the memory previously allocated with :c:func:`uv_os_get_group`. + + .. versionadded:: 1.45.0 + .. c:function:: void uv_os_free_passwd(uv_passwd_t* pwd) Frees the `pwd` memory previously allocated with :c:func:`uv_os_get_passwd`. @@ -522,18 +630,21 @@ API .. c:function:: uint64_t uv_get_free_memory(void) - Gets the amount of free memory available in the system, as reported by the kernel (in bytes). + Gets the amount of free memory available in the system, as reported by + the kernel (in bytes). Returns 0 when unknown. .. c:function:: uint64_t uv_get_total_memory(void) Gets the total amount of physical memory in the system (in bytes). + Returns 0 when unknown. .. c:function:: uint64_t uv_get_constrained_memory(void) - Gets the amount of memory available to the process (in bytes) based on + Gets the total amount of memory available to the process (in bytes) based on limits imposed by the OS. If there is no such constraint, or the constraint - is unknown, `0` is returned. Note that it is not unusual for this value to - be less than or greater than :c:func:`uv_get_total_memory`. + is unknown, `0` is returned. If there is a constraining mechanism, but there + is no constraint set, `UINT64_MAX` is returned. Note that it is not unusual + for this value to be less than or greater than :c:func:`uv_get_total_memory`. .. note:: This function currently only returns a non-zero value on Linux, based @@ -541,9 +652,23 @@ API .. versionadded:: 1.29.0 +.. c:function:: uint64_t uv_get_available_memory(void) + + Gets the amount of free memory that is still available to the process (in bytes). + This differs from :c:func:`uv_get_free_memory` in that it takes into account any + limits imposed by the OS. If there is no such constraint, or the constraint + is unknown, the amount returned will be identical to :c:func:`uv_get_free_memory`. + + .. note:: + This function currently only returns a value that is different from + what :c:func:`uv_get_free_memory` reports on Linux, based + on cgroups if it is present. + + .. versionadded:: 1.45.0 + .. c:function:: uint64_t uv_hrtime(void) - Returns the current high-resolution real time. This is expressed in + Returns the current high-resolution timestamp. This is expressed in nanoseconds. It is relative to an arbitrary time in the past. It is not related to the time of day and therefore not subject to clock drift. The primary use is for measuring performance between intervals. @@ -552,6 +677,19 @@ API Not every platform can support nanosecond resolution; however, this value will always be in nanoseconds. +.. c:function:: int uv_clock_gettime(uv_clock_id clock_id, uv_timespec64_t* ts) + + Obtain the current system time from a high-resolution real-time or monotonic + clock source. + + The real-time clock counts from the UNIX epoch (1970-01-01) and is subject + to time adjustments; it can jump back in time. + + The monotonic clock counts from an arbitrary point in the past and never + jumps back in time. + + .. versionadded:: 1.45.0 + .. c:function:: void uv_print_all_handles(uv_loop_t* loop, FILE* stream) Prints all handles associated with the given `loop` to the given `stream`. @@ -757,3 +895,60 @@ API Causes the calling thread to sleep for `msec` milliseconds. .. versionadded:: 1.34.0 + +.. code-block:: c + #include + #include + int main() { + printf("Sleeping for 1 second...\n"); + uv_sleep(1000); + printf("Awake!\n"); + return 0; + } + +String manipulation functions +----------------------------- + +These string utilities are needed internally for dealing with Windows, and are +exported to allow clients to work uniformly with this data when the libuv API +is not complete. + +.. c:function:: size_t uv_utf16_length_as_wtf8(const uint16_t* utf16, ssize_t utf16_len) + + Get the length of a UTF-16 (or UCS-2) `utf16` value after converting it to + WTF-8. If `utf16` is NUL terminated, `utf16_len` can be set to -1, + otherwise it must be specified. + + .. versionadded:: 1.47.0 + +.. c:function:: int uv_utf16_to_wtf8(const uint16_t* utf16, ssize_t utf16_len, char** wtf8_ptr, size_t* wtf8_len_ptr) + + Convert UTF-16 (or UCS-2) data in `utf16` to WTF-8 data in `*wtf8_ptr`. The + `utf16_len` count (in characters) gives the length of `utf16`. If `utf16` + is NUL terminated, `utf16_len` can be set to -1, otherwise it must be + specified. If `wtf8_ptr` is `NULL`, no result will be computed, but the + length (equal to `uv_utf16_length_as_wtf8`) will be stored in `wtf8_len_ptr`. + If `*wtf8_ptr` is `NULL`, space for the conversion will be allocated and + returned in `wtf8_ptr` and the length will be returned in `wtf8_len_ptr`. + Otherwise, the length of `*wtf8_ptr` must be passed in `wtf8_len_ptr`. The + `wtf8_ptr` must contain an extra space for an extra NUL after the result. + If the result is truncated, `UV_ENOBUFS` will be returned and + `wtf8_len_ptr` will be the length of the required `wtf8_ptr` to contain the + whole result. + + .. versionadded:: 1.47.0 + +.. c:function:: ssize_t uv_wtf8_length_as_utf16(const char* wtf8) + + Get the length in characters of a NUL-terminated WTF-8 `wtf8` value + after converting it to UTF-16 (or UCS-2), including NUL terminator. + + .. versionadded:: 1.47.0 + +.. c:function:: void uv_wtf8_to_utf16(const char* utf8, uint16_t* utf16, size_t utf16_len) + + Convert NUL-terminated WTF-8 data in `wtf8` to UTF-16 (or UCS-2) data + in `utf16`. The `utf16_len` count (in characters) must include space + for the NUL terminator. + + .. versionadded:: 1.47.0 diff --git a/src/libuv/docs/src/pipe.rst b/src/libuv/docs/src/pipe.rst index 5fa83b80d..bb77f90e3 100644 --- a/src/libuv/docs/src/pipe.rst +++ b/src/libuv/docs/src/pipe.rst @@ -55,17 +55,61 @@ API Bind the pipe to a file path (Unix) or a name (Windows). + Does not support Linux abstract namespace sockets, + unlike :c:func:`uv_pipe_bind2`. + + Alias for ``uv_pipe_bind2(handle, name, strlen(name), 0)``. + + .. note:: + Paths on Unix get truncated to ``sizeof(sockaddr_un.sun_path)`` bytes, + typically between 92 and 108 bytes. + +.. c:function:: int uv_pipe_bind2(uv_pipe_t* handle, const char* name, size_t namelen, unsigned int flags) + + Bind the pipe to a file path (Unix) or a name (Windows). + + ``flags`` must be zero or ``UV_PIPE_NO_TRUNCATE``. Returns ``UV_EINVAL`` + for unsupported flags without performing the bind operation. + + Supports Linux abstract namespace sockets. ``namelen`` must include + the leading nul byte but not the trailing nul byte. + + .. versionadded:: 1.46.0 + .. note:: - Paths on Unix get truncated to ``sizeof(sockaddr_un.sun_path)`` bytes, typically between - 92 and 108 bytes. + Paths on Unix get truncated to ``sizeof(sockaddr_un.sun_path)`` bytes, + typically between 92 and 108 bytes, unless the ``UV_PIPE_NO_TRUNCATE`` + flag is specified, in which case an ``UV_EINVAL`` error is returned. .. c:function:: void uv_pipe_connect(uv_connect_t* req, uv_pipe_t* handle, const char* name, uv_connect_cb cb) - Connect to the Unix domain socket or the named pipe. + Connect to the Unix domain socket or the Windows named pipe. + + Does not support Linux abstract namespace sockets, + unlike :c:func:`uv_pipe_connect2`. + + Alias for ``uv_pipe_connect2(req, handle, name, strlen(name), 0, cb)``. + + .. note:: + Paths on Unix get truncated to ``sizeof(sockaddr_un.sun_path)`` bytes, + typically between 92 and 108 bytes. + +.. c:function:: int uv_pipe_connect2(uv_connect_t* req, uv_pipe_t* handle, const char* name, size_t namelen, unsigned int flags, uv_connect_cb cb) + + Connect to the Unix domain socket or the Windows named pipe. + + ``flags`` must be zero or ``UV_PIPE_NO_TRUNCATE``. Returns ``UV_EINVAL`` + for unsupported flags without performing the connect operation. + + Supports Linux abstract namespace sockets. ``namelen`` must include + the leading nul byte but not the trailing nul byte. + + .. versionadded:: 1.46.0 .. note:: - Paths on Unix get truncated to ``sizeof(sockaddr_un.sun_path)`` bytes, typically between - 92 and 108 bytes. + Paths on Unix get truncated to ``sizeof(sockaddr_un.sun_path)`` bytes, + typically between 92 and 108 bytes, unless the ``UV_PIPE_NO_TRUNCATE`` + flag is specified, in which case an ``UV_EINVAL`` error is returned. .. c:function:: int uv_pipe_getsockname(const uv_pipe_t* handle, char* buffer, size_t* size) diff --git a/src/libuv/docs/src/poll.rst b/src/libuv/docs/src/poll.rst index 93a101ec6..b598f0737 100644 --- a/src/libuv/docs/src/poll.rst +++ b/src/libuv/docs/src/poll.rst @@ -45,7 +45,7 @@ Data types Type definition for callback passed to :c:func:`uv_poll_start`. -.. c:type:: uv_poll_event +.. c:enum:: uv_poll_event Poll event types @@ -101,7 +101,9 @@ API with one of the `UV_E*` error codes (see :ref:`errors`). The user should not close the socket while the handle is active. If the user does that anyway, the callback *may* be called reporting an error status, but this is - **not** guaranteed. + **not** guaranteed. If `status == UV_EBADF` polling is discontinued for the + file handle and no further events will be reported. The user should + then call :c:func:`uv_close` on the handle. .. note:: Calling :c:func:`uv_poll_start` on a handle that is already active is diff --git a/src/libuv/docs/src/process.rst b/src/libuv/docs/src/process.rst index ea6c4b9ad..f15dcf610 100644 --- a/src/libuv/docs/src/process.rst +++ b/src/libuv/docs/src/process.rst @@ -40,7 +40,7 @@ Data types will indicate the exit status and the signal that caused the process to terminate, if any. -.. c:type:: uv_process_flags +.. c:enum:: uv_process_flags Flags to be set on the flags field of :c:type:`uv_process_options_t`. @@ -85,7 +85,14 @@ Data types * option is only meaningful on Windows systems. On Unix it is silently * ignored. */ - UV_PROCESS_WINDOWS_HIDE_GUI = (1 << 6) + UV_PROCESS_WINDOWS_HIDE_GUI = (1 << 6), + /* + * On Windows, if the path to the program to execute, specified in + * uv_process_options_t's file field, has a directory component, + * search for the exact file name before trying variants with + * extensions like '.exe' or '.cmd'. + */ + UV_PROCESS_WINDOWS_FILE_PATH_EXACT_NAME = (1 << 7) }; .. c:type:: uv_stdio_container_t @@ -109,10 +116,39 @@ Data types :: typedef enum { + /* + * The following four options are mutually-exclusive, and define + * the operation to perform for the corresponding file descriptor + * in the child process: + */ + + /* + * No file descriptor will be provided (or redirected to + * `/dev/null` if it is fd 0, 1 or 2). + */ UV_IGNORE = 0x00, + + /* + * Open a new pipe into `data.stream`, per the flags below. The + * `data.stream` field must point to a uv_pipe_t object that has + * been initialized with `uv_pipe_init(loop, data.stream, ipc);`, + * but not yet opened or connected. + /* UV_CREATE_PIPE = 0x01, + + /* + * The child process will be given a duplicate of the parent's + * file descriptor given by `data.fd`. + */ UV_INHERIT_FD = 0x02, + + /* + * The child process will be given a duplicate of the parent's + * file descriptor being used by the stream handle given by + * `data.stream`. + */ UV_INHERIT_STREAM = 0x04, + /* * When UV_CREATE_PIPE is specified, UV_READABLE_PIPE and UV_WRITABLE_PIPE * determine the direction of flow, from the child process' perspective. Both @@ -120,6 +156,7 @@ Data types */ UV_READABLE_PIPE = 0x10, UV_WRITABLE_PIPE = 0x20, + /* * When UV_CREATE_PIPE is specified, specifying UV_NONBLOCK_PIPE opens the * handle in non-blocking mode in the child. This may cause loss of data, @@ -153,7 +190,7 @@ Public members Command line arguments. args[0] should be the path to the program. On Windows this uses `CreateProcess` which concatenates the arguments into a string this can cause some strange errors. See the - ``UV_PROCESS_WINDOWS_VERBATIM_ARGUMENTS`` flag on :c:type:`uv_process_flags`. + ``UV_PROCESS_WINDOWS_VERBATIM_ARGUMENTS`` flag on :c:enum:`uv_process_flags`. .. c:member:: char** uv_process_options_t.env @@ -166,7 +203,7 @@ Public members .. c:member:: unsigned int uv_process_options_t.flags Various flags that control how :c:func:`uv_spawn` behaves. See - :c:type:`uv_process_flags`. + :c:enum:`uv_process_flags`. .. c:member:: int uv_process_options_t.stdio_count .. c:member:: uv_stdio_container_t* uv_process_options_t.stdio @@ -232,6 +269,9 @@ API .. versionchanged:: 1.24.0 Added `UV_PROCESS_WINDOWS_HIDE_CONSOLE` and `UV_PROCESS_WINDOWS_HIDE_GUI` flags. + .. versionchanged:: 1.48.0 Added the + `UV_PROCESS_WINDOWS_FILE_PATH_EXACT_NAME` flag. + .. c:function:: int uv_process_kill(uv_process_t* handle, int signum) Sends the specified signal to the given process handle. Check the documentation diff --git a/src/libuv/docs/src/request.rst b/src/libuv/docs/src/request.rst index a0414431b..aacabe026 100644 --- a/src/libuv/docs/src/request.rst +++ b/src/libuv/docs/src/request.rst @@ -21,17 +21,9 @@ Data types Union of all request types. +.. c:enum:: uv_req_type -Public members -^^^^^^^^^^^^^^ - -.. c:member:: void* uv_req_t.data - - Space for user-defined arbitrary data. libuv does not use this field. - -.. c:member:: uv_req_type uv_req_t.type - - Indicated the type of request. Readonly. + The kind of the libuv request. :: @@ -50,6 +42,18 @@ Public members } uv_req_type; +Public members +^^^^^^^^^^^^^^ + +.. c:member:: void* uv_req_t.data + + Space for user-defined arbitrary data. libuv does not use this field. + +.. c:member:: uv_req_type uv_req_t.type + + The :c:enum:`uv_req_type`, indicating the type of the request. Readonly. + + API --- @@ -95,7 +99,7 @@ API .. versionadded:: 1.19.0 -.. c:function:: void* uv_req_set_data(uv_req_t* req, void* data) +.. c:function:: void uv_req_set_data(uv_req_t* req, void* data) Sets `req->data` to `data`. diff --git a/src/libuv/docs/src/static/loop_iteration.png b/src/libuv/docs/src/static/loop_iteration.png index e769cf338..1545f84a8 100644 Binary files a/src/libuv/docs/src/static/loop_iteration.png and b/src/libuv/docs/src/static/loop_iteration.png differ diff --git a/src/libuv/docs/src/tcp.rst b/src/libuv/docs/src/tcp.rst index cccc86bbf..94a3b2741 100644 --- a/src/libuv/docs/src/tcp.rst +++ b/src/libuv/docs/src/tcp.rst @@ -16,6 +16,28 @@ Data types TCP handle type. +.. c:enum:: uv_tcp_flags + + Flags used in :c:func:`uv_tcp_bind`. + + :: + + enum uv_tcp_flags { + /* Used with uv_tcp_bind, when an IPv6 address is used. */ + UV_TCP_IPV6ONLY = 1, + + /* Enable SO_REUSEPORT socket option when binding the handle. + * This allows completely duplicate bindings by multiple processes + * or threads if they all set SO_REUSEPORT before binding the port. + * Incoming connections are distributed across the participating + * listener sockets. + * + * This flag is available only on Linux 3.9+, DragonFlyBSD 3.6+, + * FreeBSD 12.0+, Solaris 11.4, and AIX 7.2.5+ for now. + */ + UV_TCP_REUSEPORT = 2, + }; + Public members ^^^^^^^^^^^^^^ @@ -65,6 +87,38 @@ API at the end of this procedure, then the handle is destroyed with a ``UV_ETIMEDOUT`` error passed to the corresponding callback. + If `delay` is less than 1 then ``UV_EINVAL`` is returned. + + .. versionchanged:: 1.49.0 If `delay` is less than 1 then ``UV_EINVAL``` is returned. + +.. c:function:: int uv_tcp_keepalive_ex(uv_tcp_t* handle, int on, unsigned int idle, unsigned int intvl, unsigned int cnt) + + Enable / disable TCP keep-alive with all socket options: `TCP_KEEPIDLE`, `TCP_KEEPINTVL` and `TCP_KEEPCNT`. + `idle` is the value for `TCP_KEEPIDLE`, `intvl` is the value for `TCP_KEEPINTVL`, + `cnt` is the value for `TCP_KEEPCNT`, ignored when `on` is zero. + + With TCP keep-alive enabled, `idle` is the time (in seconds) the connection needs to remain idle before + TCP starts sending keep-alive probes. `intvl` is the time (in seconds) between individual keep-alive probes. + TCP will drop the connection after sending `cnt` probes without getting any replies from the peer, then the + handle is destroyed with a ``UV_ETIMEDOUT`` error passed to the corresponding callback. + + If one of `idle`, `intvl`, or `cnt` is less than 1, ``UV_EINVAL`` is returned. + + .. versionchanged:: 1.52.0 added support of setting `TCP_KEEPINTVL` and `TCP_KEEPCNT` socket options. + + .. note:: + Ensure that the socket options are supported by the underlying operating system. + Currently supported platforms: + - AIX + - DragonFlyBSD + - FreeBSD + - illumos + - Linux + - macOS + - NetBSD + - Solaris + - Windows + .. c:function:: int uv_tcp_simultaneous_accepts(uv_tcp_t* handle, int enable) Enable / disable simultaneous asynchronous accept requests that are @@ -77,16 +131,34 @@ API .. c:function:: int uv_tcp_bind(uv_tcp_t* handle, const struct sockaddr* addr, unsigned int flags) - Bind the handle to an address and port. `addr` should point to an - initialized ``struct sockaddr_in`` or ``struct sockaddr_in6``. + Bind the handle to an address and port. When the port is already taken, you can expect to see an ``UV_EADDRINUSE`` - error from :c:func:`uv_listen` or :c:func:`uv_tcp_connect`. That is, - a successful call to this function does not guarantee that the call - to :c:func:`uv_listen` or :c:func:`uv_tcp_connect` will succeed as well. + error from :c:func:`uv_listen` or :c:func:`uv_tcp_connect` unless you specify + ``UV_TCP_REUSEPORT`` in `flags` for all the binding sockets. That is, a successful + call to this function does not guarantee that the call to :c:func:`uv_listen` or + :c:func:`uv_tcp_connect` will succeed as well. + + :param handle: TCP handle. It should have been initialized with :c:func:`uv_tcp_init`. - `flags` can contain ``UV_TCP_IPV6ONLY``, in which case dual-stack support - is disabled and only IPv6 is used. + :param addr: Address to bind to. It should point to an initialized ``struct sockaddr_in`` + or ``struct sockaddr_in6``. + + :param flags: Flags that control the behavior of binding the socket. + ``UV_TCP_IPV6ONLY`` can be contained in `flags` to disable dual-stack + support and only use IPv6. + ``UV_TCP_REUSEPORT`` can be contained in `flags` to enable the socket option + `SO_REUSEPORT` with the capability of load balancing that distribute incoming + connections across all listening sockets in multiple processes or threads. + + :returns: 0 on success, or an error code < 0 on failure. + + .. versionchanged:: 1.49.0 added the ``UV_TCP_REUSEPORT`` flag. + + .. note:: + ``UV_TCP_REUSEPORT`` flag is available only on Linux 3.9+, DragonFlyBSD 3.6+, + FreeBSD 12.0+, Solaris 11.4, and AIX 7.2.5+ at the moment. On other platforms + this function will return an UV_ENOTSUP error. .. c:function:: int uv_tcp_getsockname(const uv_tcp_t* handle, struct sockaddr* name, int* namelen) diff --git a/src/libuv/docs/src/threading.rst b/src/libuv/docs/src/threading.rst index 7ca1d4b7a..27c1d6ee2 100644 --- a/src/libuv/docs/src/threading.rst +++ b/src/libuv/docs/src/threading.rst @@ -78,6 +78,14 @@ Threads .. versionchanged:: 1.4.1 returns a UV_E* error code on failure +.. c:function:: int uv_thread_detach(uv_thread_t* tid) + + Detaches a thread. Detached threads automatically release their + resources upon termination, eliminating the need for the application to + call `uv_thread_join`. + + .. versionadded:: 1.50.0 + .. c:function:: int uv_thread_create_ex(uv_thread_t* tid, const uv_thread_options_t* params, uv_thread_cb entry, void* arg) Like :c:func:`uv_thread_create`, but additionally specifies options for creating a new thread. @@ -88,10 +96,89 @@ Threads .. versionadded:: 1.26.0 +.. c:function:: int uv_thread_setaffinity(uv_thread_t* tid, char* cpumask, char* oldmask, size_t mask_size) + + Sets the specified thread's affinity to cpumask, which is specified in + bytes. Optionally returning the previous affinity setting in oldmask. + On Unix, uses :man:`pthread_getaffinity_np(3)` to get the affinity setting + and maps the cpu_set_t to bytes in oldmask. Then maps the bytes in cpumask + to a cpu_set_t and uses :man:`pthread_setaffinity_np(3)`. On Windows, maps + the bytes in cpumask to a bitmask and uses SetThreadAffinityMask() which + returns the previous affinity setting. + + The mask_size specifies the number of entries (bytes) in cpumask / oldmask, + and must be greater-than-or-equal-to :c:func:`uv_cpumask_size`. + + .. note:: + Thread affinity setting is not atomic on Windows. Unsupported on macOS. + + .. versionadded:: 1.45.0 + +.. c:function:: int uv_thread_getaffinity(uv_thread_t* tid, char* cpumask, size_t mask_size) + + Gets the specified thread's affinity setting. On Unix, this maps the + cpu_set_t returned by :man:`pthread_getaffinity_np(3)` to bytes in cpumask. + + The mask_size specifies the number of entries (bytes) in cpumask, + and must be greater-than-or-equal-to :c:func:`uv_cpumask_size`. + + .. note:: + Thread affinity getting is not atomic on Windows. Unsupported on macOS. + + .. versionadded:: 1.45.0 + +.. c:function:: int uv_thread_getcpu(void) + + Gets the CPU number on which the calling thread is running. + + .. note:: + Currently only implemented on Windows, Linux and FreeBSD. + + .. versionadded:: 1.45.0 + .. c:function:: uv_thread_t uv_thread_self(void) .. c:function:: int uv_thread_join(uv_thread_t *tid) .. c:function:: int uv_thread_equal(const uv_thread_t* t1, const uv_thread_t* t2) +.. c:function:: int uv_thread_setname(const char* name) + + Sets the name of the current thread. Different platforms define different limits on the max number of characters + a thread name can be: Linux, IBM i (16), macOS (64), Windows (32767), and NetBSD (32), etc. `uv_thread_setname()` + will truncate it in case `name` is larger than the limit of the platform. + + Not supported on Windows Server 2016, returns `UV_ENOSYS`. + + .. versionadded:: 1.50.0 + +.. c:function:: int uv_thread_getname(uv_thread_t* tid, char* name, size_t* size) + + Gets the name of the thread specified by `tid`. The thread name is copied, with the trailing NUL, into the buffer + pointed to by `name`. The `size` parameter specifies the size of the buffer pointed to by `name`. + The buffer should be large enough to hold the name of the thread plus the trailing NUL, or it will be truncated to fit + with the trailing NUL. + + Not supported on Windows Server 2016, returns `UV_ENOSYS`. + + .. versionadded:: 1.50.0 + +.. c:function:: int uv_thread_setpriority(uv_thread_t tid, int priority) + + If the function succeeds, the return value is 0. + If the function fails, the return value is less than zero. + Sets the scheduling priority of the thread specified by tid. It requires elevated + privilege to set specific priorities on some platforms. + The priority can be set to the following constants. UV_THREAD_PRIORITY_HIGHEST, + UV_THREAD_PRIORITY_ABOVE_NORMAL, UV_THREAD_PRIORITY_NORMAL, + UV_THREAD_PRIORITY_BELOW_NORMAL, UV_THREAD_PRIORITY_LOWEST. + +.. c:function:: int uv_thread_getpriority(uv_thread_t tid, int* priority) + + If the function succeeds, the return value is 0. + If the function fails, the return value is less than zero. + Retrieves the scheduling priority of the thread specified by tid. The value in the + output parameter priority is platform dependent. + For Linux, when schedule policy is SCHED_OTHER (default), priority is 0. + Thread-local storage ^^^^^^^^^^^^^^^^^^^^ diff --git a/src/libuv/docs/src/threadpool.rst b/src/libuv/docs/src/threadpool.rst index cf6cdc1be..d4dc5b8ec 100644 --- a/src/libuv/docs/src/threadpool.rst +++ b/src/libuv/docs/src/threadpool.rst @@ -14,11 +14,16 @@ is 1024). .. versionchanged:: 1.30.0 the maximum UV_THREADPOOL_SIZE allowed was increased from 128 to 1024. +.. versionchanged:: 1.45.0 threads now have an 8 MB stack instead of the + (sometimes too low) platform default. + +.. versionchanged:: 1.50.0 threads now have a default name of libuv-worker. + The threadpool is global and shared across all event loops. When a particular -function makes use of the threadpool (i.e. when using :c:func:`uv_queue_work`) +function makes use of the threadpool (e.g. when using :c:func:`uv_queue_work`) libuv preallocates and initializes the maximum number of threads allowed by -``UV_THREADPOOL_SIZE``. This causes a relatively minor memory overhead -(~1MB for 128 threads) but increases the performance of threading at runtime. +``UV_THREADPOOL_SIZE``. More threads usually means more throughput but a higher +memory footprint. Thread stacks grow lazily on most platforms though. .. note:: Note that even though a global thread pool which is shared across all events diff --git a/src/libuv/docs/src/timer.rst b/src/libuv/docs/src/timer.rst index 070fa79da..474c6b8c4 100644 --- a/src/libuv/docs/src/timer.rst +++ b/src/libuv/docs/src/timer.rst @@ -6,6 +6,15 @@ Timer handles are used to schedule callbacks to be called in the future. +Timers are either single-shot or repeating. Repeating timers do not adjust +for overhead but are rearmed relative to the event loop's idea of "now". + +Libuv updates its idea of "now" right before executing timer callbacks, and +right after waking up from waiting for I/O. See also :c:func:`uv_update_time`. + +Example: a repeating timer with a 50 ms interval whose callback takes 17 ms +to complete, runs again 33 ms later. If other tasks take longer than 33 ms, +the timer callback runs as soon as possible. Data types ---------- @@ -64,11 +73,6 @@ API duration, and will follow normal timer semantics in the case of a time-slice overrun. - For example, if a 50ms repeating timer first runs for 17ms, it will be - scheduled to run again 33ms later. If other tasks consume more than the - 33ms following the first timer callback, then the callback will run as soon - as possible. - .. note:: If the repeat value is set from a timer callback it does not immediately take effect. If the timer was non-repeating before, it will have been stopped. If it was repeating, diff --git a/src/libuv/docs/src/tty.rst b/src/libuv/docs/src/tty.rst index f1acfdc13..b461b2443 100644 --- a/src/libuv/docs/src/tty.rst +++ b/src/libuv/docs/src/tty.rst @@ -27,10 +27,15 @@ Data types typedef enum { /* Initial/normal terminal mode */ UV_TTY_MODE_NORMAL, - /* Raw input mode (On Windows, ENABLE_WINDOW_INPUT is also enabled) */ + /* + * Raw input mode (On Windows, ENABLE_WINDOW_INPUT is also enabled). + * May become equivalent to UV_TTY_MODE_RAW_VT in future libuv versions. + */ UV_TTY_MODE_RAW, /* Binary-safe I/O mode for IPC (Unix-only) */ - UV_TTY_MODE_IO + UV_TTY_MODE_IO, + /* Raw input mode. On Windows ENABLE_VIRTUAL_TERMINAL_INPUT is also set. */ + UV_TTY_MODE_RAW_VT } uv_tty_mode_t; .. c:enum:: uv_tty_vtermstate_t @@ -98,7 +103,7 @@ API .. c:function:: int uv_tty_set_mode(uv_tty_t* handle, uv_tty_mode_t mode) .. versionchanged:: 1.2.0: the mode is specified as a - :c:type:`uv_tty_mode_t` value. + :c:enum:`uv_tty_mode_t` value. Set the TTY using the specified terminal mode. diff --git a/src/libuv/docs/src/udp.rst b/src/libuv/docs/src/udp.rst index 009767d55..39fe77f5e 100644 --- a/src/libuv/docs/src/udp.rst +++ b/src/libuv/docs/src/udp.rst @@ -18,7 +18,7 @@ Data types UDP send request type. -.. c:type:: uv_udp_flags +.. c:enum:: uv_udp_flags Flags used in :c:func:`uv_udp_bind` and :c:type:`uv_udp_recv_cb`.. @@ -28,19 +28,21 @@ Data types /* Disables dual stack mode. */ UV_UDP_IPV6ONLY = 1, /* - * Indicates message was truncated because read buffer was too small. The - * remainder was discarded by the OS. Used in uv_udp_recv_cb. - */ + * Indicates message was truncated because read buffer was too small. The + * remainder was discarded by the OS. Used in uv_udp_recv_cb. + */ UV_UDP_PARTIAL = 2, /* - * Indicates if SO_REUSEADDR will be set when binding the handle in - * uv_udp_bind. - * This sets the SO_REUSEPORT socket flag on the BSDs and OS X. On other - * Unix platforms, it sets the SO_REUSEADDR flag. What that means is that - * multiple threads or processes can bind to the same address without error - * (provided they all set the flag) but only the last one to bind will receive - * any traffic, in effect "stealing" the port from the previous listener. - */ + * Indicates if SO_REUSEADDR will be set when binding the handle. + * This sets the SO_REUSEPORT socket flag on the BSDs (except for + * DragonFlyBSD), OS X, and other platforms where SO_REUSEPORTs don't + * have the capability of load balancing, as the opposite of what + * UV_UDP_REUSEPORT would do. On other Unix platforms, it sets the + * SO_REUSEADDR flag. What that means is that multiple threads or + * processes can bind to the same address without error (provided + * they all set the flag) but only the last one to bind will receive + * any traffic, in effect "stealing" the port from the previous listener. + */ UV_UDP_REUSEADDR = 4, /* * Indicates that the message was received by recvmmsg, so the buffer provided @@ -56,14 +58,26 @@ Data types /* * Indicates if IP_RECVERR/IPV6_RECVERR will be set when binding the handle. * This sets IP_RECVERR for IPv4 and IPV6_RECVERR for IPv6 UDP sockets on - * Linux. This stops the Linux kernel from supressing some ICMP error messages + * Linux. This stops the Linux kernel from suppressing some ICMP error messages * and enables full ICMP error reporting for faster failover. * This flag is no-op on platforms other than Linux. */ UV_UDP_LINUX_RECVERR = 32, /* - * Indicates that recvmmsg should be used, if available. - */ + * Indicates if SO_REUSEPORT will be set when binding the handle. + * This sets the SO_REUSEPORT socket option on supported platforms. + * Unlike UV_UDP_REUSEADDR, this flag will make multiple threads or + * processes that are binding to the same address and port "share" + * the port, which means incoming datagrams are distributed across + * the receiving sockets among threads or processes. + * + * This flag is available only on Linux 3.9+, DragonFlyBSD 3.6+, + * FreeBSD 12.0+, Solaris 11.4, and AIX 7.2.5+ for now. + */ + UV_UDP_REUSEPORT = 64, + /* + * Indicates that recvmmsg should be used, if available. + */ UV_UDP_RECVMMSG = 256 }; @@ -159,6 +173,22 @@ API .. versionadded:: 1.7.0 .. versionchanged:: 1.37.0 added the `UV_UDP_RECVMMSG` flag. +.. c:function:: int uv_udp_open_ex(uv_udp_t* handle, uv_os_sock_t sock, unsigned int flags) + + Opens an existing file descriptor or Windows SOCKET as a UDP handle. + + :param handle: UDP handle. Should have been initialized with + :c:func:`uv_udp_init`. + + :param sock: An existing socket to associate with the handle. + + :param flags: Flags that control socket behavior, + ``UV_UDP_REUSEADDR``, and ``UV_UDP_REUSEPORT`` are supported. + + :returns: 0 on success, or an error code < 0 on failure. + + .. versionadded:: 1.52.0 + .. c:function:: int uv_udp_open(uv_udp_t* handle, uv_os_sock_t sock) Opens an existing file descriptor or Windows SOCKET as a UDP handle. @@ -175,6 +205,10 @@ API The passed file descriptor or SOCKET is not checked for its type, but it's required that it represents a valid datagram socket. + Internally sets the SO_REUSEADDR socket option unconditionally. This + means the reuse flag is always enabled, regardless of user intent. For + more control use :c:func:`uv_udp_open_ex`. + .. c:function:: int uv_udp_bind(uv_udp_t* handle, const struct sockaddr* addr, unsigned int flags) Bind the UDP handle to an IP address and port. @@ -186,11 +220,24 @@ API with the address and port to bind to. :param flags: Indicate how the socket will be bound, - ``UV_UDP_IPV6ONLY``, ``UV_UDP_REUSEADDR``, and ``UV_UDP_RECVERR`` - are supported. + ``UV_UDP_IPV6ONLY``, ``UV_UDP_REUSEADDR``, ``UV_UDP_REUSEPORT``, + and ``UV_UDP_RECVERR`` are supported. :returns: 0 on success, or an error code < 0 on failure. + .. versionchanged:: 1.49.0 added the ``UV_UDP_REUSEPORT`` flag. + + .. note:: + ``UV_UDP_REUSEPORT`` flag is available only on Linux 3.9+, DragonFlyBSD 3.6+, + FreeBSD 12.0+, Solaris 11.4, and AIX 7.2.5+ at the moment. On other platforms + this function will return an UV_ENOTSUP error. + For platforms where `SO_REUSEPORT`s have the capability of load balancing, + specifying both ``UV_UDP_REUSEADDR`` and ``UV_UDP_REUSEPORT`` in flags is allowed + and `SO_REUSEPORT` will always override the behavior of `SO_REUSEADDR`. + For platforms where `SO_REUSEPORT`s don't have the capability of load balancing, + specifying both ``UV_UDP_REUSEADDR`` and ``UV_UDP_REUSEPORT`` in flags will fail, + returning an UV_ENOTSUP error. + .. c:function:: int uv_udp_connect(uv_udp_t* handle, const struct sockaddr* addr) Associate the UDP handle to a remote address and port, so every @@ -285,7 +332,9 @@ API local sockets. :param handle: UDP handle. Should have been initialized with - :c:func:`uv_udp_init`. + :c:func:`uv_udp_init_ex` as either ``AF_INET`` or ``AF_INET6``, or have + been bound to an address explicitly with :c:func:`uv_udp_bind`, or + implicitly with :c:func:`uv_udp_send()` or :c:func:`uv_udp_recv_start`. :param on: 1 for on, 0 for off. @@ -296,7 +345,9 @@ API Set the multicast ttl. :param handle: UDP handle. Should have been initialized with - :c:func:`uv_udp_init`. + :c:func:`uv_udp_init_ex` as either ``AF_INET`` or ``AF_INET6``, or have + been bound to an address explicitly with :c:func:`uv_udp_bind`, or + implicitly with :c:func:`uv_udp_send()` or :c:func:`uv_udp_recv_start`. :param ttl: 1 through 255. @@ -307,7 +358,9 @@ API Set the multicast interface to send or receive data on. :param handle: UDP handle. Should have been initialized with - :c:func:`uv_udp_init`. + :c:func:`uv_udp_init_ex` as either ``AF_INET`` or ``AF_INET6``, or have + been bound to an address explicitly with :c:func:`uv_udp_bind`, or + implicitly with :c:func:`uv_udp_send()` or :c:func:`uv_udp_recv_start`. :param interface_addr: interface address. @@ -318,7 +371,9 @@ API Set broadcast on or off. :param handle: UDP handle. Should have been initialized with - :c:func:`uv_udp_init`. + :c:func:`uv_udp_init_ex` as either ``AF_INET`` or ``AF_INET6``, or have + been bound to an address explicitly with :c:func:`uv_udp_bind`, or + implicitly with :c:func:`uv_udp_send()` or :c:func:`uv_udp_recv_start`. :param on: 1 for on, 0 for off. @@ -329,7 +384,9 @@ API Set the time to live. :param handle: UDP handle. Should have been initialized with - :c:func:`uv_udp_init`. + :c:func:`uv_udp_init_ex` as either ``AF_INET`` or ``AF_INET6``, or have + been bound to an address explicitly with :c:func:`uv_udp_bind`, or + implicitly with :c:func:`uv_udp_send()` or :c:func:`uv_udp_recv_start`. :param ttl: 1 through 255. @@ -389,6 +446,20 @@ API .. versionchanged:: 1.27.0 added support for connected sockets +.. c:function:: int uv_udp_try_send2(uv_udp_t* handle, unsigned int count, uv_buf_t* bufs[/*count*/], unsigned int nbufs[/*count*/], struct sockaddr* addrs[/*count*/], unsigned int flags) + + Like :c:func:`uv_udp_try_send`, but can send multiple datagrams. + Lightweight abstraction around :man:`sendmmsg(2)`, with a :man:`sendmsg(2)` + fallback loop for platforms that do not support the former. The handle must + be fully initialized; call c:func:`uv_udp_bind` first. + + :returns: >= 0: number of datagrams sent. Zero only if `count` was zero. + < 0: negative error code. Only if sending the first datagram fails, + otherwise returns a positive send count. ``UV_EAGAIN`` when datagrams + cannot be sent right now; fall back to :c:func:`uv_udp_send`. + + .. versionadded:: 1.50.0 + .. c:function:: int uv_udp_recv_start(uv_udp_t* handle, uv_alloc_cb alloc_cb, uv_udp_recv_cb recv_cb) Prepare for receiving data. If the socket has not previously been bound diff --git a/src/libuv/include/uv.h b/src/libuv/include/uv.h index 606083c87..da0634555 100644 --- a/src/libuv/include/uv.h +++ b/src/libuv/include/uv.h @@ -31,6 +31,7 @@ extern "C" { #error "Define either BUILDING_UV_SHARED or USING_UV_SHARED, not both." #endif +#ifndef UV_EXTERN #ifdef _WIN32 /* Windows - set up dll import/export decorators. */ # if defined(BUILDING_UV_SHARED) @@ -43,24 +44,25 @@ extern "C" { /* Building static library. */ # define UV_EXTERN /* nothing */ # endif -#elif __GNUC__ >= 4 +#elif defined(__GNUC__) # define UV_EXTERN __attribute__((visibility("default"))) -#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) /* Sun Studio >= 8 */ -# define UV_EXTERN __global #else # define UV_EXTERN /* nothing */ #endif +#endif /* UV_EXTERN */ #include "uv/errno.h" #include "uv/version.h" #include #include +#include +#include -#if defined(_MSC_VER) && _MSC_VER < 1600 -# include "uv/stdint-msvc2008.h" -#else -# include -#endif +/* Internal type, do not use. */ +struct uv__queue { + struct uv__queue* next; + struct uv__queue* prev; +}; #if defined(_WIN32) # include "uv/win.h" @@ -152,6 +154,9 @@ extern "C" { XX(EFTYPE, "inappropriate file type or format") \ XX(EILSEQ, "illegal byte sequence") \ XX(ESOCKTNOSUPPORT, "socket type not supported") \ + XX(ENODATA, "no data available") \ + XX(EUNATCH, "protocol driver not attached") \ + XX(ENOEXEC, "exec format error") \ #define UV_HANDLE_TYPE_MAP(XX) \ XX(ASYNC, async) \ @@ -247,12 +252,17 @@ typedef struct uv_cpu_info_s uv_cpu_info_t; typedef struct uv_interface_address_s uv_interface_address_t; typedef struct uv_dirent_s uv_dirent_t; typedef struct uv_passwd_s uv_passwd_t; +typedef struct uv_group_s uv_group_t; typedef struct uv_utsname_s uv_utsname_t; typedef struct uv_statfs_s uv_statfs_t; +typedef struct uv_metrics_s uv_metrics_t; + typedef enum { UV_LOOP_BLOCK_SIGNAL = 0, - UV_METRICS_IDLE_TIME + UV_METRICS_IDLE_TIME, + UV_LOOP_USE_IO_URING_SQPOLL +#define UV_LOOP_USE_IO_URING_SQPOLL UV_LOOP_USE_IO_URING_SQPOLL } uv_loop_option; typedef enum { @@ -282,13 +292,13 @@ UV_EXTERN int uv_loop_init(uv_loop_t* loop); UV_EXTERN int uv_loop_close(uv_loop_t* loop); /* * NOTE: - * This function is DEPRECATED (to be removed after 0.12), users should + * This function is DEPRECATED, users should * allocate the loop manually and use uv_loop_init instead. */ UV_EXTERN uv_loop_t* uv_loop_new(void); /* * NOTE: - * This function is DEPRECATED (to be removed after 0.12). Users should use + * This function is DEPRECATED. Users should use * uv_loop_close and free the memory manually instead. */ UV_EXTERN void uv_loop_delete(uv_loop_t*); @@ -344,11 +354,32 @@ typedef void (*uv_random_cb)(uv_random_t* req, void* buf, size_t buflen); +typedef enum { + UV_CLOCK_MONOTONIC, + UV_CLOCK_REALTIME +} uv_clock_id; + +/* XXX(bnoordhuis) not 2038-proof, https://github.com/libuv/libuv/issues/3864 */ typedef struct { long tv_sec; long tv_nsec; } uv_timespec_t; +typedef struct { + int64_t tv_sec; + int32_t tv_nsec; +} uv_timespec64_t; + +/* XXX(bnoordhuis) not 2038-proof, https://github.com/libuv/libuv/issues/3864 */ +typedef struct { + long tv_sec; + long tv_usec; +} uv_timeval_t; + +typedef struct { + int64_t tv_sec; + int32_t tv_usec; +} uv_timeval64_t; typedef struct { uint64_t st_dev; @@ -437,7 +468,7 @@ struct uv_shutdown_s { uv_handle_type type; \ /* private */ \ uv_close_cb close_cb; \ - void* handle_queue[2]; \ + struct uv__queue handle_queue; \ union { \ int fd; \ void* reserved[4]; \ @@ -571,11 +602,27 @@ UV_EXTERN int uv_tcp_nodelay(uv_tcp_t* handle, int enable); UV_EXTERN int uv_tcp_keepalive(uv_tcp_t* handle, int enable, unsigned int delay); +UV_EXTERN int uv_tcp_keepalive_ex(uv_tcp_t* handle, + int on, + unsigned int idle, + unsigned int intvl, + unsigned int cnt); UV_EXTERN int uv_tcp_simultaneous_accepts(uv_tcp_t* handle, int enable); enum uv_tcp_flags { /* Used with uv_tcp_bind, when an IPv6 address is used. */ - UV_TCP_IPV6ONLY = 1 + UV_TCP_IPV6ONLY = 1, + + /* Enable SO_REUSEPORT socket option when binding the handle. + * This allows completely duplicate bindings by multiple processes + * or threads if they all set SO_REUSEPORT before binding the port. + * Incoming connections are distributed across the participating + * listener sockets. + * + * This flag is available only on Linux 3.9+, DragonFlyBSD 3.6+, + * FreeBSD 12.0+, Solaris 11.4, and AIX 7.2.5+ for now. + */ + UV_TCP_REUSEPORT = 2, }; UV_EXTERN int uv_tcp_bind(uv_tcp_t* handle, @@ -616,10 +663,13 @@ enum uv_udp_flags { UV_UDP_PARTIAL = 2, /* * Indicates if SO_REUSEADDR will be set when binding the handle. - * This sets the SO_REUSEPORT socket flag on the BSDs and OS X. On other - * Unix platforms, it sets the SO_REUSEADDR flag. What that means is that - * multiple threads or processes can bind to the same address without error - * (provided they all set the flag) but only the last one to bind will receive + * This sets the SO_REUSEPORT socket flag on the BSDs (except for + * DragonFlyBSD), OS X, and other platforms where SO_REUSEPORTs don't + * have the capability of load balancing, as the opposite of what + * UV_UDP_REUSEPORT would do. On other Unix platforms, it sets the + * SO_REUSEADDR flag. What that means is that multiple threads or + * processes can bind to the same address without error (provided + * they all set the flag) but only the last one to bind will receive * any traffic, in effect "stealing" the port from the previous listener. */ UV_UDP_REUSEADDR = 4, @@ -642,6 +692,18 @@ enum uv_udp_flags { * This flag is no-op on platforms other than Linux. */ UV_UDP_LINUX_RECVERR = 32, + /* + * Indicates if SO_REUSEPORT will be set when binding the handle. + * This sets the SO_REUSEPORT socket option on supported platforms. + * Unlike UV_UDP_REUSEADDR, this flag will make multiple threads or + * processes that are binding to the same address and port "share" + * the port, which means incoming datagrams are distributed across + * the receiving sockets among threads or processes. + * + * This flag is available only on Linux 3.9+, DragonFlyBSD 3.6+, + * FreeBSD 12.0+, Solaris 11.4, and AIX 7.2.5+ for now. + */ + UV_UDP_REUSEPORT = 64, /* * Indicates that recvmmsg should be used, if available. */ @@ -682,6 +744,9 @@ struct uv_udp_send_s { UV_EXTERN int uv_udp_init(uv_loop_t*, uv_udp_t* handle); UV_EXTERN int uv_udp_init_ex(uv_loop_t*, uv_udp_t* handle, unsigned int flags); UV_EXTERN int uv_udp_open(uv_udp_t* handle, uv_os_sock_t sock); +UV_EXTERN int uv_udp_open_ex(uv_udp_t* handle, + uv_os_sock_t sock, + unsigned int flags); UV_EXTERN int uv_udp_bind(uv_udp_t* handle, const struct sockaddr* addr, unsigned int flags); @@ -718,6 +783,12 @@ UV_EXTERN int uv_udp_try_send(uv_udp_t* handle, const uv_buf_t bufs[], unsigned int nbufs, const struct sockaddr* addr); +UV_EXTERN int uv_udp_try_send2(uv_udp_t* handle, + unsigned int count, + uv_buf_t* bufs[/*count*/], + unsigned int nbufs[/*count*/], + struct sockaddr* addrs[/*count*/], + unsigned int flags); UV_EXTERN int uv_udp_recv_start(uv_udp_t* handle, uv_alloc_cb alloc_cb, uv_udp_recv_cb recv_cb); @@ -741,10 +812,15 @@ struct uv_tty_s { typedef enum { /* Initial/normal terminal mode */ UV_TTY_MODE_NORMAL, - /* Raw input mode (On Windows, ENABLE_WINDOW_INPUT is also enabled) */ + /* + * Raw input mode (On Windows, ENABLE_WINDOW_INPUT is also enabled). + * May become equivalent to UV_TTY_MODE_RAW_VT in future libuv versions. + */ UV_TTY_MODE_RAW, /* Binary-safe I/O mode for IPC (Unix-only) */ - UV_TTY_MODE_IO + UV_TTY_MODE_IO, + /* Raw input mode. On Windows ENABLE_VIRTUAL_TERMINAL_INPUT is also set. */ + UV_TTY_MODE_RAW_VT } uv_tty_mode_t; typedef enum { @@ -779,6 +855,10 @@ inline int uv_tty_set_mode(uv_tty_t* handle, int mode) { UV_EXTERN uv_handle_type uv_guess_handle(uv_file file); +enum { + UV_PIPE_NO_TRUNCATE = 1u << 0 +}; + /* * uv_pipe_t is a subclass of uv_stream_t. * @@ -795,10 +875,20 @@ struct uv_pipe_s { UV_EXTERN int uv_pipe_init(uv_loop_t*, uv_pipe_t* handle, int ipc); UV_EXTERN int uv_pipe_open(uv_pipe_t*, uv_file file); UV_EXTERN int uv_pipe_bind(uv_pipe_t* handle, const char* name); +UV_EXTERN int uv_pipe_bind2(uv_pipe_t* handle, + const char* name, + size_t namelen, + unsigned int flags); UV_EXTERN void uv_pipe_connect(uv_connect_t* req, uv_pipe_t* handle, const char* name, uv_connect_cb cb); +UV_EXTERN int uv_pipe_connect2(uv_connect_t* req, + uv_pipe_t* handle, + const char* name, + size_t namelen, + unsigned int flags, + uv_connect_cb cb); UV_EXTERN int uv_pipe_getsockname(const uv_pipe_t* handle, char* buffer, size_t* size); @@ -1063,7 +1153,14 @@ enum uv_process_flags { * option is only meaningful on Windows systems. On Unix it is silently * ignored. */ - UV_PROCESS_WINDOWS_HIDE_GUI = (1 << 6) + UV_PROCESS_WINDOWS_HIDE_GUI = (1 << 6), + /* + * On Windows, if the path to the program to execute, specified in + * uv_process_options_t's file field, has a directory component, + * search for the exact file name before trying variants with + * extensions like '.exe' or '.cmd'. + */ + UV_PROCESS_WINDOWS_FILE_PATH_EXACT_NAME = (1 << 7) }; /* @@ -1112,7 +1209,7 @@ struct uv_cpu_times_s { }; struct uv_cpu_info_s { - char* model; + const char* model; int speed; struct uv_cpu_times_s cpu_times; }; @@ -1133,12 +1230,18 @@ struct uv_interface_address_s { struct uv_passwd_s { char* username; - long uid; - long gid; + unsigned long uid; + unsigned long gid; char* shell; char* homedir; }; +struct uv_group_s { + char* groupname; + unsigned long gid; + char** members; +}; + struct uv_utsname_s { char sysname[256]; char release[256]; @@ -1157,7 +1260,8 @@ struct uv_statfs_s { uint64_t f_bavail; uint64_t f_files; uint64_t f_ffree; - uint64_t f_spare[4]; + uint64_t f_frsize; + uint64_t f_spare[3]; }; typedef enum { @@ -1184,16 +1288,6 @@ UV_EXTERN int uv_uptime(double* uptime); UV_EXTERN uv_os_fd_t uv_get_osfhandle(int fd); UV_EXTERN int uv_open_osfhandle(uv_os_fd_t os_fd); -typedef struct { - long tv_sec; - long tv_usec; -} uv_timeval_t; - -typedef struct { - int64_t tv_sec; - int32_t tv_usec; -} uv_timeval64_t; - typedef struct { uv_timeval_t ru_utime; /* user CPU time used */ uv_timeval_t ru_stime; /* system CPU time used */ @@ -1214,11 +1308,15 @@ typedef struct { } uv_rusage_t; UV_EXTERN int uv_getrusage(uv_rusage_t* rusage); +UV_EXTERN int uv_getrusage_thread(uv_rusage_t* rusage); UV_EXTERN int uv_os_homedir(char* buffer, size_t* size); UV_EXTERN int uv_os_tmpdir(char* buffer, size_t* size); UV_EXTERN int uv_os_get_passwd(uv_passwd_t* pwd); UV_EXTERN void uv_os_free_passwd(uv_passwd_t* pwd); +UV_EXTERN int uv_os_get_passwd2(uv_passwd_t* pwd, uv_uid_t uid); +UV_EXTERN int uv_os_get_group(uv_group_t* grp, uv_uid_t gid); +UV_EXTERN void uv_os_free_group(uv_group_t* grp); UV_EXTERN uv_pid_t uv_os_getpid(void); UV_EXTERN uv_pid_t uv_os_getppid(void); @@ -1242,8 +1340,21 @@ UV_EXTERN uv_pid_t uv_os_getppid(void); UV_EXTERN int uv_os_getpriority(uv_pid_t pid, int* priority); UV_EXTERN int uv_os_setpriority(uv_pid_t pid, int priority); +enum { + UV_THREAD_PRIORITY_HIGHEST = 2, + UV_THREAD_PRIORITY_ABOVE_NORMAL = 1, + UV_THREAD_PRIORITY_NORMAL = 0, + UV_THREAD_PRIORITY_BELOW_NORMAL = -1, + UV_THREAD_PRIORITY_LOWEST = -2, +}; + +UV_EXTERN int uv_thread_getpriority(uv_thread_t tid, int* priority); +UV_EXTERN int uv_thread_setpriority(uv_thread_t tid, int priority); + +UV_EXTERN unsigned int uv_available_parallelism(void); UV_EXTERN int uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count); UV_EXTERN void uv_free_cpu_info(uv_cpu_info_t* cpu_infos, int count); +UV_EXTERN int uv_cpumask_size(void); UV_EXTERN int uv_interface_addresses(uv_interface_address_t** addresses, int* count); @@ -1276,6 +1387,15 @@ UV_EXTERN int uv_os_gethostname(char* buffer, size_t* size); UV_EXTERN int uv_os_uname(uv_utsname_t* buffer); +struct uv_metrics_s { + uint64_t loop_count; + uint64_t events; + uint64_t events_waiting; + /* private */ + uint64_t* reserved[13]; +}; + +UV_EXTERN int uv_metrics_info(uv_loop_t* loop, uv_metrics_t* metrics); UV_EXTERN uint64_t uv_metrics_idle_time(uv_loop_t* loop); typedef enum { @@ -1478,6 +1598,8 @@ UV_EXTERN int uv_fs_chmod(uv_loop_t* loop, const char* path, int mode, uv_fs_cb cb); +#define UV_FS_UTIME_NOW (INFINITY) +#define UV_FS_UTIME_OMIT (NAN) UV_EXTERN int uv_fs_utime(uv_loop_t* loop, uv_fs_t* req, const char* path, @@ -1709,7 +1831,9 @@ UV_EXTERN int uv_chdir(const char* dir); UV_EXTERN uint64_t uv_get_free_memory(void); UV_EXTERN uint64_t uv_get_total_memory(void); UV_EXTERN uint64_t uv_get_constrained_memory(void); +UV_EXTERN uint64_t uv_get_available_memory(void); +UV_EXTERN int uv_clock_gettime(uv_clock_id clock_id, uv_timespec64_t* ts); UV_EXTERN uint64_t uv_hrtime(void); UV_EXTERN void uv_sleep(unsigned int msec); @@ -1768,6 +1892,7 @@ UV_EXTERN int uv_gettimeofday(uv_timeval64_t* tv); typedef void (*uv_thread_cb)(void* arg); UV_EXTERN int uv_thread_create(uv_thread_t* tid, uv_thread_cb entry, void* arg); +UV_EXTERN int uv_thread_detach(uv_thread_t* tid); typedef enum { UV_THREAD_NO_FLAGS = 0x00, @@ -1786,9 +1911,20 @@ UV_EXTERN int uv_thread_create_ex(uv_thread_t* tid, const uv_thread_options_t* params, uv_thread_cb entry, void* arg); +UV_EXTERN int uv_thread_setaffinity(uv_thread_t* tid, + char* cpumask, + char* oldmask, + size_t mask_size); +UV_EXTERN int uv_thread_getaffinity(uv_thread_t* tid, + char* cpumask, + size_t mask_size); +UV_EXTERN int uv_thread_getcpu(void); UV_EXTERN uv_thread_t uv_thread_self(void); UV_EXTERN int uv_thread_join(uv_thread_t *tid); UV_EXTERN int uv_thread_equal(const uv_thread_t* t1, const uv_thread_t* t2); +UV_EXTERN int uv_thread_setname(const char* name); +UV_EXTERN int uv_thread_getname(uv_thread_t* tid, char* name, size_t size); + /* The presence of these unions force similar struct layout. */ #define XX(_, name) uv_ ## name ## _t name; @@ -1807,7 +1943,7 @@ struct uv_loop_s { void* data; /* Loop reference counting. */ unsigned int active_handles; - void* handle_queue[2]; + struct uv__queue handle_queue; union { void* unused; unsigned int count; @@ -1822,8 +1958,19 @@ struct uv_loop_s { UV_EXTERN void* uv_loop_get_data(const uv_loop_t*); UV_EXTERN void uv_loop_set_data(uv_loop_t*, void* data); +/* Unicode utilities needed for dealing with Windows. */ +UV_EXTERN size_t uv_utf16_length_as_wtf8(const uint16_t* utf16, + ssize_t utf16_len); +UV_EXTERN int uv_utf16_to_wtf8(const uint16_t* utf16, + ssize_t utf16_len, + char** wtf8_ptr, + size_t* wtf8_len_ptr); +UV_EXTERN ssize_t uv_wtf8_length_as_utf16(const char* wtf8); +UV_EXTERN void uv_wtf8_to_utf16(const char* wtf8, + uint16_t* utf16, + size_t utf16_len); + /* Don't export the private CPP symbols. */ -#undef UV_HANDLE_TYPE_PRIVATE #undef UV_REQ_TYPE_PRIVATE #undef UV_REQ_PRIVATE_FIELDS #undef UV_STREAM_PRIVATE_FIELDS @@ -1835,12 +1982,10 @@ UV_EXTERN void uv_loop_set_data(uv_loop_t*, void* data); #undef UV_TIMER_PRIVATE_FIELDS #undef UV_GETADDRINFO_PRIVATE_FIELDS #undef UV_GETNAMEINFO_PRIVATE_FIELDS -#undef UV_FS_REQ_PRIVATE_FIELDS #undef UV_WORK_PRIVATE_FIELDS #undef UV_FS_EVENT_PRIVATE_FIELDS #undef UV_SIGNAL_PRIVATE_FIELDS #undef UV_LOOP_PRIVATE_FIELDS -#undef UV_LOOP_PRIVATE_PLATFORM_FIELDS #undef UV__ERR #ifdef __cplusplus diff --git a/src/libuv/include/uv/android-ifaddrs.h b/src/libuv/include/uv/android-ifaddrs.h deleted file mode 100644 index 9cd19fec1..000000000 --- a/src/libuv/include/uv/android-ifaddrs.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 1995, 1999 - * Berkeley Software Design, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY Berkeley Software Design, Inc. ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL Berkeley Software Design, Inc. BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * BSDI ifaddrs.h,v 2.5 2000/02/23 14:51:59 dab Exp - */ - -#ifndef _IFADDRS_H_ -#define _IFADDRS_H_ - -struct ifaddrs { - struct ifaddrs *ifa_next; - char *ifa_name; - unsigned int ifa_flags; - struct sockaddr *ifa_addr; - struct sockaddr *ifa_netmask; - struct sockaddr *ifa_dstaddr; - void *ifa_data; -}; - -/* - * This may have been defined in . Note that if is - * to be included it must be included before this header file. - */ -#ifndef ifa_broadaddr -#define ifa_broadaddr ifa_dstaddr /* broadcast address interface */ -#endif - -#include - -__BEGIN_DECLS -extern int getifaddrs(struct ifaddrs **ifap); -extern void freeifaddrs(struct ifaddrs *ifa); -__END_DECLS - -#endif diff --git a/src/libuv/include/uv/darwin.h b/src/libuv/include/uv/darwin.h index d22641582..06962bfda 100644 --- a/src/libuv/include/uv/darwin.h +++ b/src/libuv/include/uv/darwin.h @@ -40,7 +40,7 @@ void* cf_state; \ uv_mutex_t cf_mutex; \ uv_sem_t cf_sem; \ - void* cf_signals[2]; \ + struct uv__queue cf_signals; \ #define UV_PLATFORM_FS_EVENT_FIELDS \ uv__io_t event_watcher; \ @@ -48,8 +48,8 @@ int realpath_len; \ int cf_flags; \ uv_async_t* cf_cb; \ - void* cf_events[2]; \ - void* cf_member[2]; \ + struct uv__queue cf_events; \ + struct uv__queue cf_member; \ int cf_error; \ uv_mutex_t cf_mutex; \ diff --git a/src/libuv/include/uv/errno.h b/src/libuv/include/uv/errno.h index 71906b3f5..ac00778cf 100644 --- a/src/libuv/include/uv/errno.h +++ b/src/libuv/include/uv/errno.h @@ -413,7 +413,6 @@ #elif defined(__APPLE__) || \ defined(__DragonFly__) || \ defined(__FreeBSD__) || \ - defined(__FreeBSD_kernel__) || \ defined(__NetBSD__) || \ defined(__OpenBSD__) # define UV__EHOSTDOWN (-64) @@ -457,4 +456,28 @@ # define UV__ESOCKTNOSUPPORT (-4025) #endif +/* FreeBSD defines ENODATA in /usr/include/c++/v1/errno.h which is only visible + * if C++ is being used. Define it directly to avoid problems when integrating + * libuv in a C++ project. + */ +#if defined(ENODATA) && !defined(_WIN32) +# define UV__ENODATA UV__ERR(ENODATA) +#elif defined(__FreeBSD__) +# define UV__ENODATA (-9919) +#else +# define UV__ENODATA (-4024) +#endif + +#if defined(EUNATCH) && !defined(_WIN32) +# define UV__EUNATCH UV__ERR(EUNATCH) +#else +# define UV__EUNATCH (-4023) +#endif + +#if defined(ENOEXEC) && !defined(_WIN32) +# define UV__ENOEXEC UV__ERR(ENOEXEC) +#else +# define UV__ENOEXEC (-4022) +#endif + #endif /* UV_ERRNO_H_ */ diff --git a/src/libuv/include/uv/linux.h b/src/libuv/include/uv/linux.h index 9b38405a1..9f22f8cf7 100644 --- a/src/libuv/include/uv/linux.h +++ b/src/libuv/include/uv/linux.h @@ -28,7 +28,7 @@ int inotify_fd; \ #define UV_PLATFORM_FS_EVENT_FIELDS \ - void* watchers[2]; \ + struct uv__queue watchers; \ int wd; \ #endif /* UV_LINUX_H */ diff --git a/src/libuv/include/uv/stdint-msvc2008.h b/src/libuv/include/uv/stdint-msvc2008.h deleted file mode 100644 index d02608a59..000000000 --- a/src/libuv/include/uv/stdint-msvc2008.h +++ /dev/null @@ -1,247 +0,0 @@ -// ISO C9x compliant stdint.h for Microsoft Visual Studio -// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 -// -// Copyright (c) 2006-2008 Alexander Chemeris -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. The name of the author may be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED -// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _MSC_VER // [ -#error "Use this header only with Microsoft Visual C++ compilers!" -#endif // _MSC_VER ] - -#ifndef _MSC_STDINT_H_ // [ -#define _MSC_STDINT_H_ - -#if _MSC_VER > 1000 -#pragma once -#endif - -#include - -// For Visual Studio 6 in C++ mode and for many Visual Studio versions when -// compiling for ARM we should wrap include with 'extern "C++" {}' -// or compiler give many errors like this: -// error C2733: second C linkage of overloaded function 'wmemchr' not allowed -#ifdef __cplusplus -extern "C" { -#endif -# include -#ifdef __cplusplus -} -#endif - -// Define _W64 macros to mark types changing their size, like intptr_t. -#ifndef _W64 -# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 -# define _W64 __w64 -# else -# define _W64 -# endif -#endif - - -// 7.18.1 Integer types - -// 7.18.1.1 Exact-width integer types - -// Visual Studio 6 and Embedded Visual C++ 4 doesn't -// realize that, e.g. char has the same size as __int8 -// so we give up on __intX for them. -#if (_MSC_VER < 1300) - typedef signed char int8_t; - typedef signed short int16_t; - typedef signed int int32_t; - typedef unsigned char uint8_t; - typedef unsigned short uint16_t; - typedef unsigned int uint32_t; -#else - typedef signed __int8 int8_t; - typedef signed __int16 int16_t; - typedef signed __int32 int32_t; - typedef unsigned __int8 uint8_t; - typedef unsigned __int16 uint16_t; - typedef unsigned __int32 uint32_t; -#endif -typedef signed __int64 int64_t; -typedef unsigned __int64 uint64_t; - - -// 7.18.1.2 Minimum-width integer types -typedef int8_t int_least8_t; -typedef int16_t int_least16_t; -typedef int32_t int_least32_t; -typedef int64_t int_least64_t; -typedef uint8_t uint_least8_t; -typedef uint16_t uint_least16_t; -typedef uint32_t uint_least32_t; -typedef uint64_t uint_least64_t; - -// 7.18.1.3 Fastest minimum-width integer types -typedef int8_t int_fast8_t; -typedef int16_t int_fast16_t; -typedef int32_t int_fast32_t; -typedef int64_t int_fast64_t; -typedef uint8_t uint_fast8_t; -typedef uint16_t uint_fast16_t; -typedef uint32_t uint_fast32_t; -typedef uint64_t uint_fast64_t; - -// 7.18.1.4 Integer types capable of holding object pointers -#ifdef _WIN64 // [ - typedef signed __int64 intptr_t; - typedef unsigned __int64 uintptr_t; -#else // _WIN64 ][ - typedef _W64 signed int intptr_t; - typedef _W64 unsigned int uintptr_t; -#endif // _WIN64 ] - -// 7.18.1.5 Greatest-width integer types -typedef int64_t intmax_t; -typedef uint64_t uintmax_t; - - -// 7.18.2 Limits of specified-width integer types - -#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259 - -// 7.18.2.1 Limits of exact-width integer types -#define INT8_MIN ((int8_t)_I8_MIN) -#define INT8_MAX _I8_MAX -#define INT16_MIN ((int16_t)_I16_MIN) -#define INT16_MAX _I16_MAX -#define INT32_MIN ((int32_t)_I32_MIN) -#define INT32_MAX _I32_MAX -#define INT64_MIN ((int64_t)_I64_MIN) -#define INT64_MAX _I64_MAX -#define UINT8_MAX _UI8_MAX -#define UINT16_MAX _UI16_MAX -#define UINT32_MAX _UI32_MAX -#define UINT64_MAX _UI64_MAX - -// 7.18.2.2 Limits of minimum-width integer types -#define INT_LEAST8_MIN INT8_MIN -#define INT_LEAST8_MAX INT8_MAX -#define INT_LEAST16_MIN INT16_MIN -#define INT_LEAST16_MAX INT16_MAX -#define INT_LEAST32_MIN INT32_MIN -#define INT_LEAST32_MAX INT32_MAX -#define INT_LEAST64_MIN INT64_MIN -#define INT_LEAST64_MAX INT64_MAX -#define UINT_LEAST8_MAX UINT8_MAX -#define UINT_LEAST16_MAX UINT16_MAX -#define UINT_LEAST32_MAX UINT32_MAX -#define UINT_LEAST64_MAX UINT64_MAX - -// 7.18.2.3 Limits of fastest minimum-width integer types -#define INT_FAST8_MIN INT8_MIN -#define INT_FAST8_MAX INT8_MAX -#define INT_FAST16_MIN INT16_MIN -#define INT_FAST16_MAX INT16_MAX -#define INT_FAST32_MIN INT32_MIN -#define INT_FAST32_MAX INT32_MAX -#define INT_FAST64_MIN INT64_MIN -#define INT_FAST64_MAX INT64_MAX -#define UINT_FAST8_MAX UINT8_MAX -#define UINT_FAST16_MAX UINT16_MAX -#define UINT_FAST32_MAX UINT32_MAX -#define UINT_FAST64_MAX UINT64_MAX - -// 7.18.2.4 Limits of integer types capable of holding object pointers -#ifdef _WIN64 // [ -# define INTPTR_MIN INT64_MIN -# define INTPTR_MAX INT64_MAX -# define UINTPTR_MAX UINT64_MAX -#else // _WIN64 ][ -# define INTPTR_MIN INT32_MIN -# define INTPTR_MAX INT32_MAX -# define UINTPTR_MAX UINT32_MAX -#endif // _WIN64 ] - -// 7.18.2.5 Limits of greatest-width integer types -#define INTMAX_MIN INT64_MIN -#define INTMAX_MAX INT64_MAX -#define UINTMAX_MAX UINT64_MAX - -// 7.18.3 Limits of other integer types - -#ifdef _WIN64 // [ -# define PTRDIFF_MIN _I64_MIN -# define PTRDIFF_MAX _I64_MAX -#else // _WIN64 ][ -# define PTRDIFF_MIN _I32_MIN -# define PTRDIFF_MAX _I32_MAX -#endif // _WIN64 ] - -#define SIG_ATOMIC_MIN INT_MIN -#define SIG_ATOMIC_MAX INT_MAX - -#ifndef SIZE_MAX // [ -# ifdef _WIN64 // [ -# define SIZE_MAX _UI64_MAX -# else // _WIN64 ][ -# define SIZE_MAX _UI32_MAX -# endif // _WIN64 ] -#endif // SIZE_MAX ] - -// WCHAR_MIN and WCHAR_MAX are also defined in -#ifndef WCHAR_MIN // [ -# define WCHAR_MIN 0 -#endif // WCHAR_MIN ] -#ifndef WCHAR_MAX // [ -# define WCHAR_MAX _UI16_MAX -#endif // WCHAR_MAX ] - -#define WINT_MIN 0 -#define WINT_MAX _UI16_MAX - -#endif // __STDC_LIMIT_MACROS ] - - -// 7.18.4 Limits of other integer types - -#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260 - -// 7.18.4.1 Macros for minimum-width integer constants - -#define INT8_C(val) val##i8 -#define INT16_C(val) val##i16 -#define INT32_C(val) val##i32 -#define INT64_C(val) val##i64 - -#define UINT8_C(val) val##ui8 -#define UINT16_C(val) val##ui16 -#define UINT32_C(val) val##ui32 -#define UINT64_C(val) val##ui64 - -// 7.18.4.2 Macros for greatest-width integer constants -#define INTMAX_C INT64_C -#define UINTMAX_C UINT64_C - -#endif // __STDC_CONSTANT_MACROS ] - - -#endif // _MSC_STDINT_H_ ] diff --git a/src/libuv/include/uv/threadpool.h b/src/libuv/include/uv/threadpool.h index 9708ebdd5..24ce916fd 100644 --- a/src/libuv/include/uv/threadpool.h +++ b/src/libuv/include/uv/threadpool.h @@ -31,7 +31,7 @@ struct uv__work { void (*work)(struct uv__work *w); void (*done)(struct uv__work *w, int status); struct uv_loop_s* loop; - void* wq[2]; + struct uv__queue wq; }; #endif /* UV_THREADPOOL_H_ */ diff --git a/src/libuv/include/uv/tree.h b/src/libuv/include/uv/tree.h index 2b28835fd..06bba084f 100644 --- a/src/libuv/include/uv/tree.h +++ b/src/libuv/include/uv/tree.h @@ -35,21 +35,7 @@ #endif /* - * This file defines data structures for different types of trees: - * splay trees and red-black trees. - * - * A splay tree is a self-organizing data structure. Every operation - * on the tree causes a splay to happen. The splay moves the requested - * node to the root of the tree and partly rebalances it. - * - * This has the benefit that request locality causes faster lookups as - * the requested nodes move to the top of the tree. On the other hand, - * every lookup causes memory writes. - * - * The Balance Theorem bounds the total access time for m operations - * and n inserts on an initially empty tree as O((m + n)lg n). The - * amortized cost for a sequence of m accesses to a splay tree is O(lg n); - * + * This file defines data structures for red-black trees. * A red-black tree is a binary search tree with the node color as an * extra attribute. It fulfills a set of conditions: * - every search path from the root to a leaf consists of the @@ -61,239 +47,6 @@ * The maximum height of a red-black tree is 2lg (n+1). */ -#define SPLAY_HEAD(name, type) \ -struct name { \ - struct type *sph_root; /* root of the tree */ \ -} - -#define SPLAY_INITIALIZER(root) \ - { NULL } - -#define SPLAY_INIT(root) do { \ - (root)->sph_root = NULL; \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_ENTRY(type) \ -struct { \ - struct type *spe_left; /* left element */ \ - struct type *spe_right; /* right element */ \ -} - -#define SPLAY_LEFT(elm, field) (elm)->field.spe_left -#define SPLAY_RIGHT(elm, field) (elm)->field.spe_right -#define SPLAY_ROOT(head) (head)->sph_root -#define SPLAY_EMPTY(head) (SPLAY_ROOT(head) == NULL) - -/* SPLAY_ROTATE_{LEFT,RIGHT} expect that tmp hold SPLAY_{RIGHT,LEFT} */ -#define SPLAY_ROTATE_RIGHT(head, tmp, field) do { \ - SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(tmp, field); \ - SPLAY_RIGHT(tmp, field) = (head)->sph_root; \ - (head)->sph_root = tmp; \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_ROTATE_LEFT(head, tmp, field) do { \ - SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(tmp, field); \ - SPLAY_LEFT(tmp, field) = (head)->sph_root; \ - (head)->sph_root = tmp; \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_LINKLEFT(head, tmp, field) do { \ - SPLAY_LEFT(tmp, field) = (head)->sph_root; \ - tmp = (head)->sph_root; \ - (head)->sph_root = SPLAY_LEFT((head)->sph_root, field); \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_LINKRIGHT(head, tmp, field) do { \ - SPLAY_RIGHT(tmp, field) = (head)->sph_root; \ - tmp = (head)->sph_root; \ - (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field); \ -} while (/*CONSTCOND*/ 0) - -#define SPLAY_ASSEMBLE(head, node, left, right, field) do { \ - SPLAY_RIGHT(left, field) = SPLAY_LEFT((head)->sph_root, field); \ - SPLAY_LEFT(right, field) = SPLAY_RIGHT((head)->sph_root, field); \ - SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(node, field); \ - SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(node, field); \ -} while (/*CONSTCOND*/ 0) - -/* Generates prototypes and inline functions */ - -#define SPLAY_PROTOTYPE(name, type, field, cmp) \ -void name##_SPLAY(struct name *, struct type *); \ -void name##_SPLAY_MINMAX(struct name *, int); \ -struct type *name##_SPLAY_INSERT(struct name *, struct type *); \ -struct type *name##_SPLAY_REMOVE(struct name *, struct type *); \ - \ -/* Finds the node with the same key as elm */ \ -static __inline struct type * \ -name##_SPLAY_FIND(struct name *head, struct type *elm) \ -{ \ - if (SPLAY_EMPTY(head)) \ - return(NULL); \ - name##_SPLAY(head, elm); \ - if ((cmp)(elm, (head)->sph_root) == 0) \ - return (head->sph_root); \ - return (NULL); \ -} \ - \ -static __inline struct type * \ -name##_SPLAY_NEXT(struct name *head, struct type *elm) \ -{ \ - name##_SPLAY(head, elm); \ - if (SPLAY_RIGHT(elm, field) != NULL) { \ - elm = SPLAY_RIGHT(elm, field); \ - while (SPLAY_LEFT(elm, field) != NULL) { \ - elm = SPLAY_LEFT(elm, field); \ - } \ - } else \ - elm = NULL; \ - return (elm); \ -} \ - \ -static __inline struct type * \ -name##_SPLAY_MIN_MAX(struct name *head, int val) \ -{ \ - name##_SPLAY_MINMAX(head, val); \ - return (SPLAY_ROOT(head)); \ -} - -/* Main splay operation. - * Moves node close to the key of elm to top - */ -#define SPLAY_GENERATE(name, type, field, cmp) \ -struct type * \ -name##_SPLAY_INSERT(struct name *head, struct type *elm) \ -{ \ - if (SPLAY_EMPTY(head)) { \ - SPLAY_LEFT(elm, field) = SPLAY_RIGHT(elm, field) = NULL; \ - } else { \ - int __comp; \ - name##_SPLAY(head, elm); \ - __comp = (cmp)(elm, (head)->sph_root); \ - if(__comp < 0) { \ - SPLAY_LEFT(elm, field) = SPLAY_LEFT((head)->sph_root, field); \ - SPLAY_RIGHT(elm, field) = (head)->sph_root; \ - SPLAY_LEFT((head)->sph_root, field) = NULL; \ - } else if (__comp > 0) { \ - SPLAY_RIGHT(elm, field) = SPLAY_RIGHT((head)->sph_root, field); \ - SPLAY_LEFT(elm, field) = (head)->sph_root; \ - SPLAY_RIGHT((head)->sph_root, field) = NULL; \ - } else \ - return ((head)->sph_root); \ - } \ - (head)->sph_root = (elm); \ - return (NULL); \ -} \ - \ -struct type * \ -name##_SPLAY_REMOVE(struct name *head, struct type *elm) \ -{ \ - struct type *__tmp; \ - if (SPLAY_EMPTY(head)) \ - return (NULL); \ - name##_SPLAY(head, elm); \ - if ((cmp)(elm, (head)->sph_root) == 0) { \ - if (SPLAY_LEFT((head)->sph_root, field) == NULL) { \ - (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field); \ - } else { \ - __tmp = SPLAY_RIGHT((head)->sph_root, field); \ - (head)->sph_root = SPLAY_LEFT((head)->sph_root, field); \ - name##_SPLAY(head, elm); \ - SPLAY_RIGHT((head)->sph_root, field) = __tmp; \ - } \ - return (elm); \ - } \ - return (NULL); \ -} \ - \ -void \ -name##_SPLAY(struct name *head, struct type *elm) \ -{ \ - struct type __node, *__left, *__right, *__tmp; \ - int __comp; \ - \ - SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL; \ - __left = __right = &__node; \ - \ - while ((__comp = (cmp)(elm, (head)->sph_root)) != 0) { \ - if (__comp < 0) { \ - __tmp = SPLAY_LEFT((head)->sph_root, field); \ - if (__tmp == NULL) \ - break; \ - if ((cmp)(elm, __tmp) < 0){ \ - SPLAY_ROTATE_RIGHT(head, __tmp, field); \ - if (SPLAY_LEFT((head)->sph_root, field) == NULL) \ - break; \ - } \ - SPLAY_LINKLEFT(head, __right, field); \ - } else if (__comp > 0) { \ - __tmp = SPLAY_RIGHT((head)->sph_root, field); \ - if (__tmp == NULL) \ - break; \ - if ((cmp)(elm, __tmp) > 0){ \ - SPLAY_ROTATE_LEFT(head, __tmp, field); \ - if (SPLAY_RIGHT((head)->sph_root, field) == NULL) \ - break; \ - } \ - SPLAY_LINKRIGHT(head, __left, field); \ - } \ - } \ - SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \ -} \ - \ -/* Splay with either the minimum or the maximum element \ - * Used to find minimum or maximum element in tree. \ - */ \ -void name##_SPLAY_MINMAX(struct name *head, int __comp) \ -{ \ - struct type __node, *__left, *__right, *__tmp; \ - \ - SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL; \ - __left = __right = &__node; \ - \ - for (;;) { \ - if (__comp < 0) { \ - __tmp = SPLAY_LEFT((head)->sph_root, field); \ - if (__tmp == NULL) \ - break; \ - if (__comp < 0){ \ - SPLAY_ROTATE_RIGHT(head, __tmp, field); \ - if (SPLAY_LEFT((head)->sph_root, field) == NULL) \ - break; \ - } \ - SPLAY_LINKLEFT(head, __right, field); \ - } else if (__comp > 0) { \ - __tmp = SPLAY_RIGHT((head)->sph_root, field); \ - if (__tmp == NULL) \ - break; \ - if (__comp > 0) { \ - SPLAY_ROTATE_LEFT(head, __tmp, field); \ - if (SPLAY_RIGHT((head)->sph_root, field) == NULL) \ - break; \ - } \ - SPLAY_LINKRIGHT(head, __left, field); \ - } \ - } \ - SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \ -} - -#define SPLAY_NEGINF -1 -#define SPLAY_INF 1 - -#define SPLAY_INSERT(name, x, y) name##_SPLAY_INSERT(x, y) -#define SPLAY_REMOVE(name, x, y) name##_SPLAY_REMOVE(x, y) -#define SPLAY_FIND(name, x, y) name##_SPLAY_FIND(x, y) -#define SPLAY_NEXT(name, x, y) name##_SPLAY_NEXT(x, y) -#define SPLAY_MIN(name, x) (SPLAY_EMPTY(x) ? NULL \ - : name##_SPLAY_MIN_MAX(x, SPLAY_NEGINF)) -#define SPLAY_MAX(name, x) (SPLAY_EMPTY(x) ? NULL \ - : name##_SPLAY_MIN_MAX(x, SPLAY_INF)) - -#define SPLAY_FOREACH(x, name, head) \ - for ((x) = SPLAY_MIN(name, head); \ - (x) != NULL; \ - (x) = SPLAY_NEXT(name, head, x)) - /* Macros that define a red-black tree */ #define RB_HEAD(name, type) \ struct name { \ @@ -730,8 +483,8 @@ name##_RB_MINMAX(struct name *head, int val) \ #define RB_REMOVE(name, x, y) name##_RB_REMOVE(x, y) #define RB_FIND(name, x, y) name##_RB_FIND(x, y) #define RB_NFIND(name, x, y) name##_RB_NFIND(x, y) -#define RB_NEXT(name, x, y) name##_RB_NEXT(y) -#define RB_PREV(name, x, y) name##_RB_PREV(y) +#define RB_NEXT(name, x) name##_RB_NEXT(x) +#define RB_PREV(name, x) name##_RB_PREV(x) #define RB_MIN(name, x) name##_RB_MINMAX(x, RB_NEGINF) #define RB_MAX(name, x) name##_RB_MINMAX(x, RB_INF) diff --git a/src/libuv/include/uv/unix.h b/src/libuv/include/uv/unix.h index ea37d7876..c6ba419da 100644 --- a/src/libuv/include/uv/unix.h +++ b/src/libuv/include/uv/unix.h @@ -59,7 +59,6 @@ # include "uv/darwin.h" #elif defined(__DragonFly__) || \ defined(__FreeBSD__) || \ - defined(__FreeBSD_kernel__) || \ defined(__OpenBSD__) || \ defined(__NetBSD__) # include "uv/bsd.h" @@ -86,15 +85,12 @@ struct uv__io_s; struct uv_loop_s; -typedef void (*uv__io_cb)(struct uv_loop_s* loop, - struct uv__io_s* w, - unsigned int events); typedef struct uv__io_s uv__io_t; struct uv__io_s { - uv__io_cb cb; - void* pending_queue[2]; - void* watcher_queue[2]; + uintptr_t bits; + struct uv__queue pending_queue; + struct uv__queue watcher_queue; unsigned int pevents; /* Pending event mask i.e. mask at next tick. */ unsigned int events; /* Current event mask. */ int fd; @@ -221,21 +217,21 @@ typedef struct { #define UV_LOOP_PRIVATE_FIELDS \ unsigned long flags; \ int backend_fd; \ - void* pending_queue[2]; \ - void* watcher_queue[2]; \ + struct uv__queue pending_queue; \ + struct uv__queue watcher_queue; \ uv__io_t** watchers; \ unsigned int nwatchers; \ unsigned int nfds; \ - void* wq[2]; \ + struct uv__queue wq; \ uv_mutex_t wq_mutex; \ uv_async_t wq_async; \ uv_rwlock_t cloexec_lock; \ uv_handle_t* closing_handles; \ - void* process_handles[2]; \ - void* prepare_handles[2]; \ - void* check_handles[2]; \ - void* idle_handles[2]; \ - void* async_handles[2]; \ + struct uv__queue process_handles; \ + struct uv__queue prepare_handles; \ + struct uv__queue check_handles; \ + struct uv__queue idle_handles; \ + struct uv__queue async_handles; \ void (*async_unused)(void); /* TODO(bnoordhuis) Remove in libuv v2. */ \ uv__io_t async_io_watcher; \ int async_wfd; \ @@ -258,7 +254,7 @@ typedef struct { #define UV_PRIVATE_REQ_TYPES /* empty */ #define UV_WRITE_PRIVATE_FIELDS \ - void* queue[2]; \ + struct uv__queue queue; \ unsigned int write_index; \ uv_buf_t* bufs; \ unsigned int nbufs; \ @@ -266,13 +262,16 @@ typedef struct { uv_buf_t bufsml[4]; \ #define UV_CONNECT_PRIVATE_FIELDS \ - void* queue[2]; \ + struct uv__queue queue; \ #define UV_SHUTDOWN_PRIVATE_FIELDS /* empty */ #define UV_UDP_SEND_PRIVATE_FIELDS \ - void* queue[2]; \ - struct sockaddr_storage addr; \ + struct uv__queue queue; \ + union { \ + struct sockaddr addr; \ + struct sockaddr_storage storage; \ + } u; \ unsigned int nbufs; \ uv_buf_t* bufs; \ ssize_t status; \ @@ -287,8 +286,8 @@ typedef struct { uv_connect_t *connect_req; \ uv_shutdown_t *shutdown_req; \ uv__io_t io_watcher; \ - void* write_queue[2]; \ - void* write_completed_queue[2]; \ + struct uv__queue write_queue; \ + struct uv__queue write_completed_queue; \ uv_connection_cb connection_cb; \ int delayed_error; \ int accepted_fd; \ @@ -301,35 +300,38 @@ typedef struct { uv_alloc_cb alloc_cb; \ uv_udp_recv_cb recv_cb; \ uv__io_t io_watcher; \ - void* write_queue[2]; \ - void* write_completed_queue[2]; \ + struct uv__queue write_queue; \ + struct uv__queue write_completed_queue; \ #define UV_PIPE_PRIVATE_FIELDS \ - const char* pipe_fname; /* strdup'ed */ + const char* pipe_fname; /* NULL or strdup'ed */ #define UV_POLL_PRIVATE_FIELDS \ uv__io_t io_watcher; #define UV_PREPARE_PRIVATE_FIELDS \ uv_prepare_cb prepare_cb; \ - void* queue[2]; \ + struct uv__queue queue; \ #define UV_CHECK_PRIVATE_FIELDS \ uv_check_cb check_cb; \ - void* queue[2]; \ + struct uv__queue queue; \ #define UV_IDLE_PRIVATE_FIELDS \ uv_idle_cb idle_cb; \ - void* queue[2]; \ + struct uv__queue queue; \ #define UV_ASYNC_PRIVATE_FIELDS \ uv_async_cb async_cb; \ - void* queue[2]; \ + struct uv__queue queue; \ int pending; \ #define UV_TIMER_PRIVATE_FIELDS \ uv_timer_cb timer_cb; \ - void* heap_node[3]; \ + union { \ + void* heap[3]; \ + struct uv__queue queue; \ + } node; \ uint64_t timeout; \ uint64_t repeat; \ uint64_t start_id; @@ -353,7 +355,7 @@ typedef struct { int retcode; #define UV_PROCESS_PRIVATE_FIELDS \ - void* queue[2]; \ + struct uv__queue queue; \ int status; \ #define UV_FS_PRIVATE_FIELDS \ @@ -418,6 +420,8 @@ typedef struct { # define UV_FS_O_DIRECT 0x04000 #elif defined(__linux__) && defined(__x86_64__) # define UV_FS_O_DIRECT 0x04000 +#elif defined(__linux__) && defined(__loongarch__) +# define UV_FS_O_DIRECT 0x04000 #elif defined(O_DIRECT) # define UV_FS_O_DIRECT O_DIRECT #else diff --git a/src/libuv/include/uv/version.h b/src/libuv/include/uv/version.h index 46f469296..70f071a47 100644 --- a/src/libuv/include/uv/version.h +++ b/src/libuv/include/uv/version.h @@ -31,8 +31,8 @@ */ #define UV_VERSION_MAJOR 1 -#define UV_VERSION_MINOR 43 -#define UV_VERSION_PATCH 0 +#define UV_VERSION_MINOR 52 +#define UV_VERSION_PATCH 1 #define UV_VERSION_IS_RELEASE 1 #define UV_VERSION_SUFFIX "" diff --git a/src/libuv/include/uv/win.h b/src/libuv/include/uv/win.h index 5fecf4bf6..7b4ebd4b7 100644 --- a/src/libuv/include/uv/win.h +++ b/src/libuv/include/uv/win.h @@ -20,7 +20,7 @@ */ #ifndef _WIN32_WINNT -# define _WIN32_WINNT 0x0600 +# define _WIN32_WINNT 0x0A00 #endif #if !defined(_SSIZE_T_) && !defined(_SSIZE_T_DEFINED) @@ -32,20 +32,12 @@ typedef intptr_t ssize_t; #include -#if defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) -typedef struct pollfd { - SOCKET fd; - short events; - short revents; -} WSAPOLLFD, *PWSAPOLLFD, *LPWSAPOLLFD; -#endif - #ifndef LOCALE_INVARIANT # define LOCALE_INVARIANT 0x007f #endif #include -// Disable the typedef in mstcpip.h of MinGW. +/* Disable the typedef in mstcpip.h of MinGW. */ #define _TCP_INITIAL_RTO_PARAMETERS _TCP_INITIAL_RTO_PARAMETERS__AVOID #define TCP_INITIAL_RTO_PARAMETERS TCP_INITIAL_RTO_PARAMETERS__AVOID #define PTCP_INITIAL_RTO_PARAMETERS PTCP_INITIAL_RTO_PARAMETERS__AVOID @@ -59,12 +51,7 @@ typedef struct pollfd { #include #include #include - -#if defined(_MSC_VER) && _MSC_VER < 1600 -# include "uv/stdint-msvc2008.h" -#else -# include -#endif +#include #include "uv/tree.h" #include "uv/threadpool.h" @@ -75,6 +62,11 @@ typedef struct pollfd { # define S_IFLNK 0xA000 #endif +/* Define missing in Windows Kit Include\{VERSION}\ucrt\sys\stat.h */ +#if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES && !defined(S_IFIFO) +# define S_IFIFO _S_IFIFO +#endif + /* Additional signals supported by uv_signal and or uv_kill. The CRT defines * the following signals already: * @@ -91,6 +83,7 @@ typedef struct pollfd { * variants (Linux and Darwin) */ #define SIGHUP 1 +#define SIGQUIT 3 #define SIGKILL 9 #define SIGWINCH 28 @@ -223,7 +216,7 @@ typedef struct _AFD_POLL_INFO { AFD_POLL_HANDLE_INFO Handles[1]; } AFD_POLL_INFO, *PAFD_POLL_INFO; -#define UV_MSAFD_PROVIDER_COUNT 3 +#define UV_MSAFD_PROVIDER_COUNT 4 /** @@ -263,40 +256,34 @@ typedef union { } unused_; /* TODO: retained for ABI compatibility; remove me in v2.x. */ } uv_cond_t; -typedef union { - struct { - unsigned int num_readers_; - CRITICAL_SECTION num_readers_lock_; - HANDLE write_semaphore_; - } state_; - /* TODO: remove me in v2.x. */ - struct { - SRWLOCK unused_; - } unused1_; - /* TODO: remove me in v2.x. */ - struct { - uv_mutex_t unused1_; - uv_mutex_t unused2_; - } unused2_; +typedef struct { + SRWLOCK read_write_lock_; + /* TODO: retained for ABI compatibility; remove me in v2.x */ +#ifdef _WIN64 + unsigned char padding_[72]; +#else + unsigned char padding_[44]; +#endif } uv_rwlock_t; typedef struct { - unsigned int n; - unsigned int count; + unsigned threshold; + unsigned in; uv_mutex_t mutex; - uv_sem_t turnstile1; - uv_sem_t turnstile2; + /* TODO: in v2 make this a uv_cond_t, without unused_ */ + CONDITION_VARIABLE cond; + unsigned out; } uv_barrier_t; typedef struct { DWORD tls_index; } uv_key_t; -#define UV_ONCE_INIT { 0, NULL } +#define UV_ONCE_INIT { 0, { NULL } } typedef struct uv_once_s { - unsigned char ran; - HANDLE event; + unsigned char unused; + INIT_ONCE init_once; } uv_once_t; /* Platform-specific definitions for uv_spawn support. */ @@ -355,14 +342,14 @@ typedef struct { uv_idle_t* next_idle_handle; \ /* This handle holds the peer sockets for the fast variant of uv_poll_t */ \ SOCKET poll_peer_sockets[UV_MSAFD_PROVIDER_COUNT]; \ - /* Counter to keep track of active tcp streams */ \ + /* No longer used. */ \ unsigned int active_tcp_streams; \ - /* Counter to keep track of active udp streams */ \ + /* No longer used. */ \ unsigned int active_udp_streams; \ /* Counter to started timer */ \ uint64_t timer_counter; \ /* Threadpool */ \ - void* wq[2]; \ + struct uv__queue wq; \ uv_mutex_t wq_mutex; \ uv_async_t wq_async; @@ -384,6 +371,13 @@ typedef struct { OVERLAPPED overlapped; \ size_t queued_bytes; \ } io; \ + /* in v2, we can move these to the UV_CONNECT_PRIVATE_FIELDS */ \ + struct { \ + ULONG_PTR result; /* overlapped.Internal is reused to hold the result */\ + HANDLE pipeHandle; \ + DWORD duplex_flags; \ + WCHAR* name; \ + } connect; \ } u; \ struct uv_req_s* next_req; @@ -484,7 +478,7 @@ typedef struct { uint32_t payload_remaining; \ uint64_t dummy; /* TODO: retained for ABI compat; remove this in v2.x. */ \ } ipc_data_frame; \ - void* ipc_xfer_queue[2]; \ + struct uv__queue ipc_xfer_queue; \ int ipc_xfer_queue_length; \ uv_write_t* non_overlapped_writes_tail; \ CRITICAL_SECTION readfile_thread_lock; \ @@ -498,15 +492,18 @@ typedef struct { struct { uv_pipe_connection_fields } conn; \ } pipe; -/* TODO: put the parser states in an union - TTY handles are always half-duplex +/* TODO: put the parser states in a union - TTY handles are always half-duplex * so read-state can safely overlap write-state. */ #define UV_TTY_PRIVATE_FIELDS \ HANDLE handle; \ union { \ struct { \ /* Used for readable TTY handles */ \ - /* TODO: remove me in v2.x. */ \ - HANDLE unused_; \ + union { \ + /* TODO: remove me in v2.x. */ \ + HANDLE unused_; \ + int mode; \ + } mode; \ uv_buf_t read_line_buffer; \ HANDLE read_raw_wait; \ /* Fields used for translating win keystrokes into vt100 characters */ \ @@ -548,7 +545,10 @@ typedef struct { unsigned char events; #define UV_TIMER_PRIVATE_FIELDS \ - void* heap_node[3]; \ + union { \ + void* heap[3]; \ + struct uv__queue queue; \ + } node; \ int unused; \ uint64_t timeout; \ uint64_t repeat; \ @@ -606,7 +606,7 @@ typedef struct { struct uv_process_exit_s { \ UV_REQ_FIELDS \ } exit_req; \ - BYTE* child_stdio_buffer; \ + void* unused; /* TODO: retained for ABI compat; remove this in v2.x. */ \ int exit_signal; \ HANDLE wait_handle; \ HANDLE process_handle; \ diff --git a/src/libuv/install-sh b/src/libuv/install-sh index ec298b537..1d8d96696 100755 --- a/src/libuv/install-sh +++ b/src/libuv/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2020-11-14.01; # UTC +scriptversion=2025-06-18.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -124,9 +124,9 @@ it's up to you to specify -f if you want it. If -S is not specified, no backups are attempted. -Email bug reports to bug-automake@gnu.org. -Automake home page: https://www.gnu.org/software/automake/ -" +Report bugs to . +GNU Automake home page: . +General help using GNU software: ." while test $# -ne 0; do case $1 in @@ -170,7 +170,7 @@ while test $# -ne 0; do -T) is_target_a_directory=never;; - --version) echo "$0 $scriptversion"; exit $?;; + --version) echo "$0 (GNU Automake) $scriptversion"; exit $?;; --) shift break;; @@ -345,7 +345,7 @@ do ' 0 # Because "mkdir -p" follows existing symlinks and we likely work - # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directly in world-writable /tmp, make sure that the '$tmpdir' # directory is successfully created first before we actually test # 'mkdir -p'. if (umask $mkdir_umask && @@ -353,7 +353,7 @@ do exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 then if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. + # Check for POSIX incompatibility with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. @@ -533,9 +533,9 @@ do done # Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp nil t) # time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-format: "%Y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/src/libuv/libuv-static.pc.in b/src/libuv/libuv-static.pc.in index ea625482d..639058c8e 100644 --- a/src/libuv/libuv-static.pc.in +++ b/src/libuv/libuv-static.pc.in @@ -8,5 +8,5 @@ Version: @PACKAGE_VERSION@ Description: multi-platform support library with a focus on asynchronous I/O. URL: http://libuv.org/ -Libs: -L${libdir} -luv_a @LIBS@ +Libs: -L${libdir} -l:libuv.a @LIBS@ Cflags: -I${includedir} diff --git a/src/libuv/libuv.pc.in b/src/libuv/libuv.pc.in index 1d7b86f75..0f5691466 100644 --- a/src/libuv/libuv.pc.in +++ b/src/libuv/libuv.pc.in @@ -2,6 +2,7 @@ prefix=@prefix@ exec_prefix=${prefix} libdir=@libdir@ includedir=@includedir@ +LIBUV_STATIC=-L${libdir} -l:libuv.a @LIBS@ Name: libuv Version: @PACKAGE_VERSION@ diff --git a/src/libuv/ltmain.sh b/src/libuv/ltmain.sh index 0f0a2da3f..f2abcc80d 100644 --- a/src/libuv/ltmain.sh +++ b/src/libuv/ltmain.sh @@ -1,12 +1,12 @@ -#! /bin/sh +#! /usr/bin/env sh ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in -## by inline-source v2014-01-03.01 +## by inline-source v2019-02-19.15 -# libtool (GNU libtool) 2.4.6 +# libtool (GNU libtool) 2.6.0.23-b08cb # Provide generalized library-building support services. # Written by Gordon Matzigkeit , 1996 -# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# Copyright (C) 1996-2019, 2021-2026 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -31,8 +31,8 @@ PROGRAM=libtool PACKAGE=libtool -VERSION=2.4.6 -package_revision=2.4.6 +VERSION=2.6.0.23-b08cb +package_revision=2.6.0.23 ## ------ ## @@ -64,34 +64,25 @@ package_revision=2.4.6 # libraries, which are installed to $pkgauxdir. # Set a version string for this script. -scriptversion=2015-01-20.17; # UTC +scriptversion=2019-02-19.15; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 -# Copyright (C) 2004-2015 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. - -# As a special exception to the GNU General Public License, if you distribute -# this file as part of a program or library that is built using GNU Libtool, -# you may include this file under the same distribution terms that you use -# for the rest of that program. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2004-2019, 2021, 2023-2024 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 2 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. -# Please report bugs or propose patches to gary@gnu.org. +# Please report bugs or propose patches to: +# ## ------ ## @@ -139,9 +130,12 @@ do _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" fi" done - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# These NLS vars are set unconditionally (bootstrap issue #24). Unset those +# in case the environment reset is needed later and the $save_* variant is not +# defined (see the code above). +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL # Make sure IFS has a sensible default sp=' ' @@ -149,7 +143,7 @@ nl=' ' IFS="$sp $nl" -# There are apparently some retarded systems that use ';' as a PATH separator! +# There are apparently some systems that use ';' as a PATH separator! if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { @@ -159,6 +153,26 @@ if test "${PATH_SEPARATOR+set}" != set; then fi +# func_unset VAR +# -------------- +# Portably unset VAR. +# In some shells, an 'unset VAR' statement leaves a non-zero return +# status if VAR is already unset, which might be problematic if the +# statement is used at the end of a function (thus poisoning its return +# value) or when 'set -e' is active (causing even a spurious abort of +# the script in this case). +func_unset () +{ + { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; } +} + + +# Make sure CDPATH doesn't cause `cd` commands to output the target dir. +func_unset CDPATH + +# Make sure ${,E,F}GREP behave sanely. +func_unset GREP_OPTIONS + ## ------------------------- ## ## Locate command utilities. ## @@ -259,7 +273,7 @@ test -z "$SED" && { rm -f conftest.in conftest.tmp conftest.nl conftest.out } - func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin" rm -f conftest.sed SED=$func_path_progs_result } @@ -295,7 +309,7 @@ test -z "$GREP" && { rm -f conftest.in conftest.tmp conftest.nl conftest.out } - func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin" GREP=$func_path_progs_result } @@ -360,6 +374,35 @@ sed_double_backslash="\ s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g s/\n//g" +# require_check_ifs_backslash +# --------------------------- +# Check if we can use backslash as IFS='\' separator, and set +# $check_ifs_backshlash_broken to ':' or 'false'. +require_check_ifs_backslash=func_require_check_ifs_backslash +func_require_check_ifs_backslash () +{ + _G_save_IFS=$IFS + IFS='\' + _G_check_ifs_backshlash='a\\b' + for _G_i in $_G_check_ifs_backshlash + do + case $_G_i in + a) + check_ifs_backshlash_broken=false + ;; + '') + break + ;; + *) + check_ifs_backshlash_broken=: + break + ;; + esac + done + IFS=$_G_save_IFS + require_check_ifs_backslash=: +} + ## ----------------- ## ## Global variables. ## @@ -546,7 +589,7 @@ func_require_term_colors () # _G_HAVE_PLUSEQ_OP # Can be empty, in which case the shell is probed, "yes" if += is - # useable or anything else if it does not work. + # usable or anything else if it does not work. test -z "$_G_HAVE_PLUSEQ_OP" \ && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ && _G_HAVE_PLUSEQ_OP=yes @@ -580,16 +623,16 @@ if test yes = "$_G_HAVE_PLUSEQ_OP"; then { $debug_cmd - func_quote_for_eval "$2" - eval "$1+=\\ \$func_quote_for_eval_result" + func_quote_arg pretty "$2" + eval "$1+=\\ \$func_quote_arg_result" }' else func_append_quoted () { $debug_cmd - func_quote_for_eval "$2" - eval "$1=\$$1\\ \$func_quote_for_eval_result" + func_quote_arg pretty "$2" + eval "$1=\$$1\\ \$func_quote_arg_result" } fi @@ -696,7 +739,7 @@ eval 'func_dirname () # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. -# value retuned in "$func_basename_result" +# value returned in "$func_basename_result" # For efficiency, we do not delegate to the functions above but instead # duplicate the functionality here. eval 'func_dirname_and_basename () @@ -854,7 +897,7 @@ func_mkdir_p () # While some portion of DIR does not yet exist... while test ! -d "$_G_directory_path"; do # ...make a list in topmost first order. Use a colon delimited - # list incase some portion of path contains whitespace. + # list in case some portion of path contains whitespace. _G_dir_list=$_G_directory_path:$_G_dir_list # If the last portion added has no slash in it, the list is done @@ -1091,85 +1134,203 @@ func_relative_path () } -# func_quote_for_eval ARG... -# -------------------------- -# Aesthetically quote ARGs to be evaled later. -# This function returns two values: -# i) func_quote_for_eval_result -# double-quoted, suitable for a subsequent eval -# ii) func_quote_for_eval_unquoted_result -# has all characters that are still active within double -# quotes backslashified. -func_quote_for_eval () +# func_quote_portable EVAL ARG +# ---------------------------- +# Internal function to portably implement func_quote_arg. Note that we still +# keep attention to performance here so we as much as possible try to avoid +# calling sed binary (so far O(N) complexity as long as func_append is O(1)). +func_quote_portable () { $debug_cmd - func_quote_for_eval_unquoted_result= - func_quote_for_eval_result= - while test 0 -lt $#; do - case $1 in - *[\\\`\"\$]*) - _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; - *) - _G_unquoted_arg=$1 ;; - esac - if test -n "$func_quote_for_eval_unquoted_result"; then - func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" - else - func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + $require_check_ifs_backslash + + func_quote_portable_result=$2 + + # one-time-loop (easy break) + while true + do + if $1; then + func_quote_portable_result=`$ECHO "$2" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` + break fi - case $_G_unquoted_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and variable expansion - # for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_quoted_arg=\"$_G_unquoted_arg\" + # Quote for eval. + case $func_quote_portable_result in + *[\\\`\"\$]*) + # Fallback to sed for $func_check_bs_ifs_broken=:, or when the string + # contains the shell wildcard characters. + case $check_ifs_backshlash_broken$func_quote_portable_result in + :*|*[\[\*\?]*) + func_quote_portable_result=`$ECHO "$func_quote_portable_result" \ + | $SED "$sed_quote_subst"` + break + ;; + esac + + func_quote_portable_old_IFS=$IFS + for _G_char in '\' '`' '"' '$' + do + # STATE($1) PREV($2) SEPARATOR($3) + set start "" "" + func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy + IFS=$_G_char + for _G_part in $func_quote_portable_result + do + case $1 in + quote) + func_append func_quote_portable_result "$3$2" + set quote "$_G_part" "\\$_G_char" + ;; + start) + set first "" "" + func_quote_portable_result= + ;; + first) + set quote "$_G_part" "" + ;; + esac + done + done + IFS=$func_quote_portable_old_IFS ;; - *) - _G_quoted_arg=$_G_unquoted_arg - ;; + *) ;; esac - - if test -n "$func_quote_for_eval_result"; then - func_append func_quote_for_eval_result " $_G_quoted_arg" - else - func_append func_quote_for_eval_result "$_G_quoted_arg" - fi - shift + break done + + func_quote_portable_unquoted_result=$func_quote_portable_result + case $func_quote_portable_result in + # double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # many bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_portable_result=\"$func_quote_portable_result\" + ;; + esac } -# func_quote_for_expand ARG -# ------------------------- -# Aesthetically quote ARG to be evaled later; same as above, -# but do not quote variable references. -func_quote_for_expand () -{ - $debug_cmd +# func_quotefast_eval ARG +# ----------------------- +# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG', +# but optimized for speed. Result is stored in $func_quotefast_eval. +if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then + printf -v _GL_test_printf_tilde %q '~' + if test '\~' = "$_GL_test_printf_tilde"; then + func_quotefast_eval () + { + printf -v func_quotefast_eval_result %q "$1" + } + else + # Broken older Bash implementations. Make those faster too if possible. + func_quotefast_eval () + { + case $1 in + '~'*) + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + ;; + *) + printf -v func_quotefast_eval_result %q "$1" + ;; + esac + } + fi +else + func_quotefast_eval () + { + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + } +fi - case $1 in - *[\\\`\"]*) - _G_arg=`$ECHO "$1" | $SED \ - -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; - *) - _G_arg=$1 ;; + +# func_quote_arg MODEs ARG +# ------------------------ +# Quote one ARG to be evaled later. MODEs argument may contain zero or more +# specifiers listed below separated by ',' character. This function returns two +# values: +# i) func_quote_arg_result +# double-quoted (when needed), suitable for a subsequent eval +# ii) func_quote_arg_unquoted_result +# has all characters that are still active within double +# quotes backslashified. Available only if 'unquoted' is specified. +# +# Available modes: +# ---------------- +# 'eval' (default) +# - escape shell special characters +# 'expand' +# - the same as 'eval'; but do not quote variable references +# 'pretty' +# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might +# be used later in func_quote to get output like: 'echo "a b"' instead +# of 'echo a\ b'. This is slower than default on some shells. +# 'unquoted' +# - produce also $func_quote_arg_unquoted_result which does not contain +# wrapping double-quotes. +# +# Examples for 'func_quote_arg pretty,unquoted string': +# +# string | *_result | *_unquoted_result +# ------------+-----------------------+------------------- +# " | \" | \" +# a b | "a b" | a b +# "a b" | "\"a b\"" | \"a b\" +# * | "*" | * +# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\" +# +# Examples for 'func_quote_arg pretty,unquoted,expand string': +# +# string | *_result | *_unquoted_result +# --------------+---------------------+-------------------- +# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\" +func_quote_arg () +{ + _G_quote_expand=false + case ,$1, in + *,expand,*) + _G_quote_expand=: + ;; esac - case $_G_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting and command substitution for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_arg=\"$_G_arg\" + case ,$1, in + *,pretty,*|*,expand,*|*,unquoted,*) + func_quote_portable $_G_quote_expand "$2" + func_quote_arg_result=$func_quote_portable_result + func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result + ;; + *) + # Faster quote-for-eval for some shells. + func_quotefast_eval "$2" + func_quote_arg_result=$func_quotefast_eval_result ;; esac +} - func_quote_for_expand_result=$_G_arg + +# func_quote MODEs ARGs... +# ------------------------ +# Quote all ARGs to be evaled later and join them into single command. See +# func_quote_arg's description for more info. +func_quote () +{ + $debug_cmd + _G_func_quote_mode=$1 ; shift + func_quote_result= + while test 0 -lt $#; do + func_quote_arg "$_G_func_quote_mode" "$1" + if test -n "$func_quote_result"; then + func_append func_quote_result " $func_quote_arg_result" + else + func_append func_quote_result "$func_quote_arg_result" + fi + shift + done } @@ -1215,8 +1376,8 @@ func_show_eval () _G_cmd=$1 _G_fail_exp=${2-':'} - func_quote_for_expand "$_G_cmd" - eval "func_notquiet $func_quote_for_expand_result" + func_quote_arg pretty,expand "$_G_cmd" + eval "func_notquiet $func_quote_arg_result" $opt_dry_run || { eval "$_G_cmd" @@ -1241,8 +1402,8 @@ func_show_eval_locale () _G_fail_exp=${2-':'} $opt_quiet || { - func_quote_for_expand "$_G_cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$_G_cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || { @@ -1369,30 +1530,26 @@ func_lt_ver () # End: #! /bin/sh -# Set a version string for this script. -scriptversion=2014-01-07.03; # UTC - # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 -# Copyright (C) 2010-2015 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2010-2019, 2021, 2023-2024 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 2 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# Please report bugs or propose patches to: +# -# Please report bugs or propose patches to gary@gnu.org. +# Set a version string for this script. +scriptversion=2019-02-19.15; # UTC ## ------ ## @@ -1415,7 +1572,7 @@ scriptversion=2014-01-07.03; # UTC # # In order for the '--version' option to work, you will need to have a # suitably formatted comment like the one at the top of this file -# starting with '# Written by ' and ending with '# warranty; '. +# starting with '# Written by ' and ending with '# Copyright'. # # For '-h' and '--help' to work, you will also need a one line # description of your script's purpose in a comment directly above the @@ -1427,7 +1584,7 @@ scriptversion=2014-01-07.03; # UTC # to display verbose messages only when your user has specified # '--verbose'. # -# After sourcing this file, you can plug processing for additional +# After sourcing this file, you can plug in processing for additional # options by amending the variables from the 'Configuration' section # below, and following the instructions in the 'Option parsing' # section further down. @@ -1476,8 +1633,8 @@ fatal_help="Try '\$progname --help' for more information." ## ------------------------- ## # This section contains functions for adding, removing, and running hooks -# to the main code. A hook is just a named list of of function, that can -# be run in order later on. +# in the main code. A hook is just a list of function names that can be +# run in order later on. # func_hookable FUNC_NAME # ----------------------- @@ -1510,7 +1667,8 @@ func_add_hook () # func_remove_hook FUNC_NAME HOOK_FUNC # ------------------------------------ -# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +# Remove HOOK_FUNC from the list of hook functions to be called by +# FUNC_NAME. func_remove_hook () { $debug_cmd @@ -1519,10 +1677,28 @@ func_remove_hook () } +# func_propagate_result FUNC_NAME_A FUNC_NAME_B +# --------------------------------------------- +# If the *_result variable of FUNC_NAME_A _is set_, assign its value to +# *_result variable of FUNC_NAME_B. +func_propagate_result () +{ + $debug_cmd + + func_propagate_result_result=: + if eval "test \"\${${1}_result+set}\" = set" + then + eval "${2}_result=\$${1}_result" + else + func_propagate_result_result=false + fi +} + + # func_run_hooks FUNC_NAME [ARG]... # --------------------------------- # Run all hook functions registered to FUNC_NAME. -# It is assumed that the list of hook functions contains nothing more +# It's assumed that the list of hook functions contains nothing more # than a whitespace-delimited list of legal shell function names, and # no effort is wasted trying to catch shell meta-characters or preserve # whitespace. @@ -1532,22 +1708,19 @@ func_run_hooks () case " $hookable_fns " in *" $1 "*) ;; - *) func_fatal_error "'$1' does not support hook funcions.n" ;; + *) func_fatal_error "'$1' does not support hook functions." ;; esac eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do - eval $_G_hook '"$@"' - - # store returned options list back into positional - # parameters for next 'cmd' execution. - eval _G_hook_result=\$${_G_hook}_result - eval set dummy "$_G_hook_result"; shift + func_unset "${_G_hook}_result" + eval $_G_hook '${1+"$@"}' + func_propagate_result $_G_hook func_run_hooks + if $func_propagate_result_result; then + eval set dummy "$func_run_hooks_result"; shift + fi done - - func_quote_for_eval ${1+"$@"} - func_run_hooks_result=$func_quote_for_eval_result } @@ -1557,10 +1730,18 @@ func_run_hooks () ## --------------- ## # In order to add your own option parsing hooks, you must accept the -# full positional parameter list in your hook function, remove any -# options that you action, and then pass back the remaining unprocessed -# options in '_result', escaped suitably for -# 'eval'. Like this: +# full positional parameter list from your hook function. You may remove +# or edit any options that you action, and then pass back the remaining +# unprocessed options in '_result', escaped +# suitably for 'eval'. +# +# The '_result' variable is automatically unset +# before your hook gets called; for best performance, only set the +# *_result variable when necessary (i.e. don't call the 'func_quote' +# function unnecessarily because it can be an expensive operation on some +# machines). +# +# Like this: # # my_options_prep () # { @@ -1570,9 +1751,8 @@ func_run_hooks () # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' -# -# func_quote_for_eval ${1+"$@"} -# my_options_prep_result=$func_quote_for_eval_result +# # No change in '$@' (ignored completely by this hook). Leave +# # my_options_prep_result variable intact. # } # func_add_hook func_options_prep my_options_prep # @@ -1581,25 +1761,36 @@ func_run_hooks () # { # $debug_cmd # -# # Note that for efficiency, we parse as many options as we can +# args_changed=false +# +# # Note that, for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in -# --silent|-s) opt_silent=: ;; +# --silent|-s) opt_silent=: +# args_changed=: +# ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift +# args_changed=: # ;; -# *) set dummy "$_G_opt" "$*"; shift; break ;; +# *) # Make sure the first unrecognised option "$_G_opt" +# # is added back to "$@" in case we need it later, +# # if $args_changed was set to 'true'. +# set dummy "$_G_opt" ${1+"$@"}; shift; break ;; # esac # done # -# func_quote_for_eval ${1+"$@"} -# my_silent_option_result=$func_quote_for_eval_result +# # Only call 'func_quote' here if we processed at least one argument. +# if $args_changed; then +# func_quote eval ${1+"$@"} +# my_silent_option_result=$func_quote_result +# fi # } # func_add_hook func_parse_options my_silent_option # @@ -1610,17 +1801,26 @@ func_run_hooks () # # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." -# -# func_quote_for_eval ${1+"$@"} -# my_option_validation_result=$func_quote_for_eval_result # } # func_add_hook func_validate_options my_option_validation # -# You'll alse need to manually amend $usage_message to reflect the extra +# You'll also need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. +# func_options_finish [ARG]... +# ---------------------------- +# Finishing the option parse loop (call 'func_options' hooks ATM). +func_options_finish () +{ + $debug_cmd + + func_run_hooks func_options ${1+"$@"} + func_propagate_result func_run_hooks func_options_finish +} + + # func_options [ARG]... # --------------------- # All the functions called inside func_options are hookable. See the @@ -1630,17 +1830,27 @@ func_options () { $debug_cmd - func_options_prep ${1+"$@"} - eval func_parse_options \ - ${func_options_prep_result+"$func_options_prep_result"} - eval func_validate_options \ - ${func_parse_options_result+"$func_parse_options_result"} + _G_options_quoted=false - eval func_run_hooks func_options \ - ${func_validate_options_result+"$func_validate_options_result"} + for my_func in options_prep parse_options validate_options options_finish + do + func_unset func_${my_func}_result + func_unset func_run_hooks_result + eval func_$my_func '${1+"$@"}' + func_propagate_result func_$my_func func_options + if $func_propagate_result_result; then + eval set dummy "$func_options_result"; shift + _G_options_quoted=: + fi + done - # save modified positional parameters for caller - func_options_result=$func_run_hooks_result + $_G_options_quoted || { + # As we (func_options) are top-level options-parser function and + # nobody quoted "$@" for us yet, we need to do it explicitly for + # caller. + func_quote eval ${1+"$@"} + func_options_result=$func_quote_result + } } @@ -1649,9 +1859,8 @@ func_options () # All initialisations required before starting the option parse loop. # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and -# needs to propogate that back to rest of this script, then the complete -# modified list must be put in 'func_run_hooks_result' before -# returning. +# needs to propagate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before returning. func_hookable func_options_prep func_options_prep () { @@ -1662,9 +1871,7 @@ func_options_prep () opt_warning_types= func_run_hooks func_options_prep ${1+"$@"} - - # save modified positional parameters for caller - func_options_prep_result=$func_run_hooks_result + func_propagate_result func_run_hooks func_options_prep } @@ -1676,25 +1883,32 @@ func_parse_options () { $debug_cmd - func_parse_options_result= - + _G_parse_options_requote=false # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. func_run_hooks func_parse_options ${1+"$@"} - - # Adjust func_parse_options positional parameters to match - eval set dummy "$func_run_hooks_result"; shift + func_propagate_result func_run_hooks func_parse_options + if $func_propagate_result_result; then + eval set dummy "$func_parse_options_result"; shift + # Even though we may have changed "$@", we passed the "$@" array + # down into the hook and it quoted it for us (because we are in + # this if-branch). No need to quote it again. + _G_parse_options_requote=false + fi # Break out of the loop if we already parsed every option. test $# -gt 0 || break + # We expect that one of the options parsed in this function matches + # and thus we remove _G_opt from "$@" and need to re-quote. + _G_match_parse_options=: _G_opt=$1 shift case $_G_opt in --debug|-x) debug_cmd='set -x' - func_echo "enabling shell trace mode" + func_echo "enabling shell trace mode" >&2 $debug_cmd ;; @@ -1704,7 +1918,10 @@ func_parse_options () ;; --warnings|--warning|-W) - test $# = 0 && func_missing_arg $_G_opt && break + if test $# = 0 && func_missing_arg $_G_opt; then + _G_parse_options_requote=: + break + fi case " $warning_categories $1" in *" $1 "*) # trailing space prevents matching last $1 above @@ -1757,15 +1974,24 @@ func_parse_options () shift ;; - --) break ;; + --) _G_parse_options_requote=: ; break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; - *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift + _G_match_parse_options=false + break + ;; esac + + if $_G_match_parse_options; then + _G_parse_options_requote=: + fi done - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - func_parse_options_result=$func_quote_for_eval_result + if $_G_parse_options_requote; then + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + func_parse_options_result=$func_quote_result + fi } @@ -1782,12 +2008,10 @@ func_validate_options () test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" func_run_hooks func_validate_options ${1+"$@"} + func_propagate_result func_run_hooks func_validate_options # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE - - # save modified positional parameters for caller - func_validate_options_result=$func_run_hooks_result } @@ -1843,8 +2067,8 @@ func_missing_arg () # func_split_equals STRING # ------------------------ -# Set func_split_equals_lhs and func_split_equals_rhs shell variables after -# splitting STRING at the '=' sign. +# Set func_split_equals_lhs and func_split_equals_rhs shell variables +# after splitting STRING at the '=' sign. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ @@ -1859,8 +2083,9 @@ then func_split_equals_lhs=${1%%=*} func_split_equals_rhs=${1#*=} - test "x$func_split_equals_lhs" = "x$1" \ - && func_split_equals_rhs= + if test "x$func_split_equals_lhs" = "x$1"; then + func_split_equals_rhs= + fi }' else # ...otherwise fall back to using expr, which is often a shell builtin. @@ -1870,7 +2095,7 @@ else func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` func_split_equals_rhs= - test "x$func_split_equals_lhs" = "x$1" \ + test "x$func_split_equals_lhs=" = "x$1" \ || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` } fi #func_split_equals @@ -1896,7 +2121,7 @@ else { $debug_cmd - func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_name=`expr "x$1" : 'x\(-.\)'` func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` } fi #func_split_short_opt @@ -1938,31 +2163,44 @@ func_usage_message () # func_version # ------------ # Echo version message to standard output and exit. +# The version message is extracted from the calling file's header +# comments, with leading '# ' stripped: +# 1. First display the progname and version +# 2. Followed by the header comment line matching /^# Written by / +# 3. Then a blank line followed by the first following line matching +# /^# Copyright / +# 4. Immediately followed by any lines between the previous matches, +# except lines preceding the intervening completely blank line. +# For example, see the header comments of this file. func_version () { $debug_cmd printf '%s\n' "$progname $scriptversion" $SED -n ' - /(C)/!b go - :more - /\./!{ - N - s|\n# | | - b more - } - :go - /^# Written by /,/# warranty; / { - s|^# || - s|^# *$|| - s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| - p + /^# Written by /!b + s|^# ||; p; n + + :fwd2blnk + /./ { + n + b fwd2blnk } - /^# Written by / { - s|^# || - p + p; n + + :holdwrnt + s|^# || + s|^# *$|| + /^Copyright /!{ + /./H + n + b holdwrnt } - /^warranty; /q' < "$progpath" + + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + G + s|\(\n\)\n*|\1|g + p; q' < "$progpath" exit $? } @@ -1972,12 +2210,35 @@ func_version () # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: # Set a version string. -scriptversion='(GNU libtool) 2.4.6' +scriptversion='(GNU libtool) 2.6.0.23-b08cb' + +# func_version +# ------------ +# Echo version message to standard output and exit. +func_version () +{ + $debug_cmd + + year=`date +%Y` + + cat < +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. + +Originally written by Gordon Matzigkeit, 1996 +(See AUTHORS for complete contributor listing) +EOF + + exit $? +} # func_echo ARG... @@ -2000,18 +2261,6 @@ func_echo () } -# func_warning ARG... -# ------------------- -# Libtool warnings are not categorized, so override funclib.sh -# func_warning with this simpler definition. -func_warning () -{ - $debug_cmd - - $warning_func ${1+"$@"} -} - - ## ---------------- ## ## Options parsing. ## ## ---------------- ## @@ -2023,19 +2272,23 @@ usage='$progpath [OPTION]... [MODE-ARG]...' # Short help message in response to '-h'. usage_message="Options: - --config show all configuration variables - --debug enable verbose shell tracing - -n, --dry-run display commands without modifying any files - --features display basic configuration information and exit - --mode=MODE use operation mode MODE - --no-warnings equivalent to '-Wnone' - --preserve-dup-deps don't remove duplicate dependency libraries - --quiet, --silent don't print informational messages - --tag=TAG use configuration variables from tag TAG - -v, --verbose print more informational messages than default - --version print version information - -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] - -h, --help, --help-all print short, long, or detailed help message + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information + --finish use operation '--mode=finish' + --mode=MODE use operation mode MODE + --no-finish don't update shared library cache + --no-quiet, --no-silent print default informational messages + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --reorder-cache=DIRS reorder shared library cache for preferred DIRS + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message " # Additional text appended to 'usage_message' in response to '--help'. @@ -2046,6 +2299,22 @@ func_help () func_usage_message $ECHO "$long_help_message +If a TAG is supplied, it must use one of the tag names below: + + Tag Name Language Name + CC C + CXX C++ + OBJC Objective-C + OBJCXX Objective-C++ + GCJ Java + F77 Fortran 77 + FC Fortran + GO Go + RC Windows Resource + +If you do not see a tag name associated with your programming language, then +you are using a compiler that $progname does not support. + MODE must be one of the following: clean remove files from the build directory @@ -2068,13 +2337,13 @@ include the following information: compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) - version: $progname (GNU libtool) 2.4.6 + version: $progname $scriptversion automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` Report bugs to . -GNU libtool home page: . -General help using GNU software: ." +GNU libtool home page: . +General help using GNU software: ." exit 0 } @@ -2124,7 +2393,7 @@ fi # a configuration failure hint, and exit. func_fatal_configuration () { - func__fatal_error ${1+"$@"} \ + func_fatal_error ${1+"$@"} \ "See the $PACKAGE documentation for more information." \ "Fatal configuration error." } @@ -2264,12 +2533,17 @@ libtool_options_prep () opt_dry_run=false opt_help=false opt_mode= + opt_reorder_cache=false opt_preserve_dup_deps=false opt_quiet=false + opt_finishing=true + opt_warning= nonopt= preserve_args= + _G_rc_lt_options_prep=: + # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) @@ -2293,11 +2567,16 @@ libtool_options_prep () uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; + *) + _G_rc_lt_options_prep=false + ;; esac - # Pass back the list of options. - func_quote_for_eval ${1+"$@"} - libtool_options_prep_result=$func_quote_for_eval_result + if $_G_rc_lt_options_prep; then + # Pass back the list of options. + func_quote eval ${1+"$@"} + libtool_options_prep_result=$func_quote_result + fi } func_add_hook func_options_prep libtool_options_prep @@ -2309,9 +2588,12 @@ libtool_parse_options () { $debug_cmd + _G_rc_lt_parse_options=false + # Perform our own loop to consume as many options as possible in # each iteration. while test $# -gt 0; do + _G_match_lt_parse_options=: _G_opt=$1 shift case $_G_opt in @@ -2345,14 +2627,18 @@ libtool_parse_options () clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error - *) func_error "invalid argument for $_G_opt" + *) func_error "invalid argument '$1' for $_G_opt" exit_cmd=exit - break ;; esac shift ;; + --no-finish) + opt_finishing=false + func_append preserve_args " $_G_opt" + ;; + --no-silent|--no-quiet) opt_quiet=false func_append preserve_args " $_G_opt" @@ -2368,6 +2654,24 @@ libtool_parse_options () func_append preserve_args " $_G_opt" ;; + --reorder-cache) + opt_reorder_cache=true + shared_lib_dirs=$1 + if test -n "$shared_lib_dirs"; then + case $1 in + # Must begin with /: + /*) ;; + + # Catch anything else as an error (relative paths) + *) func_error "invalid argument '$1' for $_G_opt" + func_error "absolute paths are required for $_G_opt" + exit_cmd=exit + ;; + esac + fi + shift + ;; + --silent|--quiet) opt_quiet=: opt_verbose=false @@ -2386,19 +2690,36 @@ libtool_parse_options () func_append preserve_args " $_G_opt" ;; - # An option not handled by this hook function: - *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"} ; shift + _G_match_lt_parse_options=false + break + ;; esac + $_G_match_lt_parse_options && _G_rc_lt_parse_options=: done - - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - libtool_parse_options_result=$func_quote_for_eval_result + if $_G_rc_lt_parse_options; then + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + libtool_parse_options_result=$func_quote_result + fi } func_add_hook func_parse_options libtool_parse_options +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () +{ + if $opt_warning; then + $debug_cmd + $warning_func ${1+"$@"} + fi +} + # libtool_validate_options [ARG]... # --------------------------------- @@ -2415,10 +2736,10 @@ libtool_validate_options () # preserve --debug test : = "$debug_cmd" || func_append preserve_args " --debug" - case $host in + case $host_os in # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 - *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + cygwin* | mingw* | windows* | pw32* | cegcc* | solaris2* | os2* | *linux*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; @@ -2451,8 +2772,8 @@ libtool_validate_options () } # Pass back the unparsed argument list - func_quote_for_eval ${1+"$@"} - libtool_validate_options_result=$func_quote_for_eval_result + func_quote eval ${1+"$@"} + libtool_validate_options_result=$func_quote_result } func_add_hook func_validate_options libtool_validate_options @@ -2694,8 +3015,9 @@ func_infer_tag () # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then - func_echo "unable to infer tagged configuration" - func_fatal_error "specify a tag with '--tag'" + func_echo "unable to infer tagged configuration with compiler." + func_echo "Possible use of unsupported compiler." + func_fatal_error "specify a tag with '--tag'. For more information, try '$progname --help'." # else # func_verbose "using $tagname tagged configuration" fi @@ -2750,7 +3072,7 @@ EOF # func_convert_core_file_wine_to_w32 ARG # Helper function used by file name conversion functions when $build is *nix, -# and $host is mingw, cygwin, or some other w32 environment. Relies on a +# and $host is mingw, windows, cygwin, or some other w32 environment. Relies on a # correctly configured wine environment available, with the winepath program # in $build's $PATH. # @@ -2782,9 +3104,10 @@ func_convert_core_file_wine_to_w32 () # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and -# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly -# configured wine environment available, with the winepath program in $build's -# $PATH. Assumes ARG has no leading or trailing path separator characters. +# $host is mingw, windows, cygwin, or some other w32 environment. Relies on a +# correctly configured wine environment available, with the winepath program +# in $build's $PATH. Assumes ARG has no leading or trailing path separator +# characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. @@ -2856,13 +3179,41 @@ func_convert_core_msys_to_w32 () { $debug_cmd - # awkward: cmd appends spaces to result + # Compatibility for original MSYS + if test "Xone" = "X$lt_cv_cmd_slashes"; then + func_convert_core_msys_to_w32_result=`( cmd /c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` + else # Assume 'lt_cv_cmd_slashes = "two"' func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` + fi + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_convert_core_msys_to_w32_result= + fi } #end: func_convert_core_msys_to_w32 +# func_convert_core_msys_to_w32_with_cygpath ARG +# Convert file name or path ARG with cygpath from MSYS format to w32 +# format. Return result in func_convert_core_msys_to_w32_with_cygpath_result. +func_convert_core_msys_to_w32_with_cygpath () +{ + $debug_cmd + + # Since MSYS2 is packaged with cygpath, call cygpath in $PATH; no need + # to use LT_CYGPATH in this case. + func_convert_core_msys_to_w32_with_cygpath_result=`cygpath "$@" 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_convert_core_msys_to_w32_with_cygpath_result= + fi +} +#end: func_convert_core_msys_to_w32_with_cygpath + + # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting @@ -2927,6 +3278,15 @@ func_convert_path_front_back_pathsep () # end func_convert_path_front_back_pathsep +# func_convert_delimited_path PATH ORIG_DELIMITER NEW_DELIMITER +# Replaces a delimiter for a given path. +func_convert_delimited_path () +{ + converted_path=`$ECHO "$1" | $SED "s#$2#$3#g"` +} +# end func_convert_delimited_path + + ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## @@ -2988,8 +3348,13 @@ func_convert_file_msys_to_w32 () func_to_host_file_result=$1 if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_to_host_file_result=$func_convert_core_msys_to_w32_result + if test "Xyes" = "X$cygpath_installed"; then + func_convert_core_msys_to_w32_with_cygpath -w "$1" + func_to_host_file_result=$func_convert_core_msys_to_w32_with_cygpath_result + else + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result=$func_convert_core_msys_to_w32_result + fi fi func_convert_file_check "$1" "$func_to_host_file_result" } @@ -3040,8 +3405,13 @@ func_convert_file_msys_to_cygwin () func_to_host_file_result=$1 if test -n "$1"; then - func_convert_core_msys_to_w32 "$1" - func_cygpath -u "$func_convert_core_msys_to_w32_result" + if test "Xyes" = "X$cygpath_installed"; then + func_convert_core_msys_to_w32_with_cygpath -w "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_with_cygpath_result" + else + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + fi func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" @@ -3142,8 +3512,13 @@ func_convert_path_msys_to_w32 () # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result=$func_convert_core_msys_to_w32_result + if test "Xyes" = "X$cygpath_installed"; then + func_convert_core_msys_to_w32_with_cygpath -w -p "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_msys_to_w32_with_cygpath_result + else + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_msys_to_w32_result + fi func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" @@ -3207,8 +3582,13 @@ func_convert_path_msys_to_cygwin () # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result - func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + if test "Xyes" = "X$cygpath_installed"; then + func_convert_core_msys_to_w32_with_cygpath -w -p "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_with_cygpath_result" + else + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + fi func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" @@ -3261,6 +3641,65 @@ func_dll_def_p () } +# func_reorder_shared_lib_cache DIRS +# Reorder the shared library cache by unconfiguring previous shared library cache +# and configuring preferred search directories before previous search directories. +# Previous shared library cache: /usr/lib /usr/local/lib +# Preferred search directories: /tmp/testing +# Reordered shared library cache: /tmp/testing /usr/lib /usr/local/lib +func_reorder_shared_lib_cache () +{ + $debug_cmd + + case $host_os in + openbsd*) + get_search_directories=`PATH="$PATH:/sbin" ldconfig -r | $GREP "search directories" | $SED "s#.*search directories:\ ##g"` + func_convert_delimited_path "$get_search_directories" ':' '\ ' + save_search_directories=$converted_path + func_convert_delimited_path "$1" ':' '\ ' + + # Ensure directories exist + for dir in $converted_path; do + # Ensure each directory is an absolute path + case $dir in + /*) ;; + *) func_error "Directory '$dir' is not an absolute path" + exit $EXIT_FAILURE ;; + esac + # Ensure no trailing slashes + func_stripname '' '/' "$dir" + dir=$func_stripname_result + if test -d "$dir"; then + if test -n "$preferred_search_directories"; then + preferred_search_directories="$preferred_search_directories $dir" + else + preferred_search_directories=$dir + fi + else + func_error "Directory '$dir' does not exist" + exit $EXIT_FAILURE + fi + done + + PATH="$PATH:/sbin" ldconfig -U $save_search_directories + PATH="$PATH:/sbin" ldconfig -m $preferred_search_directories $save_search_directories + get_search_directories=`PATH="$PATH:/sbin" ldconfig -r | $GREP "search directories" | $SED "s#.*search directories:\ ##g"` + func_convert_delimited_path "$get_search_directories" ':' '\ ' + reordered_search_directories=$converted_path + + $ECHO "Original: $save_search_directories" + $ECHO "Reordered: $reordered_search_directories" + exit $EXIT_SUCCESS + ;; + *) + func_error "--reorder-cache is not supported for host_os=$host_os." + exit $EXIT_FAILURE + ;; + esac +} +# end func_reorder_shared_lib_cache + + # func_mode_compile arg... func_mode_compile () { @@ -3418,8 +3857,8 @@ func_mode_compile () esac done - func_quote_for_eval "$libobj" - test "X$libobj" != "X$func_quote_for_eval_result" \ + func_quote_arg pretty "$libobj" + test "X$libobj" != "X$func_quote_arg_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" @@ -3439,7 +3878,7 @@ func_mode_compile () # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in - cygwin* | mingw* | pw32* | os2* | cegcc*) + cygwin* | mingw* | windows* | pw32* | os2* | cegcc*) pic_mode=default ;; esac @@ -3492,8 +3931,8 @@ compiler." func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result + func_quote_arg pretty "$srcfile" + qsrcfile=$func_quote_arg_result # Only build a PIC object if we are building libtool libraries. if test yes = "$build_libtool_libs"; then @@ -3648,7 +4087,8 @@ This mode accepts the following additional options: -prefer-non-pic try to build non-PIC objects only -shared do not build a '.o' file suitable for static linking -static only build a '.o' file suitable for static linking - -Wc,FLAG pass FLAG directly to the compiler + -Wc,FLAG + -Xcompiler FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a 'standard' object file from the given SOURCEFILE. @@ -3754,6 +4194,8 @@ The following components of LINK-COMMAND are treated specially: -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wa,FLAG + -Xassembler FLAG pass linker-specific FLAG directly to the assembler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) @@ -3830,6 +4272,12 @@ if $opt_help; then fi +# If option '--reorder-cache', reorder the shared library cache and exit. +if $opt_reorder_cache; then + func_reorder_shared_lib_cache $shared_lib_dirs +fi + + # func_mode_execute arg... func_mode_execute () { @@ -4014,7 +4462,7 @@ func_mode_finish () fi fi - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs" && $opt_finishing; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. @@ -4039,6 +4487,12 @@ func_mode_finish () for libdir in $libdirs; do $ECHO " $libdir" done + if test "false" = "$opt_finishing"; then + echo + echo "NOTE: finish_cmds were not executed during testing, so you must" + echo "manually run ldconfig to add a given test directory, LIBDIR, to" + echo "the search path for generated executables." + fi echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" @@ -4066,6 +4520,14 @@ func_mode_finish () fi echo + echo "After a 'make install' for many GNU/Linux systems, 'ldconfig LIBDIR'" + echo "may need to be executed to help locate newly installed libraries," + echo "but you should consult with a system administrator before updating" + echo "the shared library cache as this should be done with great care" + echo "and consideration. (See the 'Platform-specific configuration notes'" + echo "section of the documentation for more information.)" + echo + echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) @@ -4096,8 +4558,8 @@ func_mode_install () case $nonopt in *shtool*) :;; *) false;; esac then # Aesthetically quote it. - func_quote_for_eval "$nonopt" - install_prog="$func_quote_for_eval_result " + func_quote_arg pretty "$nonopt" + install_prog="$func_quote_arg_result " arg=$1 shift else @@ -4107,8 +4569,8 @@ func_mode_install () # The real first argument should be the name of the installation program. # Aesthetically quote it. - func_quote_for_eval "$arg" - func_append install_prog "$func_quote_for_eval_result" + func_quote_arg pretty "$arg" + func_append install_prog "$func_quote_arg_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; @@ -4140,7 +4602,7 @@ func_mode_install () prev=$arg fi ;; - -g | -m | -o) + -g | -m | -o | -S | -t) prev=$arg ;; -s) @@ -4165,12 +4627,12 @@ func_mode_install () esac # Aesthetically quote the argument. - func_quote_for_eval "$arg" - func_append install_prog " $func_quote_for_eval_result" + func_quote_arg pretty "$arg" + func_append install_prog " $func_quote_arg_result" if test -n "$arg2"; then - func_quote_for_eval "$arg2" + func_quote_arg pretty "$arg2" fi - func_append install_shared_prog " $func_quote_for_eval_result" + func_append install_shared_prog " $func_quote_arg_result" done test -z "$install_prog" && \ @@ -4181,8 +4643,8 @@ func_mode_install () if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else - func_quote_for_eval "$install_override_mode" - func_append install_shared_prog " -m $func_quote_for_eval_result" + func_quote_arg pretty "$install_override_mode" + func_append install_shared_prog " -m $func_quote_arg_result" fi fi @@ -4275,8 +4737,15 @@ func_mode_install () func_append dir "$objdir" if test -n "$relink_command"; then + # Strip any trailing slash from the destination. + func_stripname '' '/' "$libdir" + destlibdir=$func_stripname_result + + func_stripname '' '/' "$destdir" + s_destdir=$func_stripname_result + # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that @@ -4313,7 +4782,7 @@ func_mode_install () 'exit $?' tstripme=$stripme case $host_os in - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | mingw* | windows* | pw32* | cegcc*) case $realname in *.dll.a) tstripme= @@ -4426,7 +4895,7 @@ func_mode_install () # Do a test to see if this is really a libtool program. case $host in - *cygwin* | *mingw*) + *cygwin* | *mingw* | *windows*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result @@ -4478,8 +4947,8 @@ func_mode_install () relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_quiet || { - func_quote_for_expand "$relink_command" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$relink_command" + eval "func_echo $func_quote_arg_result" } if eval "$relink_command"; then : else @@ -4649,12 +5118,12 @@ extern \"C\" { # Prepare the list of exported symbols if test -z "$export_symbols"; then - export_symbols=$output_objdir/$outputname.exp + export_symbols=$output_objdir/$outputname.expsym $opt_dry_run || { $RM $export_symbols eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in - *cygwin* | *mingw* | *cegcc* ) + *cygwin* | *mingw* | *windows* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; @@ -4662,11 +5131,11 @@ extern \"C\" { } else $opt_dry_run || { - eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' - eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.expsym"' + eval '$GREP -f "$output_objdir/$outputname.expsym" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in - *cygwin* | *mingw* | *cegcc* ) + *cygwin* | *mingw* | *windows* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; @@ -4680,7 +5149,7 @@ extern \"C\" { func_basename "$dlprefile" name=$func_basename_result case $host in - *cygwin* | *mingw* | *cegcc* ) + *cygwin* | *mingw* | *windows* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" @@ -4706,8 +5175,16 @@ extern \"C\" { eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 - eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | - $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + case $host in + i[3456]86-*-mingw32*) + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + ;; + *) + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/__nm_//' >> '$nlist'" + ;; + esac } else # not an import lib $opt_dry_run || { @@ -4855,7 +5332,7 @@ static const void *lt_preloaded_setup() { # Transform the symbol file into the correct name. symfileobj=$output_objdir/${my_outputname}S.$objext case $host in - *cygwin* | *mingw* | *cegcc* ) + *cygwin* | *mingw* | *windows* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` @@ -4931,7 +5408,7 @@ func_win32_libid () *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | - $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|pe-aarch64)' >/dev/null; then case $nm_interface in "MS dumpbin") if func_cygming_ms_implib_p "$1" || @@ -5178,7 +5655,7 @@ func_extract_archives () $RM -rf unfat-$$ cd "$darwin_orig_dir" else - cd $darwin_orig_dir + cd "$darwin_orig_dir" func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run @@ -5198,7 +5675,7 @@ func_extract_archives () # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to -# incorporate the script contents within a cygwin/mingw +# incorporate the script contents within a cygwin/mingw/windows # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. @@ -5206,7 +5683,7 @@ func_extract_archives () # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory where it is stored is -# the $objdir directory. This is a cygwin/mingw-specific +# the $objdir directory. This is a cygwin/mingw/windows-specific # behavior. func_emit_wrapper () { @@ -5258,7 +5735,8 @@ else if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" - qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + func_quote_arg pretty "$ECHO" + qECHO=$func_quote_arg_result $ECHO "\ # A function that is used when there is no print builtin or printf. @@ -5268,7 +5746,7 @@ func_fallback_echo () \$1 _LTECHO_EOF' } - ECHO=\"$qECHO\" + ECHO=$qECHO fi # Very basic option parsing. These options are (a) specific to @@ -5330,7 +5808,7 @@ func_exec_program_core () " case $host in # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2* | *-cegcc*) + *-*-mingw* | *-*-windows* | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 @@ -5398,7 +5876,7 @@ func_exec_program () file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done - # Usually 'no', except on cygwin/mingw when embedded into + # Usually 'no', except on cygwin/mingw/windows when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then @@ -5530,7 +6008,7 @@ EOF #endif #include #include -#ifdef _MSC_VER +#if defined _WIN32 && !defined __GNUC__ # include # include # include @@ -5555,7 +6033,7 @@ EOF /* declarations of non-ANSI functions */ #if defined __MINGW32__ # ifdef __STRICT_ANSI__ -int _putenv (const char *); +_CRTIMP int __cdecl _putenv (const char *); # endif #elif defined __CYGWIN__ # ifdef __STRICT_ANSI__ @@ -5574,6 +6052,7 @@ int setenv (const char *, const char *, int); # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC +# define MSVC_ISDIR(m)(((m) & S_IFMT) == S_IFDIR) #elif defined __MINGW32__ # define setmode _setmode # define stat _stat @@ -5753,7 +6232,7 @@ main (int argc, char *argv[]) { EOF case $host in - *mingw* | *cygwin* ) + *mingw* | *windows* | *cygwin* ) # make stdout use "unix" line endings echo " setmode(1,_O_BINARY);" ;; @@ -5772,7 +6251,7 @@ EOF { /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX namespace, but it is not one of the ones we know about and - have already dealt with, above (inluding dump-script), then + have already dealt with, above (including dump-script), then report an error. Otherwise, targets might begin to believe they are allowed to use options in the LTWRAPPER_OPTION_PREFIX namespace. The first time any user complains about this, we'll @@ -5856,7 +6335,7 @@ EOF EOF case $host_os in - mingw*) + mingw* | windows*) cat <<"EOF" { char* p; @@ -5898,7 +6377,7 @@ EOF EOF case $host_os in - mingw*) + mingw* | windows*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ newargz = prepare_spawn (newargz); @@ -5969,8 +6448,13 @@ check_executable (const char *path) if ((!path) || (!*path)) return 0; - if ((stat (path, &st) >= 0) +#ifdef _MSC_VER + if ((stat (path, &st) >= 0) && !MSVC_ISDIR (st.st_mode) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) +#else + if ((stat (path, &st) >= 0) && !S_ISDIR (st.st_mode) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) +#endif return 1; else return 0; @@ -6317,7 +6801,7 @@ lt_update_lib_path (const char *name, const char *value) EOF case $host_os in - mingw*) + mingw* | windows*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). @@ -6492,7 +6976,7 @@ func_mode_link () $debug_cmd case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # what system we are compiling for in order to pass an extra @@ -6504,7 +6988,15 @@ func_mode_link () # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. - allow_undefined=yes + case $host in + *-*-os2*) + # OS/2 does not allow undefined symbols at all when linking a dll. + allow_undefined=no + ;; + *) + allow_undefined=yes + ;; + esac ;; *) allow_undefined=yes @@ -6516,6 +7008,7 @@ func_mode_link () finalize_command=$nonopt compile_rpath= + compile_rpath_tail= finalize_rpath= compile_shlibpath= finalize_shlibpath= @@ -6556,10 +7049,12 @@ func_mode_link () xrpath= perm_rpath= temp_rpath= + temp_rpath_tail= thread_safe=no vinfo= vinfo_number=no weak_libs= + rpath_arg= single_module=$wl-single_module func_infer_tag $base_compile @@ -6573,7 +7068,7 @@ func_mode_link () build_old_libs=no break ;; - -all-static | -static | -static-libtool-libs) + -all-static | -static | -static-libtool-libs | --static | -Bstatic) case $arg in -all-static) if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then @@ -6590,7 +7085,7 @@ func_mode_link () fi prefer_static_libs=built ;; - -static-libtool-libs) + -static-libtool-libs | --static | -Bstatic) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi @@ -6607,13 +7102,23 @@ func_mode_link () # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes + # make sure "-Xpreprocessor -fopenmp" is processed as one token + case $@ in + *-Xpreprocessor\ -fopenmp*) + fopenmp_match="-Xpreprocessor -fopenmp" + ;; + *) + fopenmp_match=-fopenmp + ;; + esac + # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg=$1 shift - func_quote_for_eval "$arg" - qarg=$func_quote_for_eval_unquoted_result - func_append libtool_args " $func_quote_for_eval_result" + func_quote_arg pretty,unquoted "$arg" + qarg=$func_quote_arg_unquoted_result + func_append libtool_args " $func_quote_arg_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then @@ -6822,7 +7327,7 @@ func_mode_link () case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) - func_fatal_error "only absolute run-paths are allowed" + func_fatal_error "argument to -rpath is not absolute: $arg" ;; esac if test rpath = "$prev"; then @@ -6849,6 +7354,13 @@ func_mode_link () prev= continue ;; + xassembler) + func_append compiler_flags " -Xassembler $qarg" + prev= + func_append compile_command " -Xassembler $qarg" + func_append finalize_command " -Xassembler $qarg" + continue + ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" @@ -6865,8 +7377,13 @@ func_mode_link () continue ;; xlinker) - func_append linker_flags " $qarg" - func_append compiler_flags " $wl$qarg" + func_append linker_flags "$qarg," + # Args in the var 'compiler_flags' causes warnings in MSVC + func_cc_basename "$CC" + case $func_cc_basename_result in + cl|cl.exe) ;; + *) func_append compiler_flags " $wl$qarg" ;; + esac prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" @@ -6991,7 +7508,7 @@ func_mode_link () ;; esac case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; @@ -7011,7 +7528,7 @@ func_mode_link () -l*) if test X-lc = "X$arg" || test X-lm = "X$arg"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; @@ -7019,7 +7536,7 @@ func_mode_link () # These systems don't actually have a C library (as such) test X-lc = "X$arg" && continue ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*) # Do not include libc due to us having libc/libc_r. test X-lc = "X$arg" && continue ;; @@ -7039,7 +7556,7 @@ func_mode_link () esac elif test X-lc_r = "X$arg"; then case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*) # Do not include libc_r directly, use -pthread flag. continue ;; @@ -7062,16 +7579,29 @@ func_mode_link () # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. - -model|-arch|-isysroot|--sysroot) + # -q