From 35dd50d5b0e76487fda89174a32521aaa58877a3 Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Wed, 13 May 2026 16:34:01 +0100 Subject: [PATCH 01/20] remove Rcpp R-side code --- DESCRIPTION | 9 +- R/RcppExports.R | 147 ----------------------- src/RcppExports.cpp | 283 -------------------------------------------- 3 files changed, 5 insertions(+), 434 deletions(-) delete mode 100644 R/RcppExports.R delete mode 100644 src/RcppExports.cpp diff --git a/DESCRIPTION b/DESCRIPTION index d942436b..1766a644 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,7 +72,7 @@ Suggests: websocket LinkingTo: later, - Rcpp + cpp4r Config/Needs/website: tidyverse/tidytemplate Config/testthat/edition: 3 Config/usethis/last-upkeep: 2025-07-01 @@ -79,7 +81,6 @@ Roxygen: list(markdown = TRUE) RoxygenNote: 7.3.3 SystemRequirements: GNU make, zlib Collate: - 'RcppExports.R' 'httpuv-package.R' 'httpuv.R' 'random_port.R' diff --git a/R/RcppExports.R b/R/RcppExports.R deleted file mode 100644 index 406dedb7..00000000 --- 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/src/RcppExports.cpp b/src/RcppExports.cpp deleted file mode 100644 index 3e522207..00000000 --- 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); -} From 70648fc5f9370ba42fbf0e50efd1f4c54825de7b Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Wed, 13 May 2026 17:15:59 +0100 Subject: [PATCH 02/20] initial webapplication refactor --- src/webapplication.cpp | 127 +++++++++++++++++++---------------------- src/webapplication.h | 33 ++++++----- 2 files changed, 78 insertions(+), 82 deletions(-) diff --git a/src/webapplication.cpp b/src/webapplication.cpp index 77d41d63..5336bf12 100644 --- a/src/webapplication.cpp +++ b/src/webapplication.cpp @@ -83,20 +83,19 @@ const std::string& getStatusDescription(int code) { // A generic HTTP response to send when an error (uncaught in the R code) // happens during processing a request. -Rcpp::List errorResponse() { +list errorResponse() { ASSERT_MAIN_THREAD() - using namespace Rcpp; - return List::create( - _["status"] = 500L, - _["headers"] = List::create( - _["Content-Type"] = "text/plain; charset=UTF-8" - ), - _["body"] = "An exception occurred." - ); + return writable::list({ + "status"_nm = 500L, + "headers"_nm = writable::list({ + "Content-Type"_nm = "text/plain; charset=UTF-8" + }), + "body"_nm = "An exception occurred." + }); } // An analog to errorResponse, but this returns an shared_ptr -// instead of an Rcpp::List, doesn't involve any R objects, and can be run on +// instead of an list, doesn't involve any R objects, and can be run on // the background thread. std::shared_ptr error_response(std::shared_ptr pRequest, int code) { std::string description = getStatusDescription(code); @@ -128,49 +127,43 @@ std::pair splitQueryString(const std::string& url) { } -void requestToEnv(std::shared_ptr pRequest, Rcpp::Environment* pEnv) { +void requestToEnv(std::shared_ptr pRequest, environment* pEnv) { ASSERT_MAIN_THREAD() - using namespace Rcpp; - - Environment& env = *pEnv; + environment& env = *pEnv; std::pair url_query = splitQueryString(pRequest->url()); std::string& path = url_query.first; std::string& queryString = url_query.second; - // When making assignments into the Environment, the value must be wrapped - // in a Rcpp object -- letting Rcpp automatically do the wrapping can result - // in an object being GC'd too early. - // https://github.com/RcppCore/Rcpp/issues/780 - env["REQUEST_METHOD"] = CharacterVector(pRequest->method()); - env["SCRIPT_NAME"] = CharacterVector(std::string("")); - env["PATH_INFO"] = CharacterVector(path); - env["QUERY_STRING"] = CharacterVector(queryString); + env["REQUEST_METHOD"] = pRequest->method(); + env["SCRIPT_NAME"] = std::string(""); + env["PATH_INFO"] = path; + env["QUERY_STRING"] = queryString; - env["rook.version"] = CharacterVector("1.1-0"); - env["rook.url_scheme"] = CharacterVector("http"); + env["rook.version"] = std::string("1.1-0"); + env["rook.url_scheme"] = std::string("http"); Address addr = pRequest->serverAddress(); - env["SERVER_NAME"] = CharacterVector(addr.host); + env["SERVER_NAME"] = addr.host; std::ostringstream portstr; portstr << addr.port; - env["SERVER_PORT"] = CharacterVector(portstr.str()); + env["SERVER_PORT"] = portstr.str(); Address raddr = pRequest->clientAddress(); - env["REMOTE_ADDR"] = CharacterVector(raddr.host); + env["REMOTE_ADDR"] = raddr.host; std::ostringstream rportstr; rportstr << raddr.port; - env["REMOTE_PORT"] = CharacterVector(rportstr.str()); + env["REMOTE_PORT"] = rportstr.str(); const RequestHeaders& headers = pRequest->headers(); - Rcpp::CharacterVector raw_headers(headers.size()); - Rcpp::CharacterVector raw_header_names(headers.size()); + writable::strings raw_headers(headers.size()); + writable::strings raw_header_names(headers.size()); for (RequestHeaders::const_iterator it = headers.begin(); it != headers.end(); it++) { int idx = std::distance(headers.begin(), it); - env["HTTP_" + normalizeHeaderName(it->first)] = CharacterVector(it->second); + env["HTTP_" + normalizeHeaderName(it->first)] = it->second; raw_header_names[idx] = to_lower(it->first); raw_headers[idx] = it->second; } @@ -183,21 +176,20 @@ void requestToEnv(std::shared_ptr pRequest, Rcpp::Environment* pEnv std::shared_ptr listToResponse( std::shared_ptr pRequest, - const Rcpp::List& response) + const list& response) { ASSERT_MAIN_THREAD() - using namespace Rcpp; - if (response.isNULL() || response.size() == 0) { + if (Rf_isNull(response) || response.size() == 0) { return std::shared_ptr(); } - CharacterVector names = response.names(); + strings resp_names = response.names(); - int status = Rcpp::as(response["status"]); + int status = as_cpp(response["status"]); std::string statusDesc = getStatusDescription(status); - List responseHeaders = response["headers"]; + list responseHeaders(response["headers"]); // Self-frees when response is written std::shared_ptr pDataSource; @@ -208,16 +200,16 @@ std::shared_ptr listToResponse( // // See https://tools.ietf.org/html/rfc7231#section-6.3.5 and // https://tools.ietf.org/html/rfc7232#section-4.1 - bool hasBody = response.containsElementNamed("body") && !Rf_isNull(response["body"]); + bool hasBody = response.contains("body") && !Rf_isNull(response["body"]); // The response can either contain: // - bodyFile: String value that names the file that should be streamed // - body: Character vector (which is charToRaw-ed) or raw vector, or NULL - if (std::find(names.begin(), names.end(), "bodyFile") != names.end()) { + if (std::find(resp_names.begin(), resp_names.end(), "bodyFile") != resp_names.end()) { std::shared_ptr pFDS = std::make_shared(); FileDataSourceResult ret = pFDS->initialize( - Rcpp::as(response["bodyFile"]), - Rcpp::as(response["bodyFileOwned"]) + as_cpp(response["bodyFile"]), + as_cpp(response["bodyFileOwned"]) ); if (ret != FDS_OK) { REprintf("%s", pFDS->lastErrorMessage().c_str()); @@ -226,23 +218,25 @@ std::shared_ptr listToResponse( pDataSource = pFDS; } else if (hasBody && Rf_isString(response["body"])) { - RawVector responseBytes = Function("charToRaw")(response["body"]); - pDataSource = std::make_shared(responseBytes); + raws responseBytes = package("base")["charToRaw"](response["body"]); + pDataSource = std::make_shared( + std::vector(responseBytes.begin(), responseBytes.end())); } else if (hasBody) { - RawVector responseBytes = response["body"]; - pDataSource = std::make_shared(responseBytes); + raws responseBytes(response["body"]); + pDataSource = std::make_shared( + std::vector(responseBytes.begin(), responseBytes.end())); } std::shared_ptr pResp( new HttpResponse(pRequest, status, statusDesc, pDataSource), auto_deleter_background ); - CharacterVector headerNames = responseHeaders.names(); + strings headerNames = responseHeaders.names(); for (R_len_t i = 0; i < responseHeaders.size(); i++) { pResp->addHeader( - std::string((char*)headerNames[i], headerNames[i].size()), - Rcpp::as(responseHeaders[i])); + std::string(headerNames[i]), + as_cpp(responseHeaders[i])); } return pResp; @@ -250,7 +244,7 @@ std::shared_ptr listToResponse( void invokeResponseFun(std::function)> fun, std::shared_ptr pRequest, - Rcpp::List response) + list response) { ASSERT_MAIN_THREAD() // new HttpResponse object. The callback will invoke @@ -265,14 +259,14 @@ void invokeResponseFun(std::function)> fun, // ============================================================================ RWebApplication::RWebApplication( - Rcpp::Function onHeaders, - Rcpp::Function onBodyData, - Rcpp::Function onRequest, - Rcpp::Function onWSOpen, - Rcpp::Function onWSMessage, - Rcpp::Function onWSClose, - Rcpp::List staticPaths, - Rcpp::List staticPathOptions) : + function onHeaders, + function onBodyData, + function onRequest, + function onWSOpen, + function onWSMessage, + function onWSClose, + list staticPaths, + list staticPathOptions) : _onHeaders(onHeaders), _onBodyData(onBodyData), _onRequest(onRequest), _onWSOpen(onWSOpen), _onWSMessage(onWSMessage), _onWSClose(onWSClose) { @@ -286,7 +280,7 @@ void RWebApplication::onHeaders(std::shared_ptr pRequest, std::function)> callback) { ASSERT_MAIN_THREAD() - if (_onHeaders.isNULL()) { + if (Rf_isNull(_onHeaders)) { std::shared_ptr null_ptr; callback(null_ptr); } @@ -295,10 +289,10 @@ void RWebApplication::onHeaders(std::shared_ptr pRequest, // Call the R onHeaders function. If an exception occurs during processing, // catch it and then send a generic error response. - Rcpp::List response; + list response; try { response = _onHeaders(pRequest->env()); - } catch (Rcpp::internal::InterruptedException &e) { + } catch (unwind_exception& e) { debug_log("Interrupt occurred in _onHeaders", LOG_INFO); response = errorResponse(); } catch (...) { @@ -325,7 +319,7 @@ void RWebApplication::onBodyData(std::shared_ptr pRequest, if (pRequest->isResponseScheduled()) return; - Rcpp::RawVector rawVector(data->size()); + writable::raws rawVector(data->size()); std::copy(data->begin(), data->end(), rawVector.begin()); try { _onBodyData(pRequest->env(), rawVector); @@ -346,11 +340,10 @@ void RWebApplication::getResponse(std::shared_ptr pRequest, std::function)> callback) { ASSERT_MAIN_THREAD() debug_log("RWebApplication::getResponse", LOG_DEBUG); - using namespace Rcpp; // Pass callback to R: // invokeResponseFun(callback, pRequest, _1) - std::function* callback_wrapper = new std::function( + std::function* callback_wrapper = new std::function( std::bind(invokeResponseFun, callback, pRequest, std::placeholders::_1) ); @@ -360,7 +353,7 @@ void RWebApplication::getResponse(std::shared_ptr pRequest, // the R call/_onRequest() function. We need to signal the HttpRequest // object to let it know that we had an error. if (pRequest->isResponseScheduled()) { - invokeCppCallback(Rcpp::List(), callback_xptr); + invokeCppCallback(SEXP(list()), callback_xptr); } else { @@ -375,12 +368,12 @@ void RWebApplication::getResponse(std::shared_ptr pRequest, // if Ctrl-C is pressed), then it will bubble up to here, where we'll catch // it and deal with it. - } catch (Rcpp::internal::InterruptedException &e) { + } catch (unwind_exception& e) { debug_log("Interrupt occurred in _onRequest", LOG_INFO); - invokeCppCallback(errorResponse(), callback_xptr); + invokeCppCallback(SEXP(errorResponse()), callback_xptr); } catch (...) { debug_log("Exception occurred in _onRequest", LOG_INFO); - invokeCppCallback(errorResponse(), callback_xptr); + invokeCppCallback(SEXP(errorResponse()), callback_xptr); } } diff --git a/src/webapplication.h b/src/webapplication.h index 51e4f262..a3f5dc07 100644 --- a/src/webapplication.h +++ b/src/webapplication.h @@ -3,11 +3,14 @@ #include #include -#include #include "websockets.h" #include "thread.h" #include "staticpath.h" +#include "cpp4r.hpp" + +using namespace cpp4r; + class HttpRequest; class HttpResponse; @@ -37,24 +40,24 @@ class WebApplication { class RWebApplication : public WebApplication { private: - Rcpp::Function _onHeaders; - Rcpp::Function _onBodyData; - Rcpp::Function _onRequest; - Rcpp::Function _onWSOpen; - Rcpp::Function _onWSMessage; - Rcpp::Function _onWSClose; + function _onHeaders; + function _onBodyData; + function _onRequest; + function _onWSOpen; + function _onWSMessage; + function _onWSClose; StaticPathManager _staticPathManager; public: - RWebApplication(Rcpp::Function onHeaders, - Rcpp::Function onBodyData, - Rcpp::Function onRequest, - Rcpp::Function onWSOpen, - Rcpp::Function onWSMessage, - Rcpp::Function onWSClose, - Rcpp::List staticPaths, - Rcpp::List staticPathOptions); + RWebApplication(function onHeaders, + function onBodyData, + function onRequest, + function onWSOpen, + function onWSMessage, + function onWSClose, + list staticPaths, + list staticPathOptions); virtual ~RWebApplication() { ASSERT_MAIN_THREAD() From 4f8a41f6fc5883e1ce9b32bddf52316c5e12208e Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Wed, 13 May 2026 17:17:53 +0100 Subject: [PATCH 03/20] refator httpuv --- src/httpuv.cpp | 6 +++--- src/httpuv.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/httpuv.cpp b/src/httpuv.cpp index 25963b1d..2f5f82d8 100644 --- a/src/httpuv.cpp +++ b/src/httpuv.cpp @@ -699,14 +699,14 @@ int ipFamily(const std::string& ip) { // 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) { +void invokeCppCallback(SEXP data, SEXP callback_xptr) { ASSERT_MAIN_THREAD() if (TYPEOF(callback_xptr) != EXTPTRSXP) { throw Rcpp::exception("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); diff --git a/src/httpuv.h b/src/httpuv.h index 097fefb4..38cb551d 100644 --- a/src/httpuv.h +++ b/src/httpuv.h @@ -5,7 +5,7 @@ #include -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); From 47ddec4049a281968a25c27f27610745f7d726f7 Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Wed, 13 May 2026 17:18:23 +0100 Subject: [PATCH 04/20] refator httprequest --- src/httprequest.cpp | 16 +++++++--------- src/httprequest.h | 8 ++++---- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/httprequest.cpp b/src/httprequest.cpp index 55fee952..cd0dd758 100644 --- a/src/httprequest.cpp +++ b/src/httprequest.cpp @@ -148,22 +148,20 @@ void HttpRequest::_newRequest() { 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; } diff --git a/src/httprequest.h b/src/httprequest.h index 543e4baa..51ad593d 100644 --- a/src/httprequest.h +++ b/src/httprequest.h @@ -38,13 +38,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(); @@ -133,7 +133,7 @@ class HttpRequest : public WebSocketConnectionCallbacks, } Address clientAddress(); Address serverAddress(); - Rcpp::Environment& env(); + environment& env(); void handleRequest(); From 702f96a0f212fac318b27cef2e85e8666b6cf310 Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Wed, 13 May 2026 17:31:33 +0100 Subject: [PATCH 05/20] refactor utils --- src/utils.cpp | 5 +- src/utils.h | 124 ++++++++++++++++++++++++++------------------------ 2 files changed, 67 insertions(+), 62 deletions(-) diff --git a/src/utils.cpp b/src/utils.cpp index 69be8c90..8e94c746 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -11,8 +11,7 @@ void debug_log(const std::string& msg, LogLevel level) { // Sets the current log level and returns previous value. -// [[Rcpp::export]] -std::string log_level(const std::string& level) { +[[cpp4r::register]] std::string log_level(const std::string& level) { LogLevel old_level = log_level_; if (level == "") { @@ -28,7 +27,7 @@ std::string log_level(const std::string& level) { } else if (level == "DEBUG") { log_level_ = LOG_DEBUG; } else { - Rcpp::stop("Unknown value for `level`"); + stop("Unknown value for `level`"); } switch(old_level) { diff --git a/src/utils.h b/src/utils.h index 94448ec1..33870605 100644 --- a/src/utils.h +++ b/src/utils.h @@ -8,11 +8,14 @@ #include #include #include -#include #include "optional.h" #include "thread.h" #include "timegm.h" +#include "cpp4r.hpp" + +using namespace cpp4r; + // A callback for deleting objects on the main thread using later(). This is // needed when the object is an Rcpp object or contains one, because deleting // such objects invoke R's memory management functions. @@ -104,7 +107,7 @@ std::string toString(T x) { return ss.str(); } -// This is used for converting an Rcpp named vector (T2) to a std::map. +// This is used for converting a named R vector (T2) to a std::map. template std::map toMap(T2 x) { ASSERT_MAIN_THREAD() @@ -115,16 +118,16 @@ std::map toMap(T2 x) { return strmap; } - Rcpp::CharacterVector names = x.names(); - if (names.isNULL()) { - throw Rcpp::exception("Error converting R object to map: vector does not have names."); + strings names = x.names(); + if (Rf_isNull(SEXP(names))) { + stop("Error converting R object to map: vector does not have names."); } - for (int i=0; i(names[i]); - T1 value = Rcpp::as (x[i]); + for (R_xlen_t i = 0; i < x.size(); i++) { + std::string name = std::string(names[i]); + T1 value = as_cpp(SEXP(x[i])); if (name == "") { - throw Rcpp::exception("Error converting R object to map: element has empty name."); + stop("Error converting R object to map: element has empty name."); } strmap.insert( @@ -135,76 +138,79 @@ std::map toMap(T2 x) { return strmap; } -// A wrapper for Rcpp::as. If the R value is NULL, this returns nullopt; -// otherwise it returns the usual value that Rcpp::as returns, wrapped in -// std::experimental::optional. -template -std::experimental::optional optional_as(T2 value) { - if (value.isNULL()) { +// A wrapper for as_cpp. If the R value is NULL, this returns nullopt; +// otherwise it returns the usual value that as_cpp returns, wrapped in +// std::experimental::optional. +template +std::experimental::optional optional_as(SEXP value) { + if (Rf_isNull(value)) { return std::experimental::nullopt; } - return std::experimental::optional( Rcpp::as(value) ); + return std::experimental::optional(as_cpp(value)); } -// A wrapper for Rcpp::wrap. If the C++ value is missing, this returns the -// R value NULL; otherwise it returns the usual value that Rcpp::wrap returns, after -// unwrapping from the std::experimental::optional. +// If the C++ value is missing, this returns R NULL; otherwise converts to SEXP. template -Rcpp::RObject optional_wrap(std::experimental::optional value) { +SEXP optional_wrap(std::experimental::optional value) { if (!value.has_value()) { return R_NilValue; } - return Rcpp::wrap(*value); + return as_sexp(*value); } -// as() and wrap() for ResponseHeaders. Since the ResponseHeaders typedef is -// in constants.h and this file doesn't include constants.h, we'll define them +// as_cpp and as_sexp for ResponseHeaders. Since the ResponseHeaders typedef is +// in constants.h and this file doesn't include constants.h, we define them // using the actual vector type instead of the ResponseHeaders typedef. -// (constants.h doesn't include Rcpp.h so we can't define these functions -// there.) -namespace Rcpp { - template <> inline std::vector > as(SEXP x) { - ASSERT_MAIN_THREAD() - Rcpp::CharacterVector headers(x); - Rcpp::CharacterVector names = headers.names(); - - if (names.isNULL()) { - throw Rcpp::exception("All values must be named."); - } - - std::vector > result; - - for (int i=0; i(names[i]); - if (name == "") { - throw Rcpp::exception("All values must be named."); - } +inline std::vector> as_response_headers(SEXP x) { + ASSERT_MAIN_THREAD() + strings hdrs(x); + strings nms = hdrs.names(); - std::string value = Rcpp::as(headers[i]); + if (Rf_isNull(SEXP(nms))) { + stop("All values must be named."); + } - result.push_back(std::make_pair(name, value)); + std::vector> result; + for (R_xlen_t i = 0; i < hdrs.size(); i++) { + std::string name = std::string(nms[i]); + if (name.empty()) { + stop("All values must be named."); } - - return result; + result.push_back({name, std::string(hdrs[i])}); } + return result; +} - template <> inline SEXP wrap(const std::vector > &x) { - ASSERT_MAIN_THREAD() - - std::vector values(x.size()); - std::vector names(x.size()); - - for (unsigned int i=0; i>& x) { + ASSERT_MAIN_THREAD() + R_xlen_t n = static_cast(x.size()); + writable::strings values(n); + writable::strings nms(n); + for (R_xlen_t i = 0; i < n; i++) { + nms[i] = x[i].first; + values[i] = x[i].second; + } + values.attr("names") = nms; + return values; +} - Rcpp::CharacterVector result = Rcpp::wrap(values); - result.attr("names") = Rcpp::wrap(names); +// optional_as / optional_wrap specializations for ResponseHeaders. +template <> +inline std::experimental::optional>> +optional_as>>(SEXP value) { + if (Rf_isNull(value)) { + return std::experimental::nullopt; + } + return as_response_headers(value); +} - return result; +template <> +inline SEXP optional_wrap(std::experimental::optional>> value) { + if (!value.has_value()) { + return R_NilValue; } + return response_headers_to_sexp(*value); } From fb4d243bed81e825f1730225f0d5e7407276094c Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Wed, 13 May 2026 18:27:28 +0100 Subject: [PATCH 06/20] back to httpuv.cpp/h --- src/httpuv.cpp | 148 +++++++++++++++++++++++---------------------- src/httpuv.h | 4 +- src/staticpath.cpp | 131 ++++++++++++++++++++------------------- src/staticpath.h | 27 +++++---- 4 files changed, 157 insertions(+), 153 deletions(-) diff --git a/src/httpuv.cpp b/src/httpuv.cpp index 2f5f82d8..78c97463 100644 --- a/src/httpuv.cpp +++ b/src/httpuv.cpp @@ -27,7 +27,7 @@ void throwError(int err, { 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. @@ -166,7 +166,7 @@ void ensure_io_thread() { blocker->wait(); if (ret != 0) { - Rcpp::stop(std::string("Error: ") + uv_strerror(ret)); + stop(std::string("Error: ") + uv_strerror(ret)); } } @@ -178,14 +178,12 @@ void ensure_io_thread() { // [[Rcpp::export]] void sendWSMessage(SEXP conn, bool binary, - Rcpp::RObject message) + 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, + auto_deleter_background>> conn_xptr(conn); + std::shared_ptr wsc = *conn_xptr; Opcode mode; SEXP msg_sexp; @@ -195,7 +193,7 @@ void sendWSMessage(SEXP conn, // cleaner way to do this. if (binary) { mode = Binary; - msg_sexp = PROTECT(Rcpp::as(message)); + msg_sexp = PROTECT(message); str = new std::vector(RAW(msg_sexp), RAW(msg_sexp) + Rf_length(msg_sexp)); UNPROTECT(1); @@ -228,11 +226,9 @@ void closeWS(SEXP conn, { 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, + auto_deleter_background>> conn_xptr(conn); + std::shared_ptr wsc = *conn_xptr; // Schedule on background thread: // wsc->closeWS(code, reason); @@ -247,19 +243,18 @@ void closeWS(SEXP conn, // ============================================================================ // [[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 +SEXP makeTcpServer(const std::string& host, int port, + function 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, @@ -302,24 +297,23 @@ 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 +SEXP makePipeServer(const std::string& name, + int mask, + function 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, @@ -360,7 +354,7 @@ Rcpp::RObject makePipeServer(const std::string& name, pServers.push_back(pServer); - return Rcpp::wrap(externalize_str(pServer)); + return as_sexp(externalize_str(pServer)); } @@ -374,7 +368,7 @@ void stopServer_(uv_stream_t* 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: @@ -412,34 +406,34 @@ std::shared_ptr get_pWebApplication(std::string handle) { } // [[Rcpp::export]] -Rcpp::List getStaticPaths_(std::string handle) { +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) { +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) { +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) { +list getStaticPathOptions_(std::string handle) { ASSERT_MAIN_THREAD() return get_pWebApplication(handle)->getStaticPathManager().getOptions().asRObject(); } // [[Rcpp::export]] -Rcpp::List setStaticPathOptions_(std::string handle, Rcpp::List opts) { +list setStaticPathOptions_(std::string handle, list opts) { ASSERT_MAIN_THREAD() get_pWebApplication(handle)->getStaticPathManager().setOptions(opts); return getStaticPathOptions_(handle); @@ -451,7 +445,7 @@ Rcpp::List setStaticPathOptions_(std::string handle, Rcpp::List opts) { // ============================================================================ // [[Rcpp::export]] -std::string base64encode(const Rcpp::RawVector& x) { +std::string base64encode(const raws& x) { return b64encode(x.begin(), x.end()); } @@ -545,13 +539,15 @@ std::string doEncodeURI(std::string value, bool encodeReserved) { //' //' @export // [[Rcpp::export]] -Rcpp::CharacterVector encodeURI(Rcpp::CharacterVector value) { - Rcpp::CharacterVector out(value.size(), NA_STRING); +strings encodeURI(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]), false); - 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])), false); + out[i] = r_string(Rf_mkCharCE(encoded.c_str(), CE_UTF8)); } } return out; @@ -560,13 +556,15 @@ Rcpp::CharacterVector encodeURI(Rcpp::CharacterVector value) { //' @rdname encodeURI //' @export // [[Rcpp::export]] -Rcpp::CharacterVector encodeURIComponent(Rcpp::CharacterVector value) { - Rcpp::CharacterVector out(value.size(), NA_STRING); +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; @@ -635,13 +633,15 @@ std::string doDecodeURI(std::string value, bool component) { //' @rdname encodeURI //' @export // [[Rcpp::export]] -Rcpp::CharacterVector decodeURI(Rcpp::CharacterVector value) { - Rcpp::CharacterVector out(value.size(), NA_STRING); +strings decodeURI(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]), 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)); } } @@ -651,13 +651,15 @@ Rcpp::CharacterVector decodeURI(Rcpp::CharacterVector value) { //' @rdname encodeURI //' @export // [[Rcpp::export]] -Rcpp::CharacterVector decodeURIComponent(Rcpp::CharacterVector value) { - Rcpp::CharacterVector out(value.size(), NA_STRING); +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)); } } @@ -703,7 +705,7 @@ 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)); @@ -739,8 +741,8 @@ void getRNGState() { // //[[Rcpp::export]] std::string wsconn_address(SEXP external_ptr) { - Rcpp::XPtr > xptr(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 38cb551d..2b32136a 100644 --- a/src/httpuv.h +++ b/src/httpuv.h @@ -1,8 +1,10 @@ #ifndef HTTPUV_HPP #define HTTPUV_HPP -#include #include +#include "cpp4r.hpp" + +using namespace cpp4r; void invokeCppCallback(SEXP data, SEXP callback_xptr); diff --git a/src/staticpath.cpp b/src/staticpath.cpp index decc6308..d6df9a08 100644 --- a/src/staticpath.cpp +++ b/src/staticpath.cpp @@ -8,7 +8,7 @@ // StaticPathOptions // ============================================================================ -StaticPathOptions::StaticPathOptions(const Rcpp::List& options) : +StaticPathOptions::StaticPathOptions(const list& options) : indexhtml(std::experimental::nullopt), fallthrough(std::experimental::nullopt), html_charset(std::experimental::nullopt), @@ -18,19 +18,17 @@ StaticPathOptions::StaticPathOptions(const Rcpp::List& options) : { ASSERT_MAIN_THREAD() - std::string obj_class = options.attr("class"); + std::string obj_class = std::string(strings(SEXP(options.attr("class")))[0]); if (obj_class != "staticPathOptions") { - throw Rcpp::exception("staticPath options object must have class 'staticPathOptions'."); + stop("staticPath options object must have class 'staticPathOptions'."); } - // This seems to be a necessary intermediary for passing objects to - // `optional_as()`. - Rcpp::RObject temp; + SEXP temp; temp = options.attr("normalized"); std::experimental::optional normalized = optional_as(temp); if (!normalized || !*normalized) { - throw Rcpp::exception("staticPathOptions object must be normalized."); + stop("staticPathOptions object must be normalized."); } // There's probably a more concise way to do this assignment than by using temp. @@ -43,62 +41,58 @@ StaticPathOptions::StaticPathOptions(const Rcpp::List& options) : } -void StaticPathOptions::setOptions(const Rcpp::List& options) { +void StaticPathOptions::setOptions(const list& options) { ASSERT_MAIN_THREAD() - Rcpp::RObject temp; - if (options.containsElementNamed("indexhtml")) { + SEXP temp; + if (options.contains("indexhtml")) { temp = options["indexhtml"]; - if (!temp.isNULL()) { + if (!Rf_isNull(temp)) { indexhtml = optional_as(temp); } } - if (options.containsElementNamed("fallthrough")) { + if (options.contains("fallthrough")) { temp = options["fallthrough"]; - if (!temp.isNULL()) { + if (!Rf_isNull(temp)) { fallthrough = optional_as(temp); } } - if (options.containsElementNamed("html_charset")) { + if (options.contains("html_charset")) { temp = options["html_charset"]; - if (!temp.isNULL()) { + if (!Rf_isNull(temp)) { html_charset = optional_as(temp); } } - if (options.containsElementNamed("headers")) { + if (options.contains("headers")) { temp = options["headers"]; - if (!temp.isNULL()) { + if (!Rf_isNull(temp)) { headers = optional_as(temp); } } - if (options.containsElementNamed("validation")) { + if (options.contains("validation")) { temp = options["validation"]; - if (!temp.isNULL()) { + if (!Rf_isNull(temp)) { validation = optional_as >(temp); } } - if (options.containsElementNamed("exclude")) { + if (options.contains("exclude")) { temp = options["exclude"]; - if (!temp.isNULL()) { + if (!Rf_isNull(temp)) { exclude = optional_as(temp); } } } -Rcpp::List StaticPathOptions::asRObject() const { +list StaticPathOptions::asRObject() const { ASSERT_MAIN_THREAD() - using namespace Rcpp; - - List obj = List::create( - _["indexhtml"] = optional_wrap(indexhtml), - _["fallthrough"] = optional_wrap(fallthrough), - _["html_charset"] = optional_wrap(html_charset), - _["headers"] = optional_wrap(headers), - _["validation"] = optional_wrap(validation), - _["exclude"] = optional_wrap(exclude) - ); - + writable::list obj = { + "indexhtml"_nm = optional_wrap(indexhtml), + "fallthrough"_nm = optional_wrap(fallthrough), + "html_charset"_nm = optional_wrap(html_charset), + "headers"_nm = optional_wrap(headers), + "validation"_nm = optional_wrap(validation), + "exclude"_nm = optional_wrap(exclude) + }; obj.attr("class") = "staticPathOptions"; - return obj; } @@ -149,11 +143,11 @@ bool StaticPathOptions::validateRequestHeaders(const RequestHeaders& headers) co // StaticPath // ============================================================================ -StaticPath::StaticPath(const Rcpp::List& sp) { +StaticPath::StaticPath(const list& sp) { ASSERT_MAIN_THREAD() - path = Rcpp::as(sp["path"]); + path = as_cpp(sp["path"]); - Rcpp::List options_list = sp["options"]; + list options_list(sp["options"]); options = StaticPathOptions(options_list); if (path.length() == 0) { @@ -167,17 +161,13 @@ StaticPath::StaticPath(const Rcpp::List& sp) { } } -Rcpp::List StaticPath::asRObject() const { +list StaticPath::asRObject() const { ASSERT_MAIN_THREAD() - using namespace Rcpp; - - List obj = List::create( - _["path"] = path, - _["options"] = options.asRObject() - ); - + writable::list obj = { + "path"_nm = path, + "options"_nm = options.asRObject() + }; obj.attr("class") = "staticPath"; - return obj; } @@ -189,7 +179,7 @@ StaticPathManager::StaticPathManager() { uv_mutex_init(&mutex); } -StaticPathManager::StaticPathManager(const Rcpp::List& path_list, const Rcpp::List& options_list) { +StaticPathManager::StaticPathManager(const list& path_list, const list& options_list) { ASSERT_MAIN_THREAD() uv_mutex_init(&mutex); @@ -199,18 +189,18 @@ StaticPathManager::StaticPathManager(const Rcpp::List& path_list, const Rcpp::Li return; } - Rcpp::CharacterVector names = path_list.names(); - if (names.isNULL()) { - throw Rcpp::exception("Error processing static paths: all static paths must be named."); + strings names = path_list.names(); + if (names.size() == 0) { + stop("Error processing static paths: all static paths must be named."); } - for (int i=0; i(names[i]); + for (R_xlen_t i = 0; i < path_list.size(); i++) { + std::string name = std::string(names[i]); if (name == "") { - throw Rcpp::exception("Error processing static paths."); + stop("Error processing static paths."); } - Rcpp::List sp(path_list[i]); + list sp(path_list[i]); StaticPath staticpath(sp); this->path_map.insert( @@ -235,12 +225,12 @@ std::experimental::optional StaticPathManager::get(const std::string return sp; } -std::experimental::optional StaticPathManager::get(const Rcpp::CharacterVector& path) const { +std::experimental::optional StaticPathManager::get(const strings& path) const { ASSERT_MAIN_THREAD() if (path.size() != 1) { - throw Rcpp::exception("Can only get a single StaticPath object."); + stop("Can only get a single StaticPath object."); } - return get(Rcpp::as(path)); + return get(std::string(path[0])); } @@ -265,9 +255,9 @@ void StaticPathManager::set(const std::map& pmap) { } } -void StaticPathManager::set(const Rcpp::List& pmap) { +void StaticPathManager::set(const list& pmap) { ASSERT_MAIN_THREAD() - std::map pmap2 = toMap(pmap); + std::map pmap2 = toMap(pmap); set(pmap2); } @@ -287,10 +277,11 @@ void StaticPathManager::remove(const std::vector& paths) { } } -void StaticPathManager::remove(const Rcpp::CharacterVector& paths) { +void StaticPathManager::remove(const strings& paths) { ASSERT_MAIN_THREAD() - std::vector paths_vec = Rcpp::as >(paths); - remove(paths_vec); + for (R_xlen_t i = 0; i < paths.size(); i++) { + remove(std::string(paths[i])); + } } @@ -384,21 +375,27 @@ const StaticPathOptions& StaticPathManager::getOptions() const { return options; } -void StaticPathManager::setOptions(const Rcpp::List& opts) { +void StaticPathManager::setOptions(const list& opts) { options.setOptions(opts); } // Returns a list of R objects that reflect the StaticPaths, without merging // the overall options. -Rcpp::List StaticPathManager::pathsAsRObject() const { +list StaticPathManager::pathsAsRObject() const { ASSERT_MAIN_THREAD() guard guard(mutex); - Rcpp::List obj; + R_xlen_t n = static_cast(path_map.size()); + writable::list obj(n); + writable::strings nms(n); + + R_xlen_t i = 0; std::map::const_iterator it; - for (it = path_map.begin(); it != path_map.end(); it++) { - obj[it->first] = it->second.asRObject(); + for (it = path_map.begin(); it != path_map.end(); ++it, ++i) { + nms[i] = it->first; + obj[i] = it->second.asRObject(); } + obj.attr("names") = nms; return obj; } diff --git a/src/staticpath.h b/src/staticpath.h index 24a99f6d..7f575b0b 100644 --- a/src/staticpath.h +++ b/src/staticpath.h @@ -3,11 +3,14 @@ #include #include -#include #include "optional.h" #include "thread.h" #include "constants.h" +#include "cpp4r.hpp" + +using namespace cpp4r; + class StaticPathOptions { public: std::experimental::optional indexhtml; @@ -24,11 +27,11 @@ class StaticPathOptions { validation(std::experimental::nullopt), exclude(std::experimental::nullopt) { }; - StaticPathOptions(const Rcpp::List& options); + StaticPathOptions(const list& options); - void setOptions(const Rcpp::List& options); + void setOptions(const list& options); - Rcpp::List asRObject() const; + list asRObject() const; static StaticPathOptions merge(const StaticPathOptions& a, const StaticPathOptions& b); @@ -41,9 +44,9 @@ class StaticPath { std::string path; StaticPathOptions options; - StaticPath(const Rcpp::List& sp); + StaticPath(const list& sp); - Rcpp::List asRObject() const; + list asRObject() const; }; @@ -56,27 +59,27 @@ class StaticPathManager { public: StaticPathManager(); - StaticPathManager(const Rcpp::List& path_list, const Rcpp::List& options_list); + StaticPathManager(const list& path_list, const list& options_list); std::experimental::optional get(const std::string& path) const; - std::experimental::optional get(const Rcpp::CharacterVector& path) const; + std::experimental::optional get(const strings& path) const; void set(const std::string& path, const StaticPath& sp); void set(const std::map& pmap); - void set(const Rcpp::List& pmap); + void set(const list& pmap); void remove(const std::string& path); void remove(const std::vector& paths); - void remove(const Rcpp::CharacterVector& paths); + void remove(const strings& paths); std::experimental::optional > matchStaticPath( const std::string& url_path) const; const StaticPathOptions& getOptions() const; - void setOptions(const Rcpp::List& opts); + void setOptions(const list& opts); - Rcpp::List pathsAsRObject() const; + list pathsAsRObject() const; }; #endif From 94c246f6074d01ad5fcdeab317c865aa70126d91 Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Wed, 13 May 2026 19:04:13 +0100 Subject: [PATCH 07/20] roxygenise httup.cpp --- src/httpuv.cpp | 193 +++++++++++++++++++++++-------------------------- 1 file changed, 90 insertions(+), 103 deletions(-) diff --git a/src/httpuv.cpp b/src/httpuv.cpp index 78c97463..b5a11bc8 100644 --- a/src/httpuv.cpp +++ b/src/httpuv.cpp @@ -175,8 +175,7 @@ void ensure_io_thread() { // Outgoing websocket messages // ============================================================================ -// [[Rcpp::export]] -void sendWSMessage(SEXP conn, +[[cpp4r::register]] void sendWSMessage(SEXP conn, bool binary, SEXP message) { @@ -219,8 +218,7 @@ void sendWSMessage(SEXP conn, background_queue->push(std::bind(deleter_background >, str)); } -// [[Rcpp::export]] -void closeWS(SEXP conn, +[[cpp4r::register]] void closeWS(SEXP conn, uint16_t code, std::string reason) { @@ -242,8 +240,7 @@ void closeWS(SEXP conn, // Create/stop servers // ============================================================================ -// [[Rcpp::export]] -SEXP makeTcpServer(const std::string& host, int port, +[[cpp4r::register]] SEXP makeTcpServer(const std::string& host, int port, function onHeaders, function onBodyData, function onRequest, @@ -300,8 +297,7 @@ SEXP makeTcpServer(const std::string& host, int port, return as_sexp(externalize_str(pServer)); } -// [[Rcpp::export]] -SEXP makePipeServer(const std::string& name, +[[cpp4r::register]] SEXP makePipeServer(const std::string& name, int mask, function onHeaders, function onBodyData, @@ -378,8 +374,7 @@ void stopServer_(uv_stream_t* pServer) { ); } -// [[Rcpp::export]] -void stopServer_(std::string handle) { +[[cpp4r::register]] void stopServer_(std::string handle) { ASSERT_MAIN_THREAD() uv_stream_t* pServer = internalize_str(handle); stopServer_(pServer); @@ -405,35 +400,30 @@ std::shared_ptr get_pWebApplication(std::string handle) { return get_pWebApplication(pServer); } -// [[Rcpp::export]] -list getStaticPaths_(std::string handle) { +[[cpp4r::register]] list getStaticPaths_(std::string handle) { ASSERT_MAIN_THREAD() return get_pWebApplication(handle)->getStaticPathManager().pathsAsRObject(); } -// [[Rcpp::export]] -list setStaticPaths_(std::string handle, list sp) { +[[cpp4r::register]] list setStaticPaths_(std::string handle, list sp) { ASSERT_MAIN_THREAD() get_pWebApplication(handle)->getStaticPathManager().set(sp); return getStaticPaths_(handle); } -// [[Rcpp::export]] -list removeStaticPaths_(std::string handle, strings paths) { +[[cpp4r::register]] list removeStaticPaths_(std::string handle, strings paths) { ASSERT_MAIN_THREAD() get_pWebApplication(handle)->getStaticPathManager().remove(paths); return getStaticPaths_(handle); } -// [[Rcpp::export]] -list getStaticPathOptions_(std::string handle) { +[[cpp4r::register]] list getStaticPathOptions_(std::string handle) { ASSERT_MAIN_THREAD() return get_pWebApplication(handle)->getStaticPathManager().getOptions().asRObject(); } -// [[Rcpp::export]] -list setStaticPathOptions_(std::string handle, list opts) { +[[cpp4r::register]] list setStaticPathOptions_(std::string handle, list opts) { ASSERT_MAIN_THREAD() get_pWebApplication(handle)->getStaticPathManager().setOptions(opts); return getStaticPathOptions_(handle); @@ -444,8 +434,7 @@ list setStaticPathOptions_(std::string handle, list opts) { // Miscellaneous utility functions // ============================================================================ -// [[Rcpp::export]] -std::string base64encode(const raws& x) { +[[cpp4r::register]] std::string base64encode(const raws& x) { return b64encode(x.begin(), x.end()); } @@ -509,37 +498,37 @@ std::string doEncodeURI(std::string value, bool encodeReserved) { 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]] -strings encodeURI(strings value) { +/* roxygen +@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 +*/ +[[cpp4r::register]] strings encodeURI(strings value) { writable::strings out(value.size()); for (R_xlen_t i = 0; i < value.size(); i++) { @@ -553,10 +542,11 @@ strings encodeURI(strings value) { return out; } -//' @rdname encodeURI -//' @export -// [[Rcpp::export]] -strings encodeURIComponent(strings value) { +/* roxygen +@rdname encodeURI +@export +*/ +[[cpp4r::register]] strings encodeURIComponent(strings value) { writable::strings out(value.size()); for (R_xlen_t i = 0; i < value.size(); i++) { @@ -630,10 +620,11 @@ std::string doDecodeURI(std::string value, bool component) { } -//' @rdname encodeURI -//' @export -// [[Rcpp::export]] -strings decodeURI(strings value) { +/* roxygen +@rdname encodeURI +@export +*/ +[[cpp4r::register]] strings decodeURI(strings value) { writable::strings out(value.size()); for (R_xlen_t i = 0; i < value.size(); i++) { @@ -648,10 +639,11 @@ strings decodeURI(strings value) { return out; } -//' @rdname encodeURI -//' @export -// [[Rcpp::export]] -strings decodeURIComponent(strings value) { +/* roxygen +@rdname encodeURI +@export +*/ +[[cpp4r::register]] strings decodeURIComponent(strings value) { writable::strings out(value.size()); for (R_xlen_t i = 0; i < value.size(); i++) { @@ -666,27 +658,27 @@ strings decodeURIComponent(strings value) { 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) { +/* roxygen +@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 +*/ +[[cpp4r::register]] int ipFamily(const std::string& ip) { int family = ip_family(ip); if (family == AF_INET6) return 6; @@ -700,8 +692,7 @@ int ipFamily(const std::string& ip) { // 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(SEXP data, SEXP callback_xptr) { +[[cpp4r::register]] void invokeCppCallback(SEXP data, SEXP callback_xptr) { ASSERT_MAIN_THREAD() if (TYPEOF(callback_xptr) != EXTPTRSXP) { @@ -719,18 +710,16 @@ void invokeCppCallback(SEXP 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() { +/* roxygen +@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 +*/ +[[cpp4r::register]] void getRNGState() { GetRNGstate(); } @@ -738,9 +727,7 @@ void getRNGState() { // 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) { +[[cpp4r::register]] std::string wsconn_address(SEXP external_ptr) { external_pointer> xptr(external_ptr); std::ostringstream os; os << std::hex << reinterpret_cast((*xptr).get()); From 15cae3d96d9f887328a5f587ff2f376610070ab8 Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Wed, 13 May 2026 22:02:53 +0100 Subject: [PATCH 08/20] move what I have so far to cpp11 --- src/http.h | 48 +++++++++----------------------------------- src/httpuv.cpp | 38 +++++++++++++++++------------------ src/httpuv.h | 4 ++-- src/staticpath.h | 4 ++-- src/utils.cpp | 2 +- src/utils.h | 4 ++-- src/webapplication.h | 4 ++-- 7 files changed, 37 insertions(+), 67 deletions(-) diff --git a/src/http.h b/src/http.h index 882bbf28..027e1af4 100644 --- a/src/http.h +++ b/src/http.h @@ -49,55 +49,25 @@ void freeServer(uv_stream_t* pServer); bool runNonBlocking(uv_loop_t* loop); -// 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 - // 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 +// 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. -// -// 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) +inline external_pointer, + auto_deleter_background>> +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) -{ - ASSERT_MAIN_THREAD() - std::shared_ptr* obj_copy = obj_xptr.get(); - // Return a copy of the shared pointer. - return *obj_copy; + return external_pointer, + auto_deleter_background>>(obj_copy, true, true); } diff --git a/src/httpuv.cpp b/src/httpuv.cpp index b5a11bc8..1bdc76e8 100644 --- a/src/httpuv.cpp +++ b/src/httpuv.cpp @@ -175,7 +175,7 @@ void ensure_io_thread() { // Outgoing websocket messages // ============================================================================ -[[cpp4r::register]] void sendWSMessage(SEXP conn, +[[cpp11::register]] void sendWSMessage(SEXP conn, bool binary, SEXP message) { @@ -218,7 +218,7 @@ void ensure_io_thread() { background_queue->push(std::bind(deleter_background >, str)); } -[[cpp4r::register]] void closeWS(SEXP conn, +[[cpp11::register]] void closeWS(SEXP conn, uint16_t code, std::string reason) { @@ -240,7 +240,7 @@ void ensure_io_thread() { // Create/stop servers // ============================================================================ -[[cpp4r::register]] SEXP makeTcpServer(const std::string& host, int port, +[[cpp11::register]] SEXP makeTcpServer(const std::string& host, int port, function onHeaders, function onBodyData, function onRequest, @@ -297,7 +297,7 @@ void ensure_io_thread() { return as_sexp(externalize_str(pServer)); } -[[cpp4r::register]] SEXP makePipeServer(const std::string& name, +[[cpp11::register]] SEXP makePipeServer(const std::string& name, int mask, function onHeaders, function onBodyData, @@ -374,7 +374,7 @@ void stopServer_(uv_stream_t* pServer) { ); } -[[cpp4r::register]] void stopServer_(std::string handle) { +[[cpp11::register]] void stopServer_(std::string handle) { ASSERT_MAIN_THREAD() uv_stream_t* pServer = internalize_str(handle); stopServer_(pServer); @@ -400,30 +400,30 @@ std::shared_ptr get_pWebApplication(std::string handle) { return get_pWebApplication(pServer); } -[[cpp4r::register]] list getStaticPaths_(std::string handle) { +[[cpp11::register]] list getStaticPaths_(std::string handle) { ASSERT_MAIN_THREAD() return get_pWebApplication(handle)->getStaticPathManager().pathsAsRObject(); } -[[cpp4r::register]] list setStaticPaths_(std::string handle, list sp) { +[[cpp11::register]] list setStaticPaths_(std::string handle, list sp) { ASSERT_MAIN_THREAD() get_pWebApplication(handle)->getStaticPathManager().set(sp); return getStaticPaths_(handle); } -[[cpp4r::register]] list removeStaticPaths_(std::string handle, strings paths) { +[[cpp11::register]] list removeStaticPaths_(std::string handle, strings paths) { ASSERT_MAIN_THREAD() get_pWebApplication(handle)->getStaticPathManager().remove(paths); return getStaticPaths_(handle); } -[[cpp4r::register]] list getStaticPathOptions_(std::string handle) { +[[cpp11::register]] list getStaticPathOptions_(std::string handle) { ASSERT_MAIN_THREAD() return get_pWebApplication(handle)->getStaticPathManager().getOptions().asRObject(); } -[[cpp4r::register]] list setStaticPathOptions_(std::string handle, list opts) { +[[cpp11::register]] list setStaticPathOptions_(std::string handle, list opts) { ASSERT_MAIN_THREAD() get_pWebApplication(handle)->getStaticPathManager().setOptions(opts); return getStaticPathOptions_(handle); @@ -434,7 +434,7 @@ std::shared_ptr get_pWebApplication(std::string handle) { // Miscellaneous utility functions // ============================================================================ -[[cpp4r::register]] std::string base64encode(const raws& x) { +[[cpp11::register]] std::string base64encode(const raws& x) { return b64encode(x.begin(), x.end()); } @@ -528,7 +528,7 @@ std::string doEncodeURI(std::string value, bool encodeReserved) { @export */ -[[cpp4r::register]] strings encodeURI(strings value) { +[[cpp11::register]] strings encodeURI(strings value) { writable::strings out(value.size()); for (R_xlen_t i = 0; i < value.size(); i++) { @@ -546,7 +546,7 @@ std::string doEncodeURI(std::string value, bool encodeReserved) { @rdname encodeURI @export */ -[[cpp4r::register]] strings encodeURIComponent(strings value) { +[[cpp11::register]] strings encodeURIComponent(strings value) { writable::strings out(value.size()); for (R_xlen_t i = 0; i < value.size(); i++) { @@ -624,7 +624,7 @@ std::string doDecodeURI(std::string value, bool component) { @rdname encodeURI @export */ -[[cpp4r::register]] strings decodeURI(strings value) { +[[cpp11::register]] strings decodeURI(strings value) { writable::strings out(value.size()); for (R_xlen_t i = 0; i < value.size(); i++) { @@ -643,7 +643,7 @@ std::string doDecodeURI(std::string value, bool component) { @rdname encodeURI @export */ -[[cpp4r::register]] strings decodeURIComponent(strings value) { +[[cpp11::register]] strings decodeURIComponent(strings value) { writable::strings out(value.size()); for (R_xlen_t i = 0; i < value.size(); i++) { @@ -678,7 +678,7 @@ std::string doDecodeURI(std::string value, bool component) { ipFamily("fe80::1ff:fe23:4567:890a") # 6 @export */ -[[cpp4r::register]] 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; @@ -692,7 +692,7 @@ std::string doDecodeURI(std::string value, bool component) { // 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. -[[cpp4r::register]] void invokeCppCallback(SEXP data, SEXP callback_xptr) { +[[cpp11::register]] void invokeCppCallback(SEXP data, SEXP callback_xptr) { ASSERT_MAIN_THREAD() if (TYPEOF(callback_xptr) != EXTPTRSXP) { @@ -719,7 +719,7 @@ std::string doDecodeURI(std::string value, bool component) { @keywords internal @export */ -[[cpp4r::register]] void getRNGState() { +[[cpp11::register]] void getRNGState() { GetRNGstate(); } @@ -727,7 +727,7 @@ std::string doDecodeURI(std::string value, bool component) { // std::shared_ptr. This returns a hexadecimal string // representing the address of the WebSocketConnection (not the shared_ptr to // it!). -[[cpp4r::register]] std::string wsconn_address(SEXP 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()); diff --git a/src/httpuv.h b/src/httpuv.h index 2b32136a..bdcda064 100644 --- a/src/httpuv.h +++ b/src/httpuv.h @@ -2,9 +2,9 @@ #define HTTPUV_HPP #include -#include "cpp4r.hpp" +#include "cpp11.hpp" -using namespace cpp4r; +using namespace cpp11; void invokeCppCallback(SEXP data, SEXP callback_xptr); diff --git a/src/staticpath.h b/src/staticpath.h index 7f575b0b..ffa9e494 100644 --- a/src/staticpath.h +++ b/src/staticpath.h @@ -7,9 +7,9 @@ #include "thread.h" #include "constants.h" -#include "cpp4r.hpp" +#include "cpp11.hpp" -using namespace cpp4r; +using namespace cpp11; class StaticPathOptions { public: diff --git a/src/utils.cpp b/src/utils.cpp index 8e94c746..51221256 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -11,7 +11,7 @@ void debug_log(const std::string& msg, LogLevel level) { // Sets the current log level and returns previous value. -[[cpp4r::register]] std::string log_level(const std::string& level) { +[[cpp11::register]] std::string log_level(const std::string& level) { LogLevel old_level = log_level_; if (level == "") { diff --git a/src/utils.h b/src/utils.h index 33870605..6196ef14 100644 --- a/src/utils.h +++ b/src/utils.h @@ -12,9 +12,9 @@ #include "thread.h" #include "timegm.h" -#include "cpp4r.hpp" +#include "cpp11.hpp" -using namespace cpp4r; +using namespace cpp11; // A callback for deleting objects on the main thread using later(). This is // needed when the object is an Rcpp object or contains one, because deleting diff --git a/src/webapplication.h b/src/webapplication.h index a3f5dc07..d245064f 100644 --- a/src/webapplication.h +++ b/src/webapplication.h @@ -7,9 +7,9 @@ #include "thread.h" #include "staticpath.h" -#include "cpp4r.hpp" +#include "cpp11.hpp" -using namespace cpp4r; +using namespace cpp11; class HttpRequest; class HttpResponse; From e6b31d23366473ca3444000809b8bc0a125406c3 Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Wed, 13 May 2026 22:11:20 +0100 Subject: [PATCH 09/20] wrappers for registered functions --- R/httpuv-package.R | 91 +++++++++++++++++++++++++++++++++++++++++++++- src/httpuv.cpp | 83 +++--------------------------------------- 2 files changed, 96 insertions(+), 78 deletions(-) diff --git a/R/httpuv-package.R b/R/httpuv-package.R index a0abe642..dda8fb2c 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/src/httpuv.cpp b/src/httpuv.cpp index 1bdc76e8..79457122 100644 --- a/src/httpuv.cpp +++ b/src/httpuv.cpp @@ -498,37 +498,7 @@ std::string doEncodeURI(std::string value, bool encodeReserved) { return os.str(); } -/* roxygen -@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 -*/ -[[cpp11::register]] strings encodeURI(strings value) { +[[cpp11::register]] strings encodeURI_(strings value) { writable::strings out(value.size()); for (R_xlen_t i = 0; i < value.size(); i++) { @@ -542,11 +512,7 @@ std::string doEncodeURI(std::string value, bool encodeReserved) { return out; } -/* roxygen -@rdname encodeURI -@export -*/ -[[cpp11::register]] strings encodeURIComponent(strings value) { +[[cpp11::register]] strings encodeURIComponent_(strings value) { writable::strings out(value.size()); for (R_xlen_t i = 0; i < value.size(); i++) { @@ -620,11 +586,7 @@ std::string doDecodeURI(std::string value, bool component) { } -/* roxygen -@rdname encodeURI -@export -*/ -[[cpp11::register]] strings decodeURI(strings value) { +[[cpp11::register]] strings decodeURI_(strings value) { writable::strings out(value.size()); for (R_xlen_t i = 0; i < value.size(); i++) { @@ -639,11 +601,7 @@ std::string doDecodeURI(std::string value, bool component) { return out; } -/* roxygen -@rdname encodeURI -@export -*/ -[[cpp11::register]] strings decodeURIComponent(strings value) { +[[cpp11::register]] strings decodeURIComponent_(strings value) { writable::strings out(value.size()); for (R_xlen_t i = 0; i < value.size(); i++) { @@ -658,27 +616,7 @@ std::string doDecodeURI(std::string value, bool component) { return out; } -/* roxygen -@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 -*/ -[[cpp11::register]] 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; @@ -710,16 +648,7 @@ std::string doDecodeURI(std::string value, bool component) { R_ClearExternalPtr(callback_xptr); } -/* roxygen -@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 -*/ -[[cpp11::register]] void getRNGState() { +[[cpp11::register]] void getRNGState_() { GetRNGstate(); } From 49cad0aa53f7d5e0cf8c942dff7693b96292662d Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Wed, 13 May 2026 22:24:49 +0100 Subject: [PATCH 10/20] fix RNG and postfix iterator --- src/httpuv.cpp | 366 ++++++++++++++++++++++++------------------------- 1 file changed, 181 insertions(+), 185 deletions(-) diff --git a/src/httpuv.cpp b/src/httpuv.cpp index 79457122..2bf01ca8 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" +using namespace cpp11; -void throwError(int err, - const std::string& prefix = std::string(), - const std::string& suffix = std::string()) -{ +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; 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,7 +160,7 @@ 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 @@ -170,98 +171,84 @@ void ensure_io_thread() { } } - // ============================================================================ // Outgoing websocket messages // ============================================================================ -[[cpp11::register]] void sendWSMessage(SEXP conn, - bool binary, - SEXP message) -{ +[[cpp11::register]] void sendWSMessage(SEXP conn, bool binary, SEXP message) { ASSERT_MAIN_THREAD() - external_pointer, - auto_deleter_background>> conn_xptr(conn); + 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(message); - str = new std::vector(RAW(msg_sexp), RAW(msg_sexp) + Rf_length(msg_sexp)); + 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)); } -[[cpp11::register]] 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); - external_pointer, - auto_deleter_background>> conn_xptr(conn); + 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 // ============================================================================ -[[cpp11::register]] SEXP makeTcpServer(const std::string& host, int port, - function onHeaders, - function onBodyData, - function onRequest, - function onWSOpen, - function onWSMessage, - function onWSClose, - list staticPaths, - list staticPathOptions, - bool quiet -) { +[[cpp11::register]] SEXP makeTcpServer(const std::string &host, int port, + function 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(); @@ -269,7 +256,7 @@ void ensure_io_thread() { // 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( @@ -278,12 +265,9 @@ void ensure_io_thread() { // 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(); @@ -297,35 +281,28 @@ void ensure_io_thread() { return as_sexp(externalize_str(pServer)); } -[[cpp11::register]] SEXP makePipeServer(const std::string& name, - int mask, - function onHeaders, - function onBodyData, - function onRequest, - function onWSOpen, - function onWSMessage, - function onWSClose, - list staticPaths, - list staticPathOptions, - bool quiet -) { +[[cpp11::register]] SEXP makePipeServer(const std::string &name, int mask, + function 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(); std::shared_ptr blocker = std::make_shared(2); - uv_stream_t* pServer; + uv_stream_t *pServer; // Run on background thread: // createPipeServerSync( @@ -334,12 +311,9 @@ void ensure_io_thread() { // 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(); @@ -353,14 +327,14 @@ void ensure_io_thread() { 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 { @@ -369,34 +343,29 @@ void stopServer_(uv_stream_t* pServer) { // Run on background thread: // freeServer(pServer); - background_queue->push( - std::bind(freeServer, pServer) - ); + background_queue->push(std::bind(freeServer, pServer)); } [[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); } @@ -419,42 +388,47 @@ std::shared_ptr get_pWebApplication(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(); } - [[cpp11::register]] list setStaticPathOptions_(std::string handle, list opts) { ASSERT_MAIN_THREAD() get_pWebApplication(handle)->getStaticPathManager().setOptions(opts); return getStaticPathOptions_(handle); } - // ============================================================================ // Miscellaneous utility functions // ============================================================================ -[[cpp11::register]] std::string base64encode(const raws& 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; } } @@ -468,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; } @@ -485,14 +459,14 @@ 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(); @@ -505,7 +479,8 @@ std::string doEncodeURI(std::string value, bool encodeReserved) { if (value[i] == NA_STRING) { out[i] = r_string(NA_STRING); } else { - std::string encoded = doEncodeURI(Rf_translateCharUTF8(SEXP(value[i])), false); + std::string encoded = + doEncodeURI(Rf_translateCharUTF8(SEXP(value[i])), false); out[i] = r_string(Rf_mkCharCE(encoded.c_str(), CE_UTF8)); } } @@ -519,7 +494,8 @@ std::string doEncodeURI(std::string value, bool encodeReserved) { if (value[i] == NA_STRING) { out[i] = r_string(NA_STRING); } else { - std::string encoded = doEncodeURI(Rf_translateCharUTF8(SEXP(value[i])), true); + std::string encoded = + doEncodeURI(Rf_translateCharUTF8(SEXP(value[i])), true); out[i] = r_string(Rf_mkCharCE(encoded.c_str(), CE_UTF8)); } } @@ -528,31 +504,53 @@ std::string doEncodeURI(std::string value, bool encodeReserved) { 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 @@ -585,7 +583,6 @@ std::string doDecodeURI(std::string value, bool component) { return os.str(); } - [[cpp11::register]] strings decodeURI_(strings value) { writable::strings out(value.size()); @@ -594,7 +591,8 @@ std::string doDecodeURI(std::string value, bool component) { 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)); + out[i] = + r_string(Rf_mkCharLenCE(decoded.c_str(), decoded.length(), CE_UTF8)); } } @@ -609,14 +607,15 @@ std::string doDecodeURI(std::string value, bool component) { 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)); + out[i] = + r_string(Rf_mkCharLenCE(decoded.c_str(), decoded.length(), CE_UTF8)); } } return out; } -[[cpp11::register]] 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; @@ -626,7 +625,6 @@ std::string doDecodeURI(std::string value, bool component) { 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. @@ -636,8 +634,8 @@ std::string doDecodeURI(std::string value, bool component) { if (TYPEOF(callback_xptr) != EXTPTRSXP) { 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); @@ -648,9 +646,7 @@ std::string doDecodeURI(std::string value, bool component) { R_ClearExternalPtr(callback_xptr); } -[[cpp11::register]] void getRNGState_() { - GetRNGstate(); -} +[[cpp11::register]] void getRNGState_() { GetRNGstate(); } // We are given an external pointer to a // std::shared_ptr. This returns a hexadecimal string From 8ecc9c312d046056691aad97c78e0b2eed06248e Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Wed, 13 May 2026 22:26:26 +0100 Subject: [PATCH 11/20] add ctime to utils --- src/utils.cpp | 98 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 63 insertions(+), 35 deletions(-) diff --git a/src/utils.cpp b/src/utils.cpp index 51221256..394a4631 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -1,17 +1,17 @@ #include "utils.h" +#include // Set the default log level LogLevel log_level_ = LOG_ERROR; -void debug_log(const std::string& msg, LogLevel level) { +void debug_log(const std::string &msg, LogLevel level) { if (log_level_ >= level) { err_printf("%s\n", msg.c_str()); }; } - // Sets the current log level and returns previous value. -[[cpp11::register]] std::string log_level(const std::string& level) { +[[cpp11::register]] std::string log_level(const std::string &level) { LogLevel old_level = log_level_; if (level == "") { @@ -30,13 +30,19 @@ void debug_log(const std::string& msg, LogLevel level) { stop("Unknown value for `level`"); } - switch(old_level) { - case LOG_OFF: return "OFF"; - case LOG_ERROR: return "ERROR"; - case LOG_WARN: return "WARN"; - case LOG_INFO: return "INFO"; - case LOG_DEBUG: return "DEBUG"; - default: return ""; + switch (old_level) { + case LOG_OFF: + return "OFF"; + case LOG_ERROR: + return "ERROR"; + case LOG_WARN: + return "WARN"; + case LOG_INFO: + return "INFO"; + case LOG_DEBUG: + return "DEBUG"; + default: + return ""; } } @@ -46,7 +52,7 @@ void debug_log(const std::string& msg, LogLevel level) { // @param pOut If true is returned, the integer value of the parsed value. If // false returned, pOut is untouched. // @return true if successful, false if parsing fails for any reason -bool str_read_int(std::istream* input, size_t digits, int* pOut) { +bool str_read_int(std::istream *input, size_t digits, int *pOut) { if (digits <= 0) { return false; } @@ -78,7 +84,8 @@ bool str_read_int(std::istream* input, size_t digits, int* pOut) { // element in `values` that matched the input. If false is returned, then res // will be untouched. // @return true if successful, false if reading failed or no match found -bool str_read_lookup(std::istream* input, size_t bytes, const std::vector& values, int* pRes) { +bool str_read_lookup(std::istream *input, size_t bytes, + const std::vector &values, int *pRes) { std::vector buf; buf.resize(bytes + 1); @@ -95,12 +102,14 @@ bool str_read_lookup(std::istream* input, size_t bytes, const std::vector months {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; -const std::vector days_of_week {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; +const std::vector months{"Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; +const std::vector days_of_week{"Sun", "Mon", "Tue", "Wed", + "Thu", "Fri", "Sat"}; // Given a date string of format "Wed, 21 Oct 2015 07:28:00 GMT", return a // time_t representing that time. If the date is malformed, then return 0. -time_t parse_http_date_string(const std::string& date) { +time_t parse_http_date_string(const std::string &date) { // This is because the static std::locale may not be thread-safe. If in the // future we need to call this from multiple threads, we can remove this and // make the std::locale non-static. @@ -125,28 +134,47 @@ time_t parse_http_date_string(const std::string& date) { // return 0; // } - if (!str_read_lookup(&date_ss, 3, days_of_week, &t.tm_wday)) return 0; - if (date_ss.get() != ',') return 0; - if (date_ss.get() != ' ') return 0; - if (!str_read_int(&date_ss, 2, &t.tm_mday)) return 0; - if (date_ss.get() != ' ') return 0; - if (!str_read_lookup(&date_ss, 3, months, &t.tm_mon)) return 0; - if (date_ss.get() != ' ') return 0; + if (!str_read_lookup(&date_ss, 3, days_of_week, &t.tm_wday)) + return 0; + if (date_ss.get() != ',') + return 0; + if (date_ss.get() != ' ') + return 0; + if (!str_read_int(&date_ss, 2, &t.tm_mday)) + return 0; + if (date_ss.get() != ' ') + return 0; + if (!str_read_lookup(&date_ss, 3, months, &t.tm_mon)) + return 0; + if (date_ss.get() != ' ') + return 0; int year = 0; - if (!str_read_int(&date_ss, 4, &year)) return 0; + if (!str_read_int(&date_ss, 4, &year)) + return 0; t.tm_year = year - 1900; - if (date_ss.get() != ' ') return 0; - if (!str_read_int(&date_ss, 2, &t.tm_hour)) return 0; - if (date_ss.get() != ':') return 0; - if (!str_read_int(&date_ss, 2, &t.tm_min)) return 0; - if (date_ss.get() != ':') return 0; - if (!str_read_int(&date_ss, 2, &t.tm_sec)) return 0; - if (date_ss.get() != ' ') return 0; - if (date_ss.get() != 'G') return 0; - if (date_ss.get() != 'M') return 0; - if (date_ss.get() != 'T') return 0; - if (date_ss.get() != EOF) return 0; - } catch(...) { + if (date_ss.get() != ' ') + return 0; + if (!str_read_int(&date_ss, 2, &t.tm_hour)) + return 0; + if (date_ss.get() != ':') + return 0; + if (!str_read_int(&date_ss, 2, &t.tm_min)) + return 0; + if (date_ss.get() != ':') + return 0; + if (!str_read_int(&date_ss, 2, &t.tm_sec)) + return 0; + if (date_ss.get() != ' ') + return 0; + if (date_ss.get() != 'G') + return 0; + if (date_ss.get() != 'M') + return 0; + if (date_ss.get() != 'T') + return 0; + if (date_ss.get() != EOF) + return 0; + } catch (...) { return 0; } From ea82fee48b2f4e103721f58d851a9ffb98e11387 Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Wed, 13 May 2026 22:28:35 +0100 Subject: [PATCH 12/20] add sstream to uvutil --- src/uvutil.h | 57 ++++++++++++++++++++++++---------------------------- 1 file changed, 26 insertions(+), 31 deletions(-) diff --git a/src/uvutil.h b/src/uvutil.h index ce3e9704..6128b95b 100644 --- a/src/uvutil.h +++ b/src/uvutil.h @@ -2,28 +2,25 @@ #define UVUTIL_HPP #include "thread.h" -#include -#include #include +#include +#include #include +#include -#include +#include "cpp11.hpp" -inline uv_handle_t* toHandle(uv_timer_t* timer) { - return (uv_handle_t*)timer; -} -inline uv_handle_t* toHandle(uv_tcp_t* tcp) { - return (uv_handle_t*)tcp; -} -inline uv_handle_t* toHandle(uv_stream_t* stream) { - return (uv_handle_t*)stream; -} +using namespace cpp11; -inline uv_stream_t* toStream(uv_tcp_t* tcp) { - return (uv_stream_t*)tcp; +inline uv_handle_t *toHandle(uv_timer_t *timer) { return (uv_handle_t *)timer; } +inline uv_handle_t *toHandle(uv_tcp_t *tcp) { return (uv_handle_t *)tcp; } +inline uv_handle_t *toHandle(uv_stream_t *stream) { + return (uv_handle_t *)stream; } -void freeAfterClose(uv_handle_t* handle); +inline uv_stream_t *toStream(uv_tcp_t *tcp) { return (uv_stream_t *)tcp; } + +void freeAfterClose(uv_handle_t *handle); class WriteOp; @@ -42,27 +39,26 @@ class InMemoryDataSource : public DataSource { private: std::vector _buffer; size_t _pos; + public: - explicit InMemoryDataSource(const std::vector& buffer = std::vector()) - : _buffer(buffer), _pos(0) {} + explicit InMemoryDataSource( + const std::vector &buffer = std::vector()) + : _buffer(buffer), _pos(0) {} - explicit InMemoryDataSource(const Rcpp::RawVector& rawVector) - : _buffer(rawVector.size()), _pos(0) - { + explicit InMemoryDataSource(const raws &rawVector) + : _buffer(rawVector.size()), _pos(0) { ASSERT_MAIN_THREAD() std::copy(rawVector.begin(), rawVector.end(), _buffer.begin()); } - virtual ~InMemoryDataSource() { - close(); - } + virtual ~InMemoryDataSource() { close(); } uint64_t size() const; uv_buf_t getData(size_t bytesDesired); void freeData(uv_buf_t buffer); void close(); - void add(const std::vector& moreData); + void add(const std::vector &moreData); }; // Class for writing a DataSource to a uv_stream_t. Takes care @@ -73,13 +69,14 @@ class ExtendedWrite { int _activeWrites; bool _errored; bool _completed; - uv_stream_t* _pHandle; + uv_stream_t *_pHandle; std::shared_ptr _pDataSource; public: - ExtendedWrite(uv_stream_t* pHandle, std::shared_ptr pDataSource, bool chunked) - : _chunked(chunked), _activeWrites(0), _errored(false), _completed(false), _pHandle(pHandle), - _pDataSource(pDataSource) {} + ExtendedWrite(uv_stream_t *pHandle, std::shared_ptr pDataSource, + bool chunked) + : _chunked(chunked), _activeWrites(0), _errored(false), _completed(false), + _pHandle(pHandle), _pDataSource(pDataSource) {} virtual ~ExtendedWrite() {} virtual void onWriteComplete(int status) = 0; @@ -89,11 +86,9 @@ class ExtendedWrite { protected: void next(); - }; - -inline int ip_family(const std::string& ip) { +inline int ip_family(const std::string &ip) { // A buffer big enough for an IPv6 address unsigned char addr[16]; From e58f3051dc8952b17c64c9cbfeff1ac18f07e3c5 Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Wed, 13 May 2026 22:47:07 +0100 Subject: [PATCH 13/20] use sexp instead of function for _onHeaders --- src/httpuv.cpp | 4 +- src/webapplication.cpp | 260 ++++++++++++++++++----------------------- src/webapplication.h | 79 ++++++------- 3 files changed, 155 insertions(+), 188 deletions(-) diff --git a/src/httpuv.cpp b/src/httpuv.cpp index 2bf01ca8..fa20815e 100644 --- a/src/httpuv.cpp +++ b/src/httpuv.cpp @@ -234,7 +234,7 @@ void ensure_io_thread() { // ============================================================================ [[cpp11::register]] SEXP makeTcpServer(const std::string &host, int port, - function onHeaders, function onBodyData, + sexp onHeaders, function onBodyData, function onRequest, function onWSOpen, function onWSMessage, function onWSClose, list staticPaths, list staticPathOptions, @@ -282,7 +282,7 @@ void ensure_io_thread() { } [[cpp11::register]] SEXP makePipeServer(const std::string &name, int mask, - function onHeaders, function onBodyData, + sexp onHeaders, function onBodyData, function onRequest, function onWSOpen, function onWSMessage, function onWSClose, list staticPaths, diff --git a/src/webapplication.cpp b/src/webapplication.cpp index 5336bf12..adc8f5fc 100644 --- a/src/webapplication.cpp +++ b/src/webapplication.cpp @@ -1,26 +1,24 @@ -#include -#include -#include "httpuv.h" -#include "filedatasource.h" #include "webapplication.h" -#include "httprequest.h" +#include "filedatasource.h" +#include "fs.h" #include "http.h" -#include "thread.h" -#include "utils.h" +#include "httprequest.h" +#include "httpuv.h" #include "mime.h" #include "staticpath.h" -#include "fs.h" +#include "thread.h" +#include "utils.h" #include +#include +#include // ============================================================================ // Utility functions // ============================================================================ -std::string normalizeHeaderName(const std::string& name) { +std::string normalizeHeaderName(const std::string &name) { std::string result = name; - for (std::string::iterator it = result.begin(); - it != result.end(); - it++) { + for (std::string::iterator it = result.begin(); it != result.end(); it++) { if (*it == '-') *it = '_'; else if (*it >= 'a' && *it <= 'z') @@ -29,7 +27,7 @@ std::string normalizeHeaderName(const std::string& name) { return result; } -const std::string& getStatusDescription(int code) { +const std::string &getStatusDescription(int code) { static std::map statusDescs; static std::string unknown("Dunno"); if (statusDescs.size() == 0) { @@ -85,35 +83,33 @@ const std::string& getStatusDescription(int code) { // happens during processing a request. list errorResponse() { ASSERT_MAIN_THREAD() - return writable::list({ - "status"_nm = 500L, - "headers"_nm = writable::list({ - "Content-Type"_nm = "text/plain; charset=UTF-8" - }), - "body"_nm = "An exception occurred." - }); + return writable::list({"status"_nm = 500L, + "headers"_nm = writable::list( + {"Content-Type"_nm = "text/plain; charset=UTF-8"}), + "body"_nm = "An exception occurred."}); } // An analog to errorResponse, but this returns an shared_ptr // instead of an list, doesn't involve any R objects, and can be run on // the background thread. -std::shared_ptr error_response(std::shared_ptr pRequest, int code) { +std::shared_ptr +error_response(std::shared_ptr pRequest, int code) { std::string description = getStatusDescription(code); std::string content = toString(code) + " " + description + "\n"; std::vector responseData(content.begin(), content.end()); // Freed in on_response_written - std::shared_ptr pDataSource = std::make_shared(responseData); + std::shared_ptr pDataSource = + std::make_shared(responseData); return std::shared_ptr( - new HttpResponse(pRequest, code, description, pDataSource), - auto_deleter_background - ); + new HttpResponse(pRequest, code, description, pDataSource), + auto_deleter_background); } // Given a URL path like "/foo?abc=123", removes the '?' and everything after. -std::pair splitQueryString(const std::string& url) { +std::pair splitQueryString(const std::string &url) { size_t qsIndex = url.find('?'); std::string path, queryString; if (qsIndex == std::string::npos) @@ -126,14 +122,14 @@ std::pair splitQueryString(const std::string& url) { return std::pair(path, queryString); } - -void requestToEnv(std::shared_ptr pRequest, environment* pEnv) { +void requestToEnv(std::shared_ptr pRequest, environment *pEnv) { ASSERT_MAIN_THREAD() - environment& env = *pEnv; + environment &env = *pEnv; - std::pair url_query = splitQueryString(pRequest->url()); - std::string& path = url_query.first; - std::string& queryString = url_query.second; + std::pair url_query = + splitQueryString(pRequest->url()); + std::string &path = url_query.first; + std::string &queryString = url_query.second; env["REQUEST_METHOD"] = pRequest->method(); env["SCRIPT_NAME"] = std::string(""); @@ -155,13 +151,12 @@ void requestToEnv(std::shared_ptr pRequest, environment* pEnv) { rportstr << raddr.port; env["REMOTE_PORT"] = rportstr.str(); - const RequestHeaders& headers = pRequest->headers(); + const RequestHeaders &headers = pRequest->headers(); writable::strings raw_headers(headers.size()); writable::strings raw_header_names(headers.size()); - for (RequestHeaders::const_iterator it = headers.begin(); - it != headers.end(); - it++) { + for (RequestHeaders::const_iterator it = headers.begin(); it != headers.end(); + it++) { int idx = std::distance(headers.begin(), it); env["HTTP_" + normalizeHeaderName(it->first)] = it->second; raw_header_names[idx] = to_lower(it->first); @@ -170,14 +165,10 @@ void requestToEnv(std::shared_ptr pRequest, environment* pEnv) { raw_headers.attr("names") = raw_header_names; env["HEADERS"] = raw_headers; - } - -std::shared_ptr listToResponse( - std::shared_ptr pRequest, - const list& response) -{ +std::shared_ptr +listToResponse(std::shared_ptr pRequest, const list &response) { ASSERT_MAIN_THREAD() if (Rf_isNull(response) || response.size() == 0) { @@ -205,47 +196,41 @@ std::shared_ptr listToResponse( // The response can either contain: // - bodyFile: String value that names the file that should be streamed // - body: Character vector (which is charToRaw-ed) or raw vector, or NULL - if (std::find(resp_names.begin(), resp_names.end(), "bodyFile") != resp_names.end()) { + if (std::find(resp_names.begin(), resp_names.end(), "bodyFile") != + resp_names.end()) { std::shared_ptr pFDS = std::make_shared(); - FileDataSourceResult ret = pFDS->initialize( - as_cpp(response["bodyFile"]), - as_cpp(response["bodyFileOwned"]) - ); + FileDataSourceResult ret = + pFDS->initialize(as_cpp(response["bodyFile"]), + as_cpp(response["bodyFileOwned"])); if (ret != FDS_OK) { REprintf("%s", pFDS->lastErrorMessage().c_str()); return error_response(pRequest, 500); } pDataSource = pFDS; - } - else if (hasBody && Rf_isString(response["body"])) { - raws responseBytes = package("base")["charToRaw"](response["body"]); + } else if (hasBody && Rf_isString(response["body"])) { + raws responseBytes(package("base")["charToRaw"](response["body"])); pDataSource = std::make_shared( - std::vector(responseBytes.begin(), responseBytes.end())); - } - else if (hasBody) { + std::vector(responseBytes.begin(), responseBytes.end())); + } else if (hasBody) { raws responseBytes(response["body"]); pDataSource = std::make_shared( - std::vector(responseBytes.begin(), responseBytes.end())); + std::vector(responseBytes.begin(), responseBytes.end())); } std::shared_ptr pResp( - new HttpResponse(pRequest, status, statusDesc, pDataSource), - auto_deleter_background - ); + new HttpResponse(pRequest, status, statusDesc, pDataSource), + auto_deleter_background); strings headerNames = responseHeaders.names(); for (R_len_t i = 0; i < responseHeaders.size(); i++) { - pResp->addHeader( - std::string(headerNames[i]), - as_cpp(responseHeaders[i])); + pResp->addHeader(std::string(headerNames[i]), + as_cpp(responseHeaders[i])); } return pResp; } void invokeResponseFun(std::function)> fun, - std::shared_ptr pRequest, - list response) -{ + std::shared_ptr pRequest, list response) { ASSERT_MAIN_THREAD() // new HttpResponse object. The callback will invoke // HttpResponse->writeResponse(). @@ -253,32 +238,24 @@ void invokeResponseFun(std::function)> fun, fun(pResponse); } - // ============================================================================ // Methods // ============================================================================ -RWebApplication::RWebApplication( - function onHeaders, - function onBodyData, - function onRequest, - function onWSOpen, - function onWSMessage, - function onWSClose, - list staticPaths, - list staticPathOptions) : - _onHeaders(onHeaders), _onBodyData(onBodyData), _onRequest(onRequest), - _onWSOpen(onWSOpen), _onWSMessage(onWSMessage), _onWSClose(onWSClose) -{ +RWebApplication::RWebApplication(sexp onHeaders, function onBodyData, + function onRequest, function onWSOpen, + function onWSMessage, function onWSClose, + list staticPaths, list staticPathOptions) + : _onHeaders(onHeaders), _onBodyData(onBodyData), _onRequest(onRequest), + _onWSOpen(onWSOpen), _onWSMessage(onWSMessage), _onWSClose(onWSClose) { ASSERT_MAIN_THREAD() _staticPathManager = StaticPathManager(staticPaths, staticPathOptions); } - -void RWebApplication::onHeaders(std::shared_ptr pRequest, - std::function)> callback) -{ +void RWebApplication::onHeaders( + std::shared_ptr pRequest, + std::function)> callback) { ASSERT_MAIN_THREAD() if (Rf_isNull(_onHeaders)) { std::shared_ptr null_ptr; @@ -291,8 +268,8 @@ void RWebApplication::onHeaders(std::shared_ptr pRequest, // catch it and then send a generic error response. list response; try { - response = _onHeaders(pRequest->env()); - } catch (unwind_exception& e) { + response = list(function(_onHeaders)(pRequest->env())); + } catch (unwind_exception &e) { debug_log("Interrupt occurred in _onHeaders", LOG_INFO); response = errorResponse(); } catch (...) { @@ -307,10 +284,10 @@ void RWebApplication::onHeaders(std::shared_ptr pRequest, callback(pResponse); } -void RWebApplication::onBodyData(std::shared_ptr pRequest, - std::shared_ptr > data, - std::function)> errorCallback) -{ +void RWebApplication::onBodyData( + std::shared_ptr pRequest, + std::shared_ptr> data, + std::function)> errorCallback) { ASSERT_MAIN_THREAD() debug_log("RWebApplication::onBodyData", LOG_DEBUG); @@ -325,9 +302,9 @@ void RWebApplication::onBodyData(std::shared_ptr pRequest, _onBodyData(pRequest->env(), rawVector); } catch (...) { debug_log("Exception occurred in _onBodyData", LOG_INFO); - // Send an error message to the client. It's very possible that getResponse() or more - // calls to onBodyData() will have been scheduled on the main thread - // before the errorCallback is called. + // Send an error message to the client. It's very possible that + // getResponse() or more calls to onBodyData() will have been scheduled on + // the main thread before the errorCallback is called. // // Note that some (most?) clients won't correctly handle a response that's // sent early, before the request is completed. @@ -336,26 +313,26 @@ void RWebApplication::onBodyData(std::shared_ptr pRequest, } } -void RWebApplication::getResponse(std::shared_ptr pRequest, - std::function)> callback) { +void RWebApplication::getResponse( + std::shared_ptr pRequest, + std::function)> callback) { ASSERT_MAIN_THREAD() debug_log("RWebApplication::getResponse", LOG_DEBUG); // Pass callback to R: // invokeResponseFun(callback, pRequest, _1) - std::function* callback_wrapper = new std::function( - std::bind(invokeResponseFun, callback, pRequest, std::placeholders::_1) - ); + std::function *callback_wrapper = new std::function( + std::bind(invokeResponseFun, callback, pRequest, std::placeholders::_1)); - SEXP callback_xptr = PROTECT(R_MakeExternalPtr(callback_wrapper, R_NilValue, R_NilValue)); + SEXP callback_xptr = + PROTECT(R_MakeExternalPtr(callback_wrapper, R_NilValue, R_NilValue)); // We previously encountered an error processing the body. Don't call into // the R call/_onRequest() function. We need to signal the HttpRequest // object to let it know that we had an error. if (pRequest->isResponseScheduled()) { invokeCppCallback(SEXP(list()), callback_xptr); - } - else { + } else { // Call the R call() function, and pass it the callback xptr so it can // asynchronously pass data back to C++. @@ -365,10 +342,10 @@ void RWebApplication::getResponse(std::shared_ptr pRequest, // On the R side, httpuv's call() function will catch errors that happen // in the user-defined call() function, but if an error happens outside of // that scope, or if another uncaught exception happens (like an interrupt - // if Ctrl-C is pressed), then it will bubble up to here, where we'll catch - // it and deal with it. + // if Ctrl-C is pressed), then it will bubble up to here, where we'll + // catch it and deal with it. - } catch (unwind_exception& e) { + } catch (unwind_exception &e) { debug_log("Interrupt occurred in _onRequest", LOG_INFO); invokeCppCallback(SEXP(errorResponse()), callback_xptr); } catch (...) { @@ -390,35 +367,25 @@ void RWebApplication::onWSOpen(std::shared_ptr pRequest, requestToEnv(pRequest, &pRequest->env()); try { - _onWSOpen( - externalize_shared_ptr(pConn), - pRequest->env() - ); - } catch(...) { + _onWSOpen(externalize_shared_ptr(pConn), pRequest->env()); + } catch (...) { error_callback(); } } void RWebApplication::onWSMessage(std::shared_ptr pConn, bool binary, - std::shared_ptr > data, - std::function error_callback) -{ + std::shared_ptr> data, + std::function error_callback) { ASSERT_MAIN_THREAD() try { if (binary) - _onWSMessage( - externalize_shared_ptr(pConn), - binary, - std::vector(data->begin(), data->end()) - ); + _onWSMessage(externalize_shared_ptr(pConn), binary, + std::vector(data->begin(), data->end())); else - _onWSMessage( - externalize_shared_ptr(pConn), - binary, - std::string(data->begin(), data->end()) - ); - } catch(...) { + _onWSMessage(externalize_shared_ptr(pConn), binary, + std::string(data->begin(), data->end())); + } catch (...) { error_callback(); } } @@ -428,7 +395,6 @@ void RWebApplication::onWSClose(std::shared_ptr pConn) { _onWSClose(externalize_shared_ptr(pConn)); } - // ============================================================================ // Static file serving // ============================================================================ @@ -436,9 +402,8 @@ void RWebApplication::onWSClose(std::shared_ptr pConn) { // Unlike most of the methods for an RWebApplication, these ones are called on // the background thread. -std::shared_ptr RWebApplication::staticFileResponse( - std::shared_ptr pRequest -) { +std::shared_ptr +RWebApplication::staticFileResponse(std::shared_ptr pRequest) { ASSERT_BACKGROUND_THREAD() // If there's any Upgrade header, don't try to serve a static file. Just @@ -448,11 +413,12 @@ std::shared_ptr RWebApplication::staticFileResponse( } // Strip off query string - std::pair url_query = splitQueryString(pRequest->url()); + std::pair url_query = + splitQueryString(pRequest->url()); std::string url_path = doDecodeURI(url_query.first, true); std::experimental::optional> sp_pair = - _staticPathManager.matchStaticPath(url_path); + _staticPathManager.matchStaticPath(url_path); if (!sp_pair) { // This was not a static path. Fall through to the R code to handle this @@ -462,9 +428,9 @@ std::shared_ptr RWebApplication::staticFileResponse( // If we get here, we've matched a static path. - const StaticPath& sp = sp_pair->first; + const StaticPath &sp = sp_pair->first; // Note that the subpath may include leading dirs, as in "foo/bar/abc.txt". - const std::string& subpath = sp_pair->second; + const std::string &subpath = sp_pair->second; // This is an excluded path if (*sp.options.exclude) { @@ -483,8 +449,9 @@ std::shared_ptr RWebApplication::staticFileResponse( } // Make sure that there's no message body. - if ((pRequest->hasHeader("Content-Length") && pRequest->getHeader("Content-Length") != "0") - || pRequest->hasHeader("Transfer-Encoding")) { + if ((pRequest->hasHeader("Content-Length") && + pRequest->getHeader("Content-Length") != "0") || + pRequest->hasHeader("Transfer-Encoding")) { return error_response(pRequest, 400); } @@ -494,8 +461,8 @@ std::shared_ptr RWebApplication::staticFileResponse( // at the end of the URL, as in "/foo/..". Paths like "/foo../" or "/..foo/" // are OK. if (url_path.find("/../") != std::string::npos || - (url_path.length() >= 3 && url_path.substr(url_path.length()-3, 3) == "/..") - ) { + (url_path.length() >= 3 && + url_path.substr(url_path.length() - 3, 3) == "/..")) { if (*sp.options.fallthrough) { return std::shared_ptr(); } else { @@ -515,7 +482,8 @@ std::shared_ptr RWebApplication::staticFileResponse( } } - std::shared_ptr pDataSource = std::make_shared(); + std::shared_ptr pDataSource = + std::make_shared(); FileDataSourceResult ret = pDataSource->initialize(local_path, false); if (ret != FDS_OK) { @@ -533,7 +501,8 @@ std::shared_ptr RWebApplication::staticFileResponse( // Use local_path instead of subpath, because if the subpath is "/foo/" and // *(sp.options.indexhtml) is true, then the local_path will be // "/foo/index.html". We need to use the latter to determine mime type. - std::string content_type = find_mime_type(find_extension(basename(local_path))); + std::string content_type = + find_mime_type(find_extension(basename(local_path))); if (content_type == "") { content_type = "application/octet-stream"; } else if (content_type == "text/html") { @@ -548,7 +517,8 @@ std::shared_ptr RWebApplication::staticFileResponse( bool client_cache_is_valid = false; if (pRequest->hasHeader("If-Modified-Since")) { time_t file_mtime = pDataSource->getMtime(); - time_t if_mod_since = parse_http_date_string(pRequest->getHeader("If-Modified-Since")); + time_t if_mod_since = + parse_http_date_string(pRequest->getHeader("If-Modified-Since")); if (file_mtime != 0 && if_mod_since != 0 && file_mtime <= if_mod_since) { client_cache_is_valid = true; @@ -578,14 +548,14 @@ std::shared_ptr RWebApplication::staticFileResponse( } std::shared_ptr pResponse = std::shared_ptr( - new HttpResponse(pRequest, status_code, getStatusDescription(status_code), pDataSource2), - auto_deleter_background - ); + new HttpResponse(pRequest, status_code, getStatusDescription(status_code), + pDataSource2), + auto_deleter_background); - ResponseHeaders& respHeaders = pResponse->headers(); + ResponseHeaders &respHeaders = pResponse->headers(); // Add extra user-specified headers. - const ResponseHeaders& extraRespHeaders = *sp.options.headers; + const ResponseHeaders &extraRespHeaders = *sp.options.headers; if (extraRespHeaders.size() != 0) { ResponseHeaders::const_iterator it; for (it = extraRespHeaders.begin(); it != extraRespHeaders.end(); it++) { @@ -594,8 +564,8 @@ std::shared_ptr RWebApplication::staticFileResponse( // https://tools.ietf.org/html/rfc7232#section-4.1 // (Date is automatically added in the HttpResponse.) if (it->first == "Cache-Control" || it->first == "Content-Location" || - it->first == "ETag" || it->first == "Expires" || it->first == "Vary") - { + it->first == "ETag" || it->first == "Expires" || + it->first == "Vary") { respHeaders.push_back(*it); } @@ -611,14 +581,16 @@ std::shared_ptr RWebApplication::staticFileResponse( // it. If we didn't set it here, the response for the GET would // automatically set the Content-Length (by using the FileDataSource), but // the response for the HEAD would not. - respHeaders.push_back(std::make_pair("Content-Length", toString(pDataSource->size()))); + respHeaders.push_back( + std::make_pair("Content-Length", toString(pDataSource->size()))); respHeaders.push_back(std::make_pair("Content-Type", content_type)); - respHeaders.push_back(std::make_pair("Last-Modified", http_date_string(pDataSource->getMtime()))); + respHeaders.push_back(std::make_pair( + "Last-Modified", http_date_string(pDataSource->getMtime()))); } return pResponse; } -StaticPathManager& RWebApplication::getStaticPathManager() { +StaticPathManager &RWebApplication::getStaticPathManager() { return _staticPathManager; } diff --git a/src/webapplication.h b/src/webapplication.h index d245064f..cdba1c2f 100644 --- a/src/webapplication.h +++ b/src/webapplication.h @@ -1,11 +1,11 @@ #ifndef WEBAPPLICATION_HPP #define WEBAPPLICATION_HPP +#include "staticpath.h" +#include "thread.h" +#include "websockets.h" #include #include -#include "websockets.h" -#include "thread.h" -#include "staticpath.h" #include "cpp11.hpp" @@ -17,30 +17,31 @@ class HttpResponse; class WebApplication { public: virtual ~WebApplication() {} - virtual void onHeaders(std::shared_ptr pRequest, - std::function)> callback) = 0; - virtual void onBodyData(std::shared_ptr pRequest, - std::shared_ptr > data, - std::function)> errorCallback) = 0; - virtual void getResponse(std::shared_ptr request, - std::function)> callback) = 0; + virtual void + onHeaders(std::shared_ptr pRequest, + std::function)> callback) = 0; + virtual void onBodyData( + std::shared_ptr pRequest, + std::shared_ptr> data, + std::function)> errorCallback) = 0; + virtual void + getResponse(std::shared_ptr request, + std::function)> callback) = 0; virtual void onWSOpen(std::shared_ptr pRequest, std::function error_callback) = 0; - virtual void onWSMessage(std::shared_ptr, - bool binary, - std::shared_ptr > data, + virtual void onWSMessage(std::shared_ptr, bool binary, + std::shared_ptr> data, std::function error_callback) = 0; virtual void onWSClose(std::shared_ptr) = 0; - virtual std::shared_ptr staticFileResponse( - std::shared_ptr pRequest) = 0; - virtual StaticPathManager& getStaticPathManager() = 0; + virtual std::shared_ptr + staticFileResponse(std::shared_ptr pRequest) = 0; + virtual StaticPathManager &getStaticPathManager() = 0; }; - class RWebApplication : public WebApplication { private: - function _onHeaders; + sexp _onHeaders; function _onBodyData; function _onRequest; function _onWSOpen; @@ -50,38 +51,32 @@ class RWebApplication : public WebApplication { StaticPathManager _staticPathManager; public: - RWebApplication(function onHeaders, - function onBodyData, - function onRequest, - function onWSOpen, - function onWSMessage, - function onWSClose, - list staticPaths, - list staticPathOptions); + RWebApplication(sexp onHeaders, function onBodyData, function onRequest, + function onWSOpen, function onWSMessage, function onWSClose, + list staticPaths, list staticPathOptions); - virtual ~RWebApplication() { - ASSERT_MAIN_THREAD() - } + virtual ~RWebApplication() { ASSERT_MAIN_THREAD() } - virtual void onHeaders(std::shared_ptr pRequest, - std::function)> callback); - virtual void onBodyData(std::shared_ptr pRequest, - std::shared_ptr > data, - std::function)> errorCallback); - virtual void getResponse(std::shared_ptr request, - std::function)> callback); + virtual void + onHeaders(std::shared_ptr pRequest, + std::function)> callback); + virtual void + onBodyData(std::shared_ptr pRequest, + std::shared_ptr> data, + std::function)> errorCallback); + virtual void + getResponse(std::shared_ptr request, + std::function)> callback); virtual void onWSOpen(std::shared_ptr pRequest, std::function error_callback); virtual void onWSMessage(std::shared_ptr conn, - bool binary, - std::shared_ptr > data, + bool binary, std::shared_ptr> data, std::function error_callback); virtual void onWSClose(std::shared_ptr conn); - virtual std::shared_ptr staticFileResponse( - std::shared_ptr pRequest); - virtual StaticPathManager& getStaticPathManager(); + virtual std::shared_ptr + staticFileResponse(std::shared_ptr pRequest); + virtual StaticPathManager &getStaticPathManager(); }; - #endif // WEBAPPLICATION_HPP From 028b38598818b924e7262604afbb69429d3691b7 Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Wed, 13 May 2026 22:49:55 +0100 Subject: [PATCH 14/20] backup after renaming branch --- .Rbuildignore | 1 + .gitignore | 1 + DESCRIPTION | 5 +- Makefile | 43 + NAMESPACE | 1 - R/cpp11.R | 81 + man/PipeServer.Rd | 129 +- man/Server.Rd | 216 +- man/WebServer.Rd | 129 +- man/WebSocket.Rd | 202 +- man/encodeURI.Rd | 10 +- man/getRNGState.Rd | 5 +- man/ipFamily.Rd | 2 +- man/runStaticServer.Rd | 2 +- scripts/build_r_devel.sh | 59 + scripts/check_loop.sh | 39 + scripts/check_prepare.sh | 13 + scripts/check_r_devel.sh | 130 + scripts/check_restore.sh | 25 + scripts/check_run.sh | 78 + src/auto_deleter.h | 25 +- src/base64/base64.cpp | 17 +- src/base64/base64.hpp | 43 +- src/callback.cpp | 8 +- src/callback.h | 14 +- src/callbackqueue.cpp | 17 +- src/callbackqueue.h | 7 +- src/constants.h | 18 +- src/cpp11.cpp | 184 ++ src/filedatasource-unix.cpp | 27 +- src/filedatasource-win.cpp | 41 +- src/filedatasource.h | 16 +- src/fs.cpp | 4 +- src/gzipdatasource.cpp | 24 +- src/gzipdatasource.h | 3 +- src/http-parser/http_parser.h | 272 +-- src/http.cpp | 121 +- src/http.h | 88 +- src/httprequest.cpp | 389 ++- src/httprequest.h | 169 +- src/httpresponse.cpp | 56 +- src/httpresponse.h | 29 +- src/httpuv.h | 3 +- src/libuv/include/uv.h | 1498 +++++------- src/libuv/include/uv/aix.h | 9 +- src/libuv/include/uv/android-ifaddrs.h | 22 +- src/libuv/include/uv/bsd.h | 9 +- src/libuv/include/uv/darwin.h | 59 +- src/libuv/include/uv/errno.h | 308 ++- src/libuv/include/uv/linux.h | 14 +- src/libuv/include/uv/os390.h | 6 +- src/libuv/include/uv/posix.h | 10 +- src/libuv/include/uv/stdint-msvc2008.h | 252 +- src/libuv/include/uv/sunos.h | 14 +- src/libuv/include/uv/threadpool.h | 4 +- src/libuv/include/uv/tree.h | 1325 +++++----- src/libuv/include/uv/unix.h | 551 ++--- src/libuv/include/uv/version.h | 7 +- src/libuv/include/uv/win.h | 817 +++---- src/libuv/src/heap-inl.h | 61 +- src/libuv/src/idna.h | 6 +- src/libuv/src/queue.h | 141 +- src/libuv/src/strscpy.h | 4 +- src/libuv/src/unix/atomic-ops.h | 26 +- src/libuv/src/unix/darwin-stub.h | 44 +- src/libuv/src/unix/internal.h | 268 +- src/libuv/src/unix/linux-syscalls.h | 27 +- src/libuv/src/unix/os390-syscalls.h | 47 +- src/libuv/src/unix/spinlock.h | 25 +- src/libuv/src/uv-common.h | 395 ++- src/libuv/src/win/atomicops-inl.h | 15 +- src/libuv/src/win/fs-fd-hash-inl.h | 74 +- src/libuv/src/win/handle-inl.h | 209 +- src/libuv/src/win/internal.h | 296 +-- src/libuv/src/win/req-inl.h | 233 +- src/libuv/src/win/stream-inl.h | 14 +- src/libuv/src/win/winapi.h | 2494 ++++++++++--------- src/libuv/src/win/winsock.h | 152 +- src/libuv/test/benchmark-list.h | 270 +- src/libuv/test/runner-unix.h | 8 +- src/libuv/test/runner-win.h | 7 +- src/libuv/test/runner.h | 69 +- src/libuv/test/task.h | 363 ++- src/libuv/test/test-list.h | 1974 +++++++-------- src/md5.h | 8 +- src/mime.cpp | 3110 ++++++++++++------------ src/mime.h | 2 +- src/optional.h | 1229 +++++----- src/sha1/sha1.h | 12 +- src/socket.cpp | 18 +- src/socket.h | 11 +- src/staticpath.cpp | 154 +- src/staticpath.h | 65 +- src/thread.cpp | 8 +- src/thread.h | 40 +- src/timegm.cpp | 48 +- src/tqueue.h | 28 +- src/utils.h | 210 +- src/uvutil.cpp | 33 +- src/websockets-base.cpp | 28 +- src/websockets-base.h | 19 +- src/websockets-hixie76.cpp | 23 +- src/websockets-hixie76.h | 31 +- src/websockets-hybi03.cpp | 74 +- src/websockets-hybi03.h | 16 +- src/websockets-ietf.cpp | 76 +- src/websockets-ietf.h | 12 +- src/websockets.cpp | 320 +-- src/websockets.h | 134 +- src/winutils.cpp | 72 +- src/winutils.h | 6 +- 111 files changed, 10288 insertions(+), 10372 deletions(-) create mode 100644 Makefile create mode 100644 R/cpp11.R create mode 100755 scripts/build_r_devel.sh create mode 100755 scripts/check_loop.sh create mode 100755 scripts/check_prepare.sh create mode 100755 scripts/check_r_devel.sh create mode 100755 scripts/check_restore.sh create mode 100755 scripts/check_run.sh create mode 100644 src/cpp11.cpp diff --git a/.Rbuildignore b/.Rbuildignore index 6d86d346..bbe639ac 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -25,3 +25,4 @@ ^_pkgdown\.yml$ ^docs$ ^pkgdown$ +scripts diff --git a/.gitignore b/.gitignore index 160bec81..ba1fb07d 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ configure.log .vscode *.orig docs +scripts/R-devel diff --git a/DESCRIPTION b/DESCRIPTION index 1766a644..ae0b286f 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -72,15 +72,15 @@ Suggests: websocket LinkingTo: later, - cpp4r + 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: + 'cpp11.R' 'httpuv-package.R' 'httpuv.R' 'random_port.R' @@ -88,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 00000000..8562b4cb --- /dev/null +++ b/Makefile @@ -0,0 +1,43 @@ +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),$(foreach comp,$(COMPILERS),$(eval $(call run-bench,$(std),$(comp))))) +$(foreach std,$(STANDARDS),$(eval check-$(std)-glang: check-$(std)-clang)) +$(foreach std,$(STANDARDS),$(eval bench-$(std)-glang: bench-$(std)-clang)) diff --git a/NAMESPACE b/NAMESPACE index 5200da44..a2d91d6c 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/cpp11.R b/R/cpp11.R new file mode 100644 index 00000000..76e10bee --- /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/man/PipeServer.Rd b/man/PipeServer.Rd index 865b487c..7502667c 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 77c94ae6..74bb83b2 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 2e5d9926..daf83c78 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 cc24d6a7..5e56384e 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 6671c0e9..a71c6e7c 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 5c0ac4d5..cdacef29 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 29b26ddf..2d150f34 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 3da02c59..31e4ec67 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 00000000..171e7d4a --- /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 00000000..cbcc527e --- /dev/null +++ b/scripts/check_loop.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +set -euo pipefail + +rm -f check-results.md + +for std in CXX23 CXX20 CXX17 CXX14 CXX11; do + for compiler in clang gcc; do + echo "===============================" + echo "Checking C++ code with $std standard and $compiler compiler" + + mkdir -p ./check-gcc-clang + + # Set USE_CLANG environment variable for this iteration + if [ "$compiler" = "clang" ]; then + export USE_CLANG=1 + else + unset USE_CLANG || true + fi + + ./scripts/check_prepare.sh "$std" "$compiler" + + touch ./check-gcc-clang/check-results.md + + # Run check, but don't exit on failure + # Pass the current loop's std and compiler so `check_run.sh` can create + # a per-iteration LOG file (avoids overwriting the previous run's log). + 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 00000000..b511ce4e --- /dev/null +++ b/scripts/check_prepare.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -euo pipefail + +std=${1:-CXX11} +std=$(echo "$std" | tr '[:lower:]' '[:upper:]') +compiler=${2:-gcc} + +echo "===============================" +echo "Preparing C++ code with $std standard and $compiler compiler" +echo "" + +# Patch CXX_STD in httpuvtest/src/Makevars +sed -i "s/^CXX_STD = .*/CXX_STD = ${std}/" ./httpuvtest/src/Makevars diff --git a/scripts/check_r_devel.sh b/scripts/check_r_devel.sh new file mode 100755 index 00000000..1d5d34c0 --- /dev/null +++ b/scripts/check_r_devel.sh @@ -0,0 +1,130 @@ +#!/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 (including ~/.Rprofile which loads cpp4r) +export R_PROFILE="" +export R_PROFILE_USER="" +export R_ENVIRON="" +export R_ENVIRON_USER="" + +# Install required packages in R-devel if not present (use --vanilla to avoid loading .Rprofile) +echo "Checking/installing required packages in R-devel..." +"${RSCRIPT_DEVEL}" --vanilla -e ' + pkgs <- c("devtools", "roxygen2", "testthat", "usethis", "decor", "desc", "glue", "tibble", "vctrs", "withr", "pkgbuild") + missing <- pkgs[!sapply(pkgs, requireNamespace, quietly = TRUE)] + if (length(missing) > 0) { + install.packages(missing, repos = "https://cloud.r-project.org") + } +' + +# Install cpp4r from local source using R CMD INSTALL +echo "Installing cpp4r into R-devel..." +CPP4R_TARBALL=$("${R_DEVEL}" CMD build --no-manual . 2>/dev/null | grep -oP "^\* creating '\K[^']+" || true) +if [ -z "${CPP4R_TARBALL}" ] || [ ! -f "${CPP4R_TARBALL}" ]; then + # Fallback: find the tarball + CPP4R_TARBALL=$(ls -t cpp4r_*.tar.gz 2>/dev/null | head -1) +fi +if [ -z "${CPP4R_TARBALL}" ] || [ ! -f "${CPP4R_TARBALL}" ]; then + echo "ERROR: Failed to build cpp4r tarball" + exit 1 +fi +echo "Built tarball: ${CPP4R_TARBALL}" +"${R_DEVEL}" CMD INSTALL "${CPP4R_TARBALL}" +rm -f "${CPP4R_TARBALL}" + +# Export CXX_STD for configure script +export CXX_STD="${std}" + +# Set compiler +if [ "$compiler" = "clang" ]; then + export USE_CLANG=1 +else + unset USE_CLANG || true +fi + +# 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 + +# Register and document the test package using R-devel +echo "Registering httpuvtest with R-devel..." +"${RSCRIPT_DEVEL}" --vanilla -e 'cpp4r::register("./httpuvtest")' + +echo "Documenting httpuvtest with R-devel..." +"${RSCRIPT_DEVEL}" --vanilla -e 'devtools::document("./httpuvtest")' + +# Build package tarball using R-devel +echo "Building tarball with R-devel..." +TARBALL=$("${RSCRIPT_DEVEL}" --vanilla -e 'cat(devtools::build("./httpuvtest", quiet = TRUE))') +if [ -z "${TARBALL}" ]; then + echo "Failed to build tarball for httpuvtest." + 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..." +CXX_STD="${std}" "${R_DEVEL}" CMD check --as-cran --no-manual "${TARBALL}" || true + +# If there was an error, copy the install log for inspection +if [ -f "./httpuvtest.Rcheck/00install.out" ]; then + cp "./httpuvtest.Rcheck/00install.out" "./check-r-devel/install-${std}-${compiler}-devel.log" + echo "=== BEGIN 00install.out ===" + cat "./httpuvtest.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 + +# Cleanup +rm -f "${TARBALL}" +rm -rf ./httpuvtest.Rcheck || true + +echo "===============================" +echo "R-devel check complete." +echo "===============================" diff --git a/scripts/check_restore.sh b/scripts/check_restore.sh new file mode 100755 index 00000000..9b32c3d9 --- /dev/null +++ b/scripts/check_restore.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Accept std as first arg, default to CXX11 +std=${1:-CXX11} +std=$(echo "$std" | tr '[:lower:]' '[:upper:]') +compiler=${2:-gcc} + +echo "Restoring files for $std and $compiler" + +# Convert std to C++ format for DESCRIPTION (e.g., CXX20 -> C++20) +if [ "$std" = "CXX11" ]; then cpp_std="C++11" +elif [ "$std" = "CXX14" ]; then cpp_std="C++14" +elif [ "$std" = "CXX17" ]; then cpp_std="C++17" +elif [ "$std" = "CXX20" ]; then cpp_std="C++20" +elif [ "$std" = "CXX23" ]; then cpp_std="C++23" +else cpp_std="$std"; fi + +# Restore Makevars to defaults +sed -i 's/^CXX_STD = .*/CXX_STD = CXX23/' ./httpuvtest/src/Makevars +# Remove any leftover clang block from a previous prepare run +sed -i '/# cpp4r-check-clang-begin/,/# cpp4r-check-clang-end/d' ./httpuvtest/src/Makevars + +# Clear check files +rm -rf ./httpuvtest.Rcheck || true diff --git a/scripts/check_run.sh b/scripts/check_run.sh new file mode 100755 index 00000000..a1404be8 --- /dev/null +++ b/scripts/check_run.sh @@ -0,0 +1,78 @@ +#!/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 + +# Run the bench script (will exit on error) +Rscript -e 'cpp4r::register("./httpuvtest")' +Rscript -e 'devtools::document("./httpuvtest")' + +# Build package tarball first (devtools::build returns path) +TARBALL=$(Rscript -e 'cat(devtools::build("./httpuvtest", quiet = TRUE))') +if [ -z "${TARBALL}" ]; then + echo "Failed to build tarball for httpuvtest." + 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 "./httpuvtest.Rcheck/00install.out" ]; then + cp "./httpuvtest.Rcheck/00install.out" "./check-gcc-clang/install-${std}-${compiler}.log" + echo "=== BEGIN 00install.out ===" + cat "./httpuvtest.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." + # Print a short excerpt for convenience + grep -n "\bERROR\b" -n "${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/auto_deleter.h b/src/auto_deleter.h index 9a618c35..1e04084f 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 63a999a9..4770ec2f 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 852bc144..6fe05ec8 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 fe1c2bf5..299a08d6 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 b9e47b33..5a03ee0d 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 fb976c7c..d3078dce 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 9596d921..b5d770ad 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 a7bc98bb..5e9fed77 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 00000000..b2851c01 --- /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 6db06829..88263a1d 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 e5366966..9007c5a7 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 d32ac0b0..9428132d 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 108ae89f..25cbe419 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 a6cb789b..3655a39b 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 382153c0..fd5960d0 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 eafc19ad..20d2a0e1 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 d21e3389..bde09c44 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 027e1af4..a76ff3b8 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,67 +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); +uv_stream_t *createPipeServer(uv_loop_t *loop, const std::string &name, + int mask, + 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 *createTcpServer(uv_loop_t *loop, const std::string &host, int port, + 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); +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 freeServer(uv_stream_t* pServer); -bool runNonBlocking(uv_loop_t* loop); +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); +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 external_pointer. When the external_pointer 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 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, - auto_deleter_background>> -externalize_shared_ptr(std::shared_ptr obj) -{ +// 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 = new std::shared_ptr(obj); - return external_pointer, - auto_deleter_background>>(obj_copy, true, true); + 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 cd0dd758..0fd45c7f 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,9 +139,7 @@ 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() { @@ -156,12 +152,11 @@ void HttpRequest::_initializeEnv() { // background thread; auto_deleter_main() schedules the deletion of the // environment object on the main thread. _env = std::shared_ptr( - new environment(new_env("parent"_nm = R_EmptyEnv)), - auto_deleter_main - ); + new environment(new_env("parent"_nm = R_EmptyEnv)), + auto_deleter_main); } -environment& HttpRequest::env() { +environment &HttpRequest::env() { ASSERT_MAIN_THREAD() return *_env; } @@ -170,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() @@ -195,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); @@ -232,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); @@ -298,9 +291,7 @@ void HttpRequest::updateUpgradeStatus() { }; } -bool HttpRequest::isUpgrade() const { - return _is_upgrade; -} +bool HttpRequest::isUpgrade() const { return _is_upgrade; } // ============================================================================ // Headers complete @@ -313,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(); @@ -321,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; } @@ -357,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: @@ -395,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; } @@ -406,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(); } } @@ -427,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) { @@ -479,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); @@ -498,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); @@ -546,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; } @@ -554,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 @@ -582,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) { @@ -605,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); } @@ -647,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); @@ -695,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()); @@ -715,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 // ============================================================================ @@ -729,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); @@ -746,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); @@ -778,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; @@ -791,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); } @@ -814,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) { @@ -824,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(); } } @@ -845,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) { @@ -856,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); @@ -866,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 { @@ -885,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 51ad593d..e101c0d7 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; @@ -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(); - 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 c2a1c087..168740c9 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 ed7b78f9..e09cd6b3 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.h b/src/httpuv.h index bdcda064..b7709892 100644 --- a/src/httpuv.h +++ b/src/httpuv.h @@ -1,12 +1,11 @@ #ifndef HTTPUV_HPP #define HTTPUV_HPP -#include #include "cpp11.hpp" +#include using namespace cpp11; - void invokeCppCallback(SEXP data, SEXP callback_xptr); std::string doEncodeURI(std::string value, bool encodeReserved); diff --git a/src/libuv/include/uv.h b/src/libuv/include/uv.h index 606083c8..7281fa6b 100644 --- a/src/libuv/include/uv.h +++ b/src/libuv/include/uv.h @@ -32,23 +32,23 @@ extern "C" { #endif #ifdef _WIN32 - /* Windows - set up dll import/export decorators. */ -# if defined(BUILDING_UV_SHARED) - /* Building shared library. */ -# define UV_EXTERN __declspec(dllexport) -# elif defined(USING_UV_SHARED) - /* Using shared library. */ -# define UV_EXTERN __declspec(dllimport) -# else - /* Building static library. */ -# define UV_EXTERN /* nothing */ -# endif +/* Windows - set up dll import/export decorators. */ +#if defined(BUILDING_UV_SHARED) +/* Building shared library. */ +#define UV_EXTERN __declspec(dllexport) +#elif defined(USING_UV_SHARED) +/* Using shared library. */ +#define UV_EXTERN __declspec(dllimport) +#else +/* Building static library. */ +#define UV_EXTERN /* nothing */ +#endif #elif __GNUC__ >= 4 -# define UV_EXTERN __attribute__((visibility("default"))) +#define UV_EXTERN __attribute__((visibility("default"))) #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) /* Sun Studio >= 8 */ -# define UV_EXTERN __global +#define UV_EXTERN __global #else -# define UV_EXTERN /* nothing */ +#define UV_EXTERN /* nothing */ #endif #include "uv/errno.h" @@ -57,137 +57,137 @@ extern "C" { #include #if defined(_MSC_VER) && _MSC_VER < 1600 -# include "uv/stdint-msvc2008.h" +#include "uv/stdint-msvc2008.h" #else -# include +#include #endif #if defined(_WIN32) -# include "uv/win.h" +#include "uv/win.h" #else -# include "uv/unix.h" +#include "uv/unix.h" #endif /* Expand this list if necessary. */ -#define UV_ERRNO_MAP(XX) \ - XX(E2BIG, "argument list too long") \ - XX(EACCES, "permission denied") \ - XX(EADDRINUSE, "address already in use") \ - XX(EADDRNOTAVAIL, "address not available") \ - XX(EAFNOSUPPORT, "address family not supported") \ - XX(EAGAIN, "resource temporarily unavailable") \ - XX(EAI_ADDRFAMILY, "address family not supported") \ - XX(EAI_AGAIN, "temporary failure") \ - XX(EAI_BADFLAGS, "bad ai_flags value") \ - XX(EAI_BADHINTS, "invalid value for hints") \ - XX(EAI_CANCELED, "request canceled") \ - XX(EAI_FAIL, "permanent failure") \ - XX(EAI_FAMILY, "ai_family not supported") \ - XX(EAI_MEMORY, "out of memory") \ - XX(EAI_NODATA, "no address") \ - XX(EAI_NONAME, "unknown node or service") \ - XX(EAI_OVERFLOW, "argument buffer overflow") \ - XX(EAI_PROTOCOL, "resolved protocol is unknown") \ - XX(EAI_SERVICE, "service not available for socket type") \ - XX(EAI_SOCKTYPE, "socket type not supported") \ - XX(EALREADY, "connection already in progress") \ - XX(EBADF, "bad file descriptor") \ - XX(EBUSY, "resource busy or locked") \ - XX(ECANCELED, "operation canceled") \ - XX(ECHARSET, "invalid Unicode character") \ - XX(ECONNABORTED, "software caused connection abort") \ - XX(ECONNREFUSED, "connection refused") \ - XX(ECONNRESET, "connection reset by peer") \ - XX(EDESTADDRREQ, "destination address required") \ - XX(EEXIST, "file already exists") \ - XX(EFAULT, "bad address in system call argument") \ - XX(EFBIG, "file too large") \ - XX(EHOSTUNREACH, "host is unreachable") \ - XX(EINTR, "interrupted system call") \ - XX(EINVAL, "invalid argument") \ - XX(EIO, "i/o error") \ - XX(EISCONN, "socket is already connected") \ - XX(EISDIR, "illegal operation on a directory") \ - XX(ELOOP, "too many symbolic links encountered") \ - XX(EMFILE, "too many open files") \ - XX(EMSGSIZE, "message too long") \ - XX(ENAMETOOLONG, "name too long") \ - XX(ENETDOWN, "network is down") \ - XX(ENETUNREACH, "network is unreachable") \ - XX(ENFILE, "file table overflow") \ - XX(ENOBUFS, "no buffer space available") \ - XX(ENODEV, "no such device") \ - XX(ENOENT, "no such file or directory") \ - XX(ENOMEM, "not enough memory") \ - XX(ENONET, "machine is not on the network") \ - XX(ENOPROTOOPT, "protocol not available") \ - XX(ENOSPC, "no space left on device") \ - XX(ENOSYS, "function not implemented") \ - XX(ENOTCONN, "socket is not connected") \ - XX(ENOTDIR, "not a directory") \ - XX(ENOTEMPTY, "directory not empty") \ - XX(ENOTSOCK, "socket operation on non-socket") \ - XX(ENOTSUP, "operation not supported on socket") \ - XX(EOVERFLOW, "value too large for defined data type") \ - XX(EPERM, "operation not permitted") \ - XX(EPIPE, "broken pipe") \ - XX(EPROTO, "protocol error") \ - XX(EPROTONOSUPPORT, "protocol not supported") \ - XX(EPROTOTYPE, "protocol wrong type for socket") \ - XX(ERANGE, "result too large") \ - XX(EROFS, "read-only file system") \ - XX(ESHUTDOWN, "cannot send after transport endpoint shutdown") \ - XX(ESPIPE, "invalid seek") \ - XX(ESRCH, "no such process") \ - XX(ETIMEDOUT, "connection timed out") \ - XX(ETXTBSY, "text file is busy") \ - XX(EXDEV, "cross-device link not permitted") \ - XX(UNKNOWN, "unknown error") \ - XX(EOF, "end of file") \ - XX(ENXIO, "no such device or address") \ - XX(EMLINK, "too many links") \ - XX(EHOSTDOWN, "host is down") \ - XX(EREMOTEIO, "remote I/O error") \ - XX(ENOTTY, "inappropriate ioctl for device") \ - XX(EFTYPE, "inappropriate file type or format") \ - XX(EILSEQ, "illegal byte sequence") \ - XX(ESOCKTNOSUPPORT, "socket type not supported") \ - -#define UV_HANDLE_TYPE_MAP(XX) \ - XX(ASYNC, async) \ - XX(CHECK, check) \ - XX(FS_EVENT, fs_event) \ - XX(FS_POLL, fs_poll) \ - XX(HANDLE, handle) \ - XX(IDLE, idle) \ - XX(NAMED_PIPE, pipe) \ - XX(POLL, poll) \ - XX(PREPARE, prepare) \ - XX(PROCESS, process) \ - XX(STREAM, stream) \ - XX(TCP, tcp) \ - XX(TIMER, timer) \ - XX(TTY, tty) \ - XX(UDP, udp) \ - XX(SIGNAL, signal) \ - -#define UV_REQ_TYPE_MAP(XX) \ - XX(REQ, req) \ - XX(CONNECT, connect) \ - XX(WRITE, write) \ - XX(SHUTDOWN, shutdown) \ - XX(UDP_SEND, udp_send) \ - XX(FS, fs) \ - XX(WORK, work) \ - XX(GETADDRINFO, getaddrinfo) \ - XX(GETNAMEINFO, getnameinfo) \ - XX(RANDOM, random) \ +#define UV_ERRNO_MAP(XX) \ + XX(E2BIG, "argument list too long") \ + XX(EACCES, "permission denied") \ + XX(EADDRINUSE, "address already in use") \ + XX(EADDRNOTAVAIL, "address not available") \ + XX(EAFNOSUPPORT, "address family not supported") \ + XX(EAGAIN, "resource temporarily unavailable") \ + XX(EAI_ADDRFAMILY, "address family not supported") \ + XX(EAI_AGAIN, "temporary failure") \ + XX(EAI_BADFLAGS, "bad ai_flags value") \ + XX(EAI_BADHINTS, "invalid value for hints") \ + XX(EAI_CANCELED, "request canceled") \ + XX(EAI_FAIL, "permanent failure") \ + XX(EAI_FAMILY, "ai_family not supported") \ + XX(EAI_MEMORY, "out of memory") \ + XX(EAI_NODATA, "no address") \ + XX(EAI_NONAME, "unknown node or service") \ + XX(EAI_OVERFLOW, "argument buffer overflow") \ + XX(EAI_PROTOCOL, "resolved protocol is unknown") \ + XX(EAI_SERVICE, "service not available for socket type") \ + XX(EAI_SOCKTYPE, "socket type not supported") \ + XX(EALREADY, "connection already in progress") \ + XX(EBADF, "bad file descriptor") \ + XX(EBUSY, "resource busy or locked") \ + XX(ECANCELED, "operation canceled") \ + XX(ECHARSET, "invalid Unicode character") \ + XX(ECONNABORTED, "software caused connection abort") \ + XX(ECONNREFUSED, "connection refused") \ + XX(ECONNRESET, "connection reset by peer") \ + XX(EDESTADDRREQ, "destination address required") \ + XX(EEXIST, "file already exists") \ + XX(EFAULT, "bad address in system call argument") \ + XX(EFBIG, "file too large") \ + XX(EHOSTUNREACH, "host is unreachable") \ + XX(EINTR, "interrupted system call") \ + XX(EINVAL, "invalid argument") \ + XX(EIO, "i/o error") \ + XX(EISCONN, "socket is already connected") \ + XX(EISDIR, "illegal operation on a directory") \ + XX(ELOOP, "too many symbolic links encountered") \ + XX(EMFILE, "too many open files") \ + XX(EMSGSIZE, "message too long") \ + XX(ENAMETOOLONG, "name too long") \ + XX(ENETDOWN, "network is down") \ + XX(ENETUNREACH, "network is unreachable") \ + XX(ENFILE, "file table overflow") \ + XX(ENOBUFS, "no buffer space available") \ + XX(ENODEV, "no such device") \ + XX(ENOENT, "no such file or directory") \ + XX(ENOMEM, "not enough memory") \ + XX(ENONET, "machine is not on the network") \ + XX(ENOPROTOOPT, "protocol not available") \ + XX(ENOSPC, "no space left on device") \ + XX(ENOSYS, "function not implemented") \ + XX(ENOTCONN, "socket is not connected") \ + XX(ENOTDIR, "not a directory") \ + XX(ENOTEMPTY, "directory not empty") \ + XX(ENOTSOCK, "socket operation on non-socket") \ + XX(ENOTSUP, "operation not supported on socket") \ + XX(EOVERFLOW, "value too large for defined data type") \ + XX(EPERM, "operation not permitted") \ + XX(EPIPE, "broken pipe") \ + XX(EPROTO, "protocol error") \ + XX(EPROTONOSUPPORT, "protocol not supported") \ + XX(EPROTOTYPE, "protocol wrong type for socket") \ + XX(ERANGE, "result too large") \ + XX(EROFS, "read-only file system") \ + XX(ESHUTDOWN, "cannot send after transport endpoint shutdown") \ + XX(ESPIPE, "invalid seek") \ + XX(ESRCH, "no such process") \ + XX(ETIMEDOUT, "connection timed out") \ + XX(ETXTBSY, "text file is busy") \ + XX(EXDEV, "cross-device link not permitted") \ + XX(UNKNOWN, "unknown error") \ + XX(EOF, "end of file") \ + XX(ENXIO, "no such device or address") \ + XX(EMLINK, "too many links") \ + XX(EHOSTDOWN, "host is down") \ + XX(EREMOTEIO, "remote I/O error") \ + XX(ENOTTY, "inappropriate ioctl for device") \ + XX(EFTYPE, "inappropriate file type or format") \ + XX(EILSEQ, "illegal byte sequence") \ + XX(ESOCKTNOSUPPORT, "socket type not supported") + +#define UV_HANDLE_TYPE_MAP(XX) \ + XX(ASYNC, async) \ + XX(CHECK, check) \ + XX(FS_EVENT, fs_event) \ + XX(FS_POLL, fs_poll) \ + XX(HANDLE, handle) \ + XX(IDLE, idle) \ + XX(NAMED_PIPE, pipe) \ + XX(POLL, poll) \ + XX(PREPARE, prepare) \ + XX(PROCESS, process) \ + XX(STREAM, stream) \ + XX(TCP, tcp) \ + XX(TIMER, timer) \ + XX(TTY, tty) \ + XX(UDP, udp) \ + XX(SIGNAL, signal) + +#define UV_REQ_TYPE_MAP(XX) \ + XX(REQ, req) \ + XX(CONNECT, connect) \ + XX(WRITE, write) \ + XX(SHUTDOWN, shutdown) \ + XX(UDP_SEND, udp_send) \ + XX(FS, fs) \ + XX(WORK, work) \ + XX(GETADDRINFO, getaddrinfo) \ + XX(GETNAMEINFO, getnameinfo) \ + XX(RANDOM, random) typedef enum { -#define XX(code, _) UV_ ## code = UV__ ## code, +#define XX(code, _) UV_##code = UV__##code, UV_ERRNO_MAP(XX) #undef XX - UV_ERRNO_MAX = UV__EOF - 1 + UV_ERRNO_MAX = UV__EOF - 1 } uv_errno_t; typedef enum { @@ -195,7 +195,7 @@ typedef enum { #define XX(uc, lc) UV_##uc, UV_HANDLE_TYPE_MAP(XX) #undef XX - UV_FILE, + UV_FILE, UV_HANDLE_TYPE_MAX } uv_handle_type; @@ -204,11 +204,9 @@ typedef enum { #define XX(uc, lc) UV_##uc, UV_REQ_TYPE_MAP(XX) #undef XX - UV_REQ_TYPE_PRIVATE - UV_REQ_TYPE_MAX + UV_REQ_TYPE_PRIVATE UV_REQ_TYPE_MAX } uv_req_type; - /* Handle types. */ typedef struct uv_loop_s uv_loop_t; typedef struct uv_handle_s uv_handle_t; @@ -250,25 +248,17 @@ typedef struct uv_passwd_s uv_passwd_t; typedef struct uv_utsname_s uv_utsname_t; typedef struct uv_statfs_s uv_statfs_t; -typedef enum { - UV_LOOP_BLOCK_SIGNAL = 0, - UV_METRICS_IDLE_TIME -} uv_loop_option; - -typedef enum { - UV_RUN_DEFAULT = 0, - UV_RUN_ONCE, - UV_RUN_NOWAIT -} uv_run_mode; +typedef enum { UV_LOOP_BLOCK_SIGNAL = 0, UV_METRICS_IDLE_TIME } uv_loop_option; +typedef enum { UV_RUN_DEFAULT = 0, UV_RUN_ONCE, UV_RUN_NOWAIT } uv_run_mode; UV_EXTERN unsigned int uv_version(void); -UV_EXTERN const char* uv_version_string(void); +UV_EXTERN const char *uv_version_string(void); -typedef void* (*uv_malloc_func)(size_t size); -typedef void* (*uv_realloc_func)(void* ptr, size_t size); -typedef void* (*uv_calloc_func)(size_t count, size_t size); -typedef void (*uv_free_func)(void* ptr); +typedef void *(*uv_malloc_func)(size_t size); +typedef void *(*uv_realloc_func)(void *ptr, size_t size); +typedef void *(*uv_calloc_func)(size_t count, size_t size); +typedef void (*uv_free_func)(void *ptr); UV_EXTERN void uv_library_shutdown(void); @@ -277,71 +267,65 @@ UV_EXTERN int uv_replace_allocator(uv_malloc_func malloc_func, uv_calloc_func calloc_func, uv_free_func free_func); -UV_EXTERN uv_loop_t* uv_default_loop(void); -UV_EXTERN int uv_loop_init(uv_loop_t* loop); -UV_EXTERN int uv_loop_close(uv_loop_t* loop); +UV_EXTERN uv_loop_t *uv_default_loop(void); +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 * allocate the loop manually and use uv_loop_init instead. */ -UV_EXTERN uv_loop_t* uv_loop_new(void); +UV_EXTERN uv_loop_t *uv_loop_new(void); /* * NOTE: * This function is DEPRECATED (to be removed after 0.12). Users should use * uv_loop_close and free the memory manually instead. */ -UV_EXTERN void uv_loop_delete(uv_loop_t*); +UV_EXTERN void uv_loop_delete(uv_loop_t *); UV_EXTERN size_t uv_loop_size(void); -UV_EXTERN int uv_loop_alive(const uv_loop_t* loop); -UV_EXTERN int uv_loop_configure(uv_loop_t* loop, uv_loop_option option, ...); -UV_EXTERN int uv_loop_fork(uv_loop_t* loop); - -UV_EXTERN int uv_run(uv_loop_t*, uv_run_mode mode); -UV_EXTERN void uv_stop(uv_loop_t*); - -UV_EXTERN void uv_ref(uv_handle_t*); -UV_EXTERN void uv_unref(uv_handle_t*); -UV_EXTERN int uv_has_ref(const uv_handle_t*); - -UV_EXTERN void uv_update_time(uv_loop_t*); -UV_EXTERN uint64_t uv_now(const uv_loop_t*); - -UV_EXTERN int uv_backend_fd(const uv_loop_t*); -UV_EXTERN int uv_backend_timeout(const uv_loop_t*); - -typedef void (*uv_alloc_cb)(uv_handle_t* handle, - size_t suggested_size, - uv_buf_t* buf); -typedef void (*uv_read_cb)(uv_stream_t* stream, - ssize_t nread, - const uv_buf_t* buf); -typedef void (*uv_write_cb)(uv_write_t* req, int status); -typedef void (*uv_connect_cb)(uv_connect_t* req, int status); -typedef void (*uv_shutdown_cb)(uv_shutdown_t* req, int status); -typedef void (*uv_connection_cb)(uv_stream_t* server, int status); -typedef void (*uv_close_cb)(uv_handle_t* handle); -typedef void (*uv_poll_cb)(uv_poll_t* handle, int status, int events); -typedef void (*uv_timer_cb)(uv_timer_t* handle); -typedef void (*uv_async_cb)(uv_async_t* handle); -typedef void (*uv_prepare_cb)(uv_prepare_t* handle); -typedef void (*uv_check_cb)(uv_check_t* handle); -typedef void (*uv_idle_cb)(uv_idle_t* handle); -typedef void (*uv_exit_cb)(uv_process_t*, int64_t exit_status, int term_signal); -typedef void (*uv_walk_cb)(uv_handle_t* handle, void* arg); -typedef void (*uv_fs_cb)(uv_fs_t* req); -typedef void (*uv_work_cb)(uv_work_t* req); -typedef void (*uv_after_work_cb)(uv_work_t* req, int status); -typedef void (*uv_getaddrinfo_cb)(uv_getaddrinfo_t* req, - int status, - struct addrinfo* res); -typedef void (*uv_getnameinfo_cb)(uv_getnameinfo_t* req, - int status, - const char* hostname, - const char* service); -typedef void (*uv_random_cb)(uv_random_t* req, - int status, - void* buf, +UV_EXTERN int uv_loop_alive(const uv_loop_t *loop); +UV_EXTERN int uv_loop_configure(uv_loop_t *loop, uv_loop_option option, ...); +UV_EXTERN int uv_loop_fork(uv_loop_t *loop); + +UV_EXTERN int uv_run(uv_loop_t *, uv_run_mode mode); +UV_EXTERN void uv_stop(uv_loop_t *); + +UV_EXTERN void uv_ref(uv_handle_t *); +UV_EXTERN void uv_unref(uv_handle_t *); +UV_EXTERN int uv_has_ref(const uv_handle_t *); + +UV_EXTERN void uv_update_time(uv_loop_t *); +UV_EXTERN uint64_t uv_now(const uv_loop_t *); + +UV_EXTERN int uv_backend_fd(const uv_loop_t *); +UV_EXTERN int uv_backend_timeout(const uv_loop_t *); + +typedef void (*uv_alloc_cb)(uv_handle_t *handle, size_t suggested_size, + uv_buf_t *buf); +typedef void (*uv_read_cb)(uv_stream_t *stream, ssize_t nread, + const uv_buf_t *buf); +typedef void (*uv_write_cb)(uv_write_t *req, int status); +typedef void (*uv_connect_cb)(uv_connect_t *req, int status); +typedef void (*uv_shutdown_cb)(uv_shutdown_t *req, int status); +typedef void (*uv_connection_cb)(uv_stream_t *server, int status); +typedef void (*uv_close_cb)(uv_handle_t *handle); +typedef void (*uv_poll_cb)(uv_poll_t *handle, int status, int events); +typedef void (*uv_timer_cb)(uv_timer_t *handle); +typedef void (*uv_async_cb)(uv_async_t *handle); +typedef void (*uv_prepare_cb)(uv_prepare_t *handle); +typedef void (*uv_check_cb)(uv_check_t *handle); +typedef void (*uv_idle_cb)(uv_idle_t *handle); +typedef void (*uv_exit_cb)(uv_process_t *, int64_t exit_status, + int term_signal); +typedef void (*uv_walk_cb)(uv_handle_t *handle, void *arg); +typedef void (*uv_fs_cb)(uv_fs_t *req); +typedef void (*uv_work_cb)(uv_work_t *req); +typedef void (*uv_after_work_cb)(uv_work_t *req, int status); +typedef void (*uv_getaddrinfo_cb)(uv_getaddrinfo_t *req, int status, + struct addrinfo *res); +typedef void (*uv_getnameinfo_cb)(uv_getnameinfo_t *req, int status, + const char *hostname, const char *service); +typedef void (*uv_random_cb)(uv_random_t *req, int status, void *buf, size_t buflen); typedef struct { @@ -349,7 +333,6 @@ typedef struct { long tv_nsec; } uv_timespec_t; - typedef struct { uint64_t st_dev; uint64_t st_mode; @@ -369,80 +352,65 @@ typedef struct { uv_timespec_t st_birthtim; } uv_stat_t; +typedef void (*uv_fs_event_cb)(uv_fs_event_t *handle, const char *filename, + int events, int status); -typedef void (*uv_fs_event_cb)(uv_fs_event_t* handle, - const char* filename, - int events, - int status); +typedef void (*uv_fs_poll_cb)(uv_fs_poll_t *handle, int status, + const uv_stat_t *prev, const uv_stat_t *curr); -typedef void (*uv_fs_poll_cb)(uv_fs_poll_t* handle, - int status, - const uv_stat_t* prev, - const uv_stat_t* curr); - -typedef void (*uv_signal_cb)(uv_signal_t* handle, int signum); - - -typedef enum { - UV_LEAVE_GROUP = 0, - UV_JOIN_GROUP -} uv_membership; +typedef void (*uv_signal_cb)(uv_signal_t *handle, int signum); +typedef enum { UV_LEAVE_GROUP = 0, UV_JOIN_GROUP } uv_membership; UV_EXTERN int uv_translate_sys_error(int sys_errno); -UV_EXTERN const char* uv_strerror(int err); -UV_EXTERN char* uv_strerror_r(int err, char* buf, size_t buflen); +UV_EXTERN const char *uv_strerror(int err); +UV_EXTERN char *uv_strerror_r(int err, char *buf, size_t buflen); -UV_EXTERN const char* uv_err_name(int err); -UV_EXTERN char* uv_err_name_r(int err, char* buf, size_t buflen); +UV_EXTERN const char *uv_err_name(int err); +UV_EXTERN char *uv_err_name_r(int err, char *buf, size_t buflen); - -#define UV_REQ_FIELDS \ - /* public */ \ - void* data; \ - /* read-only */ \ - uv_req_type type; \ - /* private */ \ - void* reserved[6]; \ - UV_REQ_PRIVATE_FIELDS \ +#define UV_REQ_FIELDS \ + /* public */ \ + void *data; \ + /* read-only */ \ + uv_req_type type; \ + /* private */ \ + void *reserved[6]; \ + UV_REQ_PRIVATE_FIELDS /* Abstract base class of all requests. */ struct uv_req_s { UV_REQ_FIELDS }; - /* Platform-specific request types. */ UV_PRIVATE_REQ_TYPES - -UV_EXTERN int uv_shutdown(uv_shutdown_t* req, - uv_stream_t* handle, +UV_EXTERN int uv_shutdown(uv_shutdown_t *req, uv_stream_t *handle, uv_shutdown_cb cb); struct uv_shutdown_s { UV_REQ_FIELDS - uv_stream_t* handle; + uv_stream_t *handle; uv_shutdown_cb cb; UV_SHUTDOWN_PRIVATE_FIELDS }; - -#define UV_HANDLE_FIELDS \ - /* public */ \ - void* data; \ - /* read-only */ \ - uv_loop_t* loop; \ - uv_handle_type type; \ - /* private */ \ - uv_close_cb close_cb; \ - void* handle_queue[2]; \ - union { \ - int fd; \ - void* reserved[4]; \ - } u; \ - UV_HANDLE_PRIVATE_FIELDS \ +#define UV_HANDLE_FIELDS \ + /* public */ \ + void *data; \ + /* read-only */ \ + uv_loop_t *loop; \ + uv_handle_type type; \ + /* private */ \ + uv_close_cb close_cb; \ + void *handle_queue[2]; \ + union { \ + int fd; \ + void *reserved[4]; \ + } u; \ + UV_HANDLE_PRIVATE_FIELDS /* The abstract base class of all handles. */ struct uv_handle_s { @@ -450,48 +418,46 @@ struct uv_handle_s { }; UV_EXTERN size_t uv_handle_size(uv_handle_type type); -UV_EXTERN uv_handle_type uv_handle_get_type(const uv_handle_t* handle); -UV_EXTERN const char* uv_handle_type_name(uv_handle_type type); -UV_EXTERN void* uv_handle_get_data(const uv_handle_t* handle); -UV_EXTERN uv_loop_t* uv_handle_get_loop(const uv_handle_t* handle); -UV_EXTERN void uv_handle_set_data(uv_handle_t* handle, void* data); +UV_EXTERN uv_handle_type uv_handle_get_type(const uv_handle_t *handle); +UV_EXTERN const char *uv_handle_type_name(uv_handle_type type); +UV_EXTERN void *uv_handle_get_data(const uv_handle_t *handle); +UV_EXTERN uv_loop_t *uv_handle_get_loop(const uv_handle_t *handle); +UV_EXTERN void uv_handle_set_data(uv_handle_t *handle, void *data); UV_EXTERN size_t uv_req_size(uv_req_type type); -UV_EXTERN void* uv_req_get_data(const uv_req_t* req); -UV_EXTERN void uv_req_set_data(uv_req_t* req, void* data); -UV_EXTERN uv_req_type uv_req_get_type(const uv_req_t* req); -UV_EXTERN const char* uv_req_type_name(uv_req_type type); +UV_EXTERN void *uv_req_get_data(const uv_req_t *req); +UV_EXTERN void uv_req_set_data(uv_req_t *req, void *data); +UV_EXTERN uv_req_type uv_req_get_type(const uv_req_t *req); +UV_EXTERN const char *uv_req_type_name(uv_req_type type); -UV_EXTERN int uv_is_active(const uv_handle_t* handle); +UV_EXTERN int uv_is_active(const uv_handle_t *handle); -UV_EXTERN void uv_walk(uv_loop_t* loop, uv_walk_cb walk_cb, void* arg); +UV_EXTERN void uv_walk(uv_loop_t *loop, uv_walk_cb walk_cb, void *arg); /* Helpers for ad hoc debugging, no API/ABI stability guaranteed. */ -UV_EXTERN void uv_print_all_handles(uv_loop_t* loop, FILE* stream); -UV_EXTERN void uv_print_active_handles(uv_loop_t* loop, FILE* stream); +UV_EXTERN void uv_print_all_handles(uv_loop_t *loop, FILE *stream); +UV_EXTERN void uv_print_active_handles(uv_loop_t *loop, FILE *stream); -UV_EXTERN void uv_close(uv_handle_t* handle, uv_close_cb close_cb); +UV_EXTERN void uv_close(uv_handle_t *handle, uv_close_cb close_cb); -UV_EXTERN int uv_send_buffer_size(uv_handle_t* handle, int* value); -UV_EXTERN int uv_recv_buffer_size(uv_handle_t* handle, int* value); +UV_EXTERN int uv_send_buffer_size(uv_handle_t *handle, int *value); +UV_EXTERN int uv_recv_buffer_size(uv_handle_t *handle, int *value); -UV_EXTERN int uv_fileno(const uv_handle_t* handle, uv_os_fd_t* fd); +UV_EXTERN int uv_fileno(const uv_handle_t *handle, uv_os_fd_t *fd); -UV_EXTERN uv_buf_t uv_buf_init(char* base, unsigned int len); +UV_EXTERN uv_buf_t uv_buf_init(char *base, unsigned int len); UV_EXTERN int uv_pipe(uv_file fds[2], int read_flags, int write_flags); -UV_EXTERN int uv_socketpair(int type, - int protocol, - uv_os_sock_t socket_vector[2], - int flags0, +UV_EXTERN int uv_socketpair(int type, int protocol, + uv_os_sock_t socket_vector[2], int flags0, int flags1); -#define UV_STREAM_FIELDS \ - /* number of bytes queued for writing */ \ - size_t write_queue_size; \ - uv_alloc_cb alloc_cb; \ - uv_read_cb read_cb; \ - /* private */ \ +#define UV_STREAM_FIELDS \ + /* number of bytes queued for writing */ \ + size_t write_queue_size; \ + uv_alloc_cb alloc_cb; \ + uv_read_cb read_cb; \ + /* private */ \ UV_STREAM_PRIVATE_FIELDS /* @@ -506,52 +472,41 @@ struct uv_stream_s { UV_STREAM_FIELDS }; -UV_EXTERN size_t uv_stream_get_write_queue_size(const uv_stream_t* stream); +UV_EXTERN size_t uv_stream_get_write_queue_size(const uv_stream_t *stream); -UV_EXTERN int uv_listen(uv_stream_t* stream, int backlog, uv_connection_cb cb); -UV_EXTERN int uv_accept(uv_stream_t* server, uv_stream_t* client); +UV_EXTERN int uv_listen(uv_stream_t *stream, int backlog, uv_connection_cb cb); +UV_EXTERN int uv_accept(uv_stream_t *server, uv_stream_t *client); -UV_EXTERN int uv_read_start(uv_stream_t*, - uv_alloc_cb alloc_cb, +UV_EXTERN int uv_read_start(uv_stream_t *, uv_alloc_cb alloc_cb, uv_read_cb read_cb); -UV_EXTERN int uv_read_stop(uv_stream_t*); +UV_EXTERN int uv_read_stop(uv_stream_t *); -UV_EXTERN int uv_write(uv_write_t* req, - uv_stream_t* handle, - const uv_buf_t bufs[], - unsigned int nbufs, +UV_EXTERN int uv_write(uv_write_t *req, uv_stream_t *handle, + const uv_buf_t bufs[], unsigned int nbufs, uv_write_cb cb); -UV_EXTERN int uv_write2(uv_write_t* req, - uv_stream_t* handle, - const uv_buf_t bufs[], - unsigned int nbufs, - uv_stream_t* send_handle, - uv_write_cb cb); -UV_EXTERN int uv_try_write(uv_stream_t* handle, - const uv_buf_t bufs[], +UV_EXTERN int uv_write2(uv_write_t *req, uv_stream_t *handle, + const uv_buf_t bufs[], unsigned int nbufs, + uv_stream_t *send_handle, uv_write_cb cb); +UV_EXTERN int uv_try_write(uv_stream_t *handle, const uv_buf_t bufs[], unsigned int nbufs); -UV_EXTERN int uv_try_write2(uv_stream_t* handle, - const uv_buf_t bufs[], - unsigned int nbufs, - uv_stream_t* send_handle); +UV_EXTERN int uv_try_write2(uv_stream_t *handle, const uv_buf_t bufs[], + unsigned int nbufs, uv_stream_t *send_handle); /* uv_write_t is a subclass of uv_req_t. */ struct uv_write_s { UV_REQ_FIELDS uv_write_cb cb; - uv_stream_t* send_handle; /* TODO: make private and unix-only in v2.x. */ - uv_stream_t* handle; + uv_stream_t *send_handle; /* TODO: make private and unix-only in v2.x. */ + uv_stream_t *handle; UV_WRITE_PRIVATE_FIELDS }; +UV_EXTERN int uv_is_readable(const uv_stream_t *handle); +UV_EXTERN int uv_is_writable(const uv_stream_t *handle); -UV_EXTERN int uv_is_readable(const uv_stream_t* handle); -UV_EXTERN int uv_is_writable(const uv_stream_t* handle); - -UV_EXTERN int uv_stream_set_blocking(uv_stream_t* handle, int blocking); - -UV_EXTERN int uv_is_closing(const uv_handle_t* handle); +UV_EXTERN int uv_stream_set_blocking(uv_stream_t *handle, int blocking); +UV_EXTERN int uv_is_closing(const uv_handle_t *handle); /* * uv_tcp_t is a subclass of uv_stream_t. @@ -564,44 +519,37 @@ struct uv_tcp_s { UV_TCP_PRIVATE_FIELDS }; -UV_EXTERN int uv_tcp_init(uv_loop_t*, uv_tcp_t* handle); -UV_EXTERN int uv_tcp_init_ex(uv_loop_t*, uv_tcp_t* handle, unsigned int flags); -UV_EXTERN int uv_tcp_open(uv_tcp_t* handle, uv_os_sock_t sock); -UV_EXTERN int uv_tcp_nodelay(uv_tcp_t* handle, int enable); -UV_EXTERN int uv_tcp_keepalive(uv_tcp_t* handle, - int enable, +UV_EXTERN int uv_tcp_init(uv_loop_t *, uv_tcp_t *handle); +UV_EXTERN int uv_tcp_init_ex(uv_loop_t *, uv_tcp_t *handle, unsigned int flags); +UV_EXTERN int uv_tcp_open(uv_tcp_t *handle, uv_os_sock_t sock); +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_simultaneous_accepts(uv_tcp_t* handle, int enable); +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_EXTERN int uv_tcp_bind(uv_tcp_t* handle, - const struct sockaddr* addr, +UV_EXTERN int uv_tcp_bind(uv_tcp_t *handle, const struct sockaddr *addr, unsigned int flags); -UV_EXTERN int uv_tcp_getsockname(const uv_tcp_t* handle, - struct sockaddr* name, - int* namelen); -UV_EXTERN int uv_tcp_getpeername(const uv_tcp_t* handle, - struct sockaddr* name, - int* namelen); -UV_EXTERN int uv_tcp_close_reset(uv_tcp_t* handle, uv_close_cb close_cb); -UV_EXTERN int uv_tcp_connect(uv_connect_t* req, - uv_tcp_t* handle, - const struct sockaddr* addr, - uv_connect_cb cb); +UV_EXTERN int uv_tcp_getsockname(const uv_tcp_t *handle, struct sockaddr *name, + int *namelen); +UV_EXTERN int uv_tcp_getpeername(const uv_tcp_t *handle, struct sockaddr *name, + int *namelen); +UV_EXTERN int uv_tcp_close_reset(uv_tcp_t *handle, uv_close_cb close_cb); +UV_EXTERN int uv_tcp_connect(uv_connect_t *req, uv_tcp_t *handle, + const struct sockaddr *addr, uv_connect_cb cb); /* uv_connect_t is a subclass of uv_req_t. */ struct uv_connect_s { UV_REQ_FIELDS uv_connect_cb cb; - uv_stream_t* handle; + uv_stream_t *handle; UV_CONNECT_PRIVATE_FIELDS }; - /* * UDP support. */ @@ -648,11 +596,9 @@ enum uv_udp_flags { UV_UDP_RECVMMSG = 256 }; -typedef void (*uv_udp_send_cb)(uv_udp_send_t* req, int status); -typedef void (*uv_udp_recv_cb)(uv_udp_t* handle, - ssize_t nread, - const uv_buf_t* buf, - const struct sockaddr* addr, +typedef void (*uv_udp_send_cb)(uv_udp_send_t *req, int status); +typedef void (*uv_udp_recv_cb)(uv_udp_t *handle, ssize_t nread, + const uv_buf_t *buf, const struct sockaddr *addr, unsigned flags); /* uv_udp_t is a subclass of uv_handle_t. */ @@ -674,58 +620,48 @@ struct uv_udp_s { /* uv_udp_send_t is a subclass of uv_req_t. */ struct uv_udp_send_s { UV_REQ_FIELDS - uv_udp_t* handle; + uv_udp_t *handle; uv_udp_send_cb cb; UV_UDP_SEND_PRIVATE_FIELDS }; -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_bind(uv_udp_t* handle, - const struct sockaddr* addr, +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_bind(uv_udp_t *handle, const struct sockaddr *addr, unsigned int flags); -UV_EXTERN int uv_udp_connect(uv_udp_t* handle, const struct sockaddr* addr); - -UV_EXTERN int uv_udp_getpeername(const uv_udp_t* handle, - struct sockaddr* name, - int* namelen); -UV_EXTERN int uv_udp_getsockname(const uv_udp_t* handle, - struct sockaddr* name, - int* namelen); -UV_EXTERN int uv_udp_set_membership(uv_udp_t* handle, - const char* multicast_addr, - const char* interface_addr, +UV_EXTERN int uv_udp_connect(uv_udp_t *handle, const struct sockaddr *addr); + +UV_EXTERN int uv_udp_getpeername(const uv_udp_t *handle, struct sockaddr *name, + int *namelen); +UV_EXTERN int uv_udp_getsockname(const uv_udp_t *handle, struct sockaddr *name, + int *namelen); +UV_EXTERN int uv_udp_set_membership(uv_udp_t *handle, + const char *multicast_addr, + const char *interface_addr, uv_membership membership); -UV_EXTERN int uv_udp_set_source_membership(uv_udp_t* handle, - const char* multicast_addr, - const char* interface_addr, - const char* source_addr, +UV_EXTERN int uv_udp_set_source_membership(uv_udp_t *handle, + const char *multicast_addr, + const char *interface_addr, + const char *source_addr, uv_membership membership); -UV_EXTERN int uv_udp_set_multicast_loop(uv_udp_t* handle, int on); -UV_EXTERN int uv_udp_set_multicast_ttl(uv_udp_t* handle, int ttl); -UV_EXTERN int uv_udp_set_multicast_interface(uv_udp_t* handle, - const char* interface_addr); -UV_EXTERN int uv_udp_set_broadcast(uv_udp_t* handle, int on); -UV_EXTERN int uv_udp_set_ttl(uv_udp_t* handle, int ttl); -UV_EXTERN int uv_udp_send(uv_udp_send_t* req, - uv_udp_t* handle, - const uv_buf_t bufs[], - unsigned int nbufs, - const struct sockaddr* addr, - uv_udp_send_cb send_cb); -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_recv_start(uv_udp_t* handle, - uv_alloc_cb alloc_cb, +UV_EXTERN int uv_udp_set_multicast_loop(uv_udp_t *handle, int on); +UV_EXTERN int uv_udp_set_multicast_ttl(uv_udp_t *handle, int ttl); +UV_EXTERN int uv_udp_set_multicast_interface(uv_udp_t *handle, + const char *interface_addr); +UV_EXTERN int uv_udp_set_broadcast(uv_udp_t *handle, int on); +UV_EXTERN int uv_udp_set_ttl(uv_udp_t *handle, int ttl); +UV_EXTERN int uv_udp_send(uv_udp_send_t *req, uv_udp_t *handle, + const uv_buf_t bufs[], unsigned int nbufs, + const struct sockaddr *addr, uv_udp_send_cb send_cb); +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_recv_start(uv_udp_t *handle, uv_alloc_cb alloc_cb, uv_udp_recv_cb recv_cb); -UV_EXTERN int uv_udp_using_recvmmsg(const uv_udp_t* handle); -UV_EXTERN int uv_udp_recv_stop(uv_udp_t* handle); -UV_EXTERN size_t uv_udp_get_send_queue_size(const uv_udp_t* handle); -UV_EXTERN size_t uv_udp_get_send_queue_count(const uv_udp_t* handle); - +UV_EXTERN int uv_udp_using_recvmmsg(const uv_udp_t *handle); +UV_EXTERN int uv_udp_recv_stop(uv_udp_t *handle); +UV_EXTERN size_t uv_udp_get_send_queue_size(const uv_udp_t *handle); +UV_EXTERN size_t uv_udp_get_send_queue_count(const uv_udp_t *handle); /* * uv_tty_t is a subclass of uv_stream_t. @@ -759,21 +695,19 @@ typedef enum { UV_TTY_UNSUPPORTED } uv_tty_vtermstate_t; - -UV_EXTERN int uv_tty_init(uv_loop_t*, uv_tty_t*, uv_file fd, int readable); -UV_EXTERN int uv_tty_set_mode(uv_tty_t*, uv_tty_mode_t mode); +UV_EXTERN int uv_tty_init(uv_loop_t *, uv_tty_t *, uv_file fd, int readable); +UV_EXTERN int uv_tty_set_mode(uv_tty_t *, uv_tty_mode_t mode); UV_EXTERN int uv_tty_reset_mode(void); -UV_EXTERN int uv_tty_get_winsize(uv_tty_t*, int* width, int* height); +UV_EXTERN int uv_tty_get_winsize(uv_tty_t *, int *width, int *height); UV_EXTERN void uv_tty_set_vterm_state(uv_tty_vtermstate_t state); -UV_EXTERN int uv_tty_get_vterm_state(uv_tty_vtermstate_t* state); +UV_EXTERN int uv_tty_get_vterm_state(uv_tty_vtermstate_t *state); #ifdef __cplusplus extern "C++" { -inline int uv_tty_set_mode(uv_tty_t* handle, int mode) { +inline int uv_tty_set_mode(uv_tty_t *handle, int mode) { return uv_tty_set_mode(handle, static_cast(mode)); } - } #endif @@ -792,24 +726,19 @@ struct uv_pipe_s { UV_PIPE_PRIVATE_FIELDS }; -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 void uv_pipe_connect(uv_connect_t* req, - uv_pipe_t* handle, - const char* name, - uv_connect_cb cb); -UV_EXTERN int uv_pipe_getsockname(const uv_pipe_t* handle, - char* buffer, - size_t* size); -UV_EXTERN int uv_pipe_getpeername(const uv_pipe_t* handle, - char* buffer, - size_t* size); -UV_EXTERN void uv_pipe_pending_instances(uv_pipe_t* handle, int count); -UV_EXTERN int uv_pipe_pending_count(uv_pipe_t* handle); -UV_EXTERN uv_handle_type uv_pipe_pending_type(uv_pipe_t* handle); -UV_EXTERN int uv_pipe_chmod(uv_pipe_t* handle, int flags); - +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 void uv_pipe_connect(uv_connect_t *req, uv_pipe_t *handle, + const char *name, uv_connect_cb cb); +UV_EXTERN int uv_pipe_getsockname(const uv_pipe_t *handle, char *buffer, + size_t *size); +UV_EXTERN int uv_pipe_getpeername(const uv_pipe_t *handle, char *buffer, + size_t *size); +UV_EXTERN void uv_pipe_pending_instances(uv_pipe_t *handle, int count); +UV_EXTERN int uv_pipe_pending_count(uv_pipe_t *handle); +UV_EXTERN uv_handle_type uv_pipe_pending_type(uv_pipe_t *handle); +UV_EXTERN int uv_pipe_chmod(uv_pipe_t *handle, int flags); struct uv_poll_s { UV_HANDLE_FIELDS @@ -824,54 +753,47 @@ enum uv_poll_event { UV_PRIORITIZED = 8 }; -UV_EXTERN int uv_poll_init(uv_loop_t* loop, uv_poll_t* handle, int fd); -UV_EXTERN int uv_poll_init_socket(uv_loop_t* loop, - uv_poll_t* handle, +UV_EXTERN int uv_poll_init(uv_loop_t *loop, uv_poll_t *handle, int fd); +UV_EXTERN int uv_poll_init_socket(uv_loop_t *loop, uv_poll_t *handle, uv_os_sock_t socket); -UV_EXTERN int uv_poll_start(uv_poll_t* handle, int events, uv_poll_cb cb); -UV_EXTERN int uv_poll_stop(uv_poll_t* handle); - +UV_EXTERN int uv_poll_start(uv_poll_t *handle, int events, uv_poll_cb cb); +UV_EXTERN int uv_poll_stop(uv_poll_t *handle); struct uv_prepare_s { UV_HANDLE_FIELDS UV_PREPARE_PRIVATE_FIELDS }; -UV_EXTERN int uv_prepare_init(uv_loop_t*, uv_prepare_t* prepare); -UV_EXTERN int uv_prepare_start(uv_prepare_t* prepare, uv_prepare_cb cb); -UV_EXTERN int uv_prepare_stop(uv_prepare_t* prepare); - +UV_EXTERN int uv_prepare_init(uv_loop_t *, uv_prepare_t *prepare); +UV_EXTERN int uv_prepare_start(uv_prepare_t *prepare, uv_prepare_cb cb); +UV_EXTERN int uv_prepare_stop(uv_prepare_t *prepare); struct uv_check_s { UV_HANDLE_FIELDS UV_CHECK_PRIVATE_FIELDS }; -UV_EXTERN int uv_check_init(uv_loop_t*, uv_check_t* check); -UV_EXTERN int uv_check_start(uv_check_t* check, uv_check_cb cb); -UV_EXTERN int uv_check_stop(uv_check_t* check); - +UV_EXTERN int uv_check_init(uv_loop_t *, uv_check_t *check); +UV_EXTERN int uv_check_start(uv_check_t *check, uv_check_cb cb); +UV_EXTERN int uv_check_stop(uv_check_t *check); struct uv_idle_s { UV_HANDLE_FIELDS UV_IDLE_PRIVATE_FIELDS }; -UV_EXTERN int uv_idle_init(uv_loop_t*, uv_idle_t* idle); -UV_EXTERN int uv_idle_start(uv_idle_t* idle, uv_idle_cb cb); -UV_EXTERN int uv_idle_stop(uv_idle_t* idle); - +UV_EXTERN int uv_idle_init(uv_loop_t *, uv_idle_t *idle); +UV_EXTERN int uv_idle_start(uv_idle_t *idle, uv_idle_cb cb); +UV_EXTERN int uv_idle_stop(uv_idle_t *idle); struct uv_async_s { UV_HANDLE_FIELDS UV_ASYNC_PRIVATE_FIELDS }; -UV_EXTERN int uv_async_init(uv_loop_t*, - uv_async_t* async, +UV_EXTERN int uv_async_init(uv_loop_t *, uv_async_t *async, uv_async_cb async_cb); -UV_EXTERN int uv_async_send(uv_async_t* async); - +UV_EXTERN int uv_async_send(uv_async_t *async); /* * uv_timer_t is a subclass of uv_handle_t. @@ -883,17 +805,14 @@ struct uv_timer_s { UV_TIMER_PRIVATE_FIELDS }; -UV_EXTERN int uv_timer_init(uv_loop_t*, uv_timer_t* handle); -UV_EXTERN int uv_timer_start(uv_timer_t* handle, - uv_timer_cb cb, - uint64_t timeout, - uint64_t repeat); -UV_EXTERN int uv_timer_stop(uv_timer_t* handle); -UV_EXTERN int uv_timer_again(uv_timer_t* handle); -UV_EXTERN void uv_timer_set_repeat(uv_timer_t* handle, uint64_t repeat); -UV_EXTERN uint64_t uv_timer_get_repeat(const uv_timer_t* handle); -UV_EXTERN uint64_t uv_timer_get_due_in(const uv_timer_t* handle); - +UV_EXTERN int uv_timer_init(uv_loop_t *, uv_timer_t *handle); +UV_EXTERN int uv_timer_start(uv_timer_t *handle, uv_timer_cb cb, + uint64_t timeout, uint64_t repeat); +UV_EXTERN int uv_timer_stop(uv_timer_t *handle); +UV_EXTERN int uv_timer_again(uv_timer_t *handle); +UV_EXTERN void uv_timer_set_repeat(uv_timer_t *handle, uint64_t repeat); +UV_EXTERN uint64_t uv_timer_get_repeat(const uv_timer_t *handle); +UV_EXTERN uint64_t uv_timer_get_due_in(const uv_timer_t *handle); /* * uv_getaddrinfo_t is a subclass of uv_req_t. @@ -903,46 +822,38 @@ UV_EXTERN uint64_t uv_timer_get_due_in(const uv_timer_t* handle); struct uv_getaddrinfo_s { UV_REQ_FIELDS /* read-only */ - uv_loop_t* loop; + uv_loop_t *loop; /* struct addrinfo* addrinfo is marked as private, but it really isn't. */ UV_GETADDRINFO_PRIVATE_FIELDS }; - -UV_EXTERN int uv_getaddrinfo(uv_loop_t* loop, - uv_getaddrinfo_t* req, - uv_getaddrinfo_cb getaddrinfo_cb, - const char* node, - const char* service, - const struct addrinfo* hints); -UV_EXTERN void uv_freeaddrinfo(struct addrinfo* ai); - +UV_EXTERN int uv_getaddrinfo(uv_loop_t *loop, uv_getaddrinfo_t *req, + uv_getaddrinfo_cb getaddrinfo_cb, const char *node, + const char *service, const struct addrinfo *hints); +UV_EXTERN void uv_freeaddrinfo(struct addrinfo *ai); /* -* uv_getnameinfo_t is a subclass of uv_req_t. -* -* Request object for uv_getnameinfo. -*/ + * uv_getnameinfo_t is a subclass of uv_req_t. + * + * Request object for uv_getnameinfo. + */ struct uv_getnameinfo_s { UV_REQ_FIELDS /* read-only */ - uv_loop_t* loop; + uv_loop_t *loop; /* host and service are marked as private, but they really aren't. */ UV_GETNAMEINFO_PRIVATE_FIELDS }; -UV_EXTERN int uv_getnameinfo(uv_loop_t* loop, - uv_getnameinfo_t* req, +UV_EXTERN int uv_getnameinfo(uv_loop_t *loop, uv_getnameinfo_t *req, uv_getnameinfo_cb getnameinfo_cb, - const struct sockaddr* addr, - int flags); - + const struct sockaddr *addr, int flags); /* uv_spawn() options. */ typedef enum { - UV_IGNORE = 0x00, - UV_CREATE_PIPE = 0x01, - UV_INHERIT_FD = 0x02, + UV_IGNORE = 0x00, + UV_CREATE_PIPE = 0x01, + UV_INHERIT_FD = 0x02, UV_INHERIT_STREAM = 0x04, /* @@ -950,8 +861,8 @@ typedef enum { * determine the direction of flow, from the child process' perspective. Both * flags may be specified to create a duplex data stream. */ - UV_READABLE_PIPE = 0x10, - UV_WRITABLE_PIPE = 0x20, + UV_READABLE_PIPE = 0x10, + UV_WRITABLE_PIPE = 0x20, /* * When UV_CREATE_PIPE is specified, specifying UV_NONBLOCK_PIPE opens the @@ -959,7 +870,7 @@ typedef enum { * if the child is not designed to handle to encounter this mode, * but can also be significantly more efficient. */ - UV_NONBLOCK_PIPE = 0x40, + UV_NONBLOCK_PIPE = 0x40, UV_OVERLAPPED_PIPE = 0x40 /* old name, for compatibility */ } uv_stdio_flags; @@ -967,31 +878,31 @@ typedef struct uv_stdio_container_s { uv_stdio_flags flags; union { - uv_stream_t* stream; + uv_stream_t *stream; int fd; } data; } uv_stdio_container_t; typedef struct uv_process_options_s { uv_exit_cb exit_cb; /* Called after the process exits. */ - const char* file; /* Path to program to execute. */ + const char *file; /* Path to program to execute. */ /* * 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 note at * windows_verbatim_arguments. */ - char** args; + char **args; /* * This will be set as the environ variable in the subprocess. If this is * NULL then the parents environ will be used. */ - char** env; + char **env; /* * If non-null this represents a directory the subprocess should execute * in. Stands for current working directory. */ - const char* cwd; + const char *cwd; /* * Various flags that control how uv_spawn() behaves. See the definition of * `enum uv_process_flags` below. @@ -1007,7 +918,7 @@ typedef struct uv_process_options_s { * child process only if the child processes uses the MSVCRT runtime. */ int stdio_count; - uv_stdio_container_t* stdio; + uv_stdio_container_t *stdio; /* * Libuv can change the child process' user/group id. This happens only when * the appropriate bits are set in the flags fields. This is not supported on @@ -1076,49 +987,44 @@ struct uv_process_s { UV_PROCESS_PRIVATE_FIELDS }; -UV_EXTERN int uv_spawn(uv_loop_t* loop, - uv_process_t* handle, - const uv_process_options_t* options); -UV_EXTERN int uv_process_kill(uv_process_t*, int signum); +UV_EXTERN int uv_spawn(uv_loop_t *loop, uv_process_t *handle, + const uv_process_options_t *options); +UV_EXTERN int uv_process_kill(uv_process_t *, int signum); UV_EXTERN int uv_kill(int pid, int signum); -UV_EXTERN uv_pid_t uv_process_get_pid(const uv_process_t*); - +UV_EXTERN uv_pid_t uv_process_get_pid(const uv_process_t *); /* * uv_work_t is a subclass of uv_req_t. */ struct uv_work_s { UV_REQ_FIELDS - uv_loop_t* loop; + uv_loop_t *loop; uv_work_cb work_cb; uv_after_work_cb after_work_cb; UV_WORK_PRIVATE_FIELDS }; -UV_EXTERN int uv_queue_work(uv_loop_t* loop, - uv_work_t* req, - uv_work_cb work_cb, +UV_EXTERN int uv_queue_work(uv_loop_t *loop, uv_work_t *req, uv_work_cb work_cb, uv_after_work_cb after_work_cb); -UV_EXTERN int uv_cancel(uv_req_t* req); - +UV_EXTERN int uv_cancel(uv_req_t *req); struct uv_cpu_times_s { uint64_t user; /* milliseconds */ uint64_t nice; /* milliseconds */ - uint64_t sys; /* milliseconds */ + uint64_t sys; /* milliseconds */ uint64_t idle; /* milliseconds */ - uint64_t irq; /* milliseconds */ + uint64_t irq; /* milliseconds */ }; struct uv_cpu_info_s { - char* model; + char *model; int speed; struct uv_cpu_times_s cpu_times; }; struct uv_interface_address_s { - char* name; + char *name; char phys_addr[6]; int is_internal; union { @@ -1132,11 +1038,11 @@ struct uv_interface_address_s { }; struct uv_passwd_s { - char* username; + char *username; long uid; long gid; - char* shell; - char* homedir; + char *shell; + char *homedir; }; struct uv_utsname_s { @@ -1172,15 +1078,15 @@ typedef enum { } uv_dirent_type_t; struct uv_dirent_s { - const char* name; + const char *name; uv_dirent_type_t type; }; -UV_EXTERN char** uv_setup_args(int argc, char** argv); -UV_EXTERN int uv_get_process_title(char* buffer, size_t size); -UV_EXTERN int uv_set_process_title(const char* title); -UV_EXTERN int uv_resident_set_memory(size_t* rss); -UV_EXTERN int uv_uptime(double* uptime); +UV_EXTERN char **uv_setup_args(int argc, char **argv); +UV_EXTERN int uv_get_process_title(char *buffer, size_t size); +UV_EXTERN int uv_set_process_title(const char *title); +UV_EXTERN int uv_resident_set_memory(size_t *rss); +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); @@ -1195,88 +1101,88 @@ typedef struct { } uv_timeval64_t; typedef struct { - uv_timeval_t ru_utime; /* user CPU time used */ - uv_timeval_t ru_stime; /* system CPU time used */ - uint64_t ru_maxrss; /* maximum resident set size */ - uint64_t ru_ixrss; /* integral shared memory size */ - uint64_t ru_idrss; /* integral unshared data size */ - uint64_t ru_isrss; /* integral unshared stack size */ - uint64_t ru_minflt; /* page reclaims (soft page faults) */ - uint64_t ru_majflt; /* page faults (hard page faults) */ - uint64_t ru_nswap; /* swaps */ - uint64_t ru_inblock; /* block input operations */ - uint64_t ru_oublock; /* block output operations */ - uint64_t ru_msgsnd; /* IPC messages sent */ - uint64_t ru_msgrcv; /* IPC messages received */ - uint64_t ru_nsignals; /* signals received */ - uint64_t ru_nvcsw; /* voluntary context switches */ - uint64_t ru_nivcsw; /* involuntary context switches */ + uv_timeval_t ru_utime; /* user CPU time used */ + uv_timeval_t ru_stime; /* system CPU time used */ + uint64_t ru_maxrss; /* maximum resident set size */ + uint64_t ru_ixrss; /* integral shared memory size */ + uint64_t ru_idrss; /* integral unshared data size */ + uint64_t ru_isrss; /* integral unshared stack size */ + uint64_t ru_minflt; /* page reclaims (soft page faults) */ + uint64_t ru_majflt; /* page faults (hard page faults) */ + uint64_t ru_nswap; /* swaps */ + uint64_t ru_inblock; /* block input operations */ + uint64_t ru_oublock; /* block output operations */ + uint64_t ru_msgsnd; /* IPC messages sent */ + uint64_t ru_msgrcv; /* IPC messages received */ + uint64_t ru_nsignals; /* signals received */ + uint64_t ru_nvcsw; /* voluntary context switches */ + uint64_t ru_nivcsw; /* involuntary context switches */ } uv_rusage_t; -UV_EXTERN int uv_getrusage(uv_rusage_t* rusage); +UV_EXTERN int uv_getrusage(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_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 uv_pid_t uv_os_getpid(void); UV_EXTERN uv_pid_t uv_os_getppid(void); #if defined(__PASE__) /* On IBM i PASE, the highest process priority is -10 */ -# define UV_PRIORITY_LOW 39 /* RUNPTY(99) */ -# define UV_PRIORITY_BELOW_NORMAL 15 /* RUNPTY(50) */ -# define UV_PRIORITY_NORMAL 0 /* RUNPTY(20) */ -# define UV_PRIORITY_ABOVE_NORMAL -4 /* RUNTY(12) */ -# define UV_PRIORITY_HIGH -7 /* RUNPTY(6) */ -# define UV_PRIORITY_HIGHEST -10 /* RUNPTY(1) */ +#define UV_PRIORITY_LOW 39 /* RUNPTY(99) */ +#define UV_PRIORITY_BELOW_NORMAL 15 /* RUNPTY(50) */ +#define UV_PRIORITY_NORMAL 0 /* RUNPTY(20) */ +#define UV_PRIORITY_ABOVE_NORMAL -4 /* RUNTY(12) */ +#define UV_PRIORITY_HIGH -7 /* RUNPTY(6) */ +#define UV_PRIORITY_HIGHEST -10 /* RUNPTY(1) */ #else -# define UV_PRIORITY_LOW 19 -# define UV_PRIORITY_BELOW_NORMAL 10 -# define UV_PRIORITY_NORMAL 0 -# define UV_PRIORITY_ABOVE_NORMAL -7 -# define UV_PRIORITY_HIGH -14 -# define UV_PRIORITY_HIGHEST -20 +#define UV_PRIORITY_LOW 19 +#define UV_PRIORITY_BELOW_NORMAL 10 +#define UV_PRIORITY_NORMAL 0 +#define UV_PRIORITY_ABOVE_NORMAL -7 +#define UV_PRIORITY_HIGH -14 +#define UV_PRIORITY_HIGHEST -20 #endif -UV_EXTERN int uv_os_getpriority(uv_pid_t pid, int* priority); +UV_EXTERN int uv_os_getpriority(uv_pid_t pid, int *priority); UV_EXTERN int uv_os_setpriority(uv_pid_t pid, int priority); -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_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_interface_addresses(uv_interface_address_t** addresses, - int* count); -UV_EXTERN void uv_free_interface_addresses(uv_interface_address_t* addresses, +UV_EXTERN int uv_interface_addresses(uv_interface_address_t **addresses, + int *count); +UV_EXTERN void uv_free_interface_addresses(uv_interface_address_t *addresses, int count); struct uv_env_item_s { - char* name; - char* value; + char *name; + char *value; }; -UV_EXTERN int uv_os_environ(uv_env_item_t** envitems, int* count); -UV_EXTERN void uv_os_free_environ(uv_env_item_t* envitems, int count); -UV_EXTERN int uv_os_getenv(const char* name, char* buffer, size_t* size); -UV_EXTERN int uv_os_setenv(const char* name, const char* value); -UV_EXTERN int uv_os_unsetenv(const char* name); +UV_EXTERN int uv_os_environ(uv_env_item_t **envitems, int *count); +UV_EXTERN void uv_os_free_environ(uv_env_item_t *envitems, int count); +UV_EXTERN int uv_os_getenv(const char *name, char *buffer, size_t *size); +UV_EXTERN int uv_os_setenv(const char *name, const char *value); +UV_EXTERN int uv_os_unsetenv(const char *name); #ifdef MAXHOSTNAMELEN -# define UV_MAXHOSTNAMESIZE (MAXHOSTNAMELEN + 1) +#define UV_MAXHOSTNAMESIZE (MAXHOSTNAMELEN + 1) #else - /* - Fallback for the maximum hostname size, including the null terminator. The - Windows gethostname() documentation states that 256 bytes will always be - large enough to hold the null-terminated hostname. - */ -# define UV_MAXHOSTNAMESIZE 256 +/* + Fallback for the maximum hostname size, including the null terminator. The + Windows gethostname() documentation states that 256 bytes will always be + large enough to hold the null-terminated hostname. +*/ +#define UV_MAXHOSTNAMESIZE 256 #endif -UV_EXTERN int uv_os_gethostname(char* buffer, size_t* size); +UV_EXTERN int uv_os_gethostname(char *buffer, size_t *size); -UV_EXTERN int uv_os_uname(uv_utsname_t* buffer); +UV_EXTERN int uv_os_uname(uv_utsname_t *buffer); -UV_EXTERN uint64_t uv_metrics_idle_time(uv_loop_t* loop); +UV_EXTERN uint64_t uv_metrics_idle_time(uv_loop_t *loop); typedef enum { UV_FS_UNKNOWN = -1, @@ -1320,9 +1226,9 @@ typedef enum { } uv_fs_type; struct uv_dir_s { - uv_dirent_t* dirents; + uv_dirent_t *dirents; size_t nentries; - void* reserved[4]; + void *reserved[4]; UV_DIR_PRIVATE_FIELDS }; @@ -1330,56 +1236,40 @@ struct uv_dir_s { struct uv_fs_s { UV_REQ_FIELDS uv_fs_type fs_type; - uv_loop_t* loop; + uv_loop_t *loop; uv_fs_cb cb; ssize_t result; - void* ptr; - const char* path; - uv_stat_t statbuf; /* Stores the result of uv_fs_stat() and uv_fs_fstat(). */ + void *ptr; + const char *path; + uv_stat_t statbuf; /* Stores the result of uv_fs_stat() and uv_fs_fstat(). */ UV_FS_PRIVATE_FIELDS }; -UV_EXTERN uv_fs_type uv_fs_get_type(const uv_fs_t*); -UV_EXTERN ssize_t uv_fs_get_result(const uv_fs_t*); -UV_EXTERN int uv_fs_get_system_error(const uv_fs_t*); -UV_EXTERN void* uv_fs_get_ptr(const uv_fs_t*); -UV_EXTERN const char* uv_fs_get_path(const uv_fs_t*); -UV_EXTERN uv_stat_t* uv_fs_get_statbuf(uv_fs_t*); - -UV_EXTERN void uv_fs_req_cleanup(uv_fs_t* req); -UV_EXTERN int uv_fs_close(uv_loop_t* loop, - uv_fs_t* req, - uv_file file, +UV_EXTERN uv_fs_type uv_fs_get_type(const uv_fs_t *); +UV_EXTERN ssize_t uv_fs_get_result(const uv_fs_t *); +UV_EXTERN int uv_fs_get_system_error(const uv_fs_t *); +UV_EXTERN void *uv_fs_get_ptr(const uv_fs_t *); +UV_EXTERN const char *uv_fs_get_path(const uv_fs_t *); +UV_EXTERN uv_stat_t *uv_fs_get_statbuf(uv_fs_t *); + +UV_EXTERN void uv_fs_req_cleanup(uv_fs_t *req); +UV_EXTERN int uv_fs_close(uv_loop_t *loop, uv_fs_t *req, uv_file file, uv_fs_cb cb); -UV_EXTERN int uv_fs_open(uv_loop_t* loop, - uv_fs_t* req, - const char* path, - int flags, - int mode, - uv_fs_cb cb); -UV_EXTERN 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); -UV_EXTERN int uv_fs_unlink(uv_loop_t* loop, - uv_fs_t* req, - const char* path, +UV_EXTERN int uv_fs_open(uv_loop_t *loop, uv_fs_t *req, const char *path, + int flags, int mode, uv_fs_cb cb); +UV_EXTERN 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); +UV_EXTERN int uv_fs_unlink(uv_loop_t *loop, uv_fs_t *req, const char *path, uv_fs_cb cb); -UV_EXTERN 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); +UV_EXTERN 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); /* * This flag can be used with uv_fs_copyfile() to return an error if the * destination already exists. */ -#define UV_FS_COPYFILE_EXCL 0x0001 +#define UV_FS_COPYFILE_EXCL 0x0001 /* * This flag can be used with uv_fs_copyfile() to attempt to create a reflink. @@ -1393,207 +1283,108 @@ UV_EXTERN int uv_fs_write(uv_loop_t* loop, */ #define UV_FS_COPYFILE_FICLONE_FORCE 0x0004 -UV_EXTERN 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); -UV_EXTERN int uv_fs_mkdir(uv_loop_t* loop, - uv_fs_t* req, - const char* path, - int mode, - uv_fs_cb cb); -UV_EXTERN int uv_fs_mkdtemp(uv_loop_t* loop, - uv_fs_t* req, - const char* tpl, +UV_EXTERN 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); +UV_EXTERN int uv_fs_mkdir(uv_loop_t *loop, uv_fs_t *req, const char *path, + int mode, uv_fs_cb cb); +UV_EXTERN int uv_fs_mkdtemp(uv_loop_t *loop, uv_fs_t *req, const char *tpl, uv_fs_cb cb); -UV_EXTERN int uv_fs_mkstemp(uv_loop_t* loop, - uv_fs_t* req, - const char* tpl, +UV_EXTERN int uv_fs_mkstemp(uv_loop_t *loop, uv_fs_t *req, const char *tpl, uv_fs_cb cb); -UV_EXTERN int uv_fs_rmdir(uv_loop_t* loop, - uv_fs_t* req, - const char* path, +UV_EXTERN int uv_fs_rmdir(uv_loop_t *loop, uv_fs_t *req, const char *path, uv_fs_cb cb); -UV_EXTERN int uv_fs_scandir(uv_loop_t* loop, - uv_fs_t* req, - const char* path, - int flags, +UV_EXTERN int uv_fs_scandir(uv_loop_t *loop, uv_fs_t *req, const char *path, + int flags, uv_fs_cb cb); +UV_EXTERN int uv_fs_scandir_next(uv_fs_t *req, uv_dirent_t *ent); +UV_EXTERN int uv_fs_opendir(uv_loop_t *loop, uv_fs_t *req, const char *path, uv_fs_cb cb); -UV_EXTERN int uv_fs_scandir_next(uv_fs_t* req, - uv_dirent_t* ent); -UV_EXTERN int uv_fs_opendir(uv_loop_t* loop, - uv_fs_t* req, - const char* path, +UV_EXTERN int uv_fs_readdir(uv_loop_t *loop, uv_fs_t *req, uv_dir_t *dir, uv_fs_cb cb); -UV_EXTERN int uv_fs_readdir(uv_loop_t* loop, - uv_fs_t* req, - uv_dir_t* dir, - uv_fs_cb cb); -UV_EXTERN int uv_fs_closedir(uv_loop_t* loop, - uv_fs_t* req, - uv_dir_t* dir, +UV_EXTERN int uv_fs_closedir(uv_loop_t *loop, uv_fs_t *req, uv_dir_t *dir, uv_fs_cb cb); -UV_EXTERN int uv_fs_stat(uv_loop_t* loop, - uv_fs_t* req, - const char* path, +UV_EXTERN int uv_fs_stat(uv_loop_t *loop, uv_fs_t *req, const char *path, uv_fs_cb cb); -UV_EXTERN int uv_fs_fstat(uv_loop_t* loop, - uv_fs_t* req, - uv_file file, +UV_EXTERN int uv_fs_fstat(uv_loop_t *loop, uv_fs_t *req, uv_file file, uv_fs_cb cb); -UV_EXTERN int uv_fs_rename(uv_loop_t* loop, - uv_fs_t* req, - const char* path, - const char* new_path, - uv_fs_cb cb); -UV_EXTERN int uv_fs_fsync(uv_loop_t* loop, - uv_fs_t* req, - uv_file file, +UV_EXTERN int uv_fs_rename(uv_loop_t *loop, uv_fs_t *req, const char *path, + const char *new_path, uv_fs_cb cb); +UV_EXTERN int uv_fs_fsync(uv_loop_t *loop, uv_fs_t *req, uv_file file, uv_fs_cb cb); -UV_EXTERN int uv_fs_fdatasync(uv_loop_t* loop, - uv_fs_t* req, - uv_file file, +UV_EXTERN int uv_fs_fdatasync(uv_loop_t *loop, uv_fs_t *req, uv_file file, uv_fs_cb cb); -UV_EXTERN int uv_fs_ftruncate(uv_loop_t* loop, - uv_fs_t* req, - uv_file file, - int64_t offset, - uv_fs_cb cb); -UV_EXTERN int uv_fs_sendfile(uv_loop_t* loop, - uv_fs_t* req, - uv_file out_fd, - uv_file in_fd, - int64_t in_offset, - size_t length, +UV_EXTERN int uv_fs_ftruncate(uv_loop_t *loop, uv_fs_t *req, uv_file file, + int64_t offset, uv_fs_cb cb); +UV_EXTERN int uv_fs_sendfile(uv_loop_t *loop, uv_fs_t *req, uv_file out_fd, + uv_file in_fd, int64_t in_offset, size_t length, uv_fs_cb cb); -UV_EXTERN int uv_fs_access(uv_loop_t* loop, - uv_fs_t* req, - const char* path, - int mode, - uv_fs_cb cb); -UV_EXTERN int uv_fs_chmod(uv_loop_t* loop, - uv_fs_t* req, - const char* path, - int mode, - uv_fs_cb cb); -UV_EXTERN int uv_fs_utime(uv_loop_t* loop, - uv_fs_t* req, - const char* path, - double atime, - double mtime, - uv_fs_cb cb); -UV_EXTERN int uv_fs_futime(uv_loop_t* loop, - uv_fs_t* req, - uv_file file, - double atime, - double mtime, - uv_fs_cb cb); -UV_EXTERN int uv_fs_lutime(uv_loop_t* loop, - uv_fs_t* req, - const char* path, - double atime, - double mtime, - uv_fs_cb cb); -UV_EXTERN int uv_fs_lstat(uv_loop_t* loop, - uv_fs_t* req, - const char* path, +UV_EXTERN int uv_fs_access(uv_loop_t *loop, uv_fs_t *req, const char *path, + int mode, uv_fs_cb cb); +UV_EXTERN int uv_fs_chmod(uv_loop_t *loop, uv_fs_t *req, const char *path, + int mode, uv_fs_cb cb); +UV_EXTERN int uv_fs_utime(uv_loop_t *loop, uv_fs_t *req, const char *path, + double atime, double mtime, uv_fs_cb cb); +UV_EXTERN int uv_fs_futime(uv_loop_t *loop, uv_fs_t *req, uv_file file, + double atime, double mtime, uv_fs_cb cb); +UV_EXTERN int uv_fs_lutime(uv_loop_t *loop, uv_fs_t *req, const char *path, + double atime, double mtime, uv_fs_cb cb); +UV_EXTERN int uv_fs_lstat(uv_loop_t *loop, uv_fs_t *req, const char *path, uv_fs_cb cb); -UV_EXTERN int uv_fs_link(uv_loop_t* loop, - uv_fs_t* req, - const char* path, - const char* new_path, - uv_fs_cb cb); +UV_EXTERN int uv_fs_link(uv_loop_t *loop, uv_fs_t *req, const char *path, + const char *new_path, uv_fs_cb cb); /* * This flag can be used with uv_fs_symlink() on Windows to specify whether * path argument points to a directory. */ -#define UV_FS_SYMLINK_DIR 0x0001 +#define UV_FS_SYMLINK_DIR 0x0001 /* * This flag can be used with uv_fs_symlink() on Windows to specify whether * the symlink is to be created using junction points. */ -#define UV_FS_SYMLINK_JUNCTION 0x0002 +#define UV_FS_SYMLINK_JUNCTION 0x0002 -UV_EXTERN 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); -UV_EXTERN int uv_fs_readlink(uv_loop_t* loop, - uv_fs_t* req, - const char* path, +UV_EXTERN 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); +UV_EXTERN int uv_fs_readlink(uv_loop_t *loop, uv_fs_t *req, const char *path, uv_fs_cb cb); -UV_EXTERN int uv_fs_realpath(uv_loop_t* loop, - uv_fs_t* req, - const char* path, +UV_EXTERN int uv_fs_realpath(uv_loop_t *loop, uv_fs_t *req, const char *path, uv_fs_cb cb); -UV_EXTERN int uv_fs_fchmod(uv_loop_t* loop, - uv_fs_t* req, - uv_file file, - int mode, - uv_fs_cb cb); -UV_EXTERN 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); -UV_EXTERN 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); -UV_EXTERN 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); -UV_EXTERN int uv_fs_statfs(uv_loop_t* loop, - uv_fs_t* req, - const char* path, +UV_EXTERN int uv_fs_fchmod(uv_loop_t *loop, uv_fs_t *req, uv_file file, + int mode, uv_fs_cb cb); +UV_EXTERN 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); +UV_EXTERN 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); +UV_EXTERN 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); +UV_EXTERN int uv_fs_statfs(uv_loop_t *loop, uv_fs_t *req, const char *path, uv_fs_cb cb); - -enum uv_fs_event { - UV_RENAME = 1, - UV_CHANGE = 2 -}; - +enum uv_fs_event { UV_RENAME = 1, UV_CHANGE = 2 }; struct uv_fs_event_s { UV_HANDLE_FIELDS /* private */ - char* path; + char *path; UV_FS_EVENT_PRIVATE_FIELDS }; - /* * uv_fs_stat() based polling file watcher. */ struct uv_fs_poll_s { UV_HANDLE_FIELDS /* Private, don't touch. */ - void* poll_ctx; + void *poll_ctx; }; -UV_EXTERN int uv_fs_poll_init(uv_loop_t* loop, uv_fs_poll_t* handle); -UV_EXTERN int uv_fs_poll_start(uv_fs_poll_t* handle, - uv_fs_poll_cb poll_cb, - const char* path, - unsigned int interval); -UV_EXTERN int uv_fs_poll_stop(uv_fs_poll_t* handle); -UV_EXTERN int uv_fs_poll_getpath(uv_fs_poll_t* handle, - char* buffer, - size_t* size); - +UV_EXTERN int uv_fs_poll_init(uv_loop_t *loop, uv_fs_poll_t *handle); +UV_EXTERN int uv_fs_poll_start(uv_fs_poll_t *handle, uv_fs_poll_cb poll_cb, + const char *path, unsigned int interval); +UV_EXTERN int uv_fs_poll_stop(uv_fs_poll_t *handle); +UV_EXTERN int uv_fs_poll_getpath(uv_fs_poll_t *handle, char *buffer, + size_t *size); struct uv_signal_s { UV_HANDLE_FIELDS @@ -1602,18 +1393,15 @@ struct uv_signal_s { UV_SIGNAL_PRIVATE_FIELDS }; -UV_EXTERN int uv_signal_init(uv_loop_t* loop, uv_signal_t* handle); -UV_EXTERN int uv_signal_start(uv_signal_t* handle, - uv_signal_cb signal_cb, +UV_EXTERN int uv_signal_init(uv_loop_t *loop, uv_signal_t *handle); +UV_EXTERN int uv_signal_start(uv_signal_t *handle, uv_signal_cb signal_cb, int signum); -UV_EXTERN int uv_signal_start_oneshot(uv_signal_t* handle, - uv_signal_cb signal_cb, - int signum); -UV_EXTERN int uv_signal_stop(uv_signal_t* handle); +UV_EXTERN int uv_signal_start_oneshot(uv_signal_t *handle, + uv_signal_cb signal_cb, int signum); +UV_EXTERN int uv_signal_stop(uv_signal_t *handle); UV_EXTERN void uv_loadavg(double avg[3]); - /* * Flags to be passed to uv_fs_event_start(). */ @@ -1644,67 +1432,60 @@ enum uv_fs_event_flags { UV_FS_EVENT_RECURSIVE = 4 }; +UV_EXTERN int uv_fs_event_init(uv_loop_t *loop, uv_fs_event_t *handle); +UV_EXTERN int uv_fs_event_start(uv_fs_event_t *handle, uv_fs_event_cb cb, + const char *path, unsigned int flags); +UV_EXTERN int uv_fs_event_stop(uv_fs_event_t *handle); +UV_EXTERN int uv_fs_event_getpath(uv_fs_event_t *handle, char *buffer, + size_t *size); -UV_EXTERN int uv_fs_event_init(uv_loop_t* loop, uv_fs_event_t* handle); -UV_EXTERN int uv_fs_event_start(uv_fs_event_t* handle, - uv_fs_event_cb cb, - const char* path, - unsigned int flags); -UV_EXTERN int uv_fs_event_stop(uv_fs_event_t* handle); -UV_EXTERN int uv_fs_event_getpath(uv_fs_event_t* handle, - char* buffer, - size_t* size); - -UV_EXTERN int uv_ip4_addr(const char* ip, int port, struct sockaddr_in* addr); -UV_EXTERN int uv_ip6_addr(const char* ip, int port, struct sockaddr_in6* addr); +UV_EXTERN int uv_ip4_addr(const char *ip, int port, struct sockaddr_in *addr); +UV_EXTERN int uv_ip6_addr(const char *ip, int port, struct sockaddr_in6 *addr); -UV_EXTERN int uv_ip4_name(const struct sockaddr_in* src, char* dst, size_t size); -UV_EXTERN int uv_ip6_name(const struct sockaddr_in6* src, char* dst, size_t size); -UV_EXTERN int uv_ip_name(const struct sockaddr* src, char* dst, size_t size); - -UV_EXTERN int uv_inet_ntop(int af, const void* src, char* dst, size_t size); -UV_EXTERN int uv_inet_pton(int af, const char* src, void* dst); +UV_EXTERN int uv_ip4_name(const struct sockaddr_in *src, char *dst, + size_t size); +UV_EXTERN int uv_ip6_name(const struct sockaddr_in6 *src, char *dst, + size_t size); +UV_EXTERN int uv_ip_name(const struct sockaddr *src, char *dst, size_t size); +UV_EXTERN int uv_inet_ntop(int af, const void *src, char *dst, size_t size); +UV_EXTERN int uv_inet_pton(int af, const char *src, void *dst); struct uv_random_s { UV_REQ_FIELDS /* read-only */ - uv_loop_t* loop; + uv_loop_t *loop; /* private */ int status; - void* buf; + void *buf; size_t buflen; uv_random_cb cb; struct uv__work work_req; }; -UV_EXTERN int uv_random(uv_loop_t* loop, - uv_random_t* req, - void *buf, +UV_EXTERN int uv_random(uv_loop_t *loop, uv_random_t *req, void *buf, size_t buflen, - unsigned flags, /* For future extension; must be 0. */ + unsigned flags, /* For future extension; must be 0. */ uv_random_cb cb); #if defined(IF_NAMESIZE) -# define UV_IF_NAMESIZE (IF_NAMESIZE + 1) +#define UV_IF_NAMESIZE (IF_NAMESIZE + 1) #elif defined(IFNAMSIZ) -# define UV_IF_NAMESIZE (IFNAMSIZ + 1) +#define UV_IF_NAMESIZE (IFNAMSIZ + 1) #else -# define UV_IF_NAMESIZE (16 + 1) +#define UV_IF_NAMESIZE (16 + 1) #endif -UV_EXTERN int uv_if_indextoname(unsigned int ifindex, - char* buffer, - size_t* size); -UV_EXTERN int uv_if_indextoiid(unsigned int ifindex, - char* buffer, - size_t* size); +UV_EXTERN int uv_if_indextoname(unsigned int ifindex, char *buffer, + size_t *size); +UV_EXTERN int uv_if_indextoiid(unsigned int ifindex, char *buffer, + size_t *size); -UV_EXTERN int uv_exepath(char* buffer, size_t* size); +UV_EXTERN int uv_exepath(char *buffer, size_t *size); -UV_EXTERN int uv_cwd(char* buffer, size_t* size); +UV_EXTERN int uv_cwd(char *buffer, size_t *size); -UV_EXTERN int uv_chdir(const char* dir); +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); @@ -1715,59 +1496,58 @@ UV_EXTERN void uv_sleep(unsigned int msec); UV_EXTERN void uv_disable_stdio_inheritance(void); -UV_EXTERN int uv_dlopen(const char* filename, uv_lib_t* lib); -UV_EXTERN void uv_dlclose(uv_lib_t* lib); -UV_EXTERN int uv_dlsym(uv_lib_t* lib, const char* name, void** ptr); -UV_EXTERN const char* uv_dlerror(const uv_lib_t* lib); - -UV_EXTERN int uv_mutex_init(uv_mutex_t* handle); -UV_EXTERN int uv_mutex_init_recursive(uv_mutex_t* handle); -UV_EXTERN void uv_mutex_destroy(uv_mutex_t* handle); -UV_EXTERN void uv_mutex_lock(uv_mutex_t* handle); -UV_EXTERN int uv_mutex_trylock(uv_mutex_t* handle); -UV_EXTERN void uv_mutex_unlock(uv_mutex_t* handle); - -UV_EXTERN int uv_rwlock_init(uv_rwlock_t* rwlock); -UV_EXTERN void uv_rwlock_destroy(uv_rwlock_t* rwlock); -UV_EXTERN void uv_rwlock_rdlock(uv_rwlock_t* rwlock); -UV_EXTERN int uv_rwlock_tryrdlock(uv_rwlock_t* rwlock); -UV_EXTERN void uv_rwlock_rdunlock(uv_rwlock_t* rwlock); -UV_EXTERN void uv_rwlock_wrlock(uv_rwlock_t* rwlock); -UV_EXTERN int uv_rwlock_trywrlock(uv_rwlock_t* rwlock); -UV_EXTERN void uv_rwlock_wrunlock(uv_rwlock_t* rwlock); - -UV_EXTERN int uv_sem_init(uv_sem_t* sem, unsigned int value); -UV_EXTERN void uv_sem_destroy(uv_sem_t* sem); -UV_EXTERN void uv_sem_post(uv_sem_t* sem); -UV_EXTERN void uv_sem_wait(uv_sem_t* sem); -UV_EXTERN int uv_sem_trywait(uv_sem_t* sem); - -UV_EXTERN int uv_cond_init(uv_cond_t* cond); -UV_EXTERN void uv_cond_destroy(uv_cond_t* cond); -UV_EXTERN void uv_cond_signal(uv_cond_t* cond); -UV_EXTERN void uv_cond_broadcast(uv_cond_t* cond); - -UV_EXTERN int uv_barrier_init(uv_barrier_t* barrier, unsigned int count); -UV_EXTERN void uv_barrier_destroy(uv_barrier_t* barrier); -UV_EXTERN int uv_barrier_wait(uv_barrier_t* barrier); - -UV_EXTERN void uv_cond_wait(uv_cond_t* cond, uv_mutex_t* mutex); -UV_EXTERN int uv_cond_timedwait(uv_cond_t* cond, - uv_mutex_t* mutex, +UV_EXTERN int uv_dlopen(const char *filename, uv_lib_t *lib); +UV_EXTERN void uv_dlclose(uv_lib_t *lib); +UV_EXTERN int uv_dlsym(uv_lib_t *lib, const char *name, void **ptr); +UV_EXTERN const char *uv_dlerror(const uv_lib_t *lib); + +UV_EXTERN int uv_mutex_init(uv_mutex_t *handle); +UV_EXTERN int uv_mutex_init_recursive(uv_mutex_t *handle); +UV_EXTERN void uv_mutex_destroy(uv_mutex_t *handle); +UV_EXTERN void uv_mutex_lock(uv_mutex_t *handle); +UV_EXTERN int uv_mutex_trylock(uv_mutex_t *handle); +UV_EXTERN void uv_mutex_unlock(uv_mutex_t *handle); + +UV_EXTERN int uv_rwlock_init(uv_rwlock_t *rwlock); +UV_EXTERN void uv_rwlock_destroy(uv_rwlock_t *rwlock); +UV_EXTERN void uv_rwlock_rdlock(uv_rwlock_t *rwlock); +UV_EXTERN int uv_rwlock_tryrdlock(uv_rwlock_t *rwlock); +UV_EXTERN void uv_rwlock_rdunlock(uv_rwlock_t *rwlock); +UV_EXTERN void uv_rwlock_wrlock(uv_rwlock_t *rwlock); +UV_EXTERN int uv_rwlock_trywrlock(uv_rwlock_t *rwlock); +UV_EXTERN void uv_rwlock_wrunlock(uv_rwlock_t *rwlock); + +UV_EXTERN int uv_sem_init(uv_sem_t *sem, unsigned int value); +UV_EXTERN void uv_sem_destroy(uv_sem_t *sem); +UV_EXTERN void uv_sem_post(uv_sem_t *sem); +UV_EXTERN void uv_sem_wait(uv_sem_t *sem); +UV_EXTERN int uv_sem_trywait(uv_sem_t *sem); + +UV_EXTERN int uv_cond_init(uv_cond_t *cond); +UV_EXTERN void uv_cond_destroy(uv_cond_t *cond); +UV_EXTERN void uv_cond_signal(uv_cond_t *cond); +UV_EXTERN void uv_cond_broadcast(uv_cond_t *cond); + +UV_EXTERN int uv_barrier_init(uv_barrier_t *barrier, unsigned int count); +UV_EXTERN void uv_barrier_destroy(uv_barrier_t *barrier); +UV_EXTERN int uv_barrier_wait(uv_barrier_t *barrier); + +UV_EXTERN void uv_cond_wait(uv_cond_t *cond, uv_mutex_t *mutex); +UV_EXTERN int uv_cond_timedwait(uv_cond_t *cond, uv_mutex_t *mutex, uint64_t timeout); -UV_EXTERN void uv_once(uv_once_t* guard, void (*callback)(void)); +UV_EXTERN void uv_once(uv_once_t *guard, void (*callback)(void)); -UV_EXTERN int uv_key_create(uv_key_t* key); -UV_EXTERN void uv_key_delete(uv_key_t* key); -UV_EXTERN void* uv_key_get(uv_key_t* key); -UV_EXTERN void uv_key_set(uv_key_t* key, void* value); +UV_EXTERN int uv_key_create(uv_key_t *key); +UV_EXTERN void uv_key_delete(uv_key_t *key); +UV_EXTERN void *uv_key_get(uv_key_t *key); +UV_EXTERN void uv_key_set(uv_key_t *key, void *value); -UV_EXTERN int uv_gettimeofday(uv_timeval64_t* tv); +UV_EXTERN int uv_gettimeofday(uv_timeval64_t *tv); -typedef void (*uv_thread_cb)(void* arg); +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_create(uv_thread_t *tid, uv_thread_cb entry, void *arg); typedef enum { UV_THREAD_NO_FLAGS = 0x00, @@ -1782,16 +1562,15 @@ struct uv_thread_options_s { typedef struct uv_thread_options_s uv_thread_options_t; -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_create_ex(uv_thread_t *tid, + const uv_thread_options_t *params, + uv_thread_cb entry, void *arg); 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_equal(const uv_thread_t *t1, const uv_thread_t *t2); /* The presence of these unions force similar struct layout. */ -#define XX(_, name) uv_ ## name ## _t name; +#define XX(_, name) uv_##name##_t name; union uv_any_handle { UV_HANDLE_TYPE_MAP(XX) }; @@ -1801,26 +1580,25 @@ union uv_any_req { }; #undef XX - struct uv_loop_s { /* User data - use this for whatever. */ - void* data; + void *data; /* Loop reference counting. */ unsigned int active_handles; - void* handle_queue[2]; + void *handle_queue[2]; union { - void* unused; + void *unused; unsigned int count; } active_reqs; /* Internal storage for future extensions. */ - void* internal_fields; + void *internal_fields; /* Internal flag to signal loop stop. */ unsigned int stop_flag; UV_LOOP_PRIVATE_FIELDS }; -UV_EXTERN void* uv_loop_get_data(const uv_loop_t*); -UV_EXTERN void uv_loop_set_data(uv_loop_t*, void* data); +UV_EXTERN void *uv_loop_get_data(const uv_loop_t *); +UV_EXTERN void uv_loop_set_data(uv_loop_t *, void *data); /* Don't export the private CPP symbols. */ #undef UV_HANDLE_TYPE_PRIVATE diff --git a/src/libuv/include/uv/aix.h b/src/libuv/include/uv/aix.h index 7dc992fa..051b7384 100644 --- a/src/libuv/include/uv/aix.h +++ b/src/libuv/include/uv/aix.h @@ -22,11 +22,10 @@ #ifndef UV_AIX_H #define UV_AIX_H -#define UV_PLATFORM_LOOP_FIELDS \ - int fs_fd; \ +#define UV_PLATFORM_LOOP_FIELDS int fs_fd; -#define UV_PLATFORM_FS_EVENT_FIELDS \ - uv__io_t event_watcher; \ - char *dir_filename; \ +#define UV_PLATFORM_FS_EVENT_FIELDS \ + uv__io_t event_watcher; \ + char *dir_filename; #endif /* UV_AIX_H */ diff --git a/src/libuv/include/uv/android-ifaddrs.h b/src/libuv/include/uv/android-ifaddrs.h index 9cd19fec..28720ae4 100644 --- a/src/libuv/include/uv/android-ifaddrs.h +++ b/src/libuv/include/uv/android-ifaddrs.h @@ -23,25 +23,25 @@ * BSDI ifaddrs.h,v 2.5 2000/02/23 14:51:59 dab Exp */ -#ifndef _IFADDRS_H_ -#define _IFADDRS_H_ +#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; + 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 */ +#ifndef ifa_broadaddr +#define ifa_broadaddr ifa_dstaddr /* broadcast address interface */ #endif #include diff --git a/src/libuv/include/uv/bsd.h b/src/libuv/include/uv/bsd.h index 2d72b3d7..13fb5fa0 100644 --- a/src/libuv/include/uv/bsd.h +++ b/src/libuv/include/uv/bsd.h @@ -22,12 +22,11 @@ #ifndef UV_BSD_H #define UV_BSD_H -#define UV_PLATFORM_FS_EVENT_FIELDS \ - uv__io_t event_watcher; \ +#define UV_PLATFORM_FS_EVENT_FIELDS uv__io_t event_watcher; -#define UV_IO_PRIVATE_PLATFORM_FIELDS \ - int rcount; \ - int wcount; \ +#define UV_IO_PRIVATE_PLATFORM_FIELDS \ + int rcount; \ + int wcount; #define UV_HAVE_KQUEUE 1 diff --git a/src/libuv/include/uv/darwin.h b/src/libuv/include/uv/darwin.h index d2264158..f58884ff 100644 --- a/src/libuv/include/uv/darwin.h +++ b/src/libuv/include/uv/darwin.h @@ -23,38 +23,37 @@ #define UV_DARWIN_H #if defined(__APPLE__) && defined(__MACH__) -# include -# include -# include -# include -# define UV_PLATFORM_SEM_T semaphore_t +#include +#include +#include +#include +#define UV_PLATFORM_SEM_T semaphore_t #endif -#define UV_IO_PRIVATE_PLATFORM_FIELDS \ - int rcount; \ - int wcount; \ - -#define UV_PLATFORM_LOOP_FIELDS \ - uv_thread_t cf_thread; \ - void* _cf_reserved; \ - void* cf_state; \ - uv_mutex_t cf_mutex; \ - uv_sem_t cf_sem; \ - void* cf_signals[2]; \ - -#define UV_PLATFORM_FS_EVENT_FIELDS \ - uv__io_t event_watcher; \ - char* realpath; \ - int realpath_len; \ - int cf_flags; \ - uv_async_t* cf_cb; \ - void* cf_events[2]; \ - void* cf_member[2]; \ - int cf_error; \ - uv_mutex_t cf_mutex; \ - -#define UV_STREAM_PRIVATE_PLATFORM_FIELDS \ - void* select; \ +#define UV_IO_PRIVATE_PLATFORM_FIELDS \ + int rcount; \ + int wcount; + +#define UV_PLATFORM_LOOP_FIELDS \ + uv_thread_t cf_thread; \ + void *_cf_reserved; \ + void *cf_state; \ + uv_mutex_t cf_mutex; \ + uv_sem_t cf_sem; \ + void *cf_signals[2]; + +#define UV_PLATFORM_FS_EVENT_FIELDS \ + uv__io_t event_watcher; \ + char *realpath; \ + int realpath_len; \ + int cf_flags; \ + uv_async_t *cf_cb; \ + void *cf_events[2]; \ + void *cf_member[2]; \ + int cf_error; \ + uv_mutex_t cf_mutex; + +#define UV_STREAM_PRIVATE_PLATFORM_FIELDS void *select; #define UV_HAVE_KQUEUE 1 diff --git a/src/libuv/include/uv/errno.h b/src/libuv/include/uv/errno.h index 71906b3f..f09458e7 100644 --- a/src/libuv/include/uv/errno.h +++ b/src/libuv/include/uv/errno.h @@ -24,384 +24,384 @@ #include #if EDOM > 0 -# define UV__ERR(x) (-(x)) +#define UV__ERR(x) (-(x)) #else -# define UV__ERR(x) (x) +#define UV__ERR(x) (x) #endif -#define UV__EOF (-4095) +#define UV__EOF (-4095) #define UV__UNKNOWN (-4094) -#define UV__EAI_ADDRFAMILY (-3000) -#define UV__EAI_AGAIN (-3001) -#define UV__EAI_BADFLAGS (-3002) -#define UV__EAI_CANCELED (-3003) -#define UV__EAI_FAIL (-3004) -#define UV__EAI_FAMILY (-3005) -#define UV__EAI_MEMORY (-3006) -#define UV__EAI_NODATA (-3007) -#define UV__EAI_NONAME (-3008) -#define UV__EAI_OVERFLOW (-3009) -#define UV__EAI_SERVICE (-3010) -#define UV__EAI_SOCKTYPE (-3011) -#define UV__EAI_BADHINTS (-3013) -#define UV__EAI_PROTOCOL (-3014) +#define UV__EAI_ADDRFAMILY (-3000) +#define UV__EAI_AGAIN (-3001) +#define UV__EAI_BADFLAGS (-3002) +#define UV__EAI_CANCELED (-3003) +#define UV__EAI_FAIL (-3004) +#define UV__EAI_FAMILY (-3005) +#define UV__EAI_MEMORY (-3006) +#define UV__EAI_NODATA (-3007) +#define UV__EAI_NONAME (-3008) +#define UV__EAI_OVERFLOW (-3009) +#define UV__EAI_SERVICE (-3010) +#define UV__EAI_SOCKTYPE (-3011) +#define UV__EAI_BADHINTS (-3013) +#define UV__EAI_PROTOCOL (-3014) /* Only map to the system errno on non-Windows platforms. It's apparently * a fairly common practice for Windows programmers to redefine errno codes. */ #if defined(E2BIG) && !defined(_WIN32) -# define UV__E2BIG UV__ERR(E2BIG) +#define UV__E2BIG UV__ERR(E2BIG) #else -# define UV__E2BIG (-4093) +#define UV__E2BIG (-4093) #endif #if defined(EACCES) && !defined(_WIN32) -# define UV__EACCES UV__ERR(EACCES) +#define UV__EACCES UV__ERR(EACCES) #else -# define UV__EACCES (-4092) +#define UV__EACCES (-4092) #endif #if defined(EADDRINUSE) && !defined(_WIN32) -# define UV__EADDRINUSE UV__ERR(EADDRINUSE) +#define UV__EADDRINUSE UV__ERR(EADDRINUSE) #else -# define UV__EADDRINUSE (-4091) +#define UV__EADDRINUSE (-4091) #endif #if defined(EADDRNOTAVAIL) && !defined(_WIN32) -# define UV__EADDRNOTAVAIL UV__ERR(EADDRNOTAVAIL) +#define UV__EADDRNOTAVAIL UV__ERR(EADDRNOTAVAIL) #else -# define UV__EADDRNOTAVAIL (-4090) +#define UV__EADDRNOTAVAIL (-4090) #endif #if defined(EAFNOSUPPORT) && !defined(_WIN32) -# define UV__EAFNOSUPPORT UV__ERR(EAFNOSUPPORT) +#define UV__EAFNOSUPPORT UV__ERR(EAFNOSUPPORT) #else -# define UV__EAFNOSUPPORT (-4089) +#define UV__EAFNOSUPPORT (-4089) #endif #if defined(EAGAIN) && !defined(_WIN32) -# define UV__EAGAIN UV__ERR(EAGAIN) +#define UV__EAGAIN UV__ERR(EAGAIN) #else -# define UV__EAGAIN (-4088) +#define UV__EAGAIN (-4088) #endif #if defined(EALREADY) && !defined(_WIN32) -# define UV__EALREADY UV__ERR(EALREADY) +#define UV__EALREADY UV__ERR(EALREADY) #else -# define UV__EALREADY (-4084) +#define UV__EALREADY (-4084) #endif #if defined(EBADF) && !defined(_WIN32) -# define UV__EBADF UV__ERR(EBADF) +#define UV__EBADF UV__ERR(EBADF) #else -# define UV__EBADF (-4083) +#define UV__EBADF (-4083) #endif #if defined(EBUSY) && !defined(_WIN32) -# define UV__EBUSY UV__ERR(EBUSY) +#define UV__EBUSY UV__ERR(EBUSY) #else -# define UV__EBUSY (-4082) +#define UV__EBUSY (-4082) #endif #if defined(ECANCELED) && !defined(_WIN32) -# define UV__ECANCELED UV__ERR(ECANCELED) +#define UV__ECANCELED UV__ERR(ECANCELED) #else -# define UV__ECANCELED (-4081) +#define UV__ECANCELED (-4081) #endif #if defined(ECHARSET) && !defined(_WIN32) -# define UV__ECHARSET UV__ERR(ECHARSET) +#define UV__ECHARSET UV__ERR(ECHARSET) #else -# define UV__ECHARSET (-4080) +#define UV__ECHARSET (-4080) #endif #if defined(ECONNABORTED) && !defined(_WIN32) -# define UV__ECONNABORTED UV__ERR(ECONNABORTED) +#define UV__ECONNABORTED UV__ERR(ECONNABORTED) #else -# define UV__ECONNABORTED (-4079) +#define UV__ECONNABORTED (-4079) #endif #if defined(ECONNREFUSED) && !defined(_WIN32) -# define UV__ECONNREFUSED UV__ERR(ECONNREFUSED) +#define UV__ECONNREFUSED UV__ERR(ECONNREFUSED) #else -# define UV__ECONNREFUSED (-4078) +#define UV__ECONNREFUSED (-4078) #endif #if defined(ECONNRESET) && !defined(_WIN32) -# define UV__ECONNRESET UV__ERR(ECONNRESET) +#define UV__ECONNRESET UV__ERR(ECONNRESET) #else -# define UV__ECONNRESET (-4077) +#define UV__ECONNRESET (-4077) #endif #if defined(EDESTADDRREQ) && !defined(_WIN32) -# define UV__EDESTADDRREQ UV__ERR(EDESTADDRREQ) +#define UV__EDESTADDRREQ UV__ERR(EDESTADDRREQ) #else -# define UV__EDESTADDRREQ (-4076) +#define UV__EDESTADDRREQ (-4076) #endif #if defined(EEXIST) && !defined(_WIN32) -# define UV__EEXIST UV__ERR(EEXIST) +#define UV__EEXIST UV__ERR(EEXIST) #else -# define UV__EEXIST (-4075) +#define UV__EEXIST (-4075) #endif #if defined(EFAULT) && !defined(_WIN32) -# define UV__EFAULT UV__ERR(EFAULT) +#define UV__EFAULT UV__ERR(EFAULT) #else -# define UV__EFAULT (-4074) +#define UV__EFAULT (-4074) #endif #if defined(EHOSTUNREACH) && !defined(_WIN32) -# define UV__EHOSTUNREACH UV__ERR(EHOSTUNREACH) +#define UV__EHOSTUNREACH UV__ERR(EHOSTUNREACH) #else -# define UV__EHOSTUNREACH (-4073) +#define UV__EHOSTUNREACH (-4073) #endif #if defined(EINTR) && !defined(_WIN32) -# define UV__EINTR UV__ERR(EINTR) +#define UV__EINTR UV__ERR(EINTR) #else -# define UV__EINTR (-4072) +#define UV__EINTR (-4072) #endif #if defined(EINVAL) && !defined(_WIN32) -# define UV__EINVAL UV__ERR(EINVAL) +#define UV__EINVAL UV__ERR(EINVAL) #else -# define UV__EINVAL (-4071) +#define UV__EINVAL (-4071) #endif #if defined(EIO) && !defined(_WIN32) -# define UV__EIO UV__ERR(EIO) +#define UV__EIO UV__ERR(EIO) #else -# define UV__EIO (-4070) +#define UV__EIO (-4070) #endif #if defined(EISCONN) && !defined(_WIN32) -# define UV__EISCONN UV__ERR(EISCONN) +#define UV__EISCONN UV__ERR(EISCONN) #else -# define UV__EISCONN (-4069) +#define UV__EISCONN (-4069) #endif #if defined(EISDIR) && !defined(_WIN32) -# define UV__EISDIR UV__ERR(EISDIR) +#define UV__EISDIR UV__ERR(EISDIR) #else -# define UV__EISDIR (-4068) +#define UV__EISDIR (-4068) #endif #if defined(ELOOP) && !defined(_WIN32) -# define UV__ELOOP UV__ERR(ELOOP) +#define UV__ELOOP UV__ERR(ELOOP) #else -# define UV__ELOOP (-4067) +#define UV__ELOOP (-4067) #endif #if defined(EMFILE) && !defined(_WIN32) -# define UV__EMFILE UV__ERR(EMFILE) +#define UV__EMFILE UV__ERR(EMFILE) #else -# define UV__EMFILE (-4066) +#define UV__EMFILE (-4066) #endif #if defined(EMSGSIZE) && !defined(_WIN32) -# define UV__EMSGSIZE UV__ERR(EMSGSIZE) +#define UV__EMSGSIZE UV__ERR(EMSGSIZE) #else -# define UV__EMSGSIZE (-4065) +#define UV__EMSGSIZE (-4065) #endif #if defined(ENAMETOOLONG) && !defined(_WIN32) -# define UV__ENAMETOOLONG UV__ERR(ENAMETOOLONG) +#define UV__ENAMETOOLONG UV__ERR(ENAMETOOLONG) #else -# define UV__ENAMETOOLONG (-4064) +#define UV__ENAMETOOLONG (-4064) #endif #if defined(ENETDOWN) && !defined(_WIN32) -# define UV__ENETDOWN UV__ERR(ENETDOWN) +#define UV__ENETDOWN UV__ERR(ENETDOWN) #else -# define UV__ENETDOWN (-4063) +#define UV__ENETDOWN (-4063) #endif #if defined(ENETUNREACH) && !defined(_WIN32) -# define UV__ENETUNREACH UV__ERR(ENETUNREACH) +#define UV__ENETUNREACH UV__ERR(ENETUNREACH) #else -# define UV__ENETUNREACH (-4062) +#define UV__ENETUNREACH (-4062) #endif #if defined(ENFILE) && !defined(_WIN32) -# define UV__ENFILE UV__ERR(ENFILE) +#define UV__ENFILE UV__ERR(ENFILE) #else -# define UV__ENFILE (-4061) +#define UV__ENFILE (-4061) #endif #if defined(ENOBUFS) && !defined(_WIN32) -# define UV__ENOBUFS UV__ERR(ENOBUFS) +#define UV__ENOBUFS UV__ERR(ENOBUFS) #else -# define UV__ENOBUFS (-4060) +#define UV__ENOBUFS (-4060) #endif #if defined(ENODEV) && !defined(_WIN32) -# define UV__ENODEV UV__ERR(ENODEV) +#define UV__ENODEV UV__ERR(ENODEV) #else -# define UV__ENODEV (-4059) +#define UV__ENODEV (-4059) #endif #if defined(ENOENT) && !defined(_WIN32) -# define UV__ENOENT UV__ERR(ENOENT) +#define UV__ENOENT UV__ERR(ENOENT) #else -# define UV__ENOENT (-4058) +#define UV__ENOENT (-4058) #endif #if defined(ENOMEM) && !defined(_WIN32) -# define UV__ENOMEM UV__ERR(ENOMEM) +#define UV__ENOMEM UV__ERR(ENOMEM) #else -# define UV__ENOMEM (-4057) +#define UV__ENOMEM (-4057) #endif #if defined(ENONET) && !defined(_WIN32) -# define UV__ENONET UV__ERR(ENONET) +#define UV__ENONET UV__ERR(ENONET) #else -# define UV__ENONET (-4056) +#define UV__ENONET (-4056) #endif #if defined(ENOSPC) && !defined(_WIN32) -# define UV__ENOSPC UV__ERR(ENOSPC) +#define UV__ENOSPC UV__ERR(ENOSPC) #else -# define UV__ENOSPC (-4055) +#define UV__ENOSPC (-4055) #endif #if defined(ENOSYS) && !defined(_WIN32) -# define UV__ENOSYS UV__ERR(ENOSYS) +#define UV__ENOSYS UV__ERR(ENOSYS) #else -# define UV__ENOSYS (-4054) +#define UV__ENOSYS (-4054) #endif #if defined(ENOTCONN) && !defined(_WIN32) -# define UV__ENOTCONN UV__ERR(ENOTCONN) +#define UV__ENOTCONN UV__ERR(ENOTCONN) #else -# define UV__ENOTCONN (-4053) +#define UV__ENOTCONN (-4053) #endif #if defined(ENOTDIR) && !defined(_WIN32) -# define UV__ENOTDIR UV__ERR(ENOTDIR) +#define UV__ENOTDIR UV__ERR(ENOTDIR) #else -# define UV__ENOTDIR (-4052) +#define UV__ENOTDIR (-4052) #endif #if defined(ENOTEMPTY) && !defined(_WIN32) -# define UV__ENOTEMPTY UV__ERR(ENOTEMPTY) +#define UV__ENOTEMPTY UV__ERR(ENOTEMPTY) #else -# define UV__ENOTEMPTY (-4051) +#define UV__ENOTEMPTY (-4051) #endif #if defined(ENOTSOCK) && !defined(_WIN32) -# define UV__ENOTSOCK UV__ERR(ENOTSOCK) +#define UV__ENOTSOCK UV__ERR(ENOTSOCK) #else -# define UV__ENOTSOCK (-4050) +#define UV__ENOTSOCK (-4050) #endif #if defined(ENOTSUP) && !defined(_WIN32) -# define UV__ENOTSUP UV__ERR(ENOTSUP) +#define UV__ENOTSUP UV__ERR(ENOTSUP) #else -# define UV__ENOTSUP (-4049) +#define UV__ENOTSUP (-4049) #endif #if defined(EPERM) && !defined(_WIN32) -# define UV__EPERM UV__ERR(EPERM) +#define UV__EPERM UV__ERR(EPERM) #else -# define UV__EPERM (-4048) +#define UV__EPERM (-4048) #endif #if defined(EPIPE) && !defined(_WIN32) -# define UV__EPIPE UV__ERR(EPIPE) +#define UV__EPIPE UV__ERR(EPIPE) #else -# define UV__EPIPE (-4047) +#define UV__EPIPE (-4047) #endif #if defined(EPROTO) && !defined(_WIN32) -# define UV__EPROTO UV__ERR(EPROTO) +#define UV__EPROTO UV__ERR(EPROTO) #else -# define UV__EPROTO (-4046) +#define UV__EPROTO (-4046) #endif #if defined(EPROTONOSUPPORT) && !defined(_WIN32) -# define UV__EPROTONOSUPPORT UV__ERR(EPROTONOSUPPORT) +#define UV__EPROTONOSUPPORT UV__ERR(EPROTONOSUPPORT) #else -# define UV__EPROTONOSUPPORT (-4045) +#define UV__EPROTONOSUPPORT (-4045) #endif #if defined(EPROTOTYPE) && !defined(_WIN32) -# define UV__EPROTOTYPE UV__ERR(EPROTOTYPE) +#define UV__EPROTOTYPE UV__ERR(EPROTOTYPE) #else -# define UV__EPROTOTYPE (-4044) +#define UV__EPROTOTYPE (-4044) #endif #if defined(EROFS) && !defined(_WIN32) -# define UV__EROFS UV__ERR(EROFS) +#define UV__EROFS UV__ERR(EROFS) #else -# define UV__EROFS (-4043) +#define UV__EROFS (-4043) #endif #if defined(ESHUTDOWN) && !defined(_WIN32) -# define UV__ESHUTDOWN UV__ERR(ESHUTDOWN) +#define UV__ESHUTDOWN UV__ERR(ESHUTDOWN) #else -# define UV__ESHUTDOWN (-4042) +#define UV__ESHUTDOWN (-4042) #endif #if defined(ESPIPE) && !defined(_WIN32) -# define UV__ESPIPE UV__ERR(ESPIPE) +#define UV__ESPIPE UV__ERR(ESPIPE) #else -# define UV__ESPIPE (-4041) +#define UV__ESPIPE (-4041) #endif #if defined(ESRCH) && !defined(_WIN32) -# define UV__ESRCH UV__ERR(ESRCH) +#define UV__ESRCH UV__ERR(ESRCH) #else -# define UV__ESRCH (-4040) +#define UV__ESRCH (-4040) #endif #if defined(ETIMEDOUT) && !defined(_WIN32) -# define UV__ETIMEDOUT UV__ERR(ETIMEDOUT) +#define UV__ETIMEDOUT UV__ERR(ETIMEDOUT) #else -# define UV__ETIMEDOUT (-4039) +#define UV__ETIMEDOUT (-4039) #endif #if defined(ETXTBSY) && !defined(_WIN32) -# define UV__ETXTBSY UV__ERR(ETXTBSY) +#define UV__ETXTBSY UV__ERR(ETXTBSY) #else -# define UV__ETXTBSY (-4038) +#define UV__ETXTBSY (-4038) #endif #if defined(EXDEV) && !defined(_WIN32) -# define UV__EXDEV UV__ERR(EXDEV) +#define UV__EXDEV UV__ERR(EXDEV) #else -# define UV__EXDEV (-4037) +#define UV__EXDEV (-4037) #endif #if defined(EFBIG) && !defined(_WIN32) -# define UV__EFBIG UV__ERR(EFBIG) +#define UV__EFBIG UV__ERR(EFBIG) #else -# define UV__EFBIG (-4036) +#define UV__EFBIG (-4036) #endif #if defined(ENOPROTOOPT) && !defined(_WIN32) -# define UV__ENOPROTOOPT UV__ERR(ENOPROTOOPT) +#define UV__ENOPROTOOPT UV__ERR(ENOPROTOOPT) #else -# define UV__ENOPROTOOPT (-4035) +#define UV__ENOPROTOOPT (-4035) #endif #if defined(ERANGE) && !defined(_WIN32) -# define UV__ERANGE UV__ERR(ERANGE) +#define UV__ERANGE UV__ERR(ERANGE) #else -# define UV__ERANGE (-4034) +#define UV__ERANGE (-4034) #endif #if defined(ENXIO) && !defined(_WIN32) -# define UV__ENXIO UV__ERR(ENXIO) +#define UV__ENXIO UV__ERR(ENXIO) #else -# define UV__ENXIO (-4033) +#define UV__ENXIO (-4033) #endif #if defined(EMLINK) && !defined(_WIN32) -# define UV__EMLINK UV__ERR(EMLINK) +#define UV__EMLINK UV__ERR(EMLINK) #else -# define UV__EMLINK (-4032) +#define UV__EMLINK (-4032) #endif /* EHOSTDOWN is not visible on BSD-like systems when _POSIX_C_SOURCE is @@ -409,52 +409,48 @@ * icky to hard-code it. */ #if defined(EHOSTDOWN) && !defined(_WIN32) -# define UV__EHOSTDOWN UV__ERR(EHOSTDOWN) -#elif defined(__APPLE__) || \ - defined(__DragonFly__) || \ - defined(__FreeBSD__) || \ - defined(__FreeBSD_kernel__) || \ - defined(__NetBSD__) || \ - defined(__OpenBSD__) -# define UV__EHOSTDOWN (-64) +#define UV__EHOSTDOWN UV__ERR(EHOSTDOWN) +#elif defined(__APPLE__) || defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) +#define UV__EHOSTDOWN (-64) #else -# define UV__EHOSTDOWN (-4031) +#define UV__EHOSTDOWN (-4031) #endif #if defined(EREMOTEIO) && !defined(_WIN32) -# define UV__EREMOTEIO UV__ERR(EREMOTEIO) +#define UV__EREMOTEIO UV__ERR(EREMOTEIO) #else -# define UV__EREMOTEIO (-4030) +#define UV__EREMOTEIO (-4030) #endif #if defined(ENOTTY) && !defined(_WIN32) -# define UV__ENOTTY UV__ERR(ENOTTY) +#define UV__ENOTTY UV__ERR(ENOTTY) #else -# define UV__ENOTTY (-4029) +#define UV__ENOTTY (-4029) #endif #if defined(EFTYPE) && !defined(_WIN32) -# define UV__EFTYPE UV__ERR(EFTYPE) +#define UV__EFTYPE UV__ERR(EFTYPE) #else -# define UV__EFTYPE (-4028) +#define UV__EFTYPE (-4028) #endif #if defined(EILSEQ) && !defined(_WIN32) -# define UV__EILSEQ UV__ERR(EILSEQ) +#define UV__EILSEQ UV__ERR(EILSEQ) #else -# define UV__EILSEQ (-4027) +#define UV__EILSEQ (-4027) #endif #if defined(EOVERFLOW) && !defined(_WIN32) -# define UV__EOVERFLOW UV__ERR(EOVERFLOW) +#define UV__EOVERFLOW UV__ERR(EOVERFLOW) #else -# define UV__EOVERFLOW (-4026) +#define UV__EOVERFLOW (-4026) #endif #if defined(ESOCKTNOSUPPORT) && !defined(_WIN32) -# define UV__ESOCKTNOSUPPORT UV__ERR(ESOCKTNOSUPPORT) +#define UV__ESOCKTNOSUPPORT UV__ERR(ESOCKTNOSUPPORT) #else -# define UV__ESOCKTNOSUPPORT (-4025) +#define UV__ESOCKTNOSUPPORT (-4025) #endif #endif /* UV_ERRNO_H_ */ diff --git a/src/libuv/include/uv/linux.h b/src/libuv/include/uv/linux.h index 9b38405a..99291a25 100644 --- a/src/libuv/include/uv/linux.h +++ b/src/libuv/include/uv/linux.h @@ -22,13 +22,13 @@ #ifndef UV_LINUX_H #define UV_LINUX_H -#define UV_PLATFORM_LOOP_FIELDS \ - uv__io_t inotify_read_watcher; \ - void* inotify_watchers; \ - int inotify_fd; \ +#define UV_PLATFORM_LOOP_FIELDS \ + uv__io_t inotify_read_watcher; \ + void *inotify_watchers; \ + int inotify_fd; -#define UV_PLATFORM_FS_EVENT_FIELDS \ - void* watchers[2]; \ - int wd; \ +#define UV_PLATFORM_FS_EVENT_FIELDS \ + void *watchers[2]; \ + int wd; #endif /* UV_LINUX_H */ diff --git a/src/libuv/include/uv/os390.h b/src/libuv/include/uv/os390.h index 0267d74c..e85b794e 100644 --- a/src/libuv/include/uv/os390.h +++ b/src/libuv/include/uv/os390.h @@ -24,10 +24,8 @@ #define UV_PLATFORM_SEM_T long -#define UV_PLATFORM_LOOP_FIELDS \ - void* ep; \ +#define UV_PLATFORM_LOOP_FIELDS void *ep; -#define UV_PLATFORM_FS_EVENT_FIELDS \ - char rfis_rftok[8]; \ +#define UV_PLATFORM_FS_EVENT_FIELDS char rfis_rftok[8]; #endif /* UV_MVS_H */ diff --git a/src/libuv/include/uv/posix.h b/src/libuv/include/uv/posix.h index 9a96634d..11c8431d 100644 --- a/src/libuv/include/uv/posix.h +++ b/src/libuv/include/uv/posix.h @@ -22,10 +22,10 @@ #ifndef UV_POSIX_H #define UV_POSIX_H -#define UV_PLATFORM_LOOP_FIELDS \ - struct pollfd* poll_fds; \ - size_t poll_fds_used; \ - size_t poll_fds_size; \ - unsigned char poll_fds_iterating; \ +#define UV_PLATFORM_LOOP_FIELDS \ + struct pollfd *poll_fds; \ + size_t poll_fds_used; \ + size_t poll_fds_size; \ + unsigned char poll_fds_iterating; #endif /* UV_POSIX_H */ diff --git a/src/libuv/include/uv/stdint-msvc2008.h b/src/libuv/include/uv/stdint-msvc2008.h index d02608a5..b3d2a71a 100644 --- a/src/libuv/include/uv/stdint-msvc2008.h +++ b/src/libuv/include/uv/stdint-msvc2008.h @@ -1,32 +1,32 @@ // ISO C9x compliant stdint.h for Microsoft Visual Studio -// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 -// +// 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, +// 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 // [ @@ -49,20 +49,19 @@ #ifdef __cplusplus extern "C" { #endif -# include +#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 +#if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 +#define _W64 __w64 +#else +#define _W64 +#endif #endif - // 7.18.1 Integer types @@ -72,176 +71,175 @@ extern "C" { // 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; +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; +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; - +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; +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; +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; +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; - +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 +#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 +#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 +#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 +#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 +#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 +#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 +#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 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 +#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 ] +#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 ] +#define WCHAR_MIN 0 +#endif // WCHAR_MIN ] #ifndef WCHAR_MAX // [ -# define WCHAR_MAX _UI16_MAX -#endif // WCHAR_MAX ] +#define WCHAR_MAX _UI16_MAX +#endif // WCHAR_MAX ] -#define WINT_MIN 0 -#define WINT_MAX _UI16_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 +#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 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 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 +#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/sunos.h b/src/libuv/include/uv/sunos.h index 04216642..3d8d8dd1 100644 --- a/src/libuv/include/uv/sunos.h +++ b/src/libuv/include/uv/sunos.h @@ -22,22 +22,22 @@ #ifndef UV_SUNOS_H #define UV_SUNOS_H -#include #include +#include /* For the sake of convenience and reduced #ifdef-ery in src/unix/sunos.c, * add the fs_event fields even when this version of SunOS doesn't support * file watching. */ -#define UV_PLATFORM_LOOP_FIELDS \ - uv__io_t fs_event_watcher; \ - int fs_fd; \ +#define UV_PLATFORM_LOOP_FIELDS \ + uv__io_t fs_event_watcher; \ + int fs_fd; #if defined(PORT_SOURCE_FILE) -# define UV_PLATFORM_FS_EVENT_FIELDS \ - file_obj_t fo; \ - int fd; \ +#define UV_PLATFORM_FS_EVENT_FIELDS \ + file_obj_t fo; \ + int fd; #endif /* defined(PORT_SOURCE_FILE) */ diff --git a/src/libuv/include/uv/threadpool.h b/src/libuv/include/uv/threadpool.h index 9708ebdd..53c4e098 100644 --- a/src/libuv/include/uv/threadpool.h +++ b/src/libuv/include/uv/threadpool.h @@ -30,8 +30,8 @@ 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_loop_s *loop; + void *wq[2]; }; #endif /* UV_THREADPOOL_H_ */ diff --git a/src/libuv/include/uv/tree.h b/src/libuv/include/uv/tree.h index 2b28835f..b4badbbd 100644 --- a/src/libuv/include/uv/tree.h +++ b/src/libuv/include/uv/tree.h @@ -23,15 +23,15 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef UV_TREE_H_ -#define UV_TREE_H_ +#ifndef UV_TREE_H_ +#define UV_TREE_H_ #ifndef UV__UNUSED -# if __GNUC__ -# define UV__UNUSED __attribute__((unused)) -# else -# define UV__UNUSED -# endif +#if __GNUC__ +#define UV__UNUSED __attribute__((unused)) +#else +#define UV__UNUSED +#endif #endif /* @@ -61,708 +61,679 @@ * 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_HEAD(name, type) \ + struct name { \ + struct type *sph_root; /* root of the tree */ \ + } -#define SPLAY_INITIALIZER(root) \ - { NULL } +#define SPLAY_INITIALIZER(root) {NULL} -#define SPLAY_INIT(root) do { \ - (root)->sph_root = NULL; \ -} while (/*CONSTCOND*/ 0) +#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_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) +#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) +#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)); \ -} +#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; \ +#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 { \ - struct type *rbh_root; /* root of the tree */ \ -} - -#define RB_INITIALIZER(root) \ - { NULL } - -#define RB_INIT(root) do { \ - (root)->rbh_root = NULL; \ -} while (/*CONSTCOND*/ 0) - -#define RB_BLACK 0 -#define RB_RED 1 -#define RB_ENTRY(type) \ -struct { \ - struct type *rbe_left; /* left element */ \ - struct type *rbe_right; /* right element */ \ - struct type *rbe_parent; /* parent element */ \ - int rbe_color; /* node color */ \ -} - -#define RB_LEFT(elm, field) (elm)->field.rbe_left -#define RB_RIGHT(elm, field) (elm)->field.rbe_right -#define RB_PARENT(elm, field) (elm)->field.rbe_parent -#define RB_COLOR(elm, field) (elm)->field.rbe_color -#define RB_ROOT(head) (head)->rbh_root -#define RB_EMPTY(head) (RB_ROOT(head) == NULL) - -#define RB_SET(elm, parent, field) do { \ - RB_PARENT(elm, field) = parent; \ - RB_LEFT(elm, field) = RB_RIGHT(elm, field) = NULL; \ - RB_COLOR(elm, field) = RB_RED; \ -} while (/*CONSTCOND*/ 0) - -#define RB_SET_BLACKRED(black, red, field) do { \ - RB_COLOR(black, field) = RB_BLACK; \ - RB_COLOR(red, field) = RB_RED; \ -} while (/*CONSTCOND*/ 0) +#define RB_HEAD(name, type) \ + struct name { \ + struct type *rbh_root; /* root of the tree */ \ + } + +#define RB_INITIALIZER(root) {NULL} + +#define RB_INIT(root) \ + do { \ + (root)->rbh_root = NULL; \ + } while (/*CONSTCOND*/ 0) + +#define RB_BLACK 0 +#define RB_RED 1 +#define RB_ENTRY(type) \ + struct { \ + struct type *rbe_left; /* left element */ \ + struct type *rbe_right; /* right element */ \ + struct type *rbe_parent; /* parent element */ \ + int rbe_color; /* node color */ \ + } + +#define RB_LEFT(elm, field) (elm)->field.rbe_left +#define RB_RIGHT(elm, field) (elm)->field.rbe_right +#define RB_PARENT(elm, field) (elm)->field.rbe_parent +#define RB_COLOR(elm, field) (elm)->field.rbe_color +#define RB_ROOT(head) (head)->rbh_root +#define RB_EMPTY(head) (RB_ROOT(head) == NULL) + +#define RB_SET(elm, parent, field) \ + do { \ + RB_PARENT(elm, field) = parent; \ + RB_LEFT(elm, field) = RB_RIGHT(elm, field) = NULL; \ + RB_COLOR(elm, field) = RB_RED; \ + } while (/*CONSTCOND*/ 0) + +#define RB_SET_BLACKRED(black, red, field) \ + do { \ + RB_COLOR(black, field) = RB_BLACK; \ + RB_COLOR(red, field) = RB_RED; \ + } while (/*CONSTCOND*/ 0) #ifndef RB_AUGMENT -#define RB_AUGMENT(x) do {} while (0) +#define RB_AUGMENT(x) \ + do { \ + } while (0) #endif -#define RB_ROTATE_LEFT(head, elm, tmp, field) do { \ - (tmp) = RB_RIGHT(elm, field); \ - if ((RB_RIGHT(elm, field) = RB_LEFT(tmp, field)) != NULL) { \ - RB_PARENT(RB_LEFT(tmp, field), field) = (elm); \ - } \ - RB_AUGMENT(elm); \ - if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \ - if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \ - RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \ - else \ - RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \ - } else \ - (head)->rbh_root = (tmp); \ - RB_LEFT(tmp, field) = (elm); \ - RB_PARENT(elm, field) = (tmp); \ - RB_AUGMENT(tmp); \ - if ((RB_PARENT(tmp, field))) \ - RB_AUGMENT(RB_PARENT(tmp, field)); \ -} while (/*CONSTCOND*/ 0) - -#define RB_ROTATE_RIGHT(head, elm, tmp, field) do { \ - (tmp) = RB_LEFT(elm, field); \ - if ((RB_LEFT(elm, field) = RB_RIGHT(tmp, field)) != NULL) { \ - RB_PARENT(RB_RIGHT(tmp, field), field) = (elm); \ - } \ - RB_AUGMENT(elm); \ - if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \ - if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \ - RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \ - else \ - RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \ - } else \ - (head)->rbh_root = (tmp); \ - RB_RIGHT(tmp, field) = (elm); \ - RB_PARENT(elm, field) = (tmp); \ - RB_AUGMENT(tmp); \ - if ((RB_PARENT(tmp, field))) \ - RB_AUGMENT(RB_PARENT(tmp, field)); \ -} while (/*CONSTCOND*/ 0) +#define RB_ROTATE_LEFT(head, elm, tmp, field) \ + do { \ + (tmp) = RB_RIGHT(elm, field); \ + if ((RB_RIGHT(elm, field) = RB_LEFT(tmp, field)) != NULL) { \ + RB_PARENT(RB_LEFT(tmp, field), field) = (elm); \ + } \ + RB_AUGMENT(elm); \ + if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \ + if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \ + RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \ + else \ + RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \ + } else \ + (head)->rbh_root = (tmp); \ + RB_LEFT(tmp, field) = (elm); \ + RB_PARENT(elm, field) = (tmp); \ + RB_AUGMENT(tmp); \ + if ((RB_PARENT(tmp, field))) \ + RB_AUGMENT(RB_PARENT(tmp, field)); \ + } while (/*CONSTCOND*/ 0) + +#define RB_ROTATE_RIGHT(head, elm, tmp, field) \ + do { \ + (tmp) = RB_LEFT(elm, field); \ + if ((RB_LEFT(elm, field) = RB_RIGHT(tmp, field)) != NULL) { \ + RB_PARENT(RB_RIGHT(tmp, field), field) = (elm); \ + } \ + RB_AUGMENT(elm); \ + if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \ + if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \ + RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \ + else \ + RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \ + } else \ + (head)->rbh_root = (tmp); \ + RB_RIGHT(tmp, field) = (elm); \ + RB_PARENT(elm, field) = (tmp); \ + RB_AUGMENT(tmp); \ + if ((RB_PARENT(tmp, field))) \ + RB_AUGMENT(RB_PARENT(tmp, field)); \ + } while (/*CONSTCOND*/ 0) /* Generates prototypes and inline functions */ -#define RB_PROTOTYPE(name, type, field, cmp) \ - RB_PROTOTYPE_INTERNAL(name, type, field, cmp,) -#define RB_PROTOTYPE_STATIC(name, type, field, cmp) \ +#define RB_PROTOTYPE(name, type, field, cmp) \ + RB_PROTOTYPE_INTERNAL(name, type, field, cmp, ) +#define RB_PROTOTYPE_STATIC(name, type, field, cmp) \ RB_PROTOTYPE_INTERNAL(name, type, field, cmp, UV__UNUSED static) -#define RB_PROTOTYPE_INTERNAL(name, type, field, cmp, attr) \ -attr void name##_RB_INSERT_COLOR(struct name *, struct type *); \ -attr void name##_RB_REMOVE_COLOR(struct name *, struct type *, struct type *);\ -attr struct type *name##_RB_REMOVE(struct name *, struct type *); \ -attr struct type *name##_RB_INSERT(struct name *, struct type *); \ -attr struct type *name##_RB_FIND(struct name *, struct type *); \ -attr struct type *name##_RB_NFIND(struct name *, struct type *); \ -attr struct type *name##_RB_NEXT(struct type *); \ -attr struct type *name##_RB_PREV(struct type *); \ -attr struct type *name##_RB_MINMAX(struct name *, int); \ - \ +#define RB_PROTOTYPE_INTERNAL(name, type, field, cmp, attr) \ + attr void name##_RB_INSERT_COLOR(struct name *, struct type *); \ + attr void name##_RB_REMOVE_COLOR(struct name *, struct type *, \ + struct type *); \ + attr struct type *name##_RB_REMOVE(struct name *, struct type *); \ + attr struct type *name##_RB_INSERT(struct name *, struct type *); \ + attr struct type *name##_RB_FIND(struct name *, struct type *); \ + attr struct type *name##_RB_NFIND(struct name *, struct type *); \ + attr struct type *name##_RB_NEXT(struct type *); \ + attr struct type *name##_RB_PREV(struct type *); \ + attr struct type *name##_RB_MINMAX(struct name *, int); /* Main rb operation. * Moves node close to the key of elm to top */ -#define RB_GENERATE(name, type, field, cmp) \ - RB_GENERATE_INTERNAL(name, type, field, cmp,) -#define RB_GENERATE_STATIC(name, type, field, cmp) \ +#define RB_GENERATE(name, type, field, cmp) \ + RB_GENERATE_INTERNAL(name, type, field, cmp, ) +#define RB_GENERATE_STATIC(name, type, field, cmp) \ RB_GENERATE_INTERNAL(name, type, field, cmp, UV__UNUSED static) -#define RB_GENERATE_INTERNAL(name, type, field, cmp, attr) \ -attr void \ -name##_RB_INSERT_COLOR(struct name *head, struct type *elm) \ -{ \ - struct type *parent, *gparent, *tmp; \ - while ((parent = RB_PARENT(elm, field)) != NULL && \ - RB_COLOR(parent, field) == RB_RED) { \ - gparent = RB_PARENT(parent, field); \ - if (parent == RB_LEFT(gparent, field)) { \ - tmp = RB_RIGHT(gparent, field); \ - if (tmp && RB_COLOR(tmp, field) == RB_RED) { \ - RB_COLOR(tmp, field) = RB_BLACK; \ - RB_SET_BLACKRED(parent, gparent, field); \ - elm = gparent; \ - continue; \ - } \ - if (RB_RIGHT(parent, field) == elm) { \ - RB_ROTATE_LEFT(head, parent, tmp, field); \ - tmp = parent; \ - parent = elm; \ - elm = tmp; \ - } \ - RB_SET_BLACKRED(parent, gparent, field); \ - RB_ROTATE_RIGHT(head, gparent, tmp, field); \ - } else { \ - tmp = RB_LEFT(gparent, field); \ - if (tmp && RB_COLOR(tmp, field) == RB_RED) { \ - RB_COLOR(tmp, field) = RB_BLACK; \ - RB_SET_BLACKRED(parent, gparent, field); \ - elm = gparent; \ - continue; \ - } \ - if (RB_LEFT(parent, field) == elm) { \ - RB_ROTATE_RIGHT(head, parent, tmp, field); \ - tmp = parent; \ - parent = elm; \ - elm = tmp; \ - } \ - RB_SET_BLACKRED(parent, gparent, field); \ - RB_ROTATE_LEFT(head, gparent, tmp, field); \ - } \ - } \ - RB_COLOR(head->rbh_root, field) = RB_BLACK; \ -} \ - \ -attr void \ -name##_RB_REMOVE_COLOR(struct name *head, struct type *parent, \ - struct type *elm) \ -{ \ - struct type *tmp; \ - while ((elm == NULL || RB_COLOR(elm, field) == RB_BLACK) && \ - elm != RB_ROOT(head)) { \ - if (RB_LEFT(parent, field) == elm) { \ - tmp = RB_RIGHT(parent, field); \ - if (RB_COLOR(tmp, field) == RB_RED) { \ - RB_SET_BLACKRED(tmp, parent, field); \ - RB_ROTATE_LEFT(head, parent, tmp, field); \ - tmp = RB_RIGHT(parent, field); \ - } \ - if ((RB_LEFT(tmp, field) == NULL || \ - RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) && \ - (RB_RIGHT(tmp, field) == NULL || \ - RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) { \ - RB_COLOR(tmp, field) = RB_RED; \ - elm = parent; \ - parent = RB_PARENT(elm, field); \ - } else { \ - if (RB_RIGHT(tmp, field) == NULL || \ - RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK) { \ - struct type *oleft; \ - if ((oleft = RB_LEFT(tmp, field)) \ - != NULL) \ - RB_COLOR(oleft, field) = RB_BLACK; \ - RB_COLOR(tmp, field) = RB_RED; \ - RB_ROTATE_RIGHT(head, tmp, oleft, field); \ - tmp = RB_RIGHT(parent, field); \ - } \ - RB_COLOR(tmp, field) = RB_COLOR(parent, field); \ - RB_COLOR(parent, field) = RB_BLACK; \ - if (RB_RIGHT(tmp, field)) \ - RB_COLOR(RB_RIGHT(tmp, field), field) = RB_BLACK; \ - RB_ROTATE_LEFT(head, parent, tmp, field); \ - elm = RB_ROOT(head); \ - break; \ - } \ - } else { \ - tmp = RB_LEFT(parent, field); \ - if (RB_COLOR(tmp, field) == RB_RED) { \ - RB_SET_BLACKRED(tmp, parent, field); \ - RB_ROTATE_RIGHT(head, parent, tmp, field); \ - tmp = RB_LEFT(parent, field); \ - } \ - if ((RB_LEFT(tmp, field) == NULL || \ - RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) && \ - (RB_RIGHT(tmp, field) == NULL || \ - RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) { \ - RB_COLOR(tmp, field) = RB_RED; \ - elm = parent; \ - parent = RB_PARENT(elm, field); \ - } else { \ - if (RB_LEFT(tmp, field) == NULL || \ - RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) { \ - struct type *oright; \ - if ((oright = RB_RIGHT(tmp, field)) \ - != NULL) \ - RB_COLOR(oright, field) = RB_BLACK; \ - RB_COLOR(tmp, field) = RB_RED; \ - RB_ROTATE_LEFT(head, tmp, oright, field); \ - tmp = RB_LEFT(parent, field); \ - } \ - RB_COLOR(tmp, field) = RB_COLOR(parent, field); \ - RB_COLOR(parent, field) = RB_BLACK; \ - if (RB_LEFT(tmp, field)) \ - RB_COLOR(RB_LEFT(tmp, field), field) = RB_BLACK; \ - RB_ROTATE_RIGHT(head, parent, tmp, field); \ - elm = RB_ROOT(head); \ - break; \ - } \ - } \ - } \ - if (elm) \ - RB_COLOR(elm, field) = RB_BLACK; \ -} \ - \ -attr struct type * \ -name##_RB_REMOVE(struct name *head, struct type *elm) \ -{ \ - struct type *child, *parent, *old = elm; \ - int color; \ - if (RB_LEFT(elm, field) == NULL) \ - child = RB_RIGHT(elm, field); \ - else if (RB_RIGHT(elm, field) == NULL) \ - child = RB_LEFT(elm, field); \ - else { \ - struct type *left; \ - elm = RB_RIGHT(elm, field); \ - while ((left = RB_LEFT(elm, field)) != NULL) \ - elm = left; \ - child = RB_RIGHT(elm, field); \ - parent = RB_PARENT(elm, field); \ - color = RB_COLOR(elm, field); \ - if (child) \ - RB_PARENT(child, field) = parent; \ - if (parent) { \ - if (RB_LEFT(parent, field) == elm) \ - RB_LEFT(parent, field) = child; \ - else \ - RB_RIGHT(parent, field) = child; \ - RB_AUGMENT(parent); \ - } else \ - RB_ROOT(head) = child; \ - if (RB_PARENT(elm, field) == old) \ - parent = elm; \ - (elm)->field = (old)->field; \ - if (RB_PARENT(old, field)) { \ - if (RB_LEFT(RB_PARENT(old, field), field) == old) \ - RB_LEFT(RB_PARENT(old, field), field) = elm; \ - else \ - RB_RIGHT(RB_PARENT(old, field), field) = elm; \ - RB_AUGMENT(RB_PARENT(old, field)); \ - } else \ - RB_ROOT(head) = elm; \ - RB_PARENT(RB_LEFT(old, field), field) = elm; \ - if (RB_RIGHT(old, field)) \ - RB_PARENT(RB_RIGHT(old, field), field) = elm; \ - if (parent) { \ - left = parent; \ - do { \ - RB_AUGMENT(left); \ - } while ((left = RB_PARENT(left, field)) != NULL); \ - } \ - goto color; \ - } \ - parent = RB_PARENT(elm, field); \ - color = RB_COLOR(elm, field); \ - if (child) \ - RB_PARENT(child, field) = parent; \ - if (parent) { \ - if (RB_LEFT(parent, field) == elm) \ - RB_LEFT(parent, field) = child; \ - else \ - RB_RIGHT(parent, field) = child; \ - RB_AUGMENT(parent); \ - } else \ - RB_ROOT(head) = child; \ -color: \ - if (color == RB_BLACK) \ - name##_RB_REMOVE_COLOR(head, parent, child); \ - return (old); \ -} \ - \ -/* Inserts a node into the RB tree */ \ -attr struct type * \ -name##_RB_INSERT(struct name *head, struct type *elm) \ -{ \ - struct type *tmp; \ - struct type *parent = NULL; \ - int comp = 0; \ - tmp = RB_ROOT(head); \ - while (tmp) { \ - parent = tmp; \ - comp = (cmp)(elm, parent); \ - if (comp < 0) \ - tmp = RB_LEFT(tmp, field); \ - else if (comp > 0) \ - tmp = RB_RIGHT(tmp, field); \ - else \ - return (tmp); \ - } \ - RB_SET(elm, parent, field); \ - if (parent != NULL) { \ - if (comp < 0) \ - RB_LEFT(parent, field) = elm; \ - else \ - RB_RIGHT(parent, field) = elm; \ - RB_AUGMENT(parent); \ - } else \ - RB_ROOT(head) = elm; \ - name##_RB_INSERT_COLOR(head, elm); \ - return (NULL); \ -} \ - \ -/* Finds the node with the same key as elm */ \ -attr struct type * \ -name##_RB_FIND(struct name *head, struct type *elm) \ -{ \ - struct type *tmp = RB_ROOT(head); \ - int comp; \ - while (tmp) { \ - comp = cmp(elm, tmp); \ - if (comp < 0) \ - tmp = RB_LEFT(tmp, field); \ - else if (comp > 0) \ - tmp = RB_RIGHT(tmp, field); \ - else \ - return (tmp); \ - } \ - return (NULL); \ -} \ - \ -/* Finds the first node greater than or equal to the search key */ \ -attr struct type * \ -name##_RB_NFIND(struct name *head, struct type *elm) \ -{ \ - struct type *tmp = RB_ROOT(head); \ - struct type *res = NULL; \ - int comp; \ - while (tmp) { \ - comp = cmp(elm, tmp); \ - if (comp < 0) { \ - res = tmp; \ - tmp = RB_LEFT(tmp, field); \ - } \ - else if (comp > 0) \ - tmp = RB_RIGHT(tmp, field); \ - else \ - return (tmp); \ - } \ - return (res); \ -} \ - \ -/* ARGSUSED */ \ -attr struct type * \ -name##_RB_NEXT(struct type *elm) \ -{ \ - if (RB_RIGHT(elm, field)) { \ - elm = RB_RIGHT(elm, field); \ - while (RB_LEFT(elm, field)) \ - elm = RB_LEFT(elm, field); \ - } else { \ - if (RB_PARENT(elm, field) && \ - (elm == RB_LEFT(RB_PARENT(elm, field), field))) \ - elm = RB_PARENT(elm, field); \ - else { \ - while (RB_PARENT(elm, field) && \ - (elm == RB_RIGHT(RB_PARENT(elm, field), field))) \ - elm = RB_PARENT(elm, field); \ - elm = RB_PARENT(elm, field); \ - } \ - } \ - return (elm); \ -} \ - \ -/* ARGSUSED */ \ -attr struct type * \ -name##_RB_PREV(struct type *elm) \ -{ \ - if (RB_LEFT(elm, field)) { \ - elm = RB_LEFT(elm, field); \ - while (RB_RIGHT(elm, field)) \ - elm = RB_RIGHT(elm, field); \ - } else { \ - if (RB_PARENT(elm, field) && \ - (elm == RB_RIGHT(RB_PARENT(elm, field), field))) \ - elm = RB_PARENT(elm, field); \ - else { \ - while (RB_PARENT(elm, field) && \ - (elm == RB_LEFT(RB_PARENT(elm, field), field))) \ - elm = RB_PARENT(elm, field); \ - elm = RB_PARENT(elm, field); \ - } \ - } \ - return (elm); \ -} \ - \ -attr struct type * \ -name##_RB_MINMAX(struct name *head, int val) \ -{ \ - struct type *tmp = RB_ROOT(head); \ - struct type *parent = NULL; \ - while (tmp) { \ - parent = tmp; \ - if (val < 0) \ - tmp = RB_LEFT(tmp, field); \ - else \ - tmp = RB_RIGHT(tmp, field); \ - } \ - return (parent); \ -} - -#define RB_NEGINF -1 -#define RB_INF 1 - -#define RB_INSERT(name, x, y) name##_RB_INSERT(x, y) -#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_MIN(name, x) name##_RB_MINMAX(x, RB_NEGINF) -#define RB_MAX(name, x) name##_RB_MINMAX(x, RB_INF) - -#define RB_FOREACH(x, name, head) \ - for ((x) = RB_MIN(name, head); \ - (x) != NULL; \ - (x) = name##_RB_NEXT(x)) - -#define RB_FOREACH_FROM(x, name, y) \ - for ((x) = (y); \ - ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); \ +#define RB_GENERATE_INTERNAL(name, type, field, cmp, attr) \ + attr void name##_RB_INSERT_COLOR(struct name *head, struct type *elm) { \ + struct type *parent, *gparent, *tmp; \ + while ((parent = RB_PARENT(elm, field)) != NULL && \ + RB_COLOR(parent, field) == RB_RED) { \ + gparent = RB_PARENT(parent, field); \ + if (parent == RB_LEFT(gparent, field)) { \ + tmp = RB_RIGHT(gparent, field); \ + if (tmp && RB_COLOR(tmp, field) == RB_RED) { \ + RB_COLOR(tmp, field) = RB_BLACK; \ + RB_SET_BLACKRED(parent, gparent, field); \ + elm = gparent; \ + continue; \ + } \ + if (RB_RIGHT(parent, field) == elm) { \ + RB_ROTATE_LEFT(head, parent, tmp, field); \ + tmp = parent; \ + parent = elm; \ + elm = tmp; \ + } \ + RB_SET_BLACKRED(parent, gparent, field); \ + RB_ROTATE_RIGHT(head, gparent, tmp, field); \ + } else { \ + tmp = RB_LEFT(gparent, field); \ + if (tmp && RB_COLOR(tmp, field) == RB_RED) { \ + RB_COLOR(tmp, field) = RB_BLACK; \ + RB_SET_BLACKRED(parent, gparent, field); \ + elm = gparent; \ + continue; \ + } \ + if (RB_LEFT(parent, field) == elm) { \ + RB_ROTATE_RIGHT(head, parent, tmp, field); \ + tmp = parent; \ + parent = elm; \ + elm = tmp; \ + } \ + RB_SET_BLACKRED(parent, gparent, field); \ + RB_ROTATE_LEFT(head, gparent, tmp, field); \ + } \ + } \ + RB_COLOR(head->rbh_root, field) = RB_BLACK; \ + } \ + \ + attr void name##_RB_REMOVE_COLOR(struct name *head, struct type *parent, \ + struct type *elm) { \ + struct type *tmp; \ + while ((elm == NULL || RB_COLOR(elm, field) == RB_BLACK) && \ + elm != RB_ROOT(head)) { \ + if (RB_LEFT(parent, field) == elm) { \ + tmp = RB_RIGHT(parent, field); \ + if (RB_COLOR(tmp, field) == RB_RED) { \ + RB_SET_BLACKRED(tmp, parent, field); \ + RB_ROTATE_LEFT(head, parent, tmp, field); \ + tmp = RB_RIGHT(parent, field); \ + } \ + if ((RB_LEFT(tmp, field) == NULL || \ + RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) && \ + (RB_RIGHT(tmp, field) == NULL || \ + RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) { \ + RB_COLOR(tmp, field) = RB_RED; \ + elm = parent; \ + parent = RB_PARENT(elm, field); \ + } else { \ + if (RB_RIGHT(tmp, field) == NULL || \ + RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK) { \ + struct type *oleft; \ + if ((oleft = RB_LEFT(tmp, field)) != NULL) \ + RB_COLOR(oleft, field) = RB_BLACK; \ + RB_COLOR(tmp, field) = RB_RED; \ + RB_ROTATE_RIGHT(head, tmp, oleft, field); \ + tmp = RB_RIGHT(parent, field); \ + } \ + RB_COLOR(tmp, field) = RB_COLOR(parent, field); \ + RB_COLOR(parent, field) = RB_BLACK; \ + if (RB_RIGHT(tmp, field)) \ + RB_COLOR(RB_RIGHT(tmp, field), field) = RB_BLACK; \ + RB_ROTATE_LEFT(head, parent, tmp, field); \ + elm = RB_ROOT(head); \ + break; \ + } \ + } else { \ + tmp = RB_LEFT(parent, field); \ + if (RB_COLOR(tmp, field) == RB_RED) { \ + RB_SET_BLACKRED(tmp, parent, field); \ + RB_ROTATE_RIGHT(head, parent, tmp, field); \ + tmp = RB_LEFT(parent, field); \ + } \ + if ((RB_LEFT(tmp, field) == NULL || \ + RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) && \ + (RB_RIGHT(tmp, field) == NULL || \ + RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) { \ + RB_COLOR(tmp, field) = RB_RED; \ + elm = parent; \ + parent = RB_PARENT(elm, field); \ + } else { \ + if (RB_LEFT(tmp, field) == NULL || \ + RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) { \ + struct type *oright; \ + if ((oright = RB_RIGHT(tmp, field)) != NULL) \ + RB_COLOR(oright, field) = RB_BLACK; \ + RB_COLOR(tmp, field) = RB_RED; \ + RB_ROTATE_LEFT(head, tmp, oright, field); \ + tmp = RB_LEFT(parent, field); \ + } \ + RB_COLOR(tmp, field) = RB_COLOR(parent, field); \ + RB_COLOR(parent, field) = RB_BLACK; \ + if (RB_LEFT(tmp, field)) \ + RB_COLOR(RB_LEFT(tmp, field), field) = RB_BLACK; \ + RB_ROTATE_RIGHT(head, parent, tmp, field); \ + elm = RB_ROOT(head); \ + break; \ + } \ + } \ + } \ + if (elm) \ + RB_COLOR(elm, field) = RB_BLACK; \ + } \ + \ + attr struct type *name##_RB_REMOVE(struct name *head, struct type *elm) { \ + struct type *child, *parent, *old = elm; \ + int color; \ + if (RB_LEFT(elm, field) == NULL) \ + child = RB_RIGHT(elm, field); \ + else if (RB_RIGHT(elm, field) == NULL) \ + child = RB_LEFT(elm, field); \ + else { \ + struct type *left; \ + elm = RB_RIGHT(elm, field); \ + while ((left = RB_LEFT(elm, field)) != NULL) \ + elm = left; \ + child = RB_RIGHT(elm, field); \ + parent = RB_PARENT(elm, field); \ + color = RB_COLOR(elm, field); \ + if (child) \ + RB_PARENT(child, field) = parent; \ + if (parent) { \ + if (RB_LEFT(parent, field) == elm) \ + RB_LEFT(parent, field) = child; \ + else \ + RB_RIGHT(parent, field) = child; \ + RB_AUGMENT(parent); \ + } else \ + RB_ROOT(head) = child; \ + if (RB_PARENT(elm, field) == old) \ + parent = elm; \ + (elm)->field = (old)->field; \ + if (RB_PARENT(old, field)) { \ + if (RB_LEFT(RB_PARENT(old, field), field) == old) \ + RB_LEFT(RB_PARENT(old, field), field) = elm; \ + else \ + RB_RIGHT(RB_PARENT(old, field), field) = elm; \ + RB_AUGMENT(RB_PARENT(old, field)); \ + } else \ + RB_ROOT(head) = elm; \ + RB_PARENT(RB_LEFT(old, field), field) = elm; \ + if (RB_RIGHT(old, field)) \ + RB_PARENT(RB_RIGHT(old, field), field) = elm; \ + if (parent) { \ + left = parent; \ + do { \ + RB_AUGMENT(left); \ + } while ((left = RB_PARENT(left, field)) != NULL); \ + } \ + goto color; \ + } \ + parent = RB_PARENT(elm, field); \ + color = RB_COLOR(elm, field); \ + if (child) \ + RB_PARENT(child, field) = parent; \ + if (parent) { \ + if (RB_LEFT(parent, field) == elm) \ + RB_LEFT(parent, field) = child; \ + else \ + RB_RIGHT(parent, field) = child; \ + RB_AUGMENT(parent); \ + } else \ + RB_ROOT(head) = child; \ + color: \ + if (color == RB_BLACK) \ + name##_RB_REMOVE_COLOR(head, parent, child); \ + return (old); \ + } \ + \ + /* Inserts a node into the RB tree */ \ + attr struct type *name##_RB_INSERT(struct name *head, struct type *elm) { \ + struct type *tmp; \ + struct type *parent = NULL; \ + int comp = 0; \ + tmp = RB_ROOT(head); \ + while (tmp) { \ + parent = tmp; \ + comp = (cmp)(elm, parent); \ + if (comp < 0) \ + tmp = RB_LEFT(tmp, field); \ + else if (comp > 0) \ + tmp = RB_RIGHT(tmp, field); \ + else \ + return (tmp); \ + } \ + RB_SET(elm, parent, field); \ + if (parent != NULL) { \ + if (comp < 0) \ + RB_LEFT(parent, field) = elm; \ + else \ + RB_RIGHT(parent, field) = elm; \ + RB_AUGMENT(parent); \ + } else \ + RB_ROOT(head) = elm; \ + name##_RB_INSERT_COLOR(head, elm); \ + return (NULL); \ + } \ + \ + /* Finds the node with the same key as elm */ \ + attr struct type *name##_RB_FIND(struct name *head, struct type *elm) { \ + struct type *tmp = RB_ROOT(head); \ + int comp; \ + while (tmp) { \ + comp = cmp(elm, tmp); \ + if (comp < 0) \ + tmp = RB_LEFT(tmp, field); \ + else if (comp > 0) \ + tmp = RB_RIGHT(tmp, field); \ + else \ + return (tmp); \ + } \ + return (NULL); \ + } \ + \ + /* Finds the first node greater than or equal to the search key */ \ + attr struct type *name##_RB_NFIND(struct name *head, struct type *elm) { \ + struct type *tmp = RB_ROOT(head); \ + struct type *res = NULL; \ + int comp; \ + while (tmp) { \ + comp = cmp(elm, tmp); \ + if (comp < 0) { \ + res = tmp; \ + tmp = RB_LEFT(tmp, field); \ + } else if (comp > 0) \ + tmp = RB_RIGHT(tmp, field); \ + else \ + return (tmp); \ + } \ + return (res); \ + } \ + \ + /* ARGSUSED */ \ + attr struct type *name##_RB_NEXT(struct type *elm) { \ + if (RB_RIGHT(elm, field)) { \ + elm = RB_RIGHT(elm, field); \ + while (RB_LEFT(elm, field)) \ + elm = RB_LEFT(elm, field); \ + } else { \ + if (RB_PARENT(elm, field) && \ + (elm == RB_LEFT(RB_PARENT(elm, field), field))) \ + elm = RB_PARENT(elm, field); \ + else { \ + while (RB_PARENT(elm, field) && \ + (elm == RB_RIGHT(RB_PARENT(elm, field), field))) \ + elm = RB_PARENT(elm, field); \ + elm = RB_PARENT(elm, field); \ + } \ + } \ + return (elm); \ + } \ + \ + /* ARGSUSED */ \ + attr struct type *name##_RB_PREV(struct type *elm) { \ + if (RB_LEFT(elm, field)) { \ + elm = RB_LEFT(elm, field); \ + while (RB_RIGHT(elm, field)) \ + elm = RB_RIGHT(elm, field); \ + } else { \ + if (RB_PARENT(elm, field) && \ + (elm == RB_RIGHT(RB_PARENT(elm, field), field))) \ + elm = RB_PARENT(elm, field); \ + else { \ + while (RB_PARENT(elm, field) && \ + (elm == RB_LEFT(RB_PARENT(elm, field), field))) \ + elm = RB_PARENT(elm, field); \ + elm = RB_PARENT(elm, field); \ + } \ + } \ + return (elm); \ + } \ + \ + attr struct type *name##_RB_MINMAX(struct name *head, int val) { \ + struct type *tmp = RB_ROOT(head); \ + struct type *parent = NULL; \ + while (tmp) { \ + parent = tmp; \ + if (val < 0) \ + tmp = RB_LEFT(tmp, field); \ + else \ + tmp = RB_RIGHT(tmp, field); \ + } \ + return (parent); \ + } + +#define RB_NEGINF -1 +#define RB_INF 1 + +#define RB_INSERT(name, x, y) name##_RB_INSERT(x, y) +#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_MIN(name, x) name##_RB_MINMAX(x, RB_NEGINF) +#define RB_MAX(name, x) name##_RB_MINMAX(x, RB_INF) + +#define RB_FOREACH(x, name, head) \ + for ((x) = RB_MIN(name, head); (x) != NULL; (x) = name##_RB_NEXT(x)) + +#define RB_FOREACH_FROM(x, name, y) \ + for ((x) = (y); ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); \ (x) = (y)) -#define RB_FOREACH_SAFE(x, name, head, y) \ - for ((x) = RB_MIN(name, head); \ - ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); \ - (x) = (y)) +#define RB_FOREACH_SAFE(x, name, head, y) \ + for ((x) = RB_MIN(name, head); \ + ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); (x) = (y)) -#define RB_FOREACH_REVERSE(x, name, head) \ - for ((x) = RB_MAX(name, head); \ - (x) != NULL; \ - (x) = name##_RB_PREV(x)) +#define RB_FOREACH_REVERSE(x, name, head) \ + for ((x) = RB_MAX(name, head); (x) != NULL; (x) = name##_RB_PREV(x)) -#define RB_FOREACH_REVERSE_FROM(x, name, y) \ - for ((x) = (y); \ - ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); \ +#define RB_FOREACH_REVERSE_FROM(x, name, y) \ + for ((x) = (y); ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); \ (x) = (y)) -#define RB_FOREACH_REVERSE_SAFE(x, name, head, y) \ - for ((x) = RB_MAX(name, head); \ - ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); \ - (x) = (y)) +#define RB_FOREACH_REVERSE_SAFE(x, name, head, y) \ + for ((x) = RB_MAX(name, head); \ + ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); (x) = (y)) -#endif /* UV_TREE_H_ */ +#endif /* UV_TREE_H_ */ diff --git a/src/libuv/include/uv/unix.h b/src/libuv/include/uv/unix.h index ea37d787..c5725dcf 100644 --- a/src/libuv/include/uv/unix.h +++ b/src/libuv/include/uv/unix.h @@ -22,19 +22,19 @@ #ifndef UV_UNIX_H #define UV_UNIX_H -#include -#include -#include #include +#include +#include +#include -#include +#include +#include /* MAXHOSTNAMELEN on Solaris */ #include #include -#include -#include /* MAXHOSTNAMELEN on Solaris */ +#include -#include #include +#include #if !defined(__MVS__) #include @@ -46,55 +46,48 @@ #include "uv/threadpool.h" #if defined(__linux__) -# include "uv/linux.h" -#elif defined (__MVS__) -# include "uv/os390.h" -#elif defined(__PASE__) /* __PASE__ and _AIX are both defined on IBM i */ -# include "uv/posix.h" /* IBM i needs uv/posix.h, not uv/aix.h */ +#include "uv/linux.h" +#elif defined(__MVS__) +#include "uv/os390.h" +#elif defined(__PASE__) /* __PASE__ and _AIX are both defined on IBM i */ +#include "uv/posix.h" /* IBM i needs uv/posix.h, not uv/aix.h */ #elif defined(_AIX) -# include "uv/aix.h" +#include "uv/aix.h" #elif defined(__sun) -# include "uv/sunos.h" +#include "uv/sunos.h" #elif defined(__APPLE__) -# include "uv/darwin.h" -#elif defined(__DragonFly__) || \ - defined(__FreeBSD__) || \ - defined(__FreeBSD_kernel__) || \ - defined(__OpenBSD__) || \ - defined(__NetBSD__) -# include "uv/bsd.h" -#elif defined(__CYGWIN__) || \ - defined(__MSYS__) || \ - defined(__HAIKU__) || \ - defined(__QNX__) || \ - defined(__GNU__) -# include "uv/posix.h" +#include "uv/darwin.h" +#elif defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__NetBSD__) +#include "uv/bsd.h" +#elif defined(__CYGWIN__) || defined(__MSYS__) || defined(__HAIKU__) || \ + defined(__QNX__) || defined(__GNU__) +#include "uv/posix.h" #endif #ifndef NI_MAXHOST -# define NI_MAXHOST 1025 +#define NI_MAXHOST 1025 #endif #ifndef NI_MAXSERV -# define NI_MAXSERV 32 +#define NI_MAXSERV 32 #endif #ifndef UV_IO_PRIVATE_PLATFORM_FIELDS -# define UV_IO_PRIVATE_PLATFORM_FIELDS /* empty */ +#define UV_IO_PRIVATE_PLATFORM_FIELDS /* empty */ #endif struct uv__io_s; struct uv_loop_s; -typedef void (*uv__io_cb)(struct uv_loop_s* loop, - struct uv__io_s* w, +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]; + void *pending_queue[2]; + void *watcher_queue[2]; unsigned int pevents; /* Pending event mask i.e. mask at next tick. */ unsigned int events; /* Current event mask. */ int fd; @@ -102,24 +95,24 @@ struct uv__io_s { }; #ifndef UV_PLATFORM_SEM_T -# define UV_PLATFORM_SEM_T sem_t +#define UV_PLATFORM_SEM_T sem_t #endif #ifndef UV_PLATFORM_LOOP_FIELDS -# define UV_PLATFORM_LOOP_FIELDS /* empty */ +#define UV_PLATFORM_LOOP_FIELDS /* empty */ #endif #ifndef UV_PLATFORM_FS_EVENT_FIELDS -# define UV_PLATFORM_FS_EVENT_FIELDS /* empty */ +#define UV_PLATFORM_FS_EVENT_FIELDS /* empty */ #endif #ifndef UV_STREAM_PRIVATE_PLATFORM_FIELDS -# define UV_STREAM_PRIVATE_PLATFORM_FIELDS /* empty */ +#define UV_STREAM_PRIVATE_PLATFORM_FIELDS /* empty */ #endif /* Note: May be cast to struct iovec. See writev(2). */ typedef struct uv_buf_t { - char* base; + char *base; size_t len; } uv_buf_t; @@ -139,8 +132,7 @@ typedef pthread_cond_t uv_cond_t; typedef pthread_key_t uv_key_t; /* Note: guard clauses should match uv_barrier_init's in src/unix/thread.c. */ -#if defined(_AIX) || \ - defined(__OpenBSD__) || \ +#if defined(_AIX) || defined(__OpenBSD__) || \ !defined(PTHREAD_BARRIER_SERIAL_THREAD) /* TODO(bnoordhuis) Merge into uv_barrier_t in v2. */ struct _uv_barrier { @@ -152,11 +144,11 @@ struct _uv_barrier { }; typedef struct { - struct _uv_barrier* b; -# if defined(PTHREAD_BARRIER_SERIAL_THREAD) + struct _uv_barrier *b; +#if defined(PTHREAD_BARRIER_SERIAL_THREAD) /* TODO(bnoordhuis) Remove padding in v2. */ - char pad[sizeof(pthread_barrier_t) - sizeof(struct _uv_barrier*)]; -# endif + char pad[sizeof(pthread_barrier_t) - sizeof(struct _uv_barrier *)]; +#endif } uv_barrier_t; #else typedef pthread_barrier_t uv_barrier_t; @@ -168,338 +160,333 @@ typedef uid_t uv_uid_t; typedef struct dirent uv__dirent_t; -#define UV_DIR_PRIVATE_FIELDS \ - DIR* dir; +#define UV_DIR_PRIVATE_FIELDS DIR *dir; #if defined(DT_UNKNOWN) -# define HAVE_DIRENT_TYPES -# if defined(DT_REG) -# define UV__DT_FILE DT_REG -# else -# define UV__DT_FILE -1 -# endif -# if defined(DT_DIR) -# define UV__DT_DIR DT_DIR -# else -# define UV__DT_DIR -2 -# endif -# if defined(DT_LNK) -# define UV__DT_LINK DT_LNK -# else -# define UV__DT_LINK -3 -# endif -# if defined(DT_FIFO) -# define UV__DT_FIFO DT_FIFO -# else -# define UV__DT_FIFO -4 -# endif -# if defined(DT_SOCK) -# define UV__DT_SOCKET DT_SOCK -# else -# define UV__DT_SOCKET -5 -# endif -# if defined(DT_CHR) -# define UV__DT_CHAR DT_CHR -# else -# define UV__DT_CHAR -6 -# endif -# if defined(DT_BLK) -# define UV__DT_BLOCK DT_BLK -# else -# define UV__DT_BLOCK -7 -# endif +#define HAVE_DIRENT_TYPES +#if defined(DT_REG) +#define UV__DT_FILE DT_REG +#else +#define UV__DT_FILE -1 +#endif +#if defined(DT_DIR) +#define UV__DT_DIR DT_DIR +#else +#define UV__DT_DIR -2 +#endif +#if defined(DT_LNK) +#define UV__DT_LINK DT_LNK +#else +#define UV__DT_LINK -3 +#endif +#if defined(DT_FIFO) +#define UV__DT_FIFO DT_FIFO +#else +#define UV__DT_FIFO -4 +#endif +#if defined(DT_SOCK) +#define UV__DT_SOCKET DT_SOCK +#else +#define UV__DT_SOCKET -5 +#endif +#if defined(DT_CHR) +#define UV__DT_CHAR DT_CHR +#else +#define UV__DT_CHAR -6 +#endif +#if defined(DT_BLK) +#define UV__DT_BLOCK DT_BLK +#else +#define UV__DT_BLOCK -7 +#endif #endif /* Platform-specific definitions for uv_dlopen support. */ #define UV_DYNAMIC /* empty */ typedef struct { - void* handle; - char* errmsg; + void *handle; + char *errmsg; } uv_lib_t; -#define UV_LOOP_PRIVATE_FIELDS \ - unsigned long flags; \ - int backend_fd; \ - void* pending_queue[2]; \ - void* watcher_queue[2]; \ - uv__io_t** watchers; \ - unsigned int nwatchers; \ - unsigned int nfds; \ - void* wq[2]; \ - 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]; \ - void (*async_unused)(void); /* TODO(bnoordhuis) Remove in libuv v2. */ \ - uv__io_t async_io_watcher; \ - int async_wfd; \ - struct { \ - void* min; \ - unsigned int nelts; \ - } timer_heap; \ - uint64_t timer_counter; \ - uint64_t time; \ - int signal_pipefd[2]; \ - uv__io_t signal_io_watcher; \ - uv_signal_t child_watcher; \ - int emfile_fd; \ - UV_PLATFORM_LOOP_FIELDS \ +#define UV_LOOP_PRIVATE_FIELDS \ + unsigned long flags; \ + int backend_fd; \ + void *pending_queue[2]; \ + void *watcher_queue[2]; \ + uv__io_t **watchers; \ + unsigned int nwatchers; \ + unsigned int nfds; \ + void *wq[2]; \ + 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]; \ + void (*async_unused)(void); /* TODO(bnoordhuis) Remove in libuv v2. */ \ + uv__io_t async_io_watcher; \ + int async_wfd; \ + struct { \ + void *min; \ + unsigned int nelts; \ + } timer_heap; \ + uint64_t timer_counter; \ + uint64_t time; \ + int signal_pipefd[2]; \ + uv__io_t signal_io_watcher; \ + uv_signal_t child_watcher; \ + int emfile_fd; \ + UV_PLATFORM_LOOP_FIELDS #define UV_REQ_TYPE_PRIVATE /* empty */ -#define UV_REQ_PRIVATE_FIELDS /* empty */ +#define UV_REQ_PRIVATE_FIELDS /* empty */ #define UV_PRIVATE_REQ_TYPES /* empty */ -#define UV_WRITE_PRIVATE_FIELDS \ - void* queue[2]; \ - unsigned int write_index; \ - uv_buf_t* bufs; \ - unsigned int nbufs; \ - int error; \ - uv_buf_t bufsml[4]; \ +#define UV_WRITE_PRIVATE_FIELDS \ + void *queue[2]; \ + unsigned int write_index; \ + uv_buf_t *bufs; \ + unsigned int nbufs; \ + int error; \ + uv_buf_t bufsml[4]; -#define UV_CONNECT_PRIVATE_FIELDS \ - void* queue[2]; \ +#define UV_CONNECT_PRIVATE_FIELDS void *queue[2]; #define UV_SHUTDOWN_PRIVATE_FIELDS /* empty */ -#define UV_UDP_SEND_PRIVATE_FIELDS \ - void* queue[2]; \ - struct sockaddr_storage addr; \ - unsigned int nbufs; \ - uv_buf_t* bufs; \ - ssize_t status; \ - uv_udp_send_cb send_cb; \ - uv_buf_t bufsml[4]; \ - -#define UV_HANDLE_PRIVATE_FIELDS \ - uv_handle_t* next_closing; \ - unsigned int flags; \ - -#define UV_STREAM_PRIVATE_FIELDS \ - uv_connect_t *connect_req; \ - uv_shutdown_t *shutdown_req; \ - uv__io_t io_watcher; \ - void* write_queue[2]; \ - void* write_completed_queue[2]; \ - uv_connection_cb connection_cb; \ - int delayed_error; \ - int accepted_fd; \ - void* queued_fds; \ - UV_STREAM_PRIVATE_PLATFORM_FIELDS \ +#define UV_UDP_SEND_PRIVATE_FIELDS \ + void *queue[2]; \ + struct sockaddr_storage addr; \ + unsigned int nbufs; \ + uv_buf_t *bufs; \ + ssize_t status; \ + uv_udp_send_cb send_cb; \ + uv_buf_t bufsml[4]; + +#define UV_HANDLE_PRIVATE_FIELDS \ + uv_handle_t *next_closing; \ + unsigned int flags; + +#define UV_STREAM_PRIVATE_FIELDS \ + uv_connect_t *connect_req; \ + uv_shutdown_t *shutdown_req; \ + uv__io_t io_watcher; \ + void *write_queue[2]; \ + void *write_completed_queue[2]; \ + uv_connection_cb connection_cb; \ + int delayed_error; \ + int accepted_fd; \ + void *queued_fds; \ + UV_STREAM_PRIVATE_PLATFORM_FIELDS #define UV_TCP_PRIVATE_FIELDS /* empty */ -#define UV_UDP_PRIVATE_FIELDS \ - 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]; \ - -#define UV_PIPE_PRIVATE_FIELDS \ - const char* pipe_fname; /* 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]; \ - -#define UV_CHECK_PRIVATE_FIELDS \ - uv_check_cb check_cb; \ - void* queue[2]; \ - -#define UV_IDLE_PRIVATE_FIELDS \ - uv_idle_cb idle_cb; \ - void* queue[2]; \ - -#define UV_ASYNC_PRIVATE_FIELDS \ - uv_async_cb async_cb; \ - void* queue[2]; \ - int pending; \ - -#define UV_TIMER_PRIVATE_FIELDS \ - uv_timer_cb timer_cb; \ - void* heap_node[3]; \ - uint64_t timeout; \ - uint64_t repeat; \ +#define UV_UDP_PRIVATE_FIELDS \ + 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]; + +#define UV_PIPE_PRIVATE_FIELDS const char *pipe_fname; /* 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]; + +#define UV_CHECK_PRIVATE_FIELDS \ + uv_check_cb check_cb; \ + void *queue[2]; + +#define UV_IDLE_PRIVATE_FIELDS \ + uv_idle_cb idle_cb; \ + void *queue[2]; + +#define UV_ASYNC_PRIVATE_FIELDS \ + uv_async_cb async_cb; \ + void *queue[2]; \ + int pending; + +#define UV_TIMER_PRIVATE_FIELDS \ + uv_timer_cb timer_cb; \ + void *heap_node[3]; \ + uint64_t timeout; \ + uint64_t repeat; \ uint64_t start_id; -#define UV_GETADDRINFO_PRIVATE_FIELDS \ - struct uv__work work_req; \ - uv_getaddrinfo_cb cb; \ - struct addrinfo* hints; \ - char* hostname; \ - char* service; \ - struct addrinfo* addrinfo; \ +#define UV_GETADDRINFO_PRIVATE_FIELDS \ + struct uv__work work_req; \ + uv_getaddrinfo_cb cb; \ + struct addrinfo *hints; \ + char *hostname; \ + char *service; \ + struct addrinfo *addrinfo; \ int retcode; -#define UV_GETNAMEINFO_PRIVATE_FIELDS \ - struct uv__work work_req; \ - uv_getnameinfo_cb getnameinfo_cb; \ - struct sockaddr_storage storage; \ - int flags; \ - char host[NI_MAXHOST]; \ - char service[NI_MAXSERV]; \ +#define UV_GETNAMEINFO_PRIVATE_FIELDS \ + struct uv__work work_req; \ + uv_getnameinfo_cb getnameinfo_cb; \ + struct sockaddr_storage storage; \ + int flags; \ + char host[NI_MAXHOST]; \ + char service[NI_MAXSERV]; \ int retcode; -#define UV_PROCESS_PRIVATE_FIELDS \ - void* queue[2]; \ - int status; \ - -#define UV_FS_PRIVATE_FIELDS \ - const char *new_path; \ - uv_file file; \ - int flags; \ - mode_t mode; \ - unsigned int nbufs; \ - uv_buf_t* bufs; \ - off_t off; \ - uv_uid_t uid; \ - uv_gid_t gid; \ - double atime; \ - double mtime; \ - struct uv__work work_req; \ - uv_buf_t bufsml[4]; \ - -#define UV_WORK_PRIVATE_FIELDS \ - struct uv__work work_req; - -#define UV_TTY_PRIVATE_FIELDS \ - struct termios orig_termios; \ +#define UV_PROCESS_PRIVATE_FIELDS \ + void *queue[2]; \ + int status; + +#define UV_FS_PRIVATE_FIELDS \ + const char *new_path; \ + uv_file file; \ + int flags; \ + mode_t mode; \ + unsigned int nbufs; \ + uv_buf_t *bufs; \ + off_t off; \ + uv_uid_t uid; \ + uv_gid_t gid; \ + double atime; \ + double mtime; \ + struct uv__work work_req; \ + uv_buf_t bufsml[4]; + +#define UV_WORK_PRIVATE_FIELDS struct uv__work work_req; + +#define UV_TTY_PRIVATE_FIELDS \ + struct termios orig_termios; \ int mode; -#define UV_SIGNAL_PRIVATE_FIELDS \ - /* RB_ENTRY(uv_signal_s) tree_entry; */ \ - struct { \ - struct uv_signal_s* rbe_left; \ - struct uv_signal_s* rbe_right; \ - struct uv_signal_s* rbe_parent; \ - int rbe_color; \ - } tree_entry; \ - /* Use two counters here so we don have to fiddle with atomics. */ \ - unsigned int caught_signals; \ +#define UV_SIGNAL_PRIVATE_FIELDS \ + /* RB_ENTRY(uv_signal_s) tree_entry; */ \ + struct { \ + struct uv_signal_s *rbe_left; \ + struct uv_signal_s *rbe_right; \ + struct uv_signal_s *rbe_parent; \ + int rbe_color; \ + } tree_entry; \ + /* Use two counters here so we don have to fiddle with atomics. */ \ + unsigned int caught_signals; \ unsigned int dispatched_signals; -#define UV_FS_EVENT_PRIVATE_FIELDS \ - uv_fs_event_cb cb; \ - UV_PLATFORM_FS_EVENT_FIELDS \ +#define UV_FS_EVENT_PRIVATE_FIELDS \ + uv_fs_event_cb cb; \ + UV_PLATFORM_FS_EVENT_FIELDS /* fs open() flags supported on this platform: */ #if defined(O_APPEND) -# define UV_FS_O_APPEND O_APPEND +#define UV_FS_O_APPEND O_APPEND #else -# define UV_FS_O_APPEND 0 +#define UV_FS_O_APPEND 0 #endif #if defined(O_CREAT) -# define UV_FS_O_CREAT O_CREAT +#define UV_FS_O_CREAT O_CREAT #else -# define UV_FS_O_CREAT 0 +#define UV_FS_O_CREAT 0 #endif #if defined(__linux__) && defined(__arm__) -# define UV_FS_O_DIRECT 0x10000 +#define UV_FS_O_DIRECT 0x10000 #elif defined(__linux__) && defined(__m68k__) -# define UV_FS_O_DIRECT 0x10000 +#define UV_FS_O_DIRECT 0x10000 #elif defined(__linux__) && defined(__mips__) -# define UV_FS_O_DIRECT 0x08000 +#define UV_FS_O_DIRECT 0x08000 #elif defined(__linux__) && defined(__powerpc__) -# define UV_FS_O_DIRECT 0x20000 +#define UV_FS_O_DIRECT 0x20000 #elif defined(__linux__) && defined(__s390x__) -# define UV_FS_O_DIRECT 0x04000 +#define UV_FS_O_DIRECT 0x04000 #elif defined(__linux__) && defined(__x86_64__) -# define UV_FS_O_DIRECT 0x04000 +#define UV_FS_O_DIRECT 0x04000 #elif defined(O_DIRECT) -# define UV_FS_O_DIRECT O_DIRECT +#define UV_FS_O_DIRECT O_DIRECT #else -# define UV_FS_O_DIRECT 0 +#define UV_FS_O_DIRECT 0 #endif #if defined(O_DIRECTORY) -# define UV_FS_O_DIRECTORY O_DIRECTORY +#define UV_FS_O_DIRECTORY O_DIRECTORY #else -# define UV_FS_O_DIRECTORY 0 +#define UV_FS_O_DIRECTORY 0 #endif #if defined(O_DSYNC) -# define UV_FS_O_DSYNC O_DSYNC +#define UV_FS_O_DSYNC O_DSYNC #else -# define UV_FS_O_DSYNC 0 +#define UV_FS_O_DSYNC 0 #endif #if defined(O_EXCL) -# define UV_FS_O_EXCL O_EXCL +#define UV_FS_O_EXCL O_EXCL #else -# define UV_FS_O_EXCL 0 +#define UV_FS_O_EXCL 0 #endif #if defined(O_EXLOCK) -# define UV_FS_O_EXLOCK O_EXLOCK +#define UV_FS_O_EXLOCK O_EXLOCK #else -# define UV_FS_O_EXLOCK 0 +#define UV_FS_O_EXLOCK 0 #endif #if defined(O_NOATIME) -# define UV_FS_O_NOATIME O_NOATIME +#define UV_FS_O_NOATIME O_NOATIME #else -# define UV_FS_O_NOATIME 0 +#define UV_FS_O_NOATIME 0 #endif #if defined(O_NOCTTY) -# define UV_FS_O_NOCTTY O_NOCTTY +#define UV_FS_O_NOCTTY O_NOCTTY #else -# define UV_FS_O_NOCTTY 0 +#define UV_FS_O_NOCTTY 0 #endif #if defined(O_NOFOLLOW) -# define UV_FS_O_NOFOLLOW O_NOFOLLOW +#define UV_FS_O_NOFOLLOW O_NOFOLLOW #else -# define UV_FS_O_NOFOLLOW 0 +#define UV_FS_O_NOFOLLOW 0 #endif #if defined(O_NONBLOCK) -# define UV_FS_O_NONBLOCK O_NONBLOCK +#define UV_FS_O_NONBLOCK O_NONBLOCK #else -# define UV_FS_O_NONBLOCK 0 +#define UV_FS_O_NONBLOCK 0 #endif #if defined(O_RDONLY) -# define UV_FS_O_RDONLY O_RDONLY +#define UV_FS_O_RDONLY O_RDONLY #else -# define UV_FS_O_RDONLY 0 +#define UV_FS_O_RDONLY 0 #endif #if defined(O_RDWR) -# define UV_FS_O_RDWR O_RDWR +#define UV_FS_O_RDWR O_RDWR #else -# define UV_FS_O_RDWR 0 +#define UV_FS_O_RDWR 0 #endif #if defined(O_SYMLINK) -# define UV_FS_O_SYMLINK O_SYMLINK +#define UV_FS_O_SYMLINK O_SYMLINK #else -# define UV_FS_O_SYMLINK 0 +#define UV_FS_O_SYMLINK 0 #endif #if defined(O_SYNC) -# define UV_FS_O_SYNC O_SYNC +#define UV_FS_O_SYNC O_SYNC #else -# define UV_FS_O_SYNC 0 +#define UV_FS_O_SYNC 0 #endif #if defined(O_TRUNC) -# define UV_FS_O_TRUNC O_TRUNC +#define UV_FS_O_TRUNC O_TRUNC #else -# define UV_FS_O_TRUNC 0 +#define UV_FS_O_TRUNC 0 #endif #if defined(O_WRONLY) -# define UV_FS_O_WRONLY O_WRONLY +#define UV_FS_O_WRONLY O_WRONLY #else -# define UV_FS_O_WRONLY 0 +#define UV_FS_O_WRONLY 0 #endif /* fs open() flags supported on other platforms: */ -#define UV_FS_O_FILEMAP 0 -#define UV_FS_O_RANDOM 0 -#define UV_FS_O_SHORT_LIVED 0 -#define UV_FS_O_SEQUENTIAL 0 -#define UV_FS_O_TEMPORARY 0 +#define UV_FS_O_FILEMAP 0 +#define UV_FS_O_RANDOM 0 +#define UV_FS_O_SHORT_LIVED 0 +#define UV_FS_O_SEQUENTIAL 0 +#define UV_FS_O_TEMPORARY 0 #endif /* UV_UNIX_H */ diff --git a/src/libuv/include/uv/version.h b/src/libuv/include/uv/version.h index 46f46929..35700713 100644 --- a/src/libuv/include/uv/version.h +++ b/src/libuv/include/uv/version.h @@ -22,7 +22,7 @@ #ifndef UV_VERSION_H #define UV_VERSION_H - /* +/* * Versions with the same major number are ABI stable. API is allowed to * evolve between minor releases, but only in a backwards compatible way. * Make sure you update the -soname directives in configure.ac @@ -36,8 +36,7 @@ #define UV_VERSION_IS_RELEASE 1 #define UV_VERSION_SUFFIX "" -#define UV_VERSION_HEX ((UV_VERSION_MAJOR << 16) | \ - (UV_VERSION_MINOR << 8) | \ - (UV_VERSION_PATCH)) +#define UV_VERSION_HEX \ + ((UV_VERSION_MAJOR << 16) | (UV_VERSION_MINOR << 8) | (UV_VERSION_PATCH)) #endif /* UV_VERSION_H */ diff --git a/src/libuv/include/uv/win.h b/src/libuv/include/uv/win.h index 5fecf4bf..1dbf9f66 100644 --- a/src/libuv/include/uv/win.h +++ b/src/libuv/include/uv/win.h @@ -20,14 +20,14 @@ */ #ifndef _WIN32_WINNT -# define _WIN32_WINNT 0x0600 +#define _WIN32_WINNT 0x0600 #endif #if !defined(_SSIZE_T_) && !defined(_SSIZE_T_DEFINED) typedef intptr_t ssize_t; -# define SSIZE_MAX INTPTR_MAX -# define _SSIZE_T_ -# define _SSIZE_T_DEFINED +#define SSIZE_MAX INTPTR_MAX +#define _SSIZE_T_ +#define _SSIZE_T_DEFINED #endif #include @@ -35,13 +35,13 @@ typedef intptr_t ssize_t; #if defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) typedef struct pollfd { SOCKET fd; - short events; - short revents; + short events; + short revents; } WSAPOLLFD, *PWSAPOLLFD, *LPWSAPOLLFD; #endif #ifndef LOCALE_INVARIANT -# define LOCALE_INVARIANT 0x007f +#define LOCALE_INVARIANT 0x007f #endif #include @@ -55,24 +55,24 @@ typedef struct pollfd { #undef PTCP_INITIAL_RTO_PARAMETERS #include +#include #include #include -#include #include #if defined(_MSC_VER) && _MSC_VER < 1600 -# include "uv/stdint-msvc2008.h" +#include "uv/stdint-msvc2008.h" #else -# include +#include #endif -#include "uv/tree.h" #include "uv/threadpool.h" +#include "uv/tree.h" #define MAX_PIPENAME_LEN 256 #ifndef S_IFLNK -# define S_IFLNK 0xA000 +#define S_IFLNK 0xA000 #endif /* Additional signals supported by uv_signal and or uv_kill. The CRT defines @@ -90,22 +90,22 @@ typedef struct pollfd { * The additional signals have values that are common on other Unix * variants (Linux and Darwin) */ -#define SIGHUP 1 -#define SIGKILL 9 -#define SIGWINCH 28 +#define SIGHUP 1 +#define SIGKILL 9 +#define SIGWINCH 28 /* Redefine NSIG to take SIGWINCH into consideration */ #if defined(NSIG) && NSIG <= SIGWINCH -# undef NSIG +#undef NSIG #endif #ifndef NSIG -# define NSIG SIGWINCH + 1 +#define NSIG SIGWINCH + 1 #endif /* The CRT defines SIGABRT_COMPAT as 6, which equals SIGABRT on many unix-like * platforms. However MinGW doesn't define it, so we do. */ #ifndef SIGABRT_COMPAT -# define SIGABRT_COMPAT 6 +#define SIGABRT_COMPAT 6 #endif /* @@ -113,101 +113,72 @@ typedef struct pollfd { * Mingw32 doesn't have these :-( */ #ifndef WSAID_ACCEPTEX -# define WSAID_ACCEPTEX \ - {0xb5367df1, 0xcbac, 0x11cf, \ - {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} - -# define WSAID_CONNECTEX \ - {0x25a207b9, 0xddf3, 0x4660, \ - {0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e}} - -# define WSAID_GETACCEPTEXSOCKADDRS \ - {0xb5367df2, 0xcbac, 0x11cf, \ - {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} - -# define WSAID_DISCONNECTEX \ - {0x7fda2e11, 0x8630, 0x436f, \ - {0xa0, 0x31, 0xf5, 0x36, 0xa6, 0xee, 0xc1, 0x57}} - -# define WSAID_TRANSMITFILE \ - {0xb5367df0, 0xcbac, 0x11cf, \ - {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} - - typedef BOOL (PASCAL *LPFN_ACCEPTEX) - (SOCKET sListenSocket, - SOCKET sAcceptSocket, - PVOID lpOutputBuffer, - DWORD dwReceiveDataLength, - DWORD dwLocalAddressLength, - DWORD dwRemoteAddressLength, - LPDWORD lpdwBytesReceived, - LPOVERLAPPED lpOverlapped); - - typedef BOOL (PASCAL *LPFN_CONNECTEX) - (SOCKET s, - const struct sockaddr* name, - int namelen, - PVOID lpSendBuffer, - DWORD dwSendDataLength, - LPDWORD lpdwBytesSent, - LPOVERLAPPED lpOverlapped); - - typedef void (PASCAL *LPFN_GETACCEPTEXSOCKADDRS) - (PVOID lpOutputBuffer, - DWORD dwReceiveDataLength, - DWORD dwLocalAddressLength, - DWORD dwRemoteAddressLength, - LPSOCKADDR* LocalSockaddr, - LPINT LocalSockaddrLength, - LPSOCKADDR* RemoteSockaddr, - LPINT RemoteSockaddrLength); - - typedef BOOL (PASCAL *LPFN_DISCONNECTEX) - (SOCKET hSocket, - LPOVERLAPPED lpOverlapped, - DWORD dwFlags, - DWORD reserved); - - typedef BOOL (PASCAL *LPFN_TRANSMITFILE) - (SOCKET hSocket, - HANDLE hFile, - DWORD nNumberOfBytesToWrite, - DWORD nNumberOfBytesPerSend, - LPOVERLAPPED lpOverlapped, - LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers, - DWORD dwFlags); - - typedef PVOID RTL_SRWLOCK; - typedef RTL_SRWLOCK SRWLOCK, *PSRWLOCK; +#define WSAID_ACCEPTEX \ + {0xb5367df1, 0xcbac, 0x11cf, {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} + +#define WSAID_CONNECTEX \ + {0x25a207b9, 0xddf3, 0x4660, {0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e}} + +#define WSAID_GETACCEPTEXSOCKADDRS \ + {0xb5367df2, 0xcbac, 0x11cf, {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} + +#define WSAID_DISCONNECTEX \ + {0x7fda2e11, 0x8630, 0x436f, {0xa0, 0x31, 0xf5, 0x36, 0xa6, 0xee, 0xc1, 0x57}} + +#define WSAID_TRANSMITFILE \ + {0xb5367df0, 0xcbac, 0x11cf, {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} + +typedef BOOL(PASCAL *LPFN_ACCEPTEX)(SOCKET sListenSocket, SOCKET sAcceptSocket, + PVOID lpOutputBuffer, + DWORD dwReceiveDataLength, + DWORD dwLocalAddressLength, + DWORD dwRemoteAddressLength, + LPDWORD lpdwBytesReceived, + LPOVERLAPPED lpOverlapped); + +typedef BOOL(PASCAL *LPFN_CONNECTEX)(SOCKET s, const struct sockaddr *name, + int namelen, PVOID lpSendBuffer, + DWORD dwSendDataLength, + LPDWORD lpdwBytesSent, + LPOVERLAPPED lpOverlapped); + +typedef void(PASCAL *LPFN_GETACCEPTEXSOCKADDRS)( + PVOID lpOutputBuffer, DWORD dwReceiveDataLength, DWORD dwLocalAddressLength, + DWORD dwRemoteAddressLength, LPSOCKADDR *LocalSockaddr, + LPINT LocalSockaddrLength, LPSOCKADDR *RemoteSockaddr, + LPINT RemoteSockaddrLength); + +typedef BOOL(PASCAL *LPFN_DISCONNECTEX)(SOCKET hSocket, + LPOVERLAPPED lpOverlapped, + DWORD dwFlags, DWORD reserved); + +typedef BOOL(PASCAL *LPFN_TRANSMITFILE)( + SOCKET hSocket, HANDLE hFile, DWORD nNumberOfBytesToWrite, + DWORD nNumberOfBytesPerSend, LPOVERLAPPED lpOverlapped, + LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers, DWORD dwFlags); + +typedef PVOID RTL_SRWLOCK; +typedef RTL_SRWLOCK SRWLOCK, *PSRWLOCK; #endif -typedef int (WSAAPI* LPFN_WSARECV) - (SOCKET socket, - LPWSABUF buffers, - DWORD buffer_count, - LPDWORD bytes, - LPDWORD flags, - LPWSAOVERLAPPED overlapped, - LPWSAOVERLAPPED_COMPLETION_ROUTINE completion_routine); - -typedef int (WSAAPI* LPFN_WSARECVFROM) - (SOCKET socket, - LPWSABUF buffers, - DWORD buffer_count, - LPDWORD bytes, - LPDWORD flags, - struct sockaddr* addr, - LPINT addr_len, - LPWSAOVERLAPPED overlapped, - LPWSAOVERLAPPED_COMPLETION_ROUTINE completion_routine); +typedef int(WSAAPI *LPFN_WSARECV)( + SOCKET socket, LPWSABUF buffers, DWORD buffer_count, LPDWORD bytes, + LPDWORD flags, LPWSAOVERLAPPED overlapped, + LPWSAOVERLAPPED_COMPLETION_ROUTINE completion_routine); + +typedef int(WSAAPI *LPFN_WSARECVFROM)( + SOCKET socket, LPWSABUF buffers, DWORD buffer_count, LPDWORD bytes, + LPDWORD flags, struct sockaddr *addr, LPINT addr_len, + LPWSAOVERLAPPED overlapped, + LPWSAOVERLAPPED_COMPLETION_ROUTINE completion_routine); #ifndef _NTDEF_ - typedef LONG NTSTATUS; - typedef NTSTATUS *PNTSTATUS; +typedef LONG NTSTATUS; +typedef NTSTATUS *PNTSTATUS; #endif #ifndef RTL_CONDITION_VARIABLE_INIT - typedef PVOID CONDITION_VARIABLE, *PCONDITION_VARIABLE; +typedef PVOID CONDITION_VARIABLE, *PCONDITION_VARIABLE; #endif typedef struct _AFD_POLL_HANDLE_INFO { @@ -225,14 +196,13 @@ typedef struct _AFD_POLL_INFO { #define UV_MSAFD_PROVIDER_COUNT 3 - /** * It should be possible to cast uv_buf_t[] to WSABUF[] * see http://msdn.microsoft.com/en-us/library/ms741542(v=vs.85).aspx */ typedef struct uv_buf_t { ULONG len; - char* base; + char *base; } uv_buf_t; typedef int uv_file; @@ -292,7 +262,7 @@ 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; @@ -308,354 +278,355 @@ typedef struct uv__dirent_s { char d_name[1]; } uv__dirent_t; -#define UV_DIR_PRIVATE_FIELDS \ - HANDLE dir_handle; \ - WIN32_FIND_DATAW find_data; \ +#define UV_DIR_PRIVATE_FIELDS \ + HANDLE dir_handle; \ + WIN32_FIND_DATAW find_data; \ BOOL need_find_call; #define HAVE_DIRENT_TYPES -#define UV__DT_DIR UV_DIRENT_DIR -#define UV__DT_FILE UV_DIRENT_FILE -#define UV__DT_LINK UV_DIRENT_LINK -#define UV__DT_FIFO UV_DIRENT_FIFO -#define UV__DT_SOCKET UV_DIRENT_SOCKET -#define UV__DT_CHAR UV_DIRENT_CHAR -#define UV__DT_BLOCK UV_DIRENT_BLOCK +#define UV__DT_DIR UV_DIRENT_DIR +#define UV__DT_FILE UV_DIRENT_FILE +#define UV__DT_LINK UV_DIRENT_LINK +#define UV__DT_FIFO UV_DIRENT_FIFO +#define UV__DT_SOCKET UV_DIRENT_SOCKET +#define UV__DT_CHAR UV_DIRENT_CHAR +#define UV__DT_BLOCK UV_DIRENT_BLOCK /* Platform-specific definitions for uv_dlopen support. */ #define UV_DYNAMIC FAR WINAPI typedef struct { HMODULE handle; - char* errmsg; + char *errmsg; } uv_lib_t; -#define UV_LOOP_PRIVATE_FIELDS \ - /* The loop's I/O completion port */ \ - HANDLE iocp; \ - /* The current time according to the event loop. in msecs. */ \ - uint64_t time; \ - /* Tail of a single-linked circular queue of pending reqs. If the queue */ \ - /* is empty, tail_ is NULL. If there is only one item, */ \ - /* tail_->next_req == tail_ */ \ - uv_req_t* pending_reqs_tail; \ - /* Head of a single-linked list of closed handles */ \ - uv_handle_t* endgame_handles; \ - /* TODO(bnoordhuis) Stop heap-allocating |timer_heap| in libuv v2.x. */ \ - void* timer_heap; \ - /* Lists of active loop (prepare / check / idle) watchers */ \ - uv_prepare_t* prepare_handles; \ - uv_check_t* check_handles; \ - uv_idle_t* idle_handles; \ - /* This pointer will refer to the prepare/check/idle handle whose */ \ - /* callback is scheduled to be called next. This is needed to allow */ \ - /* safe removal from one of the lists above while that list being */ \ - /* iterated over. */ \ - uv_prepare_t* next_prepare_handle; \ - uv_check_t* next_check_handle; \ - 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 */ \ - unsigned int active_tcp_streams; \ - /* Counter to keep track of active udp streams */ \ - unsigned int active_udp_streams; \ - /* Counter to started timer */ \ - uint64_t timer_counter; \ - /* Threadpool */ \ - void* wq[2]; \ - uv_mutex_t wq_mutex; \ +#define UV_LOOP_PRIVATE_FIELDS \ + /* The loop's I/O completion port */ \ + HANDLE iocp; \ + /* The current time according to the event loop. in msecs. */ \ + uint64_t time; \ + /* Tail of a single-linked circular queue of pending reqs. If the queue */ \ + /* is empty, tail_ is NULL. If there is only one item, */ \ + /* tail_->next_req == tail_ */ \ + uv_req_t *pending_reqs_tail; \ + /* Head of a single-linked list of closed handles */ \ + uv_handle_t *endgame_handles; \ + /* TODO(bnoordhuis) Stop heap-allocating |timer_heap| in libuv v2.x. */ \ + void *timer_heap; \ + /* Lists of active loop (prepare / check / idle) watchers */ \ + uv_prepare_t *prepare_handles; \ + uv_check_t *check_handles; \ + uv_idle_t *idle_handles; \ + /* This pointer will refer to the prepare/check/idle handle whose */ \ + /* callback is scheduled to be called next. This is needed to allow */ \ + /* safe removal from one of the lists above while that list being */ \ + /* iterated over. */ \ + uv_prepare_t *next_prepare_handle; \ + uv_check_t *next_check_handle; \ + 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 */ \ + unsigned int active_tcp_streams; \ + /* Counter to keep track of active udp streams */ \ + unsigned int active_udp_streams; \ + /* Counter to started timer */ \ + uint64_t timer_counter; \ + /* Threadpool */ \ + void *wq[2]; \ + uv_mutex_t wq_mutex; \ uv_async_t wq_async; -#define UV_REQ_TYPE_PRIVATE \ - /* TODO: remove the req suffix */ \ - UV_ACCEPT, \ - UV_FS_EVENT_REQ, \ - UV_POLL_REQ, \ - UV_PROCESS_EXIT, \ - UV_READ, \ - UV_UDP_RECV, \ - UV_WAKEUP, \ - UV_SIGNAL_REQ, - -#define UV_REQ_PRIVATE_FIELDS \ - union { \ - /* Used by I/O operations */ \ - struct { \ - OVERLAPPED overlapped; \ - size_t queued_bytes; \ - } io; \ - } u; \ - struct uv_req_s* next_req; - -#define UV_WRITE_PRIVATE_FIELDS \ - int coalesced; \ - uv_buf_t write_buffer; \ - HANDLE event_handle; \ +#define UV_REQ_TYPE_PRIVATE \ + /* TODO: remove the req suffix */ \ + UV_ACCEPT, UV_FS_EVENT_REQ, UV_POLL_REQ, UV_PROCESS_EXIT, UV_READ, \ + UV_UDP_RECV, UV_WAKEUP, UV_SIGNAL_REQ, + +#define UV_REQ_PRIVATE_FIELDS \ + union { \ + /* Used by I/O operations */ \ + struct { \ + OVERLAPPED overlapped; \ + size_t queued_bytes; \ + } io; \ + } u; \ + struct uv_req_s *next_req; + +#define UV_WRITE_PRIVATE_FIELDS \ + int coalesced; \ + uv_buf_t write_buffer; \ + HANDLE event_handle; \ HANDLE wait_handle; -#define UV_CONNECT_PRIVATE_FIELDS \ - /* empty */ - -#define UV_SHUTDOWN_PRIVATE_FIELDS \ - /* empty */ - -#define UV_UDP_SEND_PRIVATE_FIELDS \ - /* empty */ - -#define UV_PRIVATE_REQ_TYPES \ - typedef struct uv_pipe_accept_s { \ - UV_REQ_FIELDS \ - HANDLE pipeHandle; \ - struct uv_pipe_accept_s* next_pending; \ - } uv_pipe_accept_t; \ - \ - typedef struct uv_tcp_accept_s { \ - UV_REQ_FIELDS \ - SOCKET accept_socket; \ - char accept_buffer[sizeof(struct sockaddr_storage) * 2 + 32]; \ - HANDLE event_handle; \ - HANDLE wait_handle; \ - struct uv_tcp_accept_s* next_pending; \ - } uv_tcp_accept_t; \ - \ - typedef struct uv_read_s { \ - UV_REQ_FIELDS \ - HANDLE event_handle; \ - HANDLE wait_handle; \ +#define UV_CONNECT_PRIVATE_FIELDS /* empty */ + +#define UV_SHUTDOWN_PRIVATE_FIELDS /* empty */ + +#define UV_UDP_SEND_PRIVATE_FIELDS /* empty */ + +#define UV_PRIVATE_REQ_TYPES \ + typedef struct uv_pipe_accept_s { \ + UV_REQ_FIELDS \ + HANDLE pipeHandle; \ + struct uv_pipe_accept_s *next_pending; \ + } uv_pipe_accept_t; \ + \ + typedef struct uv_tcp_accept_s { \ + UV_REQ_FIELDS \ + SOCKET accept_socket; \ + char accept_buffer[sizeof(struct sockaddr_storage) * 2 + 32]; \ + HANDLE event_handle; \ + HANDLE wait_handle; \ + struct uv_tcp_accept_s *next_pending; \ + } uv_tcp_accept_t; \ + \ + typedef struct uv_read_s { \ + UV_REQ_FIELDS \ + HANDLE event_handle; \ + HANDLE wait_handle; \ } uv_read_t; -#define uv_stream_connection_fields \ - unsigned int write_reqs_pending; \ - uv_shutdown_t* shutdown_req; - -#define uv_stream_server_fields \ - uv_connection_cb connection_cb; - -#define UV_STREAM_PRIVATE_FIELDS \ - unsigned int reqs_pending; \ - int activecnt; \ - uv_read_t read_req; \ - union { \ - struct { uv_stream_connection_fields } conn; \ - struct { uv_stream_server_fields } serv; \ +#define uv_stream_connection_fields \ + unsigned int write_reqs_pending; \ + uv_shutdown_t *shutdown_req; + +#define uv_stream_server_fields uv_connection_cb connection_cb; + +#define UV_STREAM_PRIVATE_FIELDS \ + unsigned int reqs_pending; \ + int activecnt; \ + uv_read_t read_req; \ + union { \ + struct { \ + uv_stream_connection_fields \ + } conn; \ + struct { \ + uv_stream_server_fields \ + } serv; \ } stream; -#define uv_tcp_server_fields \ - uv_tcp_accept_t* accept_reqs; \ - unsigned int processed_accepts; \ - uv_tcp_accept_t* pending_accepts; \ +#define uv_tcp_server_fields \ + uv_tcp_accept_t *accept_reqs; \ + unsigned int processed_accepts; \ + uv_tcp_accept_t *pending_accepts; \ LPFN_ACCEPTEX func_acceptex; -#define uv_tcp_connection_fields \ - uv_buf_t read_buffer; \ +#define uv_tcp_connection_fields \ + uv_buf_t read_buffer; \ LPFN_CONNECTEX func_connectex; -#define UV_TCP_PRIVATE_FIELDS \ - SOCKET socket; \ - int delayed_error; \ - union { \ - struct { uv_tcp_server_fields } serv; \ - struct { uv_tcp_connection_fields } conn; \ +#define UV_TCP_PRIVATE_FIELDS \ + SOCKET socket; \ + int delayed_error; \ + union { \ + struct { \ + uv_tcp_server_fields \ + } serv; \ + struct { \ + uv_tcp_connection_fields \ + } conn; \ } tcp; -#define UV_UDP_PRIVATE_FIELDS \ - SOCKET socket; \ - unsigned int reqs_pending; \ - int activecnt; \ - uv_req_t recv_req; \ - uv_buf_t recv_buffer; \ - struct sockaddr_storage recv_from; \ - int recv_from_len; \ - uv_udp_recv_cb recv_cb; \ - uv_alloc_cb alloc_cb; \ - LPFN_WSARECV func_wsarecv; \ +#define UV_UDP_PRIVATE_FIELDS \ + SOCKET socket; \ + unsigned int reqs_pending; \ + int activecnt; \ + uv_req_t recv_req; \ + uv_buf_t recv_buffer; \ + struct sockaddr_storage recv_from; \ + int recv_from_len; \ + uv_udp_recv_cb recv_cb; \ + uv_alloc_cb alloc_cb; \ + LPFN_WSARECV func_wsarecv; \ LPFN_WSARECVFROM func_wsarecvfrom; -#define uv_pipe_server_fields \ - int pending_instances; \ - uv_pipe_accept_t* accept_reqs; \ - uv_pipe_accept_t* pending_accepts; - -#define uv_pipe_connection_fields \ - uv_timer_t* eof_timer; \ - uv_write_t dummy; /* TODO: retained for ABI compat; remove this in v2.x. */ \ - DWORD ipc_remote_pid; \ - union { \ - 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]; \ - int ipc_xfer_queue_length; \ - uv_write_t* non_overlapped_writes_tail; \ - CRITICAL_SECTION readfile_thread_lock; \ +#define uv_pipe_server_fields \ + int pending_instances; \ + uv_pipe_accept_t *accept_reqs; \ + uv_pipe_accept_t *pending_accepts; + +#define uv_pipe_connection_fields \ + uv_timer_t *eof_timer; \ + uv_write_t dummy; /* TODO: retained for ABI compat; remove this in v2.x. */ \ + DWORD ipc_remote_pid; \ + union { \ + 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]; \ + int ipc_xfer_queue_length; \ + uv_write_t *non_overlapped_writes_tail; \ + CRITICAL_SECTION readfile_thread_lock; \ volatile HANDLE readfile_thread_handle; -#define UV_PIPE_PRIVATE_FIELDS \ - HANDLE handle; \ - WCHAR* name; \ - union { \ - struct { uv_pipe_server_fields } serv; \ - struct { uv_pipe_connection_fields } conn; \ +#define UV_PIPE_PRIVATE_FIELDS \ + HANDLE handle; \ + WCHAR *name; \ + union { \ + struct { \ + uv_pipe_server_fields \ + } serv; \ + struct { \ + uv_pipe_connection_fields \ + } conn; \ } pipe; /* TODO: put the parser states in an 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_; \ - uv_buf_t read_line_buffer; \ - HANDLE read_raw_wait; \ - /* Fields used for translating win keystrokes into vt100 characters */ \ - char last_key[8]; \ - unsigned char last_key_offset; \ - unsigned char last_key_len; \ - WCHAR last_utf16_high_surrogate; \ - INPUT_RECORD last_input_record; \ - } rd; \ - struct { \ - /* Used for writable TTY handles */ \ - /* utf8-to-utf16 conversion state */ \ - unsigned int utf8_codepoint; \ - unsigned char utf8_bytes_left; \ - /* eol conversion state */ \ - unsigned char previous_eol; \ - /* ansi parser state */ \ - unsigned short ansi_parser_state; \ - unsigned char ansi_csi_argc; \ - unsigned short ansi_csi_argv[4]; \ - COORD saved_position; \ - WORD saved_attributes; \ - } wr; \ +#define UV_TTY_PRIVATE_FIELDS \ + HANDLE handle; \ + union { \ + struct { \ + /* Used for readable TTY handles */ \ + /* TODO: remove me in v2.x. */ \ + HANDLE unused_; \ + uv_buf_t read_line_buffer; \ + HANDLE read_raw_wait; \ + /* Fields used for translating win keystrokes into vt100 characters */ \ + char last_key[8]; \ + unsigned char last_key_offset; \ + unsigned char last_key_len; \ + WCHAR last_utf16_high_surrogate; \ + INPUT_RECORD last_input_record; \ + } rd; \ + struct { \ + /* Used for writable TTY handles */ \ + /* utf8-to-utf16 conversion state */ \ + unsigned int utf8_codepoint; \ + unsigned char utf8_bytes_left; \ + /* eol conversion state */ \ + unsigned char previous_eol; \ + /* ansi parser state */ \ + unsigned short ansi_parser_state; \ + unsigned char ansi_csi_argc; \ + unsigned short ansi_csi_argv[4]; \ + COORD saved_position; \ + WORD saved_attributes; \ + } wr; \ } tty; -#define UV_POLL_PRIVATE_FIELDS \ - SOCKET socket; \ - /* Used in fast mode */ \ - SOCKET peer_socket; \ - AFD_POLL_INFO afd_poll_info_1; \ - AFD_POLL_INFO afd_poll_info_2; \ - /* Used in fast and slow mode. */ \ - uv_req_t poll_req_1; \ - uv_req_t poll_req_2; \ - unsigned char submitted_events_1; \ - unsigned char submitted_events_2; \ - unsigned char mask_events_1; \ - unsigned char mask_events_2; \ +#define UV_POLL_PRIVATE_FIELDS \ + SOCKET socket; \ + /* Used in fast mode */ \ + SOCKET peer_socket; \ + AFD_POLL_INFO afd_poll_info_1; \ + AFD_POLL_INFO afd_poll_info_2; \ + /* Used in fast and slow mode. */ \ + uv_req_t poll_req_1; \ + uv_req_t poll_req_2; \ + unsigned char submitted_events_1; \ + unsigned char submitted_events_2; \ + unsigned char mask_events_1; \ + unsigned char mask_events_2; \ unsigned char events; -#define UV_TIMER_PRIVATE_FIELDS \ - void* heap_node[3]; \ - int unused; \ - uint64_t timeout; \ - uint64_t repeat; \ - uint64_t start_id; \ +#define UV_TIMER_PRIVATE_FIELDS \ + void *heap_node[3]; \ + int unused; \ + uint64_t timeout; \ + uint64_t repeat; \ + uint64_t start_id; \ uv_timer_cb timer_cb; -#define UV_ASYNC_PRIVATE_FIELDS \ - struct uv_req_s async_req; \ - uv_async_cb async_cb; \ - /* char to avoid alignment issues */ \ +#define UV_ASYNC_PRIVATE_FIELDS \ + struct uv_req_s async_req; \ + uv_async_cb async_cb; \ + /* char to avoid alignment issues */ \ char volatile async_sent; -#define UV_PREPARE_PRIVATE_FIELDS \ - uv_prepare_t* prepare_prev; \ - uv_prepare_t* prepare_next; \ +#define UV_PREPARE_PRIVATE_FIELDS \ + uv_prepare_t *prepare_prev; \ + uv_prepare_t *prepare_next; \ uv_prepare_cb prepare_cb; -#define UV_CHECK_PRIVATE_FIELDS \ - uv_check_t* check_prev; \ - uv_check_t* check_next; \ +#define UV_CHECK_PRIVATE_FIELDS \ + uv_check_t *check_prev; \ + uv_check_t *check_next; \ uv_check_cb check_cb; -#define UV_IDLE_PRIVATE_FIELDS \ - uv_idle_t* idle_prev; \ - uv_idle_t* idle_next; \ +#define UV_IDLE_PRIVATE_FIELDS \ + uv_idle_t *idle_prev; \ + uv_idle_t *idle_next; \ uv_idle_cb idle_cb; -#define UV_HANDLE_PRIVATE_FIELDS \ - uv_handle_t* endgame_next; \ +#define UV_HANDLE_PRIVATE_FIELDS \ + uv_handle_t *endgame_next; \ unsigned int flags; -#define UV_GETADDRINFO_PRIVATE_FIELDS \ - struct uv__work work_req; \ - uv_getaddrinfo_cb getaddrinfo_cb; \ - void* alloc; \ - WCHAR* node; \ - WCHAR* service; \ - /* The addrinfoW field is used to store a pointer to the hints, and */ \ - /* later on to store the result of GetAddrInfoW. The final result will */ \ - /* be converted to struct addrinfo* and stored in the addrinfo field. */ \ - struct addrinfoW* addrinfow; \ - struct addrinfo* addrinfo; \ +#define UV_GETADDRINFO_PRIVATE_FIELDS \ + struct uv__work work_req; \ + uv_getaddrinfo_cb getaddrinfo_cb; \ + void *alloc; \ + WCHAR *node; \ + WCHAR *service; \ + /* The addrinfoW field is used to store a pointer to the hints, and */ \ + /* later on to store the result of GetAddrInfoW. The final result will */ \ + /* be converted to struct addrinfo* and stored in the addrinfo field. */ \ + struct addrinfoW *addrinfow; \ + struct addrinfo *addrinfo; \ int retcode; -#define UV_GETNAMEINFO_PRIVATE_FIELDS \ - struct uv__work work_req; \ - uv_getnameinfo_cb getnameinfo_cb; \ - struct sockaddr_storage storage; \ - int flags; \ - char host[NI_MAXHOST]; \ - char service[NI_MAXSERV]; \ +#define UV_GETNAMEINFO_PRIVATE_FIELDS \ + struct uv__work work_req; \ + uv_getnameinfo_cb getnameinfo_cb; \ + struct sockaddr_storage storage; \ + int flags; \ + char host[NI_MAXHOST]; \ + char service[NI_MAXSERV]; \ int retcode; -#define UV_PROCESS_PRIVATE_FIELDS \ - struct uv_process_exit_s { \ - UV_REQ_FIELDS \ - } exit_req; \ - BYTE* child_stdio_buffer; \ - int exit_signal; \ - HANDLE wait_handle; \ - HANDLE process_handle; \ +#define UV_PROCESS_PRIVATE_FIELDS \ + struct uv_process_exit_s { \ + UV_REQ_FIELDS \ + } exit_req; \ + BYTE *child_stdio_buffer; \ + int exit_signal; \ + HANDLE wait_handle; \ + HANDLE process_handle; \ volatile char exit_cb_pending; -#define UV_FS_PRIVATE_FIELDS \ - struct uv__work work_req; \ - int flags; \ - DWORD sys_errno_; \ - union { \ - /* TODO: remove me in 0.9. */ \ - WCHAR* pathw; \ - int fd; \ - } file; \ - union { \ - struct { \ - int mode; \ - WCHAR* new_pathw; \ - int file_flags; \ - int fd_out; \ - unsigned int nbufs; \ - uv_buf_t* bufs; \ - int64_t offset; \ - uv_buf_t bufsml[4]; \ - } info; \ - struct { \ - double atime; \ - double mtime; \ - } time; \ +#define UV_FS_PRIVATE_FIELDS \ + struct uv__work work_req; \ + int flags; \ + DWORD sys_errno_; \ + union { \ + /* TODO: remove me in 0.9. */ \ + WCHAR *pathw; \ + int fd; \ + } file; \ + union { \ + struct { \ + int mode; \ + WCHAR *new_pathw; \ + int file_flags; \ + int fd_out; \ + unsigned int nbufs; \ + uv_buf_t *bufs; \ + int64_t offset; \ + uv_buf_t bufsml[4]; \ + } info; \ + struct { \ + double atime; \ + double mtime; \ + } time; \ } fs; -#define UV_WORK_PRIVATE_FIELDS \ - struct uv__work work_req; - -#define UV_FS_EVENT_PRIVATE_FIELDS \ - struct uv_fs_event_req_s { \ - UV_REQ_FIELDS \ - } req; \ - HANDLE dir_handle; \ - int req_pending; \ - uv_fs_event_cb cb; \ - WCHAR* filew; \ - WCHAR* short_filew; \ - WCHAR* dirw; \ - char* buffer; - -#define UV_SIGNAL_PRIVATE_FIELDS \ - RB_ENTRY(uv_signal_s) tree_entry; \ - struct uv_req_s signal_req; \ +#define UV_WORK_PRIVATE_FIELDS struct uv__work work_req; + +#define UV_FS_EVENT_PRIVATE_FIELDS \ + struct uv_fs_event_req_s { \ + UV_REQ_FIELDS \ + } req; \ + HANDLE dir_handle; \ + int req_pending; \ + uv_fs_event_cb cb; \ + WCHAR *filew; \ + WCHAR *short_filew; \ + WCHAR *dirw; \ + char *buffer; + +#define UV_SIGNAL_PRIVATE_FIELDS \ + RB_ENTRY(uv_signal_s) tree_entry; \ + struct uv_req_s signal_req; \ unsigned long pending_signum; #ifndef F_OK @@ -672,27 +643,27 @@ typedef struct { #endif /* fs open() flags supported on this platform: */ -#define UV_FS_O_APPEND _O_APPEND -#define UV_FS_O_CREAT _O_CREAT -#define UV_FS_O_EXCL _O_EXCL -#define UV_FS_O_FILEMAP 0x20000000 -#define UV_FS_O_RANDOM _O_RANDOM -#define UV_FS_O_RDONLY _O_RDONLY -#define UV_FS_O_RDWR _O_RDWR -#define UV_FS_O_SEQUENTIAL _O_SEQUENTIAL -#define UV_FS_O_SHORT_LIVED _O_SHORT_LIVED -#define UV_FS_O_TEMPORARY _O_TEMPORARY -#define UV_FS_O_TRUNC _O_TRUNC -#define UV_FS_O_WRONLY _O_WRONLY +#define UV_FS_O_APPEND _O_APPEND +#define UV_FS_O_CREAT _O_CREAT +#define UV_FS_O_EXCL _O_EXCL +#define UV_FS_O_FILEMAP 0x20000000 +#define UV_FS_O_RANDOM _O_RANDOM +#define UV_FS_O_RDONLY _O_RDONLY +#define UV_FS_O_RDWR _O_RDWR +#define UV_FS_O_SEQUENTIAL _O_SEQUENTIAL +#define UV_FS_O_SHORT_LIVED _O_SHORT_LIVED +#define UV_FS_O_TEMPORARY _O_TEMPORARY +#define UV_FS_O_TRUNC _O_TRUNC +#define UV_FS_O_WRONLY _O_WRONLY /* fs open() flags supported on other platforms (or mapped on this platform): */ -#define UV_FS_O_DIRECT 0x02000000 /* FILE_FLAG_NO_BUFFERING */ -#define UV_FS_O_DIRECTORY 0 -#define UV_FS_O_DSYNC 0x04000000 /* FILE_FLAG_WRITE_THROUGH */ -#define UV_FS_O_EXLOCK 0x10000000 /* EXCLUSIVE SHARING MODE */ -#define UV_FS_O_NOATIME 0 -#define UV_FS_O_NOCTTY 0 -#define UV_FS_O_NOFOLLOW 0 -#define UV_FS_O_NONBLOCK 0 -#define UV_FS_O_SYMLINK 0 -#define UV_FS_O_SYNC 0x08000000 /* FILE_FLAG_WRITE_THROUGH */ +#define UV_FS_O_DIRECT 0x02000000 /* FILE_FLAG_NO_BUFFERING */ +#define UV_FS_O_DIRECTORY 0 +#define UV_FS_O_DSYNC 0x04000000 /* FILE_FLAG_WRITE_THROUGH */ +#define UV_FS_O_EXLOCK 0x10000000 /* EXCLUSIVE SHARING MODE */ +#define UV_FS_O_NOATIME 0 +#define UV_FS_O_NOCTTY 0 +#define UV_FS_O_NOFOLLOW 0 +#define UV_FS_O_NONBLOCK 0 +#define UV_FS_O_SYMLINK 0 +#define UV_FS_O_SYNC 0x08000000 /* FILE_FLAG_WRITE_THROUGH */ diff --git a/src/libuv/src/heap-inl.h b/src/libuv/src/heap-inl.h index 1e2ed60e..9702bcd3 100644 --- a/src/libuv/src/heap-inl.h +++ b/src/libuv/src/heap-inl.h @@ -16,18 +16,18 @@ #ifndef UV_SRC_HEAP_H_ #define UV_SRC_HEAP_H_ -#include /* NULL */ +#include /* NULL */ #if defined(__GNUC__) -# define HEAP_EXPORT(declaration) __attribute__((unused)) static declaration +#define HEAP_EXPORT(declaration) __attribute__((unused)) static declaration #else -# define HEAP_EXPORT(declaration) static declaration +#define HEAP_EXPORT(declaration) static declaration #endif struct heap_node { - struct heap_node* left; - struct heap_node* right; - struct heap_node* parent; + struct heap_node *left; + struct heap_node *right; + struct heap_node *parent; }; /* A binary min heap. The usual properties hold: the root is the lowest @@ -38,41 +38,38 @@ struct heap_node { * of a minor reduction in performance. Compile with -DNDEBUG to disable. */ struct heap { - struct heap_node* min; + struct heap_node *min; unsigned int nelts; }; /* Return non-zero if a < b. */ -typedef int (*heap_compare_fn)(const struct heap_node* a, - const struct heap_node* b); +typedef int (*heap_compare_fn)(const struct heap_node *a, + const struct heap_node *b); /* Public functions. */ -HEAP_EXPORT(void heap_init(struct heap* heap)); -HEAP_EXPORT(struct heap_node* heap_min(const struct heap* heap)); -HEAP_EXPORT(void heap_insert(struct heap* heap, - struct heap_node* newnode, +HEAP_EXPORT(void heap_init(struct heap *heap)); +HEAP_EXPORT(struct heap_node *heap_min(const struct heap *heap)); +HEAP_EXPORT(void heap_insert(struct heap *heap, struct heap_node *newnode, heap_compare_fn less_than)); -HEAP_EXPORT(void heap_remove(struct heap* heap, - struct heap_node* node, +HEAP_EXPORT(void heap_remove(struct heap *heap, struct heap_node *node, heap_compare_fn less_than)); -HEAP_EXPORT(void heap_dequeue(struct heap* heap, heap_compare_fn less_than)); +HEAP_EXPORT(void heap_dequeue(struct heap *heap, heap_compare_fn less_than)); /* Implementation follows. */ -HEAP_EXPORT(void heap_init(struct heap* heap)) { +HEAP_EXPORT(void heap_init(struct heap *heap)) { heap->min = NULL; heap->nelts = 0; } -HEAP_EXPORT(struct heap_node* heap_min(const struct heap* heap)) { +HEAP_EXPORT(struct heap_node *heap_min(const struct heap *heap)) { return heap->min; } /* Swap parent with child. Child moves closer to the root, parent moves away. */ -static void heap_node_swap(struct heap* heap, - struct heap_node* parent, - struct heap_node* child) { - struct heap_node* sibling; +static void heap_node_swap(struct heap *heap, struct heap_node *parent, + struct heap_node *child) { + struct heap_node *sibling; struct heap_node t; t = *parent; @@ -103,11 +100,10 @@ static void heap_node_swap(struct heap* heap, child->parent->right = child; } -HEAP_EXPORT(void heap_insert(struct heap* heap, - struct heap_node* newnode, +HEAP_EXPORT(void heap_insert(struct heap *heap, struct heap_node *newnode, heap_compare_fn less_than)) { - struct heap_node** parent; - struct heap_node** child; + struct heap_node **parent; + struct heap_node **child; unsigned int path; unsigned int n; unsigned int k; @@ -147,12 +143,11 @@ HEAP_EXPORT(void heap_insert(struct heap* heap, heap_node_swap(heap, newnode->parent, newnode); } -HEAP_EXPORT(void heap_remove(struct heap* heap, - struct heap_node* node, +HEAP_EXPORT(void heap_remove(struct heap *heap, struct heap_node *node, heap_compare_fn less_than)) { - struct heap_node* smallest; - struct heap_node** max; - struct heap_node* child; + struct heap_node *smallest; + struct heap_node **max; + struct heap_node *child; unsigned int path; unsigned int k; unsigned int n; @@ -236,10 +231,10 @@ HEAP_EXPORT(void heap_remove(struct heap* heap, heap_node_swap(heap, child->parent, child); } -HEAP_EXPORT(void heap_dequeue(struct heap* heap, heap_compare_fn less_than)) { +HEAP_EXPORT(void heap_dequeue(struct heap *heap, heap_compare_fn less_than)) { heap_remove(heap, heap->min, less_than); } #undef HEAP_EXPORT -#endif /* UV_SRC_HEAP_H_ */ +#endif /* UV_SRC_HEAP_H_ */ diff --git a/src/libuv/src/idna.h b/src/libuv/src/idna.h index 8e0c592f..08249443 100644 --- a/src/libuv/src/idna.h +++ b/src/libuv/src/idna.h @@ -20,12 +20,12 @@ * |p| is updated on success _and_ error, i.e., bad multi-byte sequences are * skipped in their entirety, not just the first bad byte. */ -unsigned uv__utf8_decode1(const char** p, const char* pe); +unsigned uv__utf8_decode1(const char **p, const char *pe); /* Convert a UTF-8 domain name to IDNA 2008 / Punycode. A return value >= 0 * is the number of bytes written to |d|, including the trailing nul byte. * A return value < 0 is a libuv error code. |s| and |d| can not overlap. */ -long uv__idna_toascii(const char* s, const char* se, char* d, char* de); +long uv__idna_toascii(const char *s, const char *se, char *d, char *de); -#endif /* UV_SRC_IDNA_H_ */ +#endif /* UV_SRC_IDNA_H_ */ diff --git a/src/libuv/src/queue.h b/src/libuv/src/queue.h index ff3540a0..c6bf4847 100644 --- a/src/libuv/src/queue.h +++ b/src/libuv/src/queue.h @@ -21,88 +21,79 @@ typedef void *QUEUE[2]; /* Private macros. */ -#define QUEUE_NEXT(q) (*(QUEUE **) &((*(q))[0])) -#define QUEUE_PREV(q) (*(QUEUE **) &((*(q))[1])) -#define QUEUE_PREV_NEXT(q) (QUEUE_NEXT(QUEUE_PREV(q))) -#define QUEUE_NEXT_PREV(q) (QUEUE_PREV(QUEUE_NEXT(q))) +#define QUEUE_NEXT(q) (*(QUEUE **)&((*(q))[0])) +#define QUEUE_PREV(q) (*(QUEUE **)&((*(q))[1])) +#define QUEUE_PREV_NEXT(q) (QUEUE_NEXT(QUEUE_PREV(q))) +#define QUEUE_NEXT_PREV(q) (QUEUE_PREV(QUEUE_NEXT(q))) /* Public macros. */ -#define QUEUE_DATA(ptr, type, field) \ - ((type *) ((char *) (ptr) - offsetof(type, field))) +#define QUEUE_DATA(ptr, type, field) \ + ((type *)((char *)(ptr) - offsetof(type, field))) /* Important note: mutating the list while QUEUE_FOREACH is * iterating over its elements results in undefined behavior. */ -#define QUEUE_FOREACH(q, h) \ +#define QUEUE_FOREACH(q, h) \ for ((q) = QUEUE_NEXT(h); (q) != (h); (q) = QUEUE_NEXT(q)) -#define QUEUE_EMPTY(q) \ - ((const QUEUE *) (q) == (const QUEUE *) QUEUE_NEXT(q)) - -#define QUEUE_HEAD(q) \ - (QUEUE_NEXT(q)) - -#define QUEUE_INIT(q) \ - do { \ - QUEUE_NEXT(q) = (q); \ - QUEUE_PREV(q) = (q); \ - } \ - while (0) - -#define QUEUE_ADD(h, n) \ - do { \ - QUEUE_PREV_NEXT(h) = QUEUE_NEXT(n); \ - QUEUE_NEXT_PREV(n) = QUEUE_PREV(h); \ - QUEUE_PREV(h) = QUEUE_PREV(n); \ - QUEUE_PREV_NEXT(h) = (h); \ - } \ - while (0) - -#define QUEUE_SPLIT(h, q, n) \ - do { \ - QUEUE_PREV(n) = QUEUE_PREV(h); \ - QUEUE_PREV_NEXT(n) = (n); \ - QUEUE_NEXT(n) = (q); \ - QUEUE_PREV(h) = QUEUE_PREV(q); \ - QUEUE_PREV_NEXT(h) = (h); \ - QUEUE_PREV(q) = (n); \ - } \ - while (0) - -#define QUEUE_MOVE(h, n) \ - do { \ - if (QUEUE_EMPTY(h)) \ - QUEUE_INIT(n); \ - else { \ - QUEUE* q = QUEUE_HEAD(h); \ - QUEUE_SPLIT(h, q, n); \ - } \ - } \ - while (0) - -#define QUEUE_INSERT_HEAD(h, q) \ - do { \ - QUEUE_NEXT(q) = QUEUE_NEXT(h); \ - QUEUE_PREV(q) = (h); \ - QUEUE_NEXT_PREV(q) = (q); \ - QUEUE_NEXT(h) = (q); \ - } \ - while (0) - -#define QUEUE_INSERT_TAIL(h, q) \ - do { \ - QUEUE_NEXT(q) = (h); \ - QUEUE_PREV(q) = QUEUE_PREV(h); \ - QUEUE_PREV_NEXT(q) = (q); \ - QUEUE_PREV(h) = (q); \ - } \ - while (0) - -#define QUEUE_REMOVE(q) \ - do { \ - QUEUE_PREV_NEXT(q) = QUEUE_NEXT(q); \ - QUEUE_NEXT_PREV(q) = QUEUE_PREV(q); \ - } \ - while (0) +#define QUEUE_EMPTY(q) ((const QUEUE *)(q) == (const QUEUE *)QUEUE_NEXT(q)) + +#define QUEUE_HEAD(q) (QUEUE_NEXT(q)) + +#define QUEUE_INIT(q) \ + do { \ + QUEUE_NEXT(q) = (q); \ + QUEUE_PREV(q) = (q); \ + } while (0) + +#define QUEUE_ADD(h, n) \ + do { \ + QUEUE_PREV_NEXT(h) = QUEUE_NEXT(n); \ + QUEUE_NEXT_PREV(n) = QUEUE_PREV(h); \ + QUEUE_PREV(h) = QUEUE_PREV(n); \ + QUEUE_PREV_NEXT(h) = (h); \ + } while (0) + +#define QUEUE_SPLIT(h, q, n) \ + do { \ + QUEUE_PREV(n) = QUEUE_PREV(h); \ + QUEUE_PREV_NEXT(n) = (n); \ + QUEUE_NEXT(n) = (q); \ + QUEUE_PREV(h) = QUEUE_PREV(q); \ + QUEUE_PREV_NEXT(h) = (h); \ + QUEUE_PREV(q) = (n); \ + } while (0) + +#define QUEUE_MOVE(h, n) \ + do { \ + if (QUEUE_EMPTY(h)) \ + QUEUE_INIT(n); \ + else { \ + QUEUE *q = QUEUE_HEAD(h); \ + QUEUE_SPLIT(h, q, n); \ + } \ + } while (0) + +#define QUEUE_INSERT_HEAD(h, q) \ + do { \ + QUEUE_NEXT(q) = QUEUE_NEXT(h); \ + QUEUE_PREV(q) = (h); \ + QUEUE_NEXT_PREV(q) = (q); \ + QUEUE_NEXT(h) = (q); \ + } while (0) + +#define QUEUE_INSERT_TAIL(h, q) \ + do { \ + QUEUE_NEXT(q) = (h); \ + QUEUE_PREV(q) = QUEUE_PREV(h); \ + QUEUE_PREV_NEXT(q) = (q); \ + QUEUE_PREV(h) = (q); \ + } while (0) + +#define QUEUE_REMOVE(q) \ + do { \ + QUEUE_PREV_NEXT(q) = QUEUE_NEXT(q); \ + QUEUE_NEXT_PREV(q) = QUEUE_PREV(q); \ + } while (0) #endif /* QUEUE_H_ */ diff --git a/src/libuv/src/strscpy.h b/src/libuv/src/strscpy.h index cc78149d..97947d04 100644 --- a/src/libuv/src/strscpy.h +++ b/src/libuv/src/strscpy.h @@ -34,6 +34,6 @@ * * See https://www.kernel.org/doc/htmldocs/kernel-api/API-strscpy.html */ -ssize_t uv__strscpy(char* d, const char* s, size_t n); +ssize_t uv__strscpy(char *d, const char *s, size_t n); -#endif /* UV_STRSCPY_H_ */ +#endif /* UV_STRSCPY_H_ */ diff --git a/src/libuv/src/unix/atomic-ops.h b/src/libuv/src/unix/atomic-ops.h index c48d0584..41c44de1 100644 --- a/src/libuv/src/unix/atomic-ops.h +++ b/src/libuv/src/unix/atomic-ops.h @@ -16,30 +16,30 @@ #ifndef UV_ATOMIC_OPS_H_ #define UV_ATOMIC_OPS_H_ -#include "internal.h" /* UV_UNUSED */ +#include "internal.h" /* UV_UNUSED */ #if defined(__SUNPRO_C) || defined(__SUNPRO_CC) #include #endif -UV_UNUSED(static int cmpxchgi(int* ptr, int oldval, int newval)); +UV_UNUSED(static int cmpxchgi(int *ptr, int oldval, int newval)); UV_UNUSED(static void cpu_relax(void)); /* Prefer hand-rolled assembly over the gcc builtins because the latter also * issue full memory barriers. */ -UV_UNUSED(static int cmpxchgi(int* ptr, int oldval, int newval)) { +UV_UNUSED(static int cmpxchgi(int *ptr, int oldval, int newval)) { #if defined(__i386__) || defined(__x86_64__) int out; - __asm__ __volatile__ ("lock; cmpxchg %2, %1;" - : "=a" (out), "+m" (*(volatile int*) ptr) - : "r" (newval), "0" (oldval) - : "memory"); + __asm__ __volatile__("lock; cmpxchg %2, %1;" + : "=a"(out), "+m"(*(volatile int *)ptr) + : "r"(newval), "0"(oldval) + : "memory"); return out; #elif defined(__MVS__) unsigned int op4; - if (__plo_CSST(ptr, (unsigned int*) &oldval, newval, - (unsigned int*) ptr, *ptr, &op4)) + if (__plo_CSST(ptr, (unsigned int *)&oldval, newval, (unsigned int *)ptr, + *ptr, &op4)) return oldval; else return op4; @@ -52,12 +52,12 @@ UV_UNUSED(static int cmpxchgi(int* ptr, int oldval, int newval)) { UV_UNUSED(static void cpu_relax(void)) { #if defined(__i386__) || defined(__x86_64__) - __asm__ __volatile__ ("rep; nop" ::: "memory"); /* a.k.a. PAUSE */ + __asm__ __volatile__("rep; nop" ::: "memory"); /* a.k.a. PAUSE */ #elif (defined(__arm__) && __ARM_ARCH >= 7) || defined(__aarch64__) - __asm__ __volatile__ ("yield" ::: "memory"); + __asm__ __volatile__("yield" ::: "memory"); #elif defined(__powerpc64__) || defined(__ppc64__) || defined(__PPC64__) - __asm__ __volatile__ ("or 1,1,1; or 2,2,2" ::: "memory"); + __asm__ __volatile__("or 1,1,1; or 2,2,2" ::: "memory"); #endif } -#endif /* UV_ATOMIC_OPS_H_ */ +#endif /* UV_ATOMIC_OPS_H_ */ diff --git a/src/libuv/src/unix/darwin-stub.h b/src/libuv/src/unix/darwin-stub.h index 433e3efa..0570adb4 100644 --- a/src/libuv/src/unix/darwin-stub.h +++ b/src/libuv/src/unix/darwin-stub.h @@ -40,18 +40,18 @@ typedef struct FSEventStreamContext FSEventStreamContext; typedef uint32_t FSEventStreamCreateFlags; typedef uint64_t FSEventStreamEventId; typedef unsigned CFStringEncoding; -typedef void* CFAllocatorRef; -typedef void* CFArrayRef; -typedef void* CFBundleRef; -typedef void* CFDataRef; -typedef void* CFDictionaryRef; -typedef void* CFMutableDictionaryRef; +typedef void *CFAllocatorRef; +typedef void *CFArrayRef; +typedef void *CFBundleRef; +typedef void *CFDataRef; +typedef void *CFDictionaryRef; +typedef void *CFMutableDictionaryRef; typedef struct CFRange CFRange; -typedef void* CFRunLoopRef; -typedef void* CFRunLoopSourceRef; -typedef void* CFStringRef; -typedef void* CFTypeRef; -typedef void* FSEventStreamRef; +typedef void *CFRunLoopRef; +typedef void *CFRunLoopSourceRef; +typedef void *CFStringRef; +typedef void *CFTypeRef; +typedef void *FSEventStreamRef; typedef uint32_t IOOptionBits; typedef unsigned int io_iterator_t; @@ -59,25 +59,21 @@ typedef unsigned int io_object_t; typedef unsigned int io_service_t; typedef unsigned int io_registry_entry_t; - -typedef void (*FSEventStreamCallback)(const FSEventStreamRef, - void*, - size_t, - void*, - const FSEventStreamEventFlags*, - const FSEventStreamEventId*); +typedef void (*FSEventStreamCallback)(const FSEventStreamRef, void *, size_t, + void *, const FSEventStreamEventFlags *, + const FSEventStreamEventId *); struct CFRunLoopSourceContext { CFIndex version; - void* info; - void* pad[7]; - void (*perform)(void*); + void *info; + void *pad[7]; + void (*perform)(void *); }; struct FSEventStreamContext { CFIndex version; - void* info; - void* pad[3]; + void *info; + void *pad[3]; }; struct CFRange { @@ -110,4 +106,4 @@ static const int kFSEventStreamEventFlagRootChanged = 32; static const int kFSEventStreamEventFlagUnmount = 128; static const int kFSEventStreamEventFlagUserDropped = 2; -#endif /* UV_DARWIN_STUB_H_ */ +#endif /* UV_DARWIN_STUB_H_ */ diff --git a/src/libuv/src/unix/internal.h b/src/libuv/src/unix/internal.h index 12d4da93..b2ecb7f5 100644 --- a/src/libuv/src/unix/internal.h +++ b/src/libuv/src/unix/internal.h @@ -25,41 +25,41 @@ #include "uv-common.h" #include +#include +#include /* O_CLOEXEC and O_NONBLOCK, if supported. */ #include /* _POSIX_PATH_MAX, PATH_MAX */ +#include #include /* abort */ #include /* strrchr */ -#include /* O_CLOEXEC and O_NONBLOCK, if supported. */ -#include -#include #include #if defined(__STRICT_ANSI__) -# define inline __inline +#define inline __inline #endif #if defined(__linux__) -# include "linux-syscalls.h" +#include "linux-syscalls.h" #endif /* __linux__ */ #if defined(__MVS__) -# include "os390-syscalls.h" +#include "os390-syscalls.h" #endif /* __MVS__ */ #if defined(__sun) -# include -# include +#include +#include #endif /* __sun */ #if defined(_AIX) -# define reqevents events -# define rtnevents revents -# include +#define reqevents events +#define rtnevents revents +#include #else -# include +#include #endif /* _AIX */ #if defined(__APPLE__) && !TARGET_OS_IPHONE -# include +#include #endif /* @@ -68,69 +68,65 @@ * - gcc-7+ uses __SANITIZE_THREAD__ */ #if defined(__has_feature) -# if __has_feature(thread_sanitizer) -# define __SANITIZE_THREAD__ 1 -# endif +#if __has_feature(thread_sanitizer) +#define __SANITIZE_THREAD__ 1 +#endif #endif #if defined(PATH_MAX) -# define UV__PATH_MAX PATH_MAX +#define UV__PATH_MAX PATH_MAX #else -# define UV__PATH_MAX 8192 +#define UV__PATH_MAX 8192 #endif #if defined(__ANDROID__) -int uv__pthread_sigmask(int how, const sigset_t* set, sigset_t* oset); -# ifdef pthread_sigmask -# undef pthread_sigmask -# endif -# define pthread_sigmask(how, set, oldset) uv__pthread_sigmask(how, set, oldset) +int uv__pthread_sigmask(int how, const sigset_t *set, sigset_t *oset); +#ifdef pthread_sigmask +#undef pthread_sigmask +#endif +#define pthread_sigmask(how, set, oldset) uv__pthread_sigmask(how, set, oldset) #endif -#define ACCESS_ONCE(type, var) \ - (*(volatile type*) &(var)) +#define ACCESS_ONCE(type, var) (*(volatile type *)&(var)) -#define ROUND_UP(a, b) \ - ((a) % (b) ? ((a) + (b)) - ((a) % (b)) : (a)) +#define ROUND_UP(a, b) ((a) % (b) ? ((a) + (b)) - ((a) % (b)) : (a)) -#define UNREACHABLE() \ - do { \ - assert(0 && "unreachable code"); \ - abort(); \ - } \ - while (0) +#define UNREACHABLE() \ + do { \ + assert(0 && "unreachable code"); \ + abort(); \ + } while (0) -#define SAVE_ERRNO(block) \ - do { \ - int _saved_errno = errno; \ - do { block; } while (0); \ - errno = _saved_errno; \ - } \ - while (0) +#define SAVE_ERRNO(block) \ + do { \ + int _saved_errno = errno; \ + do { \ + block; \ + } while (0); \ + errno = _saved_errno; \ + } while (0) /* The __clang__ and __INTEL_COMPILER checks are superfluous because they * define __GNUC__. They are here to convey to you, dear reader, that these * macros are enabled when compiling with clang or icc. */ -#if defined(__clang__) || \ - defined(__GNUC__) || \ - defined(__INTEL_COMPILER) -# define UV_UNUSED(declaration) __attribute__((unused)) declaration +#if defined(__clang__) || defined(__GNUC__) || defined(__INTEL_COMPILER) +#define UV_UNUSED(declaration) __attribute__((unused)) declaration #else -# define UV_UNUSED(declaration) declaration +#define UV_UNUSED(declaration) declaration #endif /* Leans on the fact that, on Linux, POLLRDHUP == EPOLLRDHUP. */ #ifdef POLLRDHUP -# define UV__POLLRDHUP POLLRDHUP +#define UV__POLLRDHUP POLLRDHUP #else -# define UV__POLLRDHUP 0x2000 +#define UV__POLLRDHUP 0x2000 #endif #ifdef POLLPRI -# define UV__POLLPRI POLLPRI +#define UV__POLLPRI POLLPRI #else -# define UV__POLLPRI 0 +#define UV__POLLPRI 0 #endif #if !defined(O_CLOEXEC) && defined(__FreeBSD__) @@ -138,25 +134,20 @@ int uv__pthread_sigmask(int how, const sigset_t* set, sigset_t* oset); * It may be that we are just missing `__POSIX_VISIBLE >= 200809`. * Try using fixed value const and give up, if it doesn't work */ -# define O_CLOEXEC 0x00100000 +#define O_CLOEXEC 0x00100000 #endif typedef struct uv__stream_queued_fds_s uv__stream_queued_fds_t; /* loop flags */ -enum { - UV_LOOP_BLOCK_SIGPROF = 1 -}; +enum { UV_LOOP_BLOCK_SIGPROF = 1 }; /* flags of excluding ifaddr */ -enum { - UV__EXCLUDE_IFPHYS, - UV__EXCLUDE_IFADDR -}; +enum { UV__EXCLUDE_IFPHYS, UV__EXCLUDE_IFADDR }; typedef enum { - UV_CLOCK_PRECISE = 0, /* Use the highest resolution clock available. */ - UV_CLOCK_FAST = 1 /* Use the fastest clock with <= 1ms granularity. */ + UV_CLOCK_PRECISE = 0, /* Use the highest resolution clock available. */ + UV_CLOCK_FAST = 1 /* Use the fastest clock with <= 1ms granularity. */ } uv_clocktype_t; struct uv__stream_queued_fds_s { @@ -165,15 +156,9 @@ struct uv__stream_queued_fds_s { int fds[1]; }; - -#if defined(_AIX) || \ - defined(__APPLE__) || \ - defined(__DragonFly__) || \ - defined(__FreeBSD__) || \ - defined(__FreeBSD_kernel__) || \ - defined(__linux__) || \ - defined(__OpenBSD__) || \ - defined(__NetBSD__) +#if defined(_AIX) || defined(__APPLE__) || defined(__DragonFly__) || \ + defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \ + defined(__linux__) || defined(__OpenBSD__) || defined(__NetBSD__) #define uv__cloexec uv__cloexec_ioctl #define uv__nonblock uv__nonblock_ioctl #define UV__NONBLOCK_IS_IOCTL 1 @@ -205,94 +190,92 @@ int uv__close_nocheckstdio(int fd); int uv__close_nocancel(int fd); int uv__socket(int domain, int type, int protocol); ssize_t uv__recvmsg(int fd, struct msghdr *msg, int flags); -void uv__make_close_pending(uv_handle_t* handle); +void uv__make_close_pending(uv_handle_t *handle); int uv__getiovmax(void); -void uv__io_init(uv__io_t* w, uv__io_cb cb, int fd); -void uv__io_start(uv_loop_t* loop, uv__io_t* w, unsigned int events); -void uv__io_stop(uv_loop_t* loop, uv__io_t* w, unsigned int events); -void uv__io_close(uv_loop_t* loop, uv__io_t* w); -void uv__io_feed(uv_loop_t* loop, uv__io_t* w); -int uv__io_active(const uv__io_t* w, unsigned int events); -int uv__io_check_fd(uv_loop_t* loop, int fd); -void uv__io_poll(uv_loop_t* loop, int timeout); /* in milliseconds or -1 */ -int uv__io_fork(uv_loop_t* loop); -int uv__fd_exists(uv_loop_t* loop, int fd); +void uv__io_init(uv__io_t *w, uv__io_cb cb, int fd); +void uv__io_start(uv_loop_t *loop, uv__io_t *w, unsigned int events); +void uv__io_stop(uv_loop_t *loop, uv__io_t *w, unsigned int events); +void uv__io_close(uv_loop_t *loop, uv__io_t *w); +void uv__io_feed(uv_loop_t *loop, uv__io_t *w); +int uv__io_active(const uv__io_t *w, unsigned int events); +int uv__io_check_fd(uv_loop_t *loop, int fd); +void uv__io_poll(uv_loop_t *loop, int timeout); /* in milliseconds or -1 */ +int uv__io_fork(uv_loop_t *loop); +int uv__fd_exists(uv_loop_t *loop, int fd); /* async */ -void uv__async_stop(uv_loop_t* loop); -int uv__async_fork(uv_loop_t* loop); - +void uv__async_stop(uv_loop_t *loop); +int uv__async_fork(uv_loop_t *loop); /* loop */ -void uv__run_idle(uv_loop_t* loop); -void uv__run_check(uv_loop_t* loop); -void uv__run_prepare(uv_loop_t* loop); +void uv__run_idle(uv_loop_t *loop); +void uv__run_check(uv_loop_t *loop); +void uv__run_prepare(uv_loop_t *loop); /* stream */ -void uv__stream_init(uv_loop_t* loop, uv_stream_t* stream, - uv_handle_type type); -int uv__stream_open(uv_stream_t*, int fd, int flags); -void uv__stream_destroy(uv_stream_t* stream); +void uv__stream_init(uv_loop_t *loop, uv_stream_t *stream, uv_handle_type type); +int uv__stream_open(uv_stream_t *, int fd, int flags); +void uv__stream_destroy(uv_stream_t *stream); #if defined(__APPLE__) -int uv__stream_try_select(uv_stream_t* stream, int* fd); +int uv__stream_try_select(uv_stream_t *stream, int *fd); #endif /* defined(__APPLE__) */ -void uv__server_io(uv_loop_t* loop, uv__io_t* w, unsigned int events); +void uv__server_io(uv_loop_t *loop, uv__io_t *w, unsigned int events); int uv__accept(int sockfd); int uv__dup2_cloexec(int oldfd, int newfd); -int uv__open_cloexec(const char* path, int flags); +int uv__open_cloexec(const char *path, int flags); /* tcp */ -int uv_tcp_listen(uv_tcp_t* tcp, int backlog, uv_connection_cb cb); +int uv_tcp_listen(uv_tcp_t *tcp, int backlog, uv_connection_cb cb); int uv__tcp_nodelay(int fd, int on); int uv__tcp_keepalive(int fd, int on, unsigned int delay); /* pipe */ -int uv_pipe_listen(uv_pipe_t* handle, int backlog, uv_connection_cb cb); +int uv_pipe_listen(uv_pipe_t *handle, int backlog, uv_connection_cb cb); /* signal */ -void uv__signal_close(uv_signal_t* handle); +void uv__signal_close(uv_signal_t *handle); void uv__signal_global_once_init(void); -void uv__signal_loop_cleanup(uv_loop_t* loop); -int uv__signal_loop_fork(uv_loop_t* loop); +void uv__signal_loop_cleanup(uv_loop_t *loop); +int uv__signal_loop_fork(uv_loop_t *loop); /* platform specific */ uint64_t uv__hrtime(uv_clocktype_t type); -int uv__kqueue_init(uv_loop_t* loop); -int uv__epoll_init(uv_loop_t* loop); -int uv__platform_loop_init(uv_loop_t* loop); -void uv__platform_loop_delete(uv_loop_t* loop); -void uv__platform_invalidate_fd(uv_loop_t* loop, int fd); +int uv__kqueue_init(uv_loop_t *loop); +int uv__epoll_init(uv_loop_t *loop); +int uv__platform_loop_init(uv_loop_t *loop); +void uv__platform_loop_delete(uv_loop_t *loop); +void uv__platform_invalidate_fd(uv_loop_t *loop, int fd); /* various */ -void uv__async_close(uv_async_t* handle); -void uv__check_close(uv_check_t* handle); -void uv__fs_event_close(uv_fs_event_t* handle); -void uv__idle_close(uv_idle_t* handle); -void uv__pipe_close(uv_pipe_t* handle); -void uv__poll_close(uv_poll_t* handle); -void uv__prepare_close(uv_prepare_t* handle); -void uv__process_close(uv_process_t* handle); -void uv__stream_close(uv_stream_t* handle); -void uv__tcp_close(uv_tcp_t* handle); +void uv__async_close(uv_async_t *handle); +void uv__check_close(uv_check_t *handle); +void uv__fs_event_close(uv_fs_event_t *handle); +void uv__idle_close(uv_idle_t *handle); +void uv__pipe_close(uv_pipe_t *handle); +void uv__poll_close(uv_poll_t *handle); +void uv__prepare_close(uv_prepare_t *handle); +void uv__process_close(uv_process_t *handle); +void uv__stream_close(uv_stream_t *handle); +void uv__tcp_close(uv_tcp_t *handle); size_t uv__thread_stack_size(void); -void uv__udp_close(uv_udp_t* handle); -void uv__udp_finish_close(uv_udp_t* handle); +void uv__udp_close(uv_udp_t *handle); +void uv__udp_finish_close(uv_udp_t *handle); uv_handle_type uv__handle_type(int fd); -FILE* uv__open_file(const char* path); -int uv__getpwuid_r(uv_passwd_t* pwd); -int uv__search_path(const char* prog, char* buf, size_t* buflen); +FILE *uv__open_file(const char *path); +int uv__getpwuid_r(uv_passwd_t *pwd); +int uv__search_path(const char *prog, char *buf, size_t *buflen); /* random */ -int uv__random_devurandom(void* buf, size_t buflen); -int uv__random_getrandom(void* buf, size_t buflen); -int uv__random_getentropy(void* buf, size_t buflen); -int uv__random_readpath(const char* path, void* buf, size_t buflen); -int uv__random_sysctl(void* buf, size_t buflen); +int uv__random_devurandom(void *buf, size_t buflen); +int uv__random_getrandom(void *buf, size_t buflen); +int uv__random_getentropy(void *buf, size_t buflen); +int uv__random_readpath(const char *path, void *buf, size_t buflen); +int uv__random_sysctl(void *buf, size_t buflen); #if defined(__APPLE__) -int uv___stream_fd(const uv_stream_t* handle); -#define uv__stream_fd(handle) (uv___stream_fd((const uv_stream_t*) (handle))) +int uv___stream_fd(const uv_stream_t *handle); +#define uv__stream_fd(handle) (uv___stream_fd((const uv_stream_t *)(handle))) #else #define uv__stream_fd(handle) ((handle)->io_watcher.fd) #endif /* defined(__APPLE__) */ @@ -301,60 +284,55 @@ int uv__make_pipe(int fds[2], int flags); #if defined(__APPLE__) -int uv__fsevents_init(uv_fs_event_t* handle); -int uv__fsevents_close(uv_fs_event_t* handle); -void uv__fsevents_loop_delete(uv_loop_t* loop); +int uv__fsevents_init(uv_fs_event_t *handle); +int uv__fsevents_close(uv_fs_event_t *handle); +void uv__fsevents_loop_delete(uv_loop_t *loop); #endif /* defined(__APPLE__) */ -UV_UNUSED(static void uv__update_time(uv_loop_t* loop)) { +UV_UNUSED(static void uv__update_time(uv_loop_t *loop)) { /* Use a fast time source if available. We only need millisecond precision. */ loop->time = uv__hrtime(UV_CLOCK_FAST) / 1000000; } -UV_UNUSED(static char* uv__basename_r(const char* path)) { - char* s; +UV_UNUSED(static char *uv__basename_r(const char *path)) { + char *s; s = strrchr(path, '/'); if (s == NULL) - return (char*) path; + return (char *)path; return s + 1; } #if defined(__linux__) -int uv__inotify_fork(uv_loop_t* loop, void* old_watchers); +int uv__inotify_fork(uv_loop_t *loop, void *old_watchers); #endif -typedef int (*uv__peersockfunc)(int, struct sockaddr*, socklen_t*); +typedef int (*uv__peersockfunc)(int, struct sockaddr *, socklen_t *); -int uv__getsockpeername(const uv_handle_t* handle, - uv__peersockfunc func, - struct sockaddr* name, - int* namelen); +int uv__getsockpeername(const uv_handle_t *handle, uv__peersockfunc func, + struct sockaddr *name, int *namelen); -#if defined(__linux__) || \ - defined(__FreeBSD__) || \ - defined(__FreeBSD_kernel__) || \ - defined(__DragonFly__) +#if defined(__linux__) || defined(__FreeBSD__) || \ + defined(__FreeBSD_kernel__) || defined(__DragonFly__) #define HAVE_MMSG 1 struct uv__mmsghdr { struct msghdr msg_hdr; unsigned int msg_len; }; -int uv__recvmmsg(int fd, struct uv__mmsghdr* mmsg, unsigned int vlen); -int uv__sendmmsg(int fd, struct uv__mmsghdr* mmsg, unsigned int vlen); +int uv__recvmmsg(int fd, struct uv__mmsghdr *mmsg, unsigned int vlen); +int uv__sendmmsg(int fd, struct uv__mmsghdr *mmsg, unsigned int vlen); #else #define HAVE_MMSG 0 #endif #if defined(__sun) #if !defined(_POSIX_VERSION) || _POSIX_VERSION < 200809L -size_t strnlen(const char* s, size_t maxlen); +size_t strnlen(const char *s, size_t maxlen); #endif #endif - #endif /* UV_UNIX_INTERNAL_H_ */ diff --git a/src/libuv/src/unix/linux-syscalls.h b/src/libuv/src/unix/linux-syscalls.h index b4d9082d..6e93db66 100644 --- a/src/libuv/src/unix/linux-syscalls.h +++ b/src/libuv/src/unix/linux-syscalls.h @@ -22,11 +22,11 @@ #ifndef UV_LINUX_SYSCALL_H_ #define UV_LINUX_SYSCALL_H_ -#include #include -#include -#include +#include #include +#include +#include struct uv__statx_timestamp { int64_t tv_sec; @@ -59,20 +59,13 @@ struct uv__statx { }; ssize_t uv__preadv(int fd, const struct iovec *iov, int iovcnt, int64_t offset); -ssize_t uv__pwritev(int fd, const struct iovec *iov, int iovcnt, int64_t offset); +ssize_t uv__pwritev(int fd, const struct iovec *iov, int iovcnt, + int64_t offset); int uv__dup3(int oldfd, int newfd, int flags); -ssize_t -uv__fs_copy_file_range(int fd_in, - off_t* off_in, - int fd_out, - off_t* off_out, - size_t len, - unsigned int flags); -int uv__statx(int dirfd, - const char* path, - int flags, - unsigned int mask, - struct uv__statx* statxbuf); -ssize_t uv__getrandom(void* buf, size_t buflen, unsigned flags); +ssize_t uv__fs_copy_file_range(int fd_in, off_t *off_in, int fd_out, + off_t *off_out, size_t len, unsigned int flags); +int uv__statx(int dirfd, const char *path, int flags, unsigned int mask, + struct uv__statx *statxbuf); +ssize_t uv__getrandom(void *buf, size_t buflen, unsigned flags); #endif /* UV_LINUX_SYSCALL_H_ */ diff --git a/src/libuv/src/unix/os390-syscalls.h b/src/libuv/src/unix/os390-syscalls.h index 9f504171..ca6df115 100644 --- a/src/libuv/src/unix/os390-syscalls.h +++ b/src/libuv/src/unix/os390-syscalls.h @@ -19,24 +19,23 @@ * IN THE SOFTWARE. */ - #ifndef UV_OS390_SYSCALL_H_ #define UV_OS390_SYSCALL_H_ -#include "uv.h" #include "internal.h" +#include "uv.h" +#include "zos-base.h" #include #include #include -#include "zos-base.h" -#define EPOLL_CTL_ADD 1 -#define EPOLL_CTL_DEL 2 -#define EPOLL_CTL_MOD 3 -#define MAX_EPOLL_INSTANCES 256 -#define MAX_ITEMS_PER_EPOLL 1024 +#define EPOLL_CTL_ADD 1 +#define EPOLL_CTL_DEL 2 +#define EPOLL_CTL_MOD 3 +#define MAX_EPOLL_INSTANCES 256 +#define MAX_ITEMS_PER_EPOLL 1024 -#define UV__O_CLOEXEC 0x80000 +#define UV__O_CLOEXEC 0x80000 struct epoll_event { int events; @@ -46,30 +45,30 @@ struct epoll_event { typedef struct { QUEUE member; - struct pollfd* items; + struct pollfd *items; unsigned long size; int msg_queue; } uv__os390_epoll; /* epoll api */ -uv__os390_epoll* epoll_create1(int flags); -int epoll_ctl(uv__os390_epoll* ep, int op, int fd, struct epoll_event *event); -int epoll_wait(uv__os390_epoll* ep, struct epoll_event *events, int maxevents, int timeout); +uv__os390_epoll *epoll_create1(int flags); +int epoll_ctl(uv__os390_epoll *ep, int op, int fd, struct epoll_event *event); +int epoll_wait(uv__os390_epoll *ep, struct epoll_event *events, int maxevents, + int timeout); int epoll_file_close(int fd); /* utility functions */ -int scandir(const char* maindir, struct dirent*** namelist, +int scandir(const char *maindir, struct dirent ***namelist, int (*filter)(const struct dirent *), - int (*compar)(const struct dirent **, - const struct dirent **)); -char *mkdtemp(char* path); -ssize_t os390_readlink(const char* path, char* buf, size_t len); -size_t strnlen(const char* str, size_t maxlen); -int sem_init(UV_PLATFORM_SEM_T* semid, int pshared, unsigned int value); -int sem_destroy(UV_PLATFORM_SEM_T* semid); -int sem_post(UV_PLATFORM_SEM_T* semid); -int sem_trywait(UV_PLATFORM_SEM_T* semid); -int sem_wait(UV_PLATFORM_SEM_T* semid); + int (*compar)(const struct dirent **, const struct dirent **)); +char *mkdtemp(char *path); +ssize_t os390_readlink(const char *path, char *buf, size_t len); +size_t strnlen(const char *str, size_t maxlen); +int sem_init(UV_PLATFORM_SEM_T *semid, int pshared, unsigned int value); +int sem_destroy(UV_PLATFORM_SEM_T *semid); +int sem_post(UV_PLATFORM_SEM_T *semid); +int sem_trywait(UV_PLATFORM_SEM_T *semid); +int sem_wait(UV_PLATFORM_SEM_T *semid); void uv__os390_cleanup(void); #endif /* UV_OS390_SYSCALL_H_ */ diff --git a/src/libuv/src/unix/spinlock.h b/src/libuv/src/unix/spinlock.h index a20c83cc..ab24d8f8 100644 --- a/src/libuv/src/unix/spinlock.h +++ b/src/libuv/src/unix/spinlock.h @@ -16,33 +16,34 @@ #ifndef UV_SPINLOCK_H_ #define UV_SPINLOCK_H_ -#include "internal.h" /* ACCESS_ONCE, UV_UNUSED */ #include "atomic-ops.h" +#include "internal.h" /* ACCESS_ONCE, UV_UNUSED */ -#define UV_SPINLOCK_INITIALIZER { 0 } +#define UV_SPINLOCK_INITIALIZER {0} typedef struct { int lock; } uv_spinlock_t; -UV_UNUSED(static void uv_spinlock_init(uv_spinlock_t* spinlock)); -UV_UNUSED(static void uv_spinlock_lock(uv_spinlock_t* spinlock)); -UV_UNUSED(static void uv_spinlock_unlock(uv_spinlock_t* spinlock)); -UV_UNUSED(static int uv_spinlock_trylock(uv_spinlock_t* spinlock)); +UV_UNUSED(static void uv_spinlock_init(uv_spinlock_t *spinlock)); +UV_UNUSED(static void uv_spinlock_lock(uv_spinlock_t *spinlock)); +UV_UNUSED(static void uv_spinlock_unlock(uv_spinlock_t *spinlock)); +UV_UNUSED(static int uv_spinlock_trylock(uv_spinlock_t *spinlock)); -UV_UNUSED(static void uv_spinlock_init(uv_spinlock_t* spinlock)) { +UV_UNUSED(static void uv_spinlock_init(uv_spinlock_t *spinlock)) { ACCESS_ONCE(int, spinlock->lock) = 0; } -UV_UNUSED(static void uv_spinlock_lock(uv_spinlock_t* spinlock)) { - while (!uv_spinlock_trylock(spinlock)) cpu_relax(); +UV_UNUSED(static void uv_spinlock_lock(uv_spinlock_t *spinlock)) { + while (!uv_spinlock_trylock(spinlock)) + cpu_relax(); } -UV_UNUSED(static void uv_spinlock_unlock(uv_spinlock_t* spinlock)) { +UV_UNUSED(static void uv_spinlock_unlock(uv_spinlock_t *spinlock)) { ACCESS_ONCE(int, spinlock->lock) = 0; } -UV_UNUSED(static int uv_spinlock_trylock(uv_spinlock_t* spinlock)) { +UV_UNUSED(static int uv_spinlock_trylock(uv_spinlock_t *spinlock)) { /* TODO(bnoordhuis) Maybe change to a ticket lock to guarantee fair queueing. * Not really critical until we have locks that are (frequently) contended * for by several threads. @@ -50,4 +51,4 @@ UV_UNUSED(static int uv_spinlock_trylock(uv_spinlock_t* spinlock)) { return 0 == cmpxchgi(&spinlock->lock, 0, 1); } -#endif /* UV_SPINLOCK_H_ */ +#endif /* UV_SPINLOCK_H_ */ diff --git a/src/libuv/src/uv-common.h b/src/libuv/src/uv-common.h index 8a190bf8..adc5f0cd 100644 --- a/src/libuv/src/uv-common.h +++ b/src/libuv/src/uv-common.h @@ -32,32 +32,32 @@ #include #if defined(_MSC_VER) && _MSC_VER < 1600 -# include "uv/stdint-msvc2008.h" +#include "uv/stdint-msvc2008.h" #else -# include +#include #endif -#include "uv.h" -#include "uv/tree.h" #include "queue.h" #include "strscpy.h" +#include "uv.h" +#include "uv/tree.h" #if EDOM > 0 -# define UV__ERR(x) (-(x)) +#define UV__ERR(x) (-(x)) #else -# define UV__ERR(x) (x) +#define UV__ERR(x) (x) #endif #if !defined(snprintf) && defined(_MSC_VER) && _MSC_VER < 1900 -extern int snprintf(char*, size_t, const char*, ...); +extern int snprintf(char *, size_t, const char *, ...); #endif #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) -#define container_of(ptr, type, member) \ - ((type *) ((char *) (ptr) - offsetof(type, member))) +#define container_of(ptr, type, member) \ + ((type *)((char *)(ptr) - offsetof(type, member))) -#define STATIC_ASSERT(expr) \ +#define STATIC_ASSERT(expr) \ void uv__static_assert(int static_assert_failed[1 - 2 * !(expr)]) #if defined(__GNUC__) && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 7) @@ -65,7 +65,10 @@ extern int snprintf(char*, size_t, const char*, ...); #define uv__store_relaxed(p, v) __atomic_store_n(p, v, __ATOMIC_RELAXED) #else #define uv__load_relaxed(p) (*p) -#define uv__store_relaxed(p, v) do *p = v; while (0) +#define uv__store_relaxed(p, v) \ + do \ + *p = v; \ + while (0) #endif #define UV__UDP_DGRAM_MAXSIZE (64 * 1024) @@ -73,285 +76,257 @@ extern int snprintf(char*, size_t, const char*, ...); /* Handle flags. Some flags are specific to Windows or UNIX. */ enum { /* Used by all handles. */ - UV_HANDLE_CLOSING = 0x00000001, - UV_HANDLE_CLOSED = 0x00000002, - UV_HANDLE_ACTIVE = 0x00000004, - UV_HANDLE_REF = 0x00000008, - UV_HANDLE_INTERNAL = 0x00000010, - UV_HANDLE_ENDGAME_QUEUED = 0x00000020, + UV_HANDLE_CLOSING = 0x00000001, + UV_HANDLE_CLOSED = 0x00000002, + UV_HANDLE_ACTIVE = 0x00000004, + UV_HANDLE_REF = 0x00000008, + UV_HANDLE_INTERNAL = 0x00000010, + UV_HANDLE_ENDGAME_QUEUED = 0x00000020, /* Used by streams. */ - UV_HANDLE_LISTENING = 0x00000040, - UV_HANDLE_CONNECTION = 0x00000080, - UV_HANDLE_SHUTTING = 0x00000100, - UV_HANDLE_SHUT = 0x00000200, - UV_HANDLE_READ_PARTIAL = 0x00000400, - UV_HANDLE_READ_EOF = 0x00000800, + UV_HANDLE_LISTENING = 0x00000040, + UV_HANDLE_CONNECTION = 0x00000080, + UV_HANDLE_SHUTTING = 0x00000100, + UV_HANDLE_SHUT = 0x00000200, + UV_HANDLE_READ_PARTIAL = 0x00000400, + UV_HANDLE_READ_EOF = 0x00000800, /* Used by streams and UDP handles. */ - UV_HANDLE_READING = 0x00001000, - UV_HANDLE_BOUND = 0x00002000, - UV_HANDLE_READABLE = 0x00004000, - UV_HANDLE_WRITABLE = 0x00008000, - UV_HANDLE_READ_PENDING = 0x00010000, - UV_HANDLE_SYNC_BYPASS_IOCP = 0x00020000, - UV_HANDLE_ZERO_READ = 0x00040000, - UV_HANDLE_EMULATE_IOCP = 0x00080000, - UV_HANDLE_BLOCKING_WRITES = 0x00100000, - UV_HANDLE_CANCELLATION_PENDING = 0x00200000, + UV_HANDLE_READING = 0x00001000, + UV_HANDLE_BOUND = 0x00002000, + UV_HANDLE_READABLE = 0x00004000, + UV_HANDLE_WRITABLE = 0x00008000, + UV_HANDLE_READ_PENDING = 0x00010000, + UV_HANDLE_SYNC_BYPASS_IOCP = 0x00020000, + UV_HANDLE_ZERO_READ = 0x00040000, + UV_HANDLE_EMULATE_IOCP = 0x00080000, + UV_HANDLE_BLOCKING_WRITES = 0x00100000, + UV_HANDLE_CANCELLATION_PENDING = 0x00200000, /* Used by uv_tcp_t and uv_udp_t handles */ - UV_HANDLE_IPV6 = 0x00400000, + UV_HANDLE_IPV6 = 0x00400000, /* Only used by uv_tcp_t handles. */ - UV_HANDLE_TCP_NODELAY = 0x01000000, - UV_HANDLE_TCP_KEEPALIVE = 0x02000000, - UV_HANDLE_TCP_SINGLE_ACCEPT = 0x04000000, - UV_HANDLE_TCP_ACCEPT_STATE_CHANGING = 0x08000000, - UV_HANDLE_SHARED_TCP_SOCKET = 0x10000000, + UV_HANDLE_TCP_NODELAY = 0x01000000, + UV_HANDLE_TCP_KEEPALIVE = 0x02000000, + UV_HANDLE_TCP_SINGLE_ACCEPT = 0x04000000, + UV_HANDLE_TCP_ACCEPT_STATE_CHANGING = 0x08000000, + UV_HANDLE_SHARED_TCP_SOCKET = 0x10000000, /* Only used by uv_udp_t handles. */ - UV_HANDLE_UDP_PROCESSING = 0x01000000, - UV_HANDLE_UDP_CONNECTED = 0x02000000, - UV_HANDLE_UDP_RECVMMSG = 0x04000000, + UV_HANDLE_UDP_PROCESSING = 0x01000000, + UV_HANDLE_UDP_CONNECTED = 0x02000000, + UV_HANDLE_UDP_RECVMMSG = 0x04000000, /* Only used by uv_pipe_t handles. */ - UV_HANDLE_NON_OVERLAPPED_PIPE = 0x01000000, - UV_HANDLE_PIPESERVER = 0x02000000, + UV_HANDLE_NON_OVERLAPPED_PIPE = 0x01000000, + UV_HANDLE_PIPESERVER = 0x02000000, /* Only used by uv_tty_t handles. */ - UV_HANDLE_TTY_READABLE = 0x01000000, - UV_HANDLE_TTY_RAW = 0x02000000, - UV_HANDLE_TTY_SAVED_POSITION = 0x04000000, - UV_HANDLE_TTY_SAVED_ATTRIBUTES = 0x08000000, + UV_HANDLE_TTY_READABLE = 0x01000000, + UV_HANDLE_TTY_RAW = 0x02000000, + UV_HANDLE_TTY_SAVED_POSITION = 0x04000000, + UV_HANDLE_TTY_SAVED_ATTRIBUTES = 0x08000000, /* Only used by uv_signal_t handles. */ - UV_SIGNAL_ONE_SHOT_DISPATCHED = 0x01000000, - UV_SIGNAL_ONE_SHOT = 0x02000000, + UV_SIGNAL_ONE_SHOT_DISPATCHED = 0x01000000, + UV_SIGNAL_ONE_SHOT = 0x02000000, /* Only used by uv_poll_t handles. */ - UV_HANDLE_POLL_SLOW = 0x01000000 + UV_HANDLE_POLL_SLOW = 0x01000000 }; -int uv__loop_configure(uv_loop_t* loop, uv_loop_option option, va_list ap); +int uv__loop_configure(uv_loop_t *loop, uv_loop_option option, va_list ap); -void uv__loop_close(uv_loop_t* loop); +void uv__loop_close(uv_loop_t *loop); -int uv__read_start(uv_stream_t* stream, - uv_alloc_cb alloc_cb, +int uv__read_start(uv_stream_t *stream, uv_alloc_cb alloc_cb, uv_read_cb read_cb); -int uv__tcp_bind(uv_tcp_t* tcp, - const struct sockaddr* addr, - unsigned int addrlen, - unsigned int flags); +int uv__tcp_bind(uv_tcp_t *tcp, const struct sockaddr *addr, + unsigned int addrlen, unsigned int flags); -int uv__tcp_connect(uv_connect_t* req, - uv_tcp_t* handle, - const struct sockaddr* addr, - unsigned int addrlen, - uv_connect_cb cb); +int uv__tcp_connect(uv_connect_t *req, uv_tcp_t *handle, + const struct sockaddr *addr, unsigned int addrlen, + uv_connect_cb cb); -int uv__udp_init_ex(uv_loop_t* loop, - uv_udp_t* handle, - unsigned flags, +int uv__udp_init_ex(uv_loop_t *loop, uv_udp_t *handle, unsigned flags, int domain); -int uv__udp_bind(uv_udp_t* handle, - const struct sockaddr* addr, - unsigned int addrlen, - unsigned int flags); +int uv__udp_bind(uv_udp_t *handle, const struct sockaddr *addr, + unsigned int addrlen, unsigned int flags); -int uv__udp_connect(uv_udp_t* handle, - const struct sockaddr* addr, +int uv__udp_connect(uv_udp_t *handle, const struct sockaddr *addr, unsigned int addrlen); -int uv__udp_disconnect(uv_udp_t* handle); +int uv__udp_disconnect(uv_udp_t *handle); -int uv__udp_is_connected(uv_udp_t* handle); +int uv__udp_is_connected(uv_udp_t *handle); -int uv__udp_send(uv_udp_send_t* req, - uv_udp_t* handle, - const uv_buf_t bufs[], - unsigned int nbufs, - const struct sockaddr* addr, - unsigned int addrlen, - uv_udp_send_cb send_cb); +int uv__udp_send(uv_udp_send_t *req, uv_udp_t *handle, const uv_buf_t bufs[], + unsigned int nbufs, const struct sockaddr *addr, + unsigned int addrlen, uv_udp_send_cb send_cb); -int uv__udp_try_send(uv_udp_t* handle, - const uv_buf_t bufs[], - unsigned int nbufs, - const struct sockaddr* addr, +int uv__udp_try_send(uv_udp_t *handle, const uv_buf_t bufs[], + unsigned int nbufs, const struct sockaddr *addr, unsigned int addrlen); -int uv__udp_recv_start(uv_udp_t* handle, uv_alloc_cb alloccb, +int uv__udp_recv_start(uv_udp_t *handle, uv_alloc_cb alloccb, uv_udp_recv_cb recv_cb); -int uv__udp_recv_stop(uv_udp_t* handle); +int uv__udp_recv_stop(uv_udp_t *handle); -void uv__fs_poll_close(uv_fs_poll_t* handle); +void uv__fs_poll_close(uv_fs_poll_t *handle); -int uv__getaddrinfo_translate_error(int sys_err); /* EAI_* error. */ +int uv__getaddrinfo_translate_error(int sys_err); /* EAI_* error. */ -enum uv__work_kind { - UV__WORK_CPU, - UV__WORK_FAST_IO, - UV__WORK_SLOW_IO -}; +enum uv__work_kind { UV__WORK_CPU, UV__WORK_FAST_IO, UV__WORK_SLOW_IO }; -void uv__work_submit(uv_loop_t* loop, - struct uv__work *w, - enum uv__work_kind kind, - void (*work)(struct uv__work *w), +void uv__work_submit(uv_loop_t *loop, struct uv__work *w, + enum uv__work_kind kind, void (*work)(struct uv__work *w), void (*done)(struct uv__work *w, int status)); -void uv__work_done(uv_async_t* handle); +void uv__work_done(uv_async_t *handle); size_t uv__count_bufs(const uv_buf_t bufs[], unsigned int nbufs); -int uv__socket_sockopt(uv_handle_t* handle, int optname, int* value); +int uv__socket_sockopt(uv_handle_t *handle, int optname, int *value); -void uv__fs_scandir_cleanup(uv_fs_t* req); -void uv__fs_readdir_cleanup(uv_fs_t* req); -uv_dirent_type_t uv__fs_get_dirent_type(uv__dirent_t* dent); +void uv__fs_scandir_cleanup(uv_fs_t *req); +void uv__fs_readdir_cleanup(uv_fs_t *req); +uv_dirent_type_t uv__fs_get_dirent_type(uv__dirent_t *dent); -int uv__next_timeout(const uv_loop_t* loop); -void uv__run_timers(uv_loop_t* loop); -void uv__timer_close(uv_timer_t* handle); +int uv__next_timeout(const uv_loop_t *loop); +void uv__run_timers(uv_loop_t *loop); +void uv__timer_close(uv_timer_t *handle); void uv__process_title_cleanup(void); void uv__signal_cleanup(void); void uv__threadpool_cleanup(void); -#define uv__has_active_reqs(loop) \ - ((loop)->active_reqs.count > 0) +#define uv__has_active_reqs(loop) ((loop)->active_reqs.count > 0) -#define uv__req_register(loop, req) \ - do { \ - (loop)->active_reqs.count++; \ - } \ - while (0) +#define uv__req_register(loop, req) \ + do { \ + (loop)->active_reqs.count++; \ + } while (0) -#define uv__req_unregister(loop, req) \ - do { \ - assert(uv__has_active_reqs(loop)); \ - (loop)->active_reqs.count--; \ - } \ - while (0) +#define uv__req_unregister(loop, req) \ + do { \ + assert(uv__has_active_reqs(loop)); \ + (loop)->active_reqs.count--; \ + } while (0) -#define uv__has_active_handles(loop) \ - ((loop)->active_handles > 0) +#define uv__has_active_handles(loop) ((loop)->active_handles > 0) -#define uv__active_handle_add(h) \ - do { \ - (h)->loop->active_handles++; \ - } \ - while (0) +#define uv__active_handle_add(h) \ + do { \ + (h)->loop->active_handles++; \ + } while (0) -#define uv__active_handle_rm(h) \ - do { \ - (h)->loop->active_handles--; \ - } \ - while (0) +#define uv__active_handle_rm(h) \ + do { \ + (h)->loop->active_handles--; \ + } while (0) -#define uv__is_active(h) \ - (((h)->flags & UV_HANDLE_ACTIVE) != 0) +#define uv__is_active(h) (((h)->flags & UV_HANDLE_ACTIVE) != 0) -#define uv__is_closing(h) \ +#define uv__is_closing(h) \ (((h)->flags & (UV_HANDLE_CLOSING | UV_HANDLE_CLOSED)) != 0) -#define uv__handle_start(h) \ - do { \ - if (((h)->flags & UV_HANDLE_ACTIVE) != 0) break; \ - (h)->flags |= UV_HANDLE_ACTIVE; \ - if (((h)->flags & UV_HANDLE_REF) != 0) uv__active_handle_add(h); \ - } \ - while (0) - -#define uv__handle_stop(h) \ - do { \ - if (((h)->flags & UV_HANDLE_ACTIVE) == 0) break; \ - (h)->flags &= ~UV_HANDLE_ACTIVE; \ - if (((h)->flags & UV_HANDLE_REF) != 0) uv__active_handle_rm(h); \ - } \ - while (0) - -#define uv__handle_ref(h) \ - do { \ - if (((h)->flags & UV_HANDLE_REF) != 0) break; \ - (h)->flags |= UV_HANDLE_REF; \ - if (((h)->flags & UV_HANDLE_CLOSING) != 0) break; \ - if (((h)->flags & UV_HANDLE_ACTIVE) != 0) uv__active_handle_add(h); \ - } \ - while (0) - -#define uv__handle_unref(h) \ - do { \ - if (((h)->flags & UV_HANDLE_REF) == 0) break; \ - (h)->flags &= ~UV_HANDLE_REF; \ - if (((h)->flags & UV_HANDLE_CLOSING) != 0) break; \ - if (((h)->flags & UV_HANDLE_ACTIVE) != 0) uv__active_handle_rm(h); \ - } \ - while (0) - -#define uv__has_ref(h) \ - (((h)->flags & UV_HANDLE_REF) != 0) +#define uv__handle_start(h) \ + do { \ + if (((h)->flags & UV_HANDLE_ACTIVE) != 0) \ + break; \ + (h)->flags |= UV_HANDLE_ACTIVE; \ + if (((h)->flags & UV_HANDLE_REF) != 0) \ + uv__active_handle_add(h); \ + } while (0) + +#define uv__handle_stop(h) \ + do { \ + if (((h)->flags & UV_HANDLE_ACTIVE) == 0) \ + break; \ + (h)->flags &= ~UV_HANDLE_ACTIVE; \ + if (((h)->flags & UV_HANDLE_REF) != 0) \ + uv__active_handle_rm(h); \ + } while (0) + +#define uv__handle_ref(h) \ + do { \ + if (((h)->flags & UV_HANDLE_REF) != 0) \ + break; \ + (h)->flags |= UV_HANDLE_REF; \ + if (((h)->flags & UV_HANDLE_CLOSING) != 0) \ + break; \ + if (((h)->flags & UV_HANDLE_ACTIVE) != 0) \ + uv__active_handle_add(h); \ + } while (0) + +#define uv__handle_unref(h) \ + do { \ + if (((h)->flags & UV_HANDLE_REF) == 0) \ + break; \ + (h)->flags &= ~UV_HANDLE_REF; \ + if (((h)->flags & UV_HANDLE_CLOSING) != 0) \ + break; \ + if (((h)->flags & UV_HANDLE_ACTIVE) != 0) \ + uv__active_handle_rm(h); \ + } while (0) + +#define uv__has_ref(h) (((h)->flags & UV_HANDLE_REF) != 0) #if defined(_WIN32) -# define uv__handle_platform_init(h) ((h)->u.fd = -1) +#define uv__handle_platform_init(h) ((h)->u.fd = -1) #else -# define uv__handle_platform_init(h) ((h)->next_closing = NULL) +#define uv__handle_platform_init(h) ((h)->next_closing = NULL) #endif -#define uv__handle_init(loop_, h, type_) \ - do { \ - (h)->loop = (loop_); \ - (h)->type = (type_); \ - (h)->flags = UV_HANDLE_REF; /* Ref the loop when active. */ \ - QUEUE_INSERT_TAIL(&(loop_)->handle_queue, &(h)->handle_queue); \ - uv__handle_platform_init(h); \ - } \ - while (0) +#define uv__handle_init(loop_, h, type_) \ + do { \ + (h)->loop = (loop_); \ + (h)->type = (type_); \ + (h)->flags = UV_HANDLE_REF; /* Ref the loop when active. */ \ + QUEUE_INSERT_TAIL(&(loop_)->handle_queue, &(h)->handle_queue); \ + uv__handle_platform_init(h); \ + } while (0) /* Note: uses an open-coded version of SET_REQ_SUCCESS() because of * a circular dependency between src/uv-common.h and src/win/internal.h. */ #if defined(_WIN32) -# define UV_REQ_INIT(req, typ) \ - do { \ - (req)->type = (typ); \ - (req)->u.io.overlapped.Internal = 0; /* SET_REQ_SUCCESS() */ \ - } \ - while (0) +#define UV_REQ_INIT(req, typ) \ + do { \ + (req)->type = (typ); \ + (req)->u.io.overlapped.Internal = 0; /* SET_REQ_SUCCESS() */ \ + } while (0) #else -# define UV_REQ_INIT(req, typ) \ - do { \ - (req)->type = (typ); \ - } \ - while (0) +#define UV_REQ_INIT(req, typ) \ + do { \ + (req)->type = (typ); \ + } while (0) #endif -#define uv__req_init(loop, req, typ) \ - do { \ - UV_REQ_INIT(req, typ); \ - uv__req_register(loop, req); \ - } \ - while (0) +#define uv__req_init(loop, req, typ) \ + do { \ + UV_REQ_INIT(req, typ); \ + uv__req_register(loop, req); \ + } while (0) -#define uv__get_internal_fields(loop) \ - ((uv__loop_internal_fields_t*) loop->internal_fields) +#define uv__get_internal_fields(loop) \ + ((uv__loop_internal_fields_t *)loop->internal_fields) -#define uv__get_loop_metrics(loop) \ +#define uv__get_loop_metrics(loop) \ (&uv__get_internal_fields(loop)->loop_metrics) /* Allocator prototypes */ void *uv__calloc(size_t count, size_t size); -char *uv__strdup(const char* s); -char *uv__strndup(const char* s, size_t n); -void* uv__malloc(size_t size); -void uv__free(void* ptr); -void* uv__realloc(void* ptr, size_t size); -void* uv__reallocf(void* ptr, size_t size); +char *uv__strdup(const char *s); +char *uv__strndup(const char *s, size_t n); +void *uv__malloc(size_t size); +void uv__free(void *ptr); +void *uv__realloc(void *ptr, size_t size); +void *uv__reallocf(void *ptr, size_t size); typedef struct uv__loop_metrics_s uv__loop_metrics_t; typedef struct uv__loop_internal_fields_s uv__loop_internal_fields_t; @@ -362,8 +337,8 @@ struct uv__loop_metrics_s { uv_mutex_t lock; }; -void uv__metrics_update_idle_time(uv_loop_t* loop); -void uv__metrics_set_provider_entry_time(uv_loop_t* loop); +void uv__metrics_update_idle_time(uv_loop_t *loop); +void uv__metrics_set_provider_entry_time(uv_loop_t *loop); struct uv__loop_internal_fields_s { unsigned int flags; diff --git a/src/libuv/src/win/atomicops-inl.h b/src/libuv/src/win/atomicops-inl.h index 2f984c6d..3ada875c 100644 --- a/src/libuv/src/win/atomicops-inl.h +++ b/src/libuv/src/win/atomicops-inl.h @@ -22,9 +22,8 @@ #ifndef UV_WIN_ATOMICOPS_INL_H_ #define UV_WIN_ATOMICOPS_INL_H_ -#include "uv.h" #include "internal.h" - +#include "uv.h" /* Atomic set operation on char */ #ifdef _MSC_VER /* MSVC */ @@ -35,21 +34,21 @@ * aligned. */ #pragma intrinsic(_InterlockedOr8) -static char INLINE uv__atomic_exchange_set(char volatile* target) { +static char INLINE uv__atomic_exchange_set(char volatile *target) { return _InterlockedOr8(target, 1); } #else /* GCC, Clang in mingw mode */ -static inline char uv__atomic_exchange_set(char volatile* target) { +static inline char uv__atomic_exchange_set(char volatile *target) { #if defined(__i386__) || defined(__x86_64__) /* Mingw-32 version, hopefully this works for 64-bit gcc as well. */ const char one = 1; char old_value; - __asm__ __volatile__ ("lock xchgb %0, %1\n\t" - : "=r"(old_value), "=m"(*target) - : "0"(one), "m"(*target) - : "memory"); + __asm__ __volatile__("lock xchgb %0, %1\n\t" + : "=r"(old_value), "=m"(*target) + : "0"(one), "m"(*target) + : "memory"); return old_value; #else return __sync_fetch_and_or(target, 1); diff --git a/src/libuv/src/win/fs-fd-hash-inl.h b/src/libuv/src/win/fs-fd-hash-inl.h index 0b532af1..2af27a90 100644 --- a/src/libuv/src/win/fs-fd-hash-inl.h +++ b/src/libuv/src/win/fs-fd-hash-inl.h @@ -22,8 +22,8 @@ #ifndef UV_WIN_FS_FD_HASH_INL_H_ #define UV_WIN_FS_FD_HASH_INL_H_ -#include "uv.h" #include "internal.h" +#include "uv.h" /* Files are only inserted in uv__fd_hash when the UV_FS_O_FILEMAP flag is * specified. Thus, when uv__fd_hash_get returns true, the file mapping in the @@ -38,7 +38,6 @@ * kept to minimize allocations. A statically allocated memory buffer is kept * for the first array in each bucket. */ - #define UV__FD_HASH_SIZE 256 #define UV__FD_HASH_GROUP_SIZE 16 @@ -57,22 +56,20 @@ struct uv__fd_hash_entry_s { struct uv__fd_hash_entry_group_s { struct uv__fd_hash_entry_s entries[UV__FD_HASH_GROUP_SIZE]; - struct uv__fd_hash_entry_group_s* next; + struct uv__fd_hash_entry_group_s *next; }; struct uv__fd_hash_bucket_s { size_t size; - struct uv__fd_hash_entry_group_s* data; + struct uv__fd_hash_entry_group_s *data; }; - static uv_mutex_t uv__fd_hash_mutex; static struct uv__fd_hash_entry_group_s - uv__fd_hash_entry_initial[UV__FD_HASH_SIZE * UV__FD_HASH_GROUP_SIZE]; + uv__fd_hash_entry_initial[UV__FD_HASH_SIZE * UV__FD_HASH_GROUP_SIZE]; static struct uv__fd_hash_bucket_s uv__fd_hash[UV__FD_HASH_SIZE]; - INLINE static void uv__fd_hash_init(void) { size_t i; int err; @@ -89,37 +86,36 @@ INLINE static void uv__fd_hash_init(void) { } } -#define FIND_COMMON_VARIABLES \ - unsigned i; \ - unsigned bucket = fd % ARRAY_SIZE(uv__fd_hash); \ - struct uv__fd_hash_entry_s* entry_ptr = NULL; \ - struct uv__fd_hash_entry_group_s* group_ptr; \ - struct uv__fd_hash_bucket_s* bucket_ptr = &uv__fd_hash[bucket]; - -#define FIND_IN_GROUP_PTR(group_size) \ - do { \ - for (i = 0; i < group_size; ++i) { \ - if (group_ptr->entries[i].fd == fd) { \ - entry_ptr = &group_ptr->entries[i]; \ - break; \ - } \ - } \ +#define FIND_COMMON_VARIABLES \ + unsigned i; \ + unsigned bucket = fd % ARRAY_SIZE(uv__fd_hash); \ + struct uv__fd_hash_entry_s *entry_ptr = NULL; \ + struct uv__fd_hash_entry_group_s *group_ptr; \ + struct uv__fd_hash_bucket_s *bucket_ptr = &uv__fd_hash[bucket]; + +#define FIND_IN_GROUP_PTR(group_size) \ + do { \ + for (i = 0; i < group_size; ++i) { \ + if (group_ptr->entries[i].fd == fd) { \ + entry_ptr = &group_ptr->entries[i]; \ + break; \ + } \ + } \ } while (0) -#define FIND_IN_BUCKET_PTR() \ - do { \ - size_t first_group_size = bucket_ptr->size % UV__FD_HASH_GROUP_SIZE; \ - if (bucket_ptr->size != 0 && first_group_size == 0) \ - first_group_size = UV__FD_HASH_GROUP_SIZE; \ - group_ptr = bucket_ptr->data; \ - FIND_IN_GROUP_PTR(first_group_size); \ - for (group_ptr = group_ptr->next; \ - group_ptr != NULL && entry_ptr == NULL; \ - group_ptr = group_ptr->next) \ - FIND_IN_GROUP_PTR(UV__FD_HASH_GROUP_SIZE); \ +#define FIND_IN_BUCKET_PTR() \ + do { \ + size_t first_group_size = bucket_ptr->size % UV__FD_HASH_GROUP_SIZE; \ + if (bucket_ptr->size != 0 && first_group_size == 0) \ + first_group_size = UV__FD_HASH_GROUP_SIZE; \ + group_ptr = bucket_ptr->data; \ + FIND_IN_GROUP_PTR(first_group_size); \ + for (group_ptr = group_ptr->next; group_ptr != NULL && entry_ptr == NULL; \ + group_ptr = group_ptr->next) \ + FIND_IN_GROUP_PTR(UV__FD_HASH_GROUP_SIZE); \ } while (0) -INLINE static int uv__fd_hash_get(int fd, struct uv__fd_info_s* info) { +INLINE static int uv__fd_hash_get(int fd, struct uv__fd_info_s *info) { FIND_COMMON_VARIABLES uv_mutex_lock(&uv__fd_hash_mutex); @@ -134,7 +130,7 @@ INLINE static int uv__fd_hash_get(int fd, struct uv__fd_info_s* info) { return entry_ptr != NULL; } -INLINE static void uv__fd_hash_add(int fd, struct uv__fd_info_s* info) { +INLINE static void uv__fd_hash_add(int fd, struct uv__fd_info_s *info) { FIND_COMMON_VARIABLES uv_mutex_lock(&uv__fd_hash_mutex); @@ -145,8 +141,8 @@ INLINE static void uv__fd_hash_add(int fd, struct uv__fd_info_s* info) { i = bucket_ptr->size % UV__FD_HASH_GROUP_SIZE; if (bucket_ptr->size != 0 && i == 0) { - struct uv__fd_hash_entry_group_s* new_group_ptr = - uv__malloc(sizeof(*new_group_ptr)); + struct uv__fd_hash_entry_group_s *new_group_ptr = + uv__malloc(sizeof(*new_group_ptr)); if (new_group_ptr == NULL) { uv_fatal_error(ERROR_OUTOFMEMORY, "uv__malloc"); } @@ -164,7 +160,7 @@ INLINE static void uv__fd_hash_add(int fd, struct uv__fd_info_s* info) { uv_mutex_unlock(&uv__fd_hash_mutex); } -INLINE static int uv__fd_hash_remove(int fd, struct uv__fd_info_s* info) { +INLINE static int uv__fd_hash_remove(int fd, struct uv__fd_info_s *info) { FIND_COMMON_VARIABLES uv_mutex_lock(&uv__fd_hash_mutex); @@ -183,7 +179,7 @@ INLINE static int uv__fd_hash_remove(int fd, struct uv__fd_info_s* info) { if (bucket_ptr->size != 0 && bucket_ptr->size % UV__FD_HASH_GROUP_SIZE == 0) { - struct uv__fd_hash_entry_group_s* old_group_ptr = bucket_ptr->data; + struct uv__fd_hash_entry_group_s *old_group_ptr = bucket_ptr->data; bucket_ptr->data = old_group_ptr->next; uv__free(old_group_ptr); } diff --git a/src/libuv/src/win/handle-inl.h b/src/libuv/src/win/handle-inl.h index 82c657d5..9b47d5d6 100644 --- a/src/libuv/src/win/handle-inl.h +++ b/src/libuv/src/win/handle-inl.h @@ -25,67 +25,60 @@ #include #include -#include "uv.h" #include "internal.h" +#include "uv.h" - -#define DECREASE_ACTIVE_COUNT(loop, handle) \ - do { \ - if (--(handle)->activecnt == 0 && \ - !((handle)->flags & UV_HANDLE_CLOSING)) { \ - uv__handle_stop((handle)); \ - } \ - assert((handle)->activecnt >= 0); \ +#define DECREASE_ACTIVE_COUNT(loop, handle) \ + do { \ + if (--(handle)->activecnt == 0 && \ + !((handle)->flags & UV_HANDLE_CLOSING)) { \ + uv__handle_stop((handle)); \ + } \ + assert((handle)->activecnt >= 0); \ } while (0) - -#define INCREASE_ACTIVE_COUNT(loop, handle) \ - do { \ - if ((handle)->activecnt++ == 0) { \ - uv__handle_start((handle)); \ - } \ - assert((handle)->activecnt > 0); \ +#define INCREASE_ACTIVE_COUNT(loop, handle) \ + do { \ + if ((handle)->activecnt++ == 0) { \ + uv__handle_start((handle)); \ + } \ + assert((handle)->activecnt > 0); \ } while (0) - -#define DECREASE_PENDING_REQ_COUNT(handle) \ - do { \ - assert(handle->reqs_pending > 0); \ - handle->reqs_pending--; \ - \ - if (handle->flags & UV_HANDLE_CLOSING && \ - handle->reqs_pending == 0) { \ - uv_want_endgame(loop, (uv_handle_t*)handle); \ - } \ +#define DECREASE_PENDING_REQ_COUNT(handle) \ + do { \ + assert(handle->reqs_pending > 0); \ + handle->reqs_pending--; \ + \ + if (handle->flags & UV_HANDLE_CLOSING && handle->reqs_pending == 0) { \ + uv_want_endgame(loop, (uv_handle_t *)handle); \ + } \ } while (0) - -#define uv__handle_closing(handle) \ - do { \ - assert(!((handle)->flags & UV_HANDLE_CLOSING)); \ - \ - if (!(((handle)->flags & UV_HANDLE_ACTIVE) && \ - ((handle)->flags & UV_HANDLE_REF))) \ - uv__active_handle_add((uv_handle_t*) (handle)); \ - \ - (handle)->flags |= UV_HANDLE_CLOSING; \ - (handle)->flags &= ~UV_HANDLE_ACTIVE; \ +#define uv__handle_closing(handle) \ + do { \ + assert(!((handle)->flags & UV_HANDLE_CLOSING)); \ + \ + if (!(((handle)->flags & UV_HANDLE_ACTIVE) && \ + ((handle)->flags & UV_HANDLE_REF))) \ + uv__active_handle_add((uv_handle_t *)(handle)); \ + \ + (handle)->flags |= UV_HANDLE_CLOSING; \ + (handle)->flags &= ~UV_HANDLE_ACTIVE; \ } while (0) - -#define uv__handle_close(handle) \ - do { \ - QUEUE_REMOVE(&(handle)->handle_queue); \ - uv__active_handle_rm((uv_handle_t*) (handle)); \ - \ - (handle)->flags |= UV_HANDLE_CLOSED; \ - \ - if ((handle)->close_cb) \ - (handle)->close_cb((uv_handle_t*) (handle)); \ +#define uv__handle_close(handle) \ + do { \ + QUEUE_REMOVE(&(handle)->handle_queue); \ + uv__active_handle_rm((uv_handle_t *)(handle)); \ + \ + (handle)->flags |= UV_HANDLE_CLOSED; \ + \ + if ((handle)->close_cb) \ + (handle)->close_cb((uv_handle_t *)(handle)); \ } while (0) - -INLINE static void uv_want_endgame(uv_loop_t* loop, uv_handle_t* handle) { +INLINE static void uv_want_endgame(uv_loop_t *loop, uv_handle_t *handle) { if (!(handle->flags & UV_HANDLE_ENDGAME_QUEUED)) { handle->flags |= UV_HANDLE_ENDGAME_QUEUED; @@ -94,9 +87,8 @@ INLINE static void uv_want_endgame(uv_loop_t* loop, uv_handle_t* handle) { } } - -INLINE static void uv_process_endgames(uv_loop_t* loop) { - uv_handle_t* handle; +INLINE static void uv_process_endgames(uv_loop_t *loop) { + uv_handle_t *handle; while (loop->endgame_handles) { handle = loop->endgame_handles; @@ -105,66 +97,65 @@ INLINE static void uv_process_endgames(uv_loop_t* loop) { handle->flags &= ~UV_HANDLE_ENDGAME_QUEUED; switch (handle->type) { - case UV_TCP: - uv_tcp_endgame(loop, (uv_tcp_t*) handle); - break; - - case UV_NAMED_PIPE: - uv_pipe_endgame(loop, (uv_pipe_t*) handle); - break; - - case UV_TTY: - uv_tty_endgame(loop, (uv_tty_t*) handle); - break; - - case UV_UDP: - uv_udp_endgame(loop, (uv_udp_t*) handle); - break; - - case UV_POLL: - uv_poll_endgame(loop, (uv_poll_t*) handle); - break; - - case UV_TIMER: - uv__timer_close((uv_timer_t*) handle); - uv__handle_close(handle); - break; - - case UV_PREPARE: - case UV_CHECK: - case UV_IDLE: - uv_loop_watcher_endgame(loop, handle); - break; - - case UV_ASYNC: - uv_async_endgame(loop, (uv_async_t*) handle); - break; - - case UV_SIGNAL: - uv_signal_endgame(loop, (uv_signal_t*) handle); - break; - - case UV_PROCESS: - uv_process_endgame(loop, (uv_process_t*) handle); - break; - - case UV_FS_EVENT: - uv_fs_event_endgame(loop, (uv_fs_event_t*) handle); - break; - - case UV_FS_POLL: - uv__fs_poll_endgame(loop, (uv_fs_poll_t*) handle); - break; - - default: - assert(0); - break; + case UV_TCP: + uv_tcp_endgame(loop, (uv_tcp_t *)handle); + break; + + case UV_NAMED_PIPE: + uv_pipe_endgame(loop, (uv_pipe_t *)handle); + break; + + case UV_TTY: + uv_tty_endgame(loop, (uv_tty_t *)handle); + break; + + case UV_UDP: + uv_udp_endgame(loop, (uv_udp_t *)handle); + break; + + case UV_POLL: + uv_poll_endgame(loop, (uv_poll_t *)handle); + break; + + case UV_TIMER: + uv__timer_close((uv_timer_t *)handle); + uv__handle_close(handle); + break; + + case UV_PREPARE: + case UV_CHECK: + case UV_IDLE: + uv_loop_watcher_endgame(loop, handle); + break; + + case UV_ASYNC: + uv_async_endgame(loop, (uv_async_t *)handle); + break; + + case UV_SIGNAL: + uv_signal_endgame(loop, (uv_signal_t *)handle); + break; + + case UV_PROCESS: + uv_process_endgame(loop, (uv_process_t *)handle); + break; + + case UV_FS_EVENT: + uv_fs_event_endgame(loop, (uv_fs_event_t *)handle); + break; + + case UV_FS_POLL: + uv__fs_poll_endgame(loop, (uv_fs_poll_t *)handle); + break; + + default: + assert(0); + break; } } } -INLINE static HANDLE uv__get_osfhandle(int fd) -{ +INLINE static HANDLE uv__get_osfhandle(int fd) { /* _get_osfhandle() raises an assert in debug builds if the FD is invalid. * But it also correctly checks the FD and returns INVALID_HANDLE_VALUE for * invalid FDs in release builds (or if you let the assert continue). So this @@ -172,7 +163,7 @@ INLINE static HANDLE uv__get_osfhandle(int fd) HANDLE handle; UV_BEGIN_DISABLE_CRT_ASSERT(); - handle = (HANDLE) _get_osfhandle(fd); + handle = (HANDLE)_get_osfhandle(fd); UV_END_DISABLE_CRT_ASSERT(); return handle; } diff --git a/src/libuv/src/win/internal.h b/src/libuv/src/win/internal.h index b1b25b4c..3100242c 100644 --- a/src/libuv/src/win/internal.h +++ b/src/libuv/src/win/internal.h @@ -22,34 +22,32 @@ #ifndef UV_WIN_INTERNAL_H_ #define UV_WIN_INTERNAL_H_ -#include "uv.h" #include "../uv-common.h" +#include "uv.h" #include "uv/tree.h" #include "winapi.h" #include "winsock.h" #ifdef _MSC_VER -# define INLINE __inline -# define UV_THREAD_LOCAL __declspec( thread ) +#define INLINE __inline +#define UV_THREAD_LOCAL __declspec(thread) #else -# define INLINE inline -# define UV_THREAD_LOCAL __thread +#define INLINE inline +#define UV_THREAD_LOCAL __thread #endif - #ifdef _DEBUG extern UV_THREAD_LOCAL int uv__crt_assert_enabled; -#define UV_BEGIN_DISABLE_CRT_ASSERT() \ - { \ - int uv__saved_crt_assert_enabled = uv__crt_assert_enabled; \ +#define UV_BEGIN_DISABLE_CRT_ASSERT() \ + { \ + int uv__saved_crt_assert_enabled = uv__crt_assert_enabled; \ uv__crt_assert_enabled = FALSE; - -#define UV_END_DISABLE_CRT_ASSERT() \ - uv__crt_assert_enabled = uv__saved_crt_assert_enabled; \ +#define UV_END_DISABLE_CRT_ASSERT() \ + uv__crt_assert_enabled = uv__saved_crt_assert_enabled; \ } #else @@ -72,146 +70,131 @@ typedef struct { uint32_t delayed_error; } uv__ipc_socket_xfer_info_t; -int uv_tcp_listen(uv_tcp_t* handle, int backlog, uv_connection_cb cb); -int uv_tcp_accept(uv_tcp_t* server, uv_tcp_t* client); -int uv_tcp_read_start(uv_tcp_t* handle, uv_alloc_cb alloc_cb, - uv_read_cb read_cb); -int uv_tcp_write(uv_loop_t* loop, uv_write_t* req, uv_tcp_t* handle, - const uv_buf_t bufs[], unsigned int nbufs, uv_write_cb cb); -int uv__tcp_try_write(uv_tcp_t* handle, const uv_buf_t bufs[], - unsigned int nbufs); - -void uv_process_tcp_read_req(uv_loop_t* loop, uv_tcp_t* handle, uv_req_t* req); -void uv_process_tcp_write_req(uv_loop_t* loop, uv_tcp_t* handle, - uv_write_t* req); -void uv_process_tcp_accept_req(uv_loop_t* loop, uv_tcp_t* handle, - uv_req_t* req); -void uv_process_tcp_connect_req(uv_loop_t* loop, uv_tcp_t* handle, - uv_connect_t* req); - -void uv_tcp_close(uv_loop_t* loop, uv_tcp_t* tcp); -void uv_tcp_endgame(uv_loop_t* loop, uv_tcp_t* handle); - -int uv__tcp_xfer_export(uv_tcp_t* handle, - int pid, - uv__ipc_socket_xfer_type_t* xfer_type, - uv__ipc_socket_xfer_info_t* xfer_info); -int uv__tcp_xfer_import(uv_tcp_t* tcp, - uv__ipc_socket_xfer_type_t xfer_type, - uv__ipc_socket_xfer_info_t* xfer_info); - +int uv_tcp_listen(uv_tcp_t *handle, int backlog, uv_connection_cb cb); +int uv_tcp_accept(uv_tcp_t *server, uv_tcp_t *client); +int uv_tcp_read_start(uv_tcp_t *handle, uv_alloc_cb alloc_cb, + uv_read_cb read_cb); +int uv_tcp_write(uv_loop_t *loop, uv_write_t *req, uv_tcp_t *handle, + const uv_buf_t bufs[], unsigned int nbufs, uv_write_cb cb); +int uv__tcp_try_write(uv_tcp_t *handle, const uv_buf_t bufs[], + unsigned int nbufs); + +void uv_process_tcp_read_req(uv_loop_t *loop, uv_tcp_t *handle, uv_req_t *req); +void uv_process_tcp_write_req(uv_loop_t *loop, uv_tcp_t *handle, + uv_write_t *req); +void uv_process_tcp_accept_req(uv_loop_t *loop, uv_tcp_t *handle, + uv_req_t *req); +void uv_process_tcp_connect_req(uv_loop_t *loop, uv_tcp_t *handle, + uv_connect_t *req); + +void uv_tcp_close(uv_loop_t *loop, uv_tcp_t *tcp); +void uv_tcp_endgame(uv_loop_t *loop, uv_tcp_t *handle); + +int uv__tcp_xfer_export(uv_tcp_t *handle, int pid, + uv__ipc_socket_xfer_type_t *xfer_type, + uv__ipc_socket_xfer_info_t *xfer_info); +int uv__tcp_xfer_import(uv_tcp_t *tcp, uv__ipc_socket_xfer_type_t xfer_type, + uv__ipc_socket_xfer_info_t *xfer_info); /* * UDP */ -void uv_process_udp_recv_req(uv_loop_t* loop, uv_udp_t* handle, uv_req_t* req); -void uv_process_udp_send_req(uv_loop_t* loop, uv_udp_t* handle, - uv_udp_send_t* req); - -void uv_udp_close(uv_loop_t* loop, uv_udp_t* handle); -void uv_udp_endgame(uv_loop_t* loop, uv_udp_t* handle); +void uv_process_udp_recv_req(uv_loop_t *loop, uv_udp_t *handle, uv_req_t *req); +void uv_process_udp_send_req(uv_loop_t *loop, uv_udp_t *handle, + uv_udp_send_t *req); +void uv_udp_close(uv_loop_t *loop, uv_udp_t *handle); +void uv_udp_endgame(uv_loop_t *loop, uv_udp_t *handle); /* * Pipes */ -int uv__create_stdio_pipe_pair(uv_loop_t* loop, - uv_pipe_t* parent_pipe, HANDLE* child_pipe_ptr, unsigned int flags); - -int uv_pipe_listen(uv_pipe_t* handle, int backlog, uv_connection_cb cb); -int uv_pipe_accept(uv_pipe_t* server, uv_stream_t* client); -int uv_pipe_read_start(uv_pipe_t* handle, uv_alloc_cb alloc_cb, - uv_read_cb read_cb); -void uv__pipe_read_stop(uv_pipe_t* handle); -int uv__pipe_write(uv_loop_t* loop, - uv_write_t* req, - uv_pipe_t* handle, - const uv_buf_t bufs[], - size_t nbufs, - uv_stream_t* send_handle, - uv_write_cb cb); - -void uv_process_pipe_read_req(uv_loop_t* loop, uv_pipe_t* handle, - uv_req_t* req); -void uv_process_pipe_write_req(uv_loop_t* loop, uv_pipe_t* handle, - uv_write_t* req); -void uv_process_pipe_accept_req(uv_loop_t* loop, uv_pipe_t* handle, - uv_req_t* raw_req); -void uv_process_pipe_connect_req(uv_loop_t* loop, uv_pipe_t* handle, - uv_connect_t* req); -void uv_process_pipe_shutdown_req(uv_loop_t* loop, uv_pipe_t* handle, - uv_shutdown_t* req); - -void uv_pipe_close(uv_loop_t* loop, uv_pipe_t* handle); -void uv_pipe_cleanup(uv_loop_t* loop, uv_pipe_t* handle); -void uv_pipe_endgame(uv_loop_t* loop, uv_pipe_t* handle); - +int uv__create_stdio_pipe_pair(uv_loop_t *loop, uv_pipe_t *parent_pipe, + HANDLE *child_pipe_ptr, unsigned int flags); + +int uv_pipe_listen(uv_pipe_t *handle, int backlog, uv_connection_cb cb); +int uv_pipe_accept(uv_pipe_t *server, uv_stream_t *client); +int uv_pipe_read_start(uv_pipe_t *handle, uv_alloc_cb alloc_cb, + uv_read_cb read_cb); +void uv__pipe_read_stop(uv_pipe_t *handle); +int uv__pipe_write(uv_loop_t *loop, uv_write_t *req, uv_pipe_t *handle, + const uv_buf_t bufs[], size_t nbufs, + uv_stream_t *send_handle, uv_write_cb cb); + +void uv_process_pipe_read_req(uv_loop_t *loop, uv_pipe_t *handle, + uv_req_t *req); +void uv_process_pipe_write_req(uv_loop_t *loop, uv_pipe_t *handle, + uv_write_t *req); +void uv_process_pipe_accept_req(uv_loop_t *loop, uv_pipe_t *handle, + uv_req_t *raw_req); +void uv_process_pipe_connect_req(uv_loop_t *loop, uv_pipe_t *handle, + uv_connect_t *req); +void uv_process_pipe_shutdown_req(uv_loop_t *loop, uv_pipe_t *handle, + uv_shutdown_t *req); + +void uv_pipe_close(uv_loop_t *loop, uv_pipe_t *handle); +void uv_pipe_cleanup(uv_loop_t *loop, uv_pipe_t *handle); +void uv_pipe_endgame(uv_loop_t *loop, uv_pipe_t *handle); /* * TTY */ void uv_console_init(void); -int uv_tty_read_start(uv_tty_t* handle, uv_alloc_cb alloc_cb, - uv_read_cb read_cb); -int uv_tty_read_stop(uv_tty_t* handle); -int uv_tty_write(uv_loop_t* loop, uv_write_t* req, uv_tty_t* handle, - const uv_buf_t bufs[], unsigned int nbufs, uv_write_cb cb); -int uv__tty_try_write(uv_tty_t* handle, const uv_buf_t bufs[], - unsigned int nbufs); -void uv_tty_close(uv_tty_t* handle); - -void uv_process_tty_read_req(uv_loop_t* loop, uv_tty_t* handle, - uv_req_t* req); -void uv_process_tty_write_req(uv_loop_t* loop, uv_tty_t* handle, - uv_write_t* req); +int uv_tty_read_start(uv_tty_t *handle, uv_alloc_cb alloc_cb, + uv_read_cb read_cb); +int uv_tty_read_stop(uv_tty_t *handle); +int uv_tty_write(uv_loop_t *loop, uv_write_t *req, uv_tty_t *handle, + const uv_buf_t bufs[], unsigned int nbufs, uv_write_cb cb); +int uv__tty_try_write(uv_tty_t *handle, const uv_buf_t bufs[], + unsigned int nbufs); +void uv_tty_close(uv_tty_t *handle); + +void uv_process_tty_read_req(uv_loop_t *loop, uv_tty_t *handle, uv_req_t *req); +void uv_process_tty_write_req(uv_loop_t *loop, uv_tty_t *handle, + uv_write_t *req); /* * uv_process_tty_accept_req() is a stub to keep DELEGATE_STREAM_REQ working * TODO: find a way to remove it */ -void uv_process_tty_accept_req(uv_loop_t* loop, uv_tty_t* handle, - uv_req_t* raw_req); +void uv_process_tty_accept_req(uv_loop_t *loop, uv_tty_t *handle, + uv_req_t *raw_req); /* * uv_process_tty_connect_req() is a stub to keep DELEGATE_STREAM_REQ working * TODO: find a way to remove it */ -void uv_process_tty_connect_req(uv_loop_t* loop, uv_tty_t* handle, - uv_connect_t* req); - -void uv_tty_endgame(uv_loop_t* loop, uv_tty_t* handle); +void uv_process_tty_connect_req(uv_loop_t *loop, uv_tty_t *handle, + uv_connect_t *req); +void uv_tty_endgame(uv_loop_t *loop, uv_tty_t *handle); /* * Poll watchers */ -void uv_process_poll_req(uv_loop_t* loop, uv_poll_t* handle, - uv_req_t* req); - -int uv_poll_close(uv_loop_t* loop, uv_poll_t* handle); -void uv_poll_endgame(uv_loop_t* loop, uv_poll_t* handle); +void uv_process_poll_req(uv_loop_t *loop, uv_poll_t *handle, uv_req_t *req); +int uv_poll_close(uv_loop_t *loop, uv_poll_t *handle); +void uv_poll_endgame(uv_loop_t *loop, uv_poll_t *handle); /* * Loop watchers */ -void uv_loop_watcher_endgame(uv_loop_t* loop, uv_handle_t* handle); +void uv_loop_watcher_endgame(uv_loop_t *loop, uv_handle_t *handle); -void uv_prepare_invoke(uv_loop_t* loop); -void uv_check_invoke(uv_loop_t* loop); -void uv_idle_invoke(uv_loop_t* loop); +void uv_prepare_invoke(uv_loop_t *loop); +void uv_check_invoke(uv_loop_t *loop); +void uv_idle_invoke(uv_loop_t *loop); void uv__once_init(void); - /* * Async watcher */ -void uv_async_close(uv_loop_t* loop, uv_async_t* handle); -void uv_async_endgame(uv_loop_t* loop, uv_async_t* handle); - -void uv_process_async_wakeup_req(uv_loop_t* loop, uv_async_t* handle, - uv_req_t* req); +void uv_async_close(uv_loop_t *loop, uv_async_t *handle); +void uv_async_endgame(uv_loop_t *loop, uv_async_t *handle); +void uv_process_async_wakeup_req(uv_loop_t *loop, uv_async_t *handle, + uv_req_t *req); /* * Signal watcher @@ -219,47 +202,40 @@ void uv_process_async_wakeup_req(uv_loop_t* loop, uv_async_t* handle, void uv_signals_init(void); int uv__signal_dispatch(int signum); -void uv_signal_close(uv_loop_t* loop, uv_signal_t* handle); -void uv_signal_endgame(uv_loop_t* loop, uv_signal_t* handle); - -void uv_process_signal_req(uv_loop_t* loop, uv_signal_t* handle, - uv_req_t* req); +void uv_signal_close(uv_loop_t *loop, uv_signal_t *handle); +void uv_signal_endgame(uv_loop_t *loop, uv_signal_t *handle); +void uv_process_signal_req(uv_loop_t *loop, uv_signal_t *handle, uv_req_t *req); /* * Spawn */ -void uv_process_proc_exit(uv_loop_t* loop, uv_process_t* handle); -void uv_process_close(uv_loop_t* loop, uv_process_t* handle); -void uv_process_endgame(uv_loop_t* loop, uv_process_t* handle); - +void uv_process_proc_exit(uv_loop_t *loop, uv_process_t *handle); +void uv_process_close(uv_loop_t *loop, uv_process_t *handle); +void uv_process_endgame(uv_loop_t *loop, uv_process_t *handle); /* * Error */ int uv_translate_sys_error(int sys_errno); - /* * FS */ void uv_fs_init(void); - /* * FS Event */ -void uv_process_fs_event_req(uv_loop_t* loop, uv_req_t* req, - uv_fs_event_t* handle); -void uv_fs_event_close(uv_loop_t* loop, uv_fs_event_t* handle); -void uv_fs_event_endgame(uv_loop_t* loop, uv_fs_event_t* handle); - +void uv_process_fs_event_req(uv_loop_t *loop, uv_req_t *req, + uv_fs_event_t *handle); +void uv_fs_event_close(uv_loop_t *loop, uv_fs_event_t *handle); +void uv_fs_event_endgame(uv_loop_t *loop, uv_fs_event_t *handle); /* * Stat poller. */ -void uv__fs_poll_endgame(uv_loop_t* loop, uv_fs_poll_t* handle); - +void uv__fs_poll_endgame(uv_loop_t *loop, uv_fs_poll_t *handle); /* * Utilities. @@ -267,41 +243,35 @@ void uv__fs_poll_endgame(uv_loop_t* loop, uv_fs_poll_t* handle); void uv__util_init(void); uint64_t uv__hrtime(unsigned int scale); -__declspec(noreturn) void uv_fatal_error(const int errorno, const char* syscall); -int uv__getpwuid_r(uv_passwd_t* pwd); -int uv__convert_utf16_to_utf8(const WCHAR* utf16, int utf16len, char** utf8); -int uv__convert_utf8_to_utf16(const char* utf8, int utf8len, WCHAR** utf16); +__declspec(noreturn) void uv_fatal_error(const int errorno, + const char *syscall); +int uv__getpwuid_r(uv_passwd_t *pwd); +int uv__convert_utf16_to_utf8(const WCHAR *utf16, int utf16len, char **utf8); +int uv__convert_utf8_to_utf16(const char *utf8, int utf8len, WCHAR **utf16); -typedef int (WINAPI *uv__peersockfunc)(SOCKET, struct sockaddr*, int*); +typedef int(WINAPI *uv__peersockfunc)(SOCKET, struct sockaddr *, int *); -int uv__getsockpeername(const uv_handle_t* handle, - uv__peersockfunc func, - struct sockaddr* name, - int* namelen, - int delayed_error); - -int uv__random_rtlgenrandom(void* buf, size_t buflen); +int uv__getsockpeername(const uv_handle_t *handle, uv__peersockfunc func, + struct sockaddr *name, int *namelen, int delayed_error); +int uv__random_rtlgenrandom(void *buf, size_t buflen); /* * Process stdio handles. */ -int uv__stdio_create(uv_loop_t* loop, - const uv_process_options_t* options, - BYTE** buffer_ptr); -void uv__stdio_destroy(BYTE* buffer); -void uv__stdio_noinherit(BYTE* buffer); -int uv__stdio_verify(BYTE* buffer, WORD size); -WORD uv__stdio_size(BYTE* buffer); -HANDLE uv__stdio_handle(BYTE* buffer, int fd); - +int uv__stdio_create(uv_loop_t *loop, const uv_process_options_t *options, + BYTE **buffer_ptr); +void uv__stdio_destroy(BYTE *buffer); +void uv__stdio_noinherit(BYTE *buffer); +int uv__stdio_verify(BYTE *buffer, WORD size); +WORD uv__stdio_size(BYTE *buffer); +HANDLE uv__stdio_handle(BYTE *buffer, int fd); /* * Winapi and ntapi utility functions */ void uv_winapi_init(void); - /* * Winsock utility functions */ @@ -309,19 +279,21 @@ void uv_winsock_init(void); int uv_ntstatus_to_winsock_error(NTSTATUS status); -BOOL uv_get_acceptex_function(SOCKET socket, LPFN_ACCEPTEX* target); -BOOL uv_get_connectex_function(SOCKET socket, LPFN_CONNECTEX* target); - -int WSAAPI uv_wsarecv_workaround(SOCKET socket, WSABUF* buffers, - DWORD buffer_count, DWORD* bytes, DWORD* flags, WSAOVERLAPPED *overlapped, - LPWSAOVERLAPPED_COMPLETION_ROUTINE completion_routine); -int WSAAPI uv_wsarecvfrom_workaround(SOCKET socket, WSABUF* buffers, - DWORD buffer_count, DWORD* bytes, DWORD* flags, struct sockaddr* addr, - int* addr_len, WSAOVERLAPPED *overlapped, +BOOL uv_get_acceptex_function(SOCKET socket, LPFN_ACCEPTEX *target); +BOOL uv_get_connectex_function(SOCKET socket, LPFN_CONNECTEX *target); + +int WSAAPI +uv_wsarecv_workaround(SOCKET socket, WSABUF *buffers, DWORD buffer_count, + DWORD *bytes, DWORD *flags, WSAOVERLAPPED *overlapped, + LPWSAOVERLAPPED_COMPLETION_ROUTINE completion_routine); +int WSAAPI uv_wsarecvfrom_workaround( + SOCKET socket, WSABUF *buffers, DWORD buffer_count, DWORD *bytes, + DWORD *flags, struct sockaddr *addr, int *addr_len, + WSAOVERLAPPED *overlapped, LPWSAOVERLAPPED_COMPLETION_ROUTINE completion_routine); -int WSAAPI uv_msafd_poll(SOCKET socket, AFD_POLL_INFO* info_in, - AFD_POLL_INFO* info_out, OVERLAPPED* overlapped); +int WSAAPI uv_msafd_poll(SOCKET socket, AFD_POLL_INFO *info_in, + AFD_POLL_INFO *info_out, OVERLAPPED *overlapped); /* Whether there are any non-IFS LSPs stacked on TCP */ extern int uv_tcp_non_ifs_lsp_ipv4; diff --git a/src/libuv/src/win/req-inl.h b/src/libuv/src/win/req-inl.h index f2513b7d..75ca2e09 100644 --- a/src/libuv/src/win/req-inl.h +++ b/src/libuv/src/win/req-inl.h @@ -24,81 +24,69 @@ #include -#include "uv.h" #include "internal.h" +#include "uv.h" +#define SET_REQ_STATUS(req, status) \ + (req)->u.io.overlapped.Internal = (ULONG_PTR)(status) -#define SET_REQ_STATUS(req, status) \ - (req)->u.io.overlapped.Internal = (ULONG_PTR) (status) - -#define SET_REQ_ERROR(req, error) \ +#define SET_REQ_ERROR(req, error) \ SET_REQ_STATUS((req), NTSTATUS_FROM_WIN32((error))) /* Note: used open-coded in UV_REQ_INIT() because of a circular dependency * between src/uv-common.h and src/win/internal.h. */ -#define SET_REQ_SUCCESS(req) \ - SET_REQ_STATUS((req), STATUS_SUCCESS) +#define SET_REQ_SUCCESS(req) SET_REQ_STATUS((req), STATUS_SUCCESS) -#define GET_REQ_STATUS(req) \ - ((NTSTATUS) (req)->u.io.overlapped.Internal) +#define GET_REQ_STATUS(req) ((NTSTATUS)(req)->u.io.overlapped.Internal) -#define REQ_SUCCESS(req) \ - (NT_SUCCESS(GET_REQ_STATUS((req)))) +#define REQ_SUCCESS(req) (NT_SUCCESS(GET_REQ_STATUS((req)))) -#define GET_REQ_ERROR(req) \ - (pRtlNtStatusToDosError(GET_REQ_STATUS((req)))) +#define GET_REQ_ERROR(req) (pRtlNtStatusToDosError(GET_REQ_STATUS((req)))) -#define GET_REQ_SOCK_ERROR(req) \ +#define GET_REQ_SOCK_ERROR(req) \ (uv_ntstatus_to_winsock_error(GET_REQ_STATUS((req)))) - -#define REGISTER_HANDLE_REQ(loop, handle, req) \ - do { \ - INCREASE_ACTIVE_COUNT((loop), (handle)); \ - uv__req_register((loop), (req)); \ +#define REGISTER_HANDLE_REQ(loop, handle, req) \ + do { \ + INCREASE_ACTIVE_COUNT((loop), (handle)); \ + uv__req_register((loop), (req)); \ } while (0) -#define UNREGISTER_HANDLE_REQ(loop, handle, req) \ - do { \ - DECREASE_ACTIVE_COUNT((loop), (handle)); \ - uv__req_unregister((loop), (req)); \ +#define UNREGISTER_HANDLE_REQ(loop, handle, req) \ + do { \ + DECREASE_ACTIVE_COUNT((loop), (handle)); \ + uv__req_unregister((loop), (req)); \ } while (0) - -#define UV_SUCCEEDED_WITHOUT_IOCP(result) \ +#define UV_SUCCEEDED_WITHOUT_IOCP(result) \ ((result) && (handle->flags & UV_HANDLE_SYNC_BYPASS_IOCP)) -#define UV_SUCCEEDED_WITH_IOCP(result) \ +#define UV_SUCCEEDED_WITH_IOCP(result) \ ((result) || (GetLastError() == ERROR_IO_PENDING)) - -#define POST_COMPLETION_FOR_REQ(loop, req) \ - if (!PostQueuedCompletionStatus((loop)->iocp, \ - 0, \ - 0, \ - &((req)->u.io.overlapped))) { \ - uv_fatal_error(GetLastError(), "PostQueuedCompletionStatus"); \ +#define POST_COMPLETION_FOR_REQ(loop, req) \ + if (!PostQueuedCompletionStatus((loop)->iocp, 0, 0, \ + &((req)->u.io.overlapped))) { \ + uv_fatal_error(GetLastError(), "PostQueuedCompletionStatus"); \ } - -INLINE static uv_req_t* uv_overlapped_to_req(OVERLAPPED* overlapped) { +INLINE static uv_req_t *uv_overlapped_to_req(OVERLAPPED *overlapped) { return CONTAINING_RECORD(overlapped, uv_req_t, u.io.overlapped); } - -INLINE static void uv_insert_pending_req(uv_loop_t* loop, uv_req_t* req) { +INLINE static void uv_insert_pending_req(uv_loop_t *loop, uv_req_t *req) { req->next_req = NULL; if (loop->pending_reqs_tail) { #ifdef _DEBUG /* Ensure the request is not already in the queue, or the queue * will get corrupted. */ - uv_req_t* current = loop->pending_reqs_tail; + uv_req_t *current = loop->pending_reqs_tail; do { assert(req != current); current = current->next_req; - } while(current != loop->pending_reqs_tail); + } while (current != loop->pending_reqs_tail); #endif req->next_req = loop->pending_reqs_tail->next_req; @@ -110,38 +98,33 @@ INLINE static void uv_insert_pending_req(uv_loop_t* loop, uv_req_t* req) { } } - -#define DELEGATE_STREAM_REQ(loop, req, method, handle_at) \ - do { \ - switch (((uv_handle_t*) (req)->handle_at)->type) { \ - case UV_TCP: \ - uv_process_tcp_##method##_req(loop, \ - (uv_tcp_t*) ((req)->handle_at), \ - req); \ - break; \ - \ - case UV_NAMED_PIPE: \ - uv_process_pipe_##method##_req(loop, \ - (uv_pipe_t*) ((req)->handle_at), \ - req); \ - break; \ - \ - case UV_TTY: \ - uv_process_tty_##method##_req(loop, \ - (uv_tty_t*) ((req)->handle_at), \ - req); \ - break; \ - \ - default: \ - assert(0); \ - } \ +#define DELEGATE_STREAM_REQ(loop, req, method, handle_at) \ + do { \ + switch (((uv_handle_t *)(req)->handle_at)->type) { \ + case UV_TCP: \ + uv_process_tcp_##method##_req(loop, (uv_tcp_t *)((req)->handle_at), \ + req); \ + break; \ + \ + case UV_NAMED_PIPE: \ + uv_process_pipe_##method##_req(loop, (uv_pipe_t *)((req)->handle_at), \ + req); \ + break; \ + \ + case UV_TTY: \ + uv_process_tty_##method##_req(loop, (uv_tty_t *)((req)->handle_at), \ + req); \ + break; \ + \ + default: \ + assert(0); \ + } \ } while (0) - -INLINE static int uv_process_reqs(uv_loop_t* loop) { - uv_req_t* req; - uv_req_t* first; - uv_req_t* next; +INLINE static int uv_process_reqs(uv_loop_t *loop) { + uv_req_t *req; + uv_req_t *first; + uv_req_t *next; if (loop->pending_reqs_tail == NULL) return 0; @@ -155,63 +138,61 @@ INLINE static int uv_process_reqs(uv_loop_t* loop) { next = req->next_req != first ? req->next_req : NULL; switch (req->type) { - case UV_READ: - DELEGATE_STREAM_REQ(loop, req, read, data); - break; - - case UV_WRITE: - DELEGATE_STREAM_REQ(loop, (uv_write_t*) req, write, handle); - break; - - case UV_ACCEPT: - DELEGATE_STREAM_REQ(loop, req, accept, data); - break; - - case UV_CONNECT: - DELEGATE_STREAM_REQ(loop, (uv_connect_t*) req, connect, handle); - break; - - case UV_SHUTDOWN: - /* Tcp shutdown requests don't come here. */ - assert(((uv_shutdown_t*) req)->handle->type == UV_NAMED_PIPE); - uv_process_pipe_shutdown_req( - loop, - (uv_pipe_t*) ((uv_shutdown_t*) req)->handle, - (uv_shutdown_t*) req); - break; - - case UV_UDP_RECV: - uv_process_udp_recv_req(loop, (uv_udp_t*) req->data, req); - break; - - case UV_UDP_SEND: - uv_process_udp_send_req(loop, - ((uv_udp_send_t*) req)->handle, - (uv_udp_send_t*) req); - break; - - case UV_WAKEUP: - uv_process_async_wakeup_req(loop, (uv_async_t*) req->data, req); - break; - - case UV_SIGNAL_REQ: - uv_process_signal_req(loop, (uv_signal_t*) req->data, req); - break; - - case UV_POLL_REQ: - uv_process_poll_req(loop, (uv_poll_t*) req->data, req); - break; - - case UV_PROCESS_EXIT: - uv_process_proc_exit(loop, (uv_process_t*) req->data); - break; - - case UV_FS_EVENT_REQ: - uv_process_fs_event_req(loop, req, (uv_fs_event_t*) req->data); - break; - - default: - assert(0); + case UV_READ: + DELEGATE_STREAM_REQ(loop, req, read, data); + break; + + case UV_WRITE: + DELEGATE_STREAM_REQ(loop, (uv_write_t *)req, write, handle); + break; + + case UV_ACCEPT: + DELEGATE_STREAM_REQ(loop, req, accept, data); + break; + + case UV_CONNECT: + DELEGATE_STREAM_REQ(loop, (uv_connect_t *)req, connect, handle); + break; + + case UV_SHUTDOWN: + /* Tcp shutdown requests don't come here. */ + assert(((uv_shutdown_t *)req)->handle->type == UV_NAMED_PIPE); + uv_process_pipe_shutdown_req(loop, + (uv_pipe_t *)((uv_shutdown_t *)req)->handle, + (uv_shutdown_t *)req); + break; + + case UV_UDP_RECV: + uv_process_udp_recv_req(loop, (uv_udp_t *)req->data, req); + break; + + case UV_UDP_SEND: + uv_process_udp_send_req(loop, ((uv_udp_send_t *)req)->handle, + (uv_udp_send_t *)req); + break; + + case UV_WAKEUP: + uv_process_async_wakeup_req(loop, (uv_async_t *)req->data, req); + break; + + case UV_SIGNAL_REQ: + uv_process_signal_req(loop, (uv_signal_t *)req->data, req); + break; + + case UV_POLL_REQ: + uv_process_poll_req(loop, (uv_poll_t *)req->data, req); + break; + + case UV_PROCESS_EXIT: + uv_process_proc_exit(loop, (uv_process_t *)req->data); + break; + + case UV_FS_EVENT_REQ: + uv_process_fs_event_req(loop, req, (uv_fs_event_t *)req->data); + break; + + default: + assert(0); } } diff --git a/src/libuv/src/win/stream-inl.h b/src/libuv/src/win/stream-inl.h index 40f5ddd5..d47f3337 100644 --- a/src/libuv/src/win/stream-inl.h +++ b/src/libuv/src/win/stream-inl.h @@ -24,16 +24,14 @@ #include -#include "uv.h" -#include "internal.h" #include "handle-inl.h" +#include "internal.h" #include "req-inl.h" +#include "uv.h" - -INLINE static void uv_stream_init(uv_loop_t* loop, - uv_stream_t* handle, +INLINE static void uv_stream_init(uv_loop_t *loop, uv_stream_t *handle, uv_handle_type type) { - uv__handle_init(loop, (uv_handle_t*) handle, type); + uv__handle_init(loop, (uv_handle_t *)handle, type); handle->write_queue_size = 0; handle->activecnt = 0; handle->stream.conn.shutdown_req = NULL; @@ -45,10 +43,8 @@ INLINE static void uv_stream_init(uv_loop_t* loop, handle->read_req.data = handle; } - -INLINE static void uv_connection_init(uv_stream_t* handle) { +INLINE static void uv_connection_init(uv_stream_t *handle) { handle->flags |= UV_HANDLE_CONNECTION; } - #endif /* UV_WIN_STREAM_INL_H_ */ diff --git a/src/libuv/src/win/winapi.h b/src/libuv/src/win/winapi.h index 3e075f09..948010db 100644 --- a/src/libuv/src/win/winapi.h +++ b/src/libuv/src/win/winapi.h @@ -24,4088 +24,4097 @@ #include - /* * Ntdll headers */ #ifndef STATUS_SEVERITY_SUCCESS -# define STATUS_SEVERITY_SUCCESS 0x0 +#define STATUS_SEVERITY_SUCCESS 0x0 #endif #ifndef STATUS_SEVERITY_INFORMATIONAL -# define STATUS_SEVERITY_INFORMATIONAL 0x1 +#define STATUS_SEVERITY_INFORMATIONAL 0x1 #endif #ifndef STATUS_SEVERITY_WARNING -# define STATUS_SEVERITY_WARNING 0x2 +#define STATUS_SEVERITY_WARNING 0x2 #endif #ifndef STATUS_SEVERITY_ERROR -# define STATUS_SEVERITY_ERROR 0x3 +#define STATUS_SEVERITY_ERROR 0x3 #endif #ifndef FACILITY_NTWIN32 -# define FACILITY_NTWIN32 0x7 +#define FACILITY_NTWIN32 0x7 #endif #ifndef NT_SUCCESS -# define NT_SUCCESS(status) (((NTSTATUS) (status)) >= 0) +#define NT_SUCCESS(status) (((NTSTATUS)(status)) >= 0) #endif #ifndef NT_INFORMATION -# define NT_INFORMATION(status) ((((ULONG) (status)) >> 30) == 1) +#define NT_INFORMATION(status) ((((ULONG)(status)) >> 30) == 1) #endif #ifndef NT_WARNING -# define NT_WARNING(status) ((((ULONG) (status)) >> 30) == 2) +#define NT_WARNING(status) ((((ULONG)(status)) >> 30) == 2) #endif #ifndef NT_ERROR -# define NT_ERROR(status) ((((ULONG) (status)) >> 30) == 3) +#define NT_ERROR(status) ((((ULONG)(status)) >> 30) == 3) #endif #ifndef STATUS_SUCCESS -# define STATUS_SUCCESS ((NTSTATUS) 0x00000000L) +#define STATUS_SUCCESS ((NTSTATUS)0x00000000L) #endif #ifndef STATUS_WAIT_0 -# define STATUS_WAIT_0 ((NTSTATUS) 0x00000000L) +#define STATUS_WAIT_0 ((NTSTATUS)0x00000000L) #endif #ifndef STATUS_WAIT_1 -# define STATUS_WAIT_1 ((NTSTATUS) 0x00000001L) +#define STATUS_WAIT_1 ((NTSTATUS)0x00000001L) #endif #ifndef STATUS_WAIT_2 -# define STATUS_WAIT_2 ((NTSTATUS) 0x00000002L) +#define STATUS_WAIT_2 ((NTSTATUS)0x00000002L) #endif #ifndef STATUS_WAIT_3 -# define STATUS_WAIT_3 ((NTSTATUS) 0x00000003L) +#define STATUS_WAIT_3 ((NTSTATUS)0x00000003L) #endif #ifndef STATUS_WAIT_63 -# define STATUS_WAIT_63 ((NTSTATUS) 0x0000003FL) +#define STATUS_WAIT_63 ((NTSTATUS)0x0000003FL) #endif #ifndef STATUS_ABANDONED -# define STATUS_ABANDONED ((NTSTATUS) 0x00000080L) +#define STATUS_ABANDONED ((NTSTATUS)0x00000080L) #endif #ifndef STATUS_ABANDONED_WAIT_0 -# define STATUS_ABANDONED_WAIT_0 ((NTSTATUS) 0x00000080L) +#define STATUS_ABANDONED_WAIT_0 ((NTSTATUS)0x00000080L) #endif #ifndef STATUS_ABANDONED_WAIT_63 -# define STATUS_ABANDONED_WAIT_63 ((NTSTATUS) 0x000000BFL) +#define STATUS_ABANDONED_WAIT_63 ((NTSTATUS)0x000000BFL) #endif #ifndef STATUS_USER_APC -# define STATUS_USER_APC ((NTSTATUS) 0x000000C0L) +#define STATUS_USER_APC ((NTSTATUS)0x000000C0L) #endif #ifndef STATUS_KERNEL_APC -# define STATUS_KERNEL_APC ((NTSTATUS) 0x00000100L) +#define STATUS_KERNEL_APC ((NTSTATUS)0x00000100L) #endif #ifndef STATUS_ALERTED -# define STATUS_ALERTED ((NTSTATUS) 0x00000101L) +#define STATUS_ALERTED ((NTSTATUS)0x00000101L) #endif #ifndef STATUS_TIMEOUT -# define STATUS_TIMEOUT ((NTSTATUS) 0x00000102L) +#define STATUS_TIMEOUT ((NTSTATUS)0x00000102L) #endif #ifndef STATUS_PENDING -# define STATUS_PENDING ((NTSTATUS) 0x00000103L) +#define STATUS_PENDING ((NTSTATUS)0x00000103L) #endif #ifndef STATUS_REPARSE -# define STATUS_REPARSE ((NTSTATUS) 0x00000104L) +#define STATUS_REPARSE ((NTSTATUS)0x00000104L) #endif #ifndef STATUS_MORE_ENTRIES -# define STATUS_MORE_ENTRIES ((NTSTATUS) 0x00000105L) +#define STATUS_MORE_ENTRIES ((NTSTATUS)0x00000105L) #endif #ifndef STATUS_NOT_ALL_ASSIGNED -# define STATUS_NOT_ALL_ASSIGNED ((NTSTATUS) 0x00000106L) +#define STATUS_NOT_ALL_ASSIGNED ((NTSTATUS)0x00000106L) #endif #ifndef STATUS_SOME_NOT_MAPPED -# define STATUS_SOME_NOT_MAPPED ((NTSTATUS) 0x00000107L) +#define STATUS_SOME_NOT_MAPPED ((NTSTATUS)0x00000107L) #endif #ifndef STATUS_OPLOCK_BREAK_IN_PROGRESS -# define STATUS_OPLOCK_BREAK_IN_PROGRESS ((NTSTATUS) 0x00000108L) +#define STATUS_OPLOCK_BREAK_IN_PROGRESS ((NTSTATUS)0x00000108L) #endif #ifndef STATUS_VOLUME_MOUNTED -# define STATUS_VOLUME_MOUNTED ((NTSTATUS) 0x00000109L) +#define STATUS_VOLUME_MOUNTED ((NTSTATUS)0x00000109L) #endif #ifndef STATUS_RXACT_COMMITTED -# define STATUS_RXACT_COMMITTED ((NTSTATUS) 0x0000010AL) +#define STATUS_RXACT_COMMITTED ((NTSTATUS)0x0000010AL) #endif #ifndef STATUS_NOTIFY_CLEANUP -# define STATUS_NOTIFY_CLEANUP ((NTSTATUS) 0x0000010BL) +#define STATUS_NOTIFY_CLEANUP ((NTSTATUS)0x0000010BL) #endif #ifndef STATUS_NOTIFY_ENUM_DIR -# define STATUS_NOTIFY_ENUM_DIR ((NTSTATUS) 0x0000010CL) +#define STATUS_NOTIFY_ENUM_DIR ((NTSTATUS)0x0000010CL) #endif #ifndef STATUS_NO_QUOTAS_FOR_ACCOUNT -# define STATUS_NO_QUOTAS_FOR_ACCOUNT ((NTSTATUS) 0x0000010DL) +#define STATUS_NO_QUOTAS_FOR_ACCOUNT ((NTSTATUS)0x0000010DL) #endif #ifndef STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED -# define STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED ((NTSTATUS) 0x0000010EL) +#define STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED ((NTSTATUS)0x0000010EL) #endif #ifndef STATUS_PAGE_FAULT_TRANSITION -# define STATUS_PAGE_FAULT_TRANSITION ((NTSTATUS) 0x00000110L) +#define STATUS_PAGE_FAULT_TRANSITION ((NTSTATUS)0x00000110L) #endif #ifndef STATUS_PAGE_FAULT_DEMAND_ZERO -# define STATUS_PAGE_FAULT_DEMAND_ZERO ((NTSTATUS) 0x00000111L) +#define STATUS_PAGE_FAULT_DEMAND_ZERO ((NTSTATUS)0x00000111L) #endif #ifndef STATUS_PAGE_FAULT_COPY_ON_WRITE -# define STATUS_PAGE_FAULT_COPY_ON_WRITE ((NTSTATUS) 0x00000112L) +#define STATUS_PAGE_FAULT_COPY_ON_WRITE ((NTSTATUS)0x00000112L) #endif #ifndef STATUS_PAGE_FAULT_GUARD_PAGE -# define STATUS_PAGE_FAULT_GUARD_PAGE ((NTSTATUS) 0x00000113L) +#define STATUS_PAGE_FAULT_GUARD_PAGE ((NTSTATUS)0x00000113L) #endif #ifndef STATUS_PAGE_FAULT_PAGING_FILE -# define STATUS_PAGE_FAULT_PAGING_FILE ((NTSTATUS) 0x00000114L) +#define STATUS_PAGE_FAULT_PAGING_FILE ((NTSTATUS)0x00000114L) #endif #ifndef STATUS_CACHE_PAGE_LOCKED -# define STATUS_CACHE_PAGE_LOCKED ((NTSTATUS) 0x00000115L) +#define STATUS_CACHE_PAGE_LOCKED ((NTSTATUS)0x00000115L) #endif #ifndef STATUS_CRASH_DUMP -# define STATUS_CRASH_DUMP ((NTSTATUS) 0x00000116L) +#define STATUS_CRASH_DUMP ((NTSTATUS)0x00000116L) #endif #ifndef STATUS_BUFFER_ALL_ZEROS -# define STATUS_BUFFER_ALL_ZEROS ((NTSTATUS) 0x00000117L) +#define STATUS_BUFFER_ALL_ZEROS ((NTSTATUS)0x00000117L) #endif #ifndef STATUS_REPARSE_OBJECT -# define STATUS_REPARSE_OBJECT ((NTSTATUS) 0x00000118L) +#define STATUS_REPARSE_OBJECT ((NTSTATUS)0x00000118L) #endif #ifndef STATUS_RESOURCE_REQUIREMENTS_CHANGED -# define STATUS_RESOURCE_REQUIREMENTS_CHANGED ((NTSTATUS) 0x00000119L) +#define STATUS_RESOURCE_REQUIREMENTS_CHANGED ((NTSTATUS)0x00000119L) #endif #ifndef STATUS_TRANSLATION_COMPLETE -# define STATUS_TRANSLATION_COMPLETE ((NTSTATUS) 0x00000120L) +#define STATUS_TRANSLATION_COMPLETE ((NTSTATUS)0x00000120L) #endif #ifndef STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY -# define STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY ((NTSTATUS) 0x00000121L) +#define STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY ((NTSTATUS)0x00000121L) #endif #ifndef STATUS_NOTHING_TO_TERMINATE -# define STATUS_NOTHING_TO_TERMINATE ((NTSTATUS) 0x00000122L) +#define STATUS_NOTHING_TO_TERMINATE ((NTSTATUS)0x00000122L) #endif #ifndef STATUS_PROCESS_NOT_IN_JOB -# define STATUS_PROCESS_NOT_IN_JOB ((NTSTATUS) 0x00000123L) +#define STATUS_PROCESS_NOT_IN_JOB ((NTSTATUS)0x00000123L) #endif #ifndef STATUS_PROCESS_IN_JOB -# define STATUS_PROCESS_IN_JOB ((NTSTATUS) 0x00000124L) +#define STATUS_PROCESS_IN_JOB ((NTSTATUS)0x00000124L) #endif #ifndef STATUS_VOLSNAP_HIBERNATE_READY -# define STATUS_VOLSNAP_HIBERNATE_READY ((NTSTATUS) 0x00000125L) +#define STATUS_VOLSNAP_HIBERNATE_READY ((NTSTATUS)0x00000125L) #endif #ifndef STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY -# define STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY ((NTSTATUS) 0x00000126L) +#define STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY ((NTSTATUS)0x00000126L) #endif #ifndef STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED -# define STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED ((NTSTATUS) 0x00000127L) +#define STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED ((NTSTATUS)0x00000127L) #endif #ifndef STATUS_INTERRUPT_STILL_CONNECTED -# define STATUS_INTERRUPT_STILL_CONNECTED ((NTSTATUS) 0x00000128L) +#define STATUS_INTERRUPT_STILL_CONNECTED ((NTSTATUS)0x00000128L) #endif #ifndef STATUS_PROCESS_CLONED -# define STATUS_PROCESS_CLONED ((NTSTATUS) 0x00000129L) +#define STATUS_PROCESS_CLONED ((NTSTATUS)0x00000129L) #endif #ifndef STATUS_FILE_LOCKED_WITH_ONLY_READERS -# define STATUS_FILE_LOCKED_WITH_ONLY_READERS ((NTSTATUS) 0x0000012AL) +#define STATUS_FILE_LOCKED_WITH_ONLY_READERS ((NTSTATUS)0x0000012AL) #endif #ifndef STATUS_FILE_LOCKED_WITH_WRITERS -# define STATUS_FILE_LOCKED_WITH_WRITERS ((NTSTATUS) 0x0000012BL) +#define STATUS_FILE_LOCKED_WITH_WRITERS ((NTSTATUS)0x0000012BL) #endif #ifndef STATUS_RESOURCEMANAGER_READ_ONLY -# define STATUS_RESOURCEMANAGER_READ_ONLY ((NTSTATUS) 0x00000202L) +#define STATUS_RESOURCEMANAGER_READ_ONLY ((NTSTATUS)0x00000202L) #endif #ifndef STATUS_RING_PREVIOUSLY_EMPTY -# define STATUS_RING_PREVIOUSLY_EMPTY ((NTSTATUS) 0x00000210L) +#define STATUS_RING_PREVIOUSLY_EMPTY ((NTSTATUS)0x00000210L) #endif #ifndef STATUS_RING_PREVIOUSLY_FULL -# define STATUS_RING_PREVIOUSLY_FULL ((NTSTATUS) 0x00000211L) +#define STATUS_RING_PREVIOUSLY_FULL ((NTSTATUS)0x00000211L) #endif #ifndef STATUS_RING_PREVIOUSLY_ABOVE_QUOTA -# define STATUS_RING_PREVIOUSLY_ABOVE_QUOTA ((NTSTATUS) 0x00000212L) +#define STATUS_RING_PREVIOUSLY_ABOVE_QUOTA ((NTSTATUS)0x00000212L) #endif #ifndef STATUS_RING_NEWLY_EMPTY -# define STATUS_RING_NEWLY_EMPTY ((NTSTATUS) 0x00000213L) +#define STATUS_RING_NEWLY_EMPTY ((NTSTATUS)0x00000213L) #endif #ifndef STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT -# define STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT ((NTSTATUS) 0x00000214L) +#define STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT ((NTSTATUS)0x00000214L) #endif #ifndef STATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE -# define STATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE ((NTSTATUS) 0x00000215L) +#define STATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE ((NTSTATUS)0x00000215L) #endif #ifndef STATUS_OPLOCK_HANDLE_CLOSED -# define STATUS_OPLOCK_HANDLE_CLOSED ((NTSTATUS) 0x00000216L) +#define STATUS_OPLOCK_HANDLE_CLOSED ((NTSTATUS)0x00000216L) #endif #ifndef STATUS_WAIT_FOR_OPLOCK -# define STATUS_WAIT_FOR_OPLOCK ((NTSTATUS) 0x00000367L) +#define STATUS_WAIT_FOR_OPLOCK ((NTSTATUS)0x00000367L) #endif #ifndef STATUS_OBJECT_NAME_EXISTS -# define STATUS_OBJECT_NAME_EXISTS ((NTSTATUS) 0x40000000L) +#define STATUS_OBJECT_NAME_EXISTS ((NTSTATUS)0x40000000L) #endif #ifndef STATUS_THREAD_WAS_SUSPENDED -# define STATUS_THREAD_WAS_SUSPENDED ((NTSTATUS) 0x40000001L) +#define STATUS_THREAD_WAS_SUSPENDED ((NTSTATUS)0x40000001L) #endif #ifndef STATUS_WORKING_SET_LIMIT_RANGE -# define STATUS_WORKING_SET_LIMIT_RANGE ((NTSTATUS) 0x40000002L) +#define STATUS_WORKING_SET_LIMIT_RANGE ((NTSTATUS)0x40000002L) #endif #ifndef STATUS_IMAGE_NOT_AT_BASE -# define STATUS_IMAGE_NOT_AT_BASE ((NTSTATUS) 0x40000003L) +#define STATUS_IMAGE_NOT_AT_BASE ((NTSTATUS)0x40000003L) #endif #ifndef STATUS_RXACT_STATE_CREATED -# define STATUS_RXACT_STATE_CREATED ((NTSTATUS) 0x40000004L) +#define STATUS_RXACT_STATE_CREATED ((NTSTATUS)0x40000004L) #endif #ifndef STATUS_SEGMENT_NOTIFICATION -# define STATUS_SEGMENT_NOTIFICATION ((NTSTATUS) 0x40000005L) +#define STATUS_SEGMENT_NOTIFICATION ((NTSTATUS)0x40000005L) #endif #ifndef STATUS_LOCAL_USER_SESSION_KEY -# define STATUS_LOCAL_USER_SESSION_KEY ((NTSTATUS) 0x40000006L) +#define STATUS_LOCAL_USER_SESSION_KEY ((NTSTATUS)0x40000006L) #endif #ifndef STATUS_BAD_CURRENT_DIRECTORY -# define STATUS_BAD_CURRENT_DIRECTORY ((NTSTATUS) 0x40000007L) +#define STATUS_BAD_CURRENT_DIRECTORY ((NTSTATUS)0x40000007L) #endif #ifndef STATUS_SERIAL_MORE_WRITES -# define STATUS_SERIAL_MORE_WRITES ((NTSTATUS) 0x40000008L) +#define STATUS_SERIAL_MORE_WRITES ((NTSTATUS)0x40000008L) #endif #ifndef STATUS_REGISTRY_RECOVERED -# define STATUS_REGISTRY_RECOVERED ((NTSTATUS) 0x40000009L) +#define STATUS_REGISTRY_RECOVERED ((NTSTATUS)0x40000009L) #endif #ifndef STATUS_FT_READ_RECOVERY_FROM_BACKUP -# define STATUS_FT_READ_RECOVERY_FROM_BACKUP ((NTSTATUS) 0x4000000AL) +#define STATUS_FT_READ_RECOVERY_FROM_BACKUP ((NTSTATUS)0x4000000AL) #endif #ifndef STATUS_FT_WRITE_RECOVERY -# define STATUS_FT_WRITE_RECOVERY ((NTSTATUS) 0x4000000BL) +#define STATUS_FT_WRITE_RECOVERY ((NTSTATUS)0x4000000BL) #endif #ifndef STATUS_SERIAL_COUNTER_TIMEOUT -# define STATUS_SERIAL_COUNTER_TIMEOUT ((NTSTATUS) 0x4000000CL) +#define STATUS_SERIAL_COUNTER_TIMEOUT ((NTSTATUS)0x4000000CL) #endif #ifndef STATUS_NULL_LM_PASSWORD -# define STATUS_NULL_LM_PASSWORD ((NTSTATUS) 0x4000000DL) +#define STATUS_NULL_LM_PASSWORD ((NTSTATUS)0x4000000DL) #endif #ifndef STATUS_IMAGE_MACHINE_TYPE_MISMATCH -# define STATUS_IMAGE_MACHINE_TYPE_MISMATCH ((NTSTATUS) 0x4000000EL) +#define STATUS_IMAGE_MACHINE_TYPE_MISMATCH ((NTSTATUS)0x4000000EL) #endif #ifndef STATUS_RECEIVE_PARTIAL -# define STATUS_RECEIVE_PARTIAL ((NTSTATUS) 0x4000000FL) +#define STATUS_RECEIVE_PARTIAL ((NTSTATUS)0x4000000FL) #endif #ifndef STATUS_RECEIVE_EXPEDITED -# define STATUS_RECEIVE_EXPEDITED ((NTSTATUS) 0x40000010L) +#define STATUS_RECEIVE_EXPEDITED ((NTSTATUS)0x40000010L) #endif #ifndef STATUS_RECEIVE_PARTIAL_EXPEDITED -# define STATUS_RECEIVE_PARTIAL_EXPEDITED ((NTSTATUS) 0x40000011L) +#define STATUS_RECEIVE_PARTIAL_EXPEDITED ((NTSTATUS)0x40000011L) #endif #ifndef STATUS_EVENT_DONE -# define STATUS_EVENT_DONE ((NTSTATUS) 0x40000012L) +#define STATUS_EVENT_DONE ((NTSTATUS)0x40000012L) #endif #ifndef STATUS_EVENT_PENDING -# define STATUS_EVENT_PENDING ((NTSTATUS) 0x40000013L) +#define STATUS_EVENT_PENDING ((NTSTATUS)0x40000013L) #endif #ifndef STATUS_CHECKING_FILE_SYSTEM -# define STATUS_CHECKING_FILE_SYSTEM ((NTSTATUS) 0x40000014L) +#define STATUS_CHECKING_FILE_SYSTEM ((NTSTATUS)0x40000014L) #endif #ifndef STATUS_FATAL_APP_EXIT -# define STATUS_FATAL_APP_EXIT ((NTSTATUS) 0x40000015L) +#define STATUS_FATAL_APP_EXIT ((NTSTATUS)0x40000015L) #endif #ifndef STATUS_PREDEFINED_HANDLE -# define STATUS_PREDEFINED_HANDLE ((NTSTATUS) 0x40000016L) +#define STATUS_PREDEFINED_HANDLE ((NTSTATUS)0x40000016L) #endif #ifndef STATUS_WAS_UNLOCKED -# define STATUS_WAS_UNLOCKED ((NTSTATUS) 0x40000017L) +#define STATUS_WAS_UNLOCKED ((NTSTATUS)0x40000017L) #endif #ifndef STATUS_SERVICE_NOTIFICATION -# define STATUS_SERVICE_NOTIFICATION ((NTSTATUS) 0x40000018L) +#define STATUS_SERVICE_NOTIFICATION ((NTSTATUS)0x40000018L) #endif #ifndef STATUS_WAS_LOCKED -# define STATUS_WAS_LOCKED ((NTSTATUS) 0x40000019L) +#define STATUS_WAS_LOCKED ((NTSTATUS)0x40000019L) #endif #ifndef STATUS_LOG_HARD_ERROR -# define STATUS_LOG_HARD_ERROR ((NTSTATUS) 0x4000001AL) +#define STATUS_LOG_HARD_ERROR ((NTSTATUS)0x4000001AL) #endif #ifndef STATUS_ALREADY_WIN32 -# define STATUS_ALREADY_WIN32 ((NTSTATUS) 0x4000001BL) +#define STATUS_ALREADY_WIN32 ((NTSTATUS)0x4000001BL) #endif #ifndef STATUS_WX86_UNSIMULATE -# define STATUS_WX86_UNSIMULATE ((NTSTATUS) 0x4000001CL) +#define STATUS_WX86_UNSIMULATE ((NTSTATUS)0x4000001CL) #endif #ifndef STATUS_WX86_CONTINUE -# define STATUS_WX86_CONTINUE ((NTSTATUS) 0x4000001DL) +#define STATUS_WX86_CONTINUE ((NTSTATUS)0x4000001DL) #endif #ifndef STATUS_WX86_SINGLE_STEP -# define STATUS_WX86_SINGLE_STEP ((NTSTATUS) 0x4000001EL) +#define STATUS_WX86_SINGLE_STEP ((NTSTATUS)0x4000001EL) #endif #ifndef STATUS_WX86_BREAKPOINT -# define STATUS_WX86_BREAKPOINT ((NTSTATUS) 0x4000001FL) +#define STATUS_WX86_BREAKPOINT ((NTSTATUS)0x4000001FL) #endif #ifndef STATUS_WX86_EXCEPTION_CONTINUE -# define STATUS_WX86_EXCEPTION_CONTINUE ((NTSTATUS) 0x40000020L) +#define STATUS_WX86_EXCEPTION_CONTINUE ((NTSTATUS)0x40000020L) #endif #ifndef STATUS_WX86_EXCEPTION_LASTCHANCE -# define STATUS_WX86_EXCEPTION_LASTCHANCE ((NTSTATUS) 0x40000021L) +#define STATUS_WX86_EXCEPTION_LASTCHANCE ((NTSTATUS)0x40000021L) #endif #ifndef STATUS_WX86_EXCEPTION_CHAIN -# define STATUS_WX86_EXCEPTION_CHAIN ((NTSTATUS) 0x40000022L) +#define STATUS_WX86_EXCEPTION_CHAIN ((NTSTATUS)0x40000022L) #endif #ifndef STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE -# define STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE ((NTSTATUS) 0x40000023L) +#define STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE ((NTSTATUS)0x40000023L) #endif #ifndef STATUS_NO_YIELD_PERFORMED -# define STATUS_NO_YIELD_PERFORMED ((NTSTATUS) 0x40000024L) +#define STATUS_NO_YIELD_PERFORMED ((NTSTATUS)0x40000024L) #endif #ifndef STATUS_TIMER_RESUME_IGNORED -# define STATUS_TIMER_RESUME_IGNORED ((NTSTATUS) 0x40000025L) +#define STATUS_TIMER_RESUME_IGNORED ((NTSTATUS)0x40000025L) #endif #ifndef STATUS_ARBITRATION_UNHANDLED -# define STATUS_ARBITRATION_UNHANDLED ((NTSTATUS) 0x40000026L) +#define STATUS_ARBITRATION_UNHANDLED ((NTSTATUS)0x40000026L) #endif #ifndef STATUS_CARDBUS_NOT_SUPPORTED -# define STATUS_CARDBUS_NOT_SUPPORTED ((NTSTATUS) 0x40000027L) +#define STATUS_CARDBUS_NOT_SUPPORTED ((NTSTATUS)0x40000027L) #endif #ifndef STATUS_WX86_CREATEWX86TIB -# define STATUS_WX86_CREATEWX86TIB ((NTSTATUS) 0x40000028L) +#define STATUS_WX86_CREATEWX86TIB ((NTSTATUS)0x40000028L) #endif #ifndef STATUS_MP_PROCESSOR_MISMATCH -# define STATUS_MP_PROCESSOR_MISMATCH ((NTSTATUS) 0x40000029L) +#define STATUS_MP_PROCESSOR_MISMATCH ((NTSTATUS)0x40000029L) #endif #ifndef STATUS_HIBERNATED -# define STATUS_HIBERNATED ((NTSTATUS) 0x4000002AL) +#define STATUS_HIBERNATED ((NTSTATUS)0x4000002AL) #endif #ifndef STATUS_RESUME_HIBERNATION -# define STATUS_RESUME_HIBERNATION ((NTSTATUS) 0x4000002BL) +#define STATUS_RESUME_HIBERNATION ((NTSTATUS)0x4000002BL) #endif #ifndef STATUS_FIRMWARE_UPDATED -# define STATUS_FIRMWARE_UPDATED ((NTSTATUS) 0x4000002CL) +#define STATUS_FIRMWARE_UPDATED ((NTSTATUS)0x4000002CL) #endif #ifndef STATUS_DRIVERS_LEAKING_LOCKED_PAGES -# define STATUS_DRIVERS_LEAKING_LOCKED_PAGES ((NTSTATUS) 0x4000002DL) +#define STATUS_DRIVERS_LEAKING_LOCKED_PAGES ((NTSTATUS)0x4000002DL) #endif #ifndef STATUS_MESSAGE_RETRIEVED -# define STATUS_MESSAGE_RETRIEVED ((NTSTATUS) 0x4000002EL) +#define STATUS_MESSAGE_RETRIEVED ((NTSTATUS)0x4000002EL) #endif #ifndef STATUS_SYSTEM_POWERSTATE_TRANSITION -# define STATUS_SYSTEM_POWERSTATE_TRANSITION ((NTSTATUS) 0x4000002FL) +#define STATUS_SYSTEM_POWERSTATE_TRANSITION ((NTSTATUS)0x4000002FL) #endif #ifndef STATUS_ALPC_CHECK_COMPLETION_LIST -# define STATUS_ALPC_CHECK_COMPLETION_LIST ((NTSTATUS) 0x40000030L) +#define STATUS_ALPC_CHECK_COMPLETION_LIST ((NTSTATUS)0x40000030L) #endif #ifndef STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION -# define STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION ((NTSTATUS) 0x40000031L) +#define STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION ((NTSTATUS)0x40000031L) #endif #ifndef STATUS_ACCESS_AUDIT_BY_POLICY -# define STATUS_ACCESS_AUDIT_BY_POLICY ((NTSTATUS) 0x40000032L) +#define STATUS_ACCESS_AUDIT_BY_POLICY ((NTSTATUS)0x40000032L) #endif #ifndef STATUS_ABANDON_HIBERFILE -# define STATUS_ABANDON_HIBERFILE ((NTSTATUS) 0x40000033L) +#define STATUS_ABANDON_HIBERFILE ((NTSTATUS)0x40000033L) #endif #ifndef STATUS_BIZRULES_NOT_ENABLED -# define STATUS_BIZRULES_NOT_ENABLED ((NTSTATUS) 0x40000034L) +#define STATUS_BIZRULES_NOT_ENABLED ((NTSTATUS)0x40000034L) #endif #ifndef STATUS_GUARD_PAGE_VIOLATION -# define STATUS_GUARD_PAGE_VIOLATION ((NTSTATUS) 0x80000001L) +#define STATUS_GUARD_PAGE_VIOLATION ((NTSTATUS)0x80000001L) #endif #ifndef STATUS_DATATYPE_MISALIGNMENT -# define STATUS_DATATYPE_MISALIGNMENT ((NTSTATUS) 0x80000002L) +#define STATUS_DATATYPE_MISALIGNMENT ((NTSTATUS)0x80000002L) #endif #ifndef STATUS_BREAKPOINT -# define STATUS_BREAKPOINT ((NTSTATUS) 0x80000003L) +#define STATUS_BREAKPOINT ((NTSTATUS)0x80000003L) #endif #ifndef STATUS_SINGLE_STEP -# define STATUS_SINGLE_STEP ((NTSTATUS) 0x80000004L) +#define STATUS_SINGLE_STEP ((NTSTATUS)0x80000004L) #endif #ifndef STATUS_BUFFER_OVERFLOW -# define STATUS_BUFFER_OVERFLOW ((NTSTATUS) 0x80000005L) +#define STATUS_BUFFER_OVERFLOW ((NTSTATUS)0x80000005L) #endif #ifndef STATUS_NO_MORE_FILES -# define STATUS_NO_MORE_FILES ((NTSTATUS) 0x80000006L) +#define STATUS_NO_MORE_FILES ((NTSTATUS)0x80000006L) #endif #ifndef STATUS_WAKE_SYSTEM_DEBUGGER -# define STATUS_WAKE_SYSTEM_DEBUGGER ((NTSTATUS) 0x80000007L) +#define STATUS_WAKE_SYSTEM_DEBUGGER ((NTSTATUS)0x80000007L) #endif #ifndef STATUS_HANDLES_CLOSED -# define STATUS_HANDLES_CLOSED ((NTSTATUS) 0x8000000AL) +#define STATUS_HANDLES_CLOSED ((NTSTATUS)0x8000000AL) #endif #ifndef STATUS_NO_INHERITANCE -# define STATUS_NO_INHERITANCE ((NTSTATUS) 0x8000000BL) +#define STATUS_NO_INHERITANCE ((NTSTATUS)0x8000000BL) #endif #ifndef STATUS_GUID_SUBSTITUTION_MADE -# define STATUS_GUID_SUBSTITUTION_MADE ((NTSTATUS) 0x8000000CL) +#define STATUS_GUID_SUBSTITUTION_MADE ((NTSTATUS)0x8000000CL) #endif #ifndef STATUS_PARTIAL_COPY -# define STATUS_PARTIAL_COPY ((NTSTATUS) 0x8000000DL) +#define STATUS_PARTIAL_COPY ((NTSTATUS)0x8000000DL) #endif #ifndef STATUS_DEVICE_PAPER_EMPTY -# define STATUS_DEVICE_PAPER_EMPTY ((NTSTATUS) 0x8000000EL) +#define STATUS_DEVICE_PAPER_EMPTY ((NTSTATUS)0x8000000EL) #endif #ifndef STATUS_DEVICE_POWERED_OFF -# define STATUS_DEVICE_POWERED_OFF ((NTSTATUS) 0x8000000FL) +#define STATUS_DEVICE_POWERED_OFF ((NTSTATUS)0x8000000FL) #endif #ifndef STATUS_DEVICE_OFF_LINE -# define STATUS_DEVICE_OFF_LINE ((NTSTATUS) 0x80000010L) +#define STATUS_DEVICE_OFF_LINE ((NTSTATUS)0x80000010L) #endif #ifndef STATUS_DEVICE_BUSY -# define STATUS_DEVICE_BUSY ((NTSTATUS) 0x80000011L) +#define STATUS_DEVICE_BUSY ((NTSTATUS)0x80000011L) #endif #ifndef STATUS_NO_MORE_EAS -# define STATUS_NO_MORE_EAS ((NTSTATUS) 0x80000012L) +#define STATUS_NO_MORE_EAS ((NTSTATUS)0x80000012L) #endif #ifndef STATUS_INVALID_EA_NAME -# define STATUS_INVALID_EA_NAME ((NTSTATUS) 0x80000013L) +#define STATUS_INVALID_EA_NAME ((NTSTATUS)0x80000013L) #endif #ifndef STATUS_EA_LIST_INCONSISTENT -# define STATUS_EA_LIST_INCONSISTENT ((NTSTATUS) 0x80000014L) +#define STATUS_EA_LIST_INCONSISTENT ((NTSTATUS)0x80000014L) #endif #ifndef STATUS_INVALID_EA_FLAG -# define STATUS_INVALID_EA_FLAG ((NTSTATUS) 0x80000015L) +#define STATUS_INVALID_EA_FLAG ((NTSTATUS)0x80000015L) #endif #ifndef STATUS_VERIFY_REQUIRED -# define STATUS_VERIFY_REQUIRED ((NTSTATUS) 0x80000016L) +#define STATUS_VERIFY_REQUIRED ((NTSTATUS)0x80000016L) #endif #ifndef STATUS_EXTRANEOUS_INFORMATION -# define STATUS_EXTRANEOUS_INFORMATION ((NTSTATUS) 0x80000017L) +#define STATUS_EXTRANEOUS_INFORMATION ((NTSTATUS)0x80000017L) #endif #ifndef STATUS_RXACT_COMMIT_NECESSARY -# define STATUS_RXACT_COMMIT_NECESSARY ((NTSTATUS) 0x80000018L) +#define STATUS_RXACT_COMMIT_NECESSARY ((NTSTATUS)0x80000018L) #endif #ifndef STATUS_NO_MORE_ENTRIES -# define STATUS_NO_MORE_ENTRIES ((NTSTATUS) 0x8000001AL) +#define STATUS_NO_MORE_ENTRIES ((NTSTATUS)0x8000001AL) #endif #ifndef STATUS_FILEMARK_DETECTED -# define STATUS_FILEMARK_DETECTED ((NTSTATUS) 0x8000001BL) +#define STATUS_FILEMARK_DETECTED ((NTSTATUS)0x8000001BL) #endif #ifndef STATUS_MEDIA_CHANGED -# define STATUS_MEDIA_CHANGED ((NTSTATUS) 0x8000001CL) +#define STATUS_MEDIA_CHANGED ((NTSTATUS)0x8000001CL) #endif #ifndef STATUS_BUS_RESET -# define STATUS_BUS_RESET ((NTSTATUS) 0x8000001DL) +#define STATUS_BUS_RESET ((NTSTATUS)0x8000001DL) #endif #ifndef STATUS_END_OF_MEDIA -# define STATUS_END_OF_MEDIA ((NTSTATUS) 0x8000001EL) +#define STATUS_END_OF_MEDIA ((NTSTATUS)0x8000001EL) #endif #ifndef STATUS_BEGINNING_OF_MEDIA -# define STATUS_BEGINNING_OF_MEDIA ((NTSTATUS) 0x8000001FL) +#define STATUS_BEGINNING_OF_MEDIA ((NTSTATUS)0x8000001FL) #endif #ifndef STATUS_MEDIA_CHECK -# define STATUS_MEDIA_CHECK ((NTSTATUS) 0x80000020L) +#define STATUS_MEDIA_CHECK ((NTSTATUS)0x80000020L) #endif #ifndef STATUS_SETMARK_DETECTED -# define STATUS_SETMARK_DETECTED ((NTSTATUS) 0x80000021L) +#define STATUS_SETMARK_DETECTED ((NTSTATUS)0x80000021L) #endif #ifndef STATUS_NO_DATA_DETECTED -# define STATUS_NO_DATA_DETECTED ((NTSTATUS) 0x80000022L) +#define STATUS_NO_DATA_DETECTED ((NTSTATUS)0x80000022L) #endif #ifndef STATUS_REDIRECTOR_HAS_OPEN_HANDLES -# define STATUS_REDIRECTOR_HAS_OPEN_HANDLES ((NTSTATUS) 0x80000023L) +#define STATUS_REDIRECTOR_HAS_OPEN_HANDLES ((NTSTATUS)0x80000023L) #endif #ifndef STATUS_SERVER_HAS_OPEN_HANDLES -# define STATUS_SERVER_HAS_OPEN_HANDLES ((NTSTATUS) 0x80000024L) +#define STATUS_SERVER_HAS_OPEN_HANDLES ((NTSTATUS)0x80000024L) #endif #ifndef STATUS_ALREADY_DISCONNECTED -# define STATUS_ALREADY_DISCONNECTED ((NTSTATUS) 0x80000025L) +#define STATUS_ALREADY_DISCONNECTED ((NTSTATUS)0x80000025L) #endif #ifndef STATUS_LONGJUMP -# define STATUS_LONGJUMP ((NTSTATUS) 0x80000026L) +#define STATUS_LONGJUMP ((NTSTATUS)0x80000026L) #endif #ifndef STATUS_CLEANER_CARTRIDGE_INSTALLED -# define STATUS_CLEANER_CARTRIDGE_INSTALLED ((NTSTATUS) 0x80000027L) +#define STATUS_CLEANER_CARTRIDGE_INSTALLED ((NTSTATUS)0x80000027L) #endif #ifndef STATUS_PLUGPLAY_QUERY_VETOED -# define STATUS_PLUGPLAY_QUERY_VETOED ((NTSTATUS) 0x80000028L) +#define STATUS_PLUGPLAY_QUERY_VETOED ((NTSTATUS)0x80000028L) #endif #ifndef STATUS_UNWIND_CONSOLIDATE -# define STATUS_UNWIND_CONSOLIDATE ((NTSTATUS) 0x80000029L) +#define STATUS_UNWIND_CONSOLIDATE ((NTSTATUS)0x80000029L) #endif #ifndef STATUS_REGISTRY_HIVE_RECOVERED -# define STATUS_REGISTRY_HIVE_RECOVERED ((NTSTATUS) 0x8000002AL) +#define STATUS_REGISTRY_HIVE_RECOVERED ((NTSTATUS)0x8000002AL) #endif #ifndef STATUS_DLL_MIGHT_BE_INSECURE -# define STATUS_DLL_MIGHT_BE_INSECURE ((NTSTATUS) 0x8000002BL) +#define STATUS_DLL_MIGHT_BE_INSECURE ((NTSTATUS)0x8000002BL) #endif #ifndef STATUS_DLL_MIGHT_BE_INCOMPATIBLE -# define STATUS_DLL_MIGHT_BE_INCOMPATIBLE ((NTSTATUS) 0x8000002CL) +#define STATUS_DLL_MIGHT_BE_INCOMPATIBLE ((NTSTATUS)0x8000002CL) #endif #ifndef STATUS_STOPPED_ON_SYMLINK -# define STATUS_STOPPED_ON_SYMLINK ((NTSTATUS) 0x8000002DL) +#define STATUS_STOPPED_ON_SYMLINK ((NTSTATUS)0x8000002DL) #endif #ifndef STATUS_CANNOT_GRANT_REQUESTED_OPLOCK -# define STATUS_CANNOT_GRANT_REQUESTED_OPLOCK ((NTSTATUS) 0x8000002EL) +#define STATUS_CANNOT_GRANT_REQUESTED_OPLOCK ((NTSTATUS)0x8000002EL) #endif #ifndef STATUS_NO_ACE_CONDITION -# define STATUS_NO_ACE_CONDITION ((NTSTATUS) 0x8000002FL) +#define STATUS_NO_ACE_CONDITION ((NTSTATUS)0x8000002FL) #endif #ifndef STATUS_UNSUCCESSFUL -# define STATUS_UNSUCCESSFUL ((NTSTATUS) 0xC0000001L) +#define STATUS_UNSUCCESSFUL ((NTSTATUS)0xC0000001L) #endif #ifndef STATUS_NOT_IMPLEMENTED -# define STATUS_NOT_IMPLEMENTED ((NTSTATUS) 0xC0000002L) +#define STATUS_NOT_IMPLEMENTED ((NTSTATUS)0xC0000002L) #endif #ifndef STATUS_INVALID_INFO_CLASS -# define STATUS_INVALID_INFO_CLASS ((NTSTATUS) 0xC0000003L) +#define STATUS_INVALID_INFO_CLASS ((NTSTATUS)0xC0000003L) #endif #ifndef STATUS_INFO_LENGTH_MISMATCH -# define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS) 0xC0000004L) +#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L) #endif #ifndef STATUS_ACCESS_VIOLATION -# define STATUS_ACCESS_VIOLATION ((NTSTATUS) 0xC0000005L) +#define STATUS_ACCESS_VIOLATION ((NTSTATUS)0xC0000005L) #endif #ifndef STATUS_IN_PAGE_ERROR -# define STATUS_IN_PAGE_ERROR ((NTSTATUS) 0xC0000006L) +#define STATUS_IN_PAGE_ERROR ((NTSTATUS)0xC0000006L) #endif #ifndef STATUS_PAGEFILE_QUOTA -# define STATUS_PAGEFILE_QUOTA ((NTSTATUS) 0xC0000007L) +#define STATUS_PAGEFILE_QUOTA ((NTSTATUS)0xC0000007L) #endif #ifndef STATUS_INVALID_HANDLE -# define STATUS_INVALID_HANDLE ((NTSTATUS) 0xC0000008L) +#define STATUS_INVALID_HANDLE ((NTSTATUS)0xC0000008L) #endif #ifndef STATUS_BAD_INITIAL_STACK -# define STATUS_BAD_INITIAL_STACK ((NTSTATUS) 0xC0000009L) +#define STATUS_BAD_INITIAL_STACK ((NTSTATUS)0xC0000009L) #endif #ifndef STATUS_BAD_INITIAL_PC -# define STATUS_BAD_INITIAL_PC ((NTSTATUS) 0xC000000AL) +#define STATUS_BAD_INITIAL_PC ((NTSTATUS)0xC000000AL) #endif #ifndef STATUS_INVALID_CID -# define STATUS_INVALID_CID ((NTSTATUS) 0xC000000BL) +#define STATUS_INVALID_CID ((NTSTATUS)0xC000000BL) #endif #ifndef STATUS_TIMER_NOT_CANCELED -# define STATUS_TIMER_NOT_CANCELED ((NTSTATUS) 0xC000000CL) +#define STATUS_TIMER_NOT_CANCELED ((NTSTATUS)0xC000000CL) #endif #ifndef STATUS_INVALID_PARAMETER -# define STATUS_INVALID_PARAMETER ((NTSTATUS) 0xC000000DL) +#define STATUS_INVALID_PARAMETER ((NTSTATUS)0xC000000DL) #endif #ifndef STATUS_NO_SUCH_DEVICE -# define STATUS_NO_SUCH_DEVICE ((NTSTATUS) 0xC000000EL) +#define STATUS_NO_SUCH_DEVICE ((NTSTATUS)0xC000000EL) #endif #ifndef STATUS_NO_SUCH_FILE -# define STATUS_NO_SUCH_FILE ((NTSTATUS) 0xC000000FL) +#define STATUS_NO_SUCH_FILE ((NTSTATUS)0xC000000FL) #endif #ifndef STATUS_INVALID_DEVICE_REQUEST -# define STATUS_INVALID_DEVICE_REQUEST ((NTSTATUS) 0xC0000010L) +#define STATUS_INVALID_DEVICE_REQUEST ((NTSTATUS)0xC0000010L) #endif #ifndef STATUS_END_OF_FILE -# define STATUS_END_OF_FILE ((NTSTATUS) 0xC0000011L) +#define STATUS_END_OF_FILE ((NTSTATUS)0xC0000011L) #endif #ifndef STATUS_WRONG_VOLUME -# define STATUS_WRONG_VOLUME ((NTSTATUS) 0xC0000012L) +#define STATUS_WRONG_VOLUME ((NTSTATUS)0xC0000012L) #endif #ifndef STATUS_NO_MEDIA_IN_DEVICE -# define STATUS_NO_MEDIA_IN_DEVICE ((NTSTATUS) 0xC0000013L) +#define STATUS_NO_MEDIA_IN_DEVICE ((NTSTATUS)0xC0000013L) #endif #ifndef STATUS_UNRECOGNIZED_MEDIA -# define STATUS_UNRECOGNIZED_MEDIA ((NTSTATUS) 0xC0000014L) +#define STATUS_UNRECOGNIZED_MEDIA ((NTSTATUS)0xC0000014L) #endif #ifndef STATUS_NONEXISTENT_SECTOR -# define STATUS_NONEXISTENT_SECTOR ((NTSTATUS) 0xC0000015L) +#define STATUS_NONEXISTENT_SECTOR ((NTSTATUS)0xC0000015L) #endif #ifndef STATUS_MORE_PROCESSING_REQUIRED -# define STATUS_MORE_PROCESSING_REQUIRED ((NTSTATUS) 0xC0000016L) +#define STATUS_MORE_PROCESSING_REQUIRED ((NTSTATUS)0xC0000016L) #endif #ifndef STATUS_NO_MEMORY -# define STATUS_NO_MEMORY ((NTSTATUS) 0xC0000017L) +#define STATUS_NO_MEMORY ((NTSTATUS)0xC0000017L) #endif #ifndef STATUS_CONFLICTING_ADDRESSES -# define STATUS_CONFLICTING_ADDRESSES ((NTSTATUS) 0xC0000018L) +#define STATUS_CONFLICTING_ADDRESSES ((NTSTATUS)0xC0000018L) #endif #ifndef STATUS_NOT_MAPPED_VIEW -# define STATUS_NOT_MAPPED_VIEW ((NTSTATUS) 0xC0000019L) +#define STATUS_NOT_MAPPED_VIEW ((NTSTATUS)0xC0000019L) #endif #ifndef STATUS_UNABLE_TO_FREE_VM -# define STATUS_UNABLE_TO_FREE_VM ((NTSTATUS) 0xC000001AL) +#define STATUS_UNABLE_TO_FREE_VM ((NTSTATUS)0xC000001AL) #endif #ifndef STATUS_UNABLE_TO_DELETE_SECTION -# define STATUS_UNABLE_TO_DELETE_SECTION ((NTSTATUS) 0xC000001BL) +#define STATUS_UNABLE_TO_DELETE_SECTION ((NTSTATUS)0xC000001BL) #endif #ifndef STATUS_INVALID_SYSTEM_SERVICE -# define STATUS_INVALID_SYSTEM_SERVICE ((NTSTATUS) 0xC000001CL) +#define STATUS_INVALID_SYSTEM_SERVICE ((NTSTATUS)0xC000001CL) #endif #ifndef STATUS_ILLEGAL_INSTRUCTION -# define STATUS_ILLEGAL_INSTRUCTION ((NTSTATUS) 0xC000001DL) +#define STATUS_ILLEGAL_INSTRUCTION ((NTSTATUS)0xC000001DL) #endif #ifndef STATUS_INVALID_LOCK_SEQUENCE -# define STATUS_INVALID_LOCK_SEQUENCE ((NTSTATUS) 0xC000001EL) +#define STATUS_INVALID_LOCK_SEQUENCE ((NTSTATUS)0xC000001EL) #endif #ifndef STATUS_INVALID_VIEW_SIZE -# define STATUS_INVALID_VIEW_SIZE ((NTSTATUS) 0xC000001FL) +#define STATUS_INVALID_VIEW_SIZE ((NTSTATUS)0xC000001FL) #endif #ifndef STATUS_INVALID_FILE_FOR_SECTION -# define STATUS_INVALID_FILE_FOR_SECTION ((NTSTATUS) 0xC0000020L) +#define STATUS_INVALID_FILE_FOR_SECTION ((NTSTATUS)0xC0000020L) #endif #ifndef STATUS_ALREADY_COMMITTED -# define STATUS_ALREADY_COMMITTED ((NTSTATUS) 0xC0000021L) +#define STATUS_ALREADY_COMMITTED ((NTSTATUS)0xC0000021L) #endif #ifndef STATUS_ACCESS_DENIED -# define STATUS_ACCESS_DENIED ((NTSTATUS) 0xC0000022L) +#define STATUS_ACCESS_DENIED ((NTSTATUS)0xC0000022L) #endif #ifndef STATUS_BUFFER_TOO_SMALL -# define STATUS_BUFFER_TOO_SMALL ((NTSTATUS) 0xC0000023L) +#define STATUS_BUFFER_TOO_SMALL ((NTSTATUS)0xC0000023L) #endif #ifndef STATUS_OBJECT_TYPE_MISMATCH -# define STATUS_OBJECT_TYPE_MISMATCH ((NTSTATUS) 0xC0000024L) +#define STATUS_OBJECT_TYPE_MISMATCH ((NTSTATUS)0xC0000024L) #endif #ifndef STATUS_NONCONTINUABLE_EXCEPTION -# define STATUS_NONCONTINUABLE_EXCEPTION ((NTSTATUS) 0xC0000025L) +#define STATUS_NONCONTINUABLE_EXCEPTION ((NTSTATUS)0xC0000025L) #endif #ifndef STATUS_INVALID_DISPOSITION -# define STATUS_INVALID_DISPOSITION ((NTSTATUS) 0xC0000026L) +#define STATUS_INVALID_DISPOSITION ((NTSTATUS)0xC0000026L) #endif #ifndef STATUS_UNWIND -# define STATUS_UNWIND ((NTSTATUS) 0xC0000027L) +#define STATUS_UNWIND ((NTSTATUS)0xC0000027L) #endif #ifndef STATUS_BAD_STACK -# define STATUS_BAD_STACK ((NTSTATUS) 0xC0000028L) +#define STATUS_BAD_STACK ((NTSTATUS)0xC0000028L) #endif #ifndef STATUS_INVALID_UNWIND_TARGET -# define STATUS_INVALID_UNWIND_TARGET ((NTSTATUS) 0xC0000029L) +#define STATUS_INVALID_UNWIND_TARGET ((NTSTATUS)0xC0000029L) #endif #ifndef STATUS_NOT_LOCKED -# define STATUS_NOT_LOCKED ((NTSTATUS) 0xC000002AL) +#define STATUS_NOT_LOCKED ((NTSTATUS)0xC000002AL) #endif #ifndef STATUS_PARITY_ERROR -# define STATUS_PARITY_ERROR ((NTSTATUS) 0xC000002BL) +#define STATUS_PARITY_ERROR ((NTSTATUS)0xC000002BL) #endif #ifndef STATUS_UNABLE_TO_DECOMMIT_VM -# define STATUS_UNABLE_TO_DECOMMIT_VM ((NTSTATUS) 0xC000002CL) +#define STATUS_UNABLE_TO_DECOMMIT_VM ((NTSTATUS)0xC000002CL) #endif #ifndef STATUS_NOT_COMMITTED -# define STATUS_NOT_COMMITTED ((NTSTATUS) 0xC000002DL) +#define STATUS_NOT_COMMITTED ((NTSTATUS)0xC000002DL) #endif #ifndef STATUS_INVALID_PORT_ATTRIBUTES -# define STATUS_INVALID_PORT_ATTRIBUTES ((NTSTATUS) 0xC000002EL) +#define STATUS_INVALID_PORT_ATTRIBUTES ((NTSTATUS)0xC000002EL) #endif #ifndef STATUS_PORT_MESSAGE_TOO_LONG -# define STATUS_PORT_MESSAGE_TOO_LONG ((NTSTATUS) 0xC000002FL) +#define STATUS_PORT_MESSAGE_TOO_LONG ((NTSTATUS)0xC000002FL) #endif #ifndef STATUS_INVALID_PARAMETER_MIX -# define STATUS_INVALID_PARAMETER_MIX ((NTSTATUS) 0xC0000030L) +#define STATUS_INVALID_PARAMETER_MIX ((NTSTATUS)0xC0000030L) #endif #ifndef STATUS_INVALID_QUOTA_LOWER -# define STATUS_INVALID_QUOTA_LOWER ((NTSTATUS) 0xC0000031L) +#define STATUS_INVALID_QUOTA_LOWER ((NTSTATUS)0xC0000031L) #endif #ifndef STATUS_DISK_CORRUPT_ERROR -# define STATUS_DISK_CORRUPT_ERROR ((NTSTATUS) 0xC0000032L) +#define STATUS_DISK_CORRUPT_ERROR ((NTSTATUS)0xC0000032L) #endif #ifndef STATUS_OBJECT_NAME_INVALID -# define STATUS_OBJECT_NAME_INVALID ((NTSTATUS) 0xC0000033L) +#define STATUS_OBJECT_NAME_INVALID ((NTSTATUS)0xC0000033L) #endif #ifndef STATUS_OBJECT_NAME_NOT_FOUND -# define STATUS_OBJECT_NAME_NOT_FOUND ((NTSTATUS) 0xC0000034L) +#define STATUS_OBJECT_NAME_NOT_FOUND ((NTSTATUS)0xC0000034L) #endif #ifndef STATUS_OBJECT_NAME_COLLISION -# define STATUS_OBJECT_NAME_COLLISION ((NTSTATUS) 0xC0000035L) +#define STATUS_OBJECT_NAME_COLLISION ((NTSTATUS)0xC0000035L) #endif #ifndef STATUS_PORT_DISCONNECTED -# define STATUS_PORT_DISCONNECTED ((NTSTATUS) 0xC0000037L) +#define STATUS_PORT_DISCONNECTED ((NTSTATUS)0xC0000037L) #endif #ifndef STATUS_DEVICE_ALREADY_ATTACHED -# define STATUS_DEVICE_ALREADY_ATTACHED ((NTSTATUS) 0xC0000038L) +#define STATUS_DEVICE_ALREADY_ATTACHED ((NTSTATUS)0xC0000038L) #endif #ifndef STATUS_OBJECT_PATH_INVALID -# define STATUS_OBJECT_PATH_INVALID ((NTSTATUS) 0xC0000039L) +#define STATUS_OBJECT_PATH_INVALID ((NTSTATUS)0xC0000039L) #endif #ifndef STATUS_OBJECT_PATH_NOT_FOUND -# define STATUS_OBJECT_PATH_NOT_FOUND ((NTSTATUS) 0xC000003AL) +#define STATUS_OBJECT_PATH_NOT_FOUND ((NTSTATUS)0xC000003AL) #endif #ifndef STATUS_OBJECT_PATH_SYNTAX_BAD -# define STATUS_OBJECT_PATH_SYNTAX_BAD ((NTSTATUS) 0xC000003BL) +#define STATUS_OBJECT_PATH_SYNTAX_BAD ((NTSTATUS)0xC000003BL) #endif #ifndef STATUS_DATA_OVERRUN -# define STATUS_DATA_OVERRUN ((NTSTATUS) 0xC000003CL) +#define STATUS_DATA_OVERRUN ((NTSTATUS)0xC000003CL) #endif #ifndef STATUS_DATA_LATE_ERROR -# define STATUS_DATA_LATE_ERROR ((NTSTATUS) 0xC000003DL) +#define STATUS_DATA_LATE_ERROR ((NTSTATUS)0xC000003DL) #endif #ifndef STATUS_DATA_ERROR -# define STATUS_DATA_ERROR ((NTSTATUS) 0xC000003EL) +#define STATUS_DATA_ERROR ((NTSTATUS)0xC000003EL) #endif #ifndef STATUS_CRC_ERROR -# define STATUS_CRC_ERROR ((NTSTATUS) 0xC000003FL) +#define STATUS_CRC_ERROR ((NTSTATUS)0xC000003FL) #endif #ifndef STATUS_SECTION_TOO_BIG -# define STATUS_SECTION_TOO_BIG ((NTSTATUS) 0xC0000040L) +#define STATUS_SECTION_TOO_BIG ((NTSTATUS)0xC0000040L) #endif #ifndef STATUS_PORT_CONNECTION_REFUSED -# define STATUS_PORT_CONNECTION_REFUSED ((NTSTATUS) 0xC0000041L) +#define STATUS_PORT_CONNECTION_REFUSED ((NTSTATUS)0xC0000041L) #endif #ifndef STATUS_INVALID_PORT_HANDLE -# define STATUS_INVALID_PORT_HANDLE ((NTSTATUS) 0xC0000042L) +#define STATUS_INVALID_PORT_HANDLE ((NTSTATUS)0xC0000042L) #endif #ifndef STATUS_SHARING_VIOLATION -# define STATUS_SHARING_VIOLATION ((NTSTATUS) 0xC0000043L) +#define STATUS_SHARING_VIOLATION ((NTSTATUS)0xC0000043L) #endif #ifndef STATUS_QUOTA_EXCEEDED -# define STATUS_QUOTA_EXCEEDED ((NTSTATUS) 0xC0000044L) +#define STATUS_QUOTA_EXCEEDED ((NTSTATUS)0xC0000044L) #endif #ifndef STATUS_INVALID_PAGE_PROTECTION -# define STATUS_INVALID_PAGE_PROTECTION ((NTSTATUS) 0xC0000045L) +#define STATUS_INVALID_PAGE_PROTECTION ((NTSTATUS)0xC0000045L) #endif #ifndef STATUS_MUTANT_NOT_OWNED -# define STATUS_MUTANT_NOT_OWNED ((NTSTATUS) 0xC0000046L) +#define STATUS_MUTANT_NOT_OWNED ((NTSTATUS)0xC0000046L) #endif #ifndef STATUS_SEMAPHORE_LIMIT_EXCEEDED -# define STATUS_SEMAPHORE_LIMIT_EXCEEDED ((NTSTATUS) 0xC0000047L) +#define STATUS_SEMAPHORE_LIMIT_EXCEEDED ((NTSTATUS)0xC0000047L) #endif #ifndef STATUS_PORT_ALREADY_SET -# define STATUS_PORT_ALREADY_SET ((NTSTATUS) 0xC0000048L) +#define STATUS_PORT_ALREADY_SET ((NTSTATUS)0xC0000048L) #endif #ifndef STATUS_SECTION_NOT_IMAGE -# define STATUS_SECTION_NOT_IMAGE ((NTSTATUS) 0xC0000049L) +#define STATUS_SECTION_NOT_IMAGE ((NTSTATUS)0xC0000049L) #endif #ifndef STATUS_SUSPEND_COUNT_EXCEEDED -# define STATUS_SUSPEND_COUNT_EXCEEDED ((NTSTATUS) 0xC000004AL) +#define STATUS_SUSPEND_COUNT_EXCEEDED ((NTSTATUS)0xC000004AL) #endif #ifndef STATUS_THREAD_IS_TERMINATING -# define STATUS_THREAD_IS_TERMINATING ((NTSTATUS) 0xC000004BL) +#define STATUS_THREAD_IS_TERMINATING ((NTSTATUS)0xC000004BL) #endif #ifndef STATUS_BAD_WORKING_SET_LIMIT -# define STATUS_BAD_WORKING_SET_LIMIT ((NTSTATUS) 0xC000004CL) +#define STATUS_BAD_WORKING_SET_LIMIT ((NTSTATUS)0xC000004CL) #endif #ifndef STATUS_INCOMPATIBLE_FILE_MAP -# define STATUS_INCOMPATIBLE_FILE_MAP ((NTSTATUS) 0xC000004DL) +#define STATUS_INCOMPATIBLE_FILE_MAP ((NTSTATUS)0xC000004DL) #endif #ifndef STATUS_SECTION_PROTECTION -# define STATUS_SECTION_PROTECTION ((NTSTATUS) 0xC000004EL) +#define STATUS_SECTION_PROTECTION ((NTSTATUS)0xC000004EL) #endif #ifndef STATUS_EAS_NOT_SUPPORTED -# define STATUS_EAS_NOT_SUPPORTED ((NTSTATUS) 0xC000004FL) +#define STATUS_EAS_NOT_SUPPORTED ((NTSTATUS)0xC000004FL) #endif #ifndef STATUS_EA_TOO_LARGE -# define STATUS_EA_TOO_LARGE ((NTSTATUS) 0xC0000050L) +#define STATUS_EA_TOO_LARGE ((NTSTATUS)0xC0000050L) #endif #ifndef STATUS_NONEXISTENT_EA_ENTRY -# define STATUS_NONEXISTENT_EA_ENTRY ((NTSTATUS) 0xC0000051L) +#define STATUS_NONEXISTENT_EA_ENTRY ((NTSTATUS)0xC0000051L) #endif #ifndef STATUS_NO_EAS_ON_FILE -# define STATUS_NO_EAS_ON_FILE ((NTSTATUS) 0xC0000052L) +#define STATUS_NO_EAS_ON_FILE ((NTSTATUS)0xC0000052L) #endif #ifndef STATUS_EA_CORRUPT_ERROR -# define STATUS_EA_CORRUPT_ERROR ((NTSTATUS) 0xC0000053L) +#define STATUS_EA_CORRUPT_ERROR ((NTSTATUS)0xC0000053L) #endif #ifndef STATUS_FILE_LOCK_CONFLICT -# define STATUS_FILE_LOCK_CONFLICT ((NTSTATUS) 0xC0000054L) +#define STATUS_FILE_LOCK_CONFLICT ((NTSTATUS)0xC0000054L) #endif #ifndef STATUS_LOCK_NOT_GRANTED -# define STATUS_LOCK_NOT_GRANTED ((NTSTATUS) 0xC0000055L) +#define STATUS_LOCK_NOT_GRANTED ((NTSTATUS)0xC0000055L) #endif #ifndef STATUS_DELETE_PENDING -# define STATUS_DELETE_PENDING ((NTSTATUS) 0xC0000056L) +#define STATUS_DELETE_PENDING ((NTSTATUS)0xC0000056L) #endif #ifndef STATUS_CTL_FILE_NOT_SUPPORTED -# define STATUS_CTL_FILE_NOT_SUPPORTED ((NTSTATUS) 0xC0000057L) +#define STATUS_CTL_FILE_NOT_SUPPORTED ((NTSTATUS)0xC0000057L) #endif #ifndef STATUS_UNKNOWN_REVISION -# define STATUS_UNKNOWN_REVISION ((NTSTATUS) 0xC0000058L) +#define STATUS_UNKNOWN_REVISION ((NTSTATUS)0xC0000058L) #endif #ifndef STATUS_REVISION_MISMATCH -# define STATUS_REVISION_MISMATCH ((NTSTATUS) 0xC0000059L) +#define STATUS_REVISION_MISMATCH ((NTSTATUS)0xC0000059L) #endif #ifndef STATUS_INVALID_OWNER -# define STATUS_INVALID_OWNER ((NTSTATUS) 0xC000005AL) +#define STATUS_INVALID_OWNER ((NTSTATUS)0xC000005AL) #endif #ifndef STATUS_INVALID_PRIMARY_GROUP -# define STATUS_INVALID_PRIMARY_GROUP ((NTSTATUS) 0xC000005BL) +#define STATUS_INVALID_PRIMARY_GROUP ((NTSTATUS)0xC000005BL) #endif #ifndef STATUS_NO_IMPERSONATION_TOKEN -# define STATUS_NO_IMPERSONATION_TOKEN ((NTSTATUS) 0xC000005CL) +#define STATUS_NO_IMPERSONATION_TOKEN ((NTSTATUS)0xC000005CL) #endif #ifndef STATUS_CANT_DISABLE_MANDATORY -# define STATUS_CANT_DISABLE_MANDATORY ((NTSTATUS) 0xC000005DL) +#define STATUS_CANT_DISABLE_MANDATORY ((NTSTATUS)0xC000005DL) #endif #ifndef STATUS_NO_LOGON_SERVERS -# define STATUS_NO_LOGON_SERVERS ((NTSTATUS) 0xC000005EL) +#define STATUS_NO_LOGON_SERVERS ((NTSTATUS)0xC000005EL) #endif #ifndef STATUS_NO_SUCH_LOGON_SESSION -# define STATUS_NO_SUCH_LOGON_SESSION ((NTSTATUS) 0xC000005FL) +#define STATUS_NO_SUCH_LOGON_SESSION ((NTSTATUS)0xC000005FL) #endif #ifndef STATUS_NO_SUCH_PRIVILEGE -# define STATUS_NO_SUCH_PRIVILEGE ((NTSTATUS) 0xC0000060L) +#define STATUS_NO_SUCH_PRIVILEGE ((NTSTATUS)0xC0000060L) #endif #ifndef STATUS_PRIVILEGE_NOT_HELD -# define STATUS_PRIVILEGE_NOT_HELD ((NTSTATUS) 0xC0000061L) +#define STATUS_PRIVILEGE_NOT_HELD ((NTSTATUS)0xC0000061L) #endif #ifndef STATUS_INVALID_ACCOUNT_NAME -# define STATUS_INVALID_ACCOUNT_NAME ((NTSTATUS) 0xC0000062L) +#define STATUS_INVALID_ACCOUNT_NAME ((NTSTATUS)0xC0000062L) #endif #ifndef STATUS_USER_EXISTS -# define STATUS_USER_EXISTS ((NTSTATUS) 0xC0000063L) +#define STATUS_USER_EXISTS ((NTSTATUS)0xC0000063L) #endif #ifndef STATUS_NO_SUCH_USER -# define STATUS_NO_SUCH_USER ((NTSTATUS) 0xC0000064L) +#define STATUS_NO_SUCH_USER ((NTSTATUS)0xC0000064L) #endif #ifndef STATUS_GROUP_EXISTS -# define STATUS_GROUP_EXISTS ((NTSTATUS) 0xC0000065L) +#define STATUS_GROUP_EXISTS ((NTSTATUS)0xC0000065L) #endif #ifndef STATUS_NO_SUCH_GROUP -# define STATUS_NO_SUCH_GROUP ((NTSTATUS) 0xC0000066L) +#define STATUS_NO_SUCH_GROUP ((NTSTATUS)0xC0000066L) #endif #ifndef STATUS_MEMBER_IN_GROUP -# define STATUS_MEMBER_IN_GROUP ((NTSTATUS) 0xC0000067L) +#define STATUS_MEMBER_IN_GROUP ((NTSTATUS)0xC0000067L) #endif #ifndef STATUS_MEMBER_NOT_IN_GROUP -# define STATUS_MEMBER_NOT_IN_GROUP ((NTSTATUS) 0xC0000068L) +#define STATUS_MEMBER_NOT_IN_GROUP ((NTSTATUS)0xC0000068L) #endif #ifndef STATUS_LAST_ADMIN -# define STATUS_LAST_ADMIN ((NTSTATUS) 0xC0000069L) +#define STATUS_LAST_ADMIN ((NTSTATUS)0xC0000069L) #endif #ifndef STATUS_WRONG_PASSWORD -# define STATUS_WRONG_PASSWORD ((NTSTATUS) 0xC000006AL) +#define STATUS_WRONG_PASSWORD ((NTSTATUS)0xC000006AL) #endif #ifndef STATUS_ILL_FORMED_PASSWORD -# define STATUS_ILL_FORMED_PASSWORD ((NTSTATUS) 0xC000006BL) +#define STATUS_ILL_FORMED_PASSWORD ((NTSTATUS)0xC000006BL) #endif #ifndef STATUS_PASSWORD_RESTRICTION -# define STATUS_PASSWORD_RESTRICTION ((NTSTATUS) 0xC000006CL) +#define STATUS_PASSWORD_RESTRICTION ((NTSTATUS)0xC000006CL) #endif #ifndef STATUS_LOGON_FAILURE -# define STATUS_LOGON_FAILURE ((NTSTATUS) 0xC000006DL) +#define STATUS_LOGON_FAILURE ((NTSTATUS)0xC000006DL) #endif #ifndef STATUS_ACCOUNT_RESTRICTION -# define STATUS_ACCOUNT_RESTRICTION ((NTSTATUS) 0xC000006EL) +#define STATUS_ACCOUNT_RESTRICTION ((NTSTATUS)0xC000006EL) #endif #ifndef STATUS_INVALID_LOGON_HOURS -# define STATUS_INVALID_LOGON_HOURS ((NTSTATUS) 0xC000006FL) +#define STATUS_INVALID_LOGON_HOURS ((NTSTATUS)0xC000006FL) #endif #ifndef STATUS_INVALID_WORKSTATION -# define STATUS_INVALID_WORKSTATION ((NTSTATUS) 0xC0000070L) +#define STATUS_INVALID_WORKSTATION ((NTSTATUS)0xC0000070L) #endif #ifndef STATUS_PASSWORD_EXPIRED -# define STATUS_PASSWORD_EXPIRED ((NTSTATUS) 0xC0000071L) +#define STATUS_PASSWORD_EXPIRED ((NTSTATUS)0xC0000071L) #endif #ifndef STATUS_ACCOUNT_DISABLED -# define STATUS_ACCOUNT_DISABLED ((NTSTATUS) 0xC0000072L) +#define STATUS_ACCOUNT_DISABLED ((NTSTATUS)0xC0000072L) #endif #ifndef STATUS_NONE_MAPPED -# define STATUS_NONE_MAPPED ((NTSTATUS) 0xC0000073L) +#define STATUS_NONE_MAPPED ((NTSTATUS)0xC0000073L) #endif #ifndef STATUS_TOO_MANY_LUIDS_REQUESTED -# define STATUS_TOO_MANY_LUIDS_REQUESTED ((NTSTATUS) 0xC0000074L) +#define STATUS_TOO_MANY_LUIDS_REQUESTED ((NTSTATUS)0xC0000074L) #endif #ifndef STATUS_LUIDS_EXHAUSTED -# define STATUS_LUIDS_EXHAUSTED ((NTSTATUS) 0xC0000075L) +#define STATUS_LUIDS_EXHAUSTED ((NTSTATUS)0xC0000075L) #endif #ifndef STATUS_INVALID_SUB_AUTHORITY -# define STATUS_INVALID_SUB_AUTHORITY ((NTSTATUS) 0xC0000076L) +#define STATUS_INVALID_SUB_AUTHORITY ((NTSTATUS)0xC0000076L) #endif #ifndef STATUS_INVALID_ACL -# define STATUS_INVALID_ACL ((NTSTATUS) 0xC0000077L) +#define STATUS_INVALID_ACL ((NTSTATUS)0xC0000077L) #endif #ifndef STATUS_INVALID_SID -# define STATUS_INVALID_SID ((NTSTATUS) 0xC0000078L) +#define STATUS_INVALID_SID ((NTSTATUS)0xC0000078L) #endif #ifndef STATUS_INVALID_SECURITY_DESCR -# define STATUS_INVALID_SECURITY_DESCR ((NTSTATUS) 0xC0000079L) +#define STATUS_INVALID_SECURITY_DESCR ((NTSTATUS)0xC0000079L) #endif #ifndef STATUS_PROCEDURE_NOT_FOUND -# define STATUS_PROCEDURE_NOT_FOUND ((NTSTATUS) 0xC000007AL) +#define STATUS_PROCEDURE_NOT_FOUND ((NTSTATUS)0xC000007AL) #endif #ifndef STATUS_INVALID_IMAGE_FORMAT -# define STATUS_INVALID_IMAGE_FORMAT ((NTSTATUS) 0xC000007BL) +#define STATUS_INVALID_IMAGE_FORMAT ((NTSTATUS)0xC000007BL) #endif #ifndef STATUS_NO_TOKEN -# define STATUS_NO_TOKEN ((NTSTATUS) 0xC000007CL) +#define STATUS_NO_TOKEN ((NTSTATUS)0xC000007CL) #endif #ifndef STATUS_BAD_INHERITANCE_ACL -# define STATUS_BAD_INHERITANCE_ACL ((NTSTATUS) 0xC000007DL) +#define STATUS_BAD_INHERITANCE_ACL ((NTSTATUS)0xC000007DL) #endif #ifndef STATUS_RANGE_NOT_LOCKED -# define STATUS_RANGE_NOT_LOCKED ((NTSTATUS) 0xC000007EL) +#define STATUS_RANGE_NOT_LOCKED ((NTSTATUS)0xC000007EL) #endif #ifndef STATUS_DISK_FULL -# define STATUS_DISK_FULL ((NTSTATUS) 0xC000007FL) +#define STATUS_DISK_FULL ((NTSTATUS)0xC000007FL) #endif #ifndef STATUS_SERVER_DISABLED -# define STATUS_SERVER_DISABLED ((NTSTATUS) 0xC0000080L) +#define STATUS_SERVER_DISABLED ((NTSTATUS)0xC0000080L) #endif #ifndef STATUS_SERVER_NOT_DISABLED -# define STATUS_SERVER_NOT_DISABLED ((NTSTATUS) 0xC0000081L) +#define STATUS_SERVER_NOT_DISABLED ((NTSTATUS)0xC0000081L) #endif #ifndef STATUS_TOO_MANY_GUIDS_REQUESTED -# define STATUS_TOO_MANY_GUIDS_REQUESTED ((NTSTATUS) 0xC0000082L) +#define STATUS_TOO_MANY_GUIDS_REQUESTED ((NTSTATUS)0xC0000082L) #endif #ifndef STATUS_GUIDS_EXHAUSTED -# define STATUS_GUIDS_EXHAUSTED ((NTSTATUS) 0xC0000083L) +#define STATUS_GUIDS_EXHAUSTED ((NTSTATUS)0xC0000083L) #endif #ifndef STATUS_INVALID_ID_AUTHORITY -# define STATUS_INVALID_ID_AUTHORITY ((NTSTATUS) 0xC0000084L) +#define STATUS_INVALID_ID_AUTHORITY ((NTSTATUS)0xC0000084L) #endif #ifndef STATUS_AGENTS_EXHAUSTED -# define STATUS_AGENTS_EXHAUSTED ((NTSTATUS) 0xC0000085L) +#define STATUS_AGENTS_EXHAUSTED ((NTSTATUS)0xC0000085L) #endif #ifndef STATUS_INVALID_VOLUME_LABEL -# define STATUS_INVALID_VOLUME_LABEL ((NTSTATUS) 0xC0000086L) +#define STATUS_INVALID_VOLUME_LABEL ((NTSTATUS)0xC0000086L) #endif #ifndef STATUS_SECTION_NOT_EXTENDED -# define STATUS_SECTION_NOT_EXTENDED ((NTSTATUS) 0xC0000087L) +#define STATUS_SECTION_NOT_EXTENDED ((NTSTATUS)0xC0000087L) #endif #ifndef STATUS_NOT_MAPPED_DATA -# define STATUS_NOT_MAPPED_DATA ((NTSTATUS) 0xC0000088L) +#define STATUS_NOT_MAPPED_DATA ((NTSTATUS)0xC0000088L) #endif #ifndef STATUS_RESOURCE_DATA_NOT_FOUND -# define STATUS_RESOURCE_DATA_NOT_FOUND ((NTSTATUS) 0xC0000089L) +#define STATUS_RESOURCE_DATA_NOT_FOUND ((NTSTATUS)0xC0000089L) #endif #ifndef STATUS_RESOURCE_TYPE_NOT_FOUND -# define STATUS_RESOURCE_TYPE_NOT_FOUND ((NTSTATUS) 0xC000008AL) +#define STATUS_RESOURCE_TYPE_NOT_FOUND ((NTSTATUS)0xC000008AL) #endif #ifndef STATUS_RESOURCE_NAME_NOT_FOUND -# define STATUS_RESOURCE_NAME_NOT_FOUND ((NTSTATUS) 0xC000008BL) +#define STATUS_RESOURCE_NAME_NOT_FOUND ((NTSTATUS)0xC000008BL) #endif #ifndef STATUS_ARRAY_BOUNDS_EXCEEDED -# define STATUS_ARRAY_BOUNDS_EXCEEDED ((NTSTATUS) 0xC000008CL) +#define STATUS_ARRAY_BOUNDS_EXCEEDED ((NTSTATUS)0xC000008CL) #endif #ifndef STATUS_FLOAT_DENORMAL_OPERAND -# define STATUS_FLOAT_DENORMAL_OPERAND ((NTSTATUS) 0xC000008DL) +#define STATUS_FLOAT_DENORMAL_OPERAND ((NTSTATUS)0xC000008DL) #endif #ifndef STATUS_FLOAT_DIVIDE_BY_ZERO -# define STATUS_FLOAT_DIVIDE_BY_ZERO ((NTSTATUS) 0xC000008EL) +#define STATUS_FLOAT_DIVIDE_BY_ZERO ((NTSTATUS)0xC000008EL) #endif #ifndef STATUS_FLOAT_INEXACT_RESULT -# define STATUS_FLOAT_INEXACT_RESULT ((NTSTATUS) 0xC000008FL) +#define STATUS_FLOAT_INEXACT_RESULT ((NTSTATUS)0xC000008FL) #endif #ifndef STATUS_FLOAT_INVALID_OPERATION -# define STATUS_FLOAT_INVALID_OPERATION ((NTSTATUS) 0xC0000090L) +#define STATUS_FLOAT_INVALID_OPERATION ((NTSTATUS)0xC0000090L) #endif #ifndef STATUS_FLOAT_OVERFLOW -# define STATUS_FLOAT_OVERFLOW ((NTSTATUS) 0xC0000091L) +#define STATUS_FLOAT_OVERFLOW ((NTSTATUS)0xC0000091L) #endif #ifndef STATUS_FLOAT_STACK_CHECK -# define STATUS_FLOAT_STACK_CHECK ((NTSTATUS) 0xC0000092L) +#define STATUS_FLOAT_STACK_CHECK ((NTSTATUS)0xC0000092L) #endif #ifndef STATUS_FLOAT_UNDERFLOW -# define STATUS_FLOAT_UNDERFLOW ((NTSTATUS) 0xC0000093L) +#define STATUS_FLOAT_UNDERFLOW ((NTSTATUS)0xC0000093L) #endif #ifndef STATUS_INTEGER_DIVIDE_BY_ZERO -# define STATUS_INTEGER_DIVIDE_BY_ZERO ((NTSTATUS) 0xC0000094L) +#define STATUS_INTEGER_DIVIDE_BY_ZERO ((NTSTATUS)0xC0000094L) #endif #ifndef STATUS_INTEGER_OVERFLOW -# define STATUS_INTEGER_OVERFLOW ((NTSTATUS) 0xC0000095L) +#define STATUS_INTEGER_OVERFLOW ((NTSTATUS)0xC0000095L) #endif #ifndef STATUS_PRIVILEGED_INSTRUCTION -# define STATUS_PRIVILEGED_INSTRUCTION ((NTSTATUS) 0xC0000096L) +#define STATUS_PRIVILEGED_INSTRUCTION ((NTSTATUS)0xC0000096L) #endif #ifndef STATUS_TOO_MANY_PAGING_FILES -# define STATUS_TOO_MANY_PAGING_FILES ((NTSTATUS) 0xC0000097L) +#define STATUS_TOO_MANY_PAGING_FILES ((NTSTATUS)0xC0000097L) #endif #ifndef STATUS_FILE_INVALID -# define STATUS_FILE_INVALID ((NTSTATUS) 0xC0000098L) +#define STATUS_FILE_INVALID ((NTSTATUS)0xC0000098L) #endif #ifndef STATUS_ALLOTTED_SPACE_EXCEEDED -# define STATUS_ALLOTTED_SPACE_EXCEEDED ((NTSTATUS) 0xC0000099L) +#define STATUS_ALLOTTED_SPACE_EXCEEDED ((NTSTATUS)0xC0000099L) #endif #ifndef STATUS_INSUFFICIENT_RESOURCES -# define STATUS_INSUFFICIENT_RESOURCES ((NTSTATUS) 0xC000009AL) +#define STATUS_INSUFFICIENT_RESOURCES ((NTSTATUS)0xC000009AL) #endif #ifndef STATUS_DFS_EXIT_PATH_FOUND -# define STATUS_DFS_EXIT_PATH_FOUND ((NTSTATUS) 0xC000009BL) +#define STATUS_DFS_EXIT_PATH_FOUND ((NTSTATUS)0xC000009BL) #endif #ifndef STATUS_DEVICE_DATA_ERROR -# define STATUS_DEVICE_DATA_ERROR ((NTSTATUS) 0xC000009CL) +#define STATUS_DEVICE_DATA_ERROR ((NTSTATUS)0xC000009CL) #endif #ifndef STATUS_DEVICE_NOT_CONNECTED -# define STATUS_DEVICE_NOT_CONNECTED ((NTSTATUS) 0xC000009DL) +#define STATUS_DEVICE_NOT_CONNECTED ((NTSTATUS)0xC000009DL) #endif #ifndef STATUS_DEVICE_POWER_FAILURE -# define STATUS_DEVICE_POWER_FAILURE ((NTSTATUS) 0xC000009EL) +#define STATUS_DEVICE_POWER_FAILURE ((NTSTATUS)0xC000009EL) #endif #ifndef STATUS_FREE_VM_NOT_AT_BASE -# define STATUS_FREE_VM_NOT_AT_BASE ((NTSTATUS) 0xC000009FL) +#define STATUS_FREE_VM_NOT_AT_BASE ((NTSTATUS)0xC000009FL) #endif #ifndef STATUS_MEMORY_NOT_ALLOCATED -# define STATUS_MEMORY_NOT_ALLOCATED ((NTSTATUS) 0xC00000A0L) +#define STATUS_MEMORY_NOT_ALLOCATED ((NTSTATUS)0xC00000A0L) #endif #ifndef STATUS_WORKING_SET_QUOTA -# define STATUS_WORKING_SET_QUOTA ((NTSTATUS) 0xC00000A1L) +#define STATUS_WORKING_SET_QUOTA ((NTSTATUS)0xC00000A1L) #endif #ifndef STATUS_MEDIA_WRITE_PROTECTED -# define STATUS_MEDIA_WRITE_PROTECTED ((NTSTATUS) 0xC00000A2L) +#define STATUS_MEDIA_WRITE_PROTECTED ((NTSTATUS)0xC00000A2L) #endif #ifndef STATUS_DEVICE_NOT_READY -# define STATUS_DEVICE_NOT_READY ((NTSTATUS) 0xC00000A3L) +#define STATUS_DEVICE_NOT_READY ((NTSTATUS)0xC00000A3L) #endif #ifndef STATUS_INVALID_GROUP_ATTRIBUTES -# define STATUS_INVALID_GROUP_ATTRIBUTES ((NTSTATUS) 0xC00000A4L) +#define STATUS_INVALID_GROUP_ATTRIBUTES ((NTSTATUS)0xC00000A4L) #endif #ifndef STATUS_BAD_IMPERSONATION_LEVEL -# define STATUS_BAD_IMPERSONATION_LEVEL ((NTSTATUS) 0xC00000A5L) +#define STATUS_BAD_IMPERSONATION_LEVEL ((NTSTATUS)0xC00000A5L) #endif #ifndef STATUS_CANT_OPEN_ANONYMOUS -# define STATUS_CANT_OPEN_ANONYMOUS ((NTSTATUS) 0xC00000A6L) +#define STATUS_CANT_OPEN_ANONYMOUS ((NTSTATUS)0xC00000A6L) #endif #ifndef STATUS_BAD_VALIDATION_CLASS -# define STATUS_BAD_VALIDATION_CLASS ((NTSTATUS) 0xC00000A7L) +#define STATUS_BAD_VALIDATION_CLASS ((NTSTATUS)0xC00000A7L) #endif #ifndef STATUS_BAD_TOKEN_TYPE -# define STATUS_BAD_TOKEN_TYPE ((NTSTATUS) 0xC00000A8L) +#define STATUS_BAD_TOKEN_TYPE ((NTSTATUS)0xC00000A8L) #endif #ifndef STATUS_BAD_MASTER_BOOT_RECORD -# define STATUS_BAD_MASTER_BOOT_RECORD ((NTSTATUS) 0xC00000A9L) +#define STATUS_BAD_MASTER_BOOT_RECORD ((NTSTATUS)0xC00000A9L) #endif #ifndef STATUS_INSTRUCTION_MISALIGNMENT -# define STATUS_INSTRUCTION_MISALIGNMENT ((NTSTATUS) 0xC00000AAL) +#define STATUS_INSTRUCTION_MISALIGNMENT ((NTSTATUS)0xC00000AAL) #endif #ifndef STATUS_INSTANCE_NOT_AVAILABLE -# define STATUS_INSTANCE_NOT_AVAILABLE ((NTSTATUS) 0xC00000ABL) +#define STATUS_INSTANCE_NOT_AVAILABLE ((NTSTATUS)0xC00000ABL) #endif #ifndef STATUS_PIPE_NOT_AVAILABLE -# define STATUS_PIPE_NOT_AVAILABLE ((NTSTATUS) 0xC00000ACL) +#define STATUS_PIPE_NOT_AVAILABLE ((NTSTATUS)0xC00000ACL) #endif #ifndef STATUS_INVALID_PIPE_STATE -# define STATUS_INVALID_PIPE_STATE ((NTSTATUS) 0xC00000ADL) +#define STATUS_INVALID_PIPE_STATE ((NTSTATUS)0xC00000ADL) #endif #ifndef STATUS_PIPE_BUSY -# define STATUS_PIPE_BUSY ((NTSTATUS) 0xC00000AEL) +#define STATUS_PIPE_BUSY ((NTSTATUS)0xC00000AEL) #endif #ifndef STATUS_ILLEGAL_FUNCTION -# define STATUS_ILLEGAL_FUNCTION ((NTSTATUS) 0xC00000AFL) +#define STATUS_ILLEGAL_FUNCTION ((NTSTATUS)0xC00000AFL) #endif #ifndef STATUS_PIPE_DISCONNECTED -# define STATUS_PIPE_DISCONNECTED ((NTSTATUS) 0xC00000B0L) +#define STATUS_PIPE_DISCONNECTED ((NTSTATUS)0xC00000B0L) #endif #ifndef STATUS_PIPE_CLOSING -# define STATUS_PIPE_CLOSING ((NTSTATUS) 0xC00000B1L) +#define STATUS_PIPE_CLOSING ((NTSTATUS)0xC00000B1L) #endif #ifndef STATUS_PIPE_CONNECTED -# define STATUS_PIPE_CONNECTED ((NTSTATUS) 0xC00000B2L) +#define STATUS_PIPE_CONNECTED ((NTSTATUS)0xC00000B2L) #endif #ifndef STATUS_PIPE_LISTENING -# define STATUS_PIPE_LISTENING ((NTSTATUS) 0xC00000B3L) +#define STATUS_PIPE_LISTENING ((NTSTATUS)0xC00000B3L) #endif #ifndef STATUS_INVALID_READ_MODE -# define STATUS_INVALID_READ_MODE ((NTSTATUS) 0xC00000B4L) +#define STATUS_INVALID_READ_MODE ((NTSTATUS)0xC00000B4L) #endif #ifndef STATUS_IO_TIMEOUT -# define STATUS_IO_TIMEOUT ((NTSTATUS) 0xC00000B5L) +#define STATUS_IO_TIMEOUT ((NTSTATUS)0xC00000B5L) #endif #ifndef STATUS_FILE_FORCED_CLOSED -# define STATUS_FILE_FORCED_CLOSED ((NTSTATUS) 0xC00000B6L) +#define STATUS_FILE_FORCED_CLOSED ((NTSTATUS)0xC00000B6L) #endif #ifndef STATUS_PROFILING_NOT_STARTED -# define STATUS_PROFILING_NOT_STARTED ((NTSTATUS) 0xC00000B7L) +#define STATUS_PROFILING_NOT_STARTED ((NTSTATUS)0xC00000B7L) #endif #ifndef STATUS_PROFILING_NOT_STOPPED -# define STATUS_PROFILING_NOT_STOPPED ((NTSTATUS) 0xC00000B8L) +#define STATUS_PROFILING_NOT_STOPPED ((NTSTATUS)0xC00000B8L) #endif #ifndef STATUS_COULD_NOT_INTERPRET -# define STATUS_COULD_NOT_INTERPRET ((NTSTATUS) 0xC00000B9L) +#define STATUS_COULD_NOT_INTERPRET ((NTSTATUS)0xC00000B9L) #endif #ifndef STATUS_FILE_IS_A_DIRECTORY -# define STATUS_FILE_IS_A_DIRECTORY ((NTSTATUS) 0xC00000BAL) +#define STATUS_FILE_IS_A_DIRECTORY ((NTSTATUS)0xC00000BAL) #endif #ifndef STATUS_NOT_SUPPORTED -# define STATUS_NOT_SUPPORTED ((NTSTATUS) 0xC00000BBL) +#define STATUS_NOT_SUPPORTED ((NTSTATUS)0xC00000BBL) #endif #ifndef STATUS_REMOTE_NOT_LISTENING -# define STATUS_REMOTE_NOT_LISTENING ((NTSTATUS) 0xC00000BCL) +#define STATUS_REMOTE_NOT_LISTENING ((NTSTATUS)0xC00000BCL) #endif #ifndef STATUS_DUPLICATE_NAME -# define STATUS_DUPLICATE_NAME ((NTSTATUS) 0xC00000BDL) +#define STATUS_DUPLICATE_NAME ((NTSTATUS)0xC00000BDL) #endif #ifndef STATUS_BAD_NETWORK_PATH -# define STATUS_BAD_NETWORK_PATH ((NTSTATUS) 0xC00000BEL) +#define STATUS_BAD_NETWORK_PATH ((NTSTATUS)0xC00000BEL) #endif #ifndef STATUS_NETWORK_BUSY -# define STATUS_NETWORK_BUSY ((NTSTATUS) 0xC00000BFL) +#define STATUS_NETWORK_BUSY ((NTSTATUS)0xC00000BFL) #endif #ifndef STATUS_DEVICE_DOES_NOT_EXIST -# define STATUS_DEVICE_DOES_NOT_EXIST ((NTSTATUS) 0xC00000C0L) +#define STATUS_DEVICE_DOES_NOT_EXIST ((NTSTATUS)0xC00000C0L) #endif #ifndef STATUS_TOO_MANY_COMMANDS -# define STATUS_TOO_MANY_COMMANDS ((NTSTATUS) 0xC00000C1L) +#define STATUS_TOO_MANY_COMMANDS ((NTSTATUS)0xC00000C1L) #endif #ifndef STATUS_ADAPTER_HARDWARE_ERROR -# define STATUS_ADAPTER_HARDWARE_ERROR ((NTSTATUS) 0xC00000C2L) +#define STATUS_ADAPTER_HARDWARE_ERROR ((NTSTATUS)0xC00000C2L) #endif #ifndef STATUS_INVALID_NETWORK_RESPONSE -# define STATUS_INVALID_NETWORK_RESPONSE ((NTSTATUS) 0xC00000C3L) +#define STATUS_INVALID_NETWORK_RESPONSE ((NTSTATUS)0xC00000C3L) #endif #ifndef STATUS_UNEXPECTED_NETWORK_ERROR -# define STATUS_UNEXPECTED_NETWORK_ERROR ((NTSTATUS) 0xC00000C4L) +#define STATUS_UNEXPECTED_NETWORK_ERROR ((NTSTATUS)0xC00000C4L) #endif #ifndef STATUS_BAD_REMOTE_ADAPTER -# define STATUS_BAD_REMOTE_ADAPTER ((NTSTATUS) 0xC00000C5L) +#define STATUS_BAD_REMOTE_ADAPTER ((NTSTATUS)0xC00000C5L) #endif #ifndef STATUS_PRINT_QUEUE_FULL -# define STATUS_PRINT_QUEUE_FULL ((NTSTATUS) 0xC00000C6L) +#define STATUS_PRINT_QUEUE_FULL ((NTSTATUS)0xC00000C6L) #endif #ifndef STATUS_NO_SPOOL_SPACE -# define STATUS_NO_SPOOL_SPACE ((NTSTATUS) 0xC00000C7L) +#define STATUS_NO_SPOOL_SPACE ((NTSTATUS)0xC00000C7L) #endif #ifndef STATUS_PRINT_CANCELLED -# define STATUS_PRINT_CANCELLED ((NTSTATUS) 0xC00000C8L) +#define STATUS_PRINT_CANCELLED ((NTSTATUS)0xC00000C8L) #endif #ifndef STATUS_NETWORK_NAME_DELETED -# define STATUS_NETWORK_NAME_DELETED ((NTSTATUS) 0xC00000C9L) +#define STATUS_NETWORK_NAME_DELETED ((NTSTATUS)0xC00000C9L) #endif #ifndef STATUS_NETWORK_ACCESS_DENIED -# define STATUS_NETWORK_ACCESS_DENIED ((NTSTATUS) 0xC00000CAL) +#define STATUS_NETWORK_ACCESS_DENIED ((NTSTATUS)0xC00000CAL) #endif #ifndef STATUS_BAD_DEVICE_TYPE -# define STATUS_BAD_DEVICE_TYPE ((NTSTATUS) 0xC00000CBL) +#define STATUS_BAD_DEVICE_TYPE ((NTSTATUS)0xC00000CBL) #endif #ifndef STATUS_BAD_NETWORK_NAME -# define STATUS_BAD_NETWORK_NAME ((NTSTATUS) 0xC00000CCL) +#define STATUS_BAD_NETWORK_NAME ((NTSTATUS)0xC00000CCL) #endif #ifndef STATUS_TOO_MANY_NAMES -# define STATUS_TOO_MANY_NAMES ((NTSTATUS) 0xC00000CDL) +#define STATUS_TOO_MANY_NAMES ((NTSTATUS)0xC00000CDL) #endif #ifndef STATUS_TOO_MANY_SESSIONS -# define STATUS_TOO_MANY_SESSIONS ((NTSTATUS) 0xC00000CEL) +#define STATUS_TOO_MANY_SESSIONS ((NTSTATUS)0xC00000CEL) #endif #ifndef STATUS_SHARING_PAUSED -# define STATUS_SHARING_PAUSED ((NTSTATUS) 0xC00000CFL) +#define STATUS_SHARING_PAUSED ((NTSTATUS)0xC00000CFL) #endif #ifndef STATUS_REQUEST_NOT_ACCEPTED -# define STATUS_REQUEST_NOT_ACCEPTED ((NTSTATUS) 0xC00000D0L) +#define STATUS_REQUEST_NOT_ACCEPTED ((NTSTATUS)0xC00000D0L) #endif #ifndef STATUS_REDIRECTOR_PAUSED -# define STATUS_REDIRECTOR_PAUSED ((NTSTATUS) 0xC00000D1L) +#define STATUS_REDIRECTOR_PAUSED ((NTSTATUS)0xC00000D1L) #endif #ifndef STATUS_NET_WRITE_FAULT -# define STATUS_NET_WRITE_FAULT ((NTSTATUS) 0xC00000D2L) +#define STATUS_NET_WRITE_FAULT ((NTSTATUS)0xC00000D2L) #endif #ifndef STATUS_PROFILING_AT_LIMIT -# define STATUS_PROFILING_AT_LIMIT ((NTSTATUS) 0xC00000D3L) +#define STATUS_PROFILING_AT_LIMIT ((NTSTATUS)0xC00000D3L) #endif #ifndef STATUS_NOT_SAME_DEVICE -# define STATUS_NOT_SAME_DEVICE ((NTSTATUS) 0xC00000D4L) +#define STATUS_NOT_SAME_DEVICE ((NTSTATUS)0xC00000D4L) #endif #ifndef STATUS_FILE_RENAMED -# define STATUS_FILE_RENAMED ((NTSTATUS) 0xC00000D5L) +#define STATUS_FILE_RENAMED ((NTSTATUS)0xC00000D5L) #endif #ifndef STATUS_VIRTUAL_CIRCUIT_CLOSED -# define STATUS_VIRTUAL_CIRCUIT_CLOSED ((NTSTATUS) 0xC00000D6L) +#define STATUS_VIRTUAL_CIRCUIT_CLOSED ((NTSTATUS)0xC00000D6L) #endif #ifndef STATUS_NO_SECURITY_ON_OBJECT -# define STATUS_NO_SECURITY_ON_OBJECT ((NTSTATUS) 0xC00000D7L) +#define STATUS_NO_SECURITY_ON_OBJECT ((NTSTATUS)0xC00000D7L) #endif #ifndef STATUS_CANT_WAIT -# define STATUS_CANT_WAIT ((NTSTATUS) 0xC00000D8L) +#define STATUS_CANT_WAIT ((NTSTATUS)0xC00000D8L) #endif #ifndef STATUS_PIPE_EMPTY -# define STATUS_PIPE_EMPTY ((NTSTATUS) 0xC00000D9L) +#define STATUS_PIPE_EMPTY ((NTSTATUS)0xC00000D9L) #endif #ifndef STATUS_CANT_ACCESS_DOMAIN_INFO -# define STATUS_CANT_ACCESS_DOMAIN_INFO ((NTSTATUS) 0xC00000DAL) +#define STATUS_CANT_ACCESS_DOMAIN_INFO ((NTSTATUS)0xC00000DAL) #endif #ifndef STATUS_CANT_TERMINATE_SELF -# define STATUS_CANT_TERMINATE_SELF ((NTSTATUS) 0xC00000DBL) +#define STATUS_CANT_TERMINATE_SELF ((NTSTATUS)0xC00000DBL) #endif #ifndef STATUS_INVALID_SERVER_STATE -# define STATUS_INVALID_SERVER_STATE ((NTSTATUS) 0xC00000DCL) +#define STATUS_INVALID_SERVER_STATE ((NTSTATUS)0xC00000DCL) #endif #ifndef STATUS_INVALID_DOMAIN_STATE -# define STATUS_INVALID_DOMAIN_STATE ((NTSTATUS) 0xC00000DDL) +#define STATUS_INVALID_DOMAIN_STATE ((NTSTATUS)0xC00000DDL) #endif #ifndef STATUS_INVALID_DOMAIN_ROLE -# define STATUS_INVALID_DOMAIN_ROLE ((NTSTATUS) 0xC00000DEL) +#define STATUS_INVALID_DOMAIN_ROLE ((NTSTATUS)0xC00000DEL) #endif #ifndef STATUS_NO_SUCH_DOMAIN -# define STATUS_NO_SUCH_DOMAIN ((NTSTATUS) 0xC00000DFL) +#define STATUS_NO_SUCH_DOMAIN ((NTSTATUS)0xC00000DFL) #endif #ifndef STATUS_DOMAIN_EXISTS -# define STATUS_DOMAIN_EXISTS ((NTSTATUS) 0xC00000E0L) +#define STATUS_DOMAIN_EXISTS ((NTSTATUS)0xC00000E0L) #endif #ifndef STATUS_DOMAIN_LIMIT_EXCEEDED -# define STATUS_DOMAIN_LIMIT_EXCEEDED ((NTSTATUS) 0xC00000E1L) +#define STATUS_DOMAIN_LIMIT_EXCEEDED ((NTSTATUS)0xC00000E1L) #endif #ifndef STATUS_OPLOCK_NOT_GRANTED -# define STATUS_OPLOCK_NOT_GRANTED ((NTSTATUS) 0xC00000E2L) +#define STATUS_OPLOCK_NOT_GRANTED ((NTSTATUS)0xC00000E2L) #endif #ifndef STATUS_INVALID_OPLOCK_PROTOCOL -# define STATUS_INVALID_OPLOCK_PROTOCOL ((NTSTATUS) 0xC00000E3L) +#define STATUS_INVALID_OPLOCK_PROTOCOL ((NTSTATUS)0xC00000E3L) #endif #ifndef STATUS_INTERNAL_DB_CORRUPTION -# define STATUS_INTERNAL_DB_CORRUPTION ((NTSTATUS) 0xC00000E4L) +#define STATUS_INTERNAL_DB_CORRUPTION ((NTSTATUS)0xC00000E4L) #endif #ifndef STATUS_INTERNAL_ERROR -# define STATUS_INTERNAL_ERROR ((NTSTATUS) 0xC00000E5L) +#define STATUS_INTERNAL_ERROR ((NTSTATUS)0xC00000E5L) #endif #ifndef STATUS_GENERIC_NOT_MAPPED -# define STATUS_GENERIC_NOT_MAPPED ((NTSTATUS) 0xC00000E6L) +#define STATUS_GENERIC_NOT_MAPPED ((NTSTATUS)0xC00000E6L) #endif #ifndef STATUS_BAD_DESCRIPTOR_FORMAT -# define STATUS_BAD_DESCRIPTOR_FORMAT ((NTSTATUS) 0xC00000E7L) +#define STATUS_BAD_DESCRIPTOR_FORMAT ((NTSTATUS)0xC00000E7L) #endif #ifndef STATUS_INVALID_USER_BUFFER -# define STATUS_INVALID_USER_BUFFER ((NTSTATUS) 0xC00000E8L) +#define STATUS_INVALID_USER_BUFFER ((NTSTATUS)0xC00000E8L) #endif #ifndef STATUS_UNEXPECTED_IO_ERROR -# define STATUS_UNEXPECTED_IO_ERROR ((NTSTATUS) 0xC00000E9L) +#define STATUS_UNEXPECTED_IO_ERROR ((NTSTATUS)0xC00000E9L) #endif #ifndef STATUS_UNEXPECTED_MM_CREATE_ERR -# define STATUS_UNEXPECTED_MM_CREATE_ERR ((NTSTATUS) 0xC00000EAL) +#define STATUS_UNEXPECTED_MM_CREATE_ERR ((NTSTATUS)0xC00000EAL) #endif #ifndef STATUS_UNEXPECTED_MM_MAP_ERROR -# define STATUS_UNEXPECTED_MM_MAP_ERROR ((NTSTATUS) 0xC00000EBL) +#define STATUS_UNEXPECTED_MM_MAP_ERROR ((NTSTATUS)0xC00000EBL) #endif #ifndef STATUS_UNEXPECTED_MM_EXTEND_ERR -# define STATUS_UNEXPECTED_MM_EXTEND_ERR ((NTSTATUS) 0xC00000ECL) +#define STATUS_UNEXPECTED_MM_EXTEND_ERR ((NTSTATUS)0xC00000ECL) #endif #ifndef STATUS_NOT_LOGON_PROCESS -# define STATUS_NOT_LOGON_PROCESS ((NTSTATUS) 0xC00000EDL) +#define STATUS_NOT_LOGON_PROCESS ((NTSTATUS)0xC00000EDL) #endif #ifndef STATUS_LOGON_SESSION_EXISTS -# define STATUS_LOGON_SESSION_EXISTS ((NTSTATUS) 0xC00000EEL) +#define STATUS_LOGON_SESSION_EXISTS ((NTSTATUS)0xC00000EEL) #endif #ifndef STATUS_INVALID_PARAMETER_1 -# define STATUS_INVALID_PARAMETER_1 ((NTSTATUS) 0xC00000EFL) +#define STATUS_INVALID_PARAMETER_1 ((NTSTATUS)0xC00000EFL) #endif #ifndef STATUS_INVALID_PARAMETER_2 -# define STATUS_INVALID_PARAMETER_2 ((NTSTATUS) 0xC00000F0L) +#define STATUS_INVALID_PARAMETER_2 ((NTSTATUS)0xC00000F0L) #endif #ifndef STATUS_INVALID_PARAMETER_3 -# define STATUS_INVALID_PARAMETER_3 ((NTSTATUS) 0xC00000F1L) +#define STATUS_INVALID_PARAMETER_3 ((NTSTATUS)0xC00000F1L) #endif #ifndef STATUS_INVALID_PARAMETER_4 -# define STATUS_INVALID_PARAMETER_4 ((NTSTATUS) 0xC00000F2L) +#define STATUS_INVALID_PARAMETER_4 ((NTSTATUS)0xC00000F2L) #endif #ifndef STATUS_INVALID_PARAMETER_5 -# define STATUS_INVALID_PARAMETER_5 ((NTSTATUS) 0xC00000F3L) +#define STATUS_INVALID_PARAMETER_5 ((NTSTATUS)0xC00000F3L) #endif #ifndef STATUS_INVALID_PARAMETER_6 -# define STATUS_INVALID_PARAMETER_6 ((NTSTATUS) 0xC00000F4L) +#define STATUS_INVALID_PARAMETER_6 ((NTSTATUS)0xC00000F4L) #endif #ifndef STATUS_INVALID_PARAMETER_7 -# define STATUS_INVALID_PARAMETER_7 ((NTSTATUS) 0xC00000F5L) +#define STATUS_INVALID_PARAMETER_7 ((NTSTATUS)0xC00000F5L) #endif #ifndef STATUS_INVALID_PARAMETER_8 -# define STATUS_INVALID_PARAMETER_8 ((NTSTATUS) 0xC00000F6L) +#define STATUS_INVALID_PARAMETER_8 ((NTSTATUS)0xC00000F6L) #endif #ifndef STATUS_INVALID_PARAMETER_9 -# define STATUS_INVALID_PARAMETER_9 ((NTSTATUS) 0xC00000F7L) +#define STATUS_INVALID_PARAMETER_9 ((NTSTATUS)0xC00000F7L) #endif #ifndef STATUS_INVALID_PARAMETER_10 -# define STATUS_INVALID_PARAMETER_10 ((NTSTATUS) 0xC00000F8L) +#define STATUS_INVALID_PARAMETER_10 ((NTSTATUS)0xC00000F8L) #endif #ifndef STATUS_INVALID_PARAMETER_11 -# define STATUS_INVALID_PARAMETER_11 ((NTSTATUS) 0xC00000F9L) +#define STATUS_INVALID_PARAMETER_11 ((NTSTATUS)0xC00000F9L) #endif #ifndef STATUS_INVALID_PARAMETER_12 -# define STATUS_INVALID_PARAMETER_12 ((NTSTATUS) 0xC00000FAL) +#define STATUS_INVALID_PARAMETER_12 ((NTSTATUS)0xC00000FAL) #endif #ifndef STATUS_REDIRECTOR_NOT_STARTED -# define STATUS_REDIRECTOR_NOT_STARTED ((NTSTATUS) 0xC00000FBL) +#define STATUS_REDIRECTOR_NOT_STARTED ((NTSTATUS)0xC00000FBL) #endif #ifndef STATUS_REDIRECTOR_STARTED -# define STATUS_REDIRECTOR_STARTED ((NTSTATUS) 0xC00000FCL) +#define STATUS_REDIRECTOR_STARTED ((NTSTATUS)0xC00000FCL) #endif #ifndef STATUS_STACK_OVERFLOW -# define STATUS_STACK_OVERFLOW ((NTSTATUS) 0xC00000FDL) +#define STATUS_STACK_OVERFLOW ((NTSTATUS)0xC00000FDL) #endif #ifndef STATUS_NO_SUCH_PACKAGE -# define STATUS_NO_SUCH_PACKAGE ((NTSTATUS) 0xC00000FEL) +#define STATUS_NO_SUCH_PACKAGE ((NTSTATUS)0xC00000FEL) #endif #ifndef STATUS_BAD_FUNCTION_TABLE -# define STATUS_BAD_FUNCTION_TABLE ((NTSTATUS) 0xC00000FFL) +#define STATUS_BAD_FUNCTION_TABLE ((NTSTATUS)0xC00000FFL) #endif #ifndef STATUS_VARIABLE_NOT_FOUND -# define STATUS_VARIABLE_NOT_FOUND ((NTSTATUS) 0xC0000100L) +#define STATUS_VARIABLE_NOT_FOUND ((NTSTATUS)0xC0000100L) #endif #ifndef STATUS_DIRECTORY_NOT_EMPTY -# define STATUS_DIRECTORY_NOT_EMPTY ((NTSTATUS) 0xC0000101L) +#define STATUS_DIRECTORY_NOT_EMPTY ((NTSTATUS)0xC0000101L) #endif #ifndef STATUS_FILE_CORRUPT_ERROR -# define STATUS_FILE_CORRUPT_ERROR ((NTSTATUS) 0xC0000102L) +#define STATUS_FILE_CORRUPT_ERROR ((NTSTATUS)0xC0000102L) #endif #ifndef STATUS_NOT_A_DIRECTORY -# define STATUS_NOT_A_DIRECTORY ((NTSTATUS) 0xC0000103L) +#define STATUS_NOT_A_DIRECTORY ((NTSTATUS)0xC0000103L) #endif #ifndef STATUS_BAD_LOGON_SESSION_STATE -# define STATUS_BAD_LOGON_SESSION_STATE ((NTSTATUS) 0xC0000104L) +#define STATUS_BAD_LOGON_SESSION_STATE ((NTSTATUS)0xC0000104L) #endif #ifndef STATUS_LOGON_SESSION_COLLISION -# define STATUS_LOGON_SESSION_COLLISION ((NTSTATUS) 0xC0000105L) +#define STATUS_LOGON_SESSION_COLLISION ((NTSTATUS)0xC0000105L) #endif #ifndef STATUS_NAME_TOO_LONG -# define STATUS_NAME_TOO_LONG ((NTSTATUS) 0xC0000106L) +#define STATUS_NAME_TOO_LONG ((NTSTATUS)0xC0000106L) #endif #ifndef STATUS_FILES_OPEN -# define STATUS_FILES_OPEN ((NTSTATUS) 0xC0000107L) +#define STATUS_FILES_OPEN ((NTSTATUS)0xC0000107L) #endif #ifndef STATUS_CONNECTION_IN_USE -# define STATUS_CONNECTION_IN_USE ((NTSTATUS) 0xC0000108L) +#define STATUS_CONNECTION_IN_USE ((NTSTATUS)0xC0000108L) #endif #ifndef STATUS_MESSAGE_NOT_FOUND -# define STATUS_MESSAGE_NOT_FOUND ((NTSTATUS) 0xC0000109L) +#define STATUS_MESSAGE_NOT_FOUND ((NTSTATUS)0xC0000109L) #endif #ifndef STATUS_PROCESS_IS_TERMINATING -# define STATUS_PROCESS_IS_TERMINATING ((NTSTATUS) 0xC000010AL) +#define STATUS_PROCESS_IS_TERMINATING ((NTSTATUS)0xC000010AL) #endif #ifndef STATUS_INVALID_LOGON_TYPE -# define STATUS_INVALID_LOGON_TYPE ((NTSTATUS) 0xC000010BL) +#define STATUS_INVALID_LOGON_TYPE ((NTSTATUS)0xC000010BL) #endif #ifndef STATUS_NO_GUID_TRANSLATION -# define STATUS_NO_GUID_TRANSLATION ((NTSTATUS) 0xC000010CL) +#define STATUS_NO_GUID_TRANSLATION ((NTSTATUS)0xC000010CL) #endif #ifndef STATUS_CANNOT_IMPERSONATE -# define STATUS_CANNOT_IMPERSONATE ((NTSTATUS) 0xC000010DL) +#define STATUS_CANNOT_IMPERSONATE ((NTSTATUS)0xC000010DL) #endif #ifndef STATUS_IMAGE_ALREADY_LOADED -# define STATUS_IMAGE_ALREADY_LOADED ((NTSTATUS) 0xC000010EL) +#define STATUS_IMAGE_ALREADY_LOADED ((NTSTATUS)0xC000010EL) #endif #ifndef STATUS_ABIOS_NOT_PRESENT -# define STATUS_ABIOS_NOT_PRESENT ((NTSTATUS) 0xC000010FL) +#define STATUS_ABIOS_NOT_PRESENT ((NTSTATUS)0xC000010FL) #endif #ifndef STATUS_ABIOS_LID_NOT_EXIST -# define STATUS_ABIOS_LID_NOT_EXIST ((NTSTATUS) 0xC0000110L) +#define STATUS_ABIOS_LID_NOT_EXIST ((NTSTATUS)0xC0000110L) #endif #ifndef STATUS_ABIOS_LID_ALREADY_OWNED -# define STATUS_ABIOS_LID_ALREADY_OWNED ((NTSTATUS) 0xC0000111L) +#define STATUS_ABIOS_LID_ALREADY_OWNED ((NTSTATUS)0xC0000111L) #endif #ifndef STATUS_ABIOS_NOT_LID_OWNER -# define STATUS_ABIOS_NOT_LID_OWNER ((NTSTATUS) 0xC0000112L) +#define STATUS_ABIOS_NOT_LID_OWNER ((NTSTATUS)0xC0000112L) #endif #ifndef STATUS_ABIOS_INVALID_COMMAND -# define STATUS_ABIOS_INVALID_COMMAND ((NTSTATUS) 0xC0000113L) +#define STATUS_ABIOS_INVALID_COMMAND ((NTSTATUS)0xC0000113L) #endif #ifndef STATUS_ABIOS_INVALID_LID -# define STATUS_ABIOS_INVALID_LID ((NTSTATUS) 0xC0000114L) +#define STATUS_ABIOS_INVALID_LID ((NTSTATUS)0xC0000114L) #endif #ifndef STATUS_ABIOS_SELECTOR_NOT_AVAILABLE -# define STATUS_ABIOS_SELECTOR_NOT_AVAILABLE ((NTSTATUS) 0xC0000115L) +#define STATUS_ABIOS_SELECTOR_NOT_AVAILABLE ((NTSTATUS)0xC0000115L) #endif #ifndef STATUS_ABIOS_INVALID_SELECTOR -# define STATUS_ABIOS_INVALID_SELECTOR ((NTSTATUS) 0xC0000116L) +#define STATUS_ABIOS_INVALID_SELECTOR ((NTSTATUS)0xC0000116L) #endif #ifndef STATUS_NO_LDT -# define STATUS_NO_LDT ((NTSTATUS) 0xC0000117L) +#define STATUS_NO_LDT ((NTSTATUS)0xC0000117L) #endif #ifndef STATUS_INVALID_LDT_SIZE -# define STATUS_INVALID_LDT_SIZE ((NTSTATUS) 0xC0000118L) +#define STATUS_INVALID_LDT_SIZE ((NTSTATUS)0xC0000118L) #endif #ifndef STATUS_INVALID_LDT_OFFSET -# define STATUS_INVALID_LDT_OFFSET ((NTSTATUS) 0xC0000119L) +#define STATUS_INVALID_LDT_OFFSET ((NTSTATUS)0xC0000119L) #endif #ifndef STATUS_INVALID_LDT_DESCRIPTOR -# define STATUS_INVALID_LDT_DESCRIPTOR ((NTSTATUS) 0xC000011AL) +#define STATUS_INVALID_LDT_DESCRIPTOR ((NTSTATUS)0xC000011AL) #endif #ifndef STATUS_INVALID_IMAGE_NE_FORMAT -# define STATUS_INVALID_IMAGE_NE_FORMAT ((NTSTATUS) 0xC000011BL) +#define STATUS_INVALID_IMAGE_NE_FORMAT ((NTSTATUS)0xC000011BL) #endif #ifndef STATUS_RXACT_INVALID_STATE -# define STATUS_RXACT_INVALID_STATE ((NTSTATUS) 0xC000011CL) +#define STATUS_RXACT_INVALID_STATE ((NTSTATUS)0xC000011CL) #endif #ifndef STATUS_RXACT_COMMIT_FAILURE -# define STATUS_RXACT_COMMIT_FAILURE ((NTSTATUS) 0xC000011DL) +#define STATUS_RXACT_COMMIT_FAILURE ((NTSTATUS)0xC000011DL) #endif #ifndef STATUS_MAPPED_FILE_SIZE_ZERO -# define STATUS_MAPPED_FILE_SIZE_ZERO ((NTSTATUS) 0xC000011EL) +#define STATUS_MAPPED_FILE_SIZE_ZERO ((NTSTATUS)0xC000011EL) #endif #ifndef STATUS_TOO_MANY_OPENED_FILES -# define STATUS_TOO_MANY_OPENED_FILES ((NTSTATUS) 0xC000011FL) +#define STATUS_TOO_MANY_OPENED_FILES ((NTSTATUS)0xC000011FL) #endif #ifndef STATUS_CANCELLED -# define STATUS_CANCELLED ((NTSTATUS) 0xC0000120L) +#define STATUS_CANCELLED ((NTSTATUS)0xC0000120L) #endif #ifndef STATUS_CANNOT_DELETE -# define STATUS_CANNOT_DELETE ((NTSTATUS) 0xC0000121L) +#define STATUS_CANNOT_DELETE ((NTSTATUS)0xC0000121L) #endif #ifndef STATUS_INVALID_COMPUTER_NAME -# define STATUS_INVALID_COMPUTER_NAME ((NTSTATUS) 0xC0000122L) +#define STATUS_INVALID_COMPUTER_NAME ((NTSTATUS)0xC0000122L) #endif #ifndef STATUS_FILE_DELETED -# define STATUS_FILE_DELETED ((NTSTATUS) 0xC0000123L) +#define STATUS_FILE_DELETED ((NTSTATUS)0xC0000123L) #endif #ifndef STATUS_SPECIAL_ACCOUNT -# define STATUS_SPECIAL_ACCOUNT ((NTSTATUS) 0xC0000124L) +#define STATUS_SPECIAL_ACCOUNT ((NTSTATUS)0xC0000124L) #endif #ifndef STATUS_SPECIAL_GROUP -# define STATUS_SPECIAL_GROUP ((NTSTATUS) 0xC0000125L) +#define STATUS_SPECIAL_GROUP ((NTSTATUS)0xC0000125L) #endif #ifndef STATUS_SPECIAL_USER -# define STATUS_SPECIAL_USER ((NTSTATUS) 0xC0000126L) +#define STATUS_SPECIAL_USER ((NTSTATUS)0xC0000126L) #endif #ifndef STATUS_MEMBERS_PRIMARY_GROUP -# define STATUS_MEMBERS_PRIMARY_GROUP ((NTSTATUS) 0xC0000127L) +#define STATUS_MEMBERS_PRIMARY_GROUP ((NTSTATUS)0xC0000127L) #endif #ifndef STATUS_FILE_CLOSED -# define STATUS_FILE_CLOSED ((NTSTATUS) 0xC0000128L) +#define STATUS_FILE_CLOSED ((NTSTATUS)0xC0000128L) #endif #ifndef STATUS_TOO_MANY_THREADS -# define STATUS_TOO_MANY_THREADS ((NTSTATUS) 0xC0000129L) +#define STATUS_TOO_MANY_THREADS ((NTSTATUS)0xC0000129L) #endif #ifndef STATUS_THREAD_NOT_IN_PROCESS -# define STATUS_THREAD_NOT_IN_PROCESS ((NTSTATUS) 0xC000012AL) +#define STATUS_THREAD_NOT_IN_PROCESS ((NTSTATUS)0xC000012AL) #endif #ifndef STATUS_TOKEN_ALREADY_IN_USE -# define STATUS_TOKEN_ALREADY_IN_USE ((NTSTATUS) 0xC000012BL) +#define STATUS_TOKEN_ALREADY_IN_USE ((NTSTATUS)0xC000012BL) #endif #ifndef STATUS_PAGEFILE_QUOTA_EXCEEDED -# define STATUS_PAGEFILE_QUOTA_EXCEEDED ((NTSTATUS) 0xC000012CL) +#define STATUS_PAGEFILE_QUOTA_EXCEEDED ((NTSTATUS)0xC000012CL) #endif #ifndef STATUS_COMMITMENT_LIMIT -# define STATUS_COMMITMENT_LIMIT ((NTSTATUS) 0xC000012DL) +#define STATUS_COMMITMENT_LIMIT ((NTSTATUS)0xC000012DL) #endif #ifndef STATUS_INVALID_IMAGE_LE_FORMAT -# define STATUS_INVALID_IMAGE_LE_FORMAT ((NTSTATUS) 0xC000012EL) +#define STATUS_INVALID_IMAGE_LE_FORMAT ((NTSTATUS)0xC000012EL) #endif #ifndef STATUS_INVALID_IMAGE_NOT_MZ -# define STATUS_INVALID_IMAGE_NOT_MZ ((NTSTATUS) 0xC000012FL) +#define STATUS_INVALID_IMAGE_NOT_MZ ((NTSTATUS)0xC000012FL) #endif #ifndef STATUS_INVALID_IMAGE_PROTECT -# define STATUS_INVALID_IMAGE_PROTECT ((NTSTATUS) 0xC0000130L) +#define STATUS_INVALID_IMAGE_PROTECT ((NTSTATUS)0xC0000130L) #endif #ifndef STATUS_INVALID_IMAGE_WIN_16 -# define STATUS_INVALID_IMAGE_WIN_16 ((NTSTATUS) 0xC0000131L) +#define STATUS_INVALID_IMAGE_WIN_16 ((NTSTATUS)0xC0000131L) #endif #ifndef STATUS_LOGON_SERVER_CONFLICT -# define STATUS_LOGON_SERVER_CONFLICT ((NTSTATUS) 0xC0000132L) +#define STATUS_LOGON_SERVER_CONFLICT ((NTSTATUS)0xC0000132L) #endif #ifndef STATUS_TIME_DIFFERENCE_AT_DC -# define STATUS_TIME_DIFFERENCE_AT_DC ((NTSTATUS) 0xC0000133L) +#define STATUS_TIME_DIFFERENCE_AT_DC ((NTSTATUS)0xC0000133L) #endif #ifndef STATUS_SYNCHRONIZATION_REQUIRED -# define STATUS_SYNCHRONIZATION_REQUIRED ((NTSTATUS) 0xC0000134L) +#define STATUS_SYNCHRONIZATION_REQUIRED ((NTSTATUS)0xC0000134L) #endif #ifndef STATUS_DLL_NOT_FOUND -# define STATUS_DLL_NOT_FOUND ((NTSTATUS) 0xC0000135L) +#define STATUS_DLL_NOT_FOUND ((NTSTATUS)0xC0000135L) #endif #ifndef STATUS_OPEN_FAILED -# define STATUS_OPEN_FAILED ((NTSTATUS) 0xC0000136L) +#define STATUS_OPEN_FAILED ((NTSTATUS)0xC0000136L) #endif #ifndef STATUS_IO_PRIVILEGE_FAILED -# define STATUS_IO_PRIVILEGE_FAILED ((NTSTATUS) 0xC0000137L) +#define STATUS_IO_PRIVILEGE_FAILED ((NTSTATUS)0xC0000137L) #endif #ifndef STATUS_ORDINAL_NOT_FOUND -# define STATUS_ORDINAL_NOT_FOUND ((NTSTATUS) 0xC0000138L) +#define STATUS_ORDINAL_NOT_FOUND ((NTSTATUS)0xC0000138L) #endif #ifndef STATUS_ENTRYPOINT_NOT_FOUND -# define STATUS_ENTRYPOINT_NOT_FOUND ((NTSTATUS) 0xC0000139L) +#define STATUS_ENTRYPOINT_NOT_FOUND ((NTSTATUS)0xC0000139L) #endif #ifndef STATUS_CONTROL_C_EXIT -# define STATUS_CONTROL_C_EXIT ((NTSTATUS) 0xC000013AL) +#define STATUS_CONTROL_C_EXIT ((NTSTATUS)0xC000013AL) #endif #ifndef STATUS_LOCAL_DISCONNECT -# define STATUS_LOCAL_DISCONNECT ((NTSTATUS) 0xC000013BL) +#define STATUS_LOCAL_DISCONNECT ((NTSTATUS)0xC000013BL) #endif #ifndef STATUS_REMOTE_DISCONNECT -# define STATUS_REMOTE_DISCONNECT ((NTSTATUS) 0xC000013CL) +#define STATUS_REMOTE_DISCONNECT ((NTSTATUS)0xC000013CL) #endif #ifndef STATUS_REMOTE_RESOURCES -# define STATUS_REMOTE_RESOURCES ((NTSTATUS) 0xC000013DL) +#define STATUS_REMOTE_RESOURCES ((NTSTATUS)0xC000013DL) #endif #ifndef STATUS_LINK_FAILED -# define STATUS_LINK_FAILED ((NTSTATUS) 0xC000013EL) +#define STATUS_LINK_FAILED ((NTSTATUS)0xC000013EL) #endif #ifndef STATUS_LINK_TIMEOUT -# define STATUS_LINK_TIMEOUT ((NTSTATUS) 0xC000013FL) +#define STATUS_LINK_TIMEOUT ((NTSTATUS)0xC000013FL) #endif #ifndef STATUS_INVALID_CONNECTION -# define STATUS_INVALID_CONNECTION ((NTSTATUS) 0xC0000140L) +#define STATUS_INVALID_CONNECTION ((NTSTATUS)0xC0000140L) #endif #ifndef STATUS_INVALID_ADDRESS -# define STATUS_INVALID_ADDRESS ((NTSTATUS) 0xC0000141L) +#define STATUS_INVALID_ADDRESS ((NTSTATUS)0xC0000141L) #endif #ifndef STATUS_DLL_INIT_FAILED -# define STATUS_DLL_INIT_FAILED ((NTSTATUS) 0xC0000142L) +#define STATUS_DLL_INIT_FAILED ((NTSTATUS)0xC0000142L) #endif #ifndef STATUS_MISSING_SYSTEMFILE -# define STATUS_MISSING_SYSTEMFILE ((NTSTATUS) 0xC0000143L) +#define STATUS_MISSING_SYSTEMFILE ((NTSTATUS)0xC0000143L) #endif #ifndef STATUS_UNHANDLED_EXCEPTION -# define STATUS_UNHANDLED_EXCEPTION ((NTSTATUS) 0xC0000144L) +#define STATUS_UNHANDLED_EXCEPTION ((NTSTATUS)0xC0000144L) #endif #ifndef STATUS_APP_INIT_FAILURE -# define STATUS_APP_INIT_FAILURE ((NTSTATUS) 0xC0000145L) +#define STATUS_APP_INIT_FAILURE ((NTSTATUS)0xC0000145L) #endif #ifndef STATUS_PAGEFILE_CREATE_FAILED -# define STATUS_PAGEFILE_CREATE_FAILED ((NTSTATUS) 0xC0000146L) +#define STATUS_PAGEFILE_CREATE_FAILED ((NTSTATUS)0xC0000146L) #endif #ifndef STATUS_NO_PAGEFILE -# define STATUS_NO_PAGEFILE ((NTSTATUS) 0xC0000147L) +#define STATUS_NO_PAGEFILE ((NTSTATUS)0xC0000147L) #endif #ifndef STATUS_INVALID_LEVEL -# define STATUS_INVALID_LEVEL ((NTSTATUS) 0xC0000148L) +#define STATUS_INVALID_LEVEL ((NTSTATUS)0xC0000148L) #endif #ifndef STATUS_WRONG_PASSWORD_CORE -# define STATUS_WRONG_PASSWORD_CORE ((NTSTATUS) 0xC0000149L) +#define STATUS_WRONG_PASSWORD_CORE ((NTSTATUS)0xC0000149L) #endif #ifndef STATUS_ILLEGAL_FLOAT_CONTEXT -# define STATUS_ILLEGAL_FLOAT_CONTEXT ((NTSTATUS) 0xC000014AL) +#define STATUS_ILLEGAL_FLOAT_CONTEXT ((NTSTATUS)0xC000014AL) #endif #ifndef STATUS_PIPE_BROKEN -# define STATUS_PIPE_BROKEN ((NTSTATUS) 0xC000014BL) +#define STATUS_PIPE_BROKEN ((NTSTATUS)0xC000014BL) #endif #ifndef STATUS_REGISTRY_CORRUPT -# define STATUS_REGISTRY_CORRUPT ((NTSTATUS) 0xC000014CL) +#define STATUS_REGISTRY_CORRUPT ((NTSTATUS)0xC000014CL) #endif #ifndef STATUS_REGISTRY_IO_FAILED -# define STATUS_REGISTRY_IO_FAILED ((NTSTATUS) 0xC000014DL) +#define STATUS_REGISTRY_IO_FAILED ((NTSTATUS)0xC000014DL) #endif #ifndef STATUS_NO_EVENT_PAIR -# define STATUS_NO_EVENT_PAIR ((NTSTATUS) 0xC000014EL) +#define STATUS_NO_EVENT_PAIR ((NTSTATUS)0xC000014EL) #endif #ifndef STATUS_UNRECOGNIZED_VOLUME -# define STATUS_UNRECOGNIZED_VOLUME ((NTSTATUS) 0xC000014FL) +#define STATUS_UNRECOGNIZED_VOLUME ((NTSTATUS)0xC000014FL) #endif #ifndef STATUS_SERIAL_NO_DEVICE_INITED -# define STATUS_SERIAL_NO_DEVICE_INITED ((NTSTATUS) 0xC0000150L) +#define STATUS_SERIAL_NO_DEVICE_INITED ((NTSTATUS)0xC0000150L) #endif #ifndef STATUS_NO_SUCH_ALIAS -# define STATUS_NO_SUCH_ALIAS ((NTSTATUS) 0xC0000151L) +#define STATUS_NO_SUCH_ALIAS ((NTSTATUS)0xC0000151L) #endif #ifndef STATUS_MEMBER_NOT_IN_ALIAS -# define STATUS_MEMBER_NOT_IN_ALIAS ((NTSTATUS) 0xC0000152L) +#define STATUS_MEMBER_NOT_IN_ALIAS ((NTSTATUS)0xC0000152L) #endif #ifndef STATUS_MEMBER_IN_ALIAS -# define STATUS_MEMBER_IN_ALIAS ((NTSTATUS) 0xC0000153L) +#define STATUS_MEMBER_IN_ALIAS ((NTSTATUS)0xC0000153L) #endif #ifndef STATUS_ALIAS_EXISTS -# define STATUS_ALIAS_EXISTS ((NTSTATUS) 0xC0000154L) +#define STATUS_ALIAS_EXISTS ((NTSTATUS)0xC0000154L) #endif #ifndef STATUS_LOGON_NOT_GRANTED -# define STATUS_LOGON_NOT_GRANTED ((NTSTATUS) 0xC0000155L) +#define STATUS_LOGON_NOT_GRANTED ((NTSTATUS)0xC0000155L) #endif #ifndef STATUS_TOO_MANY_SECRETS -# define STATUS_TOO_MANY_SECRETS ((NTSTATUS) 0xC0000156L) +#define STATUS_TOO_MANY_SECRETS ((NTSTATUS)0xC0000156L) #endif #ifndef STATUS_SECRET_TOO_LONG -# define STATUS_SECRET_TOO_LONG ((NTSTATUS) 0xC0000157L) +#define STATUS_SECRET_TOO_LONG ((NTSTATUS)0xC0000157L) #endif #ifndef STATUS_INTERNAL_DB_ERROR -# define STATUS_INTERNAL_DB_ERROR ((NTSTATUS) 0xC0000158L) +#define STATUS_INTERNAL_DB_ERROR ((NTSTATUS)0xC0000158L) #endif #ifndef STATUS_FULLSCREEN_MODE -# define STATUS_FULLSCREEN_MODE ((NTSTATUS) 0xC0000159L) +#define STATUS_FULLSCREEN_MODE ((NTSTATUS)0xC0000159L) #endif #ifndef STATUS_TOO_MANY_CONTEXT_IDS -# define STATUS_TOO_MANY_CONTEXT_IDS ((NTSTATUS) 0xC000015AL) +#define STATUS_TOO_MANY_CONTEXT_IDS ((NTSTATUS)0xC000015AL) #endif #ifndef STATUS_LOGON_TYPE_NOT_GRANTED -# define STATUS_LOGON_TYPE_NOT_GRANTED ((NTSTATUS) 0xC000015BL) +#define STATUS_LOGON_TYPE_NOT_GRANTED ((NTSTATUS)0xC000015BL) #endif #ifndef STATUS_NOT_REGISTRY_FILE -# define STATUS_NOT_REGISTRY_FILE ((NTSTATUS) 0xC000015CL) +#define STATUS_NOT_REGISTRY_FILE ((NTSTATUS)0xC000015CL) #endif #ifndef STATUS_NT_CROSS_ENCRYPTION_REQUIRED -# define STATUS_NT_CROSS_ENCRYPTION_REQUIRED ((NTSTATUS) 0xC000015DL) +#define STATUS_NT_CROSS_ENCRYPTION_REQUIRED ((NTSTATUS)0xC000015DL) #endif #ifndef STATUS_DOMAIN_CTRLR_CONFIG_ERROR -# define STATUS_DOMAIN_CTRLR_CONFIG_ERROR ((NTSTATUS) 0xC000015EL) +#define STATUS_DOMAIN_CTRLR_CONFIG_ERROR ((NTSTATUS)0xC000015EL) #endif #ifndef STATUS_FT_MISSING_MEMBER -# define STATUS_FT_MISSING_MEMBER ((NTSTATUS) 0xC000015FL) +#define STATUS_FT_MISSING_MEMBER ((NTSTATUS)0xC000015FL) #endif #ifndef STATUS_ILL_FORMED_SERVICE_ENTRY -# define STATUS_ILL_FORMED_SERVICE_ENTRY ((NTSTATUS) 0xC0000160L) +#define STATUS_ILL_FORMED_SERVICE_ENTRY ((NTSTATUS)0xC0000160L) #endif #ifndef STATUS_ILLEGAL_CHARACTER -# define STATUS_ILLEGAL_CHARACTER ((NTSTATUS) 0xC0000161L) +#define STATUS_ILLEGAL_CHARACTER ((NTSTATUS)0xC0000161L) #endif #ifndef STATUS_UNMAPPABLE_CHARACTER -# define STATUS_UNMAPPABLE_CHARACTER ((NTSTATUS) 0xC0000162L) +#define STATUS_UNMAPPABLE_CHARACTER ((NTSTATUS)0xC0000162L) #endif #ifndef STATUS_UNDEFINED_CHARACTER -# define STATUS_UNDEFINED_CHARACTER ((NTSTATUS) 0xC0000163L) +#define STATUS_UNDEFINED_CHARACTER ((NTSTATUS)0xC0000163L) #endif #ifndef STATUS_FLOPPY_VOLUME -# define STATUS_FLOPPY_VOLUME ((NTSTATUS) 0xC0000164L) +#define STATUS_FLOPPY_VOLUME ((NTSTATUS)0xC0000164L) #endif #ifndef STATUS_FLOPPY_ID_MARK_NOT_FOUND -# define STATUS_FLOPPY_ID_MARK_NOT_FOUND ((NTSTATUS) 0xC0000165L) +#define STATUS_FLOPPY_ID_MARK_NOT_FOUND ((NTSTATUS)0xC0000165L) #endif #ifndef STATUS_FLOPPY_WRONG_CYLINDER -# define STATUS_FLOPPY_WRONG_CYLINDER ((NTSTATUS) 0xC0000166L) +#define STATUS_FLOPPY_WRONG_CYLINDER ((NTSTATUS)0xC0000166L) #endif #ifndef STATUS_FLOPPY_UNKNOWN_ERROR -# define STATUS_FLOPPY_UNKNOWN_ERROR ((NTSTATUS) 0xC0000167L) +#define STATUS_FLOPPY_UNKNOWN_ERROR ((NTSTATUS)0xC0000167L) #endif #ifndef STATUS_FLOPPY_BAD_REGISTERS -# define STATUS_FLOPPY_BAD_REGISTERS ((NTSTATUS) 0xC0000168L) +#define STATUS_FLOPPY_BAD_REGISTERS ((NTSTATUS)0xC0000168L) #endif #ifndef STATUS_DISK_RECALIBRATE_FAILED -# define STATUS_DISK_RECALIBRATE_FAILED ((NTSTATUS) 0xC0000169L) +#define STATUS_DISK_RECALIBRATE_FAILED ((NTSTATUS)0xC0000169L) #endif #ifndef STATUS_DISK_OPERATION_FAILED -# define STATUS_DISK_OPERATION_FAILED ((NTSTATUS) 0xC000016AL) +#define STATUS_DISK_OPERATION_FAILED ((NTSTATUS)0xC000016AL) #endif #ifndef STATUS_DISK_RESET_FAILED -# define STATUS_DISK_RESET_FAILED ((NTSTATUS) 0xC000016BL) +#define STATUS_DISK_RESET_FAILED ((NTSTATUS)0xC000016BL) #endif #ifndef STATUS_SHARED_IRQ_BUSY -# define STATUS_SHARED_IRQ_BUSY ((NTSTATUS) 0xC000016CL) +#define STATUS_SHARED_IRQ_BUSY ((NTSTATUS)0xC000016CL) #endif #ifndef STATUS_FT_ORPHANING -# define STATUS_FT_ORPHANING ((NTSTATUS) 0xC000016DL) +#define STATUS_FT_ORPHANING ((NTSTATUS)0xC000016DL) #endif #ifndef STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT -# define STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT ((NTSTATUS) 0xC000016EL) +#define STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT ((NTSTATUS)0xC000016EL) #endif #ifndef STATUS_PARTITION_FAILURE -# define STATUS_PARTITION_FAILURE ((NTSTATUS) 0xC0000172L) +#define STATUS_PARTITION_FAILURE ((NTSTATUS)0xC0000172L) #endif #ifndef STATUS_INVALID_BLOCK_LENGTH -# define STATUS_INVALID_BLOCK_LENGTH ((NTSTATUS) 0xC0000173L) +#define STATUS_INVALID_BLOCK_LENGTH ((NTSTATUS)0xC0000173L) #endif #ifndef STATUS_DEVICE_NOT_PARTITIONED -# define STATUS_DEVICE_NOT_PARTITIONED ((NTSTATUS) 0xC0000174L) +#define STATUS_DEVICE_NOT_PARTITIONED ((NTSTATUS)0xC0000174L) #endif #ifndef STATUS_UNABLE_TO_LOCK_MEDIA -# define STATUS_UNABLE_TO_LOCK_MEDIA ((NTSTATUS) 0xC0000175L) +#define STATUS_UNABLE_TO_LOCK_MEDIA ((NTSTATUS)0xC0000175L) #endif #ifndef STATUS_UNABLE_TO_UNLOAD_MEDIA -# define STATUS_UNABLE_TO_UNLOAD_MEDIA ((NTSTATUS) 0xC0000176L) +#define STATUS_UNABLE_TO_UNLOAD_MEDIA ((NTSTATUS)0xC0000176L) #endif #ifndef STATUS_EOM_OVERFLOW -# define STATUS_EOM_OVERFLOW ((NTSTATUS) 0xC0000177L) +#define STATUS_EOM_OVERFLOW ((NTSTATUS)0xC0000177L) #endif #ifndef STATUS_NO_MEDIA -# define STATUS_NO_MEDIA ((NTSTATUS) 0xC0000178L) +#define STATUS_NO_MEDIA ((NTSTATUS)0xC0000178L) #endif #ifndef STATUS_NO_SUCH_MEMBER -# define STATUS_NO_SUCH_MEMBER ((NTSTATUS) 0xC000017AL) +#define STATUS_NO_SUCH_MEMBER ((NTSTATUS)0xC000017AL) #endif #ifndef STATUS_INVALID_MEMBER -# define STATUS_INVALID_MEMBER ((NTSTATUS) 0xC000017BL) +#define STATUS_INVALID_MEMBER ((NTSTATUS)0xC000017BL) #endif #ifndef STATUS_KEY_DELETED -# define STATUS_KEY_DELETED ((NTSTATUS) 0xC000017CL) +#define STATUS_KEY_DELETED ((NTSTATUS)0xC000017CL) #endif #ifndef STATUS_NO_LOG_SPACE -# define STATUS_NO_LOG_SPACE ((NTSTATUS) 0xC000017DL) +#define STATUS_NO_LOG_SPACE ((NTSTATUS)0xC000017DL) #endif #ifndef STATUS_TOO_MANY_SIDS -# define STATUS_TOO_MANY_SIDS ((NTSTATUS) 0xC000017EL) +#define STATUS_TOO_MANY_SIDS ((NTSTATUS)0xC000017EL) #endif #ifndef STATUS_LM_CROSS_ENCRYPTION_REQUIRED -# define STATUS_LM_CROSS_ENCRYPTION_REQUIRED ((NTSTATUS) 0xC000017FL) +#define STATUS_LM_CROSS_ENCRYPTION_REQUIRED ((NTSTATUS)0xC000017FL) #endif #ifndef STATUS_KEY_HAS_CHILDREN -# define STATUS_KEY_HAS_CHILDREN ((NTSTATUS) 0xC0000180L) +#define STATUS_KEY_HAS_CHILDREN ((NTSTATUS)0xC0000180L) #endif #ifndef STATUS_CHILD_MUST_BE_VOLATILE -# define STATUS_CHILD_MUST_BE_VOLATILE ((NTSTATUS) 0xC0000181L) +#define STATUS_CHILD_MUST_BE_VOLATILE ((NTSTATUS)0xC0000181L) #endif #ifndef STATUS_DEVICE_CONFIGURATION_ERROR -# define STATUS_DEVICE_CONFIGURATION_ERROR ((NTSTATUS) 0xC0000182L) +#define STATUS_DEVICE_CONFIGURATION_ERROR ((NTSTATUS)0xC0000182L) #endif #ifndef STATUS_DRIVER_INTERNAL_ERROR -# define STATUS_DRIVER_INTERNAL_ERROR ((NTSTATUS) 0xC0000183L) +#define STATUS_DRIVER_INTERNAL_ERROR ((NTSTATUS)0xC0000183L) #endif #ifndef STATUS_INVALID_DEVICE_STATE -# define STATUS_INVALID_DEVICE_STATE ((NTSTATUS) 0xC0000184L) +#define STATUS_INVALID_DEVICE_STATE ((NTSTATUS)0xC0000184L) #endif #ifndef STATUS_IO_DEVICE_ERROR -# define STATUS_IO_DEVICE_ERROR ((NTSTATUS) 0xC0000185L) +#define STATUS_IO_DEVICE_ERROR ((NTSTATUS)0xC0000185L) #endif #ifndef STATUS_DEVICE_PROTOCOL_ERROR -# define STATUS_DEVICE_PROTOCOL_ERROR ((NTSTATUS) 0xC0000186L) +#define STATUS_DEVICE_PROTOCOL_ERROR ((NTSTATUS)0xC0000186L) #endif #ifndef STATUS_BACKUP_CONTROLLER -# define STATUS_BACKUP_CONTROLLER ((NTSTATUS) 0xC0000187L) +#define STATUS_BACKUP_CONTROLLER ((NTSTATUS)0xC0000187L) #endif #ifndef STATUS_LOG_FILE_FULL -# define STATUS_LOG_FILE_FULL ((NTSTATUS) 0xC0000188L) +#define STATUS_LOG_FILE_FULL ((NTSTATUS)0xC0000188L) #endif #ifndef STATUS_TOO_LATE -# define STATUS_TOO_LATE ((NTSTATUS) 0xC0000189L) +#define STATUS_TOO_LATE ((NTSTATUS)0xC0000189L) #endif #ifndef STATUS_NO_TRUST_LSA_SECRET -# define STATUS_NO_TRUST_LSA_SECRET ((NTSTATUS) 0xC000018AL) +#define STATUS_NO_TRUST_LSA_SECRET ((NTSTATUS)0xC000018AL) #endif #ifndef STATUS_NO_TRUST_SAM_ACCOUNT -# define STATUS_NO_TRUST_SAM_ACCOUNT ((NTSTATUS) 0xC000018BL) +#define STATUS_NO_TRUST_SAM_ACCOUNT ((NTSTATUS)0xC000018BL) #endif #ifndef STATUS_TRUSTED_DOMAIN_FAILURE -# define STATUS_TRUSTED_DOMAIN_FAILURE ((NTSTATUS) 0xC000018CL) +#define STATUS_TRUSTED_DOMAIN_FAILURE ((NTSTATUS)0xC000018CL) #endif #ifndef STATUS_TRUSTED_RELATIONSHIP_FAILURE -# define STATUS_TRUSTED_RELATIONSHIP_FAILURE ((NTSTATUS) 0xC000018DL) +#define STATUS_TRUSTED_RELATIONSHIP_FAILURE ((NTSTATUS)0xC000018DL) #endif #ifndef STATUS_EVENTLOG_FILE_CORRUPT -# define STATUS_EVENTLOG_FILE_CORRUPT ((NTSTATUS) 0xC000018EL) +#define STATUS_EVENTLOG_FILE_CORRUPT ((NTSTATUS)0xC000018EL) #endif #ifndef STATUS_EVENTLOG_CANT_START -# define STATUS_EVENTLOG_CANT_START ((NTSTATUS) 0xC000018FL) +#define STATUS_EVENTLOG_CANT_START ((NTSTATUS)0xC000018FL) #endif #ifndef STATUS_TRUST_FAILURE -# define STATUS_TRUST_FAILURE ((NTSTATUS) 0xC0000190L) +#define STATUS_TRUST_FAILURE ((NTSTATUS)0xC0000190L) #endif #ifndef STATUS_MUTANT_LIMIT_EXCEEDED -# define STATUS_MUTANT_LIMIT_EXCEEDED ((NTSTATUS) 0xC0000191L) +#define STATUS_MUTANT_LIMIT_EXCEEDED ((NTSTATUS)0xC0000191L) #endif #ifndef STATUS_NETLOGON_NOT_STARTED -# define STATUS_NETLOGON_NOT_STARTED ((NTSTATUS) 0xC0000192L) +#define STATUS_NETLOGON_NOT_STARTED ((NTSTATUS)0xC0000192L) #endif #ifndef STATUS_ACCOUNT_EXPIRED -# define STATUS_ACCOUNT_EXPIRED ((NTSTATUS) 0xC0000193L) +#define STATUS_ACCOUNT_EXPIRED ((NTSTATUS)0xC0000193L) #endif #ifndef STATUS_POSSIBLE_DEADLOCK -# define STATUS_POSSIBLE_DEADLOCK ((NTSTATUS) 0xC0000194L) +#define STATUS_POSSIBLE_DEADLOCK ((NTSTATUS)0xC0000194L) #endif #ifndef STATUS_NETWORK_CREDENTIAL_CONFLICT -# define STATUS_NETWORK_CREDENTIAL_CONFLICT ((NTSTATUS) 0xC0000195L) +#define STATUS_NETWORK_CREDENTIAL_CONFLICT ((NTSTATUS)0xC0000195L) #endif #ifndef STATUS_REMOTE_SESSION_LIMIT -# define STATUS_REMOTE_SESSION_LIMIT ((NTSTATUS) 0xC0000196L) +#define STATUS_REMOTE_SESSION_LIMIT ((NTSTATUS)0xC0000196L) #endif #ifndef STATUS_EVENTLOG_FILE_CHANGED -# define STATUS_EVENTLOG_FILE_CHANGED ((NTSTATUS) 0xC0000197L) +#define STATUS_EVENTLOG_FILE_CHANGED ((NTSTATUS)0xC0000197L) #endif #ifndef STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT -# define STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT ((NTSTATUS) 0xC0000198L) +#define STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT ((NTSTATUS)0xC0000198L) #endif #ifndef STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT -# define STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT ((NTSTATUS) 0xC0000199L) +#define STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT ((NTSTATUS)0xC0000199L) #endif #ifndef STATUS_NOLOGON_SERVER_TRUST_ACCOUNT -# define STATUS_NOLOGON_SERVER_TRUST_ACCOUNT ((NTSTATUS) 0xC000019AL) +#define STATUS_NOLOGON_SERVER_TRUST_ACCOUNT ((NTSTATUS)0xC000019AL) #endif #ifndef STATUS_DOMAIN_TRUST_INCONSISTENT -# define STATUS_DOMAIN_TRUST_INCONSISTENT ((NTSTATUS) 0xC000019BL) +#define STATUS_DOMAIN_TRUST_INCONSISTENT ((NTSTATUS)0xC000019BL) #endif #ifndef STATUS_FS_DRIVER_REQUIRED -# define STATUS_FS_DRIVER_REQUIRED ((NTSTATUS) 0xC000019CL) +#define STATUS_FS_DRIVER_REQUIRED ((NTSTATUS)0xC000019CL) #endif #ifndef STATUS_IMAGE_ALREADY_LOADED_AS_DLL -# define STATUS_IMAGE_ALREADY_LOADED_AS_DLL ((NTSTATUS) 0xC000019DL) +#define STATUS_IMAGE_ALREADY_LOADED_AS_DLL ((NTSTATUS)0xC000019DL) #endif #ifndef STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING -# define STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING ((NTSTATUS) 0xC000019EL) +#define STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING \ + ((NTSTATUS)0xC000019EL) #endif #ifndef STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME -# define STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME ((NTSTATUS) 0xC000019FL) +#define STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME ((NTSTATUS)0xC000019FL) #endif #ifndef STATUS_SECURITY_STREAM_IS_INCONSISTENT -# define STATUS_SECURITY_STREAM_IS_INCONSISTENT ((NTSTATUS) 0xC00001A0L) +#define STATUS_SECURITY_STREAM_IS_INCONSISTENT ((NTSTATUS)0xC00001A0L) #endif #ifndef STATUS_INVALID_LOCK_RANGE -# define STATUS_INVALID_LOCK_RANGE ((NTSTATUS) 0xC00001A1L) +#define STATUS_INVALID_LOCK_RANGE ((NTSTATUS)0xC00001A1L) #endif #ifndef STATUS_INVALID_ACE_CONDITION -# define STATUS_INVALID_ACE_CONDITION ((NTSTATUS) 0xC00001A2L) +#define STATUS_INVALID_ACE_CONDITION ((NTSTATUS)0xC00001A2L) #endif #ifndef STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT -# define STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT ((NTSTATUS) 0xC00001A3L) +#define STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT ((NTSTATUS)0xC00001A3L) #endif #ifndef STATUS_NOTIFICATION_GUID_ALREADY_DEFINED -# define STATUS_NOTIFICATION_GUID_ALREADY_DEFINED ((NTSTATUS) 0xC00001A4L) +#define STATUS_NOTIFICATION_GUID_ALREADY_DEFINED ((NTSTATUS)0xC00001A4L) #endif #ifndef STATUS_NETWORK_OPEN_RESTRICTION -# define STATUS_NETWORK_OPEN_RESTRICTION ((NTSTATUS) 0xC0000201L) +#define STATUS_NETWORK_OPEN_RESTRICTION ((NTSTATUS)0xC0000201L) #endif #ifndef STATUS_NO_USER_SESSION_KEY -# define STATUS_NO_USER_SESSION_KEY ((NTSTATUS) 0xC0000202L) +#define STATUS_NO_USER_SESSION_KEY ((NTSTATUS)0xC0000202L) #endif #ifndef STATUS_USER_SESSION_DELETED -# define STATUS_USER_SESSION_DELETED ((NTSTATUS) 0xC0000203L) +#define STATUS_USER_SESSION_DELETED ((NTSTATUS)0xC0000203L) #endif #ifndef STATUS_RESOURCE_LANG_NOT_FOUND -# define STATUS_RESOURCE_LANG_NOT_FOUND ((NTSTATUS) 0xC0000204L) +#define STATUS_RESOURCE_LANG_NOT_FOUND ((NTSTATUS)0xC0000204L) #endif #ifndef STATUS_INSUFF_SERVER_RESOURCES -# define STATUS_INSUFF_SERVER_RESOURCES ((NTSTATUS) 0xC0000205L) +#define STATUS_INSUFF_SERVER_RESOURCES ((NTSTATUS)0xC0000205L) #endif #ifndef STATUS_INVALID_BUFFER_SIZE -# define STATUS_INVALID_BUFFER_SIZE ((NTSTATUS) 0xC0000206L) +#define STATUS_INVALID_BUFFER_SIZE ((NTSTATUS)0xC0000206L) #endif #ifndef STATUS_INVALID_ADDRESS_COMPONENT -# define STATUS_INVALID_ADDRESS_COMPONENT ((NTSTATUS) 0xC0000207L) +#define STATUS_INVALID_ADDRESS_COMPONENT ((NTSTATUS)0xC0000207L) #endif #ifndef STATUS_INVALID_ADDRESS_WILDCARD -# define STATUS_INVALID_ADDRESS_WILDCARD ((NTSTATUS) 0xC0000208L) +#define STATUS_INVALID_ADDRESS_WILDCARD ((NTSTATUS)0xC0000208L) #endif #ifndef STATUS_TOO_MANY_ADDRESSES -# define STATUS_TOO_MANY_ADDRESSES ((NTSTATUS) 0xC0000209L) +#define STATUS_TOO_MANY_ADDRESSES ((NTSTATUS)0xC0000209L) #endif #ifndef STATUS_ADDRESS_ALREADY_EXISTS -# define STATUS_ADDRESS_ALREADY_EXISTS ((NTSTATUS) 0xC000020AL) +#define STATUS_ADDRESS_ALREADY_EXISTS ((NTSTATUS)0xC000020AL) #endif #ifndef STATUS_ADDRESS_CLOSED -# define STATUS_ADDRESS_CLOSED ((NTSTATUS) 0xC000020BL) +#define STATUS_ADDRESS_CLOSED ((NTSTATUS)0xC000020BL) #endif #ifndef STATUS_CONNECTION_DISCONNECTED -# define STATUS_CONNECTION_DISCONNECTED ((NTSTATUS) 0xC000020CL) +#define STATUS_CONNECTION_DISCONNECTED ((NTSTATUS)0xC000020CL) #endif #ifndef STATUS_CONNECTION_RESET -# define STATUS_CONNECTION_RESET ((NTSTATUS) 0xC000020DL) +#define STATUS_CONNECTION_RESET ((NTSTATUS)0xC000020DL) #endif #ifndef STATUS_TOO_MANY_NODES -# define STATUS_TOO_MANY_NODES ((NTSTATUS) 0xC000020EL) +#define STATUS_TOO_MANY_NODES ((NTSTATUS)0xC000020EL) #endif #ifndef STATUS_TRANSACTION_ABORTED -# define STATUS_TRANSACTION_ABORTED ((NTSTATUS) 0xC000020FL) +#define STATUS_TRANSACTION_ABORTED ((NTSTATUS)0xC000020FL) #endif #ifndef STATUS_TRANSACTION_TIMED_OUT -# define STATUS_TRANSACTION_TIMED_OUT ((NTSTATUS) 0xC0000210L) +#define STATUS_TRANSACTION_TIMED_OUT ((NTSTATUS)0xC0000210L) #endif #ifndef STATUS_TRANSACTION_NO_RELEASE -# define STATUS_TRANSACTION_NO_RELEASE ((NTSTATUS) 0xC0000211L) +#define STATUS_TRANSACTION_NO_RELEASE ((NTSTATUS)0xC0000211L) #endif #ifndef STATUS_TRANSACTION_NO_MATCH -# define STATUS_TRANSACTION_NO_MATCH ((NTSTATUS) 0xC0000212L) +#define STATUS_TRANSACTION_NO_MATCH ((NTSTATUS)0xC0000212L) #endif #ifndef STATUS_TRANSACTION_RESPONDED -# define STATUS_TRANSACTION_RESPONDED ((NTSTATUS) 0xC0000213L) +#define STATUS_TRANSACTION_RESPONDED ((NTSTATUS)0xC0000213L) #endif #ifndef STATUS_TRANSACTION_INVALID_ID -# define STATUS_TRANSACTION_INVALID_ID ((NTSTATUS) 0xC0000214L) +#define STATUS_TRANSACTION_INVALID_ID ((NTSTATUS)0xC0000214L) #endif #ifndef STATUS_TRANSACTION_INVALID_TYPE -# define STATUS_TRANSACTION_INVALID_TYPE ((NTSTATUS) 0xC0000215L) +#define STATUS_TRANSACTION_INVALID_TYPE ((NTSTATUS)0xC0000215L) #endif #ifndef STATUS_NOT_SERVER_SESSION -# define STATUS_NOT_SERVER_SESSION ((NTSTATUS) 0xC0000216L) +#define STATUS_NOT_SERVER_SESSION ((NTSTATUS)0xC0000216L) #endif #ifndef STATUS_NOT_CLIENT_SESSION -# define STATUS_NOT_CLIENT_SESSION ((NTSTATUS) 0xC0000217L) +#define STATUS_NOT_CLIENT_SESSION ((NTSTATUS)0xC0000217L) #endif #ifndef STATUS_CANNOT_LOAD_REGISTRY_FILE -# define STATUS_CANNOT_LOAD_REGISTRY_FILE ((NTSTATUS) 0xC0000218L) +#define STATUS_CANNOT_LOAD_REGISTRY_FILE ((NTSTATUS)0xC0000218L) #endif #ifndef STATUS_DEBUG_ATTACH_FAILED -# define STATUS_DEBUG_ATTACH_FAILED ((NTSTATUS) 0xC0000219L) +#define STATUS_DEBUG_ATTACH_FAILED ((NTSTATUS)0xC0000219L) #endif #ifndef STATUS_SYSTEM_PROCESS_TERMINATED -# define STATUS_SYSTEM_PROCESS_TERMINATED ((NTSTATUS) 0xC000021AL) +#define STATUS_SYSTEM_PROCESS_TERMINATED ((NTSTATUS)0xC000021AL) #endif #ifndef STATUS_DATA_NOT_ACCEPTED -# define STATUS_DATA_NOT_ACCEPTED ((NTSTATUS) 0xC000021BL) +#define STATUS_DATA_NOT_ACCEPTED ((NTSTATUS)0xC000021BL) #endif #ifndef STATUS_NO_BROWSER_SERVERS_FOUND -# define STATUS_NO_BROWSER_SERVERS_FOUND ((NTSTATUS) 0xC000021CL) +#define STATUS_NO_BROWSER_SERVERS_FOUND ((NTSTATUS)0xC000021CL) #endif #ifndef STATUS_VDM_HARD_ERROR -# define STATUS_VDM_HARD_ERROR ((NTSTATUS) 0xC000021DL) +#define STATUS_VDM_HARD_ERROR ((NTSTATUS)0xC000021DL) #endif #ifndef STATUS_DRIVER_CANCEL_TIMEOUT -# define STATUS_DRIVER_CANCEL_TIMEOUT ((NTSTATUS) 0xC000021EL) +#define STATUS_DRIVER_CANCEL_TIMEOUT ((NTSTATUS)0xC000021EL) #endif #ifndef STATUS_REPLY_MESSAGE_MISMATCH -# define STATUS_REPLY_MESSAGE_MISMATCH ((NTSTATUS) 0xC000021FL) +#define STATUS_REPLY_MESSAGE_MISMATCH ((NTSTATUS)0xC000021FL) #endif #ifndef STATUS_MAPPED_ALIGNMENT -# define STATUS_MAPPED_ALIGNMENT ((NTSTATUS) 0xC0000220L) +#define STATUS_MAPPED_ALIGNMENT ((NTSTATUS)0xC0000220L) #endif #ifndef STATUS_IMAGE_CHECKSUM_MISMATCH -# define STATUS_IMAGE_CHECKSUM_MISMATCH ((NTSTATUS) 0xC0000221L) +#define STATUS_IMAGE_CHECKSUM_MISMATCH ((NTSTATUS)0xC0000221L) #endif #ifndef STATUS_LOST_WRITEBEHIND_DATA -# define STATUS_LOST_WRITEBEHIND_DATA ((NTSTATUS) 0xC0000222L) +#define STATUS_LOST_WRITEBEHIND_DATA ((NTSTATUS)0xC0000222L) #endif #ifndef STATUS_CLIENT_SERVER_PARAMETERS_INVALID -# define STATUS_CLIENT_SERVER_PARAMETERS_INVALID ((NTSTATUS) 0xC0000223L) +#define STATUS_CLIENT_SERVER_PARAMETERS_INVALID ((NTSTATUS)0xC0000223L) #endif #ifndef STATUS_PASSWORD_MUST_CHANGE -# define STATUS_PASSWORD_MUST_CHANGE ((NTSTATUS) 0xC0000224L) +#define STATUS_PASSWORD_MUST_CHANGE ((NTSTATUS)0xC0000224L) #endif #ifndef STATUS_NOT_FOUND -# define STATUS_NOT_FOUND ((NTSTATUS) 0xC0000225L) +#define STATUS_NOT_FOUND ((NTSTATUS)0xC0000225L) #endif #ifndef STATUS_NOT_TINY_STREAM -# define STATUS_NOT_TINY_STREAM ((NTSTATUS) 0xC0000226L) +#define STATUS_NOT_TINY_STREAM ((NTSTATUS)0xC0000226L) #endif #ifndef STATUS_RECOVERY_FAILURE -# define STATUS_RECOVERY_FAILURE ((NTSTATUS) 0xC0000227L) +#define STATUS_RECOVERY_FAILURE ((NTSTATUS)0xC0000227L) #endif #ifndef STATUS_STACK_OVERFLOW_READ -# define STATUS_STACK_OVERFLOW_READ ((NTSTATUS) 0xC0000228L) +#define STATUS_STACK_OVERFLOW_READ ((NTSTATUS)0xC0000228L) #endif #ifndef STATUS_FAIL_CHECK -# define STATUS_FAIL_CHECK ((NTSTATUS) 0xC0000229L) +#define STATUS_FAIL_CHECK ((NTSTATUS)0xC0000229L) #endif #ifndef STATUS_DUPLICATE_OBJECTID -# define STATUS_DUPLICATE_OBJECTID ((NTSTATUS) 0xC000022AL) +#define STATUS_DUPLICATE_OBJECTID ((NTSTATUS)0xC000022AL) #endif #ifndef STATUS_OBJECTID_EXISTS -# define STATUS_OBJECTID_EXISTS ((NTSTATUS) 0xC000022BL) +#define STATUS_OBJECTID_EXISTS ((NTSTATUS)0xC000022BL) #endif #ifndef STATUS_CONVERT_TO_LARGE -# define STATUS_CONVERT_TO_LARGE ((NTSTATUS) 0xC000022CL) +#define STATUS_CONVERT_TO_LARGE ((NTSTATUS)0xC000022CL) #endif #ifndef STATUS_RETRY -# define STATUS_RETRY ((NTSTATUS) 0xC000022DL) +#define STATUS_RETRY ((NTSTATUS)0xC000022DL) #endif #ifndef STATUS_FOUND_OUT_OF_SCOPE -# define STATUS_FOUND_OUT_OF_SCOPE ((NTSTATUS) 0xC000022EL) +#define STATUS_FOUND_OUT_OF_SCOPE ((NTSTATUS)0xC000022EL) #endif #ifndef STATUS_ALLOCATE_BUCKET -# define STATUS_ALLOCATE_BUCKET ((NTSTATUS) 0xC000022FL) +#define STATUS_ALLOCATE_BUCKET ((NTSTATUS)0xC000022FL) #endif #ifndef STATUS_PROPSET_NOT_FOUND -# define STATUS_PROPSET_NOT_FOUND ((NTSTATUS) 0xC0000230L) +#define STATUS_PROPSET_NOT_FOUND ((NTSTATUS)0xC0000230L) #endif #ifndef STATUS_MARSHALL_OVERFLOW -# define STATUS_MARSHALL_OVERFLOW ((NTSTATUS) 0xC0000231L) +#define STATUS_MARSHALL_OVERFLOW ((NTSTATUS)0xC0000231L) #endif #ifndef STATUS_INVALID_VARIANT -# define STATUS_INVALID_VARIANT ((NTSTATUS) 0xC0000232L) +#define STATUS_INVALID_VARIANT ((NTSTATUS)0xC0000232L) #endif #ifndef STATUS_DOMAIN_CONTROLLER_NOT_FOUND -# define STATUS_DOMAIN_CONTROLLER_NOT_FOUND ((NTSTATUS) 0xC0000233L) +#define STATUS_DOMAIN_CONTROLLER_NOT_FOUND ((NTSTATUS)0xC0000233L) #endif #ifndef STATUS_ACCOUNT_LOCKED_OUT -# define STATUS_ACCOUNT_LOCKED_OUT ((NTSTATUS) 0xC0000234L) +#define STATUS_ACCOUNT_LOCKED_OUT ((NTSTATUS)0xC0000234L) #endif #ifndef STATUS_HANDLE_NOT_CLOSABLE -# define STATUS_HANDLE_NOT_CLOSABLE ((NTSTATUS) 0xC0000235L) +#define STATUS_HANDLE_NOT_CLOSABLE ((NTSTATUS)0xC0000235L) #endif #ifndef STATUS_CONNECTION_REFUSED -# define STATUS_CONNECTION_REFUSED ((NTSTATUS) 0xC0000236L) +#define STATUS_CONNECTION_REFUSED ((NTSTATUS)0xC0000236L) #endif #ifndef STATUS_GRACEFUL_DISCONNECT -# define STATUS_GRACEFUL_DISCONNECT ((NTSTATUS) 0xC0000237L) +#define STATUS_GRACEFUL_DISCONNECT ((NTSTATUS)0xC0000237L) #endif #ifndef STATUS_ADDRESS_ALREADY_ASSOCIATED -# define STATUS_ADDRESS_ALREADY_ASSOCIATED ((NTSTATUS) 0xC0000238L) +#define STATUS_ADDRESS_ALREADY_ASSOCIATED ((NTSTATUS)0xC0000238L) #endif #ifndef STATUS_ADDRESS_NOT_ASSOCIATED -# define STATUS_ADDRESS_NOT_ASSOCIATED ((NTSTATUS) 0xC0000239L) +#define STATUS_ADDRESS_NOT_ASSOCIATED ((NTSTATUS)0xC0000239L) #endif #ifndef STATUS_CONNECTION_INVALID -# define STATUS_CONNECTION_INVALID ((NTSTATUS) 0xC000023AL) +#define STATUS_CONNECTION_INVALID ((NTSTATUS)0xC000023AL) #endif #ifndef STATUS_CONNECTION_ACTIVE -# define STATUS_CONNECTION_ACTIVE ((NTSTATUS) 0xC000023BL) +#define STATUS_CONNECTION_ACTIVE ((NTSTATUS)0xC000023BL) #endif #ifndef STATUS_NETWORK_UNREACHABLE -# define STATUS_NETWORK_UNREACHABLE ((NTSTATUS) 0xC000023CL) +#define STATUS_NETWORK_UNREACHABLE ((NTSTATUS)0xC000023CL) #endif #ifndef STATUS_HOST_UNREACHABLE -# define STATUS_HOST_UNREACHABLE ((NTSTATUS) 0xC000023DL) +#define STATUS_HOST_UNREACHABLE ((NTSTATUS)0xC000023DL) #endif #ifndef STATUS_PROTOCOL_UNREACHABLE -# define STATUS_PROTOCOL_UNREACHABLE ((NTSTATUS) 0xC000023EL) +#define STATUS_PROTOCOL_UNREACHABLE ((NTSTATUS)0xC000023EL) #endif #ifndef STATUS_PORT_UNREACHABLE -# define STATUS_PORT_UNREACHABLE ((NTSTATUS) 0xC000023FL) +#define STATUS_PORT_UNREACHABLE ((NTSTATUS)0xC000023FL) #endif #ifndef STATUS_REQUEST_ABORTED -# define STATUS_REQUEST_ABORTED ((NTSTATUS) 0xC0000240L) +#define STATUS_REQUEST_ABORTED ((NTSTATUS)0xC0000240L) #endif #ifndef STATUS_CONNECTION_ABORTED -# define STATUS_CONNECTION_ABORTED ((NTSTATUS) 0xC0000241L) +#define STATUS_CONNECTION_ABORTED ((NTSTATUS)0xC0000241L) #endif #ifndef STATUS_BAD_COMPRESSION_BUFFER -# define STATUS_BAD_COMPRESSION_BUFFER ((NTSTATUS) 0xC0000242L) +#define STATUS_BAD_COMPRESSION_BUFFER ((NTSTATUS)0xC0000242L) #endif #ifndef STATUS_USER_MAPPED_FILE -# define STATUS_USER_MAPPED_FILE ((NTSTATUS) 0xC0000243L) +#define STATUS_USER_MAPPED_FILE ((NTSTATUS)0xC0000243L) #endif #ifndef STATUS_AUDIT_FAILED -# define STATUS_AUDIT_FAILED ((NTSTATUS) 0xC0000244L) +#define STATUS_AUDIT_FAILED ((NTSTATUS)0xC0000244L) #endif #ifndef STATUS_TIMER_RESOLUTION_NOT_SET -# define STATUS_TIMER_RESOLUTION_NOT_SET ((NTSTATUS) 0xC0000245L) +#define STATUS_TIMER_RESOLUTION_NOT_SET ((NTSTATUS)0xC0000245L) #endif #ifndef STATUS_CONNECTION_COUNT_LIMIT -# define STATUS_CONNECTION_COUNT_LIMIT ((NTSTATUS) 0xC0000246L) +#define STATUS_CONNECTION_COUNT_LIMIT ((NTSTATUS)0xC0000246L) #endif #ifndef STATUS_LOGIN_TIME_RESTRICTION -# define STATUS_LOGIN_TIME_RESTRICTION ((NTSTATUS) 0xC0000247L) +#define STATUS_LOGIN_TIME_RESTRICTION ((NTSTATUS)0xC0000247L) #endif #ifndef STATUS_LOGIN_WKSTA_RESTRICTION -# define STATUS_LOGIN_WKSTA_RESTRICTION ((NTSTATUS) 0xC0000248L) +#define STATUS_LOGIN_WKSTA_RESTRICTION ((NTSTATUS)0xC0000248L) #endif #ifndef STATUS_IMAGE_MP_UP_MISMATCH -# define STATUS_IMAGE_MP_UP_MISMATCH ((NTSTATUS) 0xC0000249L) +#define STATUS_IMAGE_MP_UP_MISMATCH ((NTSTATUS)0xC0000249L) #endif #ifndef STATUS_INSUFFICIENT_LOGON_INFO -# define STATUS_INSUFFICIENT_LOGON_INFO ((NTSTATUS) 0xC0000250L) +#define STATUS_INSUFFICIENT_LOGON_INFO ((NTSTATUS)0xC0000250L) #endif #ifndef STATUS_BAD_DLL_ENTRYPOINT -# define STATUS_BAD_DLL_ENTRYPOINT ((NTSTATUS) 0xC0000251L) +#define STATUS_BAD_DLL_ENTRYPOINT ((NTSTATUS)0xC0000251L) #endif #ifndef STATUS_BAD_SERVICE_ENTRYPOINT -# define STATUS_BAD_SERVICE_ENTRYPOINT ((NTSTATUS) 0xC0000252L) +#define STATUS_BAD_SERVICE_ENTRYPOINT ((NTSTATUS)0xC0000252L) #endif #ifndef STATUS_LPC_REPLY_LOST -# define STATUS_LPC_REPLY_LOST ((NTSTATUS) 0xC0000253L) +#define STATUS_LPC_REPLY_LOST ((NTSTATUS)0xC0000253L) #endif #ifndef STATUS_IP_ADDRESS_CONFLICT1 -# define STATUS_IP_ADDRESS_CONFLICT1 ((NTSTATUS) 0xC0000254L) +#define STATUS_IP_ADDRESS_CONFLICT1 ((NTSTATUS)0xC0000254L) #endif #ifndef STATUS_IP_ADDRESS_CONFLICT2 -# define STATUS_IP_ADDRESS_CONFLICT2 ((NTSTATUS) 0xC0000255L) +#define STATUS_IP_ADDRESS_CONFLICT2 ((NTSTATUS)0xC0000255L) #endif #ifndef STATUS_REGISTRY_QUOTA_LIMIT -# define STATUS_REGISTRY_QUOTA_LIMIT ((NTSTATUS) 0xC0000256L) +#define STATUS_REGISTRY_QUOTA_LIMIT ((NTSTATUS)0xC0000256L) #endif #ifndef STATUS_PATH_NOT_COVERED -# define STATUS_PATH_NOT_COVERED ((NTSTATUS) 0xC0000257L) +#define STATUS_PATH_NOT_COVERED ((NTSTATUS)0xC0000257L) #endif #ifndef STATUS_NO_CALLBACK_ACTIVE -# define STATUS_NO_CALLBACK_ACTIVE ((NTSTATUS) 0xC0000258L) +#define STATUS_NO_CALLBACK_ACTIVE ((NTSTATUS)0xC0000258L) #endif #ifndef STATUS_LICENSE_QUOTA_EXCEEDED -# define STATUS_LICENSE_QUOTA_EXCEEDED ((NTSTATUS) 0xC0000259L) +#define STATUS_LICENSE_QUOTA_EXCEEDED ((NTSTATUS)0xC0000259L) #endif #ifndef STATUS_PWD_TOO_SHORT -# define STATUS_PWD_TOO_SHORT ((NTSTATUS) 0xC000025AL) +#define STATUS_PWD_TOO_SHORT ((NTSTATUS)0xC000025AL) #endif #ifndef STATUS_PWD_TOO_RECENT -# define STATUS_PWD_TOO_RECENT ((NTSTATUS) 0xC000025BL) +#define STATUS_PWD_TOO_RECENT ((NTSTATUS)0xC000025BL) #endif #ifndef STATUS_PWD_HISTORY_CONFLICT -# define STATUS_PWD_HISTORY_CONFLICT ((NTSTATUS) 0xC000025CL) +#define STATUS_PWD_HISTORY_CONFLICT ((NTSTATUS)0xC000025CL) #endif #ifndef STATUS_PLUGPLAY_NO_DEVICE -# define STATUS_PLUGPLAY_NO_DEVICE ((NTSTATUS) 0xC000025EL) +#define STATUS_PLUGPLAY_NO_DEVICE ((NTSTATUS)0xC000025EL) #endif #ifndef STATUS_UNSUPPORTED_COMPRESSION -# define STATUS_UNSUPPORTED_COMPRESSION ((NTSTATUS) 0xC000025FL) +#define STATUS_UNSUPPORTED_COMPRESSION ((NTSTATUS)0xC000025FL) #endif #ifndef STATUS_INVALID_HW_PROFILE -# define STATUS_INVALID_HW_PROFILE ((NTSTATUS) 0xC0000260L) +#define STATUS_INVALID_HW_PROFILE ((NTSTATUS)0xC0000260L) #endif #ifndef STATUS_INVALID_PLUGPLAY_DEVICE_PATH -# define STATUS_INVALID_PLUGPLAY_DEVICE_PATH ((NTSTATUS) 0xC0000261L) +#define STATUS_INVALID_PLUGPLAY_DEVICE_PATH ((NTSTATUS)0xC0000261L) #endif #ifndef STATUS_DRIVER_ORDINAL_NOT_FOUND -# define STATUS_DRIVER_ORDINAL_NOT_FOUND ((NTSTATUS) 0xC0000262L) +#define STATUS_DRIVER_ORDINAL_NOT_FOUND ((NTSTATUS)0xC0000262L) #endif #ifndef STATUS_DRIVER_ENTRYPOINT_NOT_FOUND -# define STATUS_DRIVER_ENTRYPOINT_NOT_FOUND ((NTSTATUS) 0xC0000263L) +#define STATUS_DRIVER_ENTRYPOINT_NOT_FOUND ((NTSTATUS)0xC0000263L) #endif #ifndef STATUS_RESOURCE_NOT_OWNED -# define STATUS_RESOURCE_NOT_OWNED ((NTSTATUS) 0xC0000264L) +#define STATUS_RESOURCE_NOT_OWNED ((NTSTATUS)0xC0000264L) #endif #ifndef STATUS_TOO_MANY_LINKS -# define STATUS_TOO_MANY_LINKS ((NTSTATUS) 0xC0000265L) +#define STATUS_TOO_MANY_LINKS ((NTSTATUS)0xC0000265L) #endif #ifndef STATUS_QUOTA_LIST_INCONSISTENT -# define STATUS_QUOTA_LIST_INCONSISTENT ((NTSTATUS) 0xC0000266L) +#define STATUS_QUOTA_LIST_INCONSISTENT ((NTSTATUS)0xC0000266L) #endif #ifndef STATUS_FILE_IS_OFFLINE -# define STATUS_FILE_IS_OFFLINE ((NTSTATUS) 0xC0000267L) +#define STATUS_FILE_IS_OFFLINE ((NTSTATUS)0xC0000267L) #endif #ifndef STATUS_EVALUATION_EXPIRATION -# define STATUS_EVALUATION_EXPIRATION ((NTSTATUS) 0xC0000268L) +#define STATUS_EVALUATION_EXPIRATION ((NTSTATUS)0xC0000268L) #endif #ifndef STATUS_ILLEGAL_DLL_RELOCATION -# define STATUS_ILLEGAL_DLL_RELOCATION ((NTSTATUS) 0xC0000269L) +#define STATUS_ILLEGAL_DLL_RELOCATION ((NTSTATUS)0xC0000269L) #endif #ifndef STATUS_LICENSE_VIOLATION -# define STATUS_LICENSE_VIOLATION ((NTSTATUS) 0xC000026AL) +#define STATUS_LICENSE_VIOLATION ((NTSTATUS)0xC000026AL) #endif #ifndef STATUS_DLL_INIT_FAILED_LOGOFF -# define STATUS_DLL_INIT_FAILED_LOGOFF ((NTSTATUS) 0xC000026BL) +#define STATUS_DLL_INIT_FAILED_LOGOFF ((NTSTATUS)0xC000026BL) #endif #ifndef STATUS_DRIVER_UNABLE_TO_LOAD -# define STATUS_DRIVER_UNABLE_TO_LOAD ((NTSTATUS) 0xC000026CL) +#define STATUS_DRIVER_UNABLE_TO_LOAD ((NTSTATUS)0xC000026CL) #endif #ifndef STATUS_DFS_UNAVAILABLE -# define STATUS_DFS_UNAVAILABLE ((NTSTATUS) 0xC000026DL) +#define STATUS_DFS_UNAVAILABLE ((NTSTATUS)0xC000026DL) #endif #ifndef STATUS_VOLUME_DISMOUNTED -# define STATUS_VOLUME_DISMOUNTED ((NTSTATUS) 0xC000026EL) +#define STATUS_VOLUME_DISMOUNTED ((NTSTATUS)0xC000026EL) #endif #ifndef STATUS_WX86_INTERNAL_ERROR -# define STATUS_WX86_INTERNAL_ERROR ((NTSTATUS) 0xC000026FL) +#define STATUS_WX86_INTERNAL_ERROR ((NTSTATUS)0xC000026FL) #endif #ifndef STATUS_WX86_FLOAT_STACK_CHECK -# define STATUS_WX86_FLOAT_STACK_CHECK ((NTSTATUS) 0xC0000270L) +#define STATUS_WX86_FLOAT_STACK_CHECK ((NTSTATUS)0xC0000270L) #endif #ifndef STATUS_VALIDATE_CONTINUE -# define STATUS_VALIDATE_CONTINUE ((NTSTATUS) 0xC0000271L) +#define STATUS_VALIDATE_CONTINUE ((NTSTATUS)0xC0000271L) #endif #ifndef STATUS_NO_MATCH -# define STATUS_NO_MATCH ((NTSTATUS) 0xC0000272L) +#define STATUS_NO_MATCH ((NTSTATUS)0xC0000272L) #endif #ifndef STATUS_NO_MORE_MATCHES -# define STATUS_NO_MORE_MATCHES ((NTSTATUS) 0xC0000273L) +#define STATUS_NO_MORE_MATCHES ((NTSTATUS)0xC0000273L) #endif #ifndef STATUS_NOT_A_REPARSE_POINT -# define STATUS_NOT_A_REPARSE_POINT ((NTSTATUS) 0xC0000275L) +#define STATUS_NOT_A_REPARSE_POINT ((NTSTATUS)0xC0000275L) #endif #ifndef STATUS_IO_REPARSE_TAG_INVALID -# define STATUS_IO_REPARSE_TAG_INVALID ((NTSTATUS) 0xC0000276L) +#define STATUS_IO_REPARSE_TAG_INVALID ((NTSTATUS)0xC0000276L) #endif #ifndef STATUS_IO_REPARSE_TAG_MISMATCH -# define STATUS_IO_REPARSE_TAG_MISMATCH ((NTSTATUS) 0xC0000277L) +#define STATUS_IO_REPARSE_TAG_MISMATCH ((NTSTATUS)0xC0000277L) #endif #ifndef STATUS_IO_REPARSE_DATA_INVALID -# define STATUS_IO_REPARSE_DATA_INVALID ((NTSTATUS) 0xC0000278L) +#define STATUS_IO_REPARSE_DATA_INVALID ((NTSTATUS)0xC0000278L) #endif #ifndef STATUS_IO_REPARSE_TAG_NOT_HANDLED -# define STATUS_IO_REPARSE_TAG_NOT_HANDLED ((NTSTATUS) 0xC0000279L) +#define STATUS_IO_REPARSE_TAG_NOT_HANDLED ((NTSTATUS)0xC0000279L) #endif #ifndef STATUS_REPARSE_POINT_NOT_RESOLVED -# define STATUS_REPARSE_POINT_NOT_RESOLVED ((NTSTATUS) 0xC0000280L) +#define STATUS_REPARSE_POINT_NOT_RESOLVED ((NTSTATUS)0xC0000280L) #endif #ifndef STATUS_DIRECTORY_IS_A_REPARSE_POINT -# define STATUS_DIRECTORY_IS_A_REPARSE_POINT ((NTSTATUS) 0xC0000281L) +#define STATUS_DIRECTORY_IS_A_REPARSE_POINT ((NTSTATUS)0xC0000281L) #endif #ifndef STATUS_RANGE_LIST_CONFLICT -# define STATUS_RANGE_LIST_CONFLICT ((NTSTATUS) 0xC0000282L) +#define STATUS_RANGE_LIST_CONFLICT ((NTSTATUS)0xC0000282L) #endif #ifndef STATUS_SOURCE_ELEMENT_EMPTY -# define STATUS_SOURCE_ELEMENT_EMPTY ((NTSTATUS) 0xC0000283L) +#define STATUS_SOURCE_ELEMENT_EMPTY ((NTSTATUS)0xC0000283L) #endif #ifndef STATUS_DESTINATION_ELEMENT_FULL -# define STATUS_DESTINATION_ELEMENT_FULL ((NTSTATUS) 0xC0000284L) +#define STATUS_DESTINATION_ELEMENT_FULL ((NTSTATUS)0xC0000284L) #endif #ifndef STATUS_ILLEGAL_ELEMENT_ADDRESS -# define STATUS_ILLEGAL_ELEMENT_ADDRESS ((NTSTATUS) 0xC0000285L) +#define STATUS_ILLEGAL_ELEMENT_ADDRESS ((NTSTATUS)0xC0000285L) #endif #ifndef STATUS_MAGAZINE_NOT_PRESENT -# define STATUS_MAGAZINE_NOT_PRESENT ((NTSTATUS) 0xC0000286L) +#define STATUS_MAGAZINE_NOT_PRESENT ((NTSTATUS)0xC0000286L) #endif #ifndef STATUS_REINITIALIZATION_NEEDED -# define STATUS_REINITIALIZATION_NEEDED ((NTSTATUS) 0xC0000287L) +#define STATUS_REINITIALIZATION_NEEDED ((NTSTATUS)0xC0000287L) #endif #ifndef STATUS_DEVICE_REQUIRES_CLEANING -# define STATUS_DEVICE_REQUIRES_CLEANING ((NTSTATUS) 0x80000288L) +#define STATUS_DEVICE_REQUIRES_CLEANING ((NTSTATUS)0x80000288L) #endif #ifndef STATUS_DEVICE_DOOR_OPEN -# define STATUS_DEVICE_DOOR_OPEN ((NTSTATUS) 0x80000289L) +#define STATUS_DEVICE_DOOR_OPEN ((NTSTATUS)0x80000289L) #endif #ifndef STATUS_ENCRYPTION_FAILED -# define STATUS_ENCRYPTION_FAILED ((NTSTATUS) 0xC000028AL) +#define STATUS_ENCRYPTION_FAILED ((NTSTATUS)0xC000028AL) #endif #ifndef STATUS_DECRYPTION_FAILED -# define STATUS_DECRYPTION_FAILED ((NTSTATUS) 0xC000028BL) +#define STATUS_DECRYPTION_FAILED ((NTSTATUS)0xC000028BL) #endif #ifndef STATUS_RANGE_NOT_FOUND -# define STATUS_RANGE_NOT_FOUND ((NTSTATUS) 0xC000028CL) +#define STATUS_RANGE_NOT_FOUND ((NTSTATUS)0xC000028CL) #endif #ifndef STATUS_NO_RECOVERY_POLICY -# define STATUS_NO_RECOVERY_POLICY ((NTSTATUS) 0xC000028DL) +#define STATUS_NO_RECOVERY_POLICY ((NTSTATUS)0xC000028DL) #endif #ifndef STATUS_NO_EFS -# define STATUS_NO_EFS ((NTSTATUS) 0xC000028EL) +#define STATUS_NO_EFS ((NTSTATUS)0xC000028EL) #endif #ifndef STATUS_WRONG_EFS -# define STATUS_WRONG_EFS ((NTSTATUS) 0xC000028FL) +#define STATUS_WRONG_EFS ((NTSTATUS)0xC000028FL) #endif #ifndef STATUS_NO_USER_KEYS -# define STATUS_NO_USER_KEYS ((NTSTATUS) 0xC0000290L) +#define STATUS_NO_USER_KEYS ((NTSTATUS)0xC0000290L) #endif #ifndef STATUS_FILE_NOT_ENCRYPTED -# define STATUS_FILE_NOT_ENCRYPTED ((NTSTATUS) 0xC0000291L) +#define STATUS_FILE_NOT_ENCRYPTED ((NTSTATUS)0xC0000291L) #endif #ifndef STATUS_NOT_EXPORT_FORMAT -# define STATUS_NOT_EXPORT_FORMAT ((NTSTATUS) 0xC0000292L) +#define STATUS_NOT_EXPORT_FORMAT ((NTSTATUS)0xC0000292L) #endif #ifndef STATUS_FILE_ENCRYPTED -# define STATUS_FILE_ENCRYPTED ((NTSTATUS) 0xC0000293L) +#define STATUS_FILE_ENCRYPTED ((NTSTATUS)0xC0000293L) #endif #ifndef STATUS_WAKE_SYSTEM -# define STATUS_WAKE_SYSTEM ((NTSTATUS) 0x40000294L) +#define STATUS_WAKE_SYSTEM ((NTSTATUS)0x40000294L) #endif #ifndef STATUS_WMI_GUID_NOT_FOUND -# define STATUS_WMI_GUID_NOT_FOUND ((NTSTATUS) 0xC0000295L) +#define STATUS_WMI_GUID_NOT_FOUND ((NTSTATUS)0xC0000295L) #endif #ifndef STATUS_WMI_INSTANCE_NOT_FOUND -# define STATUS_WMI_INSTANCE_NOT_FOUND ((NTSTATUS) 0xC0000296L) +#define STATUS_WMI_INSTANCE_NOT_FOUND ((NTSTATUS)0xC0000296L) #endif #ifndef STATUS_WMI_ITEMID_NOT_FOUND -# define STATUS_WMI_ITEMID_NOT_FOUND ((NTSTATUS) 0xC0000297L) +#define STATUS_WMI_ITEMID_NOT_FOUND ((NTSTATUS)0xC0000297L) #endif #ifndef STATUS_WMI_TRY_AGAIN -# define STATUS_WMI_TRY_AGAIN ((NTSTATUS) 0xC0000298L) +#define STATUS_WMI_TRY_AGAIN ((NTSTATUS)0xC0000298L) #endif #ifndef STATUS_SHARED_POLICY -# define STATUS_SHARED_POLICY ((NTSTATUS) 0xC0000299L) +#define STATUS_SHARED_POLICY ((NTSTATUS)0xC0000299L) #endif #ifndef STATUS_POLICY_OBJECT_NOT_FOUND -# define STATUS_POLICY_OBJECT_NOT_FOUND ((NTSTATUS) 0xC000029AL) +#define STATUS_POLICY_OBJECT_NOT_FOUND ((NTSTATUS)0xC000029AL) #endif #ifndef STATUS_POLICY_ONLY_IN_DS -# define STATUS_POLICY_ONLY_IN_DS ((NTSTATUS) 0xC000029BL) +#define STATUS_POLICY_ONLY_IN_DS ((NTSTATUS)0xC000029BL) #endif #ifndef STATUS_VOLUME_NOT_UPGRADED -# define STATUS_VOLUME_NOT_UPGRADED ((NTSTATUS) 0xC000029CL) +#define STATUS_VOLUME_NOT_UPGRADED ((NTSTATUS)0xC000029CL) #endif #ifndef STATUS_REMOTE_STORAGE_NOT_ACTIVE -# define STATUS_REMOTE_STORAGE_NOT_ACTIVE ((NTSTATUS) 0xC000029DL) +#define STATUS_REMOTE_STORAGE_NOT_ACTIVE ((NTSTATUS)0xC000029DL) #endif #ifndef STATUS_REMOTE_STORAGE_MEDIA_ERROR -# define STATUS_REMOTE_STORAGE_MEDIA_ERROR ((NTSTATUS) 0xC000029EL) +#define STATUS_REMOTE_STORAGE_MEDIA_ERROR ((NTSTATUS)0xC000029EL) #endif #ifndef STATUS_NO_TRACKING_SERVICE -# define STATUS_NO_TRACKING_SERVICE ((NTSTATUS) 0xC000029FL) +#define STATUS_NO_TRACKING_SERVICE ((NTSTATUS)0xC000029FL) #endif #ifndef STATUS_SERVER_SID_MISMATCH -# define STATUS_SERVER_SID_MISMATCH ((NTSTATUS) 0xC00002A0L) +#define STATUS_SERVER_SID_MISMATCH ((NTSTATUS)0xC00002A0L) #endif #ifndef STATUS_DS_NO_ATTRIBUTE_OR_VALUE -# define STATUS_DS_NO_ATTRIBUTE_OR_VALUE ((NTSTATUS) 0xC00002A1L) +#define STATUS_DS_NO_ATTRIBUTE_OR_VALUE ((NTSTATUS)0xC00002A1L) #endif #ifndef STATUS_DS_INVALID_ATTRIBUTE_SYNTAX -# define STATUS_DS_INVALID_ATTRIBUTE_SYNTAX ((NTSTATUS) 0xC00002A2L) +#define STATUS_DS_INVALID_ATTRIBUTE_SYNTAX ((NTSTATUS)0xC00002A2L) #endif #ifndef STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED -# define STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED ((NTSTATUS) 0xC00002A3L) +#define STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED ((NTSTATUS)0xC00002A3L) #endif #ifndef STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS -# define STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS ((NTSTATUS) 0xC00002A4L) +#define STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS ((NTSTATUS)0xC00002A4L) #endif #ifndef STATUS_DS_BUSY -# define STATUS_DS_BUSY ((NTSTATUS) 0xC00002A5L) +#define STATUS_DS_BUSY ((NTSTATUS)0xC00002A5L) #endif #ifndef STATUS_DS_UNAVAILABLE -# define STATUS_DS_UNAVAILABLE ((NTSTATUS) 0xC00002A6L) +#define STATUS_DS_UNAVAILABLE ((NTSTATUS)0xC00002A6L) #endif #ifndef STATUS_DS_NO_RIDS_ALLOCATED -# define STATUS_DS_NO_RIDS_ALLOCATED ((NTSTATUS) 0xC00002A7L) +#define STATUS_DS_NO_RIDS_ALLOCATED ((NTSTATUS)0xC00002A7L) #endif #ifndef STATUS_DS_NO_MORE_RIDS -# define STATUS_DS_NO_MORE_RIDS ((NTSTATUS) 0xC00002A8L) +#define STATUS_DS_NO_MORE_RIDS ((NTSTATUS)0xC00002A8L) #endif #ifndef STATUS_DS_INCORRECT_ROLE_OWNER -# define STATUS_DS_INCORRECT_ROLE_OWNER ((NTSTATUS) 0xC00002A9L) +#define STATUS_DS_INCORRECT_ROLE_OWNER ((NTSTATUS)0xC00002A9L) #endif #ifndef STATUS_DS_RIDMGR_INIT_ERROR -# define STATUS_DS_RIDMGR_INIT_ERROR ((NTSTATUS) 0xC00002AAL) +#define STATUS_DS_RIDMGR_INIT_ERROR ((NTSTATUS)0xC00002AAL) #endif #ifndef STATUS_DS_OBJ_CLASS_VIOLATION -# define STATUS_DS_OBJ_CLASS_VIOLATION ((NTSTATUS) 0xC00002ABL) +#define STATUS_DS_OBJ_CLASS_VIOLATION ((NTSTATUS)0xC00002ABL) #endif #ifndef STATUS_DS_CANT_ON_NON_LEAF -# define STATUS_DS_CANT_ON_NON_LEAF ((NTSTATUS) 0xC00002ACL) +#define STATUS_DS_CANT_ON_NON_LEAF ((NTSTATUS)0xC00002ACL) #endif #ifndef STATUS_DS_CANT_ON_RDN -# define STATUS_DS_CANT_ON_RDN ((NTSTATUS) 0xC00002ADL) +#define STATUS_DS_CANT_ON_RDN ((NTSTATUS)0xC00002ADL) #endif #ifndef STATUS_DS_CANT_MOD_OBJ_CLASS -# define STATUS_DS_CANT_MOD_OBJ_CLASS ((NTSTATUS) 0xC00002AEL) +#define STATUS_DS_CANT_MOD_OBJ_CLASS ((NTSTATUS)0xC00002AEL) #endif #ifndef STATUS_DS_CROSS_DOM_MOVE_FAILED -# define STATUS_DS_CROSS_DOM_MOVE_FAILED ((NTSTATUS) 0xC00002AFL) +#define STATUS_DS_CROSS_DOM_MOVE_FAILED ((NTSTATUS)0xC00002AFL) #endif #ifndef STATUS_DS_GC_NOT_AVAILABLE -# define STATUS_DS_GC_NOT_AVAILABLE ((NTSTATUS) 0xC00002B0L) +#define STATUS_DS_GC_NOT_AVAILABLE ((NTSTATUS)0xC00002B0L) #endif #ifndef STATUS_DIRECTORY_SERVICE_REQUIRED -# define STATUS_DIRECTORY_SERVICE_REQUIRED ((NTSTATUS) 0xC00002B1L) +#define STATUS_DIRECTORY_SERVICE_REQUIRED ((NTSTATUS)0xC00002B1L) #endif #ifndef STATUS_REPARSE_ATTRIBUTE_CONFLICT -# define STATUS_REPARSE_ATTRIBUTE_CONFLICT ((NTSTATUS) 0xC00002B2L) +#define STATUS_REPARSE_ATTRIBUTE_CONFLICT ((NTSTATUS)0xC00002B2L) #endif #ifndef STATUS_CANT_ENABLE_DENY_ONLY -# define STATUS_CANT_ENABLE_DENY_ONLY ((NTSTATUS) 0xC00002B3L) +#define STATUS_CANT_ENABLE_DENY_ONLY ((NTSTATUS)0xC00002B3L) #endif #ifndef STATUS_FLOAT_MULTIPLE_FAULTS -# define STATUS_FLOAT_MULTIPLE_FAULTS ((NTSTATUS) 0xC00002B4L) +#define STATUS_FLOAT_MULTIPLE_FAULTS ((NTSTATUS)0xC00002B4L) #endif #ifndef STATUS_FLOAT_MULTIPLE_TRAPS -# define STATUS_FLOAT_MULTIPLE_TRAPS ((NTSTATUS) 0xC00002B5L) +#define STATUS_FLOAT_MULTIPLE_TRAPS ((NTSTATUS)0xC00002B5L) #endif #ifndef STATUS_DEVICE_REMOVED -# define STATUS_DEVICE_REMOVED ((NTSTATUS) 0xC00002B6L) +#define STATUS_DEVICE_REMOVED ((NTSTATUS)0xC00002B6L) #endif #ifndef STATUS_JOURNAL_DELETE_IN_PROGRESS -# define STATUS_JOURNAL_DELETE_IN_PROGRESS ((NTSTATUS) 0xC00002B7L) +#define STATUS_JOURNAL_DELETE_IN_PROGRESS ((NTSTATUS)0xC00002B7L) #endif #ifndef STATUS_JOURNAL_NOT_ACTIVE -# define STATUS_JOURNAL_NOT_ACTIVE ((NTSTATUS) 0xC00002B8L) +#define STATUS_JOURNAL_NOT_ACTIVE ((NTSTATUS)0xC00002B8L) #endif #ifndef STATUS_NOINTERFACE -# define STATUS_NOINTERFACE ((NTSTATUS) 0xC00002B9L) +#define STATUS_NOINTERFACE ((NTSTATUS)0xC00002B9L) #endif #ifndef STATUS_DS_ADMIN_LIMIT_EXCEEDED -# define STATUS_DS_ADMIN_LIMIT_EXCEEDED ((NTSTATUS) 0xC00002C1L) +#define STATUS_DS_ADMIN_LIMIT_EXCEEDED ((NTSTATUS)0xC00002C1L) #endif #ifndef STATUS_DRIVER_FAILED_SLEEP -# define STATUS_DRIVER_FAILED_SLEEP ((NTSTATUS) 0xC00002C2L) +#define STATUS_DRIVER_FAILED_SLEEP ((NTSTATUS)0xC00002C2L) #endif #ifndef STATUS_MUTUAL_AUTHENTICATION_FAILED -# define STATUS_MUTUAL_AUTHENTICATION_FAILED ((NTSTATUS) 0xC00002C3L) +#define STATUS_MUTUAL_AUTHENTICATION_FAILED ((NTSTATUS)0xC00002C3L) #endif #ifndef STATUS_CORRUPT_SYSTEM_FILE -# define STATUS_CORRUPT_SYSTEM_FILE ((NTSTATUS) 0xC00002C4L) +#define STATUS_CORRUPT_SYSTEM_FILE ((NTSTATUS)0xC00002C4L) #endif #ifndef STATUS_DATATYPE_MISALIGNMENT_ERROR -# define STATUS_DATATYPE_MISALIGNMENT_ERROR ((NTSTATUS) 0xC00002C5L) +#define STATUS_DATATYPE_MISALIGNMENT_ERROR ((NTSTATUS)0xC00002C5L) #endif #ifndef STATUS_WMI_READ_ONLY -# define STATUS_WMI_READ_ONLY ((NTSTATUS) 0xC00002C6L) +#define STATUS_WMI_READ_ONLY ((NTSTATUS)0xC00002C6L) #endif #ifndef STATUS_WMI_SET_FAILURE -# define STATUS_WMI_SET_FAILURE ((NTSTATUS) 0xC00002C7L) +#define STATUS_WMI_SET_FAILURE ((NTSTATUS)0xC00002C7L) #endif #ifndef STATUS_COMMITMENT_MINIMUM -# define STATUS_COMMITMENT_MINIMUM ((NTSTATUS) 0xC00002C8L) +#define STATUS_COMMITMENT_MINIMUM ((NTSTATUS)0xC00002C8L) #endif #ifndef STATUS_REG_NAT_CONSUMPTION -# define STATUS_REG_NAT_CONSUMPTION ((NTSTATUS) 0xC00002C9L) +#define STATUS_REG_NAT_CONSUMPTION ((NTSTATUS)0xC00002C9L) #endif #ifndef STATUS_TRANSPORT_FULL -# define STATUS_TRANSPORT_FULL ((NTSTATUS) 0xC00002CAL) +#define STATUS_TRANSPORT_FULL ((NTSTATUS)0xC00002CAL) #endif #ifndef STATUS_DS_SAM_INIT_FAILURE -# define STATUS_DS_SAM_INIT_FAILURE ((NTSTATUS) 0xC00002CBL) +#define STATUS_DS_SAM_INIT_FAILURE ((NTSTATUS)0xC00002CBL) #endif #ifndef STATUS_ONLY_IF_CONNECTED -# define STATUS_ONLY_IF_CONNECTED ((NTSTATUS) 0xC00002CCL) +#define STATUS_ONLY_IF_CONNECTED ((NTSTATUS)0xC00002CCL) #endif #ifndef STATUS_DS_SENSITIVE_GROUP_VIOLATION -# define STATUS_DS_SENSITIVE_GROUP_VIOLATION ((NTSTATUS) 0xC00002CDL) +#define STATUS_DS_SENSITIVE_GROUP_VIOLATION ((NTSTATUS)0xC00002CDL) #endif #ifndef STATUS_PNP_RESTART_ENUMERATION -# define STATUS_PNP_RESTART_ENUMERATION ((NTSTATUS) 0xC00002CEL) +#define STATUS_PNP_RESTART_ENUMERATION ((NTSTATUS)0xC00002CEL) #endif #ifndef STATUS_JOURNAL_ENTRY_DELETED -# define STATUS_JOURNAL_ENTRY_DELETED ((NTSTATUS) 0xC00002CFL) +#define STATUS_JOURNAL_ENTRY_DELETED ((NTSTATUS)0xC00002CFL) #endif #ifndef STATUS_DS_CANT_MOD_PRIMARYGROUPID -# define STATUS_DS_CANT_MOD_PRIMARYGROUPID ((NTSTATUS) 0xC00002D0L) +#define STATUS_DS_CANT_MOD_PRIMARYGROUPID ((NTSTATUS)0xC00002D0L) #endif #ifndef STATUS_SYSTEM_IMAGE_BAD_SIGNATURE -# define STATUS_SYSTEM_IMAGE_BAD_SIGNATURE ((NTSTATUS) 0xC00002D1L) +#define STATUS_SYSTEM_IMAGE_BAD_SIGNATURE ((NTSTATUS)0xC00002D1L) #endif #ifndef STATUS_PNP_REBOOT_REQUIRED -# define STATUS_PNP_REBOOT_REQUIRED ((NTSTATUS) 0xC00002D2L) +#define STATUS_PNP_REBOOT_REQUIRED ((NTSTATUS)0xC00002D2L) #endif #ifndef STATUS_POWER_STATE_INVALID -# define STATUS_POWER_STATE_INVALID ((NTSTATUS) 0xC00002D3L) +#define STATUS_POWER_STATE_INVALID ((NTSTATUS)0xC00002D3L) #endif #ifndef STATUS_DS_INVALID_GROUP_TYPE -# define STATUS_DS_INVALID_GROUP_TYPE ((NTSTATUS) 0xC00002D4L) +#define STATUS_DS_INVALID_GROUP_TYPE ((NTSTATUS)0xC00002D4L) #endif #ifndef STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN -# define STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN ((NTSTATUS) 0xC00002D5L) +#define STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN ((NTSTATUS)0xC00002D5L) #endif #ifndef STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN -# define STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN ((NTSTATUS) 0xC00002D6L) +#define STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN ((NTSTATUS)0xC00002D6L) #endif #ifndef STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER -# define STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER ((NTSTATUS) 0xC00002D7L) +#define STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER ((NTSTATUS)0xC00002D7L) #endif #ifndef STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER -# define STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER ((NTSTATUS) 0xC00002D8L) +#define STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER ((NTSTATUS)0xC00002D8L) #endif #ifndef STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER -# define STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER ((NTSTATUS) 0xC00002D9L) +#define STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER ((NTSTATUS)0xC00002D9L) #endif #ifndef STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER -# define STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER ((NTSTATUS) 0xC00002DAL) +#define STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER ((NTSTATUS)0xC00002DAL) #endif #ifndef STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER -# define STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER ((NTSTATUS) 0xC00002DBL) +#define STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER \ + ((NTSTATUS)0xC00002DBL) #endif #ifndef STATUS_DS_HAVE_PRIMARY_MEMBERS -# define STATUS_DS_HAVE_PRIMARY_MEMBERS ((NTSTATUS) 0xC00002DCL) +#define STATUS_DS_HAVE_PRIMARY_MEMBERS ((NTSTATUS)0xC00002DCL) #endif #ifndef STATUS_WMI_NOT_SUPPORTED -# define STATUS_WMI_NOT_SUPPORTED ((NTSTATUS) 0xC00002DDL) +#define STATUS_WMI_NOT_SUPPORTED ((NTSTATUS)0xC00002DDL) #endif #ifndef STATUS_INSUFFICIENT_POWER -# define STATUS_INSUFFICIENT_POWER ((NTSTATUS) 0xC00002DEL) +#define STATUS_INSUFFICIENT_POWER ((NTSTATUS)0xC00002DEL) #endif #ifndef STATUS_SAM_NEED_BOOTKEY_PASSWORD -# define STATUS_SAM_NEED_BOOTKEY_PASSWORD ((NTSTATUS) 0xC00002DFL) +#define STATUS_SAM_NEED_BOOTKEY_PASSWORD ((NTSTATUS)0xC00002DFL) #endif #ifndef STATUS_SAM_NEED_BOOTKEY_FLOPPY -# define STATUS_SAM_NEED_BOOTKEY_FLOPPY ((NTSTATUS) 0xC00002E0L) +#define STATUS_SAM_NEED_BOOTKEY_FLOPPY ((NTSTATUS)0xC00002E0L) #endif #ifndef STATUS_DS_CANT_START -# define STATUS_DS_CANT_START ((NTSTATUS) 0xC00002E1L) +#define STATUS_DS_CANT_START ((NTSTATUS)0xC00002E1L) #endif #ifndef STATUS_DS_INIT_FAILURE -# define STATUS_DS_INIT_FAILURE ((NTSTATUS) 0xC00002E2L) +#define STATUS_DS_INIT_FAILURE ((NTSTATUS)0xC00002E2L) #endif #ifndef STATUS_SAM_INIT_FAILURE -# define STATUS_SAM_INIT_FAILURE ((NTSTATUS) 0xC00002E3L) +#define STATUS_SAM_INIT_FAILURE ((NTSTATUS)0xC00002E3L) #endif #ifndef STATUS_DS_GC_REQUIRED -# define STATUS_DS_GC_REQUIRED ((NTSTATUS) 0xC00002E4L) +#define STATUS_DS_GC_REQUIRED ((NTSTATUS)0xC00002E4L) #endif #ifndef STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY -# define STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY ((NTSTATUS) 0xC00002E5L) +#define STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY ((NTSTATUS)0xC00002E5L) #endif #ifndef STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS -# define STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS ((NTSTATUS) 0xC00002E6L) +#define STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS ((NTSTATUS)0xC00002E6L) #endif #ifndef STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED -# define STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED ((NTSTATUS) 0xC00002E7L) +#define STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED ((NTSTATUS)0xC00002E7L) #endif #ifndef STATUS_MULTIPLE_FAULT_VIOLATION -# define STATUS_MULTIPLE_FAULT_VIOLATION ((NTSTATUS) 0xC00002E8L) +#define STATUS_MULTIPLE_FAULT_VIOLATION ((NTSTATUS)0xC00002E8L) #endif #ifndef STATUS_CURRENT_DOMAIN_NOT_ALLOWED -# define STATUS_CURRENT_DOMAIN_NOT_ALLOWED ((NTSTATUS) 0xC00002E9L) +#define STATUS_CURRENT_DOMAIN_NOT_ALLOWED ((NTSTATUS)0xC00002E9L) #endif #ifndef STATUS_CANNOT_MAKE -# define STATUS_CANNOT_MAKE ((NTSTATUS) 0xC00002EAL) +#define STATUS_CANNOT_MAKE ((NTSTATUS)0xC00002EAL) #endif #ifndef STATUS_SYSTEM_SHUTDOWN -# define STATUS_SYSTEM_SHUTDOWN ((NTSTATUS) 0xC00002EBL) +#define STATUS_SYSTEM_SHUTDOWN ((NTSTATUS)0xC00002EBL) #endif #ifndef STATUS_DS_INIT_FAILURE_CONSOLE -# define STATUS_DS_INIT_FAILURE_CONSOLE ((NTSTATUS) 0xC00002ECL) +#define STATUS_DS_INIT_FAILURE_CONSOLE ((NTSTATUS)0xC00002ECL) #endif #ifndef STATUS_DS_SAM_INIT_FAILURE_CONSOLE -# define STATUS_DS_SAM_INIT_FAILURE_CONSOLE ((NTSTATUS) 0xC00002EDL) +#define STATUS_DS_SAM_INIT_FAILURE_CONSOLE ((NTSTATUS)0xC00002EDL) #endif #ifndef STATUS_UNFINISHED_CONTEXT_DELETED -# define STATUS_UNFINISHED_CONTEXT_DELETED ((NTSTATUS) 0xC00002EEL) +#define STATUS_UNFINISHED_CONTEXT_DELETED ((NTSTATUS)0xC00002EEL) #endif #ifndef STATUS_NO_TGT_REPLY -# define STATUS_NO_TGT_REPLY ((NTSTATUS) 0xC00002EFL) +#define STATUS_NO_TGT_REPLY ((NTSTATUS)0xC00002EFL) #endif #ifndef STATUS_OBJECTID_NOT_FOUND -# define STATUS_OBJECTID_NOT_FOUND ((NTSTATUS) 0xC00002F0L) +#define STATUS_OBJECTID_NOT_FOUND ((NTSTATUS)0xC00002F0L) #endif #ifndef STATUS_NO_IP_ADDRESSES -# define STATUS_NO_IP_ADDRESSES ((NTSTATUS) 0xC00002F1L) +#define STATUS_NO_IP_ADDRESSES ((NTSTATUS)0xC00002F1L) #endif #ifndef STATUS_WRONG_CREDENTIAL_HANDLE -# define STATUS_WRONG_CREDENTIAL_HANDLE ((NTSTATUS) 0xC00002F2L) +#define STATUS_WRONG_CREDENTIAL_HANDLE ((NTSTATUS)0xC00002F2L) #endif #ifndef STATUS_CRYPTO_SYSTEM_INVALID -# define STATUS_CRYPTO_SYSTEM_INVALID ((NTSTATUS) 0xC00002F3L) +#define STATUS_CRYPTO_SYSTEM_INVALID ((NTSTATUS)0xC00002F3L) #endif #ifndef STATUS_MAX_REFERRALS_EXCEEDED -# define STATUS_MAX_REFERRALS_EXCEEDED ((NTSTATUS) 0xC00002F4L) +#define STATUS_MAX_REFERRALS_EXCEEDED ((NTSTATUS)0xC00002F4L) #endif #ifndef STATUS_MUST_BE_KDC -# define STATUS_MUST_BE_KDC ((NTSTATUS) 0xC00002F5L) +#define STATUS_MUST_BE_KDC ((NTSTATUS)0xC00002F5L) #endif #ifndef STATUS_STRONG_CRYPTO_NOT_SUPPORTED -# define STATUS_STRONG_CRYPTO_NOT_SUPPORTED ((NTSTATUS) 0xC00002F6L) +#define STATUS_STRONG_CRYPTO_NOT_SUPPORTED ((NTSTATUS)0xC00002F6L) #endif #ifndef STATUS_TOO_MANY_PRINCIPALS -# define STATUS_TOO_MANY_PRINCIPALS ((NTSTATUS) 0xC00002F7L) +#define STATUS_TOO_MANY_PRINCIPALS ((NTSTATUS)0xC00002F7L) #endif #ifndef STATUS_NO_PA_DATA -# define STATUS_NO_PA_DATA ((NTSTATUS) 0xC00002F8L) +#define STATUS_NO_PA_DATA ((NTSTATUS)0xC00002F8L) #endif #ifndef STATUS_PKINIT_NAME_MISMATCH -# define STATUS_PKINIT_NAME_MISMATCH ((NTSTATUS) 0xC00002F9L) +#define STATUS_PKINIT_NAME_MISMATCH ((NTSTATUS)0xC00002F9L) #endif #ifndef STATUS_SMARTCARD_LOGON_REQUIRED -# define STATUS_SMARTCARD_LOGON_REQUIRED ((NTSTATUS) 0xC00002FAL) +#define STATUS_SMARTCARD_LOGON_REQUIRED ((NTSTATUS)0xC00002FAL) #endif #ifndef STATUS_KDC_INVALID_REQUEST -# define STATUS_KDC_INVALID_REQUEST ((NTSTATUS) 0xC00002FBL) +#define STATUS_KDC_INVALID_REQUEST ((NTSTATUS)0xC00002FBL) #endif #ifndef STATUS_KDC_UNABLE_TO_REFER -# define STATUS_KDC_UNABLE_TO_REFER ((NTSTATUS) 0xC00002FCL) +#define STATUS_KDC_UNABLE_TO_REFER ((NTSTATUS)0xC00002FCL) #endif #ifndef STATUS_KDC_UNKNOWN_ETYPE -# define STATUS_KDC_UNKNOWN_ETYPE ((NTSTATUS) 0xC00002FDL) +#define STATUS_KDC_UNKNOWN_ETYPE ((NTSTATUS)0xC00002FDL) #endif #ifndef STATUS_SHUTDOWN_IN_PROGRESS -# define STATUS_SHUTDOWN_IN_PROGRESS ((NTSTATUS) 0xC00002FEL) +#define STATUS_SHUTDOWN_IN_PROGRESS ((NTSTATUS)0xC00002FEL) #endif #ifndef STATUS_SERVER_SHUTDOWN_IN_PROGRESS -# define STATUS_SERVER_SHUTDOWN_IN_PROGRESS ((NTSTATUS) 0xC00002FFL) +#define STATUS_SERVER_SHUTDOWN_IN_PROGRESS ((NTSTATUS)0xC00002FFL) #endif #ifndef STATUS_NOT_SUPPORTED_ON_SBS -# define STATUS_NOT_SUPPORTED_ON_SBS ((NTSTATUS) 0xC0000300L) +#define STATUS_NOT_SUPPORTED_ON_SBS ((NTSTATUS)0xC0000300L) #endif #ifndef STATUS_WMI_GUID_DISCONNECTED -# define STATUS_WMI_GUID_DISCONNECTED ((NTSTATUS) 0xC0000301L) +#define STATUS_WMI_GUID_DISCONNECTED ((NTSTATUS)0xC0000301L) #endif #ifndef STATUS_WMI_ALREADY_DISABLED -# define STATUS_WMI_ALREADY_DISABLED ((NTSTATUS) 0xC0000302L) +#define STATUS_WMI_ALREADY_DISABLED ((NTSTATUS)0xC0000302L) #endif #ifndef STATUS_WMI_ALREADY_ENABLED -# define STATUS_WMI_ALREADY_ENABLED ((NTSTATUS) 0xC0000303L) +#define STATUS_WMI_ALREADY_ENABLED ((NTSTATUS)0xC0000303L) #endif #ifndef STATUS_MFT_TOO_FRAGMENTED -# define STATUS_MFT_TOO_FRAGMENTED ((NTSTATUS) 0xC0000304L) +#define STATUS_MFT_TOO_FRAGMENTED ((NTSTATUS)0xC0000304L) #endif #ifndef STATUS_COPY_PROTECTION_FAILURE -# define STATUS_COPY_PROTECTION_FAILURE ((NTSTATUS) 0xC0000305L) +#define STATUS_COPY_PROTECTION_FAILURE ((NTSTATUS)0xC0000305L) #endif #ifndef STATUS_CSS_AUTHENTICATION_FAILURE -# define STATUS_CSS_AUTHENTICATION_FAILURE ((NTSTATUS) 0xC0000306L) +#define STATUS_CSS_AUTHENTICATION_FAILURE ((NTSTATUS)0xC0000306L) #endif #ifndef STATUS_CSS_KEY_NOT_PRESENT -# define STATUS_CSS_KEY_NOT_PRESENT ((NTSTATUS) 0xC0000307L) +#define STATUS_CSS_KEY_NOT_PRESENT ((NTSTATUS)0xC0000307L) #endif #ifndef STATUS_CSS_KEY_NOT_ESTABLISHED -# define STATUS_CSS_KEY_NOT_ESTABLISHED ((NTSTATUS) 0xC0000308L) +#define STATUS_CSS_KEY_NOT_ESTABLISHED ((NTSTATUS)0xC0000308L) #endif #ifndef STATUS_CSS_SCRAMBLED_SECTOR -# define STATUS_CSS_SCRAMBLED_SECTOR ((NTSTATUS) 0xC0000309L) +#define STATUS_CSS_SCRAMBLED_SECTOR ((NTSTATUS)0xC0000309L) #endif #ifndef STATUS_CSS_REGION_MISMATCH -# define STATUS_CSS_REGION_MISMATCH ((NTSTATUS) 0xC000030AL) +#define STATUS_CSS_REGION_MISMATCH ((NTSTATUS)0xC000030AL) #endif #ifndef STATUS_CSS_RESETS_EXHAUSTED -# define STATUS_CSS_RESETS_EXHAUSTED ((NTSTATUS) 0xC000030BL) +#define STATUS_CSS_RESETS_EXHAUSTED ((NTSTATUS)0xC000030BL) #endif #ifndef STATUS_PKINIT_FAILURE -# define STATUS_PKINIT_FAILURE ((NTSTATUS) 0xC0000320L) +#define STATUS_PKINIT_FAILURE ((NTSTATUS)0xC0000320L) #endif #ifndef STATUS_SMARTCARD_SUBSYSTEM_FAILURE -# define STATUS_SMARTCARD_SUBSYSTEM_FAILURE ((NTSTATUS) 0xC0000321L) +#define STATUS_SMARTCARD_SUBSYSTEM_FAILURE ((NTSTATUS)0xC0000321L) #endif #ifndef STATUS_NO_KERB_KEY -# define STATUS_NO_KERB_KEY ((NTSTATUS) 0xC0000322L) +#define STATUS_NO_KERB_KEY ((NTSTATUS)0xC0000322L) #endif #ifndef STATUS_HOST_DOWN -# define STATUS_HOST_DOWN ((NTSTATUS) 0xC0000350L) +#define STATUS_HOST_DOWN ((NTSTATUS)0xC0000350L) #endif #ifndef STATUS_UNSUPPORTED_PREAUTH -# define STATUS_UNSUPPORTED_PREAUTH ((NTSTATUS) 0xC0000351L) +#define STATUS_UNSUPPORTED_PREAUTH ((NTSTATUS)0xC0000351L) #endif #ifndef STATUS_EFS_ALG_BLOB_TOO_BIG -# define STATUS_EFS_ALG_BLOB_TOO_BIG ((NTSTATUS) 0xC0000352L) +#define STATUS_EFS_ALG_BLOB_TOO_BIG ((NTSTATUS)0xC0000352L) #endif #ifndef STATUS_PORT_NOT_SET -# define STATUS_PORT_NOT_SET ((NTSTATUS) 0xC0000353L) +#define STATUS_PORT_NOT_SET ((NTSTATUS)0xC0000353L) #endif #ifndef STATUS_DEBUGGER_INACTIVE -# define STATUS_DEBUGGER_INACTIVE ((NTSTATUS) 0xC0000354L) +#define STATUS_DEBUGGER_INACTIVE ((NTSTATUS)0xC0000354L) #endif #ifndef STATUS_DS_VERSION_CHECK_FAILURE -# define STATUS_DS_VERSION_CHECK_FAILURE ((NTSTATUS) 0xC0000355L) +#define STATUS_DS_VERSION_CHECK_FAILURE ((NTSTATUS)0xC0000355L) #endif #ifndef STATUS_AUDITING_DISABLED -# define STATUS_AUDITING_DISABLED ((NTSTATUS) 0xC0000356L) +#define STATUS_AUDITING_DISABLED ((NTSTATUS)0xC0000356L) #endif #ifndef STATUS_PRENT4_MACHINE_ACCOUNT -# define STATUS_PRENT4_MACHINE_ACCOUNT ((NTSTATUS) 0xC0000357L) +#define STATUS_PRENT4_MACHINE_ACCOUNT ((NTSTATUS)0xC0000357L) #endif #ifndef STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER -# define STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER ((NTSTATUS) 0xC0000358L) +#define STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER ((NTSTATUS)0xC0000358L) #endif #ifndef STATUS_INVALID_IMAGE_WIN_32 -# define STATUS_INVALID_IMAGE_WIN_32 ((NTSTATUS) 0xC0000359L) +#define STATUS_INVALID_IMAGE_WIN_32 ((NTSTATUS)0xC0000359L) #endif #ifndef STATUS_INVALID_IMAGE_WIN_64 -# define STATUS_INVALID_IMAGE_WIN_64 ((NTSTATUS) 0xC000035AL) +#define STATUS_INVALID_IMAGE_WIN_64 ((NTSTATUS)0xC000035AL) #endif #ifndef STATUS_BAD_BINDINGS -# define STATUS_BAD_BINDINGS ((NTSTATUS) 0xC000035BL) +#define STATUS_BAD_BINDINGS ((NTSTATUS)0xC000035BL) #endif #ifndef STATUS_NETWORK_SESSION_EXPIRED -# define STATUS_NETWORK_SESSION_EXPIRED ((NTSTATUS) 0xC000035CL) +#define STATUS_NETWORK_SESSION_EXPIRED ((NTSTATUS)0xC000035CL) #endif #ifndef STATUS_APPHELP_BLOCK -# define STATUS_APPHELP_BLOCK ((NTSTATUS) 0xC000035DL) +#define STATUS_APPHELP_BLOCK ((NTSTATUS)0xC000035DL) #endif #ifndef STATUS_ALL_SIDS_FILTERED -# define STATUS_ALL_SIDS_FILTERED ((NTSTATUS) 0xC000035EL) +#define STATUS_ALL_SIDS_FILTERED ((NTSTATUS)0xC000035EL) #endif #ifndef STATUS_NOT_SAFE_MODE_DRIVER -# define STATUS_NOT_SAFE_MODE_DRIVER ((NTSTATUS) 0xC000035FL) +#define STATUS_NOT_SAFE_MODE_DRIVER ((NTSTATUS)0xC000035FL) #endif #ifndef STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT -# define STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT ((NTSTATUS) 0xC0000361L) +#define STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT ((NTSTATUS)0xC0000361L) #endif #ifndef STATUS_ACCESS_DISABLED_BY_POLICY_PATH -# define STATUS_ACCESS_DISABLED_BY_POLICY_PATH ((NTSTATUS) 0xC0000362L) +#define STATUS_ACCESS_DISABLED_BY_POLICY_PATH ((NTSTATUS)0xC0000362L) #endif #ifndef STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER -# define STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER ((NTSTATUS) 0xC0000363L) +#define STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER ((NTSTATUS)0xC0000363L) #endif #ifndef STATUS_ACCESS_DISABLED_BY_POLICY_OTHER -# define STATUS_ACCESS_DISABLED_BY_POLICY_OTHER ((NTSTATUS) 0xC0000364L) +#define STATUS_ACCESS_DISABLED_BY_POLICY_OTHER ((NTSTATUS)0xC0000364L) #endif #ifndef STATUS_FAILED_DRIVER_ENTRY -# define STATUS_FAILED_DRIVER_ENTRY ((NTSTATUS) 0xC0000365L) +#define STATUS_FAILED_DRIVER_ENTRY ((NTSTATUS)0xC0000365L) #endif #ifndef STATUS_DEVICE_ENUMERATION_ERROR -# define STATUS_DEVICE_ENUMERATION_ERROR ((NTSTATUS) 0xC0000366L) +#define STATUS_DEVICE_ENUMERATION_ERROR ((NTSTATUS)0xC0000366L) #endif #ifndef STATUS_MOUNT_POINT_NOT_RESOLVED -# define STATUS_MOUNT_POINT_NOT_RESOLVED ((NTSTATUS) 0xC0000368L) +#define STATUS_MOUNT_POINT_NOT_RESOLVED ((NTSTATUS)0xC0000368L) #endif #ifndef STATUS_INVALID_DEVICE_OBJECT_PARAMETER -# define STATUS_INVALID_DEVICE_OBJECT_PARAMETER ((NTSTATUS) 0xC0000369L) +#define STATUS_INVALID_DEVICE_OBJECT_PARAMETER ((NTSTATUS)0xC0000369L) #endif #ifndef STATUS_MCA_OCCURED -# define STATUS_MCA_OCCURED ((NTSTATUS) 0xC000036AL) +#define STATUS_MCA_OCCURED ((NTSTATUS)0xC000036AL) #endif #ifndef STATUS_DRIVER_BLOCKED_CRITICAL -# define STATUS_DRIVER_BLOCKED_CRITICAL ((NTSTATUS) 0xC000036BL) +#define STATUS_DRIVER_BLOCKED_CRITICAL ((NTSTATUS)0xC000036BL) #endif #ifndef STATUS_DRIVER_BLOCKED -# define STATUS_DRIVER_BLOCKED ((NTSTATUS) 0xC000036CL) +#define STATUS_DRIVER_BLOCKED ((NTSTATUS)0xC000036CL) #endif #ifndef STATUS_DRIVER_DATABASE_ERROR -# define STATUS_DRIVER_DATABASE_ERROR ((NTSTATUS) 0xC000036DL) +#define STATUS_DRIVER_DATABASE_ERROR ((NTSTATUS)0xC000036DL) #endif #ifndef STATUS_SYSTEM_HIVE_TOO_LARGE -# define STATUS_SYSTEM_HIVE_TOO_LARGE ((NTSTATUS) 0xC000036EL) +#define STATUS_SYSTEM_HIVE_TOO_LARGE ((NTSTATUS)0xC000036EL) #endif #ifndef STATUS_INVALID_IMPORT_OF_NON_DLL -# define STATUS_INVALID_IMPORT_OF_NON_DLL ((NTSTATUS) 0xC000036FL) +#define STATUS_INVALID_IMPORT_OF_NON_DLL ((NTSTATUS)0xC000036FL) #endif #ifndef STATUS_DS_SHUTTING_DOWN -# define STATUS_DS_SHUTTING_DOWN ((NTSTATUS) 0x40000370L) +#define STATUS_DS_SHUTTING_DOWN ((NTSTATUS)0x40000370L) #endif #ifndef STATUS_NO_SECRETS -# define STATUS_NO_SECRETS ((NTSTATUS) 0xC0000371L) +#define STATUS_NO_SECRETS ((NTSTATUS)0xC0000371L) #endif #ifndef STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY -# define STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY ((NTSTATUS) 0xC0000372L) +#define STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY ((NTSTATUS)0xC0000372L) #endif #ifndef STATUS_FAILED_STACK_SWITCH -# define STATUS_FAILED_STACK_SWITCH ((NTSTATUS) 0xC0000373L) +#define STATUS_FAILED_STACK_SWITCH ((NTSTATUS)0xC0000373L) #endif #ifndef STATUS_HEAP_CORRUPTION -# define STATUS_HEAP_CORRUPTION ((NTSTATUS) 0xC0000374L) +#define STATUS_HEAP_CORRUPTION ((NTSTATUS)0xC0000374L) #endif #ifndef STATUS_SMARTCARD_WRONG_PIN -# define STATUS_SMARTCARD_WRONG_PIN ((NTSTATUS) 0xC0000380L) +#define STATUS_SMARTCARD_WRONG_PIN ((NTSTATUS)0xC0000380L) #endif #ifndef STATUS_SMARTCARD_CARD_BLOCKED -# define STATUS_SMARTCARD_CARD_BLOCKED ((NTSTATUS) 0xC0000381L) +#define STATUS_SMARTCARD_CARD_BLOCKED ((NTSTATUS)0xC0000381L) #endif #ifndef STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED -# define STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED ((NTSTATUS) 0xC0000382L) +#define STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED ((NTSTATUS)0xC0000382L) #endif #ifndef STATUS_SMARTCARD_NO_CARD -# define STATUS_SMARTCARD_NO_CARD ((NTSTATUS) 0xC0000383L) +#define STATUS_SMARTCARD_NO_CARD ((NTSTATUS)0xC0000383L) #endif #ifndef STATUS_SMARTCARD_NO_KEY_CONTAINER -# define STATUS_SMARTCARD_NO_KEY_CONTAINER ((NTSTATUS) 0xC0000384L) +#define STATUS_SMARTCARD_NO_KEY_CONTAINER ((NTSTATUS)0xC0000384L) #endif #ifndef STATUS_SMARTCARD_NO_CERTIFICATE -# define STATUS_SMARTCARD_NO_CERTIFICATE ((NTSTATUS) 0xC0000385L) +#define STATUS_SMARTCARD_NO_CERTIFICATE ((NTSTATUS)0xC0000385L) #endif #ifndef STATUS_SMARTCARD_NO_KEYSET -# define STATUS_SMARTCARD_NO_KEYSET ((NTSTATUS) 0xC0000386L) +#define STATUS_SMARTCARD_NO_KEYSET ((NTSTATUS)0xC0000386L) #endif #ifndef STATUS_SMARTCARD_IO_ERROR -# define STATUS_SMARTCARD_IO_ERROR ((NTSTATUS) 0xC0000387L) +#define STATUS_SMARTCARD_IO_ERROR ((NTSTATUS)0xC0000387L) #endif #ifndef STATUS_DOWNGRADE_DETECTED -# define STATUS_DOWNGRADE_DETECTED ((NTSTATUS) 0xC0000388L) +#define STATUS_DOWNGRADE_DETECTED ((NTSTATUS)0xC0000388L) #endif #ifndef STATUS_SMARTCARD_CERT_REVOKED -# define STATUS_SMARTCARD_CERT_REVOKED ((NTSTATUS) 0xC0000389L) +#define STATUS_SMARTCARD_CERT_REVOKED ((NTSTATUS)0xC0000389L) #endif #ifndef STATUS_ISSUING_CA_UNTRUSTED -# define STATUS_ISSUING_CA_UNTRUSTED ((NTSTATUS) 0xC000038AL) +#define STATUS_ISSUING_CA_UNTRUSTED ((NTSTATUS)0xC000038AL) #endif #ifndef STATUS_REVOCATION_OFFLINE_C -# define STATUS_REVOCATION_OFFLINE_C ((NTSTATUS) 0xC000038BL) +#define STATUS_REVOCATION_OFFLINE_C ((NTSTATUS)0xC000038BL) #endif #ifndef STATUS_PKINIT_CLIENT_FAILURE -# define STATUS_PKINIT_CLIENT_FAILURE ((NTSTATUS) 0xC000038CL) +#define STATUS_PKINIT_CLIENT_FAILURE ((NTSTATUS)0xC000038CL) #endif #ifndef STATUS_SMARTCARD_CERT_EXPIRED -# define STATUS_SMARTCARD_CERT_EXPIRED ((NTSTATUS) 0xC000038DL) +#define STATUS_SMARTCARD_CERT_EXPIRED ((NTSTATUS)0xC000038DL) #endif #ifndef STATUS_DRIVER_FAILED_PRIOR_UNLOAD -# define STATUS_DRIVER_FAILED_PRIOR_UNLOAD ((NTSTATUS) 0xC000038EL) +#define STATUS_DRIVER_FAILED_PRIOR_UNLOAD ((NTSTATUS)0xC000038EL) #endif #ifndef STATUS_SMARTCARD_SILENT_CONTEXT -# define STATUS_SMARTCARD_SILENT_CONTEXT ((NTSTATUS) 0xC000038FL) +#define STATUS_SMARTCARD_SILENT_CONTEXT ((NTSTATUS)0xC000038FL) #endif #ifndef STATUS_PER_USER_TRUST_QUOTA_EXCEEDED -# define STATUS_PER_USER_TRUST_QUOTA_EXCEEDED ((NTSTATUS) 0xC0000401L) +#define STATUS_PER_USER_TRUST_QUOTA_EXCEEDED ((NTSTATUS)0xC0000401L) #endif #ifndef STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED -# define STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED ((NTSTATUS) 0xC0000402L) +#define STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED ((NTSTATUS)0xC0000402L) #endif #ifndef STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED -# define STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED ((NTSTATUS) 0xC0000403L) +#define STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED ((NTSTATUS)0xC0000403L) #endif #ifndef STATUS_DS_NAME_NOT_UNIQUE -# define STATUS_DS_NAME_NOT_UNIQUE ((NTSTATUS) 0xC0000404L) +#define STATUS_DS_NAME_NOT_UNIQUE ((NTSTATUS)0xC0000404L) #endif #ifndef STATUS_DS_DUPLICATE_ID_FOUND -# define STATUS_DS_DUPLICATE_ID_FOUND ((NTSTATUS) 0xC0000405L) +#define STATUS_DS_DUPLICATE_ID_FOUND ((NTSTATUS)0xC0000405L) #endif #ifndef STATUS_DS_GROUP_CONVERSION_ERROR -# define STATUS_DS_GROUP_CONVERSION_ERROR ((NTSTATUS) 0xC0000406L) +#define STATUS_DS_GROUP_CONVERSION_ERROR ((NTSTATUS)0xC0000406L) #endif #ifndef STATUS_VOLSNAP_PREPARE_HIBERNATE -# define STATUS_VOLSNAP_PREPARE_HIBERNATE ((NTSTATUS) 0xC0000407L) +#define STATUS_VOLSNAP_PREPARE_HIBERNATE ((NTSTATUS)0xC0000407L) #endif #ifndef STATUS_USER2USER_REQUIRED -# define STATUS_USER2USER_REQUIRED ((NTSTATUS) 0xC0000408L) +#define STATUS_USER2USER_REQUIRED ((NTSTATUS)0xC0000408L) #endif #ifndef STATUS_STACK_BUFFER_OVERRUN -# define STATUS_STACK_BUFFER_OVERRUN ((NTSTATUS) 0xC0000409L) +#define STATUS_STACK_BUFFER_OVERRUN ((NTSTATUS)0xC0000409L) #endif #ifndef STATUS_NO_S4U_PROT_SUPPORT -# define STATUS_NO_S4U_PROT_SUPPORT ((NTSTATUS) 0xC000040AL) +#define STATUS_NO_S4U_PROT_SUPPORT ((NTSTATUS)0xC000040AL) #endif #ifndef STATUS_CROSSREALM_DELEGATION_FAILURE -# define STATUS_CROSSREALM_DELEGATION_FAILURE ((NTSTATUS) 0xC000040BL) +#define STATUS_CROSSREALM_DELEGATION_FAILURE ((NTSTATUS)0xC000040BL) #endif #ifndef STATUS_REVOCATION_OFFLINE_KDC -# define STATUS_REVOCATION_OFFLINE_KDC ((NTSTATUS) 0xC000040CL) +#define STATUS_REVOCATION_OFFLINE_KDC ((NTSTATUS)0xC000040CL) #endif #ifndef STATUS_ISSUING_CA_UNTRUSTED_KDC -# define STATUS_ISSUING_CA_UNTRUSTED_KDC ((NTSTATUS) 0xC000040DL) +#define STATUS_ISSUING_CA_UNTRUSTED_KDC ((NTSTATUS)0xC000040DL) #endif #ifndef STATUS_KDC_CERT_EXPIRED -# define STATUS_KDC_CERT_EXPIRED ((NTSTATUS) 0xC000040EL) +#define STATUS_KDC_CERT_EXPIRED ((NTSTATUS)0xC000040EL) #endif #ifndef STATUS_KDC_CERT_REVOKED -# define STATUS_KDC_CERT_REVOKED ((NTSTATUS) 0xC000040FL) +#define STATUS_KDC_CERT_REVOKED ((NTSTATUS)0xC000040FL) #endif #ifndef STATUS_PARAMETER_QUOTA_EXCEEDED -# define STATUS_PARAMETER_QUOTA_EXCEEDED ((NTSTATUS) 0xC0000410L) +#define STATUS_PARAMETER_QUOTA_EXCEEDED ((NTSTATUS)0xC0000410L) #endif #ifndef STATUS_HIBERNATION_FAILURE -# define STATUS_HIBERNATION_FAILURE ((NTSTATUS) 0xC0000411L) +#define STATUS_HIBERNATION_FAILURE ((NTSTATUS)0xC0000411L) #endif #ifndef STATUS_DELAY_LOAD_FAILED -# define STATUS_DELAY_LOAD_FAILED ((NTSTATUS) 0xC0000412L) +#define STATUS_DELAY_LOAD_FAILED ((NTSTATUS)0xC0000412L) #endif #ifndef STATUS_AUTHENTICATION_FIREWALL_FAILED -# define STATUS_AUTHENTICATION_FIREWALL_FAILED ((NTSTATUS) 0xC0000413L) +#define STATUS_AUTHENTICATION_FIREWALL_FAILED ((NTSTATUS)0xC0000413L) #endif #ifndef STATUS_VDM_DISALLOWED -# define STATUS_VDM_DISALLOWED ((NTSTATUS) 0xC0000414L) +#define STATUS_VDM_DISALLOWED ((NTSTATUS)0xC0000414L) #endif #ifndef STATUS_HUNG_DISPLAY_DRIVER_THREAD -# define STATUS_HUNG_DISPLAY_DRIVER_THREAD ((NTSTATUS) 0xC0000415L) +#define STATUS_HUNG_DISPLAY_DRIVER_THREAD ((NTSTATUS)0xC0000415L) #endif #ifndef STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE -# define STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE ((NTSTATUS) 0xC0000416L) +#define STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE \ + ((NTSTATUS)0xC0000416L) #endif #ifndef STATUS_INVALID_CRUNTIME_PARAMETER -# define STATUS_INVALID_CRUNTIME_PARAMETER ((NTSTATUS) 0xC0000417L) +#define STATUS_INVALID_CRUNTIME_PARAMETER ((NTSTATUS)0xC0000417L) #endif #ifndef STATUS_NTLM_BLOCKED -# define STATUS_NTLM_BLOCKED ((NTSTATUS) 0xC0000418L) +#define STATUS_NTLM_BLOCKED ((NTSTATUS)0xC0000418L) #endif #ifndef STATUS_DS_SRC_SID_EXISTS_IN_FOREST -# define STATUS_DS_SRC_SID_EXISTS_IN_FOREST ((NTSTATUS) 0xC0000419L) +#define STATUS_DS_SRC_SID_EXISTS_IN_FOREST ((NTSTATUS)0xC0000419L) #endif #ifndef STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST -# define STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST ((NTSTATUS) 0xC000041AL) +#define STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST ((NTSTATUS)0xC000041AL) #endif #ifndef STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST -# define STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST ((NTSTATUS) 0xC000041BL) +#define STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST ((NTSTATUS)0xC000041BL) #endif #ifndef STATUS_INVALID_USER_PRINCIPAL_NAME -# define STATUS_INVALID_USER_PRINCIPAL_NAME ((NTSTATUS) 0xC000041CL) +#define STATUS_INVALID_USER_PRINCIPAL_NAME ((NTSTATUS)0xC000041CL) #endif #ifndef STATUS_FATAL_USER_CALLBACK_EXCEPTION -# define STATUS_FATAL_USER_CALLBACK_EXCEPTION ((NTSTATUS) 0xC000041DL) +#define STATUS_FATAL_USER_CALLBACK_EXCEPTION ((NTSTATUS)0xC000041DL) #endif #ifndef STATUS_ASSERTION_FAILURE -# define STATUS_ASSERTION_FAILURE ((NTSTATUS) 0xC0000420L) +#define STATUS_ASSERTION_FAILURE ((NTSTATUS)0xC0000420L) #endif #ifndef STATUS_VERIFIER_STOP -# define STATUS_VERIFIER_STOP ((NTSTATUS) 0xC0000421L) +#define STATUS_VERIFIER_STOP ((NTSTATUS)0xC0000421L) #endif #ifndef STATUS_CALLBACK_POP_STACK -# define STATUS_CALLBACK_POP_STACK ((NTSTATUS) 0xC0000423L) +#define STATUS_CALLBACK_POP_STACK ((NTSTATUS)0xC0000423L) #endif #ifndef STATUS_INCOMPATIBLE_DRIVER_BLOCKED -# define STATUS_INCOMPATIBLE_DRIVER_BLOCKED ((NTSTATUS) 0xC0000424L) +#define STATUS_INCOMPATIBLE_DRIVER_BLOCKED ((NTSTATUS)0xC0000424L) #endif #ifndef STATUS_HIVE_UNLOADED -# define STATUS_HIVE_UNLOADED ((NTSTATUS) 0xC0000425L) +#define STATUS_HIVE_UNLOADED ((NTSTATUS)0xC0000425L) #endif #ifndef STATUS_COMPRESSION_DISABLED -# define STATUS_COMPRESSION_DISABLED ((NTSTATUS) 0xC0000426L) +#define STATUS_COMPRESSION_DISABLED ((NTSTATUS)0xC0000426L) #endif #ifndef STATUS_FILE_SYSTEM_LIMITATION -# define STATUS_FILE_SYSTEM_LIMITATION ((NTSTATUS) 0xC0000427L) +#define STATUS_FILE_SYSTEM_LIMITATION ((NTSTATUS)0xC0000427L) #endif #ifndef STATUS_INVALID_IMAGE_HASH -# define STATUS_INVALID_IMAGE_HASH ((NTSTATUS) 0xC0000428L) +#define STATUS_INVALID_IMAGE_HASH ((NTSTATUS)0xC0000428L) #endif #ifndef STATUS_NOT_CAPABLE -# define STATUS_NOT_CAPABLE ((NTSTATUS) 0xC0000429L) +#define STATUS_NOT_CAPABLE ((NTSTATUS)0xC0000429L) #endif #ifndef STATUS_REQUEST_OUT_OF_SEQUENCE -# define STATUS_REQUEST_OUT_OF_SEQUENCE ((NTSTATUS) 0xC000042AL) +#define STATUS_REQUEST_OUT_OF_SEQUENCE ((NTSTATUS)0xC000042AL) #endif #ifndef STATUS_IMPLEMENTATION_LIMIT -# define STATUS_IMPLEMENTATION_LIMIT ((NTSTATUS) 0xC000042BL) +#define STATUS_IMPLEMENTATION_LIMIT ((NTSTATUS)0xC000042BL) #endif #ifndef STATUS_ELEVATION_REQUIRED -# define STATUS_ELEVATION_REQUIRED ((NTSTATUS) 0xC000042CL) +#define STATUS_ELEVATION_REQUIRED ((NTSTATUS)0xC000042CL) #endif #ifndef STATUS_NO_SECURITY_CONTEXT -# define STATUS_NO_SECURITY_CONTEXT ((NTSTATUS) 0xC000042DL) +#define STATUS_NO_SECURITY_CONTEXT ((NTSTATUS)0xC000042DL) #endif #ifndef STATUS_PKU2U_CERT_FAILURE -# define STATUS_PKU2U_CERT_FAILURE ((NTSTATUS) 0xC000042FL) +#define STATUS_PKU2U_CERT_FAILURE ((NTSTATUS)0xC000042FL) #endif #ifndef STATUS_BEYOND_VDL -# define STATUS_BEYOND_VDL ((NTSTATUS) 0xC0000432L) +#define STATUS_BEYOND_VDL ((NTSTATUS)0xC0000432L) #endif #ifndef STATUS_ENCOUNTERED_WRITE_IN_PROGRESS -# define STATUS_ENCOUNTERED_WRITE_IN_PROGRESS ((NTSTATUS) 0xC0000433L) +#define STATUS_ENCOUNTERED_WRITE_IN_PROGRESS ((NTSTATUS)0xC0000433L) #endif #ifndef STATUS_PTE_CHANGED -# define STATUS_PTE_CHANGED ((NTSTATUS) 0xC0000434L) +#define STATUS_PTE_CHANGED ((NTSTATUS)0xC0000434L) #endif #ifndef STATUS_PURGE_FAILED -# define STATUS_PURGE_FAILED ((NTSTATUS) 0xC0000435L) +#define STATUS_PURGE_FAILED ((NTSTATUS)0xC0000435L) #endif #ifndef STATUS_CRED_REQUIRES_CONFIRMATION -# define STATUS_CRED_REQUIRES_CONFIRMATION ((NTSTATUS) 0xC0000440L) +#define STATUS_CRED_REQUIRES_CONFIRMATION ((NTSTATUS)0xC0000440L) #endif #ifndef STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE -# define STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE ((NTSTATUS) 0xC0000441L) +#define STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE ((NTSTATUS)0xC0000441L) #endif #ifndef STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER -# define STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER ((NTSTATUS) 0xC0000442L) +#define STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER ((NTSTATUS)0xC0000442L) #endif #ifndef STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE -# define STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE ((NTSTATUS) 0xC0000443L) +#define STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE ((NTSTATUS)0xC0000443L) #endif #ifndef STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE -# define STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE ((NTSTATUS) 0xC0000444L) +#define STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE ((NTSTATUS)0xC0000444L) #endif #ifndef STATUS_CS_ENCRYPTION_FILE_NOT_CSE -# define STATUS_CS_ENCRYPTION_FILE_NOT_CSE ((NTSTATUS) 0xC0000445L) +#define STATUS_CS_ENCRYPTION_FILE_NOT_CSE ((NTSTATUS)0xC0000445L) #endif #ifndef STATUS_INVALID_LABEL -# define STATUS_INVALID_LABEL ((NTSTATUS) 0xC0000446L) +#define STATUS_INVALID_LABEL ((NTSTATUS)0xC0000446L) #endif #ifndef STATUS_DRIVER_PROCESS_TERMINATED -# define STATUS_DRIVER_PROCESS_TERMINATED ((NTSTATUS) 0xC0000450L) +#define STATUS_DRIVER_PROCESS_TERMINATED ((NTSTATUS)0xC0000450L) #endif #ifndef STATUS_AMBIGUOUS_SYSTEM_DEVICE -# define STATUS_AMBIGUOUS_SYSTEM_DEVICE ((NTSTATUS) 0xC0000451L) +#define STATUS_AMBIGUOUS_SYSTEM_DEVICE ((NTSTATUS)0xC0000451L) #endif #ifndef STATUS_SYSTEM_DEVICE_NOT_FOUND -# define STATUS_SYSTEM_DEVICE_NOT_FOUND ((NTSTATUS) 0xC0000452L) +#define STATUS_SYSTEM_DEVICE_NOT_FOUND ((NTSTATUS)0xC0000452L) #endif #ifndef STATUS_RESTART_BOOT_APPLICATION -# define STATUS_RESTART_BOOT_APPLICATION ((NTSTATUS) 0xC0000453L) +#define STATUS_RESTART_BOOT_APPLICATION ((NTSTATUS)0xC0000453L) #endif #ifndef STATUS_INSUFFICIENT_NVRAM_RESOURCES -# define STATUS_INSUFFICIENT_NVRAM_RESOURCES ((NTSTATUS) 0xC0000454L) +#define STATUS_INSUFFICIENT_NVRAM_RESOURCES ((NTSTATUS)0xC0000454L) #endif #ifndef STATUS_INVALID_TASK_NAME -# define STATUS_INVALID_TASK_NAME ((NTSTATUS) 0xC0000500L) +#define STATUS_INVALID_TASK_NAME ((NTSTATUS)0xC0000500L) #endif #ifndef STATUS_INVALID_TASK_INDEX -# define STATUS_INVALID_TASK_INDEX ((NTSTATUS) 0xC0000501L) +#define STATUS_INVALID_TASK_INDEX ((NTSTATUS)0xC0000501L) #endif #ifndef STATUS_THREAD_ALREADY_IN_TASK -# define STATUS_THREAD_ALREADY_IN_TASK ((NTSTATUS) 0xC0000502L) +#define STATUS_THREAD_ALREADY_IN_TASK ((NTSTATUS)0xC0000502L) #endif #ifndef STATUS_CALLBACK_BYPASS -# define STATUS_CALLBACK_BYPASS ((NTSTATUS) 0xC0000503L) +#define STATUS_CALLBACK_BYPASS ((NTSTATUS)0xC0000503L) #endif #ifndef STATUS_FAIL_FAST_EXCEPTION -# define STATUS_FAIL_FAST_EXCEPTION ((NTSTATUS) 0xC0000602L) +#define STATUS_FAIL_FAST_EXCEPTION ((NTSTATUS)0xC0000602L) #endif #ifndef STATUS_IMAGE_CERT_REVOKED -# define STATUS_IMAGE_CERT_REVOKED ((NTSTATUS) 0xC0000603L) +#define STATUS_IMAGE_CERT_REVOKED ((NTSTATUS)0xC0000603L) #endif #ifndef STATUS_PORT_CLOSED -# define STATUS_PORT_CLOSED ((NTSTATUS) 0xC0000700L) +#define STATUS_PORT_CLOSED ((NTSTATUS)0xC0000700L) #endif #ifndef STATUS_MESSAGE_LOST -# define STATUS_MESSAGE_LOST ((NTSTATUS) 0xC0000701L) +#define STATUS_MESSAGE_LOST ((NTSTATUS)0xC0000701L) #endif #ifndef STATUS_INVALID_MESSAGE -# define STATUS_INVALID_MESSAGE ((NTSTATUS) 0xC0000702L) +#define STATUS_INVALID_MESSAGE ((NTSTATUS)0xC0000702L) #endif #ifndef STATUS_REQUEST_CANCELED -# define STATUS_REQUEST_CANCELED ((NTSTATUS) 0xC0000703L) +#define STATUS_REQUEST_CANCELED ((NTSTATUS)0xC0000703L) #endif #ifndef STATUS_RECURSIVE_DISPATCH -# define STATUS_RECURSIVE_DISPATCH ((NTSTATUS) 0xC0000704L) +#define STATUS_RECURSIVE_DISPATCH ((NTSTATUS)0xC0000704L) #endif #ifndef STATUS_LPC_RECEIVE_BUFFER_EXPECTED -# define STATUS_LPC_RECEIVE_BUFFER_EXPECTED ((NTSTATUS) 0xC0000705L) +#define STATUS_LPC_RECEIVE_BUFFER_EXPECTED ((NTSTATUS)0xC0000705L) #endif #ifndef STATUS_LPC_INVALID_CONNECTION_USAGE -# define STATUS_LPC_INVALID_CONNECTION_USAGE ((NTSTATUS) 0xC0000706L) +#define STATUS_LPC_INVALID_CONNECTION_USAGE ((NTSTATUS)0xC0000706L) #endif #ifndef STATUS_LPC_REQUESTS_NOT_ALLOWED -# define STATUS_LPC_REQUESTS_NOT_ALLOWED ((NTSTATUS) 0xC0000707L) +#define STATUS_LPC_REQUESTS_NOT_ALLOWED ((NTSTATUS)0xC0000707L) #endif #ifndef STATUS_RESOURCE_IN_USE -# define STATUS_RESOURCE_IN_USE ((NTSTATUS) 0xC0000708L) +#define STATUS_RESOURCE_IN_USE ((NTSTATUS)0xC0000708L) #endif #ifndef STATUS_HARDWARE_MEMORY_ERROR -# define STATUS_HARDWARE_MEMORY_ERROR ((NTSTATUS) 0xC0000709L) +#define STATUS_HARDWARE_MEMORY_ERROR ((NTSTATUS)0xC0000709L) #endif #ifndef STATUS_THREADPOOL_HANDLE_EXCEPTION -# define STATUS_THREADPOOL_HANDLE_EXCEPTION ((NTSTATUS) 0xC000070AL) +#define STATUS_THREADPOOL_HANDLE_EXCEPTION ((NTSTATUS)0xC000070AL) #endif #ifndef STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED -# define STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED ((NTSTATUS) 0xC000070BL) +#define STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED ((NTSTATUS)0xC000070BL) #endif #ifndef STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED -# define STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED ((NTSTATUS) 0xC000070CL) +#define STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED \ + ((NTSTATUS)0xC000070CL) #endif #ifndef STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED -# define STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED ((NTSTATUS) 0xC000070DL) +#define STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED \ + ((NTSTATUS)0xC000070DL) #endif #ifndef STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED -# define STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED ((NTSTATUS) 0xC000070EL) +#define STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED \ + ((NTSTATUS)0xC000070EL) #endif #ifndef STATUS_THREADPOOL_RELEASED_DURING_OPERATION -# define STATUS_THREADPOOL_RELEASED_DURING_OPERATION ((NTSTATUS) 0xC000070FL) +#define STATUS_THREADPOOL_RELEASED_DURING_OPERATION ((NTSTATUS)0xC000070FL) #endif #ifndef STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING -# define STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING ((NTSTATUS) 0xC0000710L) +#define STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING ((NTSTATUS)0xC0000710L) #endif #ifndef STATUS_APC_RETURNED_WHILE_IMPERSONATING -# define STATUS_APC_RETURNED_WHILE_IMPERSONATING ((NTSTATUS) 0xC0000711L) +#define STATUS_APC_RETURNED_WHILE_IMPERSONATING ((NTSTATUS)0xC0000711L) #endif #ifndef STATUS_PROCESS_IS_PROTECTED -# define STATUS_PROCESS_IS_PROTECTED ((NTSTATUS) 0xC0000712L) +#define STATUS_PROCESS_IS_PROTECTED ((NTSTATUS)0xC0000712L) #endif #ifndef STATUS_MCA_EXCEPTION -# define STATUS_MCA_EXCEPTION ((NTSTATUS) 0xC0000713L) +#define STATUS_MCA_EXCEPTION ((NTSTATUS)0xC0000713L) #endif #ifndef STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE -# define STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE ((NTSTATUS) 0xC0000714L) +#define STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE ((NTSTATUS)0xC0000714L) #endif #ifndef STATUS_SYMLINK_CLASS_DISABLED -# define STATUS_SYMLINK_CLASS_DISABLED ((NTSTATUS) 0xC0000715L) +#define STATUS_SYMLINK_CLASS_DISABLED ((NTSTATUS)0xC0000715L) #endif #ifndef STATUS_INVALID_IDN_NORMALIZATION -# define STATUS_INVALID_IDN_NORMALIZATION ((NTSTATUS) 0xC0000716L) +#define STATUS_INVALID_IDN_NORMALIZATION ((NTSTATUS)0xC0000716L) #endif #ifndef STATUS_NO_UNICODE_TRANSLATION -# define STATUS_NO_UNICODE_TRANSLATION ((NTSTATUS) 0xC0000717L) +#define STATUS_NO_UNICODE_TRANSLATION ((NTSTATUS)0xC0000717L) #endif #ifndef STATUS_ALREADY_REGISTERED -# define STATUS_ALREADY_REGISTERED ((NTSTATUS) 0xC0000718L) +#define STATUS_ALREADY_REGISTERED ((NTSTATUS)0xC0000718L) #endif #ifndef STATUS_CONTEXT_MISMATCH -# define STATUS_CONTEXT_MISMATCH ((NTSTATUS) 0xC0000719L) +#define STATUS_CONTEXT_MISMATCH ((NTSTATUS)0xC0000719L) #endif #ifndef STATUS_PORT_ALREADY_HAS_COMPLETION_LIST -# define STATUS_PORT_ALREADY_HAS_COMPLETION_LIST ((NTSTATUS) 0xC000071AL) +#define STATUS_PORT_ALREADY_HAS_COMPLETION_LIST ((NTSTATUS)0xC000071AL) #endif #ifndef STATUS_CALLBACK_RETURNED_THREAD_PRIORITY -# define STATUS_CALLBACK_RETURNED_THREAD_PRIORITY ((NTSTATUS) 0xC000071BL) +#define STATUS_CALLBACK_RETURNED_THREAD_PRIORITY ((NTSTATUS)0xC000071BL) #endif #ifndef STATUS_INVALID_THREAD -# define STATUS_INVALID_THREAD ((NTSTATUS) 0xC000071CL) +#define STATUS_INVALID_THREAD ((NTSTATUS)0xC000071CL) #endif #ifndef STATUS_CALLBACK_RETURNED_TRANSACTION -# define STATUS_CALLBACK_RETURNED_TRANSACTION ((NTSTATUS) 0xC000071DL) +#define STATUS_CALLBACK_RETURNED_TRANSACTION ((NTSTATUS)0xC000071DL) #endif #ifndef STATUS_CALLBACK_RETURNED_LDR_LOCK -# define STATUS_CALLBACK_RETURNED_LDR_LOCK ((NTSTATUS) 0xC000071EL) +#define STATUS_CALLBACK_RETURNED_LDR_LOCK ((NTSTATUS)0xC000071EL) #endif #ifndef STATUS_CALLBACK_RETURNED_LANG -# define STATUS_CALLBACK_RETURNED_LANG ((NTSTATUS) 0xC000071FL) +#define STATUS_CALLBACK_RETURNED_LANG ((NTSTATUS)0xC000071FL) #endif #ifndef STATUS_CALLBACK_RETURNED_PRI_BACK -# define STATUS_CALLBACK_RETURNED_PRI_BACK ((NTSTATUS) 0xC0000720L) +#define STATUS_CALLBACK_RETURNED_PRI_BACK ((NTSTATUS)0xC0000720L) #endif #ifndef STATUS_CALLBACK_RETURNED_THREAD_AFFINITY -# define STATUS_CALLBACK_RETURNED_THREAD_AFFINITY ((NTSTATUS) 0xC0000721L) +#define STATUS_CALLBACK_RETURNED_THREAD_AFFINITY ((NTSTATUS)0xC0000721L) #endif #ifndef STATUS_DISK_REPAIR_DISABLED -# define STATUS_DISK_REPAIR_DISABLED ((NTSTATUS) 0xC0000800L) +#define STATUS_DISK_REPAIR_DISABLED ((NTSTATUS)0xC0000800L) #endif #ifndef STATUS_DS_DOMAIN_RENAME_IN_PROGRESS -# define STATUS_DS_DOMAIN_RENAME_IN_PROGRESS ((NTSTATUS) 0xC0000801L) +#define STATUS_DS_DOMAIN_RENAME_IN_PROGRESS ((NTSTATUS)0xC0000801L) #endif #ifndef STATUS_DISK_QUOTA_EXCEEDED -# define STATUS_DISK_QUOTA_EXCEEDED ((NTSTATUS) 0xC0000802L) +#define STATUS_DISK_QUOTA_EXCEEDED ((NTSTATUS)0xC0000802L) #endif #ifndef STATUS_DATA_LOST_REPAIR -# define STATUS_DATA_LOST_REPAIR ((NTSTATUS) 0x80000803L) +#define STATUS_DATA_LOST_REPAIR ((NTSTATUS)0x80000803L) #endif #ifndef STATUS_CONTENT_BLOCKED -# define STATUS_CONTENT_BLOCKED ((NTSTATUS) 0xC0000804L) +#define STATUS_CONTENT_BLOCKED ((NTSTATUS)0xC0000804L) #endif #ifndef STATUS_BAD_CLUSTERS -# define STATUS_BAD_CLUSTERS ((NTSTATUS) 0xC0000805L) +#define STATUS_BAD_CLUSTERS ((NTSTATUS)0xC0000805L) #endif #ifndef STATUS_VOLUME_DIRTY -# define STATUS_VOLUME_DIRTY ((NTSTATUS) 0xC0000806L) +#define STATUS_VOLUME_DIRTY ((NTSTATUS)0xC0000806L) #endif #ifndef STATUS_FILE_CHECKED_OUT -# define STATUS_FILE_CHECKED_OUT ((NTSTATUS) 0xC0000901L) +#define STATUS_FILE_CHECKED_OUT ((NTSTATUS)0xC0000901L) #endif #ifndef STATUS_CHECKOUT_REQUIRED -# define STATUS_CHECKOUT_REQUIRED ((NTSTATUS) 0xC0000902L) +#define STATUS_CHECKOUT_REQUIRED ((NTSTATUS)0xC0000902L) #endif #ifndef STATUS_BAD_FILE_TYPE -# define STATUS_BAD_FILE_TYPE ((NTSTATUS) 0xC0000903L) +#define STATUS_BAD_FILE_TYPE ((NTSTATUS)0xC0000903L) #endif #ifndef STATUS_FILE_TOO_LARGE -# define STATUS_FILE_TOO_LARGE ((NTSTATUS) 0xC0000904L) +#define STATUS_FILE_TOO_LARGE ((NTSTATUS)0xC0000904L) #endif #ifndef STATUS_FORMS_AUTH_REQUIRED -# define STATUS_FORMS_AUTH_REQUIRED ((NTSTATUS) 0xC0000905L) +#define STATUS_FORMS_AUTH_REQUIRED ((NTSTATUS)0xC0000905L) #endif #ifndef STATUS_VIRUS_INFECTED -# define STATUS_VIRUS_INFECTED ((NTSTATUS) 0xC0000906L) +#define STATUS_VIRUS_INFECTED ((NTSTATUS)0xC0000906L) #endif #ifndef STATUS_VIRUS_DELETED -# define STATUS_VIRUS_DELETED ((NTSTATUS) 0xC0000907L) +#define STATUS_VIRUS_DELETED ((NTSTATUS)0xC0000907L) #endif #ifndef STATUS_BAD_MCFG_TABLE -# define STATUS_BAD_MCFG_TABLE ((NTSTATUS) 0xC0000908L) +#define STATUS_BAD_MCFG_TABLE ((NTSTATUS)0xC0000908L) #endif #ifndef STATUS_CANNOT_BREAK_OPLOCK -# define STATUS_CANNOT_BREAK_OPLOCK ((NTSTATUS) 0xC0000909L) +#define STATUS_CANNOT_BREAK_OPLOCK ((NTSTATUS)0xC0000909L) #endif #ifndef STATUS_WOW_ASSERTION -# define STATUS_WOW_ASSERTION ((NTSTATUS) 0xC0009898L) +#define STATUS_WOW_ASSERTION ((NTSTATUS)0xC0009898L) #endif #ifndef STATUS_INVALID_SIGNATURE -# define STATUS_INVALID_SIGNATURE ((NTSTATUS) 0xC000A000L) +#define STATUS_INVALID_SIGNATURE ((NTSTATUS)0xC000A000L) #endif #ifndef STATUS_HMAC_NOT_SUPPORTED -# define STATUS_HMAC_NOT_SUPPORTED ((NTSTATUS) 0xC000A001L) +#define STATUS_HMAC_NOT_SUPPORTED ((NTSTATUS)0xC000A001L) #endif #ifndef STATUS_AUTH_TAG_MISMATCH -# define STATUS_AUTH_TAG_MISMATCH ((NTSTATUS) 0xC000A002L) +#define STATUS_AUTH_TAG_MISMATCH ((NTSTATUS)0xC000A002L) #endif #ifndef STATUS_IPSEC_QUEUE_OVERFLOW -# define STATUS_IPSEC_QUEUE_OVERFLOW ((NTSTATUS) 0xC000A010L) +#define STATUS_IPSEC_QUEUE_OVERFLOW ((NTSTATUS)0xC000A010L) #endif #ifndef STATUS_ND_QUEUE_OVERFLOW -# define STATUS_ND_QUEUE_OVERFLOW ((NTSTATUS) 0xC000A011L) +#define STATUS_ND_QUEUE_OVERFLOW ((NTSTATUS)0xC000A011L) #endif #ifndef STATUS_HOPLIMIT_EXCEEDED -# define STATUS_HOPLIMIT_EXCEEDED ((NTSTATUS) 0xC000A012L) +#define STATUS_HOPLIMIT_EXCEEDED ((NTSTATUS)0xC000A012L) #endif #ifndef STATUS_PROTOCOL_NOT_SUPPORTED -# define STATUS_PROTOCOL_NOT_SUPPORTED ((NTSTATUS) 0xC000A013L) +#define STATUS_PROTOCOL_NOT_SUPPORTED ((NTSTATUS)0xC000A013L) #endif #ifndef STATUS_FASTPATH_REJECTED -# define STATUS_FASTPATH_REJECTED ((NTSTATUS) 0xC000A014L) +#define STATUS_FASTPATH_REJECTED ((NTSTATUS)0xC000A014L) #endif #ifndef STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED -# define STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED ((NTSTATUS) 0xC000A080L) +#define STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED \ + ((NTSTATUS)0xC000A080L) #endif #ifndef STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR -# define STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR ((NTSTATUS) 0xC000A081L) +#define STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR \ + ((NTSTATUS)0xC000A081L) #endif #ifndef STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR -# define STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR ((NTSTATUS) 0xC000A082L) +#define STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR ((NTSTATUS)0xC000A082L) #endif #ifndef STATUS_XML_PARSE_ERROR -# define STATUS_XML_PARSE_ERROR ((NTSTATUS) 0xC000A083L) +#define STATUS_XML_PARSE_ERROR ((NTSTATUS)0xC000A083L) #endif #ifndef STATUS_XMLDSIG_ERROR -# define STATUS_XMLDSIG_ERROR ((NTSTATUS) 0xC000A084L) +#define STATUS_XMLDSIG_ERROR ((NTSTATUS)0xC000A084L) #endif #ifndef STATUS_WRONG_COMPARTMENT -# define STATUS_WRONG_COMPARTMENT ((NTSTATUS) 0xC000A085L) +#define STATUS_WRONG_COMPARTMENT ((NTSTATUS)0xC000A085L) #endif #ifndef STATUS_AUTHIP_FAILURE -# define STATUS_AUTHIP_FAILURE ((NTSTATUS) 0xC000A086L) +#define STATUS_AUTHIP_FAILURE ((NTSTATUS)0xC000A086L) #endif #ifndef STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS -# define STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS ((NTSTATUS) 0xC000A087L) +#define STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS ((NTSTATUS)0xC000A087L) #endif #ifndef STATUS_DS_OID_NOT_FOUND -# define STATUS_DS_OID_NOT_FOUND ((NTSTATUS) 0xC000A088L) +#define STATUS_DS_OID_NOT_FOUND ((NTSTATUS)0xC000A088L) #endif #ifndef STATUS_HASH_NOT_SUPPORTED -# define STATUS_HASH_NOT_SUPPORTED ((NTSTATUS) 0xC000A100L) +#define STATUS_HASH_NOT_SUPPORTED ((NTSTATUS)0xC000A100L) #endif #ifndef STATUS_HASH_NOT_PRESENT -# define STATUS_HASH_NOT_PRESENT ((NTSTATUS) 0xC000A101L) +#define STATUS_HASH_NOT_PRESENT ((NTSTATUS)0xC000A101L) #endif /* This is not the NTSTATUS_FROM_WIN32 that the DDK provides, because the DDK * got it wrong! */ #ifdef NTSTATUS_FROM_WIN32 -# undef NTSTATUS_FROM_WIN32 +#undef NTSTATUS_FROM_WIN32 #endif -#define NTSTATUS_FROM_WIN32(error) ((NTSTATUS) (error) <= 0 ? \ - ((NTSTATUS) (error)) : ((NTSTATUS) (((error) & 0x0000FFFF) | \ - (FACILITY_NTWIN32 << 16) | ERROR_SEVERITY_WARNING))) +#define NTSTATUS_FROM_WIN32(error) \ + ((NTSTATUS)(error) <= 0 \ + ? ((NTSTATUS)(error)) \ + : ((NTSTATUS)(((error) & 0x0000FFFF) | (FACILITY_NTWIN32 << 16) | \ + ERROR_SEVERITY_WARNING))) #ifndef JOB_OBJECT_LIMIT_PROCESS_MEMORY -# define JOB_OBJECT_LIMIT_PROCESS_MEMORY 0x00000100 +#define JOB_OBJECT_LIMIT_PROCESS_MEMORY 0x00000100 #endif #ifndef JOB_OBJECT_LIMIT_JOB_MEMORY -# define JOB_OBJECT_LIMIT_JOB_MEMORY 0x00000200 +#define JOB_OBJECT_LIMIT_JOB_MEMORY 0x00000200 #endif #ifndef JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION -# define JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION 0x00000400 +#define JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION 0x00000400 #endif #ifndef JOB_OBJECT_LIMIT_BREAKAWAY_OK -# define JOB_OBJECT_LIMIT_BREAKAWAY_OK 0x00000800 +#define JOB_OBJECT_LIMIT_BREAKAWAY_OK 0x00000800 #endif #ifndef JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK -# define JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK 0x00001000 +#define JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK 0x00001000 #endif #ifndef JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE -# define JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE 0x00002000 +#define JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE 0x00002000 #endif #ifndef SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE -# define SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE 0x00000002 +#define SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE 0x00000002 #endif /* from winternl.h */ @@ -4115,49 +4124,49 @@ typedef struct _UNICODE_STRING { USHORT Length; USHORT MaximumLength; - PWSTR Buffer; + PWSTR Buffer; } UNICODE_STRING, *PUNICODE_STRING; typedef const UNICODE_STRING *PCUNICODE_STRING; /* from ntifs.h */ #ifndef DEVICE_TYPE -# define DEVICE_TYPE DWORD +#define DEVICE_TYPE DWORD #endif /* MinGW already has a definition for REPARSE_DATA_BUFFER, but mingw-w64 does * not. */ #if defined(_MSC_VER) || defined(__MINGW64_VERSION_MAJOR) - typedef struct _REPARSE_DATA_BUFFER { - ULONG ReparseTag; - USHORT ReparseDataLength; - USHORT Reserved; - union { - struct { - USHORT SubstituteNameOffset; - USHORT SubstituteNameLength; - USHORT PrintNameOffset; - USHORT PrintNameLength; - ULONG Flags; - WCHAR PathBuffer[1]; - } SymbolicLinkReparseBuffer; - struct { - USHORT SubstituteNameOffset; - USHORT SubstituteNameLength; - USHORT PrintNameOffset; - USHORT PrintNameLength; - WCHAR PathBuffer[1]; - } MountPointReparseBuffer; - struct { - UCHAR DataBuffer[1]; - } GenericReparseBuffer; - struct { - ULONG StringCount; - WCHAR StringList[1]; - } AppExecLinkReparseBuffer; - } u; - } REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER; +typedef struct _REPARSE_DATA_BUFFER { + ULONG ReparseTag; + USHORT ReparseDataLength; + USHORT Reserved; + union { + struct { + USHORT SubstituteNameOffset; + USHORT SubstituteNameLength; + USHORT PrintNameOffset; + USHORT PrintNameLength; + ULONG Flags; + WCHAR PathBuffer[1]; + } SymbolicLinkReparseBuffer; + struct { + USHORT SubstituteNameOffset; + USHORT SubstituteNameLength; + USHORT PrintNameOffset; + USHORT PrintNameLength; + WCHAR PathBuffer[1]; + } MountPointReparseBuffer; + struct { + UCHAR DataBuffer[1]; + } GenericReparseBuffer; + struct { + ULONG StringCount; + WCHAR StringList[1]; + } AppExecLinkReparseBuffer; + } u; +} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER; #endif typedef struct _IO_STATUS_BLOCK { @@ -4225,7 +4234,8 @@ typedef enum _FILE_INFORMATION_CLASS { FileStandardLinkInformation, FileRemoteProtocolInformation, FileMaximumInformation -} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS; +} FILE_INFORMATION_CLASS, + *PFILE_INFORMATION_CLASS; typedef struct _FILE_DIRECTORY_INFORMATION { ULONG NextEntryOffset; @@ -4269,9 +4279,9 @@ typedef struct _FILE_BASIC_INFORMATION { typedef struct _FILE_STANDARD_INFORMATION { LARGE_INTEGER AllocationSize; LARGE_INTEGER EndOfFile; - ULONG NumberOfLinks; - BOOLEAN DeletePending; - BOOLEAN Directory; + ULONG NumberOfLinks; + BOOLEAN DeletePending; + BOOLEAN Directory; } FILE_STANDARD_INFORMATION, *PFILE_STANDARD_INFORMATION; typedef struct _FILE_INTERNAL_INFORMATION { @@ -4304,19 +4314,19 @@ typedef struct _FILE_NAME_INFORMATION { } FILE_NAME_INFORMATION, *PFILE_NAME_INFORMATION; typedef struct _FILE_END_OF_FILE_INFORMATION { - LARGE_INTEGER EndOfFile; + LARGE_INTEGER EndOfFile; } FILE_END_OF_FILE_INFORMATION, *PFILE_END_OF_FILE_INFORMATION; typedef struct _FILE_ALL_INFORMATION { - FILE_BASIC_INFORMATION BasicInformation; - FILE_STANDARD_INFORMATION StandardInformation; - FILE_INTERNAL_INFORMATION InternalInformation; - FILE_EA_INFORMATION EaInformation; - FILE_ACCESS_INFORMATION AccessInformation; - FILE_POSITION_INFORMATION PositionInformation; - FILE_MODE_INFORMATION ModeInformation; + FILE_BASIC_INFORMATION BasicInformation; + FILE_STANDARD_INFORMATION StandardInformation; + FILE_INTERNAL_INFORMATION InternalInformation; + FILE_EA_INFORMATION EaInformation; + FILE_ACCESS_INFORMATION AccessInformation; + FILE_POSITION_INFORMATION PositionInformation; + FILE_MODE_INFORMATION ModeInformation; FILE_ALIGNMENT_INFORMATION AlignmentInformation; - FILE_NAME_INFORMATION NameInformation; + FILE_NAME_INFORMATION NameInformation; } FILE_ALL_INFORMATION, *PFILE_ALL_INFORMATION; typedef struct _FILE_DISPOSITION_INFORMATION { @@ -4336,29 +4346,30 @@ typedef struct _FILE_PIPE_LOCAL_INFORMATION { ULONG NamedPipeEnd; } FILE_PIPE_LOCAL_INFORMATION, *PFILE_PIPE_LOCAL_INFORMATION; -#define FILE_SYNCHRONOUS_IO_ALERT 0x00000010 -#define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020 +#define FILE_SYNCHRONOUS_IO_ALERT 0x00000010 +#define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020 typedef enum _FS_INFORMATION_CLASS { - FileFsVolumeInformation = 1, - FileFsLabelInformation = 2, - FileFsSizeInformation = 3, - FileFsDeviceInformation = 4, - FileFsAttributeInformation = 5, - FileFsControlInformation = 6, - FileFsFullSizeInformation = 7, - FileFsObjectIdInformation = 8, - FileFsDriverPathInformation = 9, - FileFsVolumeFlagsInformation = 10, - FileFsSectorSizeInformation = 11 -} FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS; + FileFsVolumeInformation = 1, + FileFsLabelInformation = 2, + FileFsSizeInformation = 3, + FileFsDeviceInformation = 4, + FileFsAttributeInformation = 5, + FileFsControlInformation = 6, + FileFsFullSizeInformation = 7, + FileFsObjectIdInformation = 8, + FileFsDriverPathInformation = 9, + FileFsVolumeFlagsInformation = 10, + FileFsSectorSizeInformation = 11 +} FS_INFORMATION_CLASS, + *PFS_INFORMATION_CLASS; typedef struct _FILE_FS_VOLUME_INFORMATION { LARGE_INTEGER VolumeCreationTime; - ULONG VolumeSerialNumber; - ULONG VolumeLabelLength; - BOOLEAN SupportsObjects; - WCHAR VolumeLabel[1]; + ULONG VolumeSerialNumber; + ULONG VolumeLabelLength; + BOOLEAN SupportsObjects; + WCHAR VolumeLabel[1]; } FILE_FS_VOLUME_INFORMATION, *PFILE_FS_VOLUME_INFORMATION; typedef struct _FILE_FS_LABEL_INFORMATION { @@ -4369,18 +4380,18 @@ typedef struct _FILE_FS_LABEL_INFORMATION { typedef struct _FILE_FS_SIZE_INFORMATION { LARGE_INTEGER TotalAllocationUnits; LARGE_INTEGER AvailableAllocationUnits; - ULONG SectorsPerAllocationUnit; - ULONG BytesPerSector; + ULONG SectorsPerAllocationUnit; + ULONG BytesPerSector; } FILE_FS_SIZE_INFORMATION, *PFILE_FS_SIZE_INFORMATION; typedef struct _FILE_FS_DEVICE_INFORMATION { DEVICE_TYPE DeviceType; - ULONG Characteristics; + ULONG Characteristics; } FILE_FS_DEVICE_INFORMATION, *PFILE_FS_DEVICE_INFORMATION; typedef struct _FILE_FS_ATTRIBUTE_INFORMATION { ULONG FileSystemAttributes; - LONG MaximumComponentNameLength; + LONG MaximumComponentNameLength; ULONG FileSystemNameLength; WCHAR FileSystemName[1]; } FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION; @@ -4391,15 +4402,15 @@ typedef struct _FILE_FS_CONTROL_INFORMATION { LARGE_INTEGER FreeSpaceStopFiltering; LARGE_INTEGER DefaultQuotaThreshold; LARGE_INTEGER DefaultQuotaLimit; - ULONG FileSystemControlFlags; + ULONG FileSystemControlFlags; } FILE_FS_CONTROL_INFORMATION, *PFILE_FS_CONTROL_INFORMATION; typedef struct _FILE_FS_FULL_SIZE_INFORMATION { LARGE_INTEGER TotalAllocationUnits; LARGE_INTEGER CallerAvailableAllocationUnits; LARGE_INTEGER ActualAvailableAllocationUnits; - ULONG SectorsPerAllocationUnit; - ULONG BytesPerSector; + ULONG SectorsPerAllocationUnit; + ULONG BytesPerSector; } FILE_FS_FULL_SIZE_INFORMATION, *PFILE_FS_FULL_SIZE_INFORMATION; typedef struct _FILE_FS_OBJECTID_INFORMATION { @@ -4409,8 +4420,8 @@ typedef struct _FILE_FS_OBJECTID_INFORMATION { typedef struct _FILE_FS_DRIVER_PATH_INFORMATION { BOOLEAN DriverInPath; - ULONG DriverNameLength; - WCHAR DriverName[1]; + ULONG DriverNameLength; + WCHAR DriverName[1]; } FILE_FS_DRIVER_PATH_INFORMATION, *PFILE_FS_DRIVER_PATH_INFORMATION; typedef struct _FILE_FS_VOLUME_FLAGS_INFORMATION { @@ -4428,40 +4439,41 @@ typedef struct _FILE_FS_SECTOR_SIZE_INFORMATION { } FILE_FS_SECTOR_SIZE_INFORMATION, *PFILE_FS_SECTOR_SIZE_INFORMATION; typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION { - LARGE_INTEGER IdleTime; - LARGE_INTEGER KernelTime; - LARGE_INTEGER UserTime; - LARGE_INTEGER DpcTime; - LARGE_INTEGER InterruptTime; - ULONG InterruptCount; -} SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION, *PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION; + LARGE_INTEGER IdleTime; + LARGE_INTEGER KernelTime; + LARGE_INTEGER UserTime; + LARGE_INTEGER DpcTime; + LARGE_INTEGER InterruptTime; + ULONG InterruptCount; +} SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION, + *PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION; #ifndef SystemProcessorPerformanceInformation -# define SystemProcessorPerformanceInformation 8 +#define SystemProcessorPerformanceInformation 8 #endif #ifndef ProcessConsoleHostProcess -# define ProcessConsoleHostProcess 49 +#define ProcessConsoleHostProcess 49 #endif #ifndef FILE_DEVICE_FILE_SYSTEM -# define FILE_DEVICE_FILE_SYSTEM 0x00000009 +#define FILE_DEVICE_FILE_SYSTEM 0x00000009 #endif #ifndef FILE_DEVICE_NETWORK -# define FILE_DEVICE_NETWORK 0x00000012 +#define FILE_DEVICE_NETWORK 0x00000012 #endif #ifndef METHOD_BUFFERED -# define METHOD_BUFFERED 0 +#define METHOD_BUFFERED 0 #endif #ifndef METHOD_IN_DIRECT -# define METHOD_IN_DIRECT 1 +#define METHOD_IN_DIRECT 1 #endif #ifndef METHOD_OUT_DIRECT -# define METHOD_OUT_DIRECT 2 +#define METHOD_OUT_DIRECT 2 #endif #ifndef METHOD_NEITHER @@ -4469,230 +4481,189 @@ typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION { #endif #ifndef METHOD_DIRECT_TO_HARDWARE -# define METHOD_DIRECT_TO_HARDWARE METHOD_IN_DIRECT +#define METHOD_DIRECT_TO_HARDWARE METHOD_IN_DIRECT #endif #ifndef METHOD_DIRECT_FROM_HARDWARE -# define METHOD_DIRECT_FROM_HARDWARE METHOD_OUT_DIRECT +#define METHOD_DIRECT_FROM_HARDWARE METHOD_OUT_DIRECT #endif #ifndef FILE_ANY_ACCESS -# define FILE_ANY_ACCESS 0 +#define FILE_ANY_ACCESS 0 #endif #ifndef FILE_SPECIAL_ACCESS -# define FILE_SPECIAL_ACCESS (FILE_ANY_ACCESS) +#define FILE_SPECIAL_ACCESS (FILE_ANY_ACCESS) #endif #ifndef FILE_READ_ACCESS -# define FILE_READ_ACCESS 0x0001 +#define FILE_READ_ACCESS 0x0001 #endif #ifndef FILE_WRITE_ACCESS -# define FILE_WRITE_ACCESS 0x0002 +#define FILE_WRITE_ACCESS 0x0002 #endif #ifndef CTL_CODE -# define CTL_CODE(device_type, function, method, access) \ - (((device_type) << 16) | ((access) << 14) | ((function) << 2) | (method)) +#define CTL_CODE(device_type, function, method, access) \ + (((device_type) << 16) | ((access) << 14) | ((function) << 2) | (method)) #endif #ifndef FSCTL_SET_REPARSE_POINT -# define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, \ - 41, \ - METHOD_BUFFERED, \ - FILE_SPECIAL_ACCESS) +#define FSCTL_SET_REPARSE_POINT \ + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) #endif #ifndef FSCTL_GET_REPARSE_POINT -# define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, \ - 42, \ - METHOD_BUFFERED, \ - FILE_ANY_ACCESS) +#define FSCTL_GET_REPARSE_POINT \ + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS) #endif #ifndef FSCTL_DELETE_REPARSE_POINT -# define FSCTL_DELETE_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, \ - 43, \ - METHOD_BUFFERED, \ - FILE_SPECIAL_ACCESS) +#define FSCTL_DELETE_REPARSE_POINT \ + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) #endif #ifndef IO_REPARSE_TAG_SYMLINK -# define IO_REPARSE_TAG_SYMLINK (0xA000000CL) +#define IO_REPARSE_TAG_SYMLINK (0xA000000CL) #endif #ifndef IO_REPARSE_TAG_APPEXECLINK -# define IO_REPARSE_TAG_APPEXECLINK (0x8000001BL) -#endif - -typedef VOID (NTAPI *PIO_APC_ROUTINE) - (PVOID ApcContext, - PIO_STATUS_BLOCK IoStatusBlock, - ULONG Reserved); - -typedef NTSTATUS (NTAPI *sRtlGetVersion) - (PRTL_OSVERSIONINFOW lpVersionInformation); - -typedef ULONG (NTAPI *sRtlNtStatusToDosError) - (NTSTATUS Status); - -typedef NTSTATUS (NTAPI *sNtDeviceIoControlFile) - (HANDLE FileHandle, - HANDLE Event, - PIO_APC_ROUTINE ApcRoutine, - PVOID ApcContext, - PIO_STATUS_BLOCK IoStatusBlock, - ULONG IoControlCode, - PVOID InputBuffer, - ULONG InputBufferLength, - PVOID OutputBuffer, - ULONG OutputBufferLength); - -typedef NTSTATUS (NTAPI *sNtQueryInformationFile) - (HANDLE FileHandle, - PIO_STATUS_BLOCK IoStatusBlock, - PVOID FileInformation, - ULONG Length, - FILE_INFORMATION_CLASS FileInformationClass); - -typedef NTSTATUS (NTAPI *sNtSetInformationFile) - (HANDLE FileHandle, - PIO_STATUS_BLOCK IoStatusBlock, - PVOID FileInformation, - ULONG Length, - FILE_INFORMATION_CLASS FileInformationClass); - -typedef NTSTATUS (NTAPI *sNtQueryVolumeInformationFile) - (HANDLE FileHandle, - PIO_STATUS_BLOCK IoStatusBlock, - PVOID FsInformation, - ULONG Length, - FS_INFORMATION_CLASS FsInformationClass); - -typedef NTSTATUS (NTAPI *sNtQuerySystemInformation) - (UINT SystemInformationClass, - PVOID SystemInformation, - ULONG SystemInformationLength, - PULONG ReturnLength); - -typedef NTSTATUS (NTAPI *sNtQueryDirectoryFile) - (HANDLE FileHandle, - HANDLE Event, - PIO_APC_ROUTINE ApcRoutine, - PVOID ApcContext, - PIO_STATUS_BLOCK IoStatusBlock, - PVOID FileInformation, - ULONG Length, - FILE_INFORMATION_CLASS FileInformationClass, - BOOLEAN ReturnSingleEntry, - PUNICODE_STRING FileName, - BOOLEAN RestartScan - ); - -typedef NTSTATUS (NTAPI *sNtQueryInformationProcess) - (HANDLE ProcessHandle, - UINT ProcessInformationClass, - PVOID ProcessInformation, - ULONG Length, - PULONG ReturnLength); +#define IO_REPARSE_TAG_APPEXECLINK (0x8000001BL) +#endif + +typedef VOID(NTAPI *PIO_APC_ROUTINE)(PVOID ApcContext, + PIO_STATUS_BLOCK IoStatusBlock, + ULONG Reserved); + +typedef NTSTATUS(NTAPI *sRtlGetVersion)( + PRTL_OSVERSIONINFOW lpVersionInformation); + +typedef ULONG(NTAPI *sRtlNtStatusToDosError)(NTSTATUS Status); + +typedef NTSTATUS(NTAPI *sNtDeviceIoControlFile)( + HANDLE FileHandle, HANDLE Event, PIO_APC_ROUTINE ApcRoutine, + PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, ULONG IoControlCode, + PVOID InputBuffer, ULONG InputBufferLength, PVOID OutputBuffer, + ULONG OutputBufferLength); + +typedef NTSTATUS(NTAPI *sNtQueryInformationFile)( + HANDLE FileHandle, PIO_STATUS_BLOCK IoStatusBlock, PVOID FileInformation, + ULONG Length, FILE_INFORMATION_CLASS FileInformationClass); + +typedef NTSTATUS(NTAPI *sNtSetInformationFile)( + HANDLE FileHandle, PIO_STATUS_BLOCK IoStatusBlock, PVOID FileInformation, + ULONG Length, FILE_INFORMATION_CLASS FileInformationClass); + +typedef NTSTATUS(NTAPI *sNtQueryVolumeInformationFile)( + HANDLE FileHandle, PIO_STATUS_BLOCK IoStatusBlock, PVOID FsInformation, + ULONG Length, FS_INFORMATION_CLASS FsInformationClass); + +typedef NTSTATUS(NTAPI *sNtQuerySystemInformation)( + UINT SystemInformationClass, PVOID SystemInformation, + ULONG SystemInformationLength, PULONG ReturnLength); + +typedef NTSTATUS(NTAPI *sNtQueryDirectoryFile)( + HANDLE FileHandle, HANDLE Event, PIO_APC_ROUTINE ApcRoutine, + PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, PVOID FileInformation, + ULONG Length, FILE_INFORMATION_CLASS FileInformationClass, + BOOLEAN ReturnSingleEntry, PUNICODE_STRING FileName, BOOLEAN RestartScan); + +typedef NTSTATUS(NTAPI *sNtQueryInformationProcess)( + HANDLE ProcessHandle, UINT ProcessInformationClass, + PVOID ProcessInformation, ULONG Length, PULONG ReturnLength); /* * Kernel32 headers */ #ifndef FILE_SKIP_COMPLETION_PORT_ON_SUCCESS -# define FILE_SKIP_COMPLETION_PORT_ON_SUCCESS 0x1 +#define FILE_SKIP_COMPLETION_PORT_ON_SUCCESS 0x1 #endif #ifndef FILE_SKIP_SET_EVENT_ON_HANDLE -# define FILE_SKIP_SET_EVENT_ON_HANDLE 0x2 +#define FILE_SKIP_SET_EVENT_ON_HANDLE 0x2 #endif #ifndef SYMBOLIC_LINK_FLAG_DIRECTORY -# define SYMBOLIC_LINK_FLAG_DIRECTORY 0x1 +#define SYMBOLIC_LINK_FLAG_DIRECTORY 0x1 #endif #if defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) - typedef struct _OVERLAPPED_ENTRY { - ULONG_PTR lpCompletionKey; - LPOVERLAPPED lpOverlapped; - ULONG_PTR Internal; - DWORD dwNumberOfBytesTransferred; - } OVERLAPPED_ENTRY, *LPOVERLAPPED_ENTRY; +typedef struct _OVERLAPPED_ENTRY { + ULONG_PTR lpCompletionKey; + LPOVERLAPPED lpOverlapped; + ULONG_PTR Internal; + DWORD dwNumberOfBytesTransferred; +} OVERLAPPED_ENTRY, *LPOVERLAPPED_ENTRY; #endif /* from wincon.h */ #ifndef ENABLE_INSERT_MODE -# define ENABLE_INSERT_MODE 0x20 +#define ENABLE_INSERT_MODE 0x20 #endif #ifndef ENABLE_QUICK_EDIT_MODE -# define ENABLE_QUICK_EDIT_MODE 0x40 +#define ENABLE_QUICK_EDIT_MODE 0x40 #endif #ifndef ENABLE_EXTENDED_FLAGS -# define ENABLE_EXTENDED_FLAGS 0x80 +#define ENABLE_EXTENDED_FLAGS 0x80 #endif /* from winerror.h */ #ifndef ERROR_ELEVATION_REQUIRED -# define ERROR_ELEVATION_REQUIRED 740 +#define ERROR_ELEVATION_REQUIRED 740 #endif #ifndef ERROR_SYMLINK_NOT_SUPPORTED -# define ERROR_SYMLINK_NOT_SUPPORTED 1464 +#define ERROR_SYMLINK_NOT_SUPPORTED 1464 #endif #ifndef ERROR_MUI_FILE_NOT_FOUND -# define ERROR_MUI_FILE_NOT_FOUND 15100 +#define ERROR_MUI_FILE_NOT_FOUND 15100 #endif #ifndef ERROR_MUI_INVALID_FILE -# define ERROR_MUI_INVALID_FILE 15101 +#define ERROR_MUI_INVALID_FILE 15101 #endif #ifndef ERROR_MUI_INVALID_RC_CONFIG -# define ERROR_MUI_INVALID_RC_CONFIG 15102 +#define ERROR_MUI_INVALID_RC_CONFIG 15102 #endif #ifndef ERROR_MUI_INVALID_LOCALE_NAME -# define ERROR_MUI_INVALID_LOCALE_NAME 15103 +#define ERROR_MUI_INVALID_LOCALE_NAME 15103 #endif #ifndef ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME -# define ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME 15104 +#define ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME 15104 #endif #ifndef ERROR_MUI_FILE_NOT_LOADED -# define ERROR_MUI_FILE_NOT_LOADED 15105 +#define ERROR_MUI_FILE_NOT_LOADED 15105 #endif -typedef BOOL (WINAPI *sGetQueuedCompletionStatusEx) - (HANDLE CompletionPort, - LPOVERLAPPED_ENTRY lpCompletionPortEntries, - ULONG ulCount, - PULONG ulNumEntriesRemoved, - DWORD dwMilliseconds, - BOOL fAlertable); +typedef BOOL(WINAPI *sGetQueuedCompletionStatusEx)( + HANDLE CompletionPort, LPOVERLAPPED_ENTRY lpCompletionPortEntries, + ULONG ulCount, PULONG ulNumEntriesRemoved, DWORD dwMilliseconds, + BOOL fAlertable); /* from powerbase.h */ #ifndef DEVICE_NOTIFY_CALLBACK -# define DEVICE_NOTIFY_CALLBACK 2 +#define DEVICE_NOTIFY_CALLBACK 2 #endif #ifndef PBT_APMRESUMEAUTOMATIC -# define PBT_APMRESUMEAUTOMATIC 18 +#define PBT_APMRESUMEAUTOMATIC 18 #endif #ifndef PBT_APMRESUMESUSPEND -# define PBT_APMRESUMESUSPEND 7 +#define PBT_APMRESUMESUSPEND 7 #endif -typedef ULONG CALLBACK _DEVICE_NOTIFY_CALLBACK_ROUTINE( - PVOID Context, - ULONG Type, - PVOID Setting -); -typedef _DEVICE_NOTIFY_CALLBACK_ROUTINE* _PDEVICE_NOTIFY_CALLBACK_ROUTINE; +typedef ULONG CALLBACK _DEVICE_NOTIFY_CALLBACK_ROUTINE(PVOID Context, + ULONG Type, + PVOID Setting); +typedef _DEVICE_NOTIFY_CALLBACK_ROUTINE *_PDEVICE_NOTIFY_CALLBACK_ROUTINE; typedef struct _DEVICE_NOTIFY_SUBSCRIBE_PARAMETERS { _PDEVICE_NOTIFY_CALLBACK_ROUTINE Callback; @@ -4702,41 +4673,31 @@ typedef struct _DEVICE_NOTIFY_SUBSCRIBE_PARAMETERS { typedef PVOID _HPOWERNOTIFY; typedef _HPOWERNOTIFY *_PHPOWERNOTIFY; -typedef DWORD (WINAPI *sPowerRegisterSuspendResumeNotification) - (DWORD Flags, - HANDLE Recipient, - _PHPOWERNOTIFY RegistrationHandle); +typedef DWORD(WINAPI *sPowerRegisterSuspendResumeNotification)( + DWORD Flags, HANDLE Recipient, _PHPOWERNOTIFY RegistrationHandle); /* from Winuser.h */ -typedef VOID (CALLBACK* WINEVENTPROC) - (HWINEVENTHOOK hWinEventHook, - DWORD event, - HWND hwnd, - LONG idObject, - LONG idChild, - DWORD idEventThread, - DWORD dwmsEventTime); - -typedef HWINEVENTHOOK (WINAPI *sSetWinEventHook) - (UINT eventMin, - UINT eventMax, - HMODULE hmodWinEventProc, - WINEVENTPROC lpfnWinEventProc, - DWORD idProcess, - DWORD idThread, - UINT dwflags); +typedef VOID(CALLBACK *WINEVENTPROC)(HWINEVENTHOOK hWinEventHook, DWORD event, + HWND hwnd, LONG idObject, LONG idChild, + DWORD idEventThread, DWORD dwmsEventTime); + +typedef HWINEVENTHOOK(WINAPI *sSetWinEventHook)(UINT eventMin, UINT eventMax, + HMODULE hmodWinEventProc, + WINEVENTPROC lpfnWinEventProc, + DWORD idProcess, DWORD idThread, + UINT dwflags); /* From mstcpip.h */ typedef struct _TCP_INITIAL_RTO_PARAMETERS { USHORT Rtt; - UCHAR MaxSynRetransmissions; + UCHAR MaxSynRetransmissions; } TCP_INITIAL_RTO_PARAMETERS, *PTCP_INITIAL_RTO_PARAMETERS; #ifndef TCP_INITIAL_RTO_NO_SYN_RETRANSMISSIONS -# define TCP_INITIAL_RTO_NO_SYN_RETRANSMISSIONS ((UCHAR) -2) +#define TCP_INITIAL_RTO_NO_SYN_RETRANSMISSIONS ((UCHAR) - 2) #endif #ifndef SIO_TCP_INITIAL_RTO -# define SIO_TCP_INITIAL_RTO _WSAIOW(IOC_VENDOR,17) +#define SIO_TCP_INITIAL_RTO _WSAIOW(IOC_VENDOR, 17) #endif /* Ntdll function pointers */ @@ -4754,16 +4715,15 @@ extern sNtQueryInformationProcess pNtQueryInformationProcess; extern sGetQueuedCompletionStatusEx pGetQueuedCompletionStatusEx; /* Powrprof.dll function pointer */ -extern sPowerRegisterSuspendResumeNotification pPowerRegisterSuspendResumeNotification; +extern sPowerRegisterSuspendResumeNotification + pPowerRegisterSuspendResumeNotification; /* User32.dll function pointer */ extern sSetWinEventHook pSetWinEventHook; /* ws2_32.dll function pointer */ /* mingw doesn't have this definition, so let's declare it here locally */ -typedef int (WINAPI *uv_sGetHostNameW) - (PWSTR, - int); +typedef int(WINAPI *uv_sGetHostNameW)(PWSTR, int); extern uv_sGetHostNameW pGetHostNameW; #endif /* UV_WIN_WINAPI_H_ */ diff --git a/src/libuv/src/win/winsock.h b/src/libuv/src/win/winsock.h index 2af95887..6147833d 100644 --- a/src/libuv/src/win/winsock.h +++ b/src/libuv/src/win/winsock.h @@ -22,44 +22,43 @@ #ifndef UV_WIN_WINSOCK_H_ #define UV_WIN_WINSOCK_H_ -#include #include #include -#include #include +#include +#include #include "winapi.h" - /* * MinGW is missing these too */ #ifndef SO_UPDATE_CONNECT_CONTEXT -# define SO_UPDATE_CONNECT_CONTEXT 0x7010 +#define SO_UPDATE_CONNECT_CONTEXT 0x7010 #endif #ifndef TCP_KEEPALIVE -# define TCP_KEEPALIVE 3 +#define TCP_KEEPALIVE 3 #endif #ifndef IPV6_V6ONLY -# define IPV6_V6ONLY 27 +#define IPV6_V6ONLY 27 #endif #ifndef IPV6_HOPLIMIT -# define IPV6_HOPLIMIT 21 +#define IPV6_HOPLIMIT 21 #endif #ifndef SIO_BASE_HANDLE -# define SIO_BASE_HANDLE 0x48000022 +#define SIO_BASE_HANDLE 0x48000022 #endif #ifndef MCAST_JOIN_SOURCE_GROUP -# define MCAST_JOIN_SOURCE_GROUP 45 +#define MCAST_JOIN_SOURCE_GROUP 45 #endif #ifndef MCAST_LEAVE_SOURCE_GROUP -# define MCAST_LEAVE_SOURCE_GROUP 46 +#define MCAST_LEAVE_SOURCE_GROUP 46 #endif /* @@ -67,19 +66,19 @@ * We only need receive flags so far. */ #ifndef TDI_RECEIVE_NORMAL - #define TDI_RECEIVE_BROADCAST 0x00000004 - #define TDI_RECEIVE_MULTICAST 0x00000008 - #define TDI_RECEIVE_PARTIAL 0x00000010 - #define TDI_RECEIVE_NORMAL 0x00000020 - #define TDI_RECEIVE_EXPEDITED 0x00000040 - #define TDI_RECEIVE_PEEK 0x00000080 - #define TDI_RECEIVE_NO_RESPONSE_EXP 0x00000100 - #define TDI_RECEIVE_COPY_LOOKAHEAD 0x00000200 - #define TDI_RECEIVE_ENTIRE_MESSAGE 0x00000400 - #define TDI_RECEIVE_AT_DISPATCH_LEVEL 0x00000800 - #define TDI_RECEIVE_CONTROL_INFO 0x00001000 - #define TDI_RECEIVE_FORCE_INDICATION 0x00002000 - #define TDI_RECEIVE_NO_PUSH 0x00004000 +#define TDI_RECEIVE_BROADCAST 0x00000004 +#define TDI_RECEIVE_MULTICAST 0x00000008 +#define TDI_RECEIVE_PARTIAL 0x00000010 +#define TDI_RECEIVE_NORMAL 0x00000020 +#define TDI_RECEIVE_EXPEDITED 0x00000040 +#define TDI_RECEIVE_PEEK 0x00000080 +#define TDI_RECEIVE_NO_RESPONSE_EXP 0x00000100 +#define TDI_RECEIVE_COPY_LOOKAHEAD 0x00000200 +#define TDI_RECEIVE_ENTIRE_MESSAGE 0x00000400 +#define TDI_RECEIVE_AT_DISPATCH_LEVEL 0x00000800 +#define TDI_RECEIVE_CONTROL_INFO 0x00001000 +#define TDI_RECEIVE_FORCE_INDICATION 0x00002000 +#define TDI_RECEIVE_NO_PUSH 0x00004000 #endif /* @@ -89,70 +88,67 @@ * call directly, avoiding a bug in winsock's recvfrom implementation. */ -#define AFD_NO_FAST_IO 0x00000001 -#define AFD_OVERLAPPED 0x00000002 -#define AFD_IMMEDIATE 0x00000004 - -#define AFD_POLL_RECEIVE_BIT 0 -#define AFD_POLL_RECEIVE (1 << AFD_POLL_RECEIVE_BIT) -#define AFD_POLL_RECEIVE_EXPEDITED_BIT 1 -#define AFD_POLL_RECEIVE_EXPEDITED (1 << AFD_POLL_RECEIVE_EXPEDITED_BIT) -#define AFD_POLL_SEND_BIT 2 -#define AFD_POLL_SEND (1 << AFD_POLL_SEND_BIT) -#define AFD_POLL_DISCONNECT_BIT 3 -#define AFD_POLL_DISCONNECT (1 << AFD_POLL_DISCONNECT_BIT) -#define AFD_POLL_ABORT_BIT 4 -#define AFD_POLL_ABORT (1 << AFD_POLL_ABORT_BIT) -#define AFD_POLL_LOCAL_CLOSE_BIT 5 -#define AFD_POLL_LOCAL_CLOSE (1 << AFD_POLL_LOCAL_CLOSE_BIT) -#define AFD_POLL_CONNECT_BIT 6 -#define AFD_POLL_CONNECT (1 << AFD_POLL_CONNECT_BIT) -#define AFD_POLL_ACCEPT_BIT 7 -#define AFD_POLL_ACCEPT (1 << AFD_POLL_ACCEPT_BIT) -#define AFD_POLL_CONNECT_FAIL_BIT 8 -#define AFD_POLL_CONNECT_FAIL (1 << AFD_POLL_CONNECT_FAIL_BIT) -#define AFD_POLL_QOS_BIT 9 -#define AFD_POLL_QOS (1 << AFD_POLL_QOS_BIT) -#define AFD_POLL_GROUP_QOS_BIT 10 -#define AFD_POLL_GROUP_QOS (1 << AFD_POLL_GROUP_QOS_BIT) - -#define AFD_NUM_POLL_EVENTS 11 -#define AFD_POLL_ALL ((1 << AFD_NUM_POLL_EVENTS) - 1) +#define AFD_NO_FAST_IO 0x00000001 +#define AFD_OVERLAPPED 0x00000002 +#define AFD_IMMEDIATE 0x00000004 + +#define AFD_POLL_RECEIVE_BIT 0 +#define AFD_POLL_RECEIVE (1 << AFD_POLL_RECEIVE_BIT) +#define AFD_POLL_RECEIVE_EXPEDITED_BIT 1 +#define AFD_POLL_RECEIVE_EXPEDITED (1 << AFD_POLL_RECEIVE_EXPEDITED_BIT) +#define AFD_POLL_SEND_BIT 2 +#define AFD_POLL_SEND (1 << AFD_POLL_SEND_BIT) +#define AFD_POLL_DISCONNECT_BIT 3 +#define AFD_POLL_DISCONNECT (1 << AFD_POLL_DISCONNECT_BIT) +#define AFD_POLL_ABORT_BIT 4 +#define AFD_POLL_ABORT (1 << AFD_POLL_ABORT_BIT) +#define AFD_POLL_LOCAL_CLOSE_BIT 5 +#define AFD_POLL_LOCAL_CLOSE (1 << AFD_POLL_LOCAL_CLOSE_BIT) +#define AFD_POLL_CONNECT_BIT 6 +#define AFD_POLL_CONNECT (1 << AFD_POLL_CONNECT_BIT) +#define AFD_POLL_ACCEPT_BIT 7 +#define AFD_POLL_ACCEPT (1 << AFD_POLL_ACCEPT_BIT) +#define AFD_POLL_CONNECT_FAIL_BIT 8 +#define AFD_POLL_CONNECT_FAIL (1 << AFD_POLL_CONNECT_FAIL_BIT) +#define AFD_POLL_QOS_BIT 9 +#define AFD_POLL_QOS (1 << AFD_POLL_QOS_BIT) +#define AFD_POLL_GROUP_QOS_BIT 10 +#define AFD_POLL_GROUP_QOS (1 << AFD_POLL_GROUP_QOS_BIT) + +#define AFD_NUM_POLL_EVENTS 11 +#define AFD_POLL_ALL ((1 << AFD_NUM_POLL_EVENTS) - 1) typedef struct _AFD_RECV_DATAGRAM_INFO { - LPWSABUF BufferArray; - ULONG BufferCount; - ULONG AfdFlags; - ULONG TdiFlags; - struct sockaddr* Address; - int* AddressLength; + LPWSABUF BufferArray; + ULONG BufferCount; + ULONG AfdFlags; + ULONG TdiFlags; + struct sockaddr *Address; + int *AddressLength; } AFD_RECV_DATAGRAM_INFO, *PAFD_RECV_DATAGRAM_INFO; typedef struct _AFD_RECV_INFO { - LPWSABUF BufferArray; - ULONG BufferCount; - ULONG AfdFlags; - ULONG TdiFlags; + LPWSABUF BufferArray; + ULONG BufferCount; + ULONG AfdFlags; + ULONG TdiFlags; } AFD_RECV_INFO, *PAFD_RECV_INFO; - -#define _AFD_CONTROL_CODE(operation, method) \ - ((FSCTL_AFD_BASE) << 12 | (operation << 2) | method) +#define _AFD_CONTROL_CODE(operation, method) \ + ((FSCTL_AFD_BASE) << 12 | (operation << 2) | method) #define FSCTL_AFD_BASE FILE_DEVICE_NETWORK -#define AFD_RECEIVE 5 -#define AFD_RECEIVE_DATAGRAM 6 -#define AFD_POLL 9 +#define AFD_RECEIVE 5 +#define AFD_RECEIVE_DATAGRAM 6 +#define AFD_POLL 9 -#define IOCTL_AFD_RECEIVE \ - _AFD_CONTROL_CODE(AFD_RECEIVE, METHOD_NEITHER) +#define IOCTL_AFD_RECEIVE _AFD_CONTROL_CODE(AFD_RECEIVE, METHOD_NEITHER) -#define IOCTL_AFD_RECEIVE_DATAGRAM \ - _AFD_CONTROL_CODE(AFD_RECEIVE_DATAGRAM, METHOD_NEITHER) +#define IOCTL_AFD_RECEIVE_DATAGRAM \ + _AFD_CONTROL_CODE(AFD_RECEIVE_DATAGRAM, METHOD_NEITHER) -#define IOCTL_AFD_POLL \ - _AFD_CONTROL_CODE(AFD_POLL, METHOD_BUFFERED) +#define IOCTL_AFD_POLL _AFD_CONTROL_CODE(AFD_POLL, METHOD_BUFFERED) #if defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) typedef struct _IP_ADAPTER_UNICAST_ADDRESS_XP { @@ -172,7 +168,7 @@ typedef struct _IP_ADAPTER_UNICAST_ADDRESS_XP { ULONG ValidLifetime; ULONG PreferredLifetime; ULONG LeaseLifetime; -} IP_ADAPTER_UNICAST_ADDRESS_XP,*PIP_ADAPTER_UNICAST_ADDRESS_XP; +} IP_ADAPTER_UNICAST_ADDRESS_XP, *PIP_ADAPTER_UNICAST_ADDRESS_XP; typedef struct _IP_ADAPTER_UNICAST_ADDRESS_LH { union { @@ -191,11 +187,11 @@ typedef struct _IP_ADAPTER_UNICAST_ADDRESS_LH { ULONG PreferredLifetime; ULONG LeaseLifetime; UINT8 OnLinkPrefixLength; -} IP_ADAPTER_UNICAST_ADDRESS_LH,*PIP_ADAPTER_UNICAST_ADDRESS_LH; +} IP_ADAPTER_UNICAST_ADDRESS_LH, *PIP_ADAPTER_UNICAST_ADDRESS_LH; #endif -int uv__convert_to_localhost_if_unspecified(const struct sockaddr* addr, - struct sockaddr_storage* storage); +int uv__convert_to_localhost_if_unspecified(const struct sockaddr *addr, + struct sockaddr_storage *storage); #endif /* UV_WIN_WINSOCK_H_ */ diff --git a/src/libuv/test/benchmark-list.h b/src/libuv/test/benchmark-list.h index 71e4eab9..8cbd864d 100644 --- a/src/libuv/test/benchmark-list.h +++ b/src/libuv/test/benchmark-list.h @@ -19,145 +19,145 @@ * IN THE SOFTWARE. */ -BENCHMARK_DECLARE (sizes) -BENCHMARK_DECLARE (loop_count) -BENCHMARK_DECLARE (loop_count_timed) -BENCHMARK_DECLARE (ping_pongs) -BENCHMARK_DECLARE (ping_udp) -BENCHMARK_DECLARE (tcp_write_batch) -BENCHMARK_DECLARE (tcp4_pound_100) -BENCHMARK_DECLARE (tcp4_pound_1000) -BENCHMARK_DECLARE (pipe_pound_100) -BENCHMARK_DECLARE (pipe_pound_1000) -BENCHMARK_DECLARE (tcp_pump100_client) -BENCHMARK_DECLARE (tcp_pump1_client) -BENCHMARK_DECLARE (pipe_pump100_client) -BENCHMARK_DECLARE (pipe_pump1_client) - -BENCHMARK_DECLARE (tcp_multi_accept2) -BENCHMARK_DECLARE (tcp_multi_accept4) -BENCHMARK_DECLARE (tcp_multi_accept8) +BENCHMARK_DECLARE(sizes) +BENCHMARK_DECLARE(loop_count) +BENCHMARK_DECLARE(loop_count_timed) +BENCHMARK_DECLARE(ping_pongs) +BENCHMARK_DECLARE(ping_udp) +BENCHMARK_DECLARE(tcp_write_batch) +BENCHMARK_DECLARE(tcp4_pound_100) +BENCHMARK_DECLARE(tcp4_pound_1000) +BENCHMARK_DECLARE(pipe_pound_100) +BENCHMARK_DECLARE(pipe_pound_1000) +BENCHMARK_DECLARE(tcp_pump100_client) +BENCHMARK_DECLARE(tcp_pump1_client) +BENCHMARK_DECLARE(pipe_pump100_client) +BENCHMARK_DECLARE(pipe_pump1_client) + +BENCHMARK_DECLARE(tcp_multi_accept2) +BENCHMARK_DECLARE(tcp_multi_accept4) +BENCHMARK_DECLARE(tcp_multi_accept8) /* Run until X packets have been sent/received. */ -BENCHMARK_DECLARE (udp_pummel_1v1) -BENCHMARK_DECLARE (udp_pummel_1v10) -BENCHMARK_DECLARE (udp_pummel_1v100) -BENCHMARK_DECLARE (udp_pummel_1v1000) -BENCHMARK_DECLARE (udp_pummel_10v10) -BENCHMARK_DECLARE (udp_pummel_10v100) -BENCHMARK_DECLARE (udp_pummel_10v1000) -BENCHMARK_DECLARE (udp_pummel_100v100) -BENCHMARK_DECLARE (udp_pummel_100v1000) -BENCHMARK_DECLARE (udp_pummel_1000v1000) +BENCHMARK_DECLARE(udp_pummel_1v1) +BENCHMARK_DECLARE(udp_pummel_1v10) +BENCHMARK_DECLARE(udp_pummel_1v100) +BENCHMARK_DECLARE(udp_pummel_1v1000) +BENCHMARK_DECLARE(udp_pummel_10v10) +BENCHMARK_DECLARE(udp_pummel_10v100) +BENCHMARK_DECLARE(udp_pummel_10v1000) +BENCHMARK_DECLARE(udp_pummel_100v100) +BENCHMARK_DECLARE(udp_pummel_100v1000) +BENCHMARK_DECLARE(udp_pummel_1000v1000) /* Run until X seconds have elapsed. */ -BENCHMARK_DECLARE (udp_timed_pummel_1v1) -BENCHMARK_DECLARE (udp_timed_pummel_1v10) -BENCHMARK_DECLARE (udp_timed_pummel_1v100) -BENCHMARK_DECLARE (udp_timed_pummel_1v1000) -BENCHMARK_DECLARE (udp_timed_pummel_10v10) -BENCHMARK_DECLARE (udp_timed_pummel_10v100) -BENCHMARK_DECLARE (udp_timed_pummel_10v1000) -BENCHMARK_DECLARE (udp_timed_pummel_100v100) -BENCHMARK_DECLARE (udp_timed_pummel_100v1000) -BENCHMARK_DECLARE (udp_timed_pummel_1000v1000) - -BENCHMARK_DECLARE (getaddrinfo) -BENCHMARK_DECLARE (fs_stat) -BENCHMARK_DECLARE (async1) -BENCHMARK_DECLARE (async2) -BENCHMARK_DECLARE (async4) -BENCHMARK_DECLARE (async8) -BENCHMARK_DECLARE (async_pummel_1) -BENCHMARK_DECLARE (async_pummel_2) -BENCHMARK_DECLARE (async_pummel_4) -BENCHMARK_DECLARE (async_pummel_8) -BENCHMARK_DECLARE (spawn) -BENCHMARK_DECLARE (thread_create) -BENCHMARK_DECLARE (million_async) -BENCHMARK_DECLARE (million_timers) -HELPER_DECLARE (tcp4_blackhole_server) -HELPER_DECLARE (tcp_pump_server) -HELPER_DECLARE (pipe_pump_server) -HELPER_DECLARE (tcp4_echo_server) -HELPER_DECLARE (pipe_echo_server) +BENCHMARK_DECLARE(udp_timed_pummel_1v1) +BENCHMARK_DECLARE(udp_timed_pummel_1v10) +BENCHMARK_DECLARE(udp_timed_pummel_1v100) +BENCHMARK_DECLARE(udp_timed_pummel_1v1000) +BENCHMARK_DECLARE(udp_timed_pummel_10v10) +BENCHMARK_DECLARE(udp_timed_pummel_10v100) +BENCHMARK_DECLARE(udp_timed_pummel_10v1000) +BENCHMARK_DECLARE(udp_timed_pummel_100v100) +BENCHMARK_DECLARE(udp_timed_pummel_100v1000) +BENCHMARK_DECLARE(udp_timed_pummel_1000v1000) + +BENCHMARK_DECLARE(getaddrinfo) +BENCHMARK_DECLARE(fs_stat) +BENCHMARK_DECLARE(async1) +BENCHMARK_DECLARE(async2) +BENCHMARK_DECLARE(async4) +BENCHMARK_DECLARE(async8) +BENCHMARK_DECLARE(async_pummel_1) +BENCHMARK_DECLARE(async_pummel_2) +BENCHMARK_DECLARE(async_pummel_4) +BENCHMARK_DECLARE(async_pummel_8) +BENCHMARK_DECLARE(spawn) +BENCHMARK_DECLARE(thread_create) +BENCHMARK_DECLARE(million_async) +BENCHMARK_DECLARE(million_timers) +HELPER_DECLARE(tcp4_blackhole_server) +HELPER_DECLARE(tcp_pump_server) +HELPER_DECLARE(pipe_pump_server) +HELPER_DECLARE(tcp4_echo_server) +HELPER_DECLARE(pipe_echo_server) TASK_LIST_START - BENCHMARK_ENTRY (sizes) - BENCHMARK_ENTRY (loop_count) - BENCHMARK_ENTRY (loop_count_timed) - - BENCHMARK_ENTRY (ping_pongs) - BENCHMARK_HELPER (ping_pongs, tcp4_echo_server) - - BENCHMARK_ENTRY (tcp_write_batch) - BENCHMARK_HELPER (tcp_write_batch, tcp4_blackhole_server) - - BENCHMARK_ENTRY (tcp_pump100_client) - BENCHMARK_HELPER (tcp_pump100_client, tcp_pump_server) - - BENCHMARK_ENTRY (tcp_pump1_client) - BENCHMARK_HELPER (tcp_pump1_client, tcp_pump_server) - - BENCHMARK_ENTRY (tcp4_pound_100) - BENCHMARK_HELPER (tcp4_pound_100, tcp4_echo_server) - - BENCHMARK_ENTRY (tcp4_pound_1000) - BENCHMARK_HELPER (tcp4_pound_1000, tcp4_echo_server) - - BENCHMARK_ENTRY (pipe_pump100_client) - BENCHMARK_HELPER (pipe_pump100_client, pipe_pump_server) - - BENCHMARK_ENTRY (pipe_pump1_client) - BENCHMARK_HELPER (pipe_pump1_client, pipe_pump_server) - - BENCHMARK_ENTRY (pipe_pound_100) - BENCHMARK_HELPER (pipe_pound_100, pipe_echo_server) - - BENCHMARK_ENTRY (pipe_pound_1000) - BENCHMARK_HELPER (pipe_pound_1000, pipe_echo_server) - - BENCHMARK_ENTRY (tcp_multi_accept2) - BENCHMARK_ENTRY (tcp_multi_accept4) - BENCHMARK_ENTRY (tcp_multi_accept8) - - BENCHMARK_ENTRY (udp_pummel_1v1) - BENCHMARK_ENTRY (udp_pummel_1v10) - BENCHMARK_ENTRY (udp_pummel_1v100) - BENCHMARK_ENTRY (udp_pummel_1v1000) - BENCHMARK_ENTRY (udp_pummel_10v10) - BENCHMARK_ENTRY (udp_pummel_10v100) - BENCHMARK_ENTRY (udp_pummel_10v1000) - BENCHMARK_ENTRY (udp_pummel_100v100) - BENCHMARK_ENTRY (udp_pummel_100v1000) - BENCHMARK_ENTRY (udp_pummel_1000v1000) - - BENCHMARK_ENTRY (udp_timed_pummel_1v1) - BENCHMARK_ENTRY (udp_timed_pummel_1v10) - BENCHMARK_ENTRY (udp_timed_pummel_1v100) - BENCHMARK_ENTRY (udp_timed_pummel_1v1000) - BENCHMARK_ENTRY (udp_timed_pummel_10v10) - BENCHMARK_ENTRY (udp_timed_pummel_10v100) - BENCHMARK_ENTRY (udp_timed_pummel_10v1000) - BENCHMARK_ENTRY (udp_timed_pummel_100v100) - BENCHMARK_ENTRY (udp_timed_pummel_100v1000) - BENCHMARK_ENTRY (udp_timed_pummel_1000v1000) - - BENCHMARK_ENTRY (getaddrinfo) - - BENCHMARK_ENTRY (fs_stat) - - BENCHMARK_ENTRY (async1) - BENCHMARK_ENTRY (async2) - BENCHMARK_ENTRY (async4) - BENCHMARK_ENTRY (async8) - BENCHMARK_ENTRY (async_pummel_1) - BENCHMARK_ENTRY (async_pummel_2) - BENCHMARK_ENTRY (async_pummel_4) - BENCHMARK_ENTRY (async_pummel_8) - - BENCHMARK_ENTRY (spawn) - BENCHMARK_ENTRY (thread_create) - BENCHMARK_ENTRY (million_async) - BENCHMARK_ENTRY (million_timers) +BENCHMARK_ENTRY(sizes) +BENCHMARK_ENTRY(loop_count) +BENCHMARK_ENTRY(loop_count_timed) + +BENCHMARK_ENTRY(ping_pongs) +BENCHMARK_HELPER(ping_pongs, tcp4_echo_server) + +BENCHMARK_ENTRY(tcp_write_batch) +BENCHMARK_HELPER(tcp_write_batch, tcp4_blackhole_server) + +BENCHMARK_ENTRY(tcp_pump100_client) +BENCHMARK_HELPER(tcp_pump100_client, tcp_pump_server) + +BENCHMARK_ENTRY(tcp_pump1_client) +BENCHMARK_HELPER(tcp_pump1_client, tcp_pump_server) + +BENCHMARK_ENTRY(tcp4_pound_100) +BENCHMARK_HELPER(tcp4_pound_100, tcp4_echo_server) + +BENCHMARK_ENTRY(tcp4_pound_1000) +BENCHMARK_HELPER(tcp4_pound_1000, tcp4_echo_server) + +BENCHMARK_ENTRY(pipe_pump100_client) +BENCHMARK_HELPER(pipe_pump100_client, pipe_pump_server) + +BENCHMARK_ENTRY(pipe_pump1_client) +BENCHMARK_HELPER(pipe_pump1_client, pipe_pump_server) + +BENCHMARK_ENTRY(pipe_pound_100) +BENCHMARK_HELPER(pipe_pound_100, pipe_echo_server) + +BENCHMARK_ENTRY(pipe_pound_1000) +BENCHMARK_HELPER(pipe_pound_1000, pipe_echo_server) + +BENCHMARK_ENTRY(tcp_multi_accept2) +BENCHMARK_ENTRY(tcp_multi_accept4) +BENCHMARK_ENTRY(tcp_multi_accept8) + +BENCHMARK_ENTRY(udp_pummel_1v1) +BENCHMARK_ENTRY(udp_pummel_1v10) +BENCHMARK_ENTRY(udp_pummel_1v100) +BENCHMARK_ENTRY(udp_pummel_1v1000) +BENCHMARK_ENTRY(udp_pummel_10v10) +BENCHMARK_ENTRY(udp_pummel_10v100) +BENCHMARK_ENTRY(udp_pummel_10v1000) +BENCHMARK_ENTRY(udp_pummel_100v100) +BENCHMARK_ENTRY(udp_pummel_100v1000) +BENCHMARK_ENTRY(udp_pummel_1000v1000) + +BENCHMARK_ENTRY(udp_timed_pummel_1v1) +BENCHMARK_ENTRY(udp_timed_pummel_1v10) +BENCHMARK_ENTRY(udp_timed_pummel_1v100) +BENCHMARK_ENTRY(udp_timed_pummel_1v1000) +BENCHMARK_ENTRY(udp_timed_pummel_10v10) +BENCHMARK_ENTRY(udp_timed_pummel_10v100) +BENCHMARK_ENTRY(udp_timed_pummel_10v1000) +BENCHMARK_ENTRY(udp_timed_pummel_100v100) +BENCHMARK_ENTRY(udp_timed_pummel_100v1000) +BENCHMARK_ENTRY(udp_timed_pummel_1000v1000) + +BENCHMARK_ENTRY(getaddrinfo) + +BENCHMARK_ENTRY(fs_stat) + +BENCHMARK_ENTRY(async1) +BENCHMARK_ENTRY(async2) +BENCHMARK_ENTRY(async4) +BENCHMARK_ENTRY(async8) +BENCHMARK_ENTRY(async_pummel_1) +BENCHMARK_ENTRY(async_pummel_2) +BENCHMARK_ENTRY(async_pummel_4) +BENCHMARK_ENTRY(async_pummel_8) + +BENCHMARK_ENTRY(spawn) +BENCHMARK_ENTRY(thread_create) +BENCHMARK_ENTRY(million_async) +BENCHMARK_ENTRY(million_timers) TASK_LIST_END diff --git a/src/libuv/test/runner-unix.h b/src/libuv/test/runner-unix.h index e21847f9..b9e46f34 100644 --- a/src/libuv/test/runner-unix.h +++ b/src/libuv/test/runner-unix.h @@ -22,15 +22,15 @@ #ifndef TEST_RUNNER_UNIX_H #define TEST_RUNNER_UNIX_H -#include #include /* FILE */ +#include typedef struct { - FILE* stdout_file; + FILE *stdout_file; pid_t pid; - char* name; + char *name; int status; int terminated; } process_info_t; -#endif /* TEST_RUNNER_UNIX_H */ +#endif /* TEST_RUNNER_UNIX_H */ diff --git a/src/libuv/test/runner-win.h b/src/libuv/test/runner-win.h index 975eed79..c81ce398 100644 --- a/src/libuv/test/runner-win.h +++ b/src/libuv/test/runner-win.h @@ -24,13 +24,12 @@ #pragma warning(disable : 4996) #endif - -#include -#include #include +#include +#include #if !defined(snprintf) && defined(_MSC_VER) && _MSC_VER < 1900 -extern int snprintf(char*, size_t, const char*, ...); +extern int snprintf(char *, size_t, const char *, ...); #endif typedef struct { diff --git a/src/libuv/test/runner.h b/src/libuv/test/runner.h index 6801564f..8c255d5a 100644 --- a/src/libuv/test/runner.h +++ b/src/libuv/test/runner.h @@ -23,8 +23,7 @@ #define RUNNER_H_ #include /* PATH_MAX */ -#include /* FILE */ - +#include /* FILE */ /* * The maximum number of processes (main + helpers) that a test / benchmark @@ -32,7 +31,6 @@ */ #define MAX_PROCESSES 8 - /* * Struct to store both tests and to define helper processes for tasks. */ @@ -49,40 +47,35 @@ typedef struct { int timeout; } task_entry_t, bench_entry_t; - /* * Macros used by test-list.h and benchmark-list.h. */ -#define TASK_LIST_START \ - task_entry_t TASKS[] = { +#define TASK_LIST_START task_entry_t TASKS[] = { -#define TASK_LIST_END \ +#define TASK_LIST_END \ { 0, 0, 0, 0, 0, 0 } \ - }; + } \ + ; -#define TEST_DECLARE(name) \ - int run_test_##name(void); +#define TEST_DECLARE(name) int run_test_##name(void); -#define TEST_ENTRY(name) \ - { #name, #name, &run_test_##name, 0, 0, 5000 }, +#define TEST_ENTRY(name) {#name, #name, &run_test_##name, 0, 0, 5000}, -#define TEST_ENTRY_CUSTOM(name, is_helper, show_output, timeout) \ - { #name, #name, &run_test_##name, is_helper, show_output, timeout }, +#define TEST_ENTRY_CUSTOM(name, is_helper, show_output, timeout) \ + {#name, #name, &run_test_##name, is_helper, show_output, timeout}, -#define BENCHMARK_DECLARE(name) \ - int run_benchmark_##name(void); +#define BENCHMARK_DECLARE(name) int run_benchmark_##name(void); -#define BENCHMARK_ENTRY(name) \ - { #name, #name, &run_benchmark_##name, 0, 0, 60000 }, +#define BENCHMARK_ENTRY(name) \ + {#name, #name, &run_benchmark_##name, 0, 0, 60000}, -#define HELPER_DECLARE(name) \ - int run_helper_##name(void); +#define HELPER_DECLARE(name) int run_helper_##name(void); -#define HELPER_ENTRY(task_name, name) \ - { #task_name, #name, &run_helper_##name, 1, 0, 0 }, +#define HELPER_ENTRY(task_name, name) \ + {#task_name, #name, &run_helper_##name, 1, 0, 0}, -#define TEST_HELPER HELPER_ENTRY -#define BENCHMARK_HELPER HELPER_ENTRY +#define TEST_HELPER HELPER_ENTRY +#define BENCHMARK_HELPER HELPER_ENTRY extern char executable_path[4096]; @@ -90,12 +83,11 @@ extern char executable_path[4096]; * Include platform-dependent definitions */ #ifdef _WIN32 -# include "runner-win.h" +#include "runner-win.h" #else -# include "runner-unix.h" +#include "runner-unix.h" #endif - /* The array that is filled by test-list.h or benchmark-list.h */ extern task_entry_t TASKS[]; @@ -107,23 +99,20 @@ int run_tests(int benchmark_output); /* * Run a single test. Starts up any helpers. */ -int run_test(const char* test, - int benchmark_output, - int test_count); +int run_test(const char *test, int benchmark_output, int test_count); /* * Run a test part, i.e. the test or one of its helpers. */ -int run_test_part(const char* test, const char* part); - +int run_test_part(const char *test, const char *part); /* * Print tests in sorted order to `stream`. Used by `./run-tests --list`. */ -void print_tests(FILE* stream); +void print_tests(FILE *stream); /* Print lines in |buffer| as TAP diagnostics to |stream|. */ -void print_lines(const char* buffer, size_t size, FILE* stream); +void print_lines(const char *buffer, size_t size, FILE *stream); /* * Stuff that should be implemented by test-runner-.h @@ -132,11 +121,11 @@ void print_lines(const char* buffer, size_t size, FILE* stream); */ /* Do platform-specific initialization. */ -void platform_init(int argc, char** argv); +void platform_init(int argc, char **argv); /* Invoke "argv[0] test-name [test-part]". Store process info in *p. Make sure * that all stdio output of the processes is buffered up. */ -int process_start(char *name, char* part, process_info_t *p, int is_helper); +int process_start(char *name, char *part, process_info_t *p, int is_helper); /* Wait for all `n` processes in `vec` to terminate. Time out after `timeout` * msec, or never if timeout == -1. Return 0 if all processes are terminated, @@ -147,15 +136,13 @@ int process_wait(process_info_t *vec, int n, int timeout); long int process_output_size(process_info_t *p); /* Copy the contents of the stdio output buffer to `stream`. */ -int process_copy_output(process_info_t* p, FILE* stream); +int process_copy_output(process_info_t *p, FILE *stream); /* Copy the last line of the stdio output buffer to `buffer` */ -int process_read_last_line(process_info_t *p, - char * buffer, - size_t buffer_len); +int process_read_last_line(process_info_t *p, char *buffer, size_t buffer_len); /* Return the name that was specified when `p` was started by process_start */ -char* process_get_name(process_info_t *p); +char *process_get_name(process_info_t *p); /* Terminate process `p`. */ int process_terminate(process_info_t *p); diff --git a/src/libuv/test/task.h b/src/libuv/test/task.h index 925f1b1c..60a3ba6d 100644 --- a/src/libuv/test/task.h +++ b/src/libuv/test/task.h @@ -24,30 +24,30 @@ #include "uv.h" -#include +#include #include +#include #include #include -#include #if defined(_MSC_VER) && _MSC_VER < 1600 -# include "uv/stdint-msvc2008.h" +#include "uv/stdint-msvc2008.h" #else -# include +#include #endif #if !defined(_WIN32) -# include -# include /* setrlimit() */ +#include /* setrlimit() */ +#include #endif #ifdef __clang__ -# pragma clang diagnostic ignored "-Wvariadic-macros" -# pragma clang diagnostic ignored "-Wc99-extensions" +#pragma clang diagnostic ignored "-Wvariadic-macros" +#pragma clang diagnostic ignored "-Wc99-extensions" #endif #ifdef __GNUC__ -# pragma GCC diagnostic ignored "-Wvariadic-macros" +#pragma GCC diagnostic ignored "-Wvariadic-macros" #endif #define TEST_PORT 9123 @@ -55,147 +55,114 @@ #define TEST_PORT_3 9125 #ifdef _WIN32 -# define TEST_PIPENAME "\\\\?\\pipe\\uv-test" -# define TEST_PIPENAME_2 "\\\\?\\pipe\\uv-test2" -# define TEST_PIPENAME_3 "\\\\?\\pipe\\uv-test3" +#define TEST_PIPENAME "\\\\?\\pipe\\uv-test" +#define TEST_PIPENAME_2 "\\\\?\\pipe\\uv-test2" +#define TEST_PIPENAME_3 "\\\\?\\pipe\\uv-test3" #else -# define TEST_PIPENAME "/tmp/uv-test-sock" -# define TEST_PIPENAME_2 "/tmp/uv-test-sock2" -# define TEST_PIPENAME_3 "/tmp/uv-test-sock3" +#define TEST_PIPENAME "/tmp/uv-test-sock" +#define TEST_PIPENAME_2 "/tmp/uv-test-sock2" +#define TEST_PIPENAME_3 "/tmp/uv-test-sock3" #endif #ifdef _WIN32 -# include -# ifndef S_IRUSR -# define S_IRUSR _S_IREAD -# endif -# ifndef S_IWUSR -# define S_IWUSR _S_IWRITE -# endif +#include +#ifndef S_IRUSR +#define S_IRUSR _S_IREAD +#endif +#ifndef S_IWUSR +#define S_IWUSR _S_IWRITE +#endif #endif #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) -#define container_of(ptr, type, member) \ - ((type *) ((char *) (ptr) - offsetof(type, member))) +#define container_of(ptr, type, member) \ + ((type *)((char *)(ptr) - offsetof(type, member))) -typedef enum { - TCP = 0, - UDP, - PIPE -} stream_type; +typedef enum { TCP = 0, UDP, PIPE } stream_type; /* Die with fatal error. */ -#define FATAL(msg) \ - do { \ - fprintf(stderr, \ - "Fatal error in %s on line %d: %s\n", \ - __FILE__, \ - __LINE__, \ - msg); \ - fflush(stderr); \ - abort(); \ +#define FATAL(msg) \ + do { \ + fprintf(stderr, "Fatal error in %s on line %d: %s\n", __FILE__, __LINE__, \ + msg); \ + fflush(stderr); \ + abort(); \ } while (0) /* Have our own assert, so we are sure it does not get optimized away in * a release build. */ -#define ASSERT(expr) \ - do { \ - if (!(expr)) { \ - fprintf(stderr, \ - "Assertion failed in %s on line %d: %s\n", \ - __FILE__, \ - __LINE__, \ - #expr); \ - abort(); \ - } \ - } while (0) - -#define ASSERT_BASE(a, operator, b, type, conv) \ - do { \ - volatile type eval_a = (type) (a); \ - volatile type eval_b = (type) (b); \ - if (!(eval_a operator eval_b)) { \ - fprintf(stderr, \ - "Assertion failed in %s on line %d: `%s %s %s` " \ - "(%"conv" %s %"conv")\n", \ - __FILE__, \ - __LINE__, \ - #a, \ - #operator, \ - #b, \ - eval_a, \ - #operator, \ - eval_b); \ - abort(); \ - } \ - } while (0) - -#define ASSERT_BASE_STR(expr, a, operator, b, type, conv) \ - do { \ - if (!(expr)) { \ - fprintf(stderr, \ - "Assertion failed in %s on line %d: `%s %s %s` " \ - "(%"conv" %s %"conv")\n", \ - __FILE__, \ - __LINE__, \ - #a, \ - #operator, \ - #b, \ - (type)a, \ - #operator, \ - (type)b); \ - abort(); \ - } \ - } while (0) - -#define ASSERT_BASE_LEN(expr, a, operator, b, conv, len) \ - do { \ - if (!(expr)) { \ - fprintf(stderr, \ - "Assertion failed in %s on line %d: `%s %s %s` " \ - "(%.*"#conv" %s %.*"#conv")\n", \ - __FILE__, \ - __LINE__, \ - #a, \ - #operator, \ - #b, \ - (int)len, \ - a, \ - #operator, \ - (int)len, \ - b); \ - abort(); \ - } \ - } while (0) - -#define ASSERT_BASE_HEX(expr, a, operator, b, size) \ - do { \ - if (!(expr)) { \ - int i; \ - unsigned char* a_ = (unsigned char*)a; \ - unsigned char* b_ = (unsigned char*)b; \ - fprintf(stderr, \ - "Assertion failed in %s on line %d: `%s %s %s` (", \ - __FILE__, \ - __LINE__, \ - #a, \ - #operator, \ - #b); \ - for (i = 0; i < size; ++i) { \ - if (i > 0) fprintf(stderr, ":"); \ - fprintf(stderr, "%02X", a_[i]); \ - } \ - fprintf(stderr, " %s ", #operator); \ - for (i = 0; i < size; ++i) { \ - if (i > 0) fprintf(stderr, ":"); \ - fprintf(stderr, "%02X", b_[i]); \ - } \ - fprintf(stderr, ")\n"); \ - abort(); \ - } \ - } while (0) +#define ASSERT(expr) \ + do { \ + if (!(expr)) { \ + fprintf(stderr, "Assertion failed in %s on line %d: %s\n", __FILE__, \ + __LINE__, #expr); \ + abort(); \ + } \ + } while (0) + +#define ASSERT_BASE(a, operator, b, type, conv) \ + do { \ + volatile type eval_a = (type)(a); \ + volatile type eval_b = (type)(b); \ + if (!(eval_a operator eval_b)) { \ + fprintf(stderr, \ + "Assertion failed in %s on line %d: `%s %s %s` " \ + "(%" conv " %s %" conv ")\n", \ + __FILE__, __LINE__, #a, #operator, #b, eval_a, #operator, \ + eval_b); \ + abort(); \ + } \ + } while (0) + +#define ASSERT_BASE_STR(expr, a, operator, b, type, conv) \ + do { \ + if (!(expr)) { \ + fprintf(stderr, \ + "Assertion failed in %s on line %d: `%s %s %s` " \ + "(%" conv " %s %" conv ")\n", \ + __FILE__, __LINE__, #a, #operator, #b, (type)a, \ + #operator,(type) b); \ + abort(); \ + } \ + } while (0) + +#define ASSERT_BASE_LEN(expr, a, operator, b, conv, len) \ + do { \ + if (!(expr)) { \ + fprintf(stderr, \ + "Assertion failed in %s on line %d: `%s %s %s` " \ + "(%.*" #conv " %s %.*" #conv ")\n", \ + __FILE__, __LINE__, #a, #operator, #b, (int)len, a, \ + #operator,(int) len, b); \ + abort(); \ + } \ + } while (0) + +#define ASSERT_BASE_HEX(expr, a, operator, b, size) \ + do { \ + if (!(expr)) { \ + int i; \ + unsigned char *a_ = (unsigned char *)a; \ + unsigned char *b_ = (unsigned char *)b; \ + fprintf(stderr, "Assertion failed in %s on line %d: `%s %s %s` (", \ + __FILE__, __LINE__, #a, #operator, #b); \ + for (i = 0; i < size; ++i) { \ + if (i > 0) \ + fprintf(stderr, ":"); \ + fprintf(stderr, "%02X", a_[i]); \ + } \ + fprintf(stderr, " %s ", #operator); \ + for (i = 0; i < size; ++i) { \ + if (i > 0) \ + fprintf(stderr, ":"); \ + fprintf(stderr, "%02X", b_[i]); \ + } \ + fprintf(stderr, ")\n"); \ + abort(); \ + } \ + } while (0) #define ASSERT_EQ(a, b) ASSERT_BASE(a, ==, b, int64_t, PRId64) #define ASSERT_GE(a, b) ASSERT_BASE(a, >=, b, int64_t, PRId64) @@ -218,134 +185,127 @@ typedef enum { #define ASSERT_DOUBLE_LT(a, b) ASSERT_BASE(a, <, b, double, "f") #define ASSERT_DOUBLE_NE(a, b) ASSERT_BASE(a, !=, b, double, "f") -#define ASSERT_STR_EQ(a, b) \ - ASSERT_BASE_STR(strcmp(a, b) == 0, a, == , b, char*, "s") +#define ASSERT_STR_EQ(a, b) \ + ASSERT_BASE_STR(strcmp(a, b) == 0, a, ==, b, char *, "s") -#define ASSERT_STR_NE(a, b) \ - ASSERT_BASE_STR(strcmp(a, b) != 0, a, !=, b, char*, "s") +#define ASSERT_STR_NE(a, b) \ + ASSERT_BASE_STR(strcmp(a, b) != 0, a, !=, b, char *, "s") -#define ASSERT_MEM_EQ(a, b, size) \ +#define ASSERT_MEM_EQ(a, b, size) \ ASSERT_BASE_LEN(memcmp(a, b, size) == 0, a, ==, b, s, size) -#define ASSERT_MEM_NE(a, b, size) \ +#define ASSERT_MEM_NE(a, b, size) \ ASSERT_BASE_LEN(memcmp(a, b, size) != 0, a, !=, b, s, size) -#define ASSERT_MEM_HEX_EQ(a, b, size) \ +#define ASSERT_MEM_HEX_EQ(a, b, size) \ ASSERT_BASE_HEX(memcmp(a, b, size) == 0, a, ==, b, size) -#define ASSERT_MEM_HEX_NE(a, b, size) \ +#define ASSERT_MEM_HEX_NE(a, b, size) \ ASSERT_BASE_HEX(memcmp(a, b, size) != 0, a, !=, b, size) -#define ASSERT_NULL(a) \ - ASSERT_BASE(a, ==, NULL, void*, "p") +#define ASSERT_NULL(a) ASSERT_BASE(a, ==, NULL, void *, "p") -#define ASSERT_NOT_NULL(a) \ - ASSERT_BASE(a, !=, NULL, void*, "p") +#define ASSERT_NOT_NULL(a) ASSERT_BASE(a, !=, NULL, void *, "p") -#define ASSERT_PTR_EQ(a, b) \ - ASSERT_BASE(a, ==, b, void*, "p") +#define ASSERT_PTR_EQ(a, b) ASSERT_BASE(a, ==, b, void *, "p") -#define ASSERT_PTR_NE(a, b) \ - ASSERT_BASE(a, !=, b, void*, "p") +#define ASSERT_PTR_NE(a, b) ASSERT_BASE(a, !=, b, void *, "p") /* This macro cleans up the main loop. This is used to avoid valgrind * warnings about memory being "leaked" by the main event loop. */ -#define MAKE_VALGRIND_HAPPY() \ - do { \ - close_loop(uv_default_loop()); \ - ASSERT(0 == uv_loop_close(uv_default_loop())); \ - uv_library_shutdown(); \ +#define MAKE_VALGRIND_HAPPY() \ + do { \ + close_loop(uv_default_loop()); \ + ASSERT(0 == uv_loop_close(uv_default_loop())); \ + uv_library_shutdown(); \ } while (0) /* Just sugar for wrapping the main() for a task or helper. */ -#define TEST_IMPL(name) \ - int run_test_##name(void); \ +#define TEST_IMPL(name) \ + int run_test_##name(void); \ int run_test_##name(void) -#define BENCHMARK_IMPL(name) \ - int run_benchmark_##name(void); \ +#define BENCHMARK_IMPL(name) \ + int run_benchmark_##name(void); \ int run_benchmark_##name(void) -#define HELPER_IMPL(name) \ - int run_helper_##name(void); \ +#define HELPER_IMPL(name) \ + int run_helper_##name(void); \ int run_helper_##name(void) /* Format big numbers nicely. WARNING: leaks memory. */ -const char* fmt(double d); +const char *fmt(double d); /* Reserved test exit codes. */ -enum test_status { - TEST_OK = 0, - TEST_SKIP = 7 -}; - -#define RETURN_OK() \ - do { \ - return TEST_OK; \ +enum test_status { TEST_OK = 0, TEST_SKIP = 7 }; + +#define RETURN_OK() \ + do { \ + return TEST_OK; \ } while (0) -#define RETURN_SKIP(explanation) \ - do { \ - fprintf(stderr, "%s\n", explanation); \ - fflush(stderr); \ - return TEST_SKIP; \ +#define RETURN_SKIP(explanation) \ + do { \ + fprintf(stderr, "%s\n", explanation); \ + fflush(stderr); \ + return TEST_SKIP; \ } while (0) #if !defined(_WIN32) -# define TEST_FILE_LIMIT(num) \ - do { \ - struct rlimit lim; \ - lim.rlim_cur = (num); \ - lim.rlim_max = lim.rlim_cur; \ - if (setrlimit(RLIMIT_NOFILE, &lim)) \ - RETURN_SKIP("File descriptor limit too low."); \ - } while (0) +#define TEST_FILE_LIMIT(num) \ + do { \ + struct rlimit lim; \ + lim.rlim_cur = (num); \ + lim.rlim_max = lim.rlim_cur; \ + if (setrlimit(RLIMIT_NOFILE, &lim)) \ + RETURN_SKIP("File descriptor limit too low."); \ + } while (0) -#else /* defined(_WIN32) */ +#else /* defined(_WIN32) */ -# define TEST_FILE_LIMIT(num) do {} while (0) +#define TEST_FILE_LIMIT(num) \ + do { \ + } while (0) #endif #if !defined(snprintf) && defined(_MSC_VER) && _MSC_VER < 1900 -extern int snprintf(char*, size_t, const char*, ...); +extern int snprintf(char *, size_t, const char *, ...); #endif -#if defined(__clang__) || \ - defined(__GNUC__) || \ - defined(__INTEL_COMPILER) -# define UNUSED __attribute__((unused)) +#if defined(__clang__) || defined(__GNUC__) || defined(__INTEL_COMPILER) +#define UNUSED __attribute__((unused)) #else -# define UNUSED +#define UNUSED #endif #if defined(_WIN32) -#define notify_parent_process() ((void) 0) +#define notify_parent_process() ((void)0) #else extern void notify_parent_process(void); #endif /* Fully close a loop */ -static void close_walk_cb(uv_handle_t* handle, void* arg) { +static void close_walk_cb(uv_handle_t *handle, void *arg) { if (!uv_is_closing(handle)) uv_close(handle, NULL); } -UNUSED static void close_loop(uv_loop_t* loop) { +UNUSED static void close_loop(uv_loop_t *loop) { uv_walk(loop, close_walk_cb, NULL); uv_run(loop, UV_RUN_DEFAULT); } UNUSED static int can_ipv6(void) { - uv_interface_address_t* addr; + uv_interface_address_t *addr; int supported; int count; int i; if (uv_interface_addresses(&addr, &count)) - return 0; /* Assume no IPv6 support on failure. */ + return 0; /* Assume no IPv6 support on failure. */ supported = 0; for (i = 0; supported == 0 && i < count; i += 1) @@ -356,22 +316,21 @@ UNUSED static int can_ipv6(void) { } #if defined(__CYGWIN__) || defined(__MSYS__) || defined(__PASE__) -# define NO_FS_EVENTS "Filesystem watching not supported on this platform." +#define NO_FS_EVENTS "Filesystem watching not supported on this platform." #endif #if defined(__MSYS__) -# define NO_SEND_HANDLE_ON_PIPE \ +#define NO_SEND_HANDLE_ON_PIPE \ "MSYS2 runtime does not support sending handles on pipes." #elif defined(__CYGWIN__) -# define NO_SEND_HANDLE_ON_PIPE \ +#define NO_SEND_HANDLE_ON_PIPE \ "Cygwin runtime does not support sending handles on pipes." #endif #if defined(__MSYS__) -# define NO_SELF_CONNECT \ - "MSYS2 runtime hangs on listen+connect in same process." +#define NO_SELF_CONNECT "MSYS2 runtime hangs on listen+connect in same process." #elif defined(__CYGWIN__) -# define NO_SELF_CONNECT \ +#define NO_SELF_CONNECT \ "Cygwin runtime hangs on listen+connect in same process." #endif diff --git a/src/libuv/test/test-list.h b/src/libuv/test/test-list.h index 1f566861..b5df43ae 100644 --- a/src/libuv/test/test-list.h +++ b/src/libuv/test/test-list.h @@ -21,1140 +21,1140 @@ #include "uv.h" -TEST_DECLARE (platform_output) -TEST_DECLARE (callback_order) -TEST_DECLARE (close_order) -TEST_DECLARE (run_once) -TEST_DECLARE (run_nowait) -TEST_DECLARE (loop_alive) -TEST_DECLARE (loop_close) -TEST_DECLARE (loop_instant_close) -TEST_DECLARE (loop_stop) -TEST_DECLARE (loop_update_time) -TEST_DECLARE (loop_backend_timeout) -TEST_DECLARE (loop_configure) -TEST_DECLARE (default_loop_close) -TEST_DECLARE (barrier_1) -TEST_DECLARE (barrier_2) -TEST_DECLARE (barrier_3) -TEST_DECLARE (barrier_serial_thread) -TEST_DECLARE (barrier_serial_thread_single) -TEST_DECLARE (condvar_1) -TEST_DECLARE (condvar_2) -TEST_DECLARE (condvar_3) -TEST_DECLARE (condvar_4) -TEST_DECLARE (condvar_5) -TEST_DECLARE (semaphore_1) -TEST_DECLARE (semaphore_2) -TEST_DECLARE (semaphore_3) -TEST_DECLARE (tty) +TEST_DECLARE(platform_output) +TEST_DECLARE(callback_order) +TEST_DECLARE(close_order) +TEST_DECLARE(run_once) +TEST_DECLARE(run_nowait) +TEST_DECLARE(loop_alive) +TEST_DECLARE(loop_close) +TEST_DECLARE(loop_instant_close) +TEST_DECLARE(loop_stop) +TEST_DECLARE(loop_update_time) +TEST_DECLARE(loop_backend_timeout) +TEST_DECLARE(loop_configure) +TEST_DECLARE(default_loop_close) +TEST_DECLARE(barrier_1) +TEST_DECLARE(barrier_2) +TEST_DECLARE(barrier_3) +TEST_DECLARE(barrier_serial_thread) +TEST_DECLARE(barrier_serial_thread_single) +TEST_DECLARE(condvar_1) +TEST_DECLARE(condvar_2) +TEST_DECLARE(condvar_3) +TEST_DECLARE(condvar_4) +TEST_DECLARE(condvar_5) +TEST_DECLARE(semaphore_1) +TEST_DECLARE(semaphore_2) +TEST_DECLARE(semaphore_3) +TEST_DECLARE(tty) #ifdef _WIN32 -TEST_DECLARE (tty_raw) -TEST_DECLARE (tty_empty_write) -TEST_DECLARE (tty_large_write) -TEST_DECLARE (tty_raw_cancel) -TEST_DECLARE (tty_duplicate_vt100_fn_key) -TEST_DECLARE (tty_duplicate_alt_modifier_key) -TEST_DECLARE (tty_composing_character) -TEST_DECLARE (tty_cursor_up) -TEST_DECLARE (tty_cursor_down) -TEST_DECLARE (tty_cursor_forward) -TEST_DECLARE (tty_cursor_back) -TEST_DECLARE (tty_cursor_next_line) -TEST_DECLARE (tty_cursor_previous_line) -TEST_DECLARE (tty_cursor_horizontal_move_absolute) -TEST_DECLARE (tty_cursor_move_absolute) -TEST_DECLARE (tty_hide_show_cursor) -TEST_DECLARE (tty_set_cursor_shape) -TEST_DECLARE (tty_erase) -TEST_DECLARE (tty_erase_line) -TEST_DECLARE (tty_set_style) -TEST_DECLARE (tty_save_restore_cursor_position) -TEST_DECLARE (tty_full_reset) -TEST_DECLARE (tty_escape_sequence_processing) +TEST_DECLARE(tty_raw) +TEST_DECLARE(tty_empty_write) +TEST_DECLARE(tty_large_write) +TEST_DECLARE(tty_raw_cancel) +TEST_DECLARE(tty_duplicate_vt100_fn_key) +TEST_DECLARE(tty_duplicate_alt_modifier_key) +TEST_DECLARE(tty_composing_character) +TEST_DECLARE(tty_cursor_up) +TEST_DECLARE(tty_cursor_down) +TEST_DECLARE(tty_cursor_forward) +TEST_DECLARE(tty_cursor_back) +TEST_DECLARE(tty_cursor_next_line) +TEST_DECLARE(tty_cursor_previous_line) +TEST_DECLARE(tty_cursor_horizontal_move_absolute) +TEST_DECLARE(tty_cursor_move_absolute) +TEST_DECLARE(tty_hide_show_cursor) +TEST_DECLARE(tty_set_cursor_shape) +TEST_DECLARE(tty_erase) +TEST_DECLARE(tty_erase_line) +TEST_DECLARE(tty_set_style) +TEST_DECLARE(tty_save_restore_cursor_position) +TEST_DECLARE(tty_full_reset) +TEST_DECLARE(tty_escape_sequence_processing) #endif -TEST_DECLARE (tty_file) -TEST_DECLARE (tty_pty) -TEST_DECLARE (stdio_over_pipes) -TEST_DECLARE (stdio_emulate_iocp) -TEST_DECLARE (ip6_pton) -TEST_DECLARE (ip6_sin6_len) -TEST_DECLARE (connect_unspecified) -TEST_DECLARE (ipc_heavy_traffic_deadlock_bug) -TEST_DECLARE (ipc_listen_before_write) -TEST_DECLARE (ipc_listen_after_write) +TEST_DECLARE(tty_file) +TEST_DECLARE(tty_pty) +TEST_DECLARE(stdio_over_pipes) +TEST_DECLARE(stdio_emulate_iocp) +TEST_DECLARE(ip6_pton) +TEST_DECLARE(ip6_sin6_len) +TEST_DECLARE(connect_unspecified) +TEST_DECLARE(ipc_heavy_traffic_deadlock_bug) +TEST_DECLARE(ipc_listen_before_write) +TEST_DECLARE(ipc_listen_after_write) #ifndef _WIN32 -TEST_DECLARE (ipc_send_recv_pipe) -TEST_DECLARE (ipc_send_recv_pipe_inprocess) +TEST_DECLARE(ipc_send_recv_pipe) +TEST_DECLARE(ipc_send_recv_pipe_inprocess) #endif -TEST_DECLARE (ipc_send_recv_tcp) -TEST_DECLARE (ipc_send_recv_tcp_inprocess) -TEST_DECLARE (ipc_tcp_connection) -TEST_DECLARE (ipc_send_zero) +TEST_DECLARE(ipc_send_recv_tcp) +TEST_DECLARE(ipc_send_recv_tcp_inprocess) +TEST_DECLARE(ipc_tcp_connection) +TEST_DECLARE(ipc_send_zero) #ifndef _WIN32 -TEST_DECLARE (ipc_closed_handle) +TEST_DECLARE(ipc_closed_handle) #endif -TEST_DECLARE (tcp_alloc_cb_fail) -TEST_DECLARE (tcp_ping_pong) -TEST_DECLARE (tcp_ping_pong_vec) -TEST_DECLARE (tcp6_ping_pong) -TEST_DECLARE (tcp6_ping_pong_vec) -TEST_DECLARE (pipe_ping_pong) -TEST_DECLARE (pipe_ping_pong_vec) -TEST_DECLARE (delayed_accept) -TEST_DECLARE (multiple_listen) +TEST_DECLARE(tcp_alloc_cb_fail) +TEST_DECLARE(tcp_ping_pong) +TEST_DECLARE(tcp_ping_pong_vec) +TEST_DECLARE(tcp6_ping_pong) +TEST_DECLARE(tcp6_ping_pong_vec) +TEST_DECLARE(pipe_ping_pong) +TEST_DECLARE(pipe_ping_pong_vec) +TEST_DECLARE(delayed_accept) +TEST_DECLARE(multiple_listen) #ifndef _WIN32 -TEST_DECLARE (tcp_write_after_connect) +TEST_DECLARE(tcp_write_after_connect) #endif -TEST_DECLARE (tcp_writealot) -TEST_DECLARE (tcp_write_fail) -TEST_DECLARE (tcp_try_write) -TEST_DECLARE (tcp_try_write_error) -TEST_DECLARE (tcp_write_queue_order) -TEST_DECLARE (tcp_open) -TEST_DECLARE (tcp_open_twice) -TEST_DECLARE (tcp_open_bound) -TEST_DECLARE (tcp_open_connected) -TEST_DECLARE (tcp_connect_error_after_write) -TEST_DECLARE (tcp_shutdown_after_write) -TEST_DECLARE (tcp_bind_error_addrinuse_connect) -TEST_DECLARE (tcp_bind_error_addrinuse_listen) -TEST_DECLARE (tcp_bind_error_addrnotavail_1) -TEST_DECLARE (tcp_bind_error_addrnotavail_2) -TEST_DECLARE (tcp_bind_error_fault) -TEST_DECLARE (tcp_bind_error_inval) -TEST_DECLARE (tcp_bind_localhost_ok) -TEST_DECLARE (tcp_bind_invalid_flags) -TEST_DECLARE (tcp_bind_writable_flags) -TEST_DECLARE (tcp_listen_without_bind) -TEST_DECLARE (tcp_connect_error_fault) -TEST_DECLARE (tcp_connect_timeout) -TEST_DECLARE (tcp_local_connect_timeout) -TEST_DECLARE (tcp6_local_connect_timeout) -TEST_DECLARE (tcp_close_while_connecting) -TEST_DECLARE (tcp_close) -TEST_DECLARE (tcp_close_reset_accepted) -TEST_DECLARE (tcp_close_reset_accepted_after_shutdown) -TEST_DECLARE (tcp_close_reset_client) -TEST_DECLARE (tcp_close_reset_client_after_shutdown) -TEST_DECLARE (tcp_create_early) -TEST_DECLARE (tcp_create_early_bad_bind) -TEST_DECLARE (tcp_create_early_bad_domain) -TEST_DECLARE (tcp_create_early_accept) +TEST_DECLARE(tcp_writealot) +TEST_DECLARE(tcp_write_fail) +TEST_DECLARE(tcp_try_write) +TEST_DECLARE(tcp_try_write_error) +TEST_DECLARE(tcp_write_queue_order) +TEST_DECLARE(tcp_open) +TEST_DECLARE(tcp_open_twice) +TEST_DECLARE(tcp_open_bound) +TEST_DECLARE(tcp_open_connected) +TEST_DECLARE(tcp_connect_error_after_write) +TEST_DECLARE(tcp_shutdown_after_write) +TEST_DECLARE(tcp_bind_error_addrinuse_connect) +TEST_DECLARE(tcp_bind_error_addrinuse_listen) +TEST_DECLARE(tcp_bind_error_addrnotavail_1) +TEST_DECLARE(tcp_bind_error_addrnotavail_2) +TEST_DECLARE(tcp_bind_error_fault) +TEST_DECLARE(tcp_bind_error_inval) +TEST_DECLARE(tcp_bind_localhost_ok) +TEST_DECLARE(tcp_bind_invalid_flags) +TEST_DECLARE(tcp_bind_writable_flags) +TEST_DECLARE(tcp_listen_without_bind) +TEST_DECLARE(tcp_connect_error_fault) +TEST_DECLARE(tcp_connect_timeout) +TEST_DECLARE(tcp_local_connect_timeout) +TEST_DECLARE(tcp6_local_connect_timeout) +TEST_DECLARE(tcp_close_while_connecting) +TEST_DECLARE(tcp_close) +TEST_DECLARE(tcp_close_reset_accepted) +TEST_DECLARE(tcp_close_reset_accepted_after_shutdown) +TEST_DECLARE(tcp_close_reset_client) +TEST_DECLARE(tcp_close_reset_client_after_shutdown) +TEST_DECLARE(tcp_create_early) +TEST_DECLARE(tcp_create_early_bad_bind) +TEST_DECLARE(tcp_create_early_bad_domain) +TEST_DECLARE(tcp_create_early_accept) #ifndef _WIN32 -TEST_DECLARE (tcp_close_accept) -TEST_DECLARE (tcp_oob) +TEST_DECLARE(tcp_close_accept) +TEST_DECLARE(tcp_oob) #endif -TEST_DECLARE (tcp_flags) -TEST_DECLARE (tcp_write_to_half_open_connection) -TEST_DECLARE (tcp_unexpected_read) -TEST_DECLARE (tcp_read_stop) -TEST_DECLARE (tcp_read_stop_start) -TEST_DECLARE (tcp_bind6_error_addrinuse) -TEST_DECLARE (tcp_bind6_error_addrnotavail) -TEST_DECLARE (tcp_bind6_error_fault) -TEST_DECLARE (tcp_bind6_error_inval) -TEST_DECLARE (tcp_bind6_localhost_ok) -TEST_DECLARE (tcp_write_ready) -TEST_DECLARE (udp_alloc_cb_fail) -TEST_DECLARE (udp_bind) -TEST_DECLARE (udp_bind_reuseaddr) -TEST_DECLARE (udp_connect) -TEST_DECLARE (udp_connect6) -TEST_DECLARE (udp_create_early) -TEST_DECLARE (udp_create_early_bad_bind) -TEST_DECLARE (udp_create_early_bad_domain) -TEST_DECLARE (udp_send_and_recv) -TEST_DECLARE (udp_send_hang_loop) -TEST_DECLARE (udp_send_immediate) -TEST_DECLARE (udp_send_unreachable) -TEST_DECLARE (udp_mmsg) -TEST_DECLARE (udp_multicast_join) -TEST_DECLARE (udp_multicast_join6) -TEST_DECLARE (udp_multicast_ttl) -TEST_DECLARE (udp_multicast_interface) -TEST_DECLARE (udp_multicast_interface6) -TEST_DECLARE (udp_dgram_too_big) -TEST_DECLARE (udp_dual_stack) -TEST_DECLARE (udp_ipv6_only) -TEST_DECLARE (udp_options) -TEST_DECLARE (udp_options6) -TEST_DECLARE (udp_no_autobind) -TEST_DECLARE (udp_open) -TEST_DECLARE (udp_open_twice) -TEST_DECLARE (udp_open_bound) -TEST_DECLARE (udp_open_connect) +TEST_DECLARE(tcp_flags) +TEST_DECLARE(tcp_write_to_half_open_connection) +TEST_DECLARE(tcp_unexpected_read) +TEST_DECLARE(tcp_read_stop) +TEST_DECLARE(tcp_read_stop_start) +TEST_DECLARE(tcp_bind6_error_addrinuse) +TEST_DECLARE(tcp_bind6_error_addrnotavail) +TEST_DECLARE(tcp_bind6_error_fault) +TEST_DECLARE(tcp_bind6_error_inval) +TEST_DECLARE(tcp_bind6_localhost_ok) +TEST_DECLARE(tcp_write_ready) +TEST_DECLARE(udp_alloc_cb_fail) +TEST_DECLARE(udp_bind) +TEST_DECLARE(udp_bind_reuseaddr) +TEST_DECLARE(udp_connect) +TEST_DECLARE(udp_connect6) +TEST_DECLARE(udp_create_early) +TEST_DECLARE(udp_create_early_bad_bind) +TEST_DECLARE(udp_create_early_bad_domain) +TEST_DECLARE(udp_send_and_recv) +TEST_DECLARE(udp_send_hang_loop) +TEST_DECLARE(udp_send_immediate) +TEST_DECLARE(udp_send_unreachable) +TEST_DECLARE(udp_mmsg) +TEST_DECLARE(udp_multicast_join) +TEST_DECLARE(udp_multicast_join6) +TEST_DECLARE(udp_multicast_ttl) +TEST_DECLARE(udp_multicast_interface) +TEST_DECLARE(udp_multicast_interface6) +TEST_DECLARE(udp_dgram_too_big) +TEST_DECLARE(udp_dual_stack) +TEST_DECLARE(udp_ipv6_only) +TEST_DECLARE(udp_options) +TEST_DECLARE(udp_options6) +TEST_DECLARE(udp_no_autobind) +TEST_DECLARE(udp_open) +TEST_DECLARE(udp_open_twice) +TEST_DECLARE(udp_open_bound) +TEST_DECLARE(udp_open_connect) #ifndef _WIN32 -TEST_DECLARE (udp_send_unix) +TEST_DECLARE(udp_send_unix) #endif -TEST_DECLARE (udp_sendmmsg_error) -TEST_DECLARE (udp_try_send) -TEST_DECLARE (pipe_bind_error_addrinuse) -TEST_DECLARE (pipe_bind_error_addrnotavail) -TEST_DECLARE (pipe_bind_error_inval) -TEST_DECLARE (pipe_connect_multiple) -TEST_DECLARE (pipe_listen_without_bind) -TEST_DECLARE (pipe_connect_bad_name) -TEST_DECLARE (pipe_connect_to_file) -TEST_DECLARE (pipe_connect_on_prepare) -TEST_DECLARE (pipe_getsockname) -TEST_DECLARE (pipe_getsockname_abstract) -TEST_DECLARE (pipe_getsockname_blocking) -TEST_DECLARE (pipe_pending_instances) -TEST_DECLARE (pipe_sendmsg) -TEST_DECLARE (pipe_server_close) -TEST_DECLARE (connection_fail) -TEST_DECLARE (connection_fail_doesnt_auto_close) -TEST_DECLARE (shutdown_close_tcp) -TEST_DECLARE (shutdown_close_pipe) -TEST_DECLARE (shutdown_eof) -TEST_DECLARE (shutdown_simultaneous) -TEST_DECLARE (shutdown_twice) -TEST_DECLARE (callback_stack) -TEST_DECLARE (env_vars) -TEST_DECLARE (error_message) -TEST_DECLARE (sys_error) -TEST_DECLARE (timer) -TEST_DECLARE (timer_init) -TEST_DECLARE (timer_again) -TEST_DECLARE (timer_start_twice) -TEST_DECLARE (timer_order) -TEST_DECLARE (timer_huge_timeout) -TEST_DECLARE (timer_huge_repeat) -TEST_DECLARE (timer_run_once) -TEST_DECLARE (timer_from_check) -TEST_DECLARE (timer_is_closing) -TEST_DECLARE (timer_null_callback) -TEST_DECLARE (timer_early_check) -TEST_DECLARE (idle_starvation) -TEST_DECLARE (loop_handles) -TEST_DECLARE (get_loadavg) -TEST_DECLARE (walk_handles) -TEST_DECLARE (watcher_cross_stop) -TEST_DECLARE (ref) -TEST_DECLARE (idle_ref) -TEST_DECLARE (async_ref) -TEST_DECLARE (prepare_ref) -TEST_DECLARE (check_ref) -TEST_DECLARE (unref_in_prepare_cb) -TEST_DECLARE (timer_ref) -TEST_DECLARE (timer_ref2) -TEST_DECLARE (fs_event_ref) -TEST_DECLARE (fs_poll_ref) -TEST_DECLARE (tcp_ref) -TEST_DECLARE (tcp_ref2) -TEST_DECLARE (tcp_ref2b) -TEST_DECLARE (tcp_ref3) -TEST_DECLARE (tcp_ref4) -TEST_DECLARE (udp_ref) -TEST_DECLARE (udp_ref2) -TEST_DECLARE (udp_ref3) -TEST_DECLARE (pipe_ref) -TEST_DECLARE (pipe_ref2) -TEST_DECLARE (pipe_ref3) -TEST_DECLARE (pipe_ref4) +TEST_DECLARE(udp_sendmmsg_error) +TEST_DECLARE(udp_try_send) +TEST_DECLARE(pipe_bind_error_addrinuse) +TEST_DECLARE(pipe_bind_error_addrnotavail) +TEST_DECLARE(pipe_bind_error_inval) +TEST_DECLARE(pipe_connect_multiple) +TEST_DECLARE(pipe_listen_without_bind) +TEST_DECLARE(pipe_connect_bad_name) +TEST_DECLARE(pipe_connect_to_file) +TEST_DECLARE(pipe_connect_on_prepare) +TEST_DECLARE(pipe_getsockname) +TEST_DECLARE(pipe_getsockname_abstract) +TEST_DECLARE(pipe_getsockname_blocking) +TEST_DECLARE(pipe_pending_instances) +TEST_DECLARE(pipe_sendmsg) +TEST_DECLARE(pipe_server_close) +TEST_DECLARE(connection_fail) +TEST_DECLARE(connection_fail_doesnt_auto_close) +TEST_DECLARE(shutdown_close_tcp) +TEST_DECLARE(shutdown_close_pipe) +TEST_DECLARE(shutdown_eof) +TEST_DECLARE(shutdown_simultaneous) +TEST_DECLARE(shutdown_twice) +TEST_DECLARE(callback_stack) +TEST_DECLARE(env_vars) +TEST_DECLARE(error_message) +TEST_DECLARE(sys_error) +TEST_DECLARE(timer) +TEST_DECLARE(timer_init) +TEST_DECLARE(timer_again) +TEST_DECLARE(timer_start_twice) +TEST_DECLARE(timer_order) +TEST_DECLARE(timer_huge_timeout) +TEST_DECLARE(timer_huge_repeat) +TEST_DECLARE(timer_run_once) +TEST_DECLARE(timer_from_check) +TEST_DECLARE(timer_is_closing) +TEST_DECLARE(timer_null_callback) +TEST_DECLARE(timer_early_check) +TEST_DECLARE(idle_starvation) +TEST_DECLARE(loop_handles) +TEST_DECLARE(get_loadavg) +TEST_DECLARE(walk_handles) +TEST_DECLARE(watcher_cross_stop) +TEST_DECLARE(ref) +TEST_DECLARE(idle_ref) +TEST_DECLARE(async_ref) +TEST_DECLARE(prepare_ref) +TEST_DECLARE(check_ref) +TEST_DECLARE(unref_in_prepare_cb) +TEST_DECLARE(timer_ref) +TEST_DECLARE(timer_ref2) +TEST_DECLARE(fs_event_ref) +TEST_DECLARE(fs_poll_ref) +TEST_DECLARE(tcp_ref) +TEST_DECLARE(tcp_ref2) +TEST_DECLARE(tcp_ref2b) +TEST_DECLARE(tcp_ref3) +TEST_DECLARE(tcp_ref4) +TEST_DECLARE(udp_ref) +TEST_DECLARE(udp_ref2) +TEST_DECLARE(udp_ref3) +TEST_DECLARE(pipe_ref) +TEST_DECLARE(pipe_ref2) +TEST_DECLARE(pipe_ref3) +TEST_DECLARE(pipe_ref4) #ifndef _WIN32 -TEST_DECLARE (pipe_close_stdout_read_stdin) +TEST_DECLARE(pipe_close_stdout_read_stdin) #endif -TEST_DECLARE (pipe_set_non_blocking) -TEST_DECLARE (pipe_set_chmod) -TEST_DECLARE (process_ref) -TEST_DECLARE (process_priority) -TEST_DECLARE (has_ref) -TEST_DECLARE (active) -TEST_DECLARE (embed) -TEST_DECLARE (async) -TEST_DECLARE (async_null_cb) -TEST_DECLARE (eintr_handling) -TEST_DECLARE (get_currentexe) -TEST_DECLARE (process_title) -TEST_DECLARE (process_title_big_argv) -TEST_DECLARE (process_title_threadsafe) -TEST_DECLARE (cwd_and_chdir) -TEST_DECLARE (get_memory) -TEST_DECLARE (get_passwd) -TEST_DECLARE (handle_fileno) -TEST_DECLARE (homedir) -TEST_DECLARE (tmpdir) -TEST_DECLARE (hrtime) -TEST_DECLARE (getaddrinfo_fail) -TEST_DECLARE (getaddrinfo_fail_sync) -TEST_DECLARE (getaddrinfo_basic) -TEST_DECLARE (getaddrinfo_basic_sync) -TEST_DECLARE (getaddrinfo_concurrent) -TEST_DECLARE (gethostname) -TEST_DECLARE (getnameinfo_basic_ip4) -TEST_DECLARE (getnameinfo_basic_ip4_sync) -TEST_DECLARE (getnameinfo_basic_ip6) -TEST_DECLARE (getsockname_tcp) -TEST_DECLARE (getsockname_udp) -TEST_DECLARE (gettimeofday) -TEST_DECLARE (test_macros) -TEST_DECLARE (fail_always) -TEST_DECLARE (pass_always) -TEST_DECLARE (socket_buffer_size) -TEST_DECLARE (spawn_fails) +TEST_DECLARE(pipe_set_non_blocking) +TEST_DECLARE(pipe_set_chmod) +TEST_DECLARE(process_ref) +TEST_DECLARE(process_priority) +TEST_DECLARE(has_ref) +TEST_DECLARE(active) +TEST_DECLARE(embed) +TEST_DECLARE(async) +TEST_DECLARE(async_null_cb) +TEST_DECLARE(eintr_handling) +TEST_DECLARE(get_currentexe) +TEST_DECLARE(process_title) +TEST_DECLARE(process_title_big_argv) +TEST_DECLARE(process_title_threadsafe) +TEST_DECLARE(cwd_and_chdir) +TEST_DECLARE(get_memory) +TEST_DECLARE(get_passwd) +TEST_DECLARE(handle_fileno) +TEST_DECLARE(homedir) +TEST_DECLARE(tmpdir) +TEST_DECLARE(hrtime) +TEST_DECLARE(getaddrinfo_fail) +TEST_DECLARE(getaddrinfo_fail_sync) +TEST_DECLARE(getaddrinfo_basic) +TEST_DECLARE(getaddrinfo_basic_sync) +TEST_DECLARE(getaddrinfo_concurrent) +TEST_DECLARE(gethostname) +TEST_DECLARE(getnameinfo_basic_ip4) +TEST_DECLARE(getnameinfo_basic_ip4_sync) +TEST_DECLARE(getnameinfo_basic_ip6) +TEST_DECLARE(getsockname_tcp) +TEST_DECLARE(getsockname_udp) +TEST_DECLARE(gettimeofday) +TEST_DECLARE(test_macros) +TEST_DECLARE(fail_always) +TEST_DECLARE(pass_always) +TEST_DECLARE(socket_buffer_size) +TEST_DECLARE(spawn_fails) #ifndef _WIN32 -TEST_DECLARE (spawn_fails_check_for_waitpid_cleanup) +TEST_DECLARE(spawn_fails_check_for_waitpid_cleanup) #endif -TEST_DECLARE (spawn_empty_env) -TEST_DECLARE (spawn_exit_code) -TEST_DECLARE (spawn_stdout) -TEST_DECLARE (spawn_stdin) -TEST_DECLARE (spawn_stdio_greater_than_3) -TEST_DECLARE (spawn_ignored_stdio) -TEST_DECLARE (spawn_and_kill) -TEST_DECLARE (spawn_detached) -TEST_DECLARE (spawn_and_kill_with_std) -TEST_DECLARE (spawn_and_ping) -TEST_DECLARE (spawn_preserve_env) -TEST_DECLARE (spawn_setuid_fails) -TEST_DECLARE (spawn_setgid_fails) -TEST_DECLARE (spawn_stdout_to_file) -TEST_DECLARE (spawn_stdout_and_stderr_to_file) -TEST_DECLARE (spawn_stdout_and_stderr_to_file2) -TEST_DECLARE (spawn_stdout_and_stderr_to_file_swap) -TEST_DECLARE (spawn_auto_unref) -TEST_DECLARE (spawn_closed_process_io) -TEST_DECLARE (spawn_reads_child_path) -TEST_DECLARE (spawn_inherit_streams) -TEST_DECLARE (spawn_quoted_path) -TEST_DECLARE (spawn_tcp_server) -TEST_DECLARE (fs_poll) -TEST_DECLARE (fs_poll_getpath) -TEST_DECLARE (fs_poll_close_request) -TEST_DECLARE (fs_poll_close_request_multi_start_stop) -TEST_DECLARE (fs_poll_close_request_multi_stop_start) -TEST_DECLARE (fs_poll_close_request_stop_when_active) -TEST_DECLARE (kill) -TEST_DECLARE (kill_invalid_signum) -TEST_DECLARE (fs_file_noent) -TEST_DECLARE (fs_file_nametoolong) -TEST_DECLARE (fs_file_loop) -TEST_DECLARE (fs_file_async) -TEST_DECLARE (fs_file_sync) -TEST_DECLARE (fs_file_write_null_buffer) -TEST_DECLARE (fs_async_dir) -TEST_DECLARE (fs_async_sendfile) -TEST_DECLARE (fs_async_sendfile_nodata) -TEST_DECLARE (fs_mkdtemp) -TEST_DECLARE (fs_mkstemp) -TEST_DECLARE (fs_fstat) -TEST_DECLARE (fs_access) -TEST_DECLARE (fs_chmod) -TEST_DECLARE (fs_copyfile) -TEST_DECLARE (fs_unlink_readonly) +TEST_DECLARE(spawn_empty_env) +TEST_DECLARE(spawn_exit_code) +TEST_DECLARE(spawn_stdout) +TEST_DECLARE(spawn_stdin) +TEST_DECLARE(spawn_stdio_greater_than_3) +TEST_DECLARE(spawn_ignored_stdio) +TEST_DECLARE(spawn_and_kill) +TEST_DECLARE(spawn_detached) +TEST_DECLARE(spawn_and_kill_with_std) +TEST_DECLARE(spawn_and_ping) +TEST_DECLARE(spawn_preserve_env) +TEST_DECLARE(spawn_setuid_fails) +TEST_DECLARE(spawn_setgid_fails) +TEST_DECLARE(spawn_stdout_to_file) +TEST_DECLARE(spawn_stdout_and_stderr_to_file) +TEST_DECLARE(spawn_stdout_and_stderr_to_file2) +TEST_DECLARE(spawn_stdout_and_stderr_to_file_swap) +TEST_DECLARE(spawn_auto_unref) +TEST_DECLARE(spawn_closed_process_io) +TEST_DECLARE(spawn_reads_child_path) +TEST_DECLARE(spawn_inherit_streams) +TEST_DECLARE(spawn_quoted_path) +TEST_DECLARE(spawn_tcp_server) +TEST_DECLARE(fs_poll) +TEST_DECLARE(fs_poll_getpath) +TEST_DECLARE(fs_poll_close_request) +TEST_DECLARE(fs_poll_close_request_multi_start_stop) +TEST_DECLARE(fs_poll_close_request_multi_stop_start) +TEST_DECLARE(fs_poll_close_request_stop_when_active) +TEST_DECLARE(kill) +TEST_DECLARE(kill_invalid_signum) +TEST_DECLARE(fs_file_noent) +TEST_DECLARE(fs_file_nametoolong) +TEST_DECLARE(fs_file_loop) +TEST_DECLARE(fs_file_async) +TEST_DECLARE(fs_file_sync) +TEST_DECLARE(fs_file_write_null_buffer) +TEST_DECLARE(fs_async_dir) +TEST_DECLARE(fs_async_sendfile) +TEST_DECLARE(fs_async_sendfile_nodata) +TEST_DECLARE(fs_mkdtemp) +TEST_DECLARE(fs_mkstemp) +TEST_DECLARE(fs_fstat) +TEST_DECLARE(fs_access) +TEST_DECLARE(fs_chmod) +TEST_DECLARE(fs_copyfile) +TEST_DECLARE(fs_unlink_readonly) #ifdef _WIN32 -TEST_DECLARE (fs_unlink_archive_readonly) +TEST_DECLARE(fs_unlink_archive_readonly) #endif -TEST_DECLARE (fs_chown) -TEST_DECLARE (fs_link) -TEST_DECLARE (fs_readlink) -TEST_DECLARE (fs_realpath) -TEST_DECLARE (fs_symlink) -TEST_DECLARE (fs_symlink_dir) +TEST_DECLARE(fs_chown) +TEST_DECLARE(fs_link) +TEST_DECLARE(fs_readlink) +TEST_DECLARE(fs_realpath) +TEST_DECLARE(fs_symlink) +TEST_DECLARE(fs_symlink_dir) #ifdef _WIN32 -TEST_DECLARE (fs_symlink_junction) -TEST_DECLARE (fs_non_symlink_reparse_point) -TEST_DECLARE (fs_lstat_windows_store_apps) -TEST_DECLARE (fs_open_flags) +TEST_DECLARE(fs_symlink_junction) +TEST_DECLARE(fs_non_symlink_reparse_point) +TEST_DECLARE(fs_lstat_windows_store_apps) +TEST_DECLARE(fs_open_flags) #endif #if defined(_WIN32) && !defined(USING_UV_SHARED) -TEST_DECLARE (fs_fd_hash) +TEST_DECLARE(fs_fd_hash) #endif -TEST_DECLARE (fs_utime) -TEST_DECLARE (fs_utime_round) -TEST_DECLARE (fs_futime) -TEST_DECLARE (fs_lutime) -TEST_DECLARE (fs_file_open_append) -TEST_DECLARE (fs_statfs) -TEST_DECLARE (fs_stat_missing_path) -TEST_DECLARE (fs_read_bufs) -TEST_DECLARE (fs_read_file_eof) -TEST_DECLARE (fs_event_watch_dir) -TEST_DECLARE (fs_event_watch_dir_recursive) +TEST_DECLARE(fs_utime) +TEST_DECLARE(fs_utime_round) +TEST_DECLARE(fs_futime) +TEST_DECLARE(fs_lutime) +TEST_DECLARE(fs_file_open_append) +TEST_DECLARE(fs_statfs) +TEST_DECLARE(fs_stat_missing_path) +TEST_DECLARE(fs_read_bufs) +TEST_DECLARE(fs_read_file_eof) +TEST_DECLARE(fs_event_watch_dir) +TEST_DECLARE(fs_event_watch_dir_recursive) #ifdef _WIN32 -TEST_DECLARE (fs_event_watch_dir_short_path) +TEST_DECLARE(fs_event_watch_dir_short_path) #endif -TEST_DECLARE (fs_event_watch_file) -TEST_DECLARE (fs_event_watch_file_exact_path) -TEST_DECLARE (fs_event_watch_file_twice) -TEST_DECLARE (fs_event_watch_file_current_dir) +TEST_DECLARE(fs_event_watch_file) +TEST_DECLARE(fs_event_watch_file_exact_path) +TEST_DECLARE(fs_event_watch_file_twice) +TEST_DECLARE(fs_event_watch_file_current_dir) #ifdef _WIN32 -TEST_DECLARE (fs_event_watch_file_root_dir) +TEST_DECLARE(fs_event_watch_file_root_dir) #endif -TEST_DECLARE (fs_event_watch_invalid_path) -TEST_DECLARE (fs_event_no_callback_after_close) -TEST_DECLARE (fs_event_no_callback_on_close) -TEST_DECLARE (fs_event_immediate_close) -TEST_DECLARE (fs_event_close_with_pending_event) -TEST_DECLARE (fs_event_close_in_callback) -TEST_DECLARE (fs_event_start_and_close) -TEST_DECLARE (fs_event_error_reporting) -TEST_DECLARE (fs_event_getpath) -TEST_DECLARE (fs_event_stop_in_cb) -TEST_DECLARE (fs_scandir_empty_dir) -TEST_DECLARE (fs_scandir_non_existent_dir) -TEST_DECLARE (fs_scandir_file) -TEST_DECLARE (fs_open_dir) -TEST_DECLARE (fs_readdir_empty_dir) -TEST_DECLARE (fs_readdir_file) -TEST_DECLARE (fs_readdir_non_empty_dir) -TEST_DECLARE (fs_readdir_non_existing_dir) -TEST_DECLARE (fs_rename_to_existing_file) -TEST_DECLARE (fs_write_multiple_bufs) -TEST_DECLARE (fs_read_write_null_arguments) -TEST_DECLARE (get_osfhandle_valid_handle) -TEST_DECLARE (open_osfhandle_valid_handle) -TEST_DECLARE (fs_write_alotof_bufs) -TEST_DECLARE (fs_write_alotof_bufs_with_offset) -TEST_DECLARE (fs_partial_read) -TEST_DECLARE (fs_partial_write) -TEST_DECLARE (fs_file_pos_after_op_with_offset) -TEST_DECLARE (fs_null_req) -TEST_DECLARE (fs_read_dir) +TEST_DECLARE(fs_event_watch_invalid_path) +TEST_DECLARE(fs_event_no_callback_after_close) +TEST_DECLARE(fs_event_no_callback_on_close) +TEST_DECLARE(fs_event_immediate_close) +TEST_DECLARE(fs_event_close_with_pending_event) +TEST_DECLARE(fs_event_close_in_callback) +TEST_DECLARE(fs_event_start_and_close) +TEST_DECLARE(fs_event_error_reporting) +TEST_DECLARE(fs_event_getpath) +TEST_DECLARE(fs_event_stop_in_cb) +TEST_DECLARE(fs_scandir_empty_dir) +TEST_DECLARE(fs_scandir_non_existent_dir) +TEST_DECLARE(fs_scandir_file) +TEST_DECLARE(fs_open_dir) +TEST_DECLARE(fs_readdir_empty_dir) +TEST_DECLARE(fs_readdir_file) +TEST_DECLARE(fs_readdir_non_empty_dir) +TEST_DECLARE(fs_readdir_non_existing_dir) +TEST_DECLARE(fs_rename_to_existing_file) +TEST_DECLARE(fs_write_multiple_bufs) +TEST_DECLARE(fs_read_write_null_arguments) +TEST_DECLARE(get_osfhandle_valid_handle) +TEST_DECLARE(open_osfhandle_valid_handle) +TEST_DECLARE(fs_write_alotof_bufs) +TEST_DECLARE(fs_write_alotof_bufs_with_offset) +TEST_DECLARE(fs_partial_read) +TEST_DECLARE(fs_partial_write) +TEST_DECLARE(fs_file_pos_after_op_with_offset) +TEST_DECLARE(fs_null_req) +TEST_DECLARE(fs_read_dir) #ifdef _WIN32 -TEST_DECLARE (fs_file_pos_write) -TEST_DECLARE (fs_file_pos_append) -TEST_DECLARE (fs_exclusive_sharing_mode) -TEST_DECLARE (fs_file_flag_no_buffering) -TEST_DECLARE (fs_open_readonly_acl) -TEST_DECLARE (fs_fchmod_archive_readonly) -TEST_DECLARE (fs_invalid_mkdir_name) +TEST_DECLARE(fs_file_pos_write) +TEST_DECLARE(fs_file_pos_append) +TEST_DECLARE(fs_exclusive_sharing_mode) +TEST_DECLARE(fs_file_flag_no_buffering) +TEST_DECLARE(fs_open_readonly_acl) +TEST_DECLARE(fs_fchmod_archive_readonly) +TEST_DECLARE(fs_invalid_mkdir_name) #endif -TEST_DECLARE (fs_get_system_error) -TEST_DECLARE (strscpy) -TEST_DECLARE (threadpool_queue_work_simple) -TEST_DECLARE (threadpool_queue_work_einval) -TEST_DECLARE (threadpool_multiple_event_loops) -TEST_DECLARE (threadpool_cancel_getaddrinfo) -TEST_DECLARE (threadpool_cancel_getnameinfo) -TEST_DECLARE (threadpool_cancel_random) -TEST_DECLARE (threadpool_cancel_work) -TEST_DECLARE (threadpool_cancel_fs) -TEST_DECLARE (threadpool_cancel_single) -TEST_DECLARE (thread_local_storage) -TEST_DECLARE (thread_stack_size) -TEST_DECLARE (thread_stack_size_explicit) -TEST_DECLARE (thread_mutex) -TEST_DECLARE (thread_mutex_recursive) -TEST_DECLARE (thread_rwlock) -TEST_DECLARE (thread_rwlock_trylock) -TEST_DECLARE (thread_create) -TEST_DECLARE (thread_equal) -TEST_DECLARE (dlerror) -#if (defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))) && \ +TEST_DECLARE(fs_get_system_error) +TEST_DECLARE(strscpy) +TEST_DECLARE(threadpool_queue_work_simple) +TEST_DECLARE(threadpool_queue_work_einval) +TEST_DECLARE(threadpool_multiple_event_loops) +TEST_DECLARE(threadpool_cancel_getaddrinfo) +TEST_DECLARE(threadpool_cancel_getnameinfo) +TEST_DECLARE(threadpool_cancel_random) +TEST_DECLARE(threadpool_cancel_work) +TEST_DECLARE(threadpool_cancel_fs) +TEST_DECLARE(threadpool_cancel_single) +TEST_DECLARE(thread_local_storage) +TEST_DECLARE(thread_stack_size) +TEST_DECLARE(thread_stack_size_explicit) +TEST_DECLARE(thread_mutex) +TEST_DECLARE(thread_mutex_recursive) +TEST_DECLARE(thread_rwlock) +TEST_DECLARE(thread_rwlock_trylock) +TEST_DECLARE(thread_create) +TEST_DECLARE(thread_equal) +TEST_DECLARE(dlerror) +#if (defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))) && \ !defined(__sun) -TEST_DECLARE (poll_oob) +TEST_DECLARE(poll_oob) #endif -TEST_DECLARE (poll_duplex) -TEST_DECLARE (poll_unidirectional) -TEST_DECLARE (poll_close) -TEST_DECLARE (poll_bad_fdtype) +TEST_DECLARE(poll_duplex) +TEST_DECLARE(poll_unidirectional) +TEST_DECLARE(poll_close) +TEST_DECLARE(poll_bad_fdtype) #ifdef __linux__ -TEST_DECLARE (poll_nested_epoll) +TEST_DECLARE(poll_nested_epoll) #endif #ifdef UV_HAVE_KQUEUE -TEST_DECLARE (poll_nested_kqueue) +TEST_DECLARE(poll_nested_kqueue) #endif -TEST_DECLARE (poll_multiple_handles) +TEST_DECLARE(poll_multiple_handles) -TEST_DECLARE (ip4_addr) -TEST_DECLARE (ip6_addr_link_local) -TEST_DECLARE (ip_name) +TEST_DECLARE(ip4_addr) +TEST_DECLARE(ip6_addr_link_local) +TEST_DECLARE(ip_name) -TEST_DECLARE (poll_close_doesnt_corrupt_stack) -TEST_DECLARE (poll_closesocket) -TEST_DECLARE (close_fd) -TEST_DECLARE (closed_fd_events) -TEST_DECLARE (spawn_fs_open) +TEST_DECLARE(poll_close_doesnt_corrupt_stack) +TEST_DECLARE(poll_closesocket) +TEST_DECLARE(close_fd) +TEST_DECLARE(closed_fd_events) +TEST_DECLARE(spawn_fs_open) #ifdef _WIN32 -TEST_DECLARE (spawn_detect_pipe_name_collisions_on_windows) +TEST_DECLARE(spawn_detect_pipe_name_collisions_on_windows) #if !defined(USING_UV_SHARED) -TEST_DECLARE (argument_escaping) -TEST_DECLARE (environment_creation) +TEST_DECLARE(argument_escaping) +TEST_DECLARE(environment_creation) #endif -TEST_DECLARE (listen_with_simultaneous_accepts) -TEST_DECLARE (listen_no_simultaneous_accepts) -TEST_DECLARE (fs_stat_root) -TEST_DECLARE (spawn_with_an_odd_path) -TEST_DECLARE (ipc_listen_after_bind_twice) -TEST_DECLARE (win32_signum_number) +TEST_DECLARE(listen_with_simultaneous_accepts) +TEST_DECLARE(listen_no_simultaneous_accepts) +TEST_DECLARE(fs_stat_root) +TEST_DECLARE(spawn_with_an_odd_path) +TEST_DECLARE(ipc_listen_after_bind_twice) +TEST_DECLARE(win32_signum_number) #else -TEST_DECLARE (emfile) -TEST_DECLARE (spawn_setuid_setgid) -TEST_DECLARE (we_get_signal) -TEST_DECLARE (we_get_signals) -TEST_DECLARE (we_get_signal_one_shot) -TEST_DECLARE (we_get_signals_mixed) -TEST_DECLARE (signal_multiple_loops) -TEST_DECLARE (signal_pending_on_close) -TEST_DECLARE (signal_close_loop_alive) +TEST_DECLARE(emfile) +TEST_DECLARE(spawn_setuid_setgid) +TEST_DECLARE(we_get_signal) +TEST_DECLARE(we_get_signals) +TEST_DECLARE(we_get_signal_one_shot) +TEST_DECLARE(we_get_signals_mixed) +TEST_DECLARE(signal_multiple_loops) +TEST_DECLARE(signal_pending_on_close) +TEST_DECLARE(signal_close_loop_alive) #endif #ifdef __APPLE__ -TEST_DECLARE (osx_select) -TEST_DECLARE (osx_select_many_fds) +TEST_DECLARE(osx_select) +TEST_DECLARE(osx_select_many_fds) #endif -HELPER_DECLARE (tcp4_echo_server) -HELPER_DECLARE (tcp6_echo_server) -HELPER_DECLARE (udp4_echo_server) -HELPER_DECLARE (pipe_echo_server) +HELPER_DECLARE(tcp4_echo_server) +HELPER_DECLARE(tcp6_echo_server) +HELPER_DECLARE(udp4_echo_server) +HELPER_DECLARE(pipe_echo_server) -TEST_DECLARE (queue_foreach_delete) +TEST_DECLARE(queue_foreach_delete) -TEST_DECLARE (random_async) -TEST_DECLARE (random_sync) +TEST_DECLARE(random_async) +TEST_DECLARE(random_sync) -TEST_DECLARE (handle_type_name) -TEST_DECLARE (req_type_name) -TEST_DECLARE (getters_setters) +TEST_DECLARE(handle_type_name) +TEST_DECLARE(req_type_name) +TEST_DECLARE(getters_setters) -TEST_DECLARE (not_writable_after_shutdown) -TEST_DECLARE (not_readable_nor_writable_on_read_error) -TEST_DECLARE (readable_on_eof) +TEST_DECLARE(not_writable_after_shutdown) +TEST_DECLARE(not_readable_nor_writable_on_read_error) +TEST_DECLARE(readable_on_eof) #ifndef _WIN32 -TEST_DECLARE (fork_timer) -TEST_DECLARE (fork_socketpair) -TEST_DECLARE (fork_socketpair_started) -TEST_DECLARE (fork_signal_to_child) -TEST_DECLARE (fork_signal_to_child_closed) -#ifndef __APPLE__ /* This is forbidden in a fork child: The process has forked - and you cannot use this CoreFoundation functionality +TEST_DECLARE(fork_timer) +TEST_DECLARE(fork_socketpair) +TEST_DECLARE(fork_socketpair_started) +TEST_DECLARE(fork_signal_to_child) +TEST_DECLARE(fork_signal_to_child_closed) +#ifndef __APPLE__ /* This is forbidden in a fork child: The process has forked \ + and you cannot use this CoreFoundation functionality \ safely. You MUST exec(). */ -TEST_DECLARE (fork_fs_events_child) -TEST_DECLARE (fork_fs_events_child_dir) -TEST_DECLARE (fork_fs_events_file_parent_child) +TEST_DECLARE(fork_fs_events_child) +TEST_DECLARE(fork_fs_events_child_dir) +TEST_DECLARE(fork_fs_events_file_parent_child) #endif #ifndef __MVS__ -TEST_DECLARE (fork_threadpool_queue_work_simple) +TEST_DECLARE(fork_threadpool_queue_work_simple) #endif #endif -TEST_DECLARE (idna_toascii) -TEST_DECLARE (utf8_decode1) -TEST_DECLARE (utf8_decode1_overrun) -TEST_DECLARE (uname) +TEST_DECLARE(idna_toascii) +TEST_DECLARE(utf8_decode1) +TEST_DECLARE(utf8_decode1_overrun) +TEST_DECLARE(uname) -TEST_DECLARE (metrics_idle_time) -TEST_DECLARE (metrics_idle_time_thread) -TEST_DECLARE (metrics_idle_time_zero) +TEST_DECLARE(metrics_idle_time) +TEST_DECLARE(metrics_idle_time_thread) +TEST_DECLARE(metrics_idle_time_zero) TASK_LIST_START - TEST_ENTRY_CUSTOM (platform_output, 0, 1, 5000) +TEST_ENTRY_CUSTOM(platform_output, 0, 1, 5000) #if 0 TEST_ENTRY (callback_order) #endif - TEST_ENTRY (test_macros) - TEST_ENTRY (close_order) - TEST_ENTRY (run_once) - TEST_ENTRY (run_nowait) - TEST_ENTRY (loop_alive) - TEST_ENTRY (loop_close) - TEST_ENTRY (loop_instant_close) - TEST_ENTRY (loop_stop) - TEST_ENTRY (loop_update_time) - TEST_ENTRY (loop_backend_timeout) - TEST_ENTRY (loop_configure) - TEST_ENTRY (default_loop_close) - TEST_ENTRY (barrier_1) - TEST_ENTRY (barrier_2) - TEST_ENTRY (barrier_3) - TEST_ENTRY (barrier_serial_thread) - TEST_ENTRY (barrier_serial_thread_single) - TEST_ENTRY (condvar_1) - TEST_ENTRY (condvar_2) - TEST_ENTRY (condvar_3) - TEST_ENTRY (condvar_4) - TEST_ENTRY (condvar_5) - TEST_ENTRY (semaphore_1) - TEST_ENTRY (semaphore_2) - TEST_ENTRY (semaphore_3) - - TEST_ENTRY (pipe_connect_bad_name) - TEST_ENTRY (pipe_connect_to_file) - TEST_ENTRY (pipe_connect_on_prepare) - - TEST_ENTRY (pipe_server_close) +TEST_ENTRY(test_macros) +TEST_ENTRY(close_order) +TEST_ENTRY(run_once) +TEST_ENTRY(run_nowait) +TEST_ENTRY(loop_alive) +TEST_ENTRY(loop_close) +TEST_ENTRY(loop_instant_close) +TEST_ENTRY(loop_stop) +TEST_ENTRY(loop_update_time) +TEST_ENTRY(loop_backend_timeout) +TEST_ENTRY(loop_configure) +TEST_ENTRY(default_loop_close) +TEST_ENTRY(barrier_1) +TEST_ENTRY(barrier_2) +TEST_ENTRY(barrier_3) +TEST_ENTRY(barrier_serial_thread) +TEST_ENTRY(barrier_serial_thread_single) +TEST_ENTRY(condvar_1) +TEST_ENTRY(condvar_2) +TEST_ENTRY(condvar_3) +TEST_ENTRY(condvar_4) +TEST_ENTRY(condvar_5) +TEST_ENTRY(semaphore_1) +TEST_ENTRY(semaphore_2) +TEST_ENTRY(semaphore_3) + +TEST_ENTRY(pipe_connect_bad_name) +TEST_ENTRY(pipe_connect_to_file) +TEST_ENTRY(pipe_connect_on_prepare) + +TEST_ENTRY(pipe_server_close) #ifndef _WIN32 - TEST_ENTRY (pipe_close_stdout_read_stdin) +TEST_ENTRY(pipe_close_stdout_read_stdin) #endif - /* Seems to be either about 0.5s or 5s, depending on the OS. */ - TEST_ENTRY_CUSTOM (pipe_set_non_blocking, 0, 0, 20000) - TEST_ENTRY (pipe_set_chmod) - TEST_ENTRY (tty) +/* Seems to be either about 0.5s or 5s, depending on the OS. */ +TEST_ENTRY_CUSTOM(pipe_set_non_blocking, 0, 0, 20000) +TEST_ENTRY(pipe_set_chmod) +TEST_ENTRY(tty) #ifdef _WIN32 - TEST_ENTRY (tty_raw) - TEST_ENTRY (tty_empty_write) - TEST_ENTRY (tty_large_write) - TEST_ENTRY (tty_raw_cancel) - TEST_ENTRY (tty_duplicate_vt100_fn_key) - TEST_ENTRY (tty_duplicate_alt_modifier_key) - TEST_ENTRY (tty_composing_character) - TEST_ENTRY (tty_cursor_up) - TEST_ENTRY (tty_cursor_down) - TEST_ENTRY (tty_cursor_forward) - TEST_ENTRY (tty_cursor_back) - TEST_ENTRY (tty_cursor_next_line) - TEST_ENTRY (tty_cursor_previous_line) - TEST_ENTRY (tty_cursor_horizontal_move_absolute) - TEST_ENTRY (tty_cursor_move_absolute) - TEST_ENTRY (tty_hide_show_cursor) - TEST_ENTRY (tty_set_cursor_shape) - TEST_ENTRY (tty_erase) - TEST_ENTRY (tty_erase_line) - TEST_ENTRY (tty_set_style) - TEST_ENTRY (tty_save_restore_cursor_position) - TEST_ENTRY (tty_full_reset) - TEST_ENTRY (tty_escape_sequence_processing) +TEST_ENTRY(tty_raw) +TEST_ENTRY(tty_empty_write) +TEST_ENTRY(tty_large_write) +TEST_ENTRY(tty_raw_cancel) +TEST_ENTRY(tty_duplicate_vt100_fn_key) +TEST_ENTRY(tty_duplicate_alt_modifier_key) +TEST_ENTRY(tty_composing_character) +TEST_ENTRY(tty_cursor_up) +TEST_ENTRY(tty_cursor_down) +TEST_ENTRY(tty_cursor_forward) +TEST_ENTRY(tty_cursor_back) +TEST_ENTRY(tty_cursor_next_line) +TEST_ENTRY(tty_cursor_previous_line) +TEST_ENTRY(tty_cursor_horizontal_move_absolute) +TEST_ENTRY(tty_cursor_move_absolute) +TEST_ENTRY(tty_hide_show_cursor) +TEST_ENTRY(tty_set_cursor_shape) +TEST_ENTRY(tty_erase) +TEST_ENTRY(tty_erase_line) +TEST_ENTRY(tty_set_style) +TEST_ENTRY(tty_save_restore_cursor_position) +TEST_ENTRY(tty_full_reset) +TEST_ENTRY(tty_escape_sequence_processing) #endif - TEST_ENTRY (tty_file) - TEST_ENTRY (tty_pty) - TEST_ENTRY (stdio_over_pipes) - TEST_ENTRY (stdio_emulate_iocp) - TEST_ENTRY (ip6_pton) - TEST_ENTRY (ip6_sin6_len) - TEST_ENTRY (connect_unspecified) - TEST_ENTRY (ipc_heavy_traffic_deadlock_bug) - TEST_ENTRY (ipc_listen_before_write) - TEST_ENTRY (ipc_listen_after_write) +TEST_ENTRY(tty_file) +TEST_ENTRY(tty_pty) +TEST_ENTRY(stdio_over_pipes) +TEST_ENTRY(stdio_emulate_iocp) +TEST_ENTRY(ip6_pton) +TEST_ENTRY(ip6_sin6_len) +TEST_ENTRY(connect_unspecified) +TEST_ENTRY(ipc_heavy_traffic_deadlock_bug) +TEST_ENTRY(ipc_listen_before_write) +TEST_ENTRY(ipc_listen_after_write) #ifndef _WIN32 - TEST_ENTRY (ipc_send_recv_pipe) - TEST_ENTRY (ipc_send_recv_pipe_inprocess) +TEST_ENTRY(ipc_send_recv_pipe) +TEST_ENTRY(ipc_send_recv_pipe_inprocess) #endif - TEST_ENTRY (ipc_send_recv_tcp) - TEST_ENTRY (ipc_send_recv_tcp_inprocess) - TEST_ENTRY (ipc_tcp_connection) - TEST_ENTRY (ipc_send_zero) +TEST_ENTRY(ipc_send_recv_tcp) +TEST_ENTRY(ipc_send_recv_tcp_inprocess) +TEST_ENTRY(ipc_tcp_connection) +TEST_ENTRY(ipc_send_zero) #ifndef _WIN32 - TEST_ENTRY (ipc_closed_handle) +TEST_ENTRY(ipc_closed_handle) #endif - TEST_ENTRY (tcp_alloc_cb_fail) +TEST_ENTRY(tcp_alloc_cb_fail) - TEST_ENTRY (tcp_ping_pong) - TEST_HELPER (tcp_ping_pong, tcp4_echo_server) +TEST_ENTRY(tcp_ping_pong) +TEST_HELPER(tcp_ping_pong, tcp4_echo_server) - TEST_ENTRY (tcp_ping_pong_vec) - TEST_HELPER (tcp_ping_pong_vec, tcp4_echo_server) +TEST_ENTRY(tcp_ping_pong_vec) +TEST_HELPER(tcp_ping_pong_vec, tcp4_echo_server) - TEST_ENTRY (tcp6_ping_pong) - TEST_HELPER (tcp6_ping_pong, tcp6_echo_server) +TEST_ENTRY(tcp6_ping_pong) +TEST_HELPER(tcp6_ping_pong, tcp6_echo_server) - TEST_ENTRY (tcp6_ping_pong_vec) - TEST_HELPER (tcp6_ping_pong_vec, tcp6_echo_server) +TEST_ENTRY(tcp6_ping_pong_vec) +TEST_HELPER(tcp6_ping_pong_vec, tcp6_echo_server) - TEST_ENTRY (pipe_ping_pong) - TEST_HELPER (pipe_ping_pong, pipe_echo_server) +TEST_ENTRY(pipe_ping_pong) +TEST_HELPER(pipe_ping_pong, pipe_echo_server) - TEST_ENTRY (pipe_ping_pong_vec) - TEST_HELPER (pipe_ping_pong_vec, pipe_echo_server) +TEST_ENTRY(pipe_ping_pong_vec) +TEST_HELPER(pipe_ping_pong_vec, pipe_echo_server) - TEST_ENTRY (delayed_accept) - TEST_ENTRY (multiple_listen) +TEST_ENTRY(delayed_accept) +TEST_ENTRY(multiple_listen) #ifndef _WIN32 - TEST_ENTRY (tcp_write_after_connect) +TEST_ENTRY(tcp_write_after_connect) #endif #ifdef __MVS__ - TEST_ENTRY_CUSTOM (tcp_writealot, 0, 0, 20000) +TEST_ENTRY_CUSTOM(tcp_writealot, 0, 0, 20000) #else - TEST_ENTRY (tcp_writealot) +TEST_ENTRY(tcp_writealot) #endif - TEST_HELPER (tcp_writealot, tcp4_echo_server) - - TEST_ENTRY (tcp_write_fail) - TEST_HELPER (tcp_write_fail, tcp4_echo_server) - - TEST_ENTRY (tcp_try_write) - TEST_ENTRY (tcp_try_write_error) - - TEST_ENTRY (tcp_write_queue_order) - - TEST_ENTRY (tcp_open) - TEST_HELPER (tcp_open, tcp4_echo_server) - TEST_ENTRY (tcp_open_twice) - TEST_ENTRY (tcp_open_bound) - TEST_ENTRY (tcp_open_connected) - TEST_HELPER (tcp_open_connected, tcp4_echo_server) - TEST_ENTRY (tcp_write_ready) - TEST_HELPER (tcp_write_ready, tcp4_echo_server) - - TEST_ENTRY (tcp_shutdown_after_write) - TEST_HELPER (tcp_shutdown_after_write, tcp4_echo_server) - - TEST_ENTRY (tcp_connect_error_after_write) - TEST_ENTRY (tcp_bind_error_addrinuse_connect) - /* tcp4_echo_server steals the port. It needs to be a separate process - * because libuv sets setsockopt(SO_REUSEADDR) that lets you steal an - * existing bind if it originates from the same process. - */ - TEST_HELPER (tcp_bind_error_addrinuse_connect, tcp4_echo_server) - TEST_ENTRY (tcp_bind_error_addrinuse_listen) - TEST_ENTRY (tcp_bind_error_addrnotavail_1) - TEST_ENTRY (tcp_bind_error_addrnotavail_2) - TEST_ENTRY (tcp_bind_error_fault) - TEST_ENTRY (tcp_bind_error_inval) - TEST_ENTRY (tcp_bind_localhost_ok) - TEST_ENTRY (tcp_bind_invalid_flags) - TEST_ENTRY (tcp_bind_writable_flags) - TEST_ENTRY (tcp_listen_without_bind) - TEST_ENTRY (tcp_connect_error_fault) - TEST_ENTRY (tcp_connect_timeout) - TEST_ENTRY (tcp_local_connect_timeout) - TEST_ENTRY (tcp6_local_connect_timeout) - TEST_ENTRY (tcp_close_while_connecting) - TEST_ENTRY (tcp_close) - TEST_ENTRY (tcp_close_reset_accepted) - TEST_ENTRY (tcp_close_reset_accepted_after_shutdown) - TEST_ENTRY (tcp_close_reset_client) - TEST_ENTRY (tcp_close_reset_client_after_shutdown) - TEST_ENTRY (tcp_create_early) - TEST_ENTRY (tcp_create_early_bad_bind) - TEST_ENTRY (tcp_create_early_bad_domain) - TEST_ENTRY (tcp_create_early_accept) +TEST_HELPER(tcp_writealot, tcp4_echo_server) + +TEST_ENTRY(tcp_write_fail) +TEST_HELPER(tcp_write_fail, tcp4_echo_server) + +TEST_ENTRY(tcp_try_write) +TEST_ENTRY(tcp_try_write_error) + +TEST_ENTRY(tcp_write_queue_order) + +TEST_ENTRY(tcp_open) +TEST_HELPER(tcp_open, tcp4_echo_server) +TEST_ENTRY(tcp_open_twice) +TEST_ENTRY(tcp_open_bound) +TEST_ENTRY(tcp_open_connected) +TEST_HELPER(tcp_open_connected, tcp4_echo_server) +TEST_ENTRY(tcp_write_ready) +TEST_HELPER(tcp_write_ready, tcp4_echo_server) + +TEST_ENTRY(tcp_shutdown_after_write) +TEST_HELPER(tcp_shutdown_after_write, tcp4_echo_server) + +TEST_ENTRY(tcp_connect_error_after_write) +TEST_ENTRY(tcp_bind_error_addrinuse_connect) +/* tcp4_echo_server steals the port. It needs to be a separate process + * because libuv sets setsockopt(SO_REUSEADDR) that lets you steal an + * existing bind if it originates from the same process. + */ +TEST_HELPER(tcp_bind_error_addrinuse_connect, tcp4_echo_server) +TEST_ENTRY(tcp_bind_error_addrinuse_listen) +TEST_ENTRY(tcp_bind_error_addrnotavail_1) +TEST_ENTRY(tcp_bind_error_addrnotavail_2) +TEST_ENTRY(tcp_bind_error_fault) +TEST_ENTRY(tcp_bind_error_inval) +TEST_ENTRY(tcp_bind_localhost_ok) +TEST_ENTRY(tcp_bind_invalid_flags) +TEST_ENTRY(tcp_bind_writable_flags) +TEST_ENTRY(tcp_listen_without_bind) +TEST_ENTRY(tcp_connect_error_fault) +TEST_ENTRY(tcp_connect_timeout) +TEST_ENTRY(tcp_local_connect_timeout) +TEST_ENTRY(tcp6_local_connect_timeout) +TEST_ENTRY(tcp_close_while_connecting) +TEST_ENTRY(tcp_close) +TEST_ENTRY(tcp_close_reset_accepted) +TEST_ENTRY(tcp_close_reset_accepted_after_shutdown) +TEST_ENTRY(tcp_close_reset_client) +TEST_ENTRY(tcp_close_reset_client_after_shutdown) +TEST_ENTRY(tcp_create_early) +TEST_ENTRY(tcp_create_early_bad_bind) +TEST_ENTRY(tcp_create_early_bad_domain) +TEST_ENTRY(tcp_create_early_accept) #ifndef _WIN32 - TEST_ENTRY (tcp_close_accept) - TEST_ENTRY (tcp_oob) +TEST_ENTRY(tcp_close_accept) +TEST_ENTRY(tcp_oob) #endif - TEST_ENTRY (tcp_flags) - TEST_ENTRY (tcp_write_to_half_open_connection) - TEST_ENTRY (tcp_unexpected_read) - - TEST_ENTRY (tcp_read_stop) - TEST_HELPER (tcp_read_stop, tcp4_echo_server) - - TEST_ENTRY (tcp_read_stop_start) - - TEST_ENTRY (tcp_bind6_error_addrinuse) - TEST_ENTRY (tcp_bind6_error_addrnotavail) - TEST_ENTRY (tcp_bind6_error_fault) - TEST_ENTRY (tcp_bind6_error_inval) - TEST_ENTRY (tcp_bind6_localhost_ok) - - TEST_ENTRY (udp_alloc_cb_fail) - TEST_ENTRY (udp_bind) - TEST_ENTRY (udp_bind_reuseaddr) - TEST_ENTRY (udp_connect) - TEST_ENTRY (udp_connect6) - TEST_ENTRY (udp_create_early) - TEST_ENTRY (udp_create_early_bad_bind) - TEST_ENTRY (udp_create_early_bad_domain) - TEST_ENTRY (udp_send_and_recv) - TEST_ENTRY (udp_send_hang_loop) - TEST_ENTRY (udp_send_immediate) - TEST_ENTRY (udp_send_unreachable) - TEST_ENTRY (udp_dgram_too_big) - TEST_ENTRY (udp_dual_stack) - TEST_ENTRY (udp_ipv6_only) - TEST_ENTRY (udp_options) - TEST_ENTRY (udp_options6) - TEST_ENTRY (udp_no_autobind) - TEST_ENTRY (udp_mmsg) - TEST_ENTRY (udp_multicast_interface) - TEST_ENTRY (udp_multicast_interface6) - TEST_ENTRY (udp_multicast_join) - TEST_ENTRY (udp_multicast_join6) - TEST_ENTRY (udp_multicast_ttl) - TEST_ENTRY (udp_sendmmsg_error) - TEST_ENTRY (udp_try_send) - - TEST_ENTRY (udp_open) - TEST_ENTRY (udp_open_twice) - TEST_ENTRY (udp_open_bound) - TEST_ENTRY (udp_open_connect) +TEST_ENTRY(tcp_flags) +TEST_ENTRY(tcp_write_to_half_open_connection) +TEST_ENTRY(tcp_unexpected_read) + +TEST_ENTRY(tcp_read_stop) +TEST_HELPER(tcp_read_stop, tcp4_echo_server) + +TEST_ENTRY(tcp_read_stop_start) + +TEST_ENTRY(tcp_bind6_error_addrinuse) +TEST_ENTRY(tcp_bind6_error_addrnotavail) +TEST_ENTRY(tcp_bind6_error_fault) +TEST_ENTRY(tcp_bind6_error_inval) +TEST_ENTRY(tcp_bind6_localhost_ok) + +TEST_ENTRY(udp_alloc_cb_fail) +TEST_ENTRY(udp_bind) +TEST_ENTRY(udp_bind_reuseaddr) +TEST_ENTRY(udp_connect) +TEST_ENTRY(udp_connect6) +TEST_ENTRY(udp_create_early) +TEST_ENTRY(udp_create_early_bad_bind) +TEST_ENTRY(udp_create_early_bad_domain) +TEST_ENTRY(udp_send_and_recv) +TEST_ENTRY(udp_send_hang_loop) +TEST_ENTRY(udp_send_immediate) +TEST_ENTRY(udp_send_unreachable) +TEST_ENTRY(udp_dgram_too_big) +TEST_ENTRY(udp_dual_stack) +TEST_ENTRY(udp_ipv6_only) +TEST_ENTRY(udp_options) +TEST_ENTRY(udp_options6) +TEST_ENTRY(udp_no_autobind) +TEST_ENTRY(udp_mmsg) +TEST_ENTRY(udp_multicast_interface) +TEST_ENTRY(udp_multicast_interface6) +TEST_ENTRY(udp_multicast_join) +TEST_ENTRY(udp_multicast_join6) +TEST_ENTRY(udp_multicast_ttl) +TEST_ENTRY(udp_sendmmsg_error) +TEST_ENTRY(udp_try_send) + +TEST_ENTRY(udp_open) +TEST_ENTRY(udp_open_twice) +TEST_ENTRY(udp_open_bound) +TEST_ENTRY(udp_open_connect) #ifndef _WIN32 - TEST_ENTRY (udp_send_unix) +TEST_ENTRY(udp_send_unix) #endif - TEST_ENTRY (pipe_bind_error_addrinuse) - TEST_ENTRY (pipe_bind_error_addrnotavail) - TEST_ENTRY (pipe_bind_error_inval) - TEST_ENTRY (pipe_connect_multiple) - TEST_ENTRY (pipe_listen_without_bind) - TEST_ENTRY (pipe_getsockname) - TEST_ENTRY (pipe_getsockname_abstract) - TEST_ENTRY (pipe_getsockname_blocking) - TEST_ENTRY (pipe_pending_instances) - TEST_ENTRY (pipe_sendmsg) - - TEST_ENTRY (connection_fail) - TEST_ENTRY (connection_fail_doesnt_auto_close) - - TEST_ENTRY (shutdown_close_tcp) - TEST_HELPER (shutdown_close_tcp, tcp4_echo_server) - TEST_ENTRY (shutdown_close_pipe) - TEST_HELPER (shutdown_close_pipe, pipe_echo_server) - - TEST_ENTRY (shutdown_eof) - TEST_HELPER (shutdown_eof, tcp4_echo_server) - - TEST_ENTRY (shutdown_simultaneous) - TEST_HELPER (shutdown_simultaneous, tcp4_echo_server) - - TEST_ENTRY (shutdown_twice) - TEST_HELPER (shutdown_twice, tcp4_echo_server) - - TEST_ENTRY (callback_stack) - TEST_HELPER (callback_stack, tcp4_echo_server) - - TEST_ENTRY (env_vars) +TEST_ENTRY(pipe_bind_error_addrinuse) +TEST_ENTRY(pipe_bind_error_addrnotavail) +TEST_ENTRY(pipe_bind_error_inval) +TEST_ENTRY(pipe_connect_multiple) +TEST_ENTRY(pipe_listen_without_bind) +TEST_ENTRY(pipe_getsockname) +TEST_ENTRY(pipe_getsockname_abstract) +TEST_ENTRY(pipe_getsockname_blocking) +TEST_ENTRY(pipe_pending_instances) +TEST_ENTRY(pipe_sendmsg) + +TEST_ENTRY(connection_fail) +TEST_ENTRY(connection_fail_doesnt_auto_close) + +TEST_ENTRY(shutdown_close_tcp) +TEST_HELPER(shutdown_close_tcp, tcp4_echo_server) +TEST_ENTRY(shutdown_close_pipe) +TEST_HELPER(shutdown_close_pipe, pipe_echo_server) + +TEST_ENTRY(shutdown_eof) +TEST_HELPER(shutdown_eof, tcp4_echo_server) + +TEST_ENTRY(shutdown_simultaneous) +TEST_HELPER(shutdown_simultaneous, tcp4_echo_server) + +TEST_ENTRY(shutdown_twice) +TEST_HELPER(shutdown_twice, tcp4_echo_server) + +TEST_ENTRY(callback_stack) +TEST_HELPER(callback_stack, tcp4_echo_server) + +TEST_ENTRY(env_vars) - TEST_ENTRY (error_message) - TEST_ENTRY (sys_error) +TEST_ENTRY(error_message) +TEST_ENTRY(sys_error) - TEST_ENTRY (timer) - TEST_ENTRY (timer_init) - TEST_ENTRY (timer_again) - TEST_ENTRY (timer_start_twice) - TEST_ENTRY (timer_order) - TEST_ENTRY (timer_huge_timeout) - TEST_ENTRY (timer_huge_repeat) - TEST_ENTRY (timer_run_once) - TEST_ENTRY (timer_from_check) - TEST_ENTRY (timer_is_closing) - TEST_ENTRY (timer_null_callback) - TEST_ENTRY (timer_early_check) - - TEST_ENTRY (idle_starvation) - - TEST_ENTRY (ref) - TEST_ENTRY (idle_ref) - TEST_ENTRY (fs_poll_ref) - TEST_ENTRY (async_ref) - TEST_ENTRY (prepare_ref) - TEST_ENTRY (check_ref) - TEST_ENTRY (unref_in_prepare_cb) - TEST_ENTRY (timer_ref) - TEST_ENTRY (timer_ref2) - TEST_ENTRY (fs_event_ref) - TEST_ENTRY (tcp_ref) - TEST_ENTRY (tcp_ref2) - TEST_ENTRY (tcp_ref2b) - TEST_ENTRY (tcp_ref3) - TEST_HELPER (tcp_ref3, tcp4_echo_server) - TEST_ENTRY (tcp_ref4) - TEST_HELPER (tcp_ref4, tcp4_echo_server) - TEST_ENTRY (udp_ref) - TEST_ENTRY (udp_ref2) - TEST_ENTRY (udp_ref3) - TEST_HELPER (udp_ref3, udp4_echo_server) - TEST_ENTRY (pipe_ref) - TEST_ENTRY (pipe_ref2) - TEST_ENTRY (pipe_ref3) - TEST_HELPER (pipe_ref3, pipe_echo_server) - TEST_ENTRY (pipe_ref4) - TEST_HELPER (pipe_ref4, pipe_echo_server) - TEST_ENTRY (process_ref) - TEST_ENTRY (process_priority) - TEST_ENTRY (has_ref) - - TEST_ENTRY (loop_handles) - TEST_ENTRY (walk_handles) - - TEST_ENTRY (watcher_cross_stop) - - TEST_ENTRY (active) - - TEST_ENTRY (embed) - - TEST_ENTRY (async) - TEST_ENTRY (async_null_cb) - TEST_ENTRY (eintr_handling) - - TEST_ENTRY (get_currentexe) - - TEST_ENTRY (process_title) - TEST_ENTRY (process_title_big_argv) - TEST_ENTRY (process_title_threadsafe) - - TEST_ENTRY (cwd_and_chdir) - - TEST_ENTRY (get_memory) - - TEST_ENTRY (get_passwd) +TEST_ENTRY(timer) +TEST_ENTRY(timer_init) +TEST_ENTRY(timer_again) +TEST_ENTRY(timer_start_twice) +TEST_ENTRY(timer_order) +TEST_ENTRY(timer_huge_timeout) +TEST_ENTRY(timer_huge_repeat) +TEST_ENTRY(timer_run_once) +TEST_ENTRY(timer_from_check) +TEST_ENTRY(timer_is_closing) +TEST_ENTRY(timer_null_callback) +TEST_ENTRY(timer_early_check) + +TEST_ENTRY(idle_starvation) + +TEST_ENTRY(ref) +TEST_ENTRY(idle_ref) +TEST_ENTRY(fs_poll_ref) +TEST_ENTRY(async_ref) +TEST_ENTRY(prepare_ref) +TEST_ENTRY(check_ref) +TEST_ENTRY(unref_in_prepare_cb) +TEST_ENTRY(timer_ref) +TEST_ENTRY(timer_ref2) +TEST_ENTRY(fs_event_ref) +TEST_ENTRY(tcp_ref) +TEST_ENTRY(tcp_ref2) +TEST_ENTRY(tcp_ref2b) +TEST_ENTRY(tcp_ref3) +TEST_HELPER(tcp_ref3, tcp4_echo_server) +TEST_ENTRY(tcp_ref4) +TEST_HELPER(tcp_ref4, tcp4_echo_server) +TEST_ENTRY(udp_ref) +TEST_ENTRY(udp_ref2) +TEST_ENTRY(udp_ref3) +TEST_HELPER(udp_ref3, udp4_echo_server) +TEST_ENTRY(pipe_ref) +TEST_ENTRY(pipe_ref2) +TEST_ENTRY(pipe_ref3) +TEST_HELPER(pipe_ref3, pipe_echo_server) +TEST_ENTRY(pipe_ref4) +TEST_HELPER(pipe_ref4, pipe_echo_server) +TEST_ENTRY(process_ref) +TEST_ENTRY(process_priority) +TEST_ENTRY(has_ref) + +TEST_ENTRY(loop_handles) +TEST_ENTRY(walk_handles) + +TEST_ENTRY(watcher_cross_stop) + +TEST_ENTRY(active) + +TEST_ENTRY(embed) + +TEST_ENTRY(async) +TEST_ENTRY(async_null_cb) +TEST_ENTRY(eintr_handling) + +TEST_ENTRY(get_currentexe) + +TEST_ENTRY(process_title) +TEST_ENTRY(process_title_big_argv) +TEST_ENTRY(process_title_threadsafe) + +TEST_ENTRY(cwd_and_chdir) + +TEST_ENTRY(get_memory) + +TEST_ENTRY(get_passwd) - TEST_ENTRY (get_loadavg) +TEST_ENTRY(get_loadavg) - TEST_ENTRY (handle_fileno) +TEST_ENTRY(handle_fileno) - TEST_ENTRY (homedir) +TEST_ENTRY(homedir) - TEST_ENTRY (tmpdir) +TEST_ENTRY(tmpdir) - TEST_ENTRY_CUSTOM (hrtime, 0, 0, 20000) +TEST_ENTRY_CUSTOM(hrtime, 0, 0, 20000) - TEST_ENTRY_CUSTOM (getaddrinfo_fail, 0, 0, 10000) - TEST_ENTRY_CUSTOM (getaddrinfo_fail_sync, 0, 0, 10000) +TEST_ENTRY_CUSTOM(getaddrinfo_fail, 0, 0, 10000) +TEST_ENTRY_CUSTOM(getaddrinfo_fail_sync, 0, 0, 10000) - TEST_ENTRY (getaddrinfo_basic) - TEST_ENTRY (getaddrinfo_basic_sync) - TEST_ENTRY (getaddrinfo_concurrent) +TEST_ENTRY(getaddrinfo_basic) +TEST_ENTRY(getaddrinfo_basic_sync) +TEST_ENTRY(getaddrinfo_concurrent) - TEST_ENTRY (gethostname) +TEST_ENTRY(gethostname) - TEST_ENTRY (getnameinfo_basic_ip4) - TEST_ENTRY (getnameinfo_basic_ip4_sync) - TEST_ENTRY (getnameinfo_basic_ip6) +TEST_ENTRY(getnameinfo_basic_ip4) +TEST_ENTRY(getnameinfo_basic_ip4_sync) +TEST_ENTRY(getnameinfo_basic_ip6) - TEST_ENTRY (getsockname_tcp) - TEST_ENTRY (getsockname_udp) - - TEST_ENTRY (gettimeofday) - - TEST_ENTRY (poll_duplex) - TEST_ENTRY (poll_unidirectional) - TEST_ENTRY (poll_close) - TEST_ENTRY (poll_bad_fdtype) -#if (defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))) && \ +TEST_ENTRY(getsockname_tcp) +TEST_ENTRY(getsockname_udp) + +TEST_ENTRY(gettimeofday) + +TEST_ENTRY(poll_duplex) +TEST_ENTRY(poll_unidirectional) +TEST_ENTRY(poll_close) +TEST_ENTRY(poll_bad_fdtype) +#if (defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))) && \ !defined(__sun) - TEST_ENTRY (poll_oob) +TEST_ENTRY(poll_oob) #endif #ifdef __linux__ - TEST_ENTRY (poll_nested_epoll) +TEST_ENTRY(poll_nested_epoll) #endif #ifdef UV_HAVE_KQUEUE - TEST_ENTRY (poll_nested_kqueue) +TEST_ENTRY(poll_nested_kqueue) #endif - TEST_ENTRY (poll_multiple_handles) +TEST_ENTRY(poll_multiple_handles) - TEST_ENTRY (socket_buffer_size) +TEST_ENTRY(socket_buffer_size) - TEST_ENTRY (spawn_fails) +TEST_ENTRY(spawn_fails) #ifndef _WIN32 - TEST_ENTRY (spawn_fails_check_for_waitpid_cleanup) +TEST_ENTRY(spawn_fails_check_for_waitpid_cleanup) #endif - TEST_ENTRY (spawn_empty_env) - TEST_ENTRY (spawn_exit_code) - TEST_ENTRY (spawn_stdout) - TEST_ENTRY (spawn_stdin) - TEST_ENTRY (spawn_stdio_greater_than_3) - TEST_ENTRY (spawn_ignored_stdio) - TEST_ENTRY (spawn_and_kill) - TEST_ENTRY (spawn_detached) - TEST_ENTRY (spawn_and_kill_with_std) - TEST_ENTRY (spawn_and_ping) - TEST_ENTRY (spawn_preserve_env) - TEST_ENTRY (spawn_setuid_fails) - TEST_ENTRY (spawn_setgid_fails) - TEST_ENTRY (spawn_stdout_to_file) - TEST_ENTRY (spawn_stdout_and_stderr_to_file) - TEST_ENTRY (spawn_stdout_and_stderr_to_file2) - TEST_ENTRY (spawn_stdout_and_stderr_to_file_swap) - TEST_ENTRY (spawn_auto_unref) - TEST_ENTRY (spawn_closed_process_io) - TEST_ENTRY (spawn_reads_child_path) - TEST_ENTRY (spawn_inherit_streams) - TEST_ENTRY (spawn_quoted_path) - TEST_ENTRY (spawn_tcp_server) - TEST_ENTRY (fs_poll) - TEST_ENTRY (fs_poll_getpath) - TEST_ENTRY (fs_poll_close_request) - TEST_ENTRY (fs_poll_close_request_multi_start_stop) - TEST_ENTRY (fs_poll_close_request_multi_stop_start) - TEST_ENTRY (fs_poll_close_request_stop_when_active) - TEST_ENTRY (kill) - TEST_ENTRY (kill_invalid_signum) - - TEST_ENTRY (poll_close_doesnt_corrupt_stack) - TEST_ENTRY (poll_closesocket) - TEST_ENTRY (close_fd) - TEST_ENTRY (closed_fd_events) - TEST_ENTRY (spawn_fs_open) +TEST_ENTRY(spawn_empty_env) +TEST_ENTRY(spawn_exit_code) +TEST_ENTRY(spawn_stdout) +TEST_ENTRY(spawn_stdin) +TEST_ENTRY(spawn_stdio_greater_than_3) +TEST_ENTRY(spawn_ignored_stdio) +TEST_ENTRY(spawn_and_kill) +TEST_ENTRY(spawn_detached) +TEST_ENTRY(spawn_and_kill_with_std) +TEST_ENTRY(spawn_and_ping) +TEST_ENTRY(spawn_preserve_env) +TEST_ENTRY(spawn_setuid_fails) +TEST_ENTRY(spawn_setgid_fails) +TEST_ENTRY(spawn_stdout_to_file) +TEST_ENTRY(spawn_stdout_and_stderr_to_file) +TEST_ENTRY(spawn_stdout_and_stderr_to_file2) +TEST_ENTRY(spawn_stdout_and_stderr_to_file_swap) +TEST_ENTRY(spawn_auto_unref) +TEST_ENTRY(spawn_closed_process_io) +TEST_ENTRY(spawn_reads_child_path) +TEST_ENTRY(spawn_inherit_streams) +TEST_ENTRY(spawn_quoted_path) +TEST_ENTRY(spawn_tcp_server) +TEST_ENTRY(fs_poll) +TEST_ENTRY(fs_poll_getpath) +TEST_ENTRY(fs_poll_close_request) +TEST_ENTRY(fs_poll_close_request_multi_start_stop) +TEST_ENTRY(fs_poll_close_request_multi_stop_start) +TEST_ENTRY(fs_poll_close_request_stop_when_active) +TEST_ENTRY(kill) +TEST_ENTRY(kill_invalid_signum) + +TEST_ENTRY(poll_close_doesnt_corrupt_stack) +TEST_ENTRY(poll_closesocket) +TEST_ENTRY(close_fd) +TEST_ENTRY(closed_fd_events) +TEST_ENTRY(spawn_fs_open) #ifdef _WIN32 - TEST_ENTRY (spawn_detect_pipe_name_collisions_on_windows) +TEST_ENTRY(spawn_detect_pipe_name_collisions_on_windows) #if !defined(USING_UV_SHARED) - TEST_ENTRY (argument_escaping) - TEST_ENTRY (environment_creation) -# endif - TEST_ENTRY (listen_with_simultaneous_accepts) - TEST_ENTRY (listen_no_simultaneous_accepts) - TEST_ENTRY (fs_stat_root) - TEST_ENTRY (spawn_with_an_odd_path) - TEST_ENTRY (ipc_listen_after_bind_twice) - TEST_ENTRY (win32_signum_number) +TEST_ENTRY(argument_escaping) +TEST_ENTRY(environment_creation) +#endif +TEST_ENTRY(listen_with_simultaneous_accepts) +TEST_ENTRY(listen_no_simultaneous_accepts) +TEST_ENTRY(fs_stat_root) +TEST_ENTRY(spawn_with_an_odd_path) +TEST_ENTRY(ipc_listen_after_bind_twice) +TEST_ENTRY(win32_signum_number) #else - TEST_ENTRY (emfile) - TEST_ENTRY (spawn_setuid_setgid) - TEST_ENTRY (we_get_signal) - TEST_ENTRY (we_get_signals) - TEST_ENTRY (we_get_signal_one_shot) - TEST_ENTRY (we_get_signals_mixed) - TEST_ENTRY (signal_multiple_loops) - TEST_ENTRY (signal_pending_on_close) - TEST_ENTRY (signal_close_loop_alive) +TEST_ENTRY(emfile) +TEST_ENTRY(spawn_setuid_setgid) +TEST_ENTRY(we_get_signal) +TEST_ENTRY(we_get_signals) +TEST_ENTRY(we_get_signal_one_shot) +TEST_ENTRY(we_get_signals_mixed) +TEST_ENTRY(signal_multiple_loops) +TEST_ENTRY(signal_pending_on_close) +TEST_ENTRY(signal_close_loop_alive) #endif #ifdef __APPLE__ - TEST_ENTRY (osx_select) - TEST_ENTRY (osx_select_many_fds) +TEST_ENTRY(osx_select) +TEST_ENTRY(osx_select_many_fds) #endif - TEST_ENTRY (fs_file_noent) - TEST_ENTRY (fs_file_nametoolong) - TEST_ENTRY (fs_file_loop) - TEST_ENTRY (fs_file_async) - TEST_ENTRY (fs_file_sync) - TEST_ENTRY (fs_file_write_null_buffer) - TEST_ENTRY (fs_async_dir) - TEST_ENTRY (fs_async_sendfile) - TEST_ENTRY (fs_async_sendfile_nodata) - TEST_ENTRY (fs_mkdtemp) - TEST_ENTRY (fs_mkstemp) - TEST_ENTRY (fs_fstat) - TEST_ENTRY (fs_access) - TEST_ENTRY (fs_chmod) - TEST_ENTRY (fs_copyfile) - TEST_ENTRY (fs_unlink_readonly) +TEST_ENTRY(fs_file_noent) +TEST_ENTRY(fs_file_nametoolong) +TEST_ENTRY(fs_file_loop) +TEST_ENTRY(fs_file_async) +TEST_ENTRY(fs_file_sync) +TEST_ENTRY(fs_file_write_null_buffer) +TEST_ENTRY(fs_async_dir) +TEST_ENTRY(fs_async_sendfile) +TEST_ENTRY(fs_async_sendfile_nodata) +TEST_ENTRY(fs_mkdtemp) +TEST_ENTRY(fs_mkstemp) +TEST_ENTRY(fs_fstat) +TEST_ENTRY(fs_access) +TEST_ENTRY(fs_chmod) +TEST_ENTRY(fs_copyfile) +TEST_ENTRY(fs_unlink_readonly) #ifdef _WIN32 - TEST_ENTRY (fs_unlink_archive_readonly) +TEST_ENTRY(fs_unlink_archive_readonly) #endif - TEST_ENTRY (fs_chown) - TEST_ENTRY (fs_utime) - TEST_ENTRY (fs_utime_round) - TEST_ENTRY (fs_futime) - TEST_ENTRY (fs_lutime) - TEST_ENTRY (fs_readlink) - TEST_ENTRY (fs_realpath) - TEST_ENTRY (fs_symlink) - TEST_ENTRY (fs_symlink_dir) +TEST_ENTRY(fs_chown) +TEST_ENTRY(fs_utime) +TEST_ENTRY(fs_utime_round) +TEST_ENTRY(fs_futime) +TEST_ENTRY(fs_lutime) +TEST_ENTRY(fs_readlink) +TEST_ENTRY(fs_realpath) +TEST_ENTRY(fs_symlink) +TEST_ENTRY(fs_symlink_dir) #ifdef _WIN32 - TEST_ENTRY (fs_symlink_junction) - TEST_ENTRY (fs_non_symlink_reparse_point) - TEST_ENTRY (fs_lstat_windows_store_apps) - TEST_ENTRY (fs_open_flags) +TEST_ENTRY(fs_symlink_junction) +TEST_ENTRY(fs_non_symlink_reparse_point) +TEST_ENTRY(fs_lstat_windows_store_apps) +TEST_ENTRY(fs_open_flags) #endif #if defined(_WIN32) && !defined(USING_UV_SHARED) - TEST_ENTRY (fs_fd_hash) +TEST_ENTRY(fs_fd_hash) #endif - TEST_ENTRY (fs_statfs) - TEST_ENTRY (fs_stat_missing_path) - TEST_ENTRY (fs_read_bufs) - TEST_ENTRY (fs_read_file_eof) - TEST_ENTRY (fs_file_open_append) - TEST_ENTRY (fs_event_watch_dir) - TEST_ENTRY (fs_event_watch_dir_recursive) +TEST_ENTRY(fs_statfs) +TEST_ENTRY(fs_stat_missing_path) +TEST_ENTRY(fs_read_bufs) +TEST_ENTRY(fs_read_file_eof) +TEST_ENTRY(fs_file_open_append) +TEST_ENTRY(fs_event_watch_dir) +TEST_ENTRY(fs_event_watch_dir_recursive) #ifdef _WIN32 - TEST_ENTRY (fs_event_watch_dir_short_path) +TEST_ENTRY(fs_event_watch_dir_short_path) #endif - TEST_ENTRY (fs_event_watch_file) - TEST_ENTRY (fs_event_watch_file_exact_path) - TEST_ENTRY (fs_event_watch_file_twice) - TEST_ENTRY (fs_event_watch_file_current_dir) +TEST_ENTRY(fs_event_watch_file) +TEST_ENTRY(fs_event_watch_file_exact_path) +TEST_ENTRY(fs_event_watch_file_twice) +TEST_ENTRY(fs_event_watch_file_current_dir) #ifdef _WIN32 - TEST_ENTRY (fs_event_watch_file_root_dir) +TEST_ENTRY(fs_event_watch_file_root_dir) #endif - TEST_ENTRY (fs_event_watch_invalid_path) - TEST_ENTRY (fs_event_no_callback_after_close) - TEST_ENTRY (fs_event_no_callback_on_close) - TEST_ENTRY (fs_event_immediate_close) - TEST_ENTRY (fs_event_close_with_pending_event) - TEST_ENTRY (fs_event_close_in_callback) - TEST_ENTRY (fs_event_start_and_close) - TEST_ENTRY_CUSTOM (fs_event_error_reporting, 0, 0, 60000) - TEST_ENTRY (fs_event_getpath) - TEST_ENTRY (fs_event_stop_in_cb) - TEST_ENTRY (fs_scandir_empty_dir) - TEST_ENTRY (fs_scandir_non_existent_dir) - TEST_ENTRY (fs_scandir_file) - TEST_ENTRY (fs_open_dir) - TEST_ENTRY (fs_readdir_empty_dir) - TEST_ENTRY (fs_readdir_file) - TEST_ENTRY (fs_readdir_non_empty_dir) - TEST_ENTRY (fs_readdir_non_existing_dir) - TEST_ENTRY (fs_rename_to_existing_file) - TEST_ENTRY (fs_write_multiple_bufs) - TEST_ENTRY (fs_write_alotof_bufs) - TEST_ENTRY (fs_write_alotof_bufs_with_offset) - TEST_ENTRY (fs_partial_read) - TEST_ENTRY (fs_partial_write) - TEST_ENTRY (fs_read_write_null_arguments) - TEST_ENTRY (fs_file_pos_after_op_with_offset) - TEST_ENTRY (fs_null_req) - TEST_ENTRY (fs_read_dir) +TEST_ENTRY(fs_event_watch_invalid_path) +TEST_ENTRY(fs_event_no_callback_after_close) +TEST_ENTRY(fs_event_no_callback_on_close) +TEST_ENTRY(fs_event_immediate_close) +TEST_ENTRY(fs_event_close_with_pending_event) +TEST_ENTRY(fs_event_close_in_callback) +TEST_ENTRY(fs_event_start_and_close) +TEST_ENTRY_CUSTOM(fs_event_error_reporting, 0, 0, 60000) +TEST_ENTRY(fs_event_getpath) +TEST_ENTRY(fs_event_stop_in_cb) +TEST_ENTRY(fs_scandir_empty_dir) +TEST_ENTRY(fs_scandir_non_existent_dir) +TEST_ENTRY(fs_scandir_file) +TEST_ENTRY(fs_open_dir) +TEST_ENTRY(fs_readdir_empty_dir) +TEST_ENTRY(fs_readdir_file) +TEST_ENTRY(fs_readdir_non_empty_dir) +TEST_ENTRY(fs_readdir_non_existing_dir) +TEST_ENTRY(fs_rename_to_existing_file) +TEST_ENTRY(fs_write_multiple_bufs) +TEST_ENTRY(fs_write_alotof_bufs) +TEST_ENTRY(fs_write_alotof_bufs_with_offset) +TEST_ENTRY(fs_partial_read) +TEST_ENTRY(fs_partial_write) +TEST_ENTRY(fs_read_write_null_arguments) +TEST_ENTRY(fs_file_pos_after_op_with_offset) +TEST_ENTRY(fs_null_req) +TEST_ENTRY(fs_read_dir) #ifdef _WIN32 - TEST_ENTRY (fs_file_pos_write) - TEST_ENTRY (fs_file_pos_append) - TEST_ENTRY (fs_exclusive_sharing_mode) - TEST_ENTRY (fs_file_flag_no_buffering) - TEST_ENTRY (fs_open_readonly_acl) - TEST_ENTRY (fs_fchmod_archive_readonly) - TEST_ENTRY (fs_invalid_mkdir_name) +TEST_ENTRY(fs_file_pos_write) +TEST_ENTRY(fs_file_pos_append) +TEST_ENTRY(fs_exclusive_sharing_mode) +TEST_ENTRY(fs_file_flag_no_buffering) +TEST_ENTRY(fs_open_readonly_acl) +TEST_ENTRY(fs_fchmod_archive_readonly) +TEST_ENTRY(fs_invalid_mkdir_name) #endif - TEST_ENTRY (fs_get_system_error) - TEST_ENTRY (get_osfhandle_valid_handle) - TEST_ENTRY (open_osfhandle_valid_handle) - TEST_ENTRY (strscpy) - TEST_ENTRY (threadpool_queue_work_simple) - TEST_ENTRY (threadpool_queue_work_einval) - TEST_ENTRY_CUSTOM (threadpool_multiple_event_loops, 0, 0, 60000) - TEST_ENTRY (threadpool_cancel_getaddrinfo) - TEST_ENTRY (threadpool_cancel_getnameinfo) - TEST_ENTRY (threadpool_cancel_random) - TEST_ENTRY (threadpool_cancel_work) - TEST_ENTRY (threadpool_cancel_fs) - TEST_ENTRY (threadpool_cancel_single) - TEST_ENTRY (thread_local_storage) - TEST_ENTRY (thread_stack_size) - TEST_ENTRY (thread_stack_size_explicit) - TEST_ENTRY (thread_mutex) - TEST_ENTRY (thread_mutex_recursive) - TEST_ENTRY (thread_rwlock) - TEST_ENTRY (thread_rwlock_trylock) - TEST_ENTRY (thread_create) - TEST_ENTRY (thread_equal) - TEST_ENTRY (dlerror) - TEST_ENTRY (ip4_addr) - TEST_ENTRY (ip6_addr_link_local) - TEST_ENTRY (ip_name) - - TEST_ENTRY (queue_foreach_delete) - - TEST_ENTRY (random_async) - TEST_ENTRY (random_sync) - - TEST_ENTRY (handle_type_name) - TEST_ENTRY (req_type_name) - TEST_ENTRY (getters_setters) +TEST_ENTRY(fs_get_system_error) +TEST_ENTRY(get_osfhandle_valid_handle) +TEST_ENTRY(open_osfhandle_valid_handle) +TEST_ENTRY(strscpy) +TEST_ENTRY(threadpool_queue_work_simple) +TEST_ENTRY(threadpool_queue_work_einval) +TEST_ENTRY_CUSTOM(threadpool_multiple_event_loops, 0, 0, 60000) +TEST_ENTRY(threadpool_cancel_getaddrinfo) +TEST_ENTRY(threadpool_cancel_getnameinfo) +TEST_ENTRY(threadpool_cancel_random) +TEST_ENTRY(threadpool_cancel_work) +TEST_ENTRY(threadpool_cancel_fs) +TEST_ENTRY(threadpool_cancel_single) +TEST_ENTRY(thread_local_storage) +TEST_ENTRY(thread_stack_size) +TEST_ENTRY(thread_stack_size_explicit) +TEST_ENTRY(thread_mutex) +TEST_ENTRY(thread_mutex_recursive) +TEST_ENTRY(thread_rwlock) +TEST_ENTRY(thread_rwlock_trylock) +TEST_ENTRY(thread_create) +TEST_ENTRY(thread_equal) +TEST_ENTRY(dlerror) +TEST_ENTRY(ip4_addr) +TEST_ENTRY(ip6_addr_link_local) +TEST_ENTRY(ip_name) + +TEST_ENTRY(queue_foreach_delete) + +TEST_ENTRY(random_async) +TEST_ENTRY(random_sync) + +TEST_ENTRY(handle_type_name) +TEST_ENTRY(req_type_name) +TEST_ENTRY(getters_setters) #ifndef _WIN32 - TEST_ENTRY (fork_timer) - TEST_ENTRY (fork_socketpair) - TEST_ENTRY (fork_socketpair_started) - TEST_ENTRY (fork_signal_to_child) - TEST_ENTRY (fork_signal_to_child_closed) +TEST_ENTRY(fork_timer) +TEST_ENTRY(fork_socketpair) +TEST_ENTRY(fork_socketpair_started) +TEST_ENTRY(fork_signal_to_child) +TEST_ENTRY(fork_signal_to_child_closed) #ifndef __APPLE__ - TEST_ENTRY (fork_fs_events_child) - TEST_ENTRY (fork_fs_events_child_dir) - TEST_ENTRY (fork_fs_events_file_parent_child) +TEST_ENTRY(fork_fs_events_child) +TEST_ENTRY(fork_fs_events_child_dir) +TEST_ENTRY(fork_fs_events_file_parent_child) #endif #ifndef __MVS__ - TEST_ENTRY (fork_threadpool_queue_work_simple) +TEST_ENTRY(fork_threadpool_queue_work_simple) #endif #endif - TEST_ENTRY (utf8_decode1) - TEST_ENTRY (utf8_decode1_overrun) - TEST_ENTRY (uname) +TEST_ENTRY(utf8_decode1) +TEST_ENTRY(utf8_decode1_overrun) +TEST_ENTRY(uname) /* Doesn't work on z/OS because that platform uses EBCDIC, not ASCII. */ #ifndef __MVS__ - TEST_ENTRY (idna_toascii) +TEST_ENTRY(idna_toascii) #endif - TEST_ENTRY (not_writable_after_shutdown) - TEST_HELPER (not_writable_after_shutdown, tcp4_echo_server) - TEST_ENTRY (not_readable_nor_writable_on_read_error) - TEST_HELPER (not_readable_nor_writable_on_read_error, tcp4_echo_server) - TEST_ENTRY (readable_on_eof) - TEST_HELPER (readable_on_eof, tcp4_echo_server) +TEST_ENTRY(not_writable_after_shutdown) +TEST_HELPER(not_writable_after_shutdown, tcp4_echo_server) +TEST_ENTRY(not_readable_nor_writable_on_read_error) +TEST_HELPER(not_readable_nor_writable_on_read_error, tcp4_echo_server) +TEST_ENTRY(readable_on_eof) +TEST_HELPER(readable_on_eof, tcp4_echo_server) - TEST_ENTRY (metrics_idle_time) - TEST_ENTRY (metrics_idle_time_thread) - TEST_ENTRY (metrics_idle_time_zero) +TEST_ENTRY(metrics_idle_time) +TEST_ENTRY(metrics_idle_time_thread) +TEST_ENTRY(metrics_idle_time_zero) #if 0 /* These are for testing the test runner. */ diff --git a/src/md5.h b/src/md5.h index f1a68576..5dcda563 100644 --- a/src/md5.h +++ b/src/md5.h @@ -32,10 +32,10 @@ typedef unsigned int MD5_u32plus; typedef struct { - MD5_u32plus lo, hi; - MD5_u32plus a, b, c, d; - unsigned char buffer[64]; - MD5_u32plus block[16]; + MD5_u32plus lo, hi; + MD5_u32plus a, b, c, d; + unsigned char buffer[64]; + MD5_u32plus block[16]; } MD5_CTX; extern void MD5_Init(MD5_CTX *ctx); diff --git a/src/mime.cpp b/src/mime.cpp index 48a48269..d769129a 100644 --- a/src/mime.cpp +++ b/src/mime.cpp @@ -5,1561 +5,1569 @@ #include const std::map mime_map = { - {"%", "application/x-trash"}, - {"~", "application/x-trash"}, - {"123", "application/vnd.lotus-1-2-3"}, - {"1905.1", "application/vnd.ieee.1905"}, - {"1clr", "application/clr"}, - {"1km", "application/vnd.1000minds.decision-model+xml"}, - {"210", "application/p21"}, - {"3dm", "text/vnd.in3d.3dml"}, - {"3dml", "text/vnd.in3d.3dml"}, - {"3mf", "application/vnd.ms-3mfdocument"}, - {"3tz", "application/vnd.maxar.archive.3tz+zip"}, - {"726", "audio/32kadpcm"}, - {"7z", "application/x-7z-compressed"}, - {"a", "text/vnd.a"}, - {"a2l", "application/A2L"}, - {"aa3", "audio/ATRAC3"}, - {"aac", "audio/aac"}, - {"aal", "audio/ATRAC-ADVANCED-LOSSLESS"}, - {"abc", "text/vnd.abc"}, - {"abw", "application/x-abiword"}, - {"ac", "application/pkix-attr-cert"}, - {"ac2", "application/vnd.banana-accounting"}, - {"ac3", "audio/ac3"}, - {"acc", "application/vnd.americandynamics.acc"}, - {"acn", "audio/asc"}, - {"acu", "application/vnd.acucobol"}, - {"acutc", "application/vnd.acucorp"}, - {"adts", "audio/aac"}, - {"aep", "application/vnd.audiograph"}, - {"afp", "application/vnd.afpc.modca"}, - {"age", "application/vnd.age"}, - {"ahead", "application/vnd.ahead.space"}, - {"ai", "application/postscript"}, - {"aif", "audio/x-aiff"}, - {"aifc", "audio/x-aiff"}, - {"aiff", "audio/x-aiff"}, - {"aion", "application/vnd.veritone.aion+json"}, - {"ait", "application/vnd.dvb.ait"}, - {"alc", "chemical/x-alchemy"}, - {"ami", "application/vnd.amiga.ami"}, - {"aml", "application/AML"}, - {"amlx", "application/automationml-amlx+zip"}, - {"amr", "audio/AMR"}, - {"AMR", "audio/AMR"}, - {"anx", "application/annodex"}, - {"apex", "application/vnd.apexlang"}, - {"apexlang", "application/vnd.apexlang"}, - {"apk", "application/vnd.android.package-archive"}, - {"apkg", "application/vnd.anki"}, - {"apng", "image/apng"}, - {"appcache", "text/cache-manifest"}, - {"apr", "application/vnd.lotus-approach"}, - {"apxml", "application/auth-policy+xml"}, - {"arrow", "application/vnd.apache.arrow.file"}, - {"arrows", "application/vnd.apache.arrow.stream"}, - {"art", "image/x-jg"}, - {"artisan", "application/vnd.artisan+json"}, - {"asc", "application/pgp-keys"}, - {"ascii", "text/vnd.ascii-art"}, - {"asf", "application/vnd.ms-asf"}, - {"asice", "application/vnd.etsi.asic-e+zip"}, - {"asics", "application/vnd.etsi.asic-s+zip"}, - {"asn", "chemical/x-ncbi-asn1"}, - {"aso", "application/vnd.accpac.simply.aso"}, - {"ass", "audio/aac"}, - {"at3", "audio/ATRAC3"}, - {"atc", "application/vnd.acucorp"}, - {"atf", "application/ATF"}, - {"atfx", "application/ATFX"}, - {"atom", "application/atom+xml"}, - {"atomcat", "application/atomcat+xml"}, - {"atomdeleted", "application/atomdeleted+xml"}, - {"atomsrv", "application/atomserv+xml"}, - {"atomsvc", "application/atomsvc+xml"}, - {"atx", "audio/ATRAC-X"}, - {"atxml", "application/ATXML"}, - {"au", "audio/basic"}, - {"auc", "application/tamp-apex-update-confirm"}, - {"avci", "image/avci"}, - {"avcs", "image/avcs"}, - {"avi", "video/x-msvideo"}, - {"avif", "image/avif"}, - {"awb", "audio/AMR-WB"}, - {"AWB", "audio/AMR-WB"}, - {"axa", "audio/annodex"}, - {"axv", "video/annodex"}, - {"azf", "application/vnd.airzip.filesecure.azf"}, - {"azs", "application/vnd.airzip.filesecure.azs"}, - {"azv", "image/vnd.airzip.accelerator.azv"}, - {"azw3", "application/vnd.amazon.mobi8-ebook"}, - {"b", "chemical/x-molconn-Z"}, - {"b16", "image/vnd.pco.b16"}, - {"bak", "application/x-trash"}, - {"bar", "application/vnd.qualcomm.brew-app-res"}, - {"bary", "model/vnd.bary"}, - {"bat", "application/x-msdos-program"}, - {"bcpio", "application/x-bcpio"}, - {"bdm", "application/vnd.syncml.dm+wbxml"}, - {"bed", "application/vnd.realvnc.bed"}, - {"bh2", "application/vnd.fujitsu.oasysprs"}, - {"bib", "text/x-bibtex"}, - {"bik", "video/vnd.radgamettools.bink"}, - {"bin", "application/octet-stream"}, - {"bk2", "video/vnd.radgamettools.bink"}, - {"bkm", "application/vnd.nervana"}, - {"bmed", "multipart/vnd.bint.med-plus"}, - {"bmi", "application/vnd.bmi"}, - {"bmml", "application/vnd.balsamiq.bmml+xml"}, - {"bmp", "image/bmp"}, - {"bmpr", "application/vnd.balsamiq.bmpr"}, - {"boo", "text/x-boo"}, - {"book", "application/x-maker"}, - {"box", "application/vnd.previewsystems.box"}, - {"bpd", "application/vnd.hbci"}, - {"brf", "text/plain"}, - {"bsd", "chemical/x-crossfire"}, - {"bsp", "model/vnd.valve.source.compiled-map"}, - {"btf", "image/prs.btif"}, - {"btif", "image/prs.btif"}, - {"c", "text/x-csrc"}, - {"c++", "text/x-c++src"}, - {"c11amc", "application/vnd.cluetrust.cartomobile-config"}, - {"c11amz", "application/vnd.cluetrust.cartomobile-config-pkg"}, - {"c3d", "chemical/x-chem3d"}, - {"c3ex", "application/cccex"}, - {"c4d", "application/vnd.clonk.c4group"}, - {"c4f", "application/vnd.clonk.c4group"}, - {"c4g", "application/vnd.clonk.c4group"}, - {"c4p", "application/vnd.clonk.c4group"}, - {"c4u", "application/vnd.clonk.c4group"}, - {"c9r", "application/vnd.cryptomator.encrypted"}, - {"c9s", "application/vnd.cryptomator.encrypted"}, - {"cab", "application/vnd.ms-cab-compressed"}, - {"cac", "chemical/x-cache"}, - {"cache", "chemical/x-cache"}, - {"cap", "application/vnd.tcpdump.pcap"}, - {"car", "application/vnd.ipld.car"}, - {"carjson", "application/vnd.eu.kasparian.car+json"}, - {"cascii", "chemical/x-cactvs-binary"}, - {"cat", "application/vnd.ms-pki.seccat"}, - {"cbin", "chemical/x-cactvs-binary"}, - {"cbor", "application/cbor"}, - {"cbr", "application/vnd.comicbook-rar"}, - {"cbz", "application/vnd.comicbook+zip"}, - {"cc", "text/x-c++src"}, - {"ccc", "text/vnd.net2phone.commcenter.command"}, - {"ccmp", "application/ccmp+xml"}, - {"ccxml", "application/ccxml+xml"}, - {"cda", "application/x-cdf"}, - {"cdbcmsg", "application/vnd.contact.cmsg"}, - {"cdf", "application/x-cdf"}, - {"cdfx", "application/CDFX+XML"}, - {"cdkey", "application/vnd.mediastation.cdkey"}, - {"cdmia", "application/cdmi-capability"}, - {"cdmic", "application/cdmi-container"}, - {"cdmid", "application/cdmi-domain"}, - {"cdmio", "application/cdmi-object"}, - {"cdmiq", "application/cdmi-queue"}, - {"cdr", "image/x-coreldraw"}, - {"cdt", "image/x-coreldrawtemplate"}, - {"cdx", "chemical/x-cdx"}, - {"cdxml", "application/vnd.chemdraw+xml"}, - {"cdy", "application/vnd.cinderella"}, - {"cea", "application/CEA"}, - {"cef", "chemical/x-cxf"}, - {"cellml", "application/cellml+xml"}, - {"cer", "application/pkix-cert"}, - {"cgm", "image/cgm"}, - {"chm", "application/vnd.ms-htmlhelp"}, - {"chrt", "application/vnd.kde.kchart"}, - {"cif", "application/vnd.multiad.creator.cif"}, - {"cii", "application/vnd.anser-web-certificate-issue-initiation"}, - {"cil", "application/vnd.ms-artgalry"}, - {"cl", "application/simple-filter+xml"}, - {"cla", "application/vnd.claymore"}, - {"class", "application/java-vm"}, - {"cld", "model/vnd.cld"}, - {"clkk", "application/vnd.crick.clicker.keyboard"}, - {"clkp", "application/vnd.crick.clicker.palette"}, - {"clkt", "application/vnd.crick.clicker.template"}, - {"clkw", "application/vnd.crick.clicker.wordbank"}, - {"clkx", "application/vnd.crick.clicker"}, - {"cls", "text/x-tex"}, - {"clue", "application/clue_info+xml"}, - {"cmc", "application/vnd.cosmocaller"}, - {"cmdf", "chemical/x-cmdf"}, - {"cml", "application/cellml+xml"}, - {"cmp", "application/vnd.yellowriver-custom-menu"}, - {"cmsc", "application/cms"}, - {"cnd", "text/jcr-cnd"}, - {"cod", "application/vnd.rim.cod"}, - {"coffee", "application/vnd.coffeescript"}, - {"com", "application/x-msdos-program"}, - {"copyright", "text/vnd.debian.copyright"}, - {"coswid", "application/swid+cbor"}, - {"cpa", "chemical/x-compass"}, - {"cpio", "application/x-cpio"}, - {"cpkg", "application/vnd.xmpie.cpkg"}, - {"cpl", "application/cpl+xml"}, - {"cpp", "text/x-c++src"}, - {"cpt", "application/mac-compactpro"}, - {"CQL", "text/cql"}, - {"cr2", "image/x-canon-cr2"}, - {"crl", "application/pkix-crl"}, - {"crt", "application/x-x509-ca-cert"}, - {"crtr", "application/vnd.multiad.creator"}, - {"crw", "image/x-canon-crw"}, - {"cryptomator", "application/vnd.cryptomator.vault"}, - {"cryptonote", "application/vnd.rig.cryptonote"}, - {"csd", "audio/csound"}, - {"csf", "chemical/x-cache-csf"}, - {"csh", "application/x-csh"}, - {"csl", "application/vnd.citationstyles.style+xml"}, - {"csm", "chemical/x-csml"}, - {"csml", "chemical/x-csml"}, - {"csp", "application/vnd.commonspace"}, - {"csrattrs", "application/csrattrs"}, - {"css", "text/css"}, - {"cst", "application/vnd.commonspace"}, - {"csv", "text/csv"}, - {"csvs", "text/csv-schema"}, - {"ctab", "chemical/x-cactvs-binary"}, - {"ctx", "chemical/x-ctx"}, - {"cu", "application/cu-seeme"}, - {"cub", "chemical/x-gaussian-cube"}, - {"cuc", "application/tamp-community-update-confirm"}, - {"curl", "text/vnd.curl"}, - {"cw", "application/prs.cww"}, - {"cwl", "application/cwl"}, - {"cwl.json", "application/cwl+json"}, - {"cww", "application/prs.cww"}, - {"cxf", "chemical/x-cxf"}, - {"cxx", "text/x-c++src"}, - {"d", "text/x-dsrc"}, - {"dae", "model/vnd.collada+xml"}, - {"daf", "application/vnd.Mobius.DAF"}, - {"dart", "application/vnd.dart"}, - {"dataless", "application/vnd.fdsn.seed"}, - {"davmount", "application/davmount+xml"}, - {"dbf", "application/vnd.dbf"}, - {"dcd", "application/DCD"}, - {"dcm", "application/dicom"}, - {"dcr", "application/x-director"}, - {"dd2", "application/vnd.oma.dd2+xml"}, - {"ddd", "application/vnd.fujixerox.ddd"}, - {"ddeb", "application/vnd.debian.binary-package"}, - {"ddf", "application/vnd.syncml.dmddf+xml"}, - {"deb", "application/vnd.debian.binary-package"}, - {"deploy", "application/octet-stream"}, - {"dfac", "application/vnd.dreamfactory"}, - {"dif", "video/dv"}, - {"diff", "text/x-diff"}, - {"dii", "application/DII"}, - {"dim", "application/vnd.fastcopy-disk-image"}, - {"dir", "application/x-director"}, - {"dis", "application/vnd.Mobius.DIS"}, - {"dist", "application/vnd.apple.installer+xml"}, - {"distz", "application/vnd.apple.installer+xml"}, - {"dit", "application/DIT"}, - {"dive", "application/vnd.patentdive"}, - {"djv", "image/vnd.djvu"}, - {"djvu", "image/vnd.djvu"}, - {"dl", "application/vnd.datalog"}, - {"dll", "application/x-msdos-program"}, - {"dls", "audio/dls"}, - {"dmg", "application/x-apple-diskimage"}, - {"dmp", "application/vnd.tcpdump.pcap"}, - {"dms", "text/vnd.DMClientScript"}, - {"dna", "application/vnd.dna"}, - {"doc", "application/msword"}, - {"docjson", "application/vnd.document+json"}, - {"docm", "application/vnd.ms-word.document.macroEnabled.12"}, - {"docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"}, - {"dor", "model/vnd.gdl"}, - {"dot", "text/vnd.graphviz"}, - {"dotm", "application/vnd.ms-word.template.macroEnabled.12"}, - {"dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template"}, - {"dp", "application/vnd.osgi.dp"}, - {"dpg", "application/vnd.dpgraph"}, - {"dpgraph", "application/vnd.dpgraph"}, - {"dpkg", "application/vnd.xmpie.dpkg"}, - {"dpx", "image/dpx"}, - {"drle", "image/dicom-rle"}, - {"dsc", "text/prs.lines.tag"}, - {"dsm", "application/vnd.desmume.movie"}, - {"dssc", "application/dssc+der"}, - {"dtd", "application/xml-dtd"}, - {"dts", "audio/vnd.dts"}, - {"dtshd", "audio/vnd.dts.hd"}, - {"dv", "video/dv"}, - {"dvb", "video/vnd.dvb.file"}, - {"dvc", "application/dvcs"}, - {"dvi", "application/x-dvi"}, - {"dwd", "application/atsc-dwd+xml"}, - {"dwf", "model/vnd.dwf"}, - {"dwg", "image/vnd.dwg"}, - {"dx", "chemical/x-jcamp-dx"}, - {"dxf", "image/vnd.dxf"}, - {"dxp", "application/vnd.spotfire.dxp"}, - {"dxr", "application/x-director"}, - {"dzr", "application/vnd.dzr"}, - {"ebuild", "application/vnd.gentoo.ebuild"}, - {"ecelp4800", "audio/vnd.nuera.ecelp4800"}, - {"ecelp7470", "audio/vnd.nuera.ecelp7470"}, - {"ecelp9600", "audio/vnd.nuera.ecelp9600"}, - {"ecig", "application/vnd.evolv.ecig.settings"}, - {"ecigprofile", "application/vnd.evolv.ecig.profile"}, - {"ecigtheme", "application/vnd.evolv.ecig.theme"}, - {"eclass", "application/vnd.gentoo.eclass"}, - {"edm", "application/vnd.novadigm.EDM"}, - {"edx", "application/vnd.novadigm.EDX"}, - {"efi", "application/efi"}, - {"efif", "application/vnd.picsel"}, - {"ei6", "application/vnd.pg.osasli"}, - {"ELN", "application/vnd.eln+zip"}, - {"emb", "chemical/x-embl-dl-nucleotide"}, - {"embl", "chemical/x-embl-dl-nucleotide"}, - {"emf", "image/emf"}, - {"eml", "message/rfc822"}, - {"emm", "application/vnd.ibm.electronic-media"}, - {"emma", "application/emma+xml"}, - {"emotionml", "application/emotionml+xml"}, - {"ent", "application/xml-external-parsed-entity"}, - {"entity", "application/vnd.nervana"}, - {"enw", "audio/EVRCNW"}, - {"eol", "audio/vnd.digital-winds"}, - {"eot", "application/vnd.ms-fontobject"}, - {"ep", "application/vnd.bluetooth.ep.oob"}, - {"eps", "application/postscript"}, - {"eps2", "application/postscript"}, - {"eps3", "application/postscript"}, - {"epsf", "application/postscript"}, - {"epsi", "application/postscript"}, - {"epub", "application/epub+zip"}, - {"erf", "image/x-epson-erf"}, - {"es", "text/javascript"}, - {"es3", "application/vnd.eszigno3+xml"}, - {"esa", "application/vnd.osgi.subsystem"}, - {"esf", "application/vnd.epson.esf"}, - {"espass", "application/vnd.espass-espass+zip"}, - {"et3", "application/vnd.eszigno3+xml"}, - {"etx", "text/x-setext"}, - {"evb", "audio/EVRCB"}, - {"evc", "audio/EVRC"}, - {"evw", "audio/EVRCWB"}, - {"exe", "application/x-msdos-program"}, - {"exi", "application/exi"}, - {"exp", "application/express"}, - {"exr", "image/aces"}, - {"ext", "application/vnd.novadigm.EXT"}, - {"ez", "application/andrew-inset"}, - {"ez2", "application/vnd.ezpix-album"}, - {"ez3", "application/vnd.ezpix-package"}, - {"fb", "application/x-maker"}, - {"fbdoc", "application/x-maker"}, - {"fbs", "image/vnd.fastbidsheet"}, - {"fcdt", "application/vnd.adobe.formscentral.fcdt"}, - {"fch", "chemical/x-gaussian-checkpoint"}, - {"fchk", "chemical/x-gaussian-checkpoint"}, - {"fcs", "application/vnd.isac.fcs"}, - {"fdf", "application/fdf"}, - {"fdt", "application/fdt+xml"}, - {"fe_launch", "application/vnd.denovo.fcselayout-link"}, - {"fg5", "application/vnd.fujitsu.oasysgp"}, - {"fig", "application/x-xfig"}, - {"finf", "application/fastinfoset"}, - {"fit", "image/fits"}, - {"fits", "image/fits"}, - {"fla", "application/vnd.dtg.local.flash"}, - {"flac", "audio/flac"}, - {"flb", "application/vnd.ficlab.flb+zip"}, - {"fli", "video/fli"}, - {"flo", "application/vnd.micrografx.flo"}, - {"flt", "text/vnd.ficlab.flt"}, - {"flv", "video/x-flv"}, - {"flw", "application/vnd.kde.kivio"}, - {"flx", "text/vnd.fmi.flexstor"}, - {"fly", "text/vnd.fly"}, - {"fm", "application/vnd.framemaker"}, - {"fo", "application/vnd.software602.filler.form+xml"}, - {"fpx", "image/vnd.fpx"}, - {"frame", "application/x-maker"}, - {"frm", "application/vnd.ufdl"}, - {"fsc", "application/vnd.fsc.weblaunch"}, - {"fst", "image/vnd.fst"}, - {"ftc", "application/vnd.fluxtime.clip"}, - {"fti", "application/vnd.anser-web-funds-transfer-initiation"}, - {"fts", "image/fits"}, - {"fvt", "video/vnd.fvt"}, - {"fxp", "application/vnd.adobe.fxp"}, - {"fxpl", "application/vnd.adobe.fxp"}, - {"fzs", "application/vnd.fuzzysheet"}, - {"g2w", "application/vnd.geoplan"}, - {"g3w", "application/vnd.geospace"}, - {"gac", "application/vnd.groove-account"}, - {"gal", "chemical/x-gaussian-log"}, - {"gam", "chemical/x-gamess-input"}, - {"gamin", "chemical/x-gamess-input"}, - {"gan", "application/x-ganttproject"}, - {"gau", "chemical/x-gaussian-input"}, - {"gbr", "application/rpki-ghostbusters"}, - {"gcd", "text/x-pcs-gcd"}, - {"gcf", "application/x-graphing-calculator"}, - {"gcg", "chemical/x-gcg8-sequence"}, - {"gdl", "model/vnd.gdl"}, - {"gdz", "application/vnd.familysearch.gedcom+zip"}, - {"ged", "text/vnd.familysearch.gedcom"}, - {"gen", "chemical/x-genbank"}, - {"genozip", "application/vnd.genozip"}, - {"geo", "application/vnd.dynageo"}, - {"geojson", "application/geo+json"}, - {"gex", "application/vnd.geometry-explorer"}, - {"gf", "application/x-tex-gf"}, - {"gff3", "text/gff3"}, - {"ggb", "application/vnd.geogebra.file"}, - {"ggs", "application/vnd.geogebra.slides"}, - {"ggt", "application/vnd.geogebra.tool"}, - {"ghf", "application/vnd.groove-help"}, - {"gif", "image/gif"}, - {"gim", "application/vnd.groove-identity-message"}, - {"gjc", "chemical/x-gaussian-input"}, - {"gjf", "chemical/x-gaussian-input"}, - {"gl", "video/gl"}, - {"glb", "model/gltf-binary"}, - {"glbin", "application/gltf-buffer"}, - {"glbuf", "application/gltf-buffer"}, - {"gltf", "model/gltf+json"}, - {"gml", "application/gml+xml"}, - {"gnumeric", "application/x-gnumeric"}, - {"gph", "application/vnd.FloGraphIt"}, - {"gpkg", "application/geopackage+sqlite3"}, - {"gpkg.tar", "application/vnd.gentoo.gpkg"}, - {"gpt", "chemical/x-mopac-graph"}, - {"gqf", "application/vnd.grafeq"}, - {"gqs", "application/vnd.grafeq"}, - {"gram", "application/srgs"}, - {"grd", "application/vnd.gentics.grd+json"}, - {"gre", "application/vnd.geometry-explorer"}, - {"grv", "application/vnd.groove-injector"}, - {"grxml", "application/srgs+xml"}, - {"gsf", "application/x-font"}, - {"gsheet", "application/urc-grpsheet+xml"}, - {"gsm", "audio/x-gsm"}, - {"gtar", "application/x-gtar"}, - {"gtm", "application/vnd.groove-tool-message"}, - {"gtw", "model/vnd.gtw"}, - {"gv", "text/vnd.graphviz"}, - {"gxt", "application/vnd.geonext"}, - {"gz", "application/gzip"}, - {"h", "text/x-chdr"}, - {"h++", "text/x-c++hdr"}, - {"hal", "application/vnd.hal+xml"}, - {"hans", "text/vnd.hans"}, - {"hbc", "application/vnd.hbci"}, - {"hbci", "application/vnd.hbci"}, - {"hdf", "application/x-hdf"}, - {"hdr", "image/vnd.radiance"}, - {"hdt", "application/vnd.hdt"}, - {"heic", "image/heic"}, - {"heics", "image/heic-sequence"}, - {"heif", "image/heif"}, - {"heifs", "image/heif-sequence"}, - {"hej2", "image/hej2k"}, - {"held", "application/atsc-held+xml"}, - {"hgl", "text/vnd.hgl"}, - {"hh", "text/x-c++hdr"}, - {"hif", "image/avif"}, - {"hin", "chemical/x-hin"}, - {"hpgl", "application/vnd.hp-HPGL"}, - {"hpi", "application/vnd.hp-hpid"}, - {"hpid", "application/vnd.hp-hpid"}, - {"hpp", "text/x-c++hdr"}, - {"hps", "application/vnd.hp-hps"}, - {"hpub", "application/prs.hpub+zip"}, - {"hqx", "application/mac-binhex40"}, - {"hs", "text/x-haskell"}, - {"hsj2", "image/hsj2"}, - {"hsl", "application/vnd.hsl"}, - {"hta", "application/hta"}, - {"htc", "text/x-component"}, - {"htke", "application/vnd.kenameaapp"}, - {"htm", "text/html"}, - {"html", "text/html"}, - {"hvd", "application/vnd.yamaha.hv-dic"}, - {"hvp", "application/vnd.yamaha.hv-voice"}, - {"hvs", "application/vnd.yamaha.hv-script"}, - {"hwp", "application/x-hwp"}, - {"hxx", "text/x-c++hdr"}, - {"i2g", "application/vnd.intergeo"}, - {"ic0", "application/vnd.commerce-battelle"}, - {"ic1", "application/vnd.commerce-battelle"}, - {"ic2", "application/vnd.commerce-battelle"}, - {"ic3", "application/vnd.commerce-battelle"}, - {"ic4", "application/vnd.commerce-battelle"}, - {"ic5", "application/vnd.commerce-battelle"}, - {"ic6", "application/vnd.commerce-battelle"}, - {"ic7", "application/vnd.commerce-battelle"}, - {"ic8", "application/vnd.commerce-battelle"}, - {"ica", "application/x-ica"}, - {"icc", "application/vnd.iccprofile"}, - {"icd", "application/vnd.commerce-battelle"}, - {"icf", "application/vnd.commerce-battelle"}, - {"icm", "application/vnd.iccprofile"}, - {"ico", "image/vnd.microsoft.icon"}, - {"ics", "text/calendar"}, - {"ief", "image/ief"}, - {"ifb", "text/calendar"}, - {"ifc", "application/p21"}, - {"ifm", "application/vnd.shana.informed.formdata"}, - {"iges", "model/iges"}, - {"igl", "application/vnd.igloader"}, - {"igm", "application/vnd.insors.igm"}, - {"ign", "application/vnd.coreos.ignition+json"}, - {"ignition", "application/vnd.coreos.ignition+json"}, - {"igs", "model/iges"}, - {"igx", "application/vnd.micrografx.igx"}, - {"iif", "application/vnd.shana.informed.interchange"}, - {"iii", "application/x-iphone"}, - {"imf", "application/vnd.imagemeter.folder+zip"}, - {"imgcal", "application/vnd.3lightssoftware.imagescal"}, - {"imi", "application/vnd.imagemeter.image+zip"}, - {"imp", "application/vnd.accpac.simply.imp"}, - {"ims", "application/vnd.ms-ims"}, - {"imscc", "application/vnd.ims.imsccv1p1"}, - {"info", "application/x-info"}, - {"ink", "application/inkml+xml"}, - {"inkml", "application/inkml+xml"}, - {"inp", "chemical/x-gamess-input"}, - {"ins", "application/x-internet-signup"}, - {"iota", "application/vnd.astraea-software.iota"}, - {"ipfix", "application/ipfix"}, - {"ipk", "application/vnd.shana.informed.package"}, - {"ipns-record", "application/vnd.ipfs.ipns-record"}, - {"irm", "application/vnd.ibm.rights-management"}, - {"irp", "application/vnd.irepository.package+xml"}, - {"ism", "model/vnd.gdl"}, - {"iso", "application/x-iso9660-image"}, - {"isp", "application/x-internet-signup"}, - {"ist", "chemical/x-isostar"}, - {"istc", "application/vnd.veryant.thin"}, - {"istr", "chemical/x-isostar"}, - {"isws", "application/vnd.veryant.thin"}, - {"itp", "application/vnd.shana.informed.formtemplate"}, - {"its", "application/its+xml"}, - {"ivp", "application/vnd.immervision-ivp"}, - {"ivu", "application/vnd.immervision-ivu"}, - {"j2c", "image/j2c"}, - {"J2C", "image/j2c"}, - {"j2k", "image/j2c"}, - {"J2K", "image/j2c"}, - {"jad", "text/vnd.sun.j2me.app-descriptor"}, - {"jam", "application/vnd.jam"}, - {"jar", "application/java-archive"}, - {"java", "text/x-java"}, - {"jdx", "chemical/x-jcamp-dx"}, - {"jpeg", "image/jpeg"}, - {"jhc", "image/jphc"}, - {"jisp", "application/vnd.jisp"}, - {"jls", "image/jls"}, - {"jlt", "application/vnd.hp-jlyt"}, - {"jmz", "application/x-jmol"}, - {"jng", "image/x-jng"}, - {"jnlp", "application/x-java-jnlp-file"}, - {"joda", "application/vnd.joost.joda-archive"}, - {"jp2", "image/jp2"}, - {"jpg", "image/jpeg"}, - {"jpe", "image/jpeg"}, - {"jpf", "image/jpx"}, - {"jfif", "image/jpeg"}, - {"jpg2", "image/jp2"}, - {"jpgm", "image/jpm"}, - {"jph", "image/jph"}, - {"jphc", "image/jphc"}, - {"jpm", "image/jpm"}, - {"jpx", "image/jpx"}, - {"jrd", "application/jrd+json"}, - {"js", "text/javascript"}, - {"json", "application/json"}, - {"json-patch", "application/json-patch+json"}, - {"jsonld", "application/ld+json"}, - {"jsontd", "application/td+json"}, - {"jsontm", "application/tm+json"}, - {"jt", "model/JT"}, - {"jtd", "text/vnd.esmertec.theme-descriptor"}, - {"jxl", "image/jxl"}, - {"jxr", "image/jxr"}, - {"jxra", "image/jxrA"}, - {"jxrs", "image/jxrS"}, - {"jxs", "image/jxs"}, - {"jxsc", "image/jxsc"}, - {"jxsi", "image/jxsi"}, - {"jxss", "image/jxss"}, - {"karbon", "application/vnd.kde.karbon"}, - {"kcm", "application/vnd.nervana"}, - {"key", "application/pgp-keys"}, - {"keynote", "application/vnd.apple.keynote"}, - {"kfo", "application/vnd.kde.kformula"}, - {"kia", "application/vnd.kidspiration"}, - {"kil", "application/x-killustrator"}, - {"kin", "chemical/x-kinemage"}, - {"kml", "application/vnd.google-earth.kml+xml"}, - {"kmz", "application/vnd.google-earth.kmz"}, - {"kne", "application/vnd.Kinar"}, - {"knp", "application/vnd.Kinar"}, - {"kom", "application/vnd.hbci"}, - {"kon", "application/vnd.kde.kontour"}, - {"koz", "audio/vnd.audiokoz"}, - {"kpr", "application/vnd.kde.kpresenter"}, - {"kpt", "application/vnd.kde.kpresenter"}, - {"ksp", "application/vnd.kde.kspread"}, - {"ktr", "application/vnd.kahootz"}, - {"ktx", "image/ktx"}, - {"ktx2", "image/ktx2"}, - {"ktz", "application/vnd.kahootz"}, - {"kwd", "application/vnd.kde.kword"}, - {"kwt", "application/vnd.kde.kword"}, - {"l16", "audio/L16"}, - {"las", "application/vnd.las"}, - {"lasjson", "application/vnd.las.las+json"}, - {"lasxml", "application/vnd.las.las+xml"}, - {"latex", "application/x-latex"}, - {"lbc", "audio/iLBC"}, - {"lbd", "application/vnd.llamagraphics.life-balance.desktop"}, - {"lbe", "application/vnd.llamagraphics.life-balance.exchange+xml"}, - {"lca", "application/vnd.logipipe.circuit+zip"}, - {"lcs", "application/vnd.logipipe.circuit+zip"}, - {"le", "application/vnd.bluetooth.le.oob"}, - {"les", "application/vnd.hhe.lesson-player"}, - {"lgr", "application/lgr+xml"}, - {"lha", "application/x-lha"}, - {"lhs", "text/x-literate-haskell"}, - {"lhzd", "application/vnd.belightsoft.lhzd+zip"}, - {"lhzl", "application/vnd.belightsoft.lhzl+zip"}, - {"lin", "application/bbolin"}, - {"line", "application/vnd.nebumind.line"}, - {"link66", "application/vnd.route66.link66+xml"}, - {"list3820", "application/vnd.afpc.modca"}, - {"listafp", "application/vnd.afpc.modca"}, - {"lmp", "model/vnd.gdl"}, - {"loas", "audio/usac"}, - {"loom", "application/vnd.loom"}, - {"lostsyncxml", "application/lostsync+xml"}, - {"lostxml", "application/lost+xml"}, - {"lpf", "application/lpf+zip"}, - {"lrm", "application/vnd.ms-lrm"}, - {"lsf", "video/x-la-asf"}, - {"lsx", "video/x-la-asf"}, - {"ltx", "text/x-tex"}, - {"lvp", "audio/vnd.lucent.voice"}, - {"lwp", "application/vnd.lotus-wordpro"}, - {"lxf", "application/LXF"}, - {"ly", "text/x-lilypond"}, - {"lyx", "application/x-lyx"}, - {"lzh", "application/x-lzh"}, - {"lzx", "application/x-lzx"}, - {"m", "application/vnd.wolfram.mathematica.package"}, - {"m1v", "video/mpeg"}, - {"m21", "application/mp21"}, - {"m2v", "video/mpeg"}, - {"m3g", "application/m3g"}, - {"m3u", "audio/mpegurl"}, - {"m3u8", "application/vnd.apple.mpegurl"}, - {"m4a", "audio/mp4"}, - {"m4s", "video/iso.segment"}, - {"m4u", "video/vnd.mpegurl"}, - {"m4v", "video/mp4"}, - {"ma", "application/mathematica"}, - {"mads", "application/mads+xml"}, - {"maei", "application/mmt-aei+xml"}, - {"mag", "application/vnd.ecowin.chart"}, - {"mail", "message/rfc822"}, - {"maker", "application/x-maker"}, - {"man", "application/x-troff-man"}, - {"manifest", "text/cache-manifest"}, - {"markdown", "text/markdown"}, - {"mb", "application/mathematica"}, - {"mbk", "application/vnd.Mobius.MBK"}, - {"mbox", "application/mbox"}, - {"mbsdf", "application/vnd.mdl-mbsdf"}, - {"mc1", "application/vnd.medcalcdata"}, - {"mc2", "text/vnd.senx.warpscript"}, - {"mcd", "application/vnd.mcd"}, - {"mcif", "chemical/x-mmcif"}, - {"mcm", "chemical/x-macmolecule"}, - {"md", "text/markdown"}, - {"mdb", "application/msaccess"}, - {"mdc", "application/vnd.marlin.drm.mdcf"}, - {"mdi", "image/vnd.ms-modi"}, - {"mdl", "application/vnd.mdl"}, - {"me", "application/x-troff-me"}, - {"mesh", "model/mesh"}, - {"meta4", "application/metalink4+xml"}, - {"mets", "application/mets+xml"}, - {"mf4", "application/MF4"}, - {"mfm", "application/vnd.mfmp"}, - {"mft", "application/rpki-manifest"}, - {"mgp", "application/vnd.osgeo.mapguide.package"}, - {"mgz", "application/vnd.proteus.magazine"}, - {"mhas", "audio/mhas"}, - {"mid", "audio/sp-midi"}, - {"mif", "application/vnd.mif"}, - {"miz", "text/mizar"}, - {"mj2", "video/mj2"}, - {"mjp2", "video/mj2"}, - {"mjs", "text/javascript"}, - {"mkv", "video/x-matroska"}, - {"ml2", "application/vnd.sybyl.mol2"}, - {"mlp", "audio/vnd.dolby.mlp"}, - {"mm", "application/x-freemind"}, - {"mmd", "application/vnd.chipnuts.karaoke-mmd"}, - {"mmdb", "application/vnd.maxmind.maxmind-db"}, - {"mmf", "application/vnd.smaf"}, - {"mml", "application/mathml+xml"}, - {"mmod", "chemical/x-macromodel-input"}, - {"mmr", "image/vnd.fujixerox.edmics-mmr"}, - {"mng", "video/x-mng"}, - {"moc", "text/x-moc"}, - {"mod", "application/xml-dtd"}, - {"model-inter", "application/vnd.vd-study"}, - {"modl", "application/vnd.modl"}, - {"mods", "application/mods+xml"}, - {"mol", "chemical/x-mdl-molfile"}, - {"mol2", "application/vnd.sybyl.mol2"}, - {"moml", "model/vnd.moml+xml"}, - {"moo", "chemical/x-mopac-out"}, - {"mop", "chemical/x-mopac-input"}, - {"mopcrt", "chemical/x-mopac-input"}, - {"mov", "video/quicktime"}, - {"movie", "video/x-sgi-movie"}, - {"mp1", "audio/mpeg"}, - {"mp2", "audio/mpeg"}, - {"mp21", "application/mp21"}, - {"mp3", "audio/mpeg"}, - {"mp4", "video/mp4"}, - {"mpc", "application/vnd.mophun.certificate"}, - {"mpd", "application/dash+xml"}, - {"mpdd", "application/dashdelta"}, - {"mpe", "video/mpeg"}, - {"mpeg", "video/mpeg"}, - {"mpega", "audio/mpeg"}, - {"mpf", "text/vnd.ms-mediapackage"}, - {"mpg", "video/mpeg"}, - {"mpg4", "video/mp4"}, - {"mpga", "audio/mpeg"}, - {"mph", "application/x-comsol"}, - {"mpkg", "application/vnd.apple.installer+xml"}, - {"mpm", "application/vnd.blueice.multipass"}, - {"mpn", "application/vnd.mophun.application"}, - {"mpp", "application/vnd.ms-project"}, - {"mpt", "application/vnd.ms-project"}, - {"mpv", "video/x-matroska"}, - {"mpw", "application/vnd.exstream-empower+zip"}, - {"mpy", "application/vnd.ibm.MiniPay"}, - {"mqy", "application/vnd.Mobius.MQY"}, - {"mrc", "application/marc"}, - {"mrcx", "application/marcxml+xml"}, - {"ms", "application/x-troff-ms"}, - {"msa", "application/vnd.msa-disk-image"}, - {"msd", "application/vnd.fdsn.mseed"}, - {"mseed", "application/vnd.fdsn.mseed"}, - {"mseq", "application/vnd.mseq"}, - {"msf", "application/vnd.epson.msf"}, - {"msh", "model/mesh"}, - {"msi", "application/x-msi"}, - {"msl", "application/vnd.Mobius.MSL"}, - {"msm", "model/vnd.gdl"}, - {"msp", "application/octet-stream"}, - {"msty", "application/vnd.muvee.style"}, - {"msu", "application/octet-stream"}, - {"mtl", "model/mtl"}, - {"mts", "model/vnd.mts"}, - {"multitrack", "audio/vnd.presonus.multitrack"}, - {"mus", "application/vnd.musician"}, - {"musd", "application/mmt-usd+xml"}, - {"mvb", "chemical/x-mopac-vib"}, - {"mvt", "application/vnd.mapbox-vector-tile"}, - {"mwc", "application/vnd.dpgraph"}, - {"mwf", "application/vnd.MFER"}, - {"mxf", "application/mxf"}, - {"mxi", "application/vnd.vd-study"}, - {"mxl", "application/vnd.recordare.musicxml"}, - {"mxmf", "audio/mobile-xmf"}, - {"mxml", "application/xv+xml"}, - {"mxs", "application/vnd.triscape.mxs"}, - {"mxu", "video/vnd.mpegurl"}, - {"n3", "text/n3"}, - {"nb", "application/vnd.wolfram.mathematica"}, - {"nbp", "application/vnd.wolfram.player"}, - {"nc", "application/x-netcdf"}, - {"ndc", "application/vnd.osa.netdeploy"}, - {"ndl", "application/vnd.lotus-notes"}, - {"nds", "application/vnd.nintendo.nitro.rom"}, - {"nebul", "application/vnd.nebumind.line"}, - {"nef", "image/x-nikon-nef"}, - {"ngdat", "application/vnd.nokia.n-gage.data"}, - {"nim", "video/vnd.nokia.interleaved-multimedia"}, - {"nimn", "application/vnd.nimn"}, - {"nitf", "application/vnd.nitf"}, - {"nlu", "application/vnd.neurolanguage.nlu"}, - {"nml", "application/vnd.enliven"}, - {"nnd", "application/vnd.noblenet-directory"}, - {"nns", "application/vnd.noblenet-sealer"}, - {"nnw", "application/vnd.noblenet-web"}, - {"notebook", "application/vnd.smart.notebook"}, - {"nq", "application/n-quads"}, - {"ns2", "application/vnd.lotus-notes"}, - {"ns3", "application/vnd.lotus-notes"}, - {"ns4", "application/vnd.lotus-notes"}, - {"nsf", "application/vnd.lotus-notes"}, - {"nsg", "application/vnd.lotus-notes"}, - {"nsh", "application/vnd.lotus-notes"}, - {"nt", "application/n-triples"}, - {"ntf", "application/vnd.lotus-notes"}, - {"numbers", "application/vnd.apple.numbers"}, - {"nwc", "application/x-nwc"}, - {"o", "application/x-object"}, - {"oa2", "application/vnd.fujitsu.oasys2"}, - {"oa3", "application/vnd.fujitsu.oasys3"}, - {"oas", "application/vnd.fujitsu.oasys"}, - {"ob", "application/vnd.1ob"}, - {"obg", "application/vnd.openblox.game-binary"}, - {"obgx", "application/vnd.openblox.game+xml"}, - {"obj", "model/obj"}, - {"oda", "application/ODA"}, - {"odb", "application/vnd.oasis.opendocument.base"}, - {"odc", "application/vnd.oasis.opendocument.chart"}, - {"odd", "application/tei+xml"}, - {"odf", "application/vnd.oasis.opendocument.formula"}, - {"odg", "application/vnd.oasis.opendocument.graphics"}, - {"odi", "application/vnd.oasis.opendocument.image"}, - {"odm", "application/vnd.oasis.opendocument.text-master"}, - {"odp", "application/vnd.oasis.opendocument.presentation"}, - {"ods", "application/vnd.oasis.opendocument.spreadsheet"}, - {"odt", "application/vnd.oasis.opendocument.text"}, - {"odx", "application/ODX"}, - {"oeb", "application/vnd.openeye.oeb"}, - {"oga", "audio/ogg"}, - {"ogex", "model/vnd.opengex"}, - {"ogg", "audio/ogg"}, - {"ogv", "video/ogg"}, - {"ogx", "application/ogg"}, - {"old", "application/x-trash"}, - {"omg", "audio/ATRAC3"}, - {"one", "application/onenote"}, - {"onepkg", "application/onenote"}, - {"onetmp", "application/onenote"}, - {"onetoc2", "application/onenote"}, - {"opf", "application/oebps-package+xml"}, - {"oprc", "application/vnd.palm"}, - {"opus", "audio/ogg"}, - {"or2", "application/vnd.lotus-organizer"}, - {"or3", "application/vnd.lotus-organizer"}, - {"orc", "audio/csound"}, - {"orf", "image/x-olympus-orf"}, - {"org", "application/vnd.lotus-organizer"}, - {"orq", "application/ocsp-request"}, - {"ors", "application/ocsp-response"}, - {"osf", "application/vnd.yamaha.openscoreformat"}, - {"osm", "application/vnd.openstreetmap.data+xml"}, - {"ota", "application/vnd.android.ota"}, - {"otc", "application/vnd.oasis.opendocument.chart-template"}, - {"otf", "font/otf"}, - {"otg", "application/vnd.oasis.opendocument.graphics-template"}, - {"oth", "application/vnd.oasis.opendocument.text-web"}, - {"oti", "application/vnd.oasis.opendocument.image-template"}, - {"otm", "application/vnd.oasis.opendocument.text-master-template"}, - {"otp", "application/vnd.oasis.opendocument.presentation-template"}, - {"ots", "application/vnd.oasis.opendocument.spreadsheet-template"}, - {"ott", "application/vnd.oasis.opendocument.text-template"}, - {"ovl", "application/vnd.afpc.modca-overlay"}, - {"oxlicg", "application/vnd.oxli.countgraph"}, - {"oxps", "application/oxps"}, - {"oxt", "application/vnd.openofficeorg.extension"}, - {"oza", "application/x-oz-application"}, - {"p", "text/x-pascal"}, - {"p10", "application/pkcs10"}, - {"p12", "application/pkcs12"}, - {"p21", "application/p21"}, - {"p2p", "application/vnd.wfa.p2p"}, - {"p7c", "application/pkcs7-mime"}, - {"p7m", "application/pkcs7-mime"}, - {"p7r", "application/x-pkcs7-certreqresp"}, - {"p7s", "application/pkcs7-signature"}, - {"p7z", "application/pkcs7-mime"}, - {"p8", "application/pkcs8"}, - {"p8e", "application/pkcs8-encrypted"}, - {"pac", "application/x-ns-proxy-autoconfig"}, - {"package", "application/vnd.autopackage"}, - {"pages", "application/vnd.apple.pages"}, - {"pas", "text/x-pascal"}, - {"pat", "image/x-coreldrawpattern"}, - {"patch", "text/x-diff"}, - {"paw", "application/vnd.pawaafile"}, - {"pbd", "application/vnd.powerbuilder6"}, - {"pbm", "image/x-portable-bitmap"}, - {"pcap", "application/vnd.tcpdump.pcap"}, - {"pcf", "application/x-font-pcf"}, - {"pcf.Z", "application/x-font-pcf"}, - {"pcl", "application/vnd.hp-PCL"}, - {"pcx", "image/vnd.zbrush.pcx"}, - {"pdb", "application/vnd.palm"}, - {"pdf", "application/pdf"}, - {"pdx", "application/PDX"}, - {"pem", "application/pem-certificate-chain"}, - {"pfa", "application/x-font"}, - {"pfb", "application/x-font"}, - {"pfr", "application/font-tdpfr"}, - {"pfx", "application/pkcs12"}, - {"pgb", "image/vnd.globalgraphics.pgb"}, - {"PGB", "image/vnd.globalgraphics.pgb"}, - {"pgm", "image/x-portable-graymap"}, - {"pgn", "application/vnd.chess-pgn"}, - {"pgp", "application/pgp-encrypted"}, - {"pil", "application/vnd.piaccess.application-licence"}, - {"pk", "application/x-tex-pk"}, - {"pkd", "application/vnd.hbci"}, - {"pkg", "application/vnd.apple.installer+xml"}, - {"pki", "application/pkixcmp"}, - {"pkipath", "application/pkix-pkipath"}, - {"pl", "text/x-perl"}, - {"plb", "application/vnd.3gpp.pic-bw-large"}, - {"plc", "application/vnd.Mobius.PLC"}, - {"plf", "application/vnd.pocketlearn"}, - {"plj", "audio/vnd.everad.plj"}, - {"plp", "application/vnd.panoply"}, - {"pls", "audio/x-scpls"}, - {"pm", "text/x-perl"}, - {"pml", "application/vnd.ctc-posml"}, - {"png", "image/png"}, - {"pnm", "image/x-portable-anymap"}, - {"portpkg", "application/vnd.macports.portpkg"}, - {"pot", "text/plain"}, - {"potm", "application/vnd.ms-powerpoint.template.macroEnabled.12"}, - {"potx", "application/vnd.openxmlformats-officedocument.presentationml.template"}, - {"ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12"}, - {"ppd", "application/vnd.cups-ppd"}, - {"ppkg", "application/vnd.xmpie.ppkg"}, - {"ppm", "image/x-portable-pixmap"}, - {"pps", "application/vnd.ms-powerpoint"}, - {"ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12"}, - {"ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow"}, - {"ppt", "application/vnd.ms-powerpoint"}, - {"pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12"}, - {"ppttc", "application/vnd.think-cell.ppttc+json"}, - {"pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation"}, - {"pqa", "application/vnd.palm"}, - {"prc", "model/prc"}, - {"pre", "application/vnd.lotus-freelance"}, - {"preminet", "application/vnd.preminet"}, - {"prf", "application/pics-rules"}, - {"provn", "text/provenance-notation"}, - {"provx", "application/provenance+xml"}, - {"prt", "chemical/x-ncbi-asn1-ascii"}, - {"prz", "application/vnd.lotus-freelance"}, - {"ps", "application/postscript"}, - {"psb", "application/vnd.3gpp.pic-bw-small"}, - {"psd", "image/vnd.adobe.photoshop"}, - {"pseg3820", "application/vnd.afpc.modca"}, - {"psfs", "application/vnd.psfs"}, - {"psg", "application/vnd.afpc.modca-pagesegment"}, - {"psid", "audio/prs.sid"}, - {"pskcxml", "application/pskc+xml"}, - {"pt", "application/vnd.snesdev-page-table"}, - {"pti", "image/prs.pti"}, - {"ptid", "application/vnd.pvi.ptid1"}, - {"ptrom", "application/vnd.snesdev-page-table"}, - {"pub", "application/vnd.exstream-package"}, - {"pvb", "application/vnd.3gpp.pic-bw-var"}, - {"pwn", "application/vnd.3M.Post-it-Notes"}, - {"py", "text/x-python"}, - {"pya", "audio/vnd.ms-playready.media.pya"}, - {"pyc", "application/x-python-code"}, - {"pyo", "application/x-python-code"}, - {"pyox", "model/vnd.pytha.pyox"}, - {"pyv", "video/vnd.ms-playready.media.pyv"}, - {"qam", "application/vnd.epson.quickanime"}, - {"qbo", "application/vnd.intu.qbo"}, - {"qca", "application/vnd.ericsson.quickcall"}, - {"qcall", "application/vnd.ericsson.quickcall"}, - {"qcp", "audio/EVRC-QCP"}, - {"QCP", "audio/EVRC-QCP"}, - {"qfx", "application/vnd.intu.qfx"}, - {"qgs", "application/x-qgis"}, - {"qps", "application/vnd.publishare-delta-tree"}, - {"qt", "video/quicktime"}, - {"qtl", "application/x-quicktimeplayer"}, - {"quiz", "application/vnd.quobject-quoxdocument"}, - {"quox", "application/vnd.quobject-quoxdocument"}, - {"qvd", "application/vnd.theqvd"}, - {"qwd", "application/vnd.Quark.QuarkXPress"}, - {"qwt", "application/vnd.Quark.QuarkXPress"}, - {"qxb", "application/vnd.Quark.QuarkXPress"}, - {"qxd", "application/vnd.Quark.QuarkXPress"}, - {"qxl", "application/vnd.Quark.QuarkXPress"}, - {"qxt", "application/vnd.Quark.QuarkXPress"}, - {"ra", "audio/x-pn-realaudio"}, - {"ram", "audio/x-pn-realaudio"}, - {"rapd", "application/route-apd+xml"}, - {"rar", "application/vnd.rar"}, - {"ras", "image/x-cmu-raster"}, - {"rb", "application/x-ruby"}, - {"rcprofile", "application/vnd.ipunplugged.rcprofile"}, - {"rct", "application/prs.nprend"}, - {"rd", "chemical/x-mdl-rdfile"}, - {"rdf", "application/rdf+xml"}, - {"rdf-crypt", "application/prs.rdf-xml-crypt"}, - {"rdp", "application/x-rdp"}, - {"rdz", "application/vnd.data-vision.rdz"}, - {"relo", "application/p2p-overlay+xml"}, - {"reload", "application/vnd.resilient.logic"}, - {"rep", "application/vnd.businessobjects"}, - {"request", "application/vnd.nervana"}, - {"rfcxml", "application/rfc+xml"}, - {"rgb", "image/x-rgb"}, - {"rgbe", "image/vnd.radiance"}, - {"rif", "application/reginfo+xml"}, - {"rip", "audio/vnd.rip"}, - {"rl", "application/resource-lists+xml"}, - {"rlc", "image/vnd.fujixerox.edmics-rlc"}, - {"rld", "application/resource-lists-diff+xml"}, - {"rlm", "application/vnd.resilient.logic"}, - {"rm", "audio/x-pn-realaudio"}, - {"rms", "application/vnd.jcp.javame.midlet-rms"}, - {"rnc", "application/relax-ng-compact-syntax"}, - {"rnd", "application/prs.nprend"}, - {"roa", "application/rpki-roa"}, - {"roff", "text/troff"}, - {"ros", "chemical/x-rosdal"}, - {"rp9", "application/vnd.cloanto.rp9"}, - {"rpm", "application/x-redhat-package-manager"}, - {"rpss", "application/vnd.nokia.radio-presets"}, - {"rpst", "application/vnd.nokia.radio-preset"}, - {"rq", "application/sparql-query"}, - {"rs", "application/rls-services+xml"}, - {"rsat", "application/atsc-rsat+xml"}, - {"rsheet", "application/urc-ressheet+xml"}, - {"rsm", "model/vnd.gdl"}, - {"rss", "application/x-rss+xml"}, - {"rst", "text/prs.fallenstein.rst"}, - {"rtf", "application/rtf"}, - {"rusd", "application/route-usd+xml"}, - {"rxn", "chemical/x-mdl-rxnfile"}, - {"rxt", "application/vnd.medicalholodeck.recordxr"}, - {"s11", "video/vnd.sealed.mpeg1"}, - {"s14", "video/vnd.sealed.mpeg4"}, - {"s1a", "application/vnd.sealedmedia.softseal.pdf"}, - {"s1e", "application/vnd.sealed.xls"}, - {"s1g", "image/vnd.sealedmedia.softseal.gif"}, - {"s1h", "application/vnd.sealedmedia.softseal.html"}, - {"s1j", "image/vnd.sealedmedia.softseal.jpg"}, - {"s1m", "audio/vnd.sealedmedia.softseal.mpeg"}, - {"s1n", "image/vnd.sealed.png"}, - {"s1p", "application/vnd.sealed.ppt"}, - {"s1q", "video/vnd.sealedmedia.softseal.mov"}, - {"s1w", "application/vnd.sealed.doc"}, - {"s3df", "application/vnd.sealed.3df"}, - {"sac", "application/tamp-sequence-adjust-confirm"}, - {"saf", "application/vnd.yamaha.smaf-audio"}, - {"sam", "application/vnd.lotus-wordpro"}, - {"SAR", "application/vnd.sar"}, - {"sarif", "application/sarif+json"}, - {"sarif-external-properties", "application/sarif-external-properties+json"}, - {"sarif-external-properties.json", "application/sarif-external-properties+json"}, - {"sarif.json", "application/sarif+json"}, - {"sc", "application/vnd.ibm.secure-container"}, - {"scala", "text/x-scala"}, - {"scd", "application/vnd.scribus"}, - {"sce", "application/vnd.etsi.asic-e+zip"}, - {"sci", "application/x-scilab"}, - {"scim", "application/scim+json"}, - {"scl", "application/vnd.sycle+xml"}, - {"scld", "application/vnd.doremir.scorecloud-binary-document"}, - {"scm", "application/vnd.lotus-screencam"}, - {"sco", "audio/csound"}, - {"scq", "application/scvp-cv-request"}, - {"scr", "application/x-silverlight"}, - {"scs", "application/scvp-cv-response"}, - {"scsf", "application/vnd.sealed.csf"}, - {"sd", "chemical/x-mdl-sdfile"}, - {"sd2", "audio/x-sd2"}, - {"sda", "application/vnd.stardivision.draw"}, - {"sdc", "application/vnd.stardivision.calc"}, - {"sdd", "application/vnd.stardivision.impress"}, - {"sdf", "application/vnd.Kinar"}, - {"sdkd", "application/vnd.solent.sdkm+xml"}, - {"sdkm", "application/vnd.solent.sdkm+xml"}, - {"sdo", "application/vnd.sealed.doc"}, - {"sdoc", "application/vnd.sealed.doc"}, - {"sdp", "application/sdp"}, - {"sds", "application/vnd.stardivision.chart"}, - {"sdw", "application/vnd.stardivision.writer"}, - {"see", "application/vnd.seemail"}, - {"seed", "application/vnd.fdsn.seed"}, - {"sem", "application/vnd.sealed.eml"}, - {"sema", "application/vnd.sema"}, - {"semd", "application/vnd.semd"}, - {"semf", "application/vnd.semf"}, - {"seml", "application/vnd.sealed.eml"}, - {"senml", "application/senml+json"}, - {"senml-etchc", "application/senml-etch+cbor"}, - {"senml-etchj", "application/senml-etch+json"}, - {"senmlc", "application/senml+cbor"}, - {"senmle", "application/senml-exi"}, - {"senmlx", "application/senml+xml"}, - {"sensml", "application/sensml+json"}, - {"sensmlc", "application/sensml+cbor"}, - {"sensmle", "application/sensml-exi"}, - {"sensmlx", "application/sensml+xml"}, - {"ser", "application/java-serialized-object"}, - {"sfc", "application/vnd.nintendo.snes.rom"}, - {"sfd", "application/vnd.font-fontforge-sfd"}, - {"sfd-hdstx", "application/vnd.hydrostatix.sof-data"}, - {"sfs", "application/vnd.spotfire.sfs"}, - {"sfv", "text/x-sfv"}, - {"sgf", "application/x-go-sgf"}, - {"sgi", "image/vnd.sealedmedia.softseal.gif"}, - {"sgif", "image/vnd.sealedmedia.softseal.gif"}, - {"sgl", "application/vnd.stardivision.writer-global"}, - {"sgm", "text/SGML"}, - {"sgml", "text/SGML"}, - {"sh", "application/x-sh"}, - {"shaclc", "text/shaclc"}, - {"shar", "application/x-shar"}, - {"shc", "text/shaclc"}, - {"shex", "text/shex"}, - {"shf", "application/shf+xml"}, - {"shp", "application/vnd.shp"}, - {"shtml", "text/html"}, - {"shx", "application/vnd.shx"}, - {"si", "text/vnd.wap.si"}, - {"sic", "application/vnd.wap.sic"}, - {"sid", "audio/prs.sid"}, - {"sieve", "application/sieve"}, - {"sig", "application/pgp-signature"}, - {"sik", "application/x-trash"}, - {"silo", "model/mesh"}, - {"sipa", "application/vnd.smintio.portals.archive"}, - {"sis", "application/vnd.symbian.install"}, - {"sit", "application/x-stuffit"}, - {"sitx", "application/x-stuffit"}, - {"siv", "application/sieve"}, - {"sjp", "image/vnd.sealedmedia.softseal.jpg"}, - {"sjpg", "image/vnd.sealedmedia.softseal.jpg"}, - {"skd", "application/vnd.koan"}, - {"skm", "application/vnd.koan"}, - {"skp", "application/vnd.koan"}, - {"skt", "application/vnd.koan"}, - {"sl", "text/vnd.wap.sl"}, - {"sla", "application/vnd.scribus"}, - {"slaz", "application/vnd.scribus"}, - {"slc", "application/vnd.wap.slc"}, - {"sldm", "application/vnd.ms-powerpoint.slide.macroEnabled.12"}, - {"sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide"}, - {"sls", "application/route-s-tsid+xml"}, - {"slt", "application/vnd.epson.salt"}, - {"sm", "application/vnd.stepmania.stepchart"}, - {"smc", "application/vnd.nintendo.snes.rom"}, - {"smf", "application/vnd.stardivision.math"}, - {"smh", "application/vnd.sealed.mht"}, - {"smht", "application/vnd.sealed.mht"}, - {"smi", "application/smil+xml"}, - {"smil", "application/smil+xml"}, - {"smk", "video/vnd.radgamettools.smacker"}, - {"sml", "application/smil+xml"}, - {"smo", "video/vnd.sealedmedia.softseal.mov"}, - {"smov", "video/vnd.sealedmedia.softseal.mov"}, - {"smp", "audio/vnd.sealedmedia.softseal.mpeg"}, - {"smp3", "audio/vnd.sealedmedia.softseal.mpeg"}, - {"smpg", "video/vnd.sealed.mpeg1"}, - {"sms", "application/vnd.3gpp2.sms"}, - {"smv", "audio/SMV"}, - {"smzip", "application/vnd.stepmania.package"}, - {"snd", "audio/basic"}, - {"soa", "text/dns"}, - {"soc", "application/sgml-open-catalog"}, - {"sofa", "audio/sofa"}, - {"sos", "text/vnd.sosi"}, - {"spc", "chemical/x-galactic-spc"}, - {"spd", "application/vnd.sealedmedia.softseal.pdf"}, - {"spdf", "application/vnd.sealedmedia.softseal.pdf"}, - {"spdx", "text/spdx"}, - {"spdx.json", "application/spdx+json"}, - {"spf", "application/vnd.yamaha.smaf-phrase"}, - {"spl", "application/futuresplash"}, - {"spn", "image/vnd.sealed.png"}, - {"spng", "image/vnd.sealed.png"}, - {"spo", "text/vnd.in3d.spot"}, - {"spot", "text/vnd.in3d.spot"}, - {"spp", "application/scvp-vp-response"}, - {"sppt", "application/vnd.sealed.ppt"}, - {"spq", "application/scvp-vp-request"}, - {"spx", "audio/ogg"}, - {"sql", "application/sql"}, - {"sqlite", "application/vnd.sqlite3"}, - {"sqlite3", "application/vnd.sqlite3"}, - {"sr", "application/vnd.sigrok.session"}, - {"src", "application/x-wais-source"}, - {"srt", "text/plain"}, - {"sru", "application/sru+xml"}, - {"srx", "application/sparql-results+xml"}, - {"sse", "application/vnd.kodak-descriptor"}, - {"ssf", "application/vnd.epson.ssf"}, - {"ssml", "application/ssml+xml"}, - {"ssv", "application/vnd.shade-save-file"}, - {"ssvc", "application/vnd.crypto-shade-file"}, - {"ssw", "video/vnd.sealed.swf"}, - {"sswf", "video/vnd.sealed.swf"}, - {"st", "application/vnd.sailingtracker.track"}, - {"stc", "application/vnd.sun.xml.calc.template"}, - {"std", "application/vnd.sun.xml.draw.template"}, - {"step", "model/step"}, - {"stf", "application/vnd.wt.stf"}, - {"sti", "application/vnd.sun.xml.impress.template"}, - {"stif", "application/vnd.sealed.tiff"}, - {"stix", "application/stix+json"}, - {"stk", "application/hyperstudio"}, - {"stl", "model/stl"}, - {"stml", "application/vnd.sealedmedia.softseal.html"}, - {"stp", "model/step"}, - {"stpnc", "application/p21"}, - {"stpx", "model/step+xml"}, - {"stpxz", "model/step-xml+zip"}, - {"stpz", "model/step+zip"}, - {"str", "application/vnd.pg.format"}, - {"study-inter", "application/vnd.vd-study"}, - {"stw", "application/vnd.sun.xml.writer.template"}, - {"sty", "text/x-tex"}, - {"sus", "application/vnd.sus-calendar"}, - {"susp", "application/vnd.sus-calendar"}, - {"sv4cpio", "application/x-sv4cpio"}, - {"sv4crc", "application/x-sv4crc"}, - {"svc", "application/vnd.dvb.service"}, - {"svg", "image/svg+xml"}, - {"svgz", "image/svg+xml"}, - {"sw", "chemical/x-swissprot"}, - {"swf", "application/vnd.adobe.flash.movie"}, - {"swi", "application/vnd.aristanetworks.swi"}, - {"swidtag", "application/swid+xml"}, - {"sxc", "application/vnd.sun.xml.calc"}, - {"sxd", "application/vnd.sun.xml.draw"}, - {"sxg", "application/vnd.sun.xml.writer.global"}, - {"sxi", "application/vnd.sun.xml.impress"}, - {"sxl", "application/vnd.sealed.xls"}, - {"sxls", "application/vnd.sealed.xls"}, - {"sxm", "application/vnd.sun.xml.math"}, - {"sxw", "application/vnd.sun.xml.writer"}, - {"sy2", "application/vnd.sybyl.mol2"}, - {"syft.json", "application/vnd.syft+json"}, - {"t", "text/troff"}, - {"tag", "text/prs.lines.tag"}, - {"taglet", "application/vnd.mynfc"}, - {"tam", "application/vnd.onepager"}, - {"tamp", "application/vnd.onepagertamp"}, - {"tamx", "application/vnd.onepagertamx"}, - {"tao", "application/vnd.tao.intent-module-archive"}, - {"tap", "image/vnd.tencent.tap"}, - {"tar", "application/x-tar"}, - {"tat", "application/vnd.onepagertat"}, - {"tatp", "application/vnd.onepagertatp"}, - {"tatx", "application/vnd.onepagertatx"}, - {"tau", "application/tamp-apex-update"}, - {"taz", "application/x-gtar-compressed"}, - {"tcap", "application/vnd.3gpp2.tcap"}, - {"tcl", "application/x-tcl"}, - {"tcu", "application/tamp-community-update"}, - {"td", "application/urc-targetdesc+xml"}, - {"teacher", "application/vnd.smart.teacher"}, - {"tei", "application/tei+xml"}, - {"teiCorpus", "application/tei+xml"}, - {"ter", "application/tamp-error"}, - {"tex", "text/x-tex"}, - {"texi", "application/x-texinfo"}, - {"texinfo", "application/x-texinfo"}, - {"text", "text/plain"}, - {"tfi", "application/thraud+xml"}, - {"tfx", "image/tiff-fx"}, - {"tgf", "chemical/x-mdl-tgf"}, - {"tgz", "application/x-gtar-compressed"}, - {"thmx", "application/vnd.ms-officetheme"}, - {"tif", "image/tiff"}, - {"tiff", "image/tiff"}, - {"tk", "text/x-tcl"}, - {"tlclient", "application/vnd.cendio.thinlinc.clientconf"}, - {"tm", "text/texmacs"}, - {"tm.json", "application/tm+json"}, - {"tm.jsonld", "application/tm+json"}, - {"tmo", "application/vnd.tmobile-livetv"}, - {"tnef", "application/vnd.ms-tnef"}, - {"tnf", "application/vnd.ms-tnef"}, - {"torrent", "application/x-bittorrent"}, - {"tpl", "application/vnd.groove-tool-template"}, - {"tpt", "application/vnd.trid.tpt"}, - {"tr", "text/troff"}, - {"tra", "application/vnd.trueapp"}, - {"tree", "application/vnd.rainstor.data"}, - {"trig", "application/trig"}, - {"ts", "text/vnd.trolltech.linguist"}, - {"tsa", "application/tamp-sequence-adjust"}, - {"tsd", "application/timestamped-data"}, - {"tsp", "application/dsptype"}, - {"tsq", "application/timestamp-query"}, - {"tsr", "application/timestamp-reply"}, - {"tst", "application/vnd.etsi.timestamp-token"}, - {"tsv", "text/tab-separated-values"}, - {"ttc", "font/collection"}, - {"ttf", "font/ttf"}, - {"ttl", "text/turtle"}, - {"ttml", "application/ttml+xml"}, - {"tuc", "application/tamp-update-confirm"}, - {"tur", "application/tamp-update"}, - {"twd", "application/vnd.SimTech-MindMapper"}, - {"twds", "application/vnd.SimTech-MindMapper"}, - {"txd", "application/vnd.genomatix.tuxedo"}, - {"txf", "application/vnd.Mobius.TXF"}, - {"txt", "text/plain"}, - {"u3d", "model/u3d"}, - {"u8dsn", "message/global-delivery-status"}, - {"u8hdr", "message/global-headers"}, - {"u8mdn", "message/global-disposition-notification"}, - {"u8msg", "message/global"}, - {"udeb", "application/vnd.debian.binary-package"}, - {"ufd", "application/vnd.ufdl"}, - {"ufdl", "application/vnd.ufdl"}, - {"uis", "application/urc-uisocketdesc+xml"}, - {"umj", "application/vnd.umajin"}, - {"unityweb", "application/vnd.unity"}, - {"uo", "application/vnd.uoml+xml"}, - {"uoml", "application/vnd.uoml+xml"}, - {"upa", "application/vnd.hbci"}, - {"uri", "text/uri-list"}, - {"urim", "application/vnd.uri-map"}, - {"urimap", "application/vnd.uri-map"}, - {"uris", "text/uri-list"}, - {"usda", "model/vnd.usda"}, - {"usdz", "model/vnd.usdz+zip"}, - {"ustar", "application/x-ustar"}, - {"utz", "application/vnd.uiq.theme"}, - {"uva", "audio/vnd.dece.audio"}, - {"uvd", "application/vnd.dece.data"}, - {"uvf", "application/vnd.dece.data"}, - {"uvg", "image/vnd.dece.graphic"}, - {"uvh", "video/vnd.dece.hd"}, - {"uvi", "image/vnd.dece.graphic"}, - {"uvm", "video/vnd.dece.mobile"}, - {"uvp", "video/vnd.dece.pd"}, - {"uvs", "video/vnd.dece.sd"}, - {"uvt", "application/vnd.dece.ttml+xml"}, - {"uvu", "video/vnd.dece.mp4"}, - {"uvv", "video/vnd.dece.video"}, - {"uvva", "audio/vnd.dece.audio"}, - {"uvvd", "application/vnd.dece.data"}, - {"uvvf", "application/vnd.dece.data"}, - {"uvvg", "image/vnd.dece.graphic"}, - {"uvvh", "video/vnd.dece.hd"}, - {"uvvi", "image/vnd.dece.graphic"}, - {"uvvm", "video/vnd.dece.mobile"}, - {"uvvp", "video/vnd.dece.pd"}, - {"uvvs", "video/vnd.dece.sd"}, - {"uvvt", "application/vnd.dece.ttml+xml"}, - {"uvvu", "video/vnd.dece.mp4"}, - {"uvvv", "video/vnd.dece.video"}, - {"uvvx", "application/vnd.dece.unspecified"}, - {"uvvz", "application/vnd.dece.zip"}, - {"uvx", "application/vnd.dece.unspecified"}, - {"uvz", "application/vnd.dece.zip"}, - {"val", "chemical/x-ncbi-asn1-binary"}, - {"vbk", "audio/vnd.nortel.vbk"}, - {"vbox", "application/vnd.previewsystems.box"}, - {"vcard", "text/vcard"}, - {"vcd", "application/x-cdlink"}, - {"vcf", "text/vcard"}, - {"vcg", "application/vnd.groove-vcard"}, - {"vcj", "application/voucher-cms+json"}, - {"vcs", "text/x-vcalendar"}, - {"vcx", "application/vnd.vcx"}, - {"vds", "model/vnd.sap.vds"}, - {"VES", "application/vnd.ves.encrypted"}, - {"vew", "application/vnd.lotus-approach"}, - {"VFK", "text/vnd.exchangeable"}, - {"vfr", "application/vnd.tml"}, - {"viaframe", "application/vnd.tml"}, - {"vis", "application/vnd.visionary"}, - {"viv", "video/vnd.vivo"}, - {"vmd", "chemical/x-vmd"}, - {"vms", "chemical/x-vamas-iso14976"}, - {"vmt", "application/vnd.valve.source.material"}, - {"vpm", "multipart/voice-message"}, - {"vrm", "model/vrml"}, - {"vrml", "model/vrml"}, - {"vsc", "application/vnd.vidsoft.vidconference"}, - {"vsd", "application/vnd.visio"}, - {"vsf", "application/vnd.vsf"}, - {"vss", "application/vnd.visio"}, - {"vst", "application/vnd.visio"}, - {"vsw", "application/vnd.visio"}, - {"vtf", "image/vnd.valve.source.texture"}, - {"vtnstd", "application/vnd.veritone.aion+json"}, - {"vtt", "text/vtt"}, - {"vtu", "model/vnd.vtu"}, - {"vwx", "application/vnd.vectorworks"}, - {"vxml", "application/voicexml+xml"}, - {"wad", "application/x-doom"}, - {"wadl", "application/vnd.sun.wadl+xml"}, - {"wafl", "application/vnd.wasmflow.wafl"}, - {"wasm", "application/wasm"}, - {"wav", "audio/x-wav"}, - {"wax", "audio/x-ms-wax"}, - {"wbmp", "image/vnd.wap.wbmp"}, - {"wbs", "application/vnd.criticaltools.wbs+xml"}, - {"wbxml", "application/vnd.wap.wbxml"}, - {"wcm", "application/vnd.ms-works"}, - {"wdb", "application/vnd.ms-works"}, - {"webm", "video/webm"}, - {"webmanifest", "application/manifest+json"}, - {"webp", "image/webp"}, - {"wg", "application/vnd.pmi.widget"}, - {"wgsl", "text/wgsl"}, - {"wgt", "application/widget"}, - {"wif", "application/watcherinfo+xml"}, - {"win", "model/vnd.gdl"}, - {"wk", "application/x-123"}, - {"wk1", "application/vnd.lotus-1-2-3"}, - {"wk3", "application/vnd.lotus-1-2-3"}, - {"wk4", "application/vnd.lotus-1-2-3"}, - {"wks", "application/vnd.ms-works"}, - {"wlnk", "application/link-format"}, - {"wm", "video/x-ms-wm"}, - {"wma", "audio/x-ms-wma"}, - {"wmc", "application/vnd.wmc"}, - {"wmd", "application/x-ms-wmd"}, - {"wmf", "image/wmf"}, - {"wml", "text/vnd.wap.wml"}, - {"wmlc", "application/vnd.wap.wmlc"}, - {"wmls", "text/vnd.wap.wmlscript"}, - {"wmlsc", "application/vnd.wap.wmlscriptc"}, - {"wmv", "video/x-ms-wmv"}, - {"wmx", "video/x-ms-wmx"}, - {"wmz", "application/x-ms-wmz"}, - {"woff", "font/woff"}, - {"woff2", "font/woff2"}, - {"wpd", "application/vnd.wordperfect"}, - {"wpl", "application/vnd.ms-wpl"}, - {"wps", "application/vnd.ms-works"}, - {"wqd", "application/vnd.wqd"}, - {"wrl", "model/vrml"}, - {"wsc", "application/vnd.wfa.wsc"}, - {"wsdl", "application/wsdl+xml"}, - {"wspolicy", "application/wspolicy+xml"}, - {"wtb", "application/vnd.webturbo"}, - {"wv", "application/vnd.wv.csp+wbxml"}, - {"wvx", "video/x-ms-wvx"}, - {"wz", "application/x-wingz"}, - {"x_b", "model/vnd.parasolid.transmit.binary"}, - {"x_t", "model/vnd.parasolid.transmit.text"}, - {"x3d", "model/x3d+xml"}, - {"x3db", "model/x3d+fastinfoset"}, - {"x3dv", "model/x3d-vrml"}, - {"x3dvz", "model/x3d-vrml"}, - {"x3dz", "model/x3d+xml"}, - {"xar", "application/vnd.xara"}, - {"xav", "application/xcap-att+xml"}, - {"xbd", "application/vnd.fujixerox.docuworks.binder"}, - {"xbm", "image/x-xbitmap"}, - {"xca", "application/xcap-caps+xml"}, - {"xcf", "image/x-xcf"}, - {"xcos", "application/x-scilab-xcos"}, - {"xcs", "application/calendar+xml"}, - {"xct", "application/vnd.fujixerox.docuworks.container"}, - {"xdd", "application/bacnet-xdd+zip"}, - {"xdf", "application/xcap-diff+xml"}, - {"xdm", "application/vnd.syncml.dm+xml"}, - {"xdp", "application/vnd.adobe.xdp+xml"}, - {"xdssc", "application/dssc+xml"}, - {"xdw", "application/vnd.fujixerox.docuworks"}, - {"xel", "application/xcap-el+xml"}, - {"xer", "application/xcap-error+xml"}, - {"xfd", "application/vnd.xfdl"}, - {"xfdf", "application/xfdf"}, - {"xfdl", "application/vnd.xfdl"}, - {"xhe", "audio/usac"}, - {"xht", "application/xhtml+xml"}, - {"xhtm", "application/xhtml+xml"}, - {"xhtml", "application/xhtml+xml"}, - {"xhvml", "application/xv+xml"}, - {"xif", "image/vnd.xiff"}, - {"xla", "application/vnd.ms-excel"}, - {"xlam", "application/vnd.ms-excel.addin.macroEnabled.12"}, - {"xlc", "application/vnd.ms-excel"}, - {"xlf", "application/xliff+xml"}, - {"xlim", "application/vnd.xmpie.xlim"}, - {"xlm", "application/vnd.ms-excel"}, - {"xls", "application/vnd.ms-excel"}, - {"xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12"}, - {"xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12"}, - {"xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}, - {"xlt", "application/vnd.ms-excel"}, - {"xltm", "application/vnd.ms-excel.template.macroEnabled.12"}, - {"xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template"}, - {"xlw", "application/vnd.ms-excel"}, - {"xml", "application/xml"}, - {"xmls", "application/dskpp+xml"}, - {"xmt_bin", "model/vnd.parasolid.transmit.binary"}, - {"xmt_txt", "model/vnd.parasolid.transmit.text"}, - {"xns", "application/xcap-ns+xml"}, - {"xo", "application/vnd.olpc-sugar"}, - {"xodp", "application/vnd.collabio.xodocuments.presentation"}, - {"xods", "application/vnd.collabio.xodocuments.spreadsheet"}, - {"xodt", "application/vnd.collabio.xodocuments.document"}, - {"xop", "application/xop+xml"}, - {"xotp", "application/vnd.collabio.xodocuments.presentation-template"}, - {"xots", "application/vnd.collabio.xodocuments.spreadsheet-template"}, - {"xott", "application/vnd.collabio.xodocuments.document-template"}, - {"xpak", "application/vnd.gentoo.xpak"}, - {"xpi", "application/x-xpinstall"}, - {"xpm", "image/x-xpixmap"}, - {"xpr", "application/vnd.is-xpr"}, - {"xps", "application/vnd.ms-xpsdocument"}, - {"xpw", "application/vnd.intercon.formnet"}, - {"xpx", "application/vnd.intercon.formnet"}, - {"xsf", "application/prs.xsf+xml"}, - {"xsl", "application/xslt+xml"}, - {"xslt", "application/xslt+xml"}, - {"xsm", "application/vnd.syncml+xml"}, - {"xspf", "application/xspf+xml"}, - {"xtel", "chemical/x-xtel"}, - {"xul", "application/vnd.mozilla.xul+xml"}, - {"xvm", "application/xv+xml"}, - {"xvml", "application/xv+xml"}, - {"xwd", "image/x-xwindowdump"}, - {"xyz", "chemical/x-xyz"}, - {"xyze", "image/vnd.radiance"}, - {"xz", "application/x-xz"}, - {"yaml", "application/yaml"}, - {"yang", "application/yang"}, - {"yin", "application/yin+xml"}, - {"yme", "application/vnd.yaoweme"}, - {"yml", "application/yaml"}, - {"yt", "video/vnd.youtube.yt"}, - {"zaz", "application/vnd.zzazz.deck+xml"}, - {"zfc", "application/vnd.filmit.zfc"}, - {"zfo", "application/vnd.software602.filler.form-xml-zip"}, - {"zip", "application/zip"}, - {"zir", "application/vnd.zul"}, - {"zirz", "application/vnd.zul"}, - {"zmm", "application/vnd.HandHeld-Entertainment+xml"}, - {"zmt", "chemical/x-mopac-input"}, - {"zone", "text/dns"}, - {"zst", "application/zstd"} -}; + {"%", "application/x-trash"}, + {"~", "application/x-trash"}, + {"123", "application/vnd.lotus-1-2-3"}, + {"1905.1", "application/vnd.ieee.1905"}, + {"1clr", "application/clr"}, + {"1km", "application/vnd.1000minds.decision-model+xml"}, + {"210", "application/p21"}, + {"3dm", "text/vnd.in3d.3dml"}, + {"3dml", "text/vnd.in3d.3dml"}, + {"3mf", "application/vnd.ms-3mfdocument"}, + {"3tz", "application/vnd.maxar.archive.3tz+zip"}, + {"726", "audio/32kadpcm"}, + {"7z", "application/x-7z-compressed"}, + {"a", "text/vnd.a"}, + {"a2l", "application/A2L"}, + {"aa3", "audio/ATRAC3"}, + {"aac", "audio/aac"}, + {"aal", "audio/ATRAC-ADVANCED-LOSSLESS"}, + {"abc", "text/vnd.abc"}, + {"abw", "application/x-abiword"}, + {"ac", "application/pkix-attr-cert"}, + {"ac2", "application/vnd.banana-accounting"}, + {"ac3", "audio/ac3"}, + {"acc", "application/vnd.americandynamics.acc"}, + {"acn", "audio/asc"}, + {"acu", "application/vnd.acucobol"}, + {"acutc", "application/vnd.acucorp"}, + {"adts", "audio/aac"}, + {"aep", "application/vnd.audiograph"}, + {"afp", "application/vnd.afpc.modca"}, + {"age", "application/vnd.age"}, + {"ahead", "application/vnd.ahead.space"}, + {"ai", "application/postscript"}, + {"aif", "audio/x-aiff"}, + {"aifc", "audio/x-aiff"}, + {"aiff", "audio/x-aiff"}, + {"aion", "application/vnd.veritone.aion+json"}, + {"ait", "application/vnd.dvb.ait"}, + {"alc", "chemical/x-alchemy"}, + {"ami", "application/vnd.amiga.ami"}, + {"aml", "application/AML"}, + {"amlx", "application/automationml-amlx+zip"}, + {"amr", "audio/AMR"}, + {"AMR", "audio/AMR"}, + {"anx", "application/annodex"}, + {"apex", "application/vnd.apexlang"}, + {"apexlang", "application/vnd.apexlang"}, + {"apk", "application/vnd.android.package-archive"}, + {"apkg", "application/vnd.anki"}, + {"apng", "image/apng"}, + {"appcache", "text/cache-manifest"}, + {"apr", "application/vnd.lotus-approach"}, + {"apxml", "application/auth-policy+xml"}, + {"arrow", "application/vnd.apache.arrow.file"}, + {"arrows", "application/vnd.apache.arrow.stream"}, + {"art", "image/x-jg"}, + {"artisan", "application/vnd.artisan+json"}, + {"asc", "application/pgp-keys"}, + {"ascii", "text/vnd.ascii-art"}, + {"asf", "application/vnd.ms-asf"}, + {"asice", "application/vnd.etsi.asic-e+zip"}, + {"asics", "application/vnd.etsi.asic-s+zip"}, + {"asn", "chemical/x-ncbi-asn1"}, + {"aso", "application/vnd.accpac.simply.aso"}, + {"ass", "audio/aac"}, + {"at3", "audio/ATRAC3"}, + {"atc", "application/vnd.acucorp"}, + {"atf", "application/ATF"}, + {"atfx", "application/ATFX"}, + {"atom", "application/atom+xml"}, + {"atomcat", "application/atomcat+xml"}, + {"atomdeleted", "application/atomdeleted+xml"}, + {"atomsrv", "application/atomserv+xml"}, + {"atomsvc", "application/atomsvc+xml"}, + {"atx", "audio/ATRAC-X"}, + {"atxml", "application/ATXML"}, + {"au", "audio/basic"}, + {"auc", "application/tamp-apex-update-confirm"}, + {"avci", "image/avci"}, + {"avcs", "image/avcs"}, + {"avi", "video/x-msvideo"}, + {"avif", "image/avif"}, + {"awb", "audio/AMR-WB"}, + {"AWB", "audio/AMR-WB"}, + {"axa", "audio/annodex"}, + {"axv", "video/annodex"}, + {"azf", "application/vnd.airzip.filesecure.azf"}, + {"azs", "application/vnd.airzip.filesecure.azs"}, + {"azv", "image/vnd.airzip.accelerator.azv"}, + {"azw3", "application/vnd.amazon.mobi8-ebook"}, + {"b", "chemical/x-molconn-Z"}, + {"b16", "image/vnd.pco.b16"}, + {"bak", "application/x-trash"}, + {"bar", "application/vnd.qualcomm.brew-app-res"}, + {"bary", "model/vnd.bary"}, + {"bat", "application/x-msdos-program"}, + {"bcpio", "application/x-bcpio"}, + {"bdm", "application/vnd.syncml.dm+wbxml"}, + {"bed", "application/vnd.realvnc.bed"}, + {"bh2", "application/vnd.fujitsu.oasysprs"}, + {"bib", "text/x-bibtex"}, + {"bik", "video/vnd.radgamettools.bink"}, + {"bin", "application/octet-stream"}, + {"bk2", "video/vnd.radgamettools.bink"}, + {"bkm", "application/vnd.nervana"}, + {"bmed", "multipart/vnd.bint.med-plus"}, + {"bmi", "application/vnd.bmi"}, + {"bmml", "application/vnd.balsamiq.bmml+xml"}, + {"bmp", "image/bmp"}, + {"bmpr", "application/vnd.balsamiq.bmpr"}, + {"boo", "text/x-boo"}, + {"book", "application/x-maker"}, + {"box", "application/vnd.previewsystems.box"}, + {"bpd", "application/vnd.hbci"}, + {"brf", "text/plain"}, + {"bsd", "chemical/x-crossfire"}, + {"bsp", "model/vnd.valve.source.compiled-map"}, + {"btf", "image/prs.btif"}, + {"btif", "image/prs.btif"}, + {"c", "text/x-csrc"}, + {"c++", "text/x-c++src"}, + {"c11amc", "application/vnd.cluetrust.cartomobile-config"}, + {"c11amz", "application/vnd.cluetrust.cartomobile-config-pkg"}, + {"c3d", "chemical/x-chem3d"}, + {"c3ex", "application/cccex"}, + {"c4d", "application/vnd.clonk.c4group"}, + {"c4f", "application/vnd.clonk.c4group"}, + {"c4g", "application/vnd.clonk.c4group"}, + {"c4p", "application/vnd.clonk.c4group"}, + {"c4u", "application/vnd.clonk.c4group"}, + {"c9r", "application/vnd.cryptomator.encrypted"}, + {"c9s", "application/vnd.cryptomator.encrypted"}, + {"cab", "application/vnd.ms-cab-compressed"}, + {"cac", "chemical/x-cache"}, + {"cache", "chemical/x-cache"}, + {"cap", "application/vnd.tcpdump.pcap"}, + {"car", "application/vnd.ipld.car"}, + {"carjson", "application/vnd.eu.kasparian.car+json"}, + {"cascii", "chemical/x-cactvs-binary"}, + {"cat", "application/vnd.ms-pki.seccat"}, + {"cbin", "chemical/x-cactvs-binary"}, + {"cbor", "application/cbor"}, + {"cbr", "application/vnd.comicbook-rar"}, + {"cbz", "application/vnd.comicbook+zip"}, + {"cc", "text/x-c++src"}, + {"ccc", "text/vnd.net2phone.commcenter.command"}, + {"ccmp", "application/ccmp+xml"}, + {"ccxml", "application/ccxml+xml"}, + {"cda", "application/x-cdf"}, + {"cdbcmsg", "application/vnd.contact.cmsg"}, + {"cdf", "application/x-cdf"}, + {"cdfx", "application/CDFX+XML"}, + {"cdkey", "application/vnd.mediastation.cdkey"}, + {"cdmia", "application/cdmi-capability"}, + {"cdmic", "application/cdmi-container"}, + {"cdmid", "application/cdmi-domain"}, + {"cdmio", "application/cdmi-object"}, + {"cdmiq", "application/cdmi-queue"}, + {"cdr", "image/x-coreldraw"}, + {"cdt", "image/x-coreldrawtemplate"}, + {"cdx", "chemical/x-cdx"}, + {"cdxml", "application/vnd.chemdraw+xml"}, + {"cdy", "application/vnd.cinderella"}, + {"cea", "application/CEA"}, + {"cef", "chemical/x-cxf"}, + {"cellml", "application/cellml+xml"}, + {"cer", "application/pkix-cert"}, + {"cgm", "image/cgm"}, + {"chm", "application/vnd.ms-htmlhelp"}, + {"chrt", "application/vnd.kde.kchart"}, + {"cif", "application/vnd.multiad.creator.cif"}, + {"cii", "application/vnd.anser-web-certificate-issue-initiation"}, + {"cil", "application/vnd.ms-artgalry"}, + {"cl", "application/simple-filter+xml"}, + {"cla", "application/vnd.claymore"}, + {"class", "application/java-vm"}, + {"cld", "model/vnd.cld"}, + {"clkk", "application/vnd.crick.clicker.keyboard"}, + {"clkp", "application/vnd.crick.clicker.palette"}, + {"clkt", "application/vnd.crick.clicker.template"}, + {"clkw", "application/vnd.crick.clicker.wordbank"}, + {"clkx", "application/vnd.crick.clicker"}, + {"cls", "text/x-tex"}, + {"clue", "application/clue_info+xml"}, + {"cmc", "application/vnd.cosmocaller"}, + {"cmdf", "chemical/x-cmdf"}, + {"cml", "application/cellml+xml"}, + {"cmp", "application/vnd.yellowriver-custom-menu"}, + {"cmsc", "application/cms"}, + {"cnd", "text/jcr-cnd"}, + {"cod", "application/vnd.rim.cod"}, + {"coffee", "application/vnd.coffeescript"}, + {"com", "application/x-msdos-program"}, + {"copyright", "text/vnd.debian.copyright"}, + {"coswid", "application/swid+cbor"}, + {"cpa", "chemical/x-compass"}, + {"cpio", "application/x-cpio"}, + {"cpkg", "application/vnd.xmpie.cpkg"}, + {"cpl", "application/cpl+xml"}, + {"cpp", "text/x-c++src"}, + {"cpt", "application/mac-compactpro"}, + {"CQL", "text/cql"}, + {"cr2", "image/x-canon-cr2"}, + {"crl", "application/pkix-crl"}, + {"crt", "application/x-x509-ca-cert"}, + {"crtr", "application/vnd.multiad.creator"}, + {"crw", "image/x-canon-crw"}, + {"cryptomator", "application/vnd.cryptomator.vault"}, + {"cryptonote", "application/vnd.rig.cryptonote"}, + {"csd", "audio/csound"}, + {"csf", "chemical/x-cache-csf"}, + {"csh", "application/x-csh"}, + {"csl", "application/vnd.citationstyles.style+xml"}, + {"csm", "chemical/x-csml"}, + {"csml", "chemical/x-csml"}, + {"csp", "application/vnd.commonspace"}, + {"csrattrs", "application/csrattrs"}, + {"css", "text/css"}, + {"cst", "application/vnd.commonspace"}, + {"csv", "text/csv"}, + {"csvs", "text/csv-schema"}, + {"ctab", "chemical/x-cactvs-binary"}, + {"ctx", "chemical/x-ctx"}, + {"cu", "application/cu-seeme"}, + {"cub", "chemical/x-gaussian-cube"}, + {"cuc", "application/tamp-community-update-confirm"}, + {"curl", "text/vnd.curl"}, + {"cw", "application/prs.cww"}, + {"cwl", "application/cwl"}, + {"cwl.json", "application/cwl+json"}, + {"cww", "application/prs.cww"}, + {"cxf", "chemical/x-cxf"}, + {"cxx", "text/x-c++src"}, + {"d", "text/x-dsrc"}, + {"dae", "model/vnd.collada+xml"}, + {"daf", "application/vnd.Mobius.DAF"}, + {"dart", "application/vnd.dart"}, + {"dataless", "application/vnd.fdsn.seed"}, + {"davmount", "application/davmount+xml"}, + {"dbf", "application/vnd.dbf"}, + {"dcd", "application/DCD"}, + {"dcm", "application/dicom"}, + {"dcr", "application/x-director"}, + {"dd2", "application/vnd.oma.dd2+xml"}, + {"ddd", "application/vnd.fujixerox.ddd"}, + {"ddeb", "application/vnd.debian.binary-package"}, + {"ddf", "application/vnd.syncml.dmddf+xml"}, + {"deb", "application/vnd.debian.binary-package"}, + {"deploy", "application/octet-stream"}, + {"dfac", "application/vnd.dreamfactory"}, + {"dif", "video/dv"}, + {"diff", "text/x-diff"}, + {"dii", "application/DII"}, + {"dim", "application/vnd.fastcopy-disk-image"}, + {"dir", "application/x-director"}, + {"dis", "application/vnd.Mobius.DIS"}, + {"dist", "application/vnd.apple.installer+xml"}, + {"distz", "application/vnd.apple.installer+xml"}, + {"dit", "application/DIT"}, + {"dive", "application/vnd.patentdive"}, + {"djv", "image/vnd.djvu"}, + {"djvu", "image/vnd.djvu"}, + {"dl", "application/vnd.datalog"}, + {"dll", "application/x-msdos-program"}, + {"dls", "audio/dls"}, + {"dmg", "application/x-apple-diskimage"}, + {"dmp", "application/vnd.tcpdump.pcap"}, + {"dms", "text/vnd.DMClientScript"}, + {"dna", "application/vnd.dna"}, + {"doc", "application/msword"}, + {"docjson", "application/vnd.document+json"}, + {"docm", "application/vnd.ms-word.document.macroEnabled.12"}, + {"docx", + "application/vnd.openxmlformats-officedocument.wordprocessingml.document"}, + {"dor", "model/vnd.gdl"}, + {"dot", "text/vnd.graphviz"}, + {"dotm", "application/vnd.ms-word.template.macroEnabled.12"}, + {"dotx", + "application/vnd.openxmlformats-officedocument.wordprocessingml.template"}, + {"dp", "application/vnd.osgi.dp"}, + {"dpg", "application/vnd.dpgraph"}, + {"dpgraph", "application/vnd.dpgraph"}, + {"dpkg", "application/vnd.xmpie.dpkg"}, + {"dpx", "image/dpx"}, + {"drle", "image/dicom-rle"}, + {"dsc", "text/prs.lines.tag"}, + {"dsm", "application/vnd.desmume.movie"}, + {"dssc", "application/dssc+der"}, + {"dtd", "application/xml-dtd"}, + {"dts", "audio/vnd.dts"}, + {"dtshd", "audio/vnd.dts.hd"}, + {"dv", "video/dv"}, + {"dvb", "video/vnd.dvb.file"}, + {"dvc", "application/dvcs"}, + {"dvi", "application/x-dvi"}, + {"dwd", "application/atsc-dwd+xml"}, + {"dwf", "model/vnd.dwf"}, + {"dwg", "image/vnd.dwg"}, + {"dx", "chemical/x-jcamp-dx"}, + {"dxf", "image/vnd.dxf"}, + {"dxp", "application/vnd.spotfire.dxp"}, + {"dxr", "application/x-director"}, + {"dzr", "application/vnd.dzr"}, + {"ebuild", "application/vnd.gentoo.ebuild"}, + {"ecelp4800", "audio/vnd.nuera.ecelp4800"}, + {"ecelp7470", "audio/vnd.nuera.ecelp7470"}, + {"ecelp9600", "audio/vnd.nuera.ecelp9600"}, + {"ecig", "application/vnd.evolv.ecig.settings"}, + {"ecigprofile", "application/vnd.evolv.ecig.profile"}, + {"ecigtheme", "application/vnd.evolv.ecig.theme"}, + {"eclass", "application/vnd.gentoo.eclass"}, + {"edm", "application/vnd.novadigm.EDM"}, + {"edx", "application/vnd.novadigm.EDX"}, + {"efi", "application/efi"}, + {"efif", "application/vnd.picsel"}, + {"ei6", "application/vnd.pg.osasli"}, + {"ELN", "application/vnd.eln+zip"}, + {"emb", "chemical/x-embl-dl-nucleotide"}, + {"embl", "chemical/x-embl-dl-nucleotide"}, + {"emf", "image/emf"}, + {"eml", "message/rfc822"}, + {"emm", "application/vnd.ibm.electronic-media"}, + {"emma", "application/emma+xml"}, + {"emotionml", "application/emotionml+xml"}, + {"ent", "application/xml-external-parsed-entity"}, + {"entity", "application/vnd.nervana"}, + {"enw", "audio/EVRCNW"}, + {"eol", "audio/vnd.digital-winds"}, + {"eot", "application/vnd.ms-fontobject"}, + {"ep", "application/vnd.bluetooth.ep.oob"}, + {"eps", "application/postscript"}, + {"eps2", "application/postscript"}, + {"eps3", "application/postscript"}, + {"epsf", "application/postscript"}, + {"epsi", "application/postscript"}, + {"epub", "application/epub+zip"}, + {"erf", "image/x-epson-erf"}, + {"es", "text/javascript"}, + {"es3", "application/vnd.eszigno3+xml"}, + {"esa", "application/vnd.osgi.subsystem"}, + {"esf", "application/vnd.epson.esf"}, + {"espass", "application/vnd.espass-espass+zip"}, + {"et3", "application/vnd.eszigno3+xml"}, + {"etx", "text/x-setext"}, + {"evb", "audio/EVRCB"}, + {"evc", "audio/EVRC"}, + {"evw", "audio/EVRCWB"}, + {"exe", "application/x-msdos-program"}, + {"exi", "application/exi"}, + {"exp", "application/express"}, + {"exr", "image/aces"}, + {"ext", "application/vnd.novadigm.EXT"}, + {"ez", "application/andrew-inset"}, + {"ez2", "application/vnd.ezpix-album"}, + {"ez3", "application/vnd.ezpix-package"}, + {"fb", "application/x-maker"}, + {"fbdoc", "application/x-maker"}, + {"fbs", "image/vnd.fastbidsheet"}, + {"fcdt", "application/vnd.adobe.formscentral.fcdt"}, + {"fch", "chemical/x-gaussian-checkpoint"}, + {"fchk", "chemical/x-gaussian-checkpoint"}, + {"fcs", "application/vnd.isac.fcs"}, + {"fdf", "application/fdf"}, + {"fdt", "application/fdt+xml"}, + {"fe_launch", "application/vnd.denovo.fcselayout-link"}, + {"fg5", "application/vnd.fujitsu.oasysgp"}, + {"fig", "application/x-xfig"}, + {"finf", "application/fastinfoset"}, + {"fit", "image/fits"}, + {"fits", "image/fits"}, + {"fla", "application/vnd.dtg.local.flash"}, + {"flac", "audio/flac"}, + {"flb", "application/vnd.ficlab.flb+zip"}, + {"fli", "video/fli"}, + {"flo", "application/vnd.micrografx.flo"}, + {"flt", "text/vnd.ficlab.flt"}, + {"flv", "video/x-flv"}, + {"flw", "application/vnd.kde.kivio"}, + {"flx", "text/vnd.fmi.flexstor"}, + {"fly", "text/vnd.fly"}, + {"fm", "application/vnd.framemaker"}, + {"fo", "application/vnd.software602.filler.form+xml"}, + {"fpx", "image/vnd.fpx"}, + {"frame", "application/x-maker"}, + {"frm", "application/vnd.ufdl"}, + {"fsc", "application/vnd.fsc.weblaunch"}, + {"fst", "image/vnd.fst"}, + {"ftc", "application/vnd.fluxtime.clip"}, + {"fti", "application/vnd.anser-web-funds-transfer-initiation"}, + {"fts", "image/fits"}, + {"fvt", "video/vnd.fvt"}, + {"fxp", "application/vnd.adobe.fxp"}, + {"fxpl", "application/vnd.adobe.fxp"}, + {"fzs", "application/vnd.fuzzysheet"}, + {"g2w", "application/vnd.geoplan"}, + {"g3w", "application/vnd.geospace"}, + {"gac", "application/vnd.groove-account"}, + {"gal", "chemical/x-gaussian-log"}, + {"gam", "chemical/x-gamess-input"}, + {"gamin", "chemical/x-gamess-input"}, + {"gan", "application/x-ganttproject"}, + {"gau", "chemical/x-gaussian-input"}, + {"gbr", "application/rpki-ghostbusters"}, + {"gcd", "text/x-pcs-gcd"}, + {"gcf", "application/x-graphing-calculator"}, + {"gcg", "chemical/x-gcg8-sequence"}, + {"gdl", "model/vnd.gdl"}, + {"gdz", "application/vnd.familysearch.gedcom+zip"}, + {"ged", "text/vnd.familysearch.gedcom"}, + {"gen", "chemical/x-genbank"}, + {"genozip", "application/vnd.genozip"}, + {"geo", "application/vnd.dynageo"}, + {"geojson", "application/geo+json"}, + {"gex", "application/vnd.geometry-explorer"}, + {"gf", "application/x-tex-gf"}, + {"gff3", "text/gff3"}, + {"ggb", "application/vnd.geogebra.file"}, + {"ggs", "application/vnd.geogebra.slides"}, + {"ggt", "application/vnd.geogebra.tool"}, + {"ghf", "application/vnd.groove-help"}, + {"gif", "image/gif"}, + {"gim", "application/vnd.groove-identity-message"}, + {"gjc", "chemical/x-gaussian-input"}, + {"gjf", "chemical/x-gaussian-input"}, + {"gl", "video/gl"}, + {"glb", "model/gltf-binary"}, + {"glbin", "application/gltf-buffer"}, + {"glbuf", "application/gltf-buffer"}, + {"gltf", "model/gltf+json"}, + {"gml", "application/gml+xml"}, + {"gnumeric", "application/x-gnumeric"}, + {"gph", "application/vnd.FloGraphIt"}, + {"gpkg", "application/geopackage+sqlite3"}, + {"gpkg.tar", "application/vnd.gentoo.gpkg"}, + {"gpt", "chemical/x-mopac-graph"}, + {"gqf", "application/vnd.grafeq"}, + {"gqs", "application/vnd.grafeq"}, + {"gram", "application/srgs"}, + {"grd", "application/vnd.gentics.grd+json"}, + {"gre", "application/vnd.geometry-explorer"}, + {"grv", "application/vnd.groove-injector"}, + {"grxml", "application/srgs+xml"}, + {"gsf", "application/x-font"}, + {"gsheet", "application/urc-grpsheet+xml"}, + {"gsm", "audio/x-gsm"}, + {"gtar", "application/x-gtar"}, + {"gtm", "application/vnd.groove-tool-message"}, + {"gtw", "model/vnd.gtw"}, + {"gv", "text/vnd.graphviz"}, + {"gxt", "application/vnd.geonext"}, + {"gz", "application/gzip"}, + {"h", "text/x-chdr"}, + {"h++", "text/x-c++hdr"}, + {"hal", "application/vnd.hal+xml"}, + {"hans", "text/vnd.hans"}, + {"hbc", "application/vnd.hbci"}, + {"hbci", "application/vnd.hbci"}, + {"hdf", "application/x-hdf"}, + {"hdr", "image/vnd.radiance"}, + {"hdt", "application/vnd.hdt"}, + {"heic", "image/heic"}, + {"heics", "image/heic-sequence"}, + {"heif", "image/heif"}, + {"heifs", "image/heif-sequence"}, + {"hej2", "image/hej2k"}, + {"held", "application/atsc-held+xml"}, + {"hgl", "text/vnd.hgl"}, + {"hh", "text/x-c++hdr"}, + {"hif", "image/avif"}, + {"hin", "chemical/x-hin"}, + {"hpgl", "application/vnd.hp-HPGL"}, + {"hpi", "application/vnd.hp-hpid"}, + {"hpid", "application/vnd.hp-hpid"}, + {"hpp", "text/x-c++hdr"}, + {"hps", "application/vnd.hp-hps"}, + {"hpub", "application/prs.hpub+zip"}, + {"hqx", "application/mac-binhex40"}, + {"hs", "text/x-haskell"}, + {"hsj2", "image/hsj2"}, + {"hsl", "application/vnd.hsl"}, + {"hta", "application/hta"}, + {"htc", "text/x-component"}, + {"htke", "application/vnd.kenameaapp"}, + {"htm", "text/html"}, + {"html", "text/html"}, + {"hvd", "application/vnd.yamaha.hv-dic"}, + {"hvp", "application/vnd.yamaha.hv-voice"}, + {"hvs", "application/vnd.yamaha.hv-script"}, + {"hwp", "application/x-hwp"}, + {"hxx", "text/x-c++hdr"}, + {"i2g", "application/vnd.intergeo"}, + {"ic0", "application/vnd.commerce-battelle"}, + {"ic1", "application/vnd.commerce-battelle"}, + {"ic2", "application/vnd.commerce-battelle"}, + {"ic3", "application/vnd.commerce-battelle"}, + {"ic4", "application/vnd.commerce-battelle"}, + {"ic5", "application/vnd.commerce-battelle"}, + {"ic6", "application/vnd.commerce-battelle"}, + {"ic7", "application/vnd.commerce-battelle"}, + {"ic8", "application/vnd.commerce-battelle"}, + {"ica", "application/x-ica"}, + {"icc", "application/vnd.iccprofile"}, + {"icd", "application/vnd.commerce-battelle"}, + {"icf", "application/vnd.commerce-battelle"}, + {"icm", "application/vnd.iccprofile"}, + {"ico", "image/vnd.microsoft.icon"}, + {"ics", "text/calendar"}, + {"ief", "image/ief"}, + {"ifb", "text/calendar"}, + {"ifc", "application/p21"}, + {"ifm", "application/vnd.shana.informed.formdata"}, + {"iges", "model/iges"}, + {"igl", "application/vnd.igloader"}, + {"igm", "application/vnd.insors.igm"}, + {"ign", "application/vnd.coreos.ignition+json"}, + {"ignition", "application/vnd.coreos.ignition+json"}, + {"igs", "model/iges"}, + {"igx", "application/vnd.micrografx.igx"}, + {"iif", "application/vnd.shana.informed.interchange"}, + {"iii", "application/x-iphone"}, + {"imf", "application/vnd.imagemeter.folder+zip"}, + {"imgcal", "application/vnd.3lightssoftware.imagescal"}, + {"imi", "application/vnd.imagemeter.image+zip"}, + {"imp", "application/vnd.accpac.simply.imp"}, + {"ims", "application/vnd.ms-ims"}, + {"imscc", "application/vnd.ims.imsccv1p1"}, + {"info", "application/x-info"}, + {"ink", "application/inkml+xml"}, + {"inkml", "application/inkml+xml"}, + {"inp", "chemical/x-gamess-input"}, + {"ins", "application/x-internet-signup"}, + {"iota", "application/vnd.astraea-software.iota"}, + {"ipfix", "application/ipfix"}, + {"ipk", "application/vnd.shana.informed.package"}, + {"ipns-record", "application/vnd.ipfs.ipns-record"}, + {"irm", "application/vnd.ibm.rights-management"}, + {"irp", "application/vnd.irepository.package+xml"}, + {"ism", "model/vnd.gdl"}, + {"iso", "application/x-iso9660-image"}, + {"isp", "application/x-internet-signup"}, + {"ist", "chemical/x-isostar"}, + {"istc", "application/vnd.veryant.thin"}, + {"istr", "chemical/x-isostar"}, + {"isws", "application/vnd.veryant.thin"}, + {"itp", "application/vnd.shana.informed.formtemplate"}, + {"its", "application/its+xml"}, + {"ivp", "application/vnd.immervision-ivp"}, + {"ivu", "application/vnd.immervision-ivu"}, + {"j2c", "image/j2c"}, + {"J2C", "image/j2c"}, + {"j2k", "image/j2c"}, + {"J2K", "image/j2c"}, + {"jad", "text/vnd.sun.j2me.app-descriptor"}, + {"jam", "application/vnd.jam"}, + {"jar", "application/java-archive"}, + {"java", "text/x-java"}, + {"jdx", "chemical/x-jcamp-dx"}, + {"jpeg", "image/jpeg"}, + {"jhc", "image/jphc"}, + {"jisp", "application/vnd.jisp"}, + {"jls", "image/jls"}, + {"jlt", "application/vnd.hp-jlyt"}, + {"jmz", "application/x-jmol"}, + {"jng", "image/x-jng"}, + {"jnlp", "application/x-java-jnlp-file"}, + {"joda", "application/vnd.joost.joda-archive"}, + {"jp2", "image/jp2"}, + {"jpg", "image/jpeg"}, + {"jpe", "image/jpeg"}, + {"jpf", "image/jpx"}, + {"jfif", "image/jpeg"}, + {"jpg2", "image/jp2"}, + {"jpgm", "image/jpm"}, + {"jph", "image/jph"}, + {"jphc", "image/jphc"}, + {"jpm", "image/jpm"}, + {"jpx", "image/jpx"}, + {"jrd", "application/jrd+json"}, + {"js", "text/javascript"}, + {"json", "application/json"}, + {"json-patch", "application/json-patch+json"}, + {"jsonld", "application/ld+json"}, + {"jsontd", "application/td+json"}, + {"jsontm", "application/tm+json"}, + {"jt", "model/JT"}, + {"jtd", "text/vnd.esmertec.theme-descriptor"}, + {"jxl", "image/jxl"}, + {"jxr", "image/jxr"}, + {"jxra", "image/jxrA"}, + {"jxrs", "image/jxrS"}, + {"jxs", "image/jxs"}, + {"jxsc", "image/jxsc"}, + {"jxsi", "image/jxsi"}, + {"jxss", "image/jxss"}, + {"karbon", "application/vnd.kde.karbon"}, + {"kcm", "application/vnd.nervana"}, + {"key", "application/pgp-keys"}, + {"keynote", "application/vnd.apple.keynote"}, + {"kfo", "application/vnd.kde.kformula"}, + {"kia", "application/vnd.kidspiration"}, + {"kil", "application/x-killustrator"}, + {"kin", "chemical/x-kinemage"}, + {"kml", "application/vnd.google-earth.kml+xml"}, + {"kmz", "application/vnd.google-earth.kmz"}, + {"kne", "application/vnd.Kinar"}, + {"knp", "application/vnd.Kinar"}, + {"kom", "application/vnd.hbci"}, + {"kon", "application/vnd.kde.kontour"}, + {"koz", "audio/vnd.audiokoz"}, + {"kpr", "application/vnd.kde.kpresenter"}, + {"kpt", "application/vnd.kde.kpresenter"}, + {"ksp", "application/vnd.kde.kspread"}, + {"ktr", "application/vnd.kahootz"}, + {"ktx", "image/ktx"}, + {"ktx2", "image/ktx2"}, + {"ktz", "application/vnd.kahootz"}, + {"kwd", "application/vnd.kde.kword"}, + {"kwt", "application/vnd.kde.kword"}, + {"l16", "audio/L16"}, + {"las", "application/vnd.las"}, + {"lasjson", "application/vnd.las.las+json"}, + {"lasxml", "application/vnd.las.las+xml"}, + {"latex", "application/x-latex"}, + {"lbc", "audio/iLBC"}, + {"lbd", "application/vnd.llamagraphics.life-balance.desktop"}, + {"lbe", "application/vnd.llamagraphics.life-balance.exchange+xml"}, + {"lca", "application/vnd.logipipe.circuit+zip"}, + {"lcs", "application/vnd.logipipe.circuit+zip"}, + {"le", "application/vnd.bluetooth.le.oob"}, + {"les", "application/vnd.hhe.lesson-player"}, + {"lgr", "application/lgr+xml"}, + {"lha", "application/x-lha"}, + {"lhs", "text/x-literate-haskell"}, + {"lhzd", "application/vnd.belightsoft.lhzd+zip"}, + {"lhzl", "application/vnd.belightsoft.lhzl+zip"}, + {"lin", "application/bbolin"}, + {"line", "application/vnd.nebumind.line"}, + {"link66", "application/vnd.route66.link66+xml"}, + {"list3820", "application/vnd.afpc.modca"}, + {"listafp", "application/vnd.afpc.modca"}, + {"lmp", "model/vnd.gdl"}, + {"loas", "audio/usac"}, + {"loom", "application/vnd.loom"}, + {"lostsyncxml", "application/lostsync+xml"}, + {"lostxml", "application/lost+xml"}, + {"lpf", "application/lpf+zip"}, + {"lrm", "application/vnd.ms-lrm"}, + {"lsf", "video/x-la-asf"}, + {"lsx", "video/x-la-asf"}, + {"ltx", "text/x-tex"}, + {"lvp", "audio/vnd.lucent.voice"}, + {"lwp", "application/vnd.lotus-wordpro"}, + {"lxf", "application/LXF"}, + {"ly", "text/x-lilypond"}, + {"lyx", "application/x-lyx"}, + {"lzh", "application/x-lzh"}, + {"lzx", "application/x-lzx"}, + {"m", "application/vnd.wolfram.mathematica.package"}, + {"m1v", "video/mpeg"}, + {"m21", "application/mp21"}, + {"m2v", "video/mpeg"}, + {"m3g", "application/m3g"}, + {"m3u", "audio/mpegurl"}, + {"m3u8", "application/vnd.apple.mpegurl"}, + {"m4a", "audio/mp4"}, + {"m4s", "video/iso.segment"}, + {"m4u", "video/vnd.mpegurl"}, + {"m4v", "video/mp4"}, + {"ma", "application/mathematica"}, + {"mads", "application/mads+xml"}, + {"maei", "application/mmt-aei+xml"}, + {"mag", "application/vnd.ecowin.chart"}, + {"mail", "message/rfc822"}, + {"maker", "application/x-maker"}, + {"man", "application/x-troff-man"}, + {"manifest", "text/cache-manifest"}, + {"markdown", "text/markdown"}, + {"mb", "application/mathematica"}, + {"mbk", "application/vnd.Mobius.MBK"}, + {"mbox", "application/mbox"}, + {"mbsdf", "application/vnd.mdl-mbsdf"}, + {"mc1", "application/vnd.medcalcdata"}, + {"mc2", "text/vnd.senx.warpscript"}, + {"mcd", "application/vnd.mcd"}, + {"mcif", "chemical/x-mmcif"}, + {"mcm", "chemical/x-macmolecule"}, + {"md", "text/markdown"}, + {"mdb", "application/msaccess"}, + {"mdc", "application/vnd.marlin.drm.mdcf"}, + {"mdi", "image/vnd.ms-modi"}, + {"mdl", "application/vnd.mdl"}, + {"me", "application/x-troff-me"}, + {"mesh", "model/mesh"}, + {"meta4", "application/metalink4+xml"}, + {"mets", "application/mets+xml"}, + {"mf4", "application/MF4"}, + {"mfm", "application/vnd.mfmp"}, + {"mft", "application/rpki-manifest"}, + {"mgp", "application/vnd.osgeo.mapguide.package"}, + {"mgz", "application/vnd.proteus.magazine"}, + {"mhas", "audio/mhas"}, + {"mid", "audio/sp-midi"}, + {"mif", "application/vnd.mif"}, + {"miz", "text/mizar"}, + {"mj2", "video/mj2"}, + {"mjp2", "video/mj2"}, + {"mjs", "text/javascript"}, + {"mkv", "video/x-matroska"}, + {"ml2", "application/vnd.sybyl.mol2"}, + {"mlp", "audio/vnd.dolby.mlp"}, + {"mm", "application/x-freemind"}, + {"mmd", "application/vnd.chipnuts.karaoke-mmd"}, + {"mmdb", "application/vnd.maxmind.maxmind-db"}, + {"mmf", "application/vnd.smaf"}, + {"mml", "application/mathml+xml"}, + {"mmod", "chemical/x-macromodel-input"}, + {"mmr", "image/vnd.fujixerox.edmics-mmr"}, + {"mng", "video/x-mng"}, + {"moc", "text/x-moc"}, + {"mod", "application/xml-dtd"}, + {"model-inter", "application/vnd.vd-study"}, + {"modl", "application/vnd.modl"}, + {"mods", "application/mods+xml"}, + {"mol", "chemical/x-mdl-molfile"}, + {"mol2", "application/vnd.sybyl.mol2"}, + {"moml", "model/vnd.moml+xml"}, + {"moo", "chemical/x-mopac-out"}, + {"mop", "chemical/x-mopac-input"}, + {"mopcrt", "chemical/x-mopac-input"}, + {"mov", "video/quicktime"}, + {"movie", "video/x-sgi-movie"}, + {"mp1", "audio/mpeg"}, + {"mp2", "audio/mpeg"}, + {"mp21", "application/mp21"}, + {"mp3", "audio/mpeg"}, + {"mp4", "video/mp4"}, + {"mpc", "application/vnd.mophun.certificate"}, + {"mpd", "application/dash+xml"}, + {"mpdd", "application/dashdelta"}, + {"mpe", "video/mpeg"}, + {"mpeg", "video/mpeg"}, + {"mpega", "audio/mpeg"}, + {"mpf", "text/vnd.ms-mediapackage"}, + {"mpg", "video/mpeg"}, + {"mpg4", "video/mp4"}, + {"mpga", "audio/mpeg"}, + {"mph", "application/x-comsol"}, + {"mpkg", "application/vnd.apple.installer+xml"}, + {"mpm", "application/vnd.blueice.multipass"}, + {"mpn", "application/vnd.mophun.application"}, + {"mpp", "application/vnd.ms-project"}, + {"mpt", "application/vnd.ms-project"}, + {"mpv", "video/x-matroska"}, + {"mpw", "application/vnd.exstream-empower+zip"}, + {"mpy", "application/vnd.ibm.MiniPay"}, + {"mqy", "application/vnd.Mobius.MQY"}, + {"mrc", "application/marc"}, + {"mrcx", "application/marcxml+xml"}, + {"ms", "application/x-troff-ms"}, + {"msa", "application/vnd.msa-disk-image"}, + {"msd", "application/vnd.fdsn.mseed"}, + {"mseed", "application/vnd.fdsn.mseed"}, + {"mseq", "application/vnd.mseq"}, + {"msf", "application/vnd.epson.msf"}, + {"msh", "model/mesh"}, + {"msi", "application/x-msi"}, + {"msl", "application/vnd.Mobius.MSL"}, + {"msm", "model/vnd.gdl"}, + {"msp", "application/octet-stream"}, + {"msty", "application/vnd.muvee.style"}, + {"msu", "application/octet-stream"}, + {"mtl", "model/mtl"}, + {"mts", "model/vnd.mts"}, + {"multitrack", "audio/vnd.presonus.multitrack"}, + {"mus", "application/vnd.musician"}, + {"musd", "application/mmt-usd+xml"}, + {"mvb", "chemical/x-mopac-vib"}, + {"mvt", "application/vnd.mapbox-vector-tile"}, + {"mwc", "application/vnd.dpgraph"}, + {"mwf", "application/vnd.MFER"}, + {"mxf", "application/mxf"}, + {"mxi", "application/vnd.vd-study"}, + {"mxl", "application/vnd.recordare.musicxml"}, + {"mxmf", "audio/mobile-xmf"}, + {"mxml", "application/xv+xml"}, + {"mxs", "application/vnd.triscape.mxs"}, + {"mxu", "video/vnd.mpegurl"}, + {"n3", "text/n3"}, + {"nb", "application/vnd.wolfram.mathematica"}, + {"nbp", "application/vnd.wolfram.player"}, + {"nc", "application/x-netcdf"}, + {"ndc", "application/vnd.osa.netdeploy"}, + {"ndl", "application/vnd.lotus-notes"}, + {"nds", "application/vnd.nintendo.nitro.rom"}, + {"nebul", "application/vnd.nebumind.line"}, + {"nef", "image/x-nikon-nef"}, + {"ngdat", "application/vnd.nokia.n-gage.data"}, + {"nim", "video/vnd.nokia.interleaved-multimedia"}, + {"nimn", "application/vnd.nimn"}, + {"nitf", "application/vnd.nitf"}, + {"nlu", "application/vnd.neurolanguage.nlu"}, + {"nml", "application/vnd.enliven"}, + {"nnd", "application/vnd.noblenet-directory"}, + {"nns", "application/vnd.noblenet-sealer"}, + {"nnw", "application/vnd.noblenet-web"}, + {"notebook", "application/vnd.smart.notebook"}, + {"nq", "application/n-quads"}, + {"ns2", "application/vnd.lotus-notes"}, + {"ns3", "application/vnd.lotus-notes"}, + {"ns4", "application/vnd.lotus-notes"}, + {"nsf", "application/vnd.lotus-notes"}, + {"nsg", "application/vnd.lotus-notes"}, + {"nsh", "application/vnd.lotus-notes"}, + {"nt", "application/n-triples"}, + {"ntf", "application/vnd.lotus-notes"}, + {"numbers", "application/vnd.apple.numbers"}, + {"nwc", "application/x-nwc"}, + {"o", "application/x-object"}, + {"oa2", "application/vnd.fujitsu.oasys2"}, + {"oa3", "application/vnd.fujitsu.oasys3"}, + {"oas", "application/vnd.fujitsu.oasys"}, + {"ob", "application/vnd.1ob"}, + {"obg", "application/vnd.openblox.game-binary"}, + {"obgx", "application/vnd.openblox.game+xml"}, + {"obj", "model/obj"}, + {"oda", "application/ODA"}, + {"odb", "application/vnd.oasis.opendocument.base"}, + {"odc", "application/vnd.oasis.opendocument.chart"}, + {"odd", "application/tei+xml"}, + {"odf", "application/vnd.oasis.opendocument.formula"}, + {"odg", "application/vnd.oasis.opendocument.graphics"}, + {"odi", "application/vnd.oasis.opendocument.image"}, + {"odm", "application/vnd.oasis.opendocument.text-master"}, + {"odp", "application/vnd.oasis.opendocument.presentation"}, + {"ods", "application/vnd.oasis.opendocument.spreadsheet"}, + {"odt", "application/vnd.oasis.opendocument.text"}, + {"odx", "application/ODX"}, + {"oeb", "application/vnd.openeye.oeb"}, + {"oga", "audio/ogg"}, + {"ogex", "model/vnd.opengex"}, + {"ogg", "audio/ogg"}, + {"ogv", "video/ogg"}, + {"ogx", "application/ogg"}, + {"old", "application/x-trash"}, + {"omg", "audio/ATRAC3"}, + {"one", "application/onenote"}, + {"onepkg", "application/onenote"}, + {"onetmp", "application/onenote"}, + {"onetoc2", "application/onenote"}, + {"opf", "application/oebps-package+xml"}, + {"oprc", "application/vnd.palm"}, + {"opus", "audio/ogg"}, + {"or2", "application/vnd.lotus-organizer"}, + {"or3", "application/vnd.lotus-organizer"}, + {"orc", "audio/csound"}, + {"orf", "image/x-olympus-orf"}, + {"org", "application/vnd.lotus-organizer"}, + {"orq", "application/ocsp-request"}, + {"ors", "application/ocsp-response"}, + {"osf", "application/vnd.yamaha.openscoreformat"}, + {"osm", "application/vnd.openstreetmap.data+xml"}, + {"ota", "application/vnd.android.ota"}, + {"otc", "application/vnd.oasis.opendocument.chart-template"}, + {"otf", "font/otf"}, + {"otg", "application/vnd.oasis.opendocument.graphics-template"}, + {"oth", "application/vnd.oasis.opendocument.text-web"}, + {"oti", "application/vnd.oasis.opendocument.image-template"}, + {"otm", "application/vnd.oasis.opendocument.text-master-template"}, + {"otp", "application/vnd.oasis.opendocument.presentation-template"}, + {"ots", "application/vnd.oasis.opendocument.spreadsheet-template"}, + {"ott", "application/vnd.oasis.opendocument.text-template"}, + {"ovl", "application/vnd.afpc.modca-overlay"}, + {"oxlicg", "application/vnd.oxli.countgraph"}, + {"oxps", "application/oxps"}, + {"oxt", "application/vnd.openofficeorg.extension"}, + {"oza", "application/x-oz-application"}, + {"p", "text/x-pascal"}, + {"p10", "application/pkcs10"}, + {"p12", "application/pkcs12"}, + {"p21", "application/p21"}, + {"p2p", "application/vnd.wfa.p2p"}, + {"p7c", "application/pkcs7-mime"}, + {"p7m", "application/pkcs7-mime"}, + {"p7r", "application/x-pkcs7-certreqresp"}, + {"p7s", "application/pkcs7-signature"}, + {"p7z", "application/pkcs7-mime"}, + {"p8", "application/pkcs8"}, + {"p8e", "application/pkcs8-encrypted"}, + {"pac", "application/x-ns-proxy-autoconfig"}, + {"package", "application/vnd.autopackage"}, + {"pages", "application/vnd.apple.pages"}, + {"pas", "text/x-pascal"}, + {"pat", "image/x-coreldrawpattern"}, + {"patch", "text/x-diff"}, + {"paw", "application/vnd.pawaafile"}, + {"pbd", "application/vnd.powerbuilder6"}, + {"pbm", "image/x-portable-bitmap"}, + {"pcap", "application/vnd.tcpdump.pcap"}, + {"pcf", "application/x-font-pcf"}, + {"pcf.Z", "application/x-font-pcf"}, + {"pcl", "application/vnd.hp-PCL"}, + {"pcx", "image/vnd.zbrush.pcx"}, + {"pdb", "application/vnd.palm"}, + {"pdf", "application/pdf"}, + {"pdx", "application/PDX"}, + {"pem", "application/pem-certificate-chain"}, + {"pfa", "application/x-font"}, + {"pfb", "application/x-font"}, + {"pfr", "application/font-tdpfr"}, + {"pfx", "application/pkcs12"}, + {"pgb", "image/vnd.globalgraphics.pgb"}, + {"PGB", "image/vnd.globalgraphics.pgb"}, + {"pgm", "image/x-portable-graymap"}, + {"pgn", "application/vnd.chess-pgn"}, + {"pgp", "application/pgp-encrypted"}, + {"pil", "application/vnd.piaccess.application-licence"}, + {"pk", "application/x-tex-pk"}, + {"pkd", "application/vnd.hbci"}, + {"pkg", "application/vnd.apple.installer+xml"}, + {"pki", "application/pkixcmp"}, + {"pkipath", "application/pkix-pkipath"}, + {"pl", "text/x-perl"}, + {"plb", "application/vnd.3gpp.pic-bw-large"}, + {"plc", "application/vnd.Mobius.PLC"}, + {"plf", "application/vnd.pocketlearn"}, + {"plj", "audio/vnd.everad.plj"}, + {"plp", "application/vnd.panoply"}, + {"pls", "audio/x-scpls"}, + {"pm", "text/x-perl"}, + {"pml", "application/vnd.ctc-posml"}, + {"png", "image/png"}, + {"pnm", "image/x-portable-anymap"}, + {"portpkg", "application/vnd.macports.portpkg"}, + {"pot", "text/plain"}, + {"potm", "application/vnd.ms-powerpoint.template.macroEnabled.12"}, + {"potx", + "application/vnd.openxmlformats-officedocument.presentationml.template"}, + {"ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12"}, + {"ppd", "application/vnd.cups-ppd"}, + {"ppkg", "application/vnd.xmpie.ppkg"}, + {"ppm", "image/x-portable-pixmap"}, + {"pps", "application/vnd.ms-powerpoint"}, + {"ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12"}, + {"ppsx", + "application/vnd.openxmlformats-officedocument.presentationml.slideshow"}, + {"ppt", "application/vnd.ms-powerpoint"}, + {"pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12"}, + {"ppttc", "application/vnd.think-cell.ppttc+json"}, + {"pptx", "application/" + "vnd.openxmlformats-officedocument.presentationml.presentation"}, + {"pqa", "application/vnd.palm"}, + {"prc", "model/prc"}, + {"pre", "application/vnd.lotus-freelance"}, + {"preminet", "application/vnd.preminet"}, + {"prf", "application/pics-rules"}, + {"provn", "text/provenance-notation"}, + {"provx", "application/provenance+xml"}, + {"prt", "chemical/x-ncbi-asn1-ascii"}, + {"prz", "application/vnd.lotus-freelance"}, + {"ps", "application/postscript"}, + {"psb", "application/vnd.3gpp.pic-bw-small"}, + {"psd", "image/vnd.adobe.photoshop"}, + {"pseg3820", "application/vnd.afpc.modca"}, + {"psfs", "application/vnd.psfs"}, + {"psg", "application/vnd.afpc.modca-pagesegment"}, + {"psid", "audio/prs.sid"}, + {"pskcxml", "application/pskc+xml"}, + {"pt", "application/vnd.snesdev-page-table"}, + {"pti", "image/prs.pti"}, + {"ptid", "application/vnd.pvi.ptid1"}, + {"ptrom", "application/vnd.snesdev-page-table"}, + {"pub", "application/vnd.exstream-package"}, + {"pvb", "application/vnd.3gpp.pic-bw-var"}, + {"pwn", "application/vnd.3M.Post-it-Notes"}, + {"py", "text/x-python"}, + {"pya", "audio/vnd.ms-playready.media.pya"}, + {"pyc", "application/x-python-code"}, + {"pyo", "application/x-python-code"}, + {"pyox", "model/vnd.pytha.pyox"}, + {"pyv", "video/vnd.ms-playready.media.pyv"}, + {"qam", "application/vnd.epson.quickanime"}, + {"qbo", "application/vnd.intu.qbo"}, + {"qca", "application/vnd.ericsson.quickcall"}, + {"qcall", "application/vnd.ericsson.quickcall"}, + {"qcp", "audio/EVRC-QCP"}, + {"QCP", "audio/EVRC-QCP"}, + {"qfx", "application/vnd.intu.qfx"}, + {"qgs", "application/x-qgis"}, + {"qps", "application/vnd.publishare-delta-tree"}, + {"qt", "video/quicktime"}, + {"qtl", "application/x-quicktimeplayer"}, + {"quiz", "application/vnd.quobject-quoxdocument"}, + {"quox", "application/vnd.quobject-quoxdocument"}, + {"qvd", "application/vnd.theqvd"}, + {"qwd", "application/vnd.Quark.QuarkXPress"}, + {"qwt", "application/vnd.Quark.QuarkXPress"}, + {"qxb", "application/vnd.Quark.QuarkXPress"}, + {"qxd", "application/vnd.Quark.QuarkXPress"}, + {"qxl", "application/vnd.Quark.QuarkXPress"}, + {"qxt", "application/vnd.Quark.QuarkXPress"}, + {"ra", "audio/x-pn-realaudio"}, + {"ram", "audio/x-pn-realaudio"}, + {"rapd", "application/route-apd+xml"}, + {"rar", "application/vnd.rar"}, + {"ras", "image/x-cmu-raster"}, + {"rb", "application/x-ruby"}, + {"rcprofile", "application/vnd.ipunplugged.rcprofile"}, + {"rct", "application/prs.nprend"}, + {"rd", "chemical/x-mdl-rdfile"}, + {"rdf", "application/rdf+xml"}, + {"rdf-crypt", "application/prs.rdf-xml-crypt"}, + {"rdp", "application/x-rdp"}, + {"rdz", "application/vnd.data-vision.rdz"}, + {"relo", "application/p2p-overlay+xml"}, + {"reload", "application/vnd.resilient.logic"}, + {"rep", "application/vnd.businessobjects"}, + {"request", "application/vnd.nervana"}, + {"rfcxml", "application/rfc+xml"}, + {"rgb", "image/x-rgb"}, + {"rgbe", "image/vnd.radiance"}, + {"rif", "application/reginfo+xml"}, + {"rip", "audio/vnd.rip"}, + {"rl", "application/resource-lists+xml"}, + {"rlc", "image/vnd.fujixerox.edmics-rlc"}, + {"rld", "application/resource-lists-diff+xml"}, + {"rlm", "application/vnd.resilient.logic"}, + {"rm", "audio/x-pn-realaudio"}, + {"rms", "application/vnd.jcp.javame.midlet-rms"}, + {"rnc", "application/relax-ng-compact-syntax"}, + {"rnd", "application/prs.nprend"}, + {"roa", "application/rpki-roa"}, + {"roff", "text/troff"}, + {"ros", "chemical/x-rosdal"}, + {"rp9", "application/vnd.cloanto.rp9"}, + {"rpm", "application/x-redhat-package-manager"}, + {"rpss", "application/vnd.nokia.radio-presets"}, + {"rpst", "application/vnd.nokia.radio-preset"}, + {"rq", "application/sparql-query"}, + {"rs", "application/rls-services+xml"}, + {"rsat", "application/atsc-rsat+xml"}, + {"rsheet", "application/urc-ressheet+xml"}, + {"rsm", "model/vnd.gdl"}, + {"rss", "application/x-rss+xml"}, + {"rst", "text/prs.fallenstein.rst"}, + {"rtf", "application/rtf"}, + {"rusd", "application/route-usd+xml"}, + {"rxn", "chemical/x-mdl-rxnfile"}, + {"rxt", "application/vnd.medicalholodeck.recordxr"}, + {"s11", "video/vnd.sealed.mpeg1"}, + {"s14", "video/vnd.sealed.mpeg4"}, + {"s1a", "application/vnd.sealedmedia.softseal.pdf"}, + {"s1e", "application/vnd.sealed.xls"}, + {"s1g", "image/vnd.sealedmedia.softseal.gif"}, + {"s1h", "application/vnd.sealedmedia.softseal.html"}, + {"s1j", "image/vnd.sealedmedia.softseal.jpg"}, + {"s1m", "audio/vnd.sealedmedia.softseal.mpeg"}, + {"s1n", "image/vnd.sealed.png"}, + {"s1p", "application/vnd.sealed.ppt"}, + {"s1q", "video/vnd.sealedmedia.softseal.mov"}, + {"s1w", "application/vnd.sealed.doc"}, + {"s3df", "application/vnd.sealed.3df"}, + {"sac", "application/tamp-sequence-adjust-confirm"}, + {"saf", "application/vnd.yamaha.smaf-audio"}, + {"sam", "application/vnd.lotus-wordpro"}, + {"SAR", "application/vnd.sar"}, + {"sarif", "application/sarif+json"}, + {"sarif-external-properties", "application/sarif-external-properties+json"}, + {"sarif-external-properties.json", + "application/sarif-external-properties+json"}, + {"sarif.json", "application/sarif+json"}, + {"sc", "application/vnd.ibm.secure-container"}, + {"scala", "text/x-scala"}, + {"scd", "application/vnd.scribus"}, + {"sce", "application/vnd.etsi.asic-e+zip"}, + {"sci", "application/x-scilab"}, + {"scim", "application/scim+json"}, + {"scl", "application/vnd.sycle+xml"}, + {"scld", "application/vnd.doremir.scorecloud-binary-document"}, + {"scm", "application/vnd.lotus-screencam"}, + {"sco", "audio/csound"}, + {"scq", "application/scvp-cv-request"}, + {"scr", "application/x-silverlight"}, + {"scs", "application/scvp-cv-response"}, + {"scsf", "application/vnd.sealed.csf"}, + {"sd", "chemical/x-mdl-sdfile"}, + {"sd2", "audio/x-sd2"}, + {"sda", "application/vnd.stardivision.draw"}, + {"sdc", "application/vnd.stardivision.calc"}, + {"sdd", "application/vnd.stardivision.impress"}, + {"sdf", "application/vnd.Kinar"}, + {"sdkd", "application/vnd.solent.sdkm+xml"}, + {"sdkm", "application/vnd.solent.sdkm+xml"}, + {"sdo", "application/vnd.sealed.doc"}, + {"sdoc", "application/vnd.sealed.doc"}, + {"sdp", "application/sdp"}, + {"sds", "application/vnd.stardivision.chart"}, + {"sdw", "application/vnd.stardivision.writer"}, + {"see", "application/vnd.seemail"}, + {"seed", "application/vnd.fdsn.seed"}, + {"sem", "application/vnd.sealed.eml"}, + {"sema", "application/vnd.sema"}, + {"semd", "application/vnd.semd"}, + {"semf", "application/vnd.semf"}, + {"seml", "application/vnd.sealed.eml"}, + {"senml", "application/senml+json"}, + {"senml-etchc", "application/senml-etch+cbor"}, + {"senml-etchj", "application/senml-etch+json"}, + {"senmlc", "application/senml+cbor"}, + {"senmle", "application/senml-exi"}, + {"senmlx", "application/senml+xml"}, + {"sensml", "application/sensml+json"}, + {"sensmlc", "application/sensml+cbor"}, + {"sensmle", "application/sensml-exi"}, + {"sensmlx", "application/sensml+xml"}, + {"ser", "application/java-serialized-object"}, + {"sfc", "application/vnd.nintendo.snes.rom"}, + {"sfd", "application/vnd.font-fontforge-sfd"}, + {"sfd-hdstx", "application/vnd.hydrostatix.sof-data"}, + {"sfs", "application/vnd.spotfire.sfs"}, + {"sfv", "text/x-sfv"}, + {"sgf", "application/x-go-sgf"}, + {"sgi", "image/vnd.sealedmedia.softseal.gif"}, + {"sgif", "image/vnd.sealedmedia.softseal.gif"}, + {"sgl", "application/vnd.stardivision.writer-global"}, + {"sgm", "text/SGML"}, + {"sgml", "text/SGML"}, + {"sh", "application/x-sh"}, + {"shaclc", "text/shaclc"}, + {"shar", "application/x-shar"}, + {"shc", "text/shaclc"}, + {"shex", "text/shex"}, + {"shf", "application/shf+xml"}, + {"shp", "application/vnd.shp"}, + {"shtml", "text/html"}, + {"shx", "application/vnd.shx"}, + {"si", "text/vnd.wap.si"}, + {"sic", "application/vnd.wap.sic"}, + {"sid", "audio/prs.sid"}, + {"sieve", "application/sieve"}, + {"sig", "application/pgp-signature"}, + {"sik", "application/x-trash"}, + {"silo", "model/mesh"}, + {"sipa", "application/vnd.smintio.portals.archive"}, + {"sis", "application/vnd.symbian.install"}, + {"sit", "application/x-stuffit"}, + {"sitx", "application/x-stuffit"}, + {"siv", "application/sieve"}, + {"sjp", "image/vnd.sealedmedia.softseal.jpg"}, + {"sjpg", "image/vnd.sealedmedia.softseal.jpg"}, + {"skd", "application/vnd.koan"}, + {"skm", "application/vnd.koan"}, + {"skp", "application/vnd.koan"}, + {"skt", "application/vnd.koan"}, + {"sl", "text/vnd.wap.sl"}, + {"sla", "application/vnd.scribus"}, + {"slaz", "application/vnd.scribus"}, + {"slc", "application/vnd.wap.slc"}, + {"sldm", "application/vnd.ms-powerpoint.slide.macroEnabled.12"}, + {"sldx", + "application/vnd.openxmlformats-officedocument.presentationml.slide"}, + {"sls", "application/route-s-tsid+xml"}, + {"slt", "application/vnd.epson.salt"}, + {"sm", "application/vnd.stepmania.stepchart"}, + {"smc", "application/vnd.nintendo.snes.rom"}, + {"smf", "application/vnd.stardivision.math"}, + {"smh", "application/vnd.sealed.mht"}, + {"smht", "application/vnd.sealed.mht"}, + {"smi", "application/smil+xml"}, + {"smil", "application/smil+xml"}, + {"smk", "video/vnd.radgamettools.smacker"}, + {"sml", "application/smil+xml"}, + {"smo", "video/vnd.sealedmedia.softseal.mov"}, + {"smov", "video/vnd.sealedmedia.softseal.mov"}, + {"smp", "audio/vnd.sealedmedia.softseal.mpeg"}, + {"smp3", "audio/vnd.sealedmedia.softseal.mpeg"}, + {"smpg", "video/vnd.sealed.mpeg1"}, + {"sms", "application/vnd.3gpp2.sms"}, + {"smv", "audio/SMV"}, + {"smzip", "application/vnd.stepmania.package"}, + {"snd", "audio/basic"}, + {"soa", "text/dns"}, + {"soc", "application/sgml-open-catalog"}, + {"sofa", "audio/sofa"}, + {"sos", "text/vnd.sosi"}, + {"spc", "chemical/x-galactic-spc"}, + {"spd", "application/vnd.sealedmedia.softseal.pdf"}, + {"spdf", "application/vnd.sealedmedia.softseal.pdf"}, + {"spdx", "text/spdx"}, + {"spdx.json", "application/spdx+json"}, + {"spf", "application/vnd.yamaha.smaf-phrase"}, + {"spl", "application/futuresplash"}, + {"spn", "image/vnd.sealed.png"}, + {"spng", "image/vnd.sealed.png"}, + {"spo", "text/vnd.in3d.spot"}, + {"spot", "text/vnd.in3d.spot"}, + {"spp", "application/scvp-vp-response"}, + {"sppt", "application/vnd.sealed.ppt"}, + {"spq", "application/scvp-vp-request"}, + {"spx", "audio/ogg"}, + {"sql", "application/sql"}, + {"sqlite", "application/vnd.sqlite3"}, + {"sqlite3", "application/vnd.sqlite3"}, + {"sr", "application/vnd.sigrok.session"}, + {"src", "application/x-wais-source"}, + {"srt", "text/plain"}, + {"sru", "application/sru+xml"}, + {"srx", "application/sparql-results+xml"}, + {"sse", "application/vnd.kodak-descriptor"}, + {"ssf", "application/vnd.epson.ssf"}, + {"ssml", "application/ssml+xml"}, + {"ssv", "application/vnd.shade-save-file"}, + {"ssvc", "application/vnd.crypto-shade-file"}, + {"ssw", "video/vnd.sealed.swf"}, + {"sswf", "video/vnd.sealed.swf"}, + {"st", "application/vnd.sailingtracker.track"}, + {"stc", "application/vnd.sun.xml.calc.template"}, + {"std", "application/vnd.sun.xml.draw.template"}, + {"step", "model/step"}, + {"stf", "application/vnd.wt.stf"}, + {"sti", "application/vnd.sun.xml.impress.template"}, + {"stif", "application/vnd.sealed.tiff"}, + {"stix", "application/stix+json"}, + {"stk", "application/hyperstudio"}, + {"stl", "model/stl"}, + {"stml", "application/vnd.sealedmedia.softseal.html"}, + {"stp", "model/step"}, + {"stpnc", "application/p21"}, + {"stpx", "model/step+xml"}, + {"stpxz", "model/step-xml+zip"}, + {"stpz", "model/step+zip"}, + {"str", "application/vnd.pg.format"}, + {"study-inter", "application/vnd.vd-study"}, + {"stw", "application/vnd.sun.xml.writer.template"}, + {"sty", "text/x-tex"}, + {"sus", "application/vnd.sus-calendar"}, + {"susp", "application/vnd.sus-calendar"}, + {"sv4cpio", "application/x-sv4cpio"}, + {"sv4crc", "application/x-sv4crc"}, + {"svc", "application/vnd.dvb.service"}, + {"svg", "image/svg+xml"}, + {"svgz", "image/svg+xml"}, + {"sw", "chemical/x-swissprot"}, + {"swf", "application/vnd.adobe.flash.movie"}, + {"swi", "application/vnd.aristanetworks.swi"}, + {"swidtag", "application/swid+xml"}, + {"sxc", "application/vnd.sun.xml.calc"}, + {"sxd", "application/vnd.sun.xml.draw"}, + {"sxg", "application/vnd.sun.xml.writer.global"}, + {"sxi", "application/vnd.sun.xml.impress"}, + {"sxl", "application/vnd.sealed.xls"}, + {"sxls", "application/vnd.sealed.xls"}, + {"sxm", "application/vnd.sun.xml.math"}, + {"sxw", "application/vnd.sun.xml.writer"}, + {"sy2", "application/vnd.sybyl.mol2"}, + {"syft.json", "application/vnd.syft+json"}, + {"t", "text/troff"}, + {"tag", "text/prs.lines.tag"}, + {"taglet", "application/vnd.mynfc"}, + {"tam", "application/vnd.onepager"}, + {"tamp", "application/vnd.onepagertamp"}, + {"tamx", "application/vnd.onepagertamx"}, + {"tao", "application/vnd.tao.intent-module-archive"}, + {"tap", "image/vnd.tencent.tap"}, + {"tar", "application/x-tar"}, + {"tat", "application/vnd.onepagertat"}, + {"tatp", "application/vnd.onepagertatp"}, + {"tatx", "application/vnd.onepagertatx"}, + {"tau", "application/tamp-apex-update"}, + {"taz", "application/x-gtar-compressed"}, + {"tcap", "application/vnd.3gpp2.tcap"}, + {"tcl", "application/x-tcl"}, + {"tcu", "application/tamp-community-update"}, + {"td", "application/urc-targetdesc+xml"}, + {"teacher", "application/vnd.smart.teacher"}, + {"tei", "application/tei+xml"}, + {"teiCorpus", "application/tei+xml"}, + {"ter", "application/tamp-error"}, + {"tex", "text/x-tex"}, + {"texi", "application/x-texinfo"}, + {"texinfo", "application/x-texinfo"}, + {"text", "text/plain"}, + {"tfi", "application/thraud+xml"}, + {"tfx", "image/tiff-fx"}, + {"tgf", "chemical/x-mdl-tgf"}, + {"tgz", "application/x-gtar-compressed"}, + {"thmx", "application/vnd.ms-officetheme"}, + {"tif", "image/tiff"}, + {"tiff", "image/tiff"}, + {"tk", "text/x-tcl"}, + {"tlclient", "application/vnd.cendio.thinlinc.clientconf"}, + {"tm", "text/texmacs"}, + {"tm.json", "application/tm+json"}, + {"tm.jsonld", "application/tm+json"}, + {"tmo", "application/vnd.tmobile-livetv"}, + {"tnef", "application/vnd.ms-tnef"}, + {"tnf", "application/vnd.ms-tnef"}, + {"torrent", "application/x-bittorrent"}, + {"tpl", "application/vnd.groove-tool-template"}, + {"tpt", "application/vnd.trid.tpt"}, + {"tr", "text/troff"}, + {"tra", "application/vnd.trueapp"}, + {"tree", "application/vnd.rainstor.data"}, + {"trig", "application/trig"}, + {"ts", "text/vnd.trolltech.linguist"}, + {"tsa", "application/tamp-sequence-adjust"}, + {"tsd", "application/timestamped-data"}, + {"tsp", "application/dsptype"}, + {"tsq", "application/timestamp-query"}, + {"tsr", "application/timestamp-reply"}, + {"tst", "application/vnd.etsi.timestamp-token"}, + {"tsv", "text/tab-separated-values"}, + {"ttc", "font/collection"}, + {"ttf", "font/ttf"}, + {"ttl", "text/turtle"}, + {"ttml", "application/ttml+xml"}, + {"tuc", "application/tamp-update-confirm"}, + {"tur", "application/tamp-update"}, + {"twd", "application/vnd.SimTech-MindMapper"}, + {"twds", "application/vnd.SimTech-MindMapper"}, + {"txd", "application/vnd.genomatix.tuxedo"}, + {"txf", "application/vnd.Mobius.TXF"}, + {"txt", "text/plain"}, + {"u3d", "model/u3d"}, + {"u8dsn", "message/global-delivery-status"}, + {"u8hdr", "message/global-headers"}, + {"u8mdn", "message/global-disposition-notification"}, + {"u8msg", "message/global"}, + {"udeb", "application/vnd.debian.binary-package"}, + {"ufd", "application/vnd.ufdl"}, + {"ufdl", "application/vnd.ufdl"}, + {"uis", "application/urc-uisocketdesc+xml"}, + {"umj", "application/vnd.umajin"}, + {"unityweb", "application/vnd.unity"}, + {"uo", "application/vnd.uoml+xml"}, + {"uoml", "application/vnd.uoml+xml"}, + {"upa", "application/vnd.hbci"}, + {"uri", "text/uri-list"}, + {"urim", "application/vnd.uri-map"}, + {"urimap", "application/vnd.uri-map"}, + {"uris", "text/uri-list"}, + {"usda", "model/vnd.usda"}, + {"usdz", "model/vnd.usdz+zip"}, + {"ustar", "application/x-ustar"}, + {"utz", "application/vnd.uiq.theme"}, + {"uva", "audio/vnd.dece.audio"}, + {"uvd", "application/vnd.dece.data"}, + {"uvf", "application/vnd.dece.data"}, + {"uvg", "image/vnd.dece.graphic"}, + {"uvh", "video/vnd.dece.hd"}, + {"uvi", "image/vnd.dece.graphic"}, + {"uvm", "video/vnd.dece.mobile"}, + {"uvp", "video/vnd.dece.pd"}, + {"uvs", "video/vnd.dece.sd"}, + {"uvt", "application/vnd.dece.ttml+xml"}, + {"uvu", "video/vnd.dece.mp4"}, + {"uvv", "video/vnd.dece.video"}, + {"uvva", "audio/vnd.dece.audio"}, + {"uvvd", "application/vnd.dece.data"}, + {"uvvf", "application/vnd.dece.data"}, + {"uvvg", "image/vnd.dece.graphic"}, + {"uvvh", "video/vnd.dece.hd"}, + {"uvvi", "image/vnd.dece.graphic"}, + {"uvvm", "video/vnd.dece.mobile"}, + {"uvvp", "video/vnd.dece.pd"}, + {"uvvs", "video/vnd.dece.sd"}, + {"uvvt", "application/vnd.dece.ttml+xml"}, + {"uvvu", "video/vnd.dece.mp4"}, + {"uvvv", "video/vnd.dece.video"}, + {"uvvx", "application/vnd.dece.unspecified"}, + {"uvvz", "application/vnd.dece.zip"}, + {"uvx", "application/vnd.dece.unspecified"}, + {"uvz", "application/vnd.dece.zip"}, + {"val", "chemical/x-ncbi-asn1-binary"}, + {"vbk", "audio/vnd.nortel.vbk"}, + {"vbox", "application/vnd.previewsystems.box"}, + {"vcard", "text/vcard"}, + {"vcd", "application/x-cdlink"}, + {"vcf", "text/vcard"}, + {"vcg", "application/vnd.groove-vcard"}, + {"vcj", "application/voucher-cms+json"}, + {"vcs", "text/x-vcalendar"}, + {"vcx", "application/vnd.vcx"}, + {"vds", "model/vnd.sap.vds"}, + {"VES", "application/vnd.ves.encrypted"}, + {"vew", "application/vnd.lotus-approach"}, + {"VFK", "text/vnd.exchangeable"}, + {"vfr", "application/vnd.tml"}, + {"viaframe", "application/vnd.tml"}, + {"vis", "application/vnd.visionary"}, + {"viv", "video/vnd.vivo"}, + {"vmd", "chemical/x-vmd"}, + {"vms", "chemical/x-vamas-iso14976"}, + {"vmt", "application/vnd.valve.source.material"}, + {"vpm", "multipart/voice-message"}, + {"vrm", "model/vrml"}, + {"vrml", "model/vrml"}, + {"vsc", "application/vnd.vidsoft.vidconference"}, + {"vsd", "application/vnd.visio"}, + {"vsf", "application/vnd.vsf"}, + {"vss", "application/vnd.visio"}, + {"vst", "application/vnd.visio"}, + {"vsw", "application/vnd.visio"}, + {"vtf", "image/vnd.valve.source.texture"}, + {"vtnstd", "application/vnd.veritone.aion+json"}, + {"vtt", "text/vtt"}, + {"vtu", "model/vnd.vtu"}, + {"vwx", "application/vnd.vectorworks"}, + {"vxml", "application/voicexml+xml"}, + {"wad", "application/x-doom"}, + {"wadl", "application/vnd.sun.wadl+xml"}, + {"wafl", "application/vnd.wasmflow.wafl"}, + {"wasm", "application/wasm"}, + {"wav", "audio/x-wav"}, + {"wax", "audio/x-ms-wax"}, + {"wbmp", "image/vnd.wap.wbmp"}, + {"wbs", "application/vnd.criticaltools.wbs+xml"}, + {"wbxml", "application/vnd.wap.wbxml"}, + {"wcm", "application/vnd.ms-works"}, + {"wdb", "application/vnd.ms-works"}, + {"webm", "video/webm"}, + {"webmanifest", "application/manifest+json"}, + {"webp", "image/webp"}, + {"wg", "application/vnd.pmi.widget"}, + {"wgsl", "text/wgsl"}, + {"wgt", "application/widget"}, + {"wif", "application/watcherinfo+xml"}, + {"win", "model/vnd.gdl"}, + {"wk", "application/x-123"}, + {"wk1", "application/vnd.lotus-1-2-3"}, + {"wk3", "application/vnd.lotus-1-2-3"}, + {"wk4", "application/vnd.lotus-1-2-3"}, + {"wks", "application/vnd.ms-works"}, + {"wlnk", "application/link-format"}, + {"wm", "video/x-ms-wm"}, + {"wma", "audio/x-ms-wma"}, + {"wmc", "application/vnd.wmc"}, + {"wmd", "application/x-ms-wmd"}, + {"wmf", "image/wmf"}, + {"wml", "text/vnd.wap.wml"}, + {"wmlc", "application/vnd.wap.wmlc"}, + {"wmls", "text/vnd.wap.wmlscript"}, + {"wmlsc", "application/vnd.wap.wmlscriptc"}, + {"wmv", "video/x-ms-wmv"}, + {"wmx", "video/x-ms-wmx"}, + {"wmz", "application/x-ms-wmz"}, + {"woff", "font/woff"}, + {"woff2", "font/woff2"}, + {"wpd", "application/vnd.wordperfect"}, + {"wpl", "application/vnd.ms-wpl"}, + {"wps", "application/vnd.ms-works"}, + {"wqd", "application/vnd.wqd"}, + {"wrl", "model/vrml"}, + {"wsc", "application/vnd.wfa.wsc"}, + {"wsdl", "application/wsdl+xml"}, + {"wspolicy", "application/wspolicy+xml"}, + {"wtb", "application/vnd.webturbo"}, + {"wv", "application/vnd.wv.csp+wbxml"}, + {"wvx", "video/x-ms-wvx"}, + {"wz", "application/x-wingz"}, + {"x_b", "model/vnd.parasolid.transmit.binary"}, + {"x_t", "model/vnd.parasolid.transmit.text"}, + {"x3d", "model/x3d+xml"}, + {"x3db", "model/x3d+fastinfoset"}, + {"x3dv", "model/x3d-vrml"}, + {"x3dvz", "model/x3d-vrml"}, + {"x3dz", "model/x3d+xml"}, + {"xar", "application/vnd.xara"}, + {"xav", "application/xcap-att+xml"}, + {"xbd", "application/vnd.fujixerox.docuworks.binder"}, + {"xbm", "image/x-xbitmap"}, + {"xca", "application/xcap-caps+xml"}, + {"xcf", "image/x-xcf"}, + {"xcos", "application/x-scilab-xcos"}, + {"xcs", "application/calendar+xml"}, + {"xct", "application/vnd.fujixerox.docuworks.container"}, + {"xdd", "application/bacnet-xdd+zip"}, + {"xdf", "application/xcap-diff+xml"}, + {"xdm", "application/vnd.syncml.dm+xml"}, + {"xdp", "application/vnd.adobe.xdp+xml"}, + {"xdssc", "application/dssc+xml"}, + {"xdw", "application/vnd.fujixerox.docuworks"}, + {"xel", "application/xcap-el+xml"}, + {"xer", "application/xcap-error+xml"}, + {"xfd", "application/vnd.xfdl"}, + {"xfdf", "application/xfdf"}, + {"xfdl", "application/vnd.xfdl"}, + {"xhe", "audio/usac"}, + {"xht", "application/xhtml+xml"}, + {"xhtm", "application/xhtml+xml"}, + {"xhtml", "application/xhtml+xml"}, + {"xhvml", "application/xv+xml"}, + {"xif", "image/vnd.xiff"}, + {"xla", "application/vnd.ms-excel"}, + {"xlam", "application/vnd.ms-excel.addin.macroEnabled.12"}, + {"xlc", "application/vnd.ms-excel"}, + {"xlf", "application/xliff+xml"}, + {"xlim", "application/vnd.xmpie.xlim"}, + {"xlm", "application/vnd.ms-excel"}, + {"xls", "application/vnd.ms-excel"}, + {"xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12"}, + {"xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12"}, + {"xlsx", + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}, + {"xlt", "application/vnd.ms-excel"}, + {"xltm", "application/vnd.ms-excel.template.macroEnabled.12"}, + {"xltx", + "application/vnd.openxmlformats-officedocument.spreadsheetml.template"}, + {"xlw", "application/vnd.ms-excel"}, + {"xml", "application/xml"}, + {"xmls", "application/dskpp+xml"}, + {"xmt_bin", "model/vnd.parasolid.transmit.binary"}, + {"xmt_txt", "model/vnd.parasolid.transmit.text"}, + {"xns", "application/xcap-ns+xml"}, + {"xo", "application/vnd.olpc-sugar"}, + {"xodp", "application/vnd.collabio.xodocuments.presentation"}, + {"xods", "application/vnd.collabio.xodocuments.spreadsheet"}, + {"xodt", "application/vnd.collabio.xodocuments.document"}, + {"xop", "application/xop+xml"}, + {"xotp", "application/vnd.collabio.xodocuments.presentation-template"}, + {"xots", "application/vnd.collabio.xodocuments.spreadsheet-template"}, + {"xott", "application/vnd.collabio.xodocuments.document-template"}, + {"xpak", "application/vnd.gentoo.xpak"}, + {"xpi", "application/x-xpinstall"}, + {"xpm", "image/x-xpixmap"}, + {"xpr", "application/vnd.is-xpr"}, + {"xps", "application/vnd.ms-xpsdocument"}, + {"xpw", "application/vnd.intercon.formnet"}, + {"xpx", "application/vnd.intercon.formnet"}, + {"xsf", "application/prs.xsf+xml"}, + {"xsl", "application/xslt+xml"}, + {"xslt", "application/xslt+xml"}, + {"xsm", "application/vnd.syncml+xml"}, + {"xspf", "application/xspf+xml"}, + {"xtel", "chemical/x-xtel"}, + {"xul", "application/vnd.mozilla.xul+xml"}, + {"xvm", "application/xv+xml"}, + {"xvml", "application/xv+xml"}, + {"xwd", "image/x-xwindowdump"}, + {"xyz", "chemical/x-xyz"}, + {"xyze", "image/vnd.radiance"}, + {"xz", "application/x-xz"}, + {"yaml", "application/yaml"}, + {"yang", "application/yang"}, + {"yin", "application/yin+xml"}, + {"yme", "application/vnd.yaoweme"}, + {"yml", "application/yaml"}, + {"yt", "video/vnd.youtube.yt"}, + {"zaz", "application/vnd.zzazz.deck+xml"}, + {"zfc", "application/vnd.filmit.zfc"}, + {"zfo", "application/vnd.software602.filler.form-xml-zip"}, + {"zip", "application/zip"}, + {"zir", "application/vnd.zul"}, + {"zirz", "application/vnd.zul"}, + {"zmm", "application/vnd.HandHeld-Entertainment+xml"}, + {"zmt", "chemical/x-mopac-input"}, + {"zone", "text/dns"}, + {"zst", "application/zstd"}}; -std::string find_mime_type(const std::string& ext) { +std::string find_mime_type(const std::string &ext) { std::map::const_iterator it = mime_map.find(ext); if (it == mime_map.end()) { return ""; } - + return it->second; } diff --git a/src/mime.h b/src/mime.h index d8f09519..d23ee1ca 100644 --- a/src/mime.h +++ b/src/mime.h @@ -1,4 +1,4 @@ #include // Given a file extension, get the corresponding mime type -std::string find_mime_type(const std::string& ext); +std::string find_mime_type(const std::string &ext); diff --git a/src/optional.h b/src/optional.h index d01b089c..b1f4b249 100644 --- a/src/optional.h +++ b/src/optional.h @@ -7,402 +7,402 @@ // The idea and interface is based on Boost.Optional library // authored by Fernando Luis Cacciola Carballal -# ifndef ___OPTIONAL_HPP___ -# define ___OPTIONAL_HPP___ - -# include -# include -# include -# include -# include -# include -# include - -# define TR2_OPTIONAL_REQUIRES(...) typename enable_if<__VA_ARGS__::value, bool>::type = false - -# if defined __GNUC__ // NOTE: GNUC is also defined for Clang -# if (__GNUC__ == 4) && (__GNUC_MINOR__ >= 8) -# define TR2_OPTIONAL_GCC_4_8_AND_HIGHER___ -# elif (__GNUC__ > 4) -# define TR2_OPTIONAL_GCC_4_8_AND_HIGHER___ -# endif - -# if (__GNUC__ == 4) && (__GNUC_MINOR__ >= 7) -# define TR2_OPTIONAL_GCC_4_7_AND_HIGHER___ -# elif (__GNUC__ > 4) -# define TR2_OPTIONAL_GCC_4_7_AND_HIGHER___ -# endif - -# if (__GNUC__ == 4) && (__GNUC_MINOR__ == 8) && (__GNUC_PATCHLEVEL__ >= 1) -# define TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___ -# elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 9) -# define TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___ -# elif (__GNUC__ > 4) -# define TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___ -# endif -# endif - -# if defined __clang_major__ -# if (__clang_major__ == 3 && __clang_minor__ >= 5) -# define TR2_OPTIONAL_CLANG_3_5_AND_HIGHTER_ -# elif (__clang_major__ > 3) -# define TR2_OPTIONAL_CLANG_3_5_AND_HIGHTER_ -# endif -# if defined TR2_OPTIONAL_CLANG_3_5_AND_HIGHTER_ -# define TR2_OPTIONAL_CLANG_3_4_2_AND_HIGHER_ -# elif (__clang_major__ == 3 && __clang_minor__ == 4 && __clang_patchlevel__ >= 2) -# define TR2_OPTIONAL_CLANG_3_4_2_AND_HIGHER_ -# endif -# endif - -# if defined _MSC_VER -# if (_MSC_VER >= 1900) -# define TR2_OPTIONAL_MSVC_2015_AND_HIGHER___ -# endif -# endif - -# if defined __clang__ -# if (__clang_major__ > 2) || (__clang_major__ == 2) && (__clang_minor__ >= 9) -# define OPTIONAL_HAS_THIS_RVALUE_REFS 1 -# else -# define OPTIONAL_HAS_THIS_RVALUE_REFS 0 -# endif -# elif defined TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___ -# define OPTIONAL_HAS_THIS_RVALUE_REFS 1 -# elif defined TR2_OPTIONAL_MSVC_2015_AND_HIGHER___ -# define OPTIONAL_HAS_THIS_RVALUE_REFS 1 -# else -# define OPTIONAL_HAS_THIS_RVALUE_REFS 0 -# endif - - -# if defined TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___ -# define OPTIONAL_HAS_CONSTEXPR_INIT_LIST 1 -# define OPTIONAL_CONSTEXPR_INIT_LIST constexpr -# else -# define OPTIONAL_HAS_CONSTEXPR_INIT_LIST 0 -# define OPTIONAL_CONSTEXPR_INIT_LIST -# endif - -# if defined TR2_OPTIONAL_CLANG_3_5_AND_HIGHTER_ && (defined __cplusplus) && (__cplusplus != 201103L) -# define OPTIONAL_HAS_MOVE_ACCESSORS 1 -# else -# define OPTIONAL_HAS_MOVE_ACCESSORS 0 -# endif - -// In C++11 constexpr implies const, so we need to make non-const members also non-constexpr -# if (defined __cplusplus) && (__cplusplus == 201103L) -# define OPTIONAL_MUTABLE_CONSTEXPR -# else -# define OPTIONAL_MUTABLE_CONSTEXPR constexpr -# endif - -namespace std{ - -namespace experimental{ +#ifndef ___OPTIONAL_HPP___ +#define ___OPTIONAL_HPP___ + +#include +#include +#include +#include +#include +#include +#include + +#define TR2_OPTIONAL_REQUIRES(...) \ + typename enable_if<__VA_ARGS__::value, bool>::type = false + +#if defined __GNUC__ // NOTE: GNUC is also defined for Clang +#if (__GNUC__ == 4) && (__GNUC_MINOR__ >= 8) +#define TR2_OPTIONAL_GCC_4_8_AND_HIGHER___ +#elif (__GNUC__ > 4) +#define TR2_OPTIONAL_GCC_4_8_AND_HIGHER___ +#endif + +#if (__GNUC__ == 4) && (__GNUC_MINOR__ >= 7) +#define TR2_OPTIONAL_GCC_4_7_AND_HIGHER___ +#elif (__GNUC__ > 4) +#define TR2_OPTIONAL_GCC_4_7_AND_HIGHER___ +#endif + +#if (__GNUC__ == 4) && (__GNUC_MINOR__ == 8) && (__GNUC_PATCHLEVEL__ >= 1) +#define TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___ +#elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 9) +#define TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___ +#elif (__GNUC__ > 4) +#define TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___ +#endif +#endif + +#if defined __clang_major__ +#if (__clang_major__ == 3 && __clang_minor__ >= 5) +#define TR2_OPTIONAL_CLANG_3_5_AND_HIGHTER_ +#elif (__clang_major__ > 3) +#define TR2_OPTIONAL_CLANG_3_5_AND_HIGHTER_ +#endif +#if defined TR2_OPTIONAL_CLANG_3_5_AND_HIGHTER_ +#define TR2_OPTIONAL_CLANG_3_4_2_AND_HIGHER_ +#elif (__clang_major__ == 3 && __clang_minor__ == 4 && \ + __clang_patchlevel__ >= 2) +#define TR2_OPTIONAL_CLANG_3_4_2_AND_HIGHER_ +#endif +#endif + +#if defined _MSC_VER +#if (_MSC_VER >= 1900) +#define TR2_OPTIONAL_MSVC_2015_AND_HIGHER___ +#endif +#endif + +#if defined __clang__ +#if (__clang_major__ > 2) || (__clang_major__ == 2) && (__clang_minor__ >= 9) +#define OPTIONAL_HAS_THIS_RVALUE_REFS 1 +#else +#define OPTIONAL_HAS_THIS_RVALUE_REFS 0 +#endif +#elif defined TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___ +#define OPTIONAL_HAS_THIS_RVALUE_REFS 1 +#elif defined TR2_OPTIONAL_MSVC_2015_AND_HIGHER___ +#define OPTIONAL_HAS_THIS_RVALUE_REFS 1 +#else +#define OPTIONAL_HAS_THIS_RVALUE_REFS 0 +#endif + +#if defined TR2_OPTIONAL_GCC_4_8_1_AND_HIGHER___ +#define OPTIONAL_HAS_CONSTEXPR_INIT_LIST 1 +#define OPTIONAL_CONSTEXPR_INIT_LIST constexpr +#else +#define OPTIONAL_HAS_CONSTEXPR_INIT_LIST 0 +#define OPTIONAL_CONSTEXPR_INIT_LIST +#endif + +#if defined TR2_OPTIONAL_CLANG_3_5_AND_HIGHTER_ && (defined __cplusplus) && \ + (__cplusplus != 201103L) +#define OPTIONAL_HAS_MOVE_ACCESSORS 1 +#else +#define OPTIONAL_HAS_MOVE_ACCESSORS 0 +#endif + +// In C++11 constexpr implies const, so we need to make non-const members also +// non-constexpr +#if (defined __cplusplus) && (__cplusplus == 201103L) +#define OPTIONAL_MUTABLE_CONSTEXPR +#else +#define OPTIONAL_MUTABLE_CONSTEXPR constexpr +#endif + +namespace std { + +namespace experimental { // BEGIN workaround for missing is_trivially_destructible -# if defined TR2_OPTIONAL_GCC_4_8_AND_HIGHER___ - // leave it: it is already there -# elif defined TR2_OPTIONAL_CLANG_3_4_2_AND_HIGHER_ - // leave it: it is already there -# elif defined TR2_OPTIONAL_MSVC_2015_AND_HIGHER___ - // leave it: it is already there -# elif defined TR2_OPTIONAL_DISABLE_EMULATION_OF_TYPE_TRAITS - // leave it: the user doesn't want it -# else - template - using is_trivially_destructible = std::has_trivial_destructor; -# endif +#if defined TR2_OPTIONAL_GCC_4_8_AND_HIGHER___ +// leave it: it is already there +#elif defined TR2_OPTIONAL_CLANG_3_4_2_AND_HIGHER_ +// leave it: it is already there +#elif defined TR2_OPTIONAL_MSVC_2015_AND_HIGHER___ +// leave it: it is already there +#elif defined TR2_OPTIONAL_DISABLE_EMULATION_OF_TYPE_TRAITS +// leave it: the user doesn't want it +#else +template +using is_trivially_destructible = std::has_trivial_destructor; +#endif // END workaround for missing is_trivially_destructible -# if (defined TR2_OPTIONAL_GCC_4_7_AND_HIGHER___) - // leave it; our metafunctions are already defined. -# elif defined TR2_OPTIONAL_CLANG_3_4_2_AND_HIGHER_ - // leave it; our metafunctions are already defined. -# elif defined TR2_OPTIONAL_MSVC_2015_AND_HIGHER___ - // leave it: it is already there -# elif defined TR2_OPTIONAL_DISABLE_EMULATION_OF_TYPE_TRAITS - // leave it: the user doesn't want it -# else - +#if (defined TR2_OPTIONAL_GCC_4_7_AND_HIGHER___) +// leave it; our metafunctions are already defined. +#elif defined TR2_OPTIONAL_CLANG_3_4_2_AND_HIGHER_ +// leave it; our metafunctions are already defined. +#elif defined TR2_OPTIONAL_MSVC_2015_AND_HIGHER___ +// leave it: it is already there +#elif defined TR2_OPTIONAL_DISABLE_EMULATION_OF_TYPE_TRAITS +// leave it: the user doesn't want it +#else // workaround for missing traits in GCC and CLANG -template -struct is_nothrow_move_constructible -{ - constexpr static bool value = std::is_nothrow_constructible::value; +template struct is_nothrow_move_constructible { + constexpr static bool value = std::is_nothrow_constructible::value; }; +template struct is_assignable { + template constexpr static bool has_assign(...) { + return false; + } -template -struct is_assignable -{ - template - constexpr static bool has_assign(...) { return false; } - - template () = std::declval(), true)) > + template () = std::declval(), true))> // the comma operator is necessary for the cases where operator= returns void - constexpr static bool has_assign(bool) { return true; } + constexpr static bool has_assign(bool) { + return true; + } constexpr static bool value = has_assign(true); }; - -template -struct is_nothrow_move_assignable -{ - template - struct has_nothrow_move_assign { +template struct is_nothrow_move_assignable { + template struct has_nothrow_move_assign { constexpr static bool value = false; }; - template - struct has_nothrow_move_assign { - constexpr static bool value = noexcept( std::declval() = std::declval() ); + template struct has_nothrow_move_assign { + constexpr static bool value = + noexcept(std::declval() = std::declval()); }; - constexpr static bool value = has_nothrow_move_assign::value>::value; + constexpr static bool value = + has_nothrow_move_assign::value>::value; }; // end workaround - -# endif - - +#endif // 20.5.4, optional for object types template class optional; // 20.5.5, optional for lvalue reference types -template class optional; - +template class optional; // workaround: std utility functions aren't constexpr yet -template inline constexpr T&& constexpr_forward(typename std::remove_reference::type& t) noexcept -{ - return static_cast(t); +template +inline constexpr T && +constexpr_forward(typename std::remove_reference::type &t) noexcept { + return static_cast(t); } -template inline constexpr T&& constexpr_forward(typename std::remove_reference::type&& t) noexcept -{ - static_assert(!std::is_lvalue_reference::value, "!!"); - return static_cast(t); +template +inline constexpr T && +constexpr_forward(typename std::remove_reference::type &&t) noexcept { + static_assert(!std::is_lvalue_reference::value, "!!"); + return static_cast(t); } -template inline constexpr typename std::remove_reference::type&& constexpr_move(T&& t) noexcept -{ - return static_cast::type&&>(t); +template +inline constexpr typename std::remove_reference::type && +constexpr_move(T &&t) noexcept { + return static_cast::type &&>(t); } - #if defined NDEBUG -# define TR2_OPTIONAL_ASSERTED_EXPRESSION(CHECK, EXPR) (EXPR) +#define TR2_OPTIONAL_ASSERTED_EXPRESSION(CHECK, EXPR) (EXPR) #else -# define TR2_OPTIONAL_ASSERTED_EXPRESSION(CHECK, EXPR) ((CHECK) ? (EXPR) : ([]{assert(!#CHECK);}(), (EXPR))) +#define TR2_OPTIONAL_ASSERTED_EXPRESSION(CHECK, EXPR) \ + ((CHECK) ? (EXPR) : ([] { assert(!#CHECK); }(), (EXPR))) #endif - -namespace detail_ -{ +namespace detail_ { // static_addressof: a constexpr version of addressof -template -struct has_overloaded_addressof -{ - template - constexpr static bool has_overload(...) { return false; } - - template ().operator&()) > - constexpr static bool has_overload(bool) { return true; } +template struct has_overloaded_addressof { + template constexpr static bool has_overload(...) { return false; } + + template ().operator&())> + constexpr static bool has_overload(bool) { + return true; + } constexpr static bool value = has_overload(true); }; template )> -constexpr T* static_addressof(T& ref) -{ +constexpr T *static_addressof(T &ref) { return &ref; } template )> -T* static_addressof(T& ref) -{ +T *static_addressof(T &ref) { return std::addressof(ref); } +// the call to convert(b) has return type A and converts b to type A iff b +// decltype(b) is implicitly convertible to A +template constexpr U convert(U v) { return v; } -// the call to convert(b) has return type A and converts b to type A iff b decltype(b) is implicitly convertible to A -template -constexpr U convert(U v) { return v; } - +namespace swap_ns { +using std::swap; -namespace swap_ns -{ - using std::swap; - - template - void adl_swap(T& t, T& u) noexcept(noexcept(swap(t, u))) - { - swap(t, u); - } +template void adl_swap(T &t, T &u) noexcept(noexcept(swap(t, u))) { + swap(t, u); +} } // namespace swap_ns -} // namespace detail - - -constexpr struct trivial_init_t{} trivial_init{}; +} // namespace detail_ +constexpr struct trivial_init_t { +} trivial_init{}; // 20.5.6, In-place construction -constexpr struct in_place_t{} in_place{}; - +constexpr struct in_place_t { +} in_place{}; // 20.5.7, Disengaged state indicator -struct nullopt_t -{ - struct init{}; - constexpr explicit nullopt_t(init){} +struct nullopt_t { + struct init {}; + constexpr explicit nullopt_t(init) {} }; constexpr nullopt_t nullopt{nullopt_t::init()}; - // 20.5.8, class bad_optional_access class bad_optional_access : public logic_error { public: - explicit bad_optional_access(const string& what_arg) : logic_error{what_arg} {} - explicit bad_optional_access(const char* what_arg) : logic_error{what_arg} {} + explicit bad_optional_access(const string &what_arg) + : logic_error{what_arg} {} + explicit bad_optional_access(const char *what_arg) : logic_error{what_arg} {} }; - -template -union storage_t -{ +template union storage_t { unsigned char dummy_; T value_; - constexpr storage_t( trivial_init_t ) noexcept : dummy_() {}; + constexpr storage_t(trivial_init_t) noexcept : dummy_() {}; template - constexpr storage_t( Args&&... args ) : value_(constexpr_forward(args)...) {} + constexpr storage_t(Args &&...args) + : value_(constexpr_forward(args)...) {} - ~storage_t(){} + ~storage_t() {} }; +template union constexpr_storage_t { + unsigned char dummy_; + T value_; -template -union constexpr_storage_t -{ - unsigned char dummy_; - T value_; - - constexpr constexpr_storage_t( trivial_init_t ) noexcept : dummy_() {}; + constexpr constexpr_storage_t(trivial_init_t) noexcept : dummy_() {}; - template - constexpr constexpr_storage_t( Args&&... args ) : value_(constexpr_forward(args)...) {} + template + constexpr constexpr_storage_t(Args &&...args) + : value_(constexpr_forward(args)...) {} - ~constexpr_storage_t() = default; + ~constexpr_storage_t() = default; }; +template struct optional_base { + bool init_; + storage_t storage_; -template -struct optional_base -{ - bool init_; - storage_t storage_; - - constexpr optional_base() noexcept : init_(false), storage_(trivial_init) {}; + constexpr optional_base() noexcept : init_(false), storage_(trivial_init) {}; - explicit constexpr optional_base(const T& v) : init_(true), storage_(v) {} + explicit constexpr optional_base(const T &v) : init_(true), storage_(v) {} - explicit constexpr optional_base(T&& v) : init_(true), storage_(constexpr_move(v)) {} + explicit constexpr optional_base(T &&v) + : init_(true), storage_(constexpr_move(v)) {} - template explicit optional_base(in_place_t, Args&&... args) - : init_(true), storage_(constexpr_forward(args)...) {} + template + explicit optional_base(in_place_t, Args &&...args) + : init_(true), storage_(constexpr_forward(args)...) {} - template >)> - explicit optional_base(in_place_t, std::initializer_list il, Args&&... args) - : init_(true), storage_(il, std::forward(args)...) {} + template < + class U, class... Args, + TR2_OPTIONAL_REQUIRES(is_constructible>)> + explicit optional_base(in_place_t, std::initializer_list il, + Args &&...args) + : init_(true), storage_(il, std::forward(args)...) {} - ~optional_base() { if (init_) storage_.value_.T::~T(); } + ~optional_base() { + if (init_) + storage_.value_.T::~T(); + } }; +template struct constexpr_optional_base { + bool init_; + constexpr_storage_t storage_; -template -struct constexpr_optional_base -{ - bool init_; - constexpr_storage_t storage_; + constexpr constexpr_optional_base() noexcept + : init_(false), storage_(trivial_init) {}; - constexpr constexpr_optional_base() noexcept : init_(false), storage_(trivial_init) {}; + explicit constexpr constexpr_optional_base(const T &v) + : init_(true), storage_(v) {} - explicit constexpr constexpr_optional_base(const T& v) : init_(true), storage_(v) {} + explicit constexpr constexpr_optional_base(T &&v) + : init_(true), storage_(constexpr_move(v)) {} - explicit constexpr constexpr_optional_base(T&& v) : init_(true), storage_(constexpr_move(v)) {} - - template explicit constexpr constexpr_optional_base(in_place_t, Args&&... args) + template + explicit constexpr constexpr_optional_base(in_place_t, Args &&...args) : init_(true), storage_(constexpr_forward(args)...) {} - template >)> - OPTIONAL_CONSTEXPR_INIT_LIST explicit constexpr_optional_base(in_place_t, std::initializer_list il, Args&&... args) + template < + class U, class... Args, + TR2_OPTIONAL_REQUIRES(is_constructible>)> + OPTIONAL_CONSTEXPR_INIT_LIST explicit constexpr_optional_base( + in_place_t, std::initializer_list il, Args &&...args) : init_(true), storage_(il, std::forward(args)...) {} - ~constexpr_optional_base() = default; + ~constexpr_optional_base() = default; }; template using OptionalBase = typename std::conditional< - is_trivially_destructible::value, // if possible - constexpr_optional_base::type>, // use base with trivial destructor - optional_base::type> ->::type; - + is_trivially_destructible::value, // if possible + constexpr_optional_base::type>, // use base with trivial destructor + optional_base::type>>::type; - -template -class optional : private OptionalBase -{ - static_assert( !std::is_same::type, nullopt_t>::value, "bad T" ); - static_assert( !std::is_same::type, in_place_t>::value, "bad T" ); - +template class optional : private OptionalBase { + static_assert(!std::is_same::type, nullopt_t>::value, + "bad T"); + static_assert(!std::is_same::type, in_place_t>::value, + "bad T"); constexpr bool initialized() const noexcept { return OptionalBase::init_; } - typename std::remove_const::type* dataptr() { return std::addressof(OptionalBase::storage_.value_); } - constexpr const T* dataptr() const { return detail_::static_addressof(OptionalBase::storage_.value_); } - -# if OPTIONAL_HAS_THIS_RVALUE_REFS == 1 - constexpr const T& contained_val() const& { return OptionalBase::storage_.value_; } -# if OPTIONAL_HAS_MOVE_ACCESSORS == 1 - OPTIONAL_MUTABLE_CONSTEXPR T&& contained_val() && { return std::move(OptionalBase::storage_.value_); } - OPTIONAL_MUTABLE_CONSTEXPR T& contained_val() & { return OptionalBase::storage_.value_; } -# else - T& contained_val() & { return OptionalBase::storage_.value_; } - T&& contained_val() && { return std::move(OptionalBase::storage_.value_); } -# endif -# else - constexpr const T& contained_val() const { return OptionalBase::storage_.value_; } - T& contained_val() { return OptionalBase::storage_.value_; } -# endif + typename std::remove_const::type *dataptr() { + return std::addressof(OptionalBase::storage_.value_); + } + constexpr const T *dataptr() const { + return detail_::static_addressof(OptionalBase::storage_.value_); + } + +#if OPTIONAL_HAS_THIS_RVALUE_REFS == 1 + constexpr const T &contained_val() const & { + return OptionalBase::storage_.value_; + } +#if OPTIONAL_HAS_MOVE_ACCESSORS == 1 + OPTIONAL_MUTABLE_CONSTEXPR T &&contained_val() && { + return std::move(OptionalBase::storage_.value_); + } + OPTIONAL_MUTABLE_CONSTEXPR T &contained_val() & { + return OptionalBase::storage_.value_; + } +#else + T &contained_val() & { return OptionalBase::storage_.value_; } + T &&contained_val() && { return std::move(OptionalBase::storage_.value_); } +#endif +#else + constexpr const T &contained_val() const { + return OptionalBase::storage_.value_; + } + T &contained_val() { return OptionalBase::storage_.value_; } +#endif void clear() noexcept { - if (initialized()) dataptr()->T::~T(); + if (initialized()) + dataptr()->T::~T(); OptionalBase::init_ = false; } - + template - void initialize(Args&&... args) noexcept(noexcept(T(std::forward(args)...))) - { + void initialize(Args &&...args) noexcept( + noexcept(T(std::forward(args)...))) { assert(!OptionalBase::init_); - ::new (static_cast(dataptr())) T(std::forward(args)...); + ::new (static_cast(dataptr())) T(std::forward(args)...); OptionalBase::init_ = true; } template - void initialize(std::initializer_list il, Args&&... args) noexcept(noexcept(T(il, std::forward(args)...))) - { + void initialize(std::initializer_list il, Args &&...args) noexcept( + noexcept(T(il, std::forward(args)...))) { assert(!OptionalBase::init_); - ::new (static_cast(dataptr())) T(il, std::forward(args)...); + ::new (static_cast(dataptr())) T(il, std::forward(args)...); OptionalBase::init_ = true; } @@ -410,657 +410,618 @@ class optional : private OptionalBase typedef T value_type; // 20.5.5.1, constructors - constexpr optional() noexcept : OptionalBase() {}; + constexpr optional() noexcept : OptionalBase() {}; constexpr optional(nullopt_t) noexcept : OptionalBase() {}; - optional(const optional& rhs) - : OptionalBase() - { + optional(const optional &rhs) : OptionalBase() { if (rhs.initialized()) { - ::new (static_cast(dataptr())) T(*rhs); - OptionalBase::init_ = true; + ::new (static_cast(dataptr())) T(*rhs); + OptionalBase::init_ = true; } } - optional(optional&& rhs) noexcept(is_nothrow_move_constructible::value) - : OptionalBase() - { + optional(optional &&rhs) noexcept(is_nothrow_move_constructible::value) + : OptionalBase() { if (rhs.initialized()) { - ::new (static_cast(dataptr())) T(std::move(*rhs)); - OptionalBase::init_ = true; + ::new (static_cast(dataptr())) T(std::move(*rhs)); + OptionalBase::init_ = true; } } - constexpr optional(const T& v) : OptionalBase(v) {} + constexpr optional(const T &v) : OptionalBase(v) {} - constexpr optional(T&& v) : OptionalBase(constexpr_move(v)) {} + constexpr optional(T &&v) : OptionalBase(constexpr_move(v)) {} template - explicit constexpr optional(in_place_t, Args&&... args) - : OptionalBase(in_place_t{}, constexpr_forward(args)...) {} + explicit constexpr optional(in_place_t, Args &&...args) + : OptionalBase(in_place_t{}, constexpr_forward(args)...) {} - template >)> - OPTIONAL_CONSTEXPR_INIT_LIST explicit optional(in_place_t, std::initializer_list il, Args&&... args) - : OptionalBase(in_place_t{}, il, constexpr_forward(args)...) {} + template < + class U, class... Args, + TR2_OPTIONAL_REQUIRES(is_constructible>)> + OPTIONAL_CONSTEXPR_INIT_LIST explicit optional(in_place_t, + std::initializer_list il, + Args &&...args) + : OptionalBase(in_place_t{}, il, constexpr_forward(args)...) {} // 20.5.4.2, Destructor ~optional() = default; // 20.5.4.3, assignment - optional& operator=(nullopt_t) noexcept - { + optional &operator=(nullopt_t) noexcept { clear(); return *this; } - - optional& operator=(const optional& rhs) - { - if (initialized() == true && rhs.initialized() == false) clear(); - else if (initialized() == false && rhs.initialized() == true) initialize(*rhs); - else if (initialized() == true && rhs.initialized() == true) contained_val() = *rhs; + + optional &operator=(const optional &rhs) { + if (initialized() == true && rhs.initialized() == false) + clear(); + else if (initialized() == false && rhs.initialized() == true) + initialize(*rhs); + else if (initialized() == true && rhs.initialized() == true) + contained_val() = *rhs; return *this; } - - optional& operator=(optional&& rhs) - noexcept(is_nothrow_move_assignable::value && is_nothrow_move_constructible::value) - { - if (initialized() == true && rhs.initialized() == false) clear(); - else if (initialized() == false && rhs.initialized() == true) initialize(std::move(*rhs)); - else if (initialized() == true && rhs.initialized() == true) contained_val() = std::move(*rhs); + + optional & + operator=(optional &&rhs) noexcept(is_nothrow_move_assignable::value && + is_nothrow_move_constructible::value) { + if (initialized() == true && rhs.initialized() == false) + clear(); + else if (initialized() == false && rhs.initialized() == true) + initialize(std::move(*rhs)); + else if (initialized() == true && rhs.initialized() == true) + contained_val() = std::move(*rhs); return *this; } template - auto operator=(U&& v) - -> typename enable_if - < - is_same::type, T>::value, - optional& - >::type - { - if (initialized()) { contained_val() = std::forward(v); } - else { initialize(std::forward(v)); } + auto operator=(U &&v) -> + typename enable_if::type, T>::value, + optional &>::type { + if (initialized()) { + contained_val() = std::forward(v); + } else { + initialize(std::forward(v)); + } return *this; } - - - template - void emplace(Args&&... args) - { + + template void emplace(Args &&...args) { clear(); initialize(std::forward(args)...); } - + template - void emplace(initializer_list il, Args&&... args) - { + void emplace(initializer_list il, Args &&...args) { clear(); initialize(il, std::forward(args)...); } - + // 20.5.4.4, Swap - void swap(optional& rhs) noexcept(is_nothrow_move_constructible::value - && noexcept(detail_::swap_ns::adl_swap(declval(), declval()))) - { - if (initialized() == true && rhs.initialized() == false) { rhs.initialize(std::move(**this)); clear(); } - else if (initialized() == false && rhs.initialized() == true) { initialize(std::move(*rhs)); rhs.clear(); } - else if (initialized() == true && rhs.initialized() == true) { using std::swap; swap(**this, *rhs); } + void swap(optional &rhs) noexcept( + is_nothrow_move_constructible::value && + noexcept(detail_::swap_ns::adl_swap(declval(), declval()))) { + if (initialized() == true && rhs.initialized() == false) { + rhs.initialize(std::move(**this)); + clear(); + } else if (initialized() == false && rhs.initialized() == true) { + initialize(std::move(*rhs)); + rhs.clear(); + } else if (initialized() == true && rhs.initialized() == true) { + using std::swap; + swap(**this, *rhs); + } } // 20.5.4.5, Observers - + explicit constexpr operator bool() const noexcept { return initialized(); } constexpr bool has_value() const noexcept { return initialized(); } - - constexpr T const* operator ->() const { + + constexpr T const *operator->() const { return TR2_OPTIONAL_ASSERTED_EXPRESSION(initialized(), dataptr()); } - -# if OPTIONAL_HAS_MOVE_ACCESSORS == 1 - OPTIONAL_MUTABLE_CONSTEXPR T* operator ->() { - assert (initialized()); +#if OPTIONAL_HAS_MOVE_ACCESSORS == 1 + + OPTIONAL_MUTABLE_CONSTEXPR T *operator->() { + assert(initialized()); return dataptr(); } - - constexpr T const& operator *() const& { + + constexpr T const &operator*() const & { return TR2_OPTIONAL_ASSERTED_EXPRESSION(initialized(), contained_val()); } - - OPTIONAL_MUTABLE_CONSTEXPR T& operator *() & { - assert (initialized()); + + OPTIONAL_MUTABLE_CONSTEXPR T &operator*() & { + assert(initialized()); return contained_val(); } - - OPTIONAL_MUTABLE_CONSTEXPR T&& operator *() && { - assert (initialized()); + + OPTIONAL_MUTABLE_CONSTEXPR T &&operator*() && { + assert(initialized()); return constexpr_move(contained_val()); } - constexpr T const& value() const& { - return initialized() ? contained_val() : (throw bad_optional_access("bad optional access"), contained_val()); + constexpr T const &value() const & { + return initialized() ? contained_val() + : (throw bad_optional_access("bad optional access"), + contained_val()); } - - OPTIONAL_MUTABLE_CONSTEXPR T& value() & { - return initialized() ? contained_val() : (throw bad_optional_access("bad optional access"), contained_val()); + + OPTIONAL_MUTABLE_CONSTEXPR T &value() & { + return initialized() ? contained_val() + : (throw bad_optional_access("bad optional access"), + contained_val()); } - - OPTIONAL_MUTABLE_CONSTEXPR T&& value() && { - if (!initialized()) throw bad_optional_access("bad optional access"); - return std::move(contained_val()); + + OPTIONAL_MUTABLE_CONSTEXPR T &&value() && { + if (!initialized()) + throw bad_optional_access("bad optional access"); + return std::move(contained_val()); } - -# else - T* operator ->() { - assert (initialized()); +#else + + T *operator->() { + assert(initialized()); return dataptr(); } - - constexpr T const& operator *() const { + + constexpr T const &operator*() const { return TR2_OPTIONAL_ASSERTED_EXPRESSION(initialized(), contained_val()); } - - T& operator *() { - assert (initialized()); + + T &operator*() { + assert(initialized()); return contained_val(); } - - constexpr T const& value() const { - return initialized() ? contained_val() : (throw bad_optional_access("bad optional access"), contained_val()); + + constexpr T const &value() const { + return initialized() ? contained_val() + : (throw bad_optional_access("bad optional access"), + contained_val()); } - - T& value() { - return initialized() ? contained_val() : (throw bad_optional_access("bad optional access"), contained_val()); + + T &value() { + return initialized() ? contained_val() + : (throw bad_optional_access("bad optional access"), + contained_val()); } - -# endif - -# if OPTIONAL_HAS_THIS_RVALUE_REFS == 1 - - template - constexpr T value_or(V&& v) const& - { + +#endif + +#if OPTIONAL_HAS_THIS_RVALUE_REFS == 1 + + template constexpr T value_or(V &&v) const & { return *this ? **this : detail_::convert(constexpr_forward(v)); } - -# if OPTIONAL_HAS_MOVE_ACCESSORS == 1 - template - OPTIONAL_MUTABLE_CONSTEXPR T value_or(V&& v) && - { - return *this ? constexpr_move(const_cast&>(*this).contained_val()) : detail_::convert(constexpr_forward(v)); +#if OPTIONAL_HAS_MOVE_ACCESSORS == 1 + + template OPTIONAL_MUTABLE_CONSTEXPR T value_or(V &&v) && { + return *this ? constexpr_move( + const_cast &>(*this).contained_val()) + : detail_::convert(constexpr_forward(v)); } -# else - - template - T value_or(V&& v) && - { - return *this ? constexpr_move(const_cast&>(*this).contained_val()) : detail_::convert(constexpr_forward(v)); +#else + + template T value_or(V &&v) && { + return *this ? constexpr_move( + const_cast &>(*this).contained_val()) + : detail_::convert(constexpr_forward(v)); } - -# endif - -# else - - template - constexpr T value_or(V&& v) const - { + +#endif + +#else + + template constexpr T value_or(V &&v) const { return *this ? **this : detail_::convert(constexpr_forward(v)); } -# endif +#endif // 20.6.3.6, modifiers void reset() noexcept { clear(); } }; +template class optional { + static_assert(!std::is_same::value, "bad T"); + static_assert(!std::is_same::value, "bad T"); + T *ref; -template -class optional -{ - static_assert( !std::is_same::value, "bad T" ); - static_assert( !std::is_same::value, "bad T" ); - T* ref; - public: - // 20.5.5.1, construction/destruction constexpr optional() noexcept : ref(nullptr) {} - + constexpr optional(nullopt_t) noexcept : ref(nullptr) {} - - constexpr optional(T& v) noexcept : ref(detail_::static_addressof(v)) {} - - optional(T&&) = delete; - - constexpr optional(const optional& rhs) noexcept : ref(rhs.ref) {} - - explicit constexpr optional(in_place_t, T& v) noexcept : ref(detail_::static_addressof(v)) {} - - explicit optional(in_place_t, T&&) = delete; - + + constexpr optional(T &v) noexcept : ref(detail_::static_addressof(v)) {} + + optional(T &&) = delete; + + constexpr optional(const optional &rhs) noexcept : ref(rhs.ref) {} + + explicit constexpr optional(in_place_t, T &v) noexcept + : ref(detail_::static_addressof(v)) {} + + explicit optional(in_place_t, T &&) = delete; + ~optional() = default; - + // 20.5.5.2, mutation - optional& operator=(nullopt_t) noexcept { + optional &operator=(nullopt_t) noexcept { ref = nullptr; return *this; } - + // optional& operator=(const optional& rhs) noexcept { - // ref = rhs.ref; - // return *this; + // ref = rhs.ref; + // return *this; // } - + // optional& operator=(optional&& rhs) noexcept { - // ref = rhs.ref; - // return *this; + // ref = rhs.ref; + // return *this; // } - + template - auto operator=(U&& rhs) noexcept - -> typename enable_if - < - is_same::type, optional>::value, - optional& - >::type - { + auto operator=(U &&rhs) noexcept -> + typename enable_if::type, optional>::value, + optional &>::type { ref = rhs.ref; return *this; } - + template - auto operator=(U&& rhs) noexcept - -> typename enable_if - < - !is_same::type, optional>::value, - optional& - >::type - = delete; - - void emplace(T& v) noexcept { - ref = detail_::static_addressof(v); - } - - void emplace(T&&) = delete; - - - void swap(optional& rhs) noexcept - { - std::swap(ref, rhs.ref); - } - + auto operator=(U &&rhs) noexcept -> typename enable_if< + !is_same::type, optional>::value, + optional &>::type = delete; + + void emplace(T &v) noexcept { ref = detail_::static_addressof(v); } + + void emplace(T &&) = delete; + + void swap(optional &rhs) noexcept { std::swap(ref, rhs.ref); } + // 20.5.5.3, observers - constexpr T* operator->() const { + constexpr T *operator->() const { return TR2_OPTIONAL_ASSERTED_EXPRESSION(ref, ref); } - - constexpr T& operator*() const { + + constexpr T &operator*() const { return TR2_OPTIONAL_ASSERTED_EXPRESSION(ref, *ref); } - - constexpr T& value() const { - return ref ? *ref : (throw bad_optional_access("bad optional access"), *ref); - } - - explicit constexpr operator bool() const noexcept { - return ref != nullptr; - } - - constexpr bool has_value() const noexcept { - return ref != nullptr; + + constexpr T &value() const { + return ref ? *ref + : (throw bad_optional_access("bad optional access"), *ref); } - - template - constexpr typename decay::type value_or(V&& v) const - { - return *this ? **this : detail_::convert::type>(constexpr_forward(v)); + + explicit constexpr operator bool() const noexcept { return ref != nullptr; } + + constexpr bool has_value() const noexcept { return ref != nullptr; } + + template constexpr typename decay::type value_or(V &&v) const { + return *this ? **this + : detail_::convert::type>( + constexpr_forward(v)); } // x.x.x.x, modifiers void reset() noexcept { ref = nullptr; } }; - -template -class optional -{ - static_assert( sizeof(T) == 0, "optional rvalue references disallowed" ); +template class optional { + static_assert(sizeof(T) == 0, "optional rvalue references disallowed"); }; - // 20.5.8, Relational operators -template constexpr bool operator==(const optional& x, const optional& y) -{ +template +constexpr bool operator==(const optional &x, const optional &y) { return bool(x) != bool(y) ? false : bool(x) == false ? true : *x == *y; } -template constexpr bool operator!=(const optional& x, const optional& y) -{ +template +constexpr bool operator!=(const optional &x, const optional &y) { return !(x == y); } -template constexpr bool operator<(const optional& x, const optional& y) -{ +template +constexpr bool operator<(const optional &x, const optional &y) { return (!y) ? false : (!x) ? true : *x < *y; } -template constexpr bool operator>(const optional& x, const optional& y) -{ +template +constexpr bool operator>(const optional &x, const optional &y) { return (y < x); } -template constexpr bool operator<=(const optional& x, const optional& y) -{ +template +constexpr bool operator<=(const optional &x, const optional &y) { return !(y < x); } -template constexpr bool operator>=(const optional& x, const optional& y) -{ +template +constexpr bool operator>=(const optional &x, const optional &y) { return !(x < y); } - // 20.5.9, Comparison with nullopt -template constexpr bool operator==(const optional& x, nullopt_t) noexcept -{ +template +constexpr bool operator==(const optional &x, nullopt_t) noexcept { return (!x); } -template constexpr bool operator==(nullopt_t, const optional& x) noexcept -{ +template +constexpr bool operator==(nullopt_t, const optional &x) noexcept { return (!x); } -template constexpr bool operator!=(const optional& x, nullopt_t) noexcept -{ +template +constexpr bool operator!=(const optional &x, nullopt_t) noexcept { return bool(x); } -template constexpr bool operator!=(nullopt_t, const optional& x) noexcept -{ +template +constexpr bool operator!=(nullopt_t, const optional &x) noexcept { return bool(x); } -template constexpr bool operator<(const optional&, nullopt_t) noexcept -{ +template +constexpr bool operator<(const optional &, nullopt_t) noexcept { return false; } -template constexpr bool operator<(nullopt_t, const optional& x) noexcept -{ +template +constexpr bool operator<(nullopt_t, const optional &x) noexcept { return bool(x); } -template constexpr bool operator<=(const optional& x, nullopt_t) noexcept -{ +template +constexpr bool operator<=(const optional &x, nullopt_t) noexcept { return (!x); } -template constexpr bool operator<=(nullopt_t, const optional&) noexcept -{ +template +constexpr bool operator<=(nullopt_t, const optional &) noexcept { return true; } -template constexpr bool operator>(const optional& x, nullopt_t) noexcept -{ +template +constexpr bool operator>(const optional &x, nullopt_t) noexcept { return bool(x); } -template constexpr bool operator>(nullopt_t, const optional&) noexcept -{ +template +constexpr bool operator>(nullopt_t, const optional &) noexcept { return false; } -template constexpr bool operator>=(const optional&, nullopt_t) noexcept -{ +template +constexpr bool operator>=(const optional &, nullopt_t) noexcept { return true; } -template constexpr bool operator>=(nullopt_t, const optional& x) noexcept -{ +template +constexpr bool operator>=(nullopt_t, const optional &x) noexcept { return (!x); } - - // 20.5.10, Comparison with T -template constexpr bool operator==(const optional& x, const T& v) -{ +template constexpr bool operator==(const optional &x, const T &v) { return bool(x) ? *x == v : false; } -template constexpr bool operator==(const T& v, const optional& x) -{ +template constexpr bool operator==(const T &v, const optional &x) { return bool(x) ? v == *x : false; } -template constexpr bool operator!=(const optional& x, const T& v) -{ +template constexpr bool operator!=(const optional &x, const T &v) { return bool(x) ? *x != v : true; } -template constexpr bool operator!=(const T& v, const optional& x) -{ +template constexpr bool operator!=(const T &v, const optional &x) { return bool(x) ? v != *x : true; } -template constexpr bool operator<(const optional& x, const T& v) -{ +template constexpr bool operator<(const optional &x, const T &v) { return bool(x) ? *x < v : true; } -template constexpr bool operator>(const T& v, const optional& x) -{ +template constexpr bool operator>(const T &v, const optional &x) { return bool(x) ? v > *x : true; } -template constexpr bool operator>(const optional& x, const T& v) -{ +template constexpr bool operator>(const optional &x, const T &v) { return bool(x) ? *x > v : false; } -template constexpr bool operator<(const T& v, const optional& x) -{ +template constexpr bool operator<(const T &v, const optional &x) { return bool(x) ? v < *x : false; } -template constexpr bool operator>=(const optional& x, const T& v) -{ +template constexpr bool operator>=(const optional &x, const T &v) { return bool(x) ? *x >= v : false; } -template constexpr bool operator<=(const T& v, const optional& x) -{ +template constexpr bool operator<=(const T &v, const optional &x) { return bool(x) ? v <= *x : false; } -template constexpr bool operator<=(const optional& x, const T& v) -{ +template constexpr bool operator<=(const optional &x, const T &v) { return bool(x) ? *x <= v : true; } -template constexpr bool operator>=(const T& v, const optional& x) -{ +template constexpr bool operator>=(const T &v, const optional &x) { return bool(x) ? v >= *x : true; } - // Comparison of optional with T -template constexpr bool operator==(const optional& x, const T& v) -{ +template +constexpr bool operator==(const optional &x, const T &v) { return bool(x) ? *x == v : false; } -template constexpr bool operator==(const T& v, const optional& x) -{ +template +constexpr bool operator==(const T &v, const optional &x) { return bool(x) ? v == *x : false; } -template constexpr bool operator!=(const optional& x, const T& v) -{ +template +constexpr bool operator!=(const optional &x, const T &v) { return bool(x) ? *x != v : true; } -template constexpr bool operator!=(const T& v, const optional& x) -{ +template +constexpr bool operator!=(const T &v, const optional &x) { return bool(x) ? v != *x : true; } -template constexpr bool operator<(const optional& x, const T& v) -{ +template +constexpr bool operator<(const optional &x, const T &v) { return bool(x) ? *x < v : true; } -template constexpr bool operator>(const T& v, const optional& x) -{ +template +constexpr bool operator>(const T &v, const optional &x) { return bool(x) ? v > *x : true; } -template constexpr bool operator>(const optional& x, const T& v) -{ +template +constexpr bool operator>(const optional &x, const T &v) { return bool(x) ? *x > v : false; } -template constexpr bool operator<(const T& v, const optional& x) -{ +template +constexpr bool operator<(const T &v, const optional &x) { return bool(x) ? v < *x : false; } -template constexpr bool operator>=(const optional& x, const T& v) -{ +template +constexpr bool operator>=(const optional &x, const T &v) { return bool(x) ? *x >= v : false; } -template constexpr bool operator<=(const T& v, const optional& x) -{ +template +constexpr bool operator<=(const T &v, const optional &x) { return bool(x) ? v <= *x : false; } -template constexpr bool operator<=(const optional& x, const T& v) -{ +template +constexpr bool operator<=(const optional &x, const T &v) { return bool(x) ? *x <= v : true; } -template constexpr bool operator>=(const T& v, const optional& x) -{ +template +constexpr bool operator>=(const T &v, const optional &x) { return bool(x) ? v >= *x : true; } // Comparison of optional with T -template constexpr bool operator==(const optional& x, const T& v) -{ +template +constexpr bool operator==(const optional &x, const T &v) { return bool(x) ? *x == v : false; } -template constexpr bool operator==(const T& v, const optional& x) -{ +template +constexpr bool operator==(const T &v, const optional &x) { return bool(x) ? v == *x : false; } -template constexpr bool operator!=(const optional& x, const T& v) -{ +template +constexpr bool operator!=(const optional &x, const T &v) { return bool(x) ? *x != v : true; } -template constexpr bool operator!=(const T& v, const optional& x) -{ +template +constexpr bool operator!=(const T &v, const optional &x) { return bool(x) ? v != *x : true; } -template constexpr bool operator<(const optional& x, const T& v) -{ +template +constexpr bool operator<(const optional &x, const T &v) { return bool(x) ? *x < v : true; } -template constexpr bool operator>(const T& v, const optional& x) -{ +template +constexpr bool operator>(const T &v, const optional &x) { return bool(x) ? v > *x : true; } -template constexpr bool operator>(const optional& x, const T& v) -{ +template +constexpr bool operator>(const optional &x, const T &v) { return bool(x) ? *x > v : false; } -template constexpr bool operator<(const T& v, const optional& x) -{ +template +constexpr bool operator<(const T &v, const optional &x) { return bool(x) ? v < *x : false; } -template constexpr bool operator>=(const optional& x, const T& v) -{ +template +constexpr bool operator>=(const optional &x, const T &v) { return bool(x) ? *x >= v : false; } -template constexpr bool operator<=(const T& v, const optional& x) -{ +template +constexpr bool operator<=(const T &v, const optional &x) { return bool(x) ? v <= *x : false; } -template constexpr bool operator<=(const optional& x, const T& v) -{ +template +constexpr bool operator<=(const optional &x, const T &v) { return bool(x) ? *x <= v : true; } -template constexpr bool operator>=(const T& v, const optional& x) -{ +template +constexpr bool operator>=(const T &v, const optional &x) { return bool(x) ? v >= *x : true; } - // 20.5.12, Specialized algorithms template -void swap(optional& x, optional& y) noexcept(noexcept(x.swap(y))) -{ +void swap(optional &x, optional &y) noexcept(noexcept(x.swap(y))) { x.swap(y); } - template -constexpr optional::type> make_optional(T&& v) -{ +constexpr optional::type> make_optional(T &&v) { return optional::type>(constexpr_forward(v)); } template -constexpr optional make_optional(reference_wrapper v) -{ - return optional(v.get()); +constexpr optional make_optional(reference_wrapper v) { + return optional(v.get()); } - } // namespace experimental } // namespace std -namespace std -{ - template - struct hash> - { - typedef typename hash::result_type result_type; - typedef std::experimental::optional argument_type; - - constexpr result_type operator()(argument_type const& arg) const { - return arg ? std::hash{}(*arg) : result_type{}; - } - }; - - template - struct hash> - { - typedef typename hash::result_type result_type; - typedef std::experimental::optional argument_type; - - constexpr result_type operator()(argument_type const& arg) const { - return arg ? std::hash{}(*arg) : result_type{}; - } - }; -} +namespace std { +template struct hash> { + typedef typename hash::result_type result_type; + typedef std::experimental::optional argument_type; + + constexpr result_type operator()(argument_type const &arg) const { + return arg ? std::hash{}(*arg) : result_type{}; + } +}; + +template struct hash> { + typedef typename hash::result_type result_type; + typedef std::experimental::optional argument_type; + + constexpr result_type operator()(argument_type const &arg) const { + return arg ? std::hash{}(*arg) : result_type{}; + } +}; +} // namespace std -# undef TR2_OPTIONAL_REQUIRES -# undef TR2_OPTIONAL_ASSERTED_EXPRESSION +#undef TR2_OPTIONAL_REQUIRES +#undef TR2_OPTIONAL_ASSERTED_EXPRESSION -# endif //___OPTIONAL_HPP___ +#endif //___OPTIONAL_HPP___ diff --git a/src/sha1/sha1.h b/src/sha1/sha1.h index 1cb53602..a662161b 100644 --- a/src/sha1/sha1.h +++ b/src/sha1/sha1.h @@ -9,16 +9,16 @@ extern "C" { #endif typedef struct { - uint32_t state[5]; - uint32_t count[2]; - uint8_t buffer[64]; + uint32_t state[5]; + uint32_t count[2]; + uint8_t buffer[64]; } SHA1_CTX; #define SHA1_DIGEST_SIZE 20 -void reid_SHA1_Init(SHA1_CTX* context); -void reid_SHA1_Update(SHA1_CTX* context, const uint8_t* data, const size_t len); -void reid_SHA1_Final(SHA1_CTX* context, uint8_t digest[SHA1_DIGEST_SIZE]); +void reid_SHA1_Init(SHA1_CTX *context); +void reid_SHA1_Update(SHA1_CTX *context, const uint8_t *data, const size_t len); +void reid_SHA1_Final(SHA1_CTX *context, uint8_t digest[SHA1_DIGEST_SIZE]); #ifdef __cplusplus } diff --git a/src/socket.cpp b/src/socket.cpp index 492388f2..3e52bc03 100644 --- a/src/socket.cpp +++ b/src/socket.cpp @@ -3,7 +3,7 @@ #include #include -void on_Socket_close(uv_handle_t* pHandle); +void on_Socket_close(uv_handle_t *pHandle); void Socket::addConnection(std::shared_ptr request) { connections.push_back(request); @@ -11,8 +11,8 @@ void Socket::addConnection(std::shared_ptr request) { void Socket::removeConnection(std::shared_ptr request) { connections.erase( - std::remove(connections.begin(), connections.end(), request), - connections.end()); + std::remove(connections.begin(), connections.end(), request), + connections.end()); } Socket::~Socket() { @@ -21,8 +21,8 @@ Socket::~Socket() { } // A deleter callback for the shared_ptr. -void delete_ppsocket(uv_handle_t* pHandle) { - std::shared_ptr* ppSocket = (std::shared_ptr*)pHandle->data; +void delete_ppsocket(uv_handle_t *pHandle) { + std::shared_ptr *ppSocket = (std::shared_ptr *)pHandle->data; delete ppSocket; } @@ -34,15 +34,15 @@ void delete_ppsocket(uv_handle_t* pHandle) { void Socket::close() { ASSERT_BACKGROUND_THREAD() debug_log("Socket::close", LOG_DEBUG); - for (std::vector >::reverse_iterator it = connections.rbegin(); - it != connections.rend(); - it++) { + for (std::vector>::reverse_iterator it = + connections.rbegin(); + it != connections.rend(); it++) { // std::cerr << "Request close on " << *it << std::endl; (*it)->close(); } - uv_handle_t* pHandle = toHandle(&handle.stream); + uv_handle_t *pHandle = toHandle(&handle.stream); // Delete the shared_ptr only after uv_close() does its work. This // will decrease the refcount and should trigger deletion of the Socket. diff --git a/src/socket.h b/src/socket.h index 472e917f..abcd901c 100644 --- a/src/socket.h +++ b/src/socket.h @@ -12,14 +12,12 @@ class Socket { public: VariantHandle handle; std::shared_ptr pWebApplication; - CallbackQueue* background_queue; - std::vector > connections; + CallbackQueue *background_queue; + std::vector> connections; Socket(std::shared_ptr pWebApplication, - CallbackQueue* background_queue) - : pWebApplication(pWebApplication), background_queue(background_queue) - { - } + CallbackQueue *background_queue) + : pWebApplication(pWebApplication), background_queue(background_queue) {} void addConnection(std::shared_ptr request); void removeConnection(std::shared_ptr request); @@ -28,5 +26,4 @@ class Socket { virtual ~Socket(); }; - #endif // SOCKET_HPP diff --git a/src/staticpath.cpp b/src/staticpath.cpp index d6df9a08..a4a20872 100644 --- a/src/staticpath.cpp +++ b/src/staticpath.cpp @@ -1,21 +1,20 @@ #include "staticpath.h" -#include "thread.h" -#include "utils.h" #include "constants.h" #include "optional.h" +#include "thread.h" +#include "utils.h" // ============================================================================ // StaticPathOptions // ============================================================================ -StaticPathOptions::StaticPathOptions(const list& options) : - indexhtml(std::experimental::nullopt), - fallthrough(std::experimental::nullopt), - html_charset(std::experimental::nullopt), - headers(std::experimental::nullopt), - validation(std::experimental::nullopt), - exclude(std::experimental::nullopt) -{ +StaticPathOptions::StaticPathOptions(const list &options) + : indexhtml(std::experimental::nullopt), + fallthrough(std::experimental::nullopt), + html_charset(std::experimental::nullopt), + headers(std::experimental::nullopt), + validation(std::experimental::nullopt), + exclude(std::experimental::nullopt) { ASSERT_MAIN_THREAD() std::string obj_class = std::string(strings(SEXP(options.attr("class")))[0]); @@ -31,17 +30,23 @@ StaticPathOptions::StaticPathOptions(const list& options) : stop("staticPathOptions object must be normalized."); } - // There's probably a more concise way to do this assignment than by using temp. - temp = options["indexhtml"]; indexhtml = optional_as(temp); - temp = options["fallthrough"]; fallthrough = optional_as(temp); - temp = options["html_charset"]; html_charset = optional_as(temp); - temp = options["headers"]; headers = optional_as(temp); - temp = options["validation"]; validation = optional_as >(temp); - temp = options["exclude"]; exclude = optional_as(temp); + // There's probably a more concise way to do this assignment than by using + // temp. + temp = options["indexhtml"]; + indexhtml = optional_as(temp); + temp = options["fallthrough"]; + fallthrough = optional_as(temp); + temp = options["html_charset"]; + html_charset = optional_as(temp); + temp = options["headers"]; + headers = optional_as(temp); + temp = options["validation"]; + validation = optional_as>(temp); + temp = options["exclude"]; + exclude = optional_as(temp); } - -void StaticPathOptions::setOptions(const list& options) { +void StaticPathOptions::setOptions(const list &options) { ASSERT_MAIN_THREAD() SEXP temp; if (options.contains("indexhtml")) { @@ -71,7 +76,7 @@ void StaticPathOptions::setOptions(const list& options) { if (options.contains("validation")) { temp = options["validation"]; if (!Rf_isNull(temp)) { - validation = optional_as >(temp); + validation = optional_as>(temp); } } if (options.contains("exclude")) { @@ -84,43 +89,47 @@ void StaticPathOptions::setOptions(const list& options) { list StaticPathOptions::asRObject() const { ASSERT_MAIN_THREAD() - writable::list obj = { - "indexhtml"_nm = optional_wrap(indexhtml), - "fallthrough"_nm = optional_wrap(fallthrough), - "html_charset"_nm = optional_wrap(html_charset), - "headers"_nm = optional_wrap(headers), - "validation"_nm = optional_wrap(validation), - "exclude"_nm = optional_wrap(exclude) - }; + writable::list obj = {"indexhtml"_nm = optional_wrap(indexhtml), + "fallthrough"_nm = optional_wrap(fallthrough), + "html_charset"_nm = optional_wrap(html_charset), + "headers"_nm = optional_wrap(headers), + "validation"_nm = optional_wrap(validation), + "exclude"_nm = optional_wrap(exclude)}; obj.attr("class") = "staticPathOptions"; return obj; } // Merge StaticPathOptions object `a` with `b`. Values in `a` take precedence. -StaticPathOptions StaticPathOptions::merge( - const StaticPathOptions& a, - const StaticPathOptions& b) -{ +StaticPathOptions StaticPathOptions::merge(const StaticPathOptions &a, + const StaticPathOptions &b) { StaticPathOptions new_sp = a; - if (new_sp.indexhtml == std::experimental::nullopt) new_sp.indexhtml = b.indexhtml; - if (new_sp.fallthrough == std::experimental::nullopt) new_sp.fallthrough = b.fallthrough; - if (new_sp.html_charset == std::experimental::nullopt) new_sp.html_charset = b.html_charset; - if (new_sp.headers == std::experimental::nullopt) new_sp.headers = b.headers; - if (new_sp.validation == std::experimental::nullopt) new_sp.validation = b.validation; - if (new_sp.exclude == std::experimental::nullopt) new_sp.exclude = b.exclude; + if (new_sp.indexhtml == std::experimental::nullopt) + new_sp.indexhtml = b.indexhtml; + if (new_sp.fallthrough == std::experimental::nullopt) + new_sp.fallthrough = b.fallthrough; + if (new_sp.html_charset == std::experimental::nullopt) + new_sp.html_charset = b.html_charset; + if (new_sp.headers == std::experimental::nullopt) + new_sp.headers = b.headers; + if (new_sp.validation == std::experimental::nullopt) + new_sp.validation = b.validation; + if (new_sp.exclude == std::experimental::nullopt) + new_sp.exclude = b.exclude; return new_sp; } // Check if a set of request headers satisfies the condition specified by // `validation`. -bool StaticPathOptions::validateRequestHeaders(const RequestHeaders& headers) const { +bool StaticPathOptions::validateRequestHeaders( + const RequestHeaders &headers) const { if (validation == std::experimental::nullopt) { - throw std::runtime_error("Cannot validate request headers because validation pattern is not set."); + throw std::runtime_error("Cannot validate request headers because " + "validation pattern is not set."); } // Should have the format {"==", "aaa", "bbb"}, or {} if there's no // validation pattern. - const std::vector& pattern = *validation; + const std::vector &pattern = *validation; if (pattern.size() == 0) { return true; @@ -138,12 +147,11 @@ bool StaticPathOptions::validateRequestHeaders(const RequestHeaders& headers) co return false; } - // ============================================================================ // StaticPath // ============================================================================ -StaticPath::StaticPath(const list& sp) { +StaticPath::StaticPath(const list &sp) { ASSERT_MAIN_THREAD() path = as_cpp(sp["path"]); @@ -163,23 +171,18 @@ StaticPath::StaticPath(const list& sp) { list StaticPath::asRObject() const { ASSERT_MAIN_THREAD() - writable::list obj = { - "path"_nm = path, - "options"_nm = options.asRObject() - }; + writable::list obj = {"path"_nm = path, "options"_nm = options.asRObject()}; obj.attr("class") = "staticPath"; return obj; } - // ============================================================================ // StaticPathManager // ============================================================================ -StaticPathManager::StaticPathManager() { - uv_mutex_init(&mutex); -} +StaticPathManager::StaticPathManager() { uv_mutex_init(&mutex); } -StaticPathManager::StaticPathManager(const list& path_list, const list& options_list) { +StaticPathManager::StaticPathManager(const list &path_list, + const list &options_list) { ASSERT_MAIN_THREAD() uv_mutex_init(&mutex); @@ -203,15 +206,14 @@ StaticPathManager::StaticPathManager(const list& path_list, const list& options_ list sp(path_list[i]); StaticPath staticpath(sp); - this->path_map.insert( - std::pair(name, staticpath) - ); + this->path_map.insert(std::pair(name, staticpath)); } } - -// Returns a StaticPath object, which has its options merged with the overall ones. -std::experimental::optional StaticPathManager::get(const std::string& path) const { +// Returns a StaticPath object, which has its options merged with the overall +// ones. +std::experimental::optional +StaticPathManager::get(const std::string &path) const { guard guard(mutex); std::map::const_iterator it = path_map.find(path); if (it == path_map.end()) { @@ -225,7 +227,8 @@ std::experimental::optional StaticPathManager::get(const std::string return sp; } -std::experimental::optional StaticPathManager::get(const strings& path) const { +std::experimental::optional +StaticPathManager::get(const strings &path) const { ASSERT_MAIN_THREAD() if (path.size() != 1) { stop("Can only get a single StaticPath object."); @@ -233,8 +236,7 @@ std::experimental::optional StaticPathManager::get(const strings& pa return get(std::string(path[0])); } - -void StaticPathManager::set(const std::string& path, const StaticPath& sp) { +void StaticPathManager::set(const std::string &path, const StaticPath &sp) { guard guard(mutex); // If the key already exists, replace the value. std::map::iterator it = path_map.find(path); @@ -243,26 +245,23 @@ void StaticPathManager::set(const std::string& path, const StaticPath& sp) { } // Otherwise, insert the pair. - path_map.insert( - std::pair(path, sp) - ); + path_map.insert(std::pair(path, sp)); } -void StaticPathManager::set(const std::map& pmap) { +void StaticPathManager::set(const std::map &pmap) { std::map::const_iterator it; for (it = pmap.begin(); it != pmap.end(); it++) { set(it->first, it->second); } } -void StaticPathManager::set(const list& pmap) { +void StaticPathManager::set(const list &pmap) { ASSERT_MAIN_THREAD() std::map pmap2 = toMap(pmap); set(pmap2); } - -void StaticPathManager::remove(const std::string& path) { +void StaticPathManager::remove(const std::string &path) { guard guard(mutex); std::map::iterator it = path_map.find(path); if (it != path_map.end()) { @@ -270,21 +269,20 @@ void StaticPathManager::remove(const std::string& path) { } } -void StaticPathManager::remove(const std::vector& paths) { +void StaticPathManager::remove(const std::vector &paths) { std::vector::const_iterator it; for (it = paths.begin(); it != paths.end(); it++) { remove(*it); } } -void StaticPathManager::remove(const strings& paths) { +void StaticPathManager::remove(const strings &paths) { ASSERT_MAIN_THREAD() for (R_xlen_t i = 0; i < paths.size(); i++) { remove(std::string(paths[i])); } } - // Given a URL path, this returns a pair where the first element is a matching // StaticPath object, and the second element is the portion of the url_path that // comes after the match for the static path. @@ -303,11 +301,11 @@ void StaticPathManager::remove(const strings& paths) { // there is a static path "/foo"), then the returned pair consists of the // matching StaticPath object and an empty string "". // -// If no matching static path is found, then it returns std::experimental::nullopt. +// If no matching static path is found, then it returns +// std::experimental::nullopt. // -std::experimental::optional > StaticPathManager::matchStaticPath( - const std::string& url_path) const -{ +std::experimental::optional> +StaticPathManager::matchStaticPath(const std::string &url_path) const { if (url_path.empty()) { return std::experimental::nullopt; @@ -328,7 +326,7 @@ std::experimental::optional > StaticPathManag path = path.substr(0, path.length() - 1); } - pre_slash = path; + pre_slash = path; post_slash = ""; size_t found_idx = path.length() + 1; @@ -371,11 +369,11 @@ std::experimental::optional > StaticPathManag } } -const StaticPathOptions& StaticPathManager::getOptions() const { +const StaticPathOptions &StaticPathManager::getOptions() const { return options; } -void StaticPathManager::setOptions(const list& opts) { +void StaticPathManager::setOptions(const list &opts) { options.setOptions(opts); } diff --git a/src/staticpath.h b/src/staticpath.h index ffa9e494..b611f754 100644 --- a/src/staticpath.h +++ b/src/staticpath.h @@ -1,11 +1,11 @@ #ifndef STATICPATH_HPP #define STATICPATH_HPP -#include -#include +#include "constants.h" #include "optional.h" #include "thread.h" -#include "constants.h" +#include +#include #include "cpp11.hpp" @@ -17,39 +17,37 @@ class StaticPathOptions { std::experimental::optional fallthrough; std::experimental::optional html_charset; std::experimental::optional headers; - std::experimental::optional > validation; + std::experimental::optional> validation; std::experimental::optional exclude; - StaticPathOptions() : - indexhtml(std::experimental::nullopt), - fallthrough(std::experimental::nullopt), - html_charset(std::experimental::nullopt), - headers(std::experimental::nullopt), - validation(std::experimental::nullopt), - exclude(std::experimental::nullopt) - { }; - StaticPathOptions(const list& options); - - void setOptions(const list& options); + StaticPathOptions() + : indexhtml(std::experimental::nullopt), + fallthrough(std::experimental::nullopt), + html_charset(std::experimental::nullopt), + headers(std::experimental::nullopt), + validation(std::experimental::nullopt), + exclude(std::experimental::nullopt) {}; + StaticPathOptions(const list &options); + + void setOptions(const list &options); list asRObject() const; - static StaticPathOptions merge(const StaticPathOptions& a, const StaticPathOptions& b); + static StaticPathOptions merge(const StaticPathOptions &a, + const StaticPathOptions &b); - bool validateRequestHeaders(const RequestHeaders& headers) const; + bool validateRequestHeaders(const RequestHeaders &headers) const; }; - class StaticPath { public: std::string path; StaticPathOptions options; - StaticPath(const list& sp); + StaticPath(const list &sp); list asRObject() const; }; - class StaticPathManager { std::map path_map; // Mutex is used whenever path_map is accessed. @@ -59,25 +57,24 @@ class StaticPathManager { public: StaticPathManager(); - StaticPathManager(const list& path_list, const list& options_list); - - std::experimental::optional get(const std::string& path) const; - std::experimental::optional get(const strings& path) const; + StaticPathManager(const list &path_list, const list &options_list); - void set(const std::string& path, const StaticPath& sp); - void set(const std::map& pmap); - void set(const list& pmap); + std::experimental::optional get(const std::string &path) const; + std::experimental::optional get(const strings &path) const; - void remove(const std::string& path); - void remove(const std::vector& paths); - void remove(const strings& paths); + void set(const std::string &path, const StaticPath &sp); + void set(const std::map &pmap); + void set(const list &pmap); - std::experimental::optional > matchStaticPath( - const std::string& url_path) const; + void remove(const std::string &path); + void remove(const std::vector &paths); + void remove(const strings &paths); + std::experimental::optional> + matchStaticPath(const std::string &url_path) const; - const StaticPathOptions& getOptions() const; - void setOptions(const list& opts); + const StaticPathOptions &getOptions() const; + void setOptions(const list &opts); list pathsAsRObject() const; }; diff --git a/src/thread.cpp b/src/thread.cpp index 69d5243e..e63094fc 100644 --- a/src/thread.cpp +++ b/src/thread.cpp @@ -3,13 +3,9 @@ static uv_thread_t __main_thread__; static uv_thread_t __background_thread__; -void register_main_thread() { - __main_thread__ = uv_thread_self(); -} +void register_main_thread() { __main_thread__ = uv_thread_self(); } -void register_background_thread() { - __background_thread__ = uv_thread_self(); -} +void register_background_thread() { __background_thread__ = uv_thread_self(); } bool is_main_thread() { uv_thread_t cur_thread = uv_thread_self(); diff --git a/src/thread.h b/src/thread.h index 80ea8b1c..c05edc53 100644 --- a/src/thread.h +++ b/src/thread.h @@ -11,14 +11,13 @@ void register_background_thread(); bool is_main_thread(); bool is_background_thread(); - #ifdef DEBUG_THREAD #include // This must be called from the main thread so that thread assertions can be // tested later. -#define ASSERT_MAIN_THREAD() assert(is_main_thread()); -#define ASSERT_BACKGROUND_THREAD() assert(is_background_thread()); +#define ASSERT_MAIN_THREAD() assert(is_main_thread()); +#define ASSERT_BACKGROUND_THREAD() assert(is_background_thread()); #else #define ASSERT_MAIN_THREAD() @@ -26,7 +25,6 @@ bool is_background_thread(); #endif // DEBUG_THREAD - class guard { public: guard(uv_mutex_t &mutex) { @@ -34,22 +32,16 @@ class guard { uv_mutex_lock(_mutex); } - ~guard() { - uv_mutex_unlock(_mutex); - } + ~guard() { uv_mutex_unlock(_mutex); } private: - uv_mutex_t* _mutex; + uv_mutex_t *_mutex; }; - // Container class for holding thread-safe values. -template -class ThreadSafe { +template class ThreadSafe { public: - ThreadSafe(const T value) : _value(value) { - uv_mutex_init(&_mutex); - }; + ThreadSafe(const T value) : _value(value) { uv_mutex_init(&_mutex); }; void set(const T value) { guard guard(_mutex); @@ -66,7 +58,6 @@ class ThreadSafe { uv_mutex_t _mutex; }; - // Wrapper class for mutex/condition variable pair. class CondWait { public: @@ -80,27 +71,18 @@ class CondWait { uv_cond_destroy(&cond); } - void lock() { - uv_mutex_lock(&mutex); - } + void lock() { uv_mutex_lock(&mutex); } - void unlock() { - uv_mutex_unlock(&mutex); - } + void unlock() { uv_mutex_unlock(&mutex); } - void signal() { - uv_cond_signal(&cond); - }; + void signal() { uv_cond_signal(&cond); }; - void wait() { - uv_cond_wait(&cond, &mutex); - } + void wait() { uv_cond_wait(&cond, &mutex); } uv_mutex_t mutex; uv_cond_t cond; }; - // uv_barrier_t causes crashes on Windows (with libuv 1.15.0), so we have our // own implementation here. class Barrier { @@ -119,7 +101,7 @@ class Barrier { if (n == 0) { condwait.signal(); } - while(n > 0) { + while (n > 0) { condwait.wait(); } } diff --git a/src/timegm.cpp b/src/timegm.cpp index ea4093e6..b5812371 100644 --- a/src/timegm.cpp +++ b/src/timegm.cpp @@ -1,34 +1,30 @@ #include "timegm.h" -#include #include +#include // From https://stackoverflow.com/a/58037981/412655 -int days_since_1970(int y, int m, int d) -{ - y -= m <= 2; - int era = y / 400; - int yoe = y - era * 400; // [0, 399] - int doy = (153 * (m + (m > 2 ? -3 : 9)) + 2) / 5 + d - 1; // [0, 365] - int doe = yoe * 365 + yoe / 4 - yoe / 100 + doy; // [0, 146096] - return era * 146097 + doe - 719468; +int days_since_1970(int y, int m, int d) { + y -= m <= 2; + int era = y / 400; + int yoe = y - era * 400; // [0, 399] + int doy = (153 * (m + (m > 2 ? -3 : 9)) + 2) / 5 + d - 1; // [0, 365] + int doe = yoe * 365 + yoe / 4 - yoe / 100 + doy; // [0, 146096] + return era * 146097 + doe - 719468; } -time_t timegm2(struct tm const* t) -{ - int year = t->tm_year + 1900; - int month = t->tm_mon; // 0-11 - if (month > 11) - { - year += month / 12; - month %= 12; - } - else if (month < 0) - { - int years_diff = (11 - month) / 12; - year -= years_diff; - month += 12 * years_diff; - } - int days_since_epoch = days_since_1970(year, month + 1, t->tm_mday); +time_t timegm2(struct tm const *t) { + int year = t->tm_year + 1900; + int month = t->tm_mon; // 0-11 + if (month > 11) { + year += month / 12; + month %= 12; + } else if (month < 0) { + int years_diff = (11 - month) / 12; + year -= years_diff; + month += 12 * years_diff; + } + int days_since_epoch = days_since_1970(year, month + 1, t->tm_mday); - return 60 * (60 * (24L * days_since_epoch + t->tm_hour) + t->tm_min) + t->tm_sec; + return 60 * (60 * (24L * days_since_epoch + t->tm_hour) + t->tm_min) + + t->tm_sec; } diff --git a/src/tqueue.h b/src/tqueue.h index 6aff34f5..5f9b1bee 100644 --- a/src/tqueue.h +++ b/src/tqueue.h @@ -3,11 +3,10 @@ // A thread-safe queue, using threading constructs from libuv. -#include #include "thread.h" +#include -template -class tqueue { +template class tqueue { private: std::queue q; @@ -15,45 +14,38 @@ class tqueue { public: tqueue(); - void push(const T&); - T& front(); + void push(const T &); + T &front(); void pop(); int size(); uv_mutex_t mutex; }; - -template -tqueue::tqueue() { +template tqueue::tqueue() { uv_mutex_init_recursive(&mutex); q = std::queue(); } -template -void tqueue::push(const T& item) { +template void tqueue::push(const T &item) { guard guard(mutex); q.push(item); } -template -T& tqueue::front() { +template T &tqueue::front() { guard guard(mutex); - T& item = q.front(); + T &item = q.front(); return item; } -template -void tqueue::pop() { +template void tqueue::pop() { guard guard(mutex); q.pop(); } -template -int tqueue::size() { +template int tqueue::size() { guard guard(mutex); return q.size(); } - #endif // TQUEUE_HPP diff --git a/src/utils.h b/src/utils.h index 6196ef14..fc324910 100644 --- a/src/utils.h +++ b/src/utils.h @@ -1,45 +1,46 @@ #ifndef UTILS_H #define UTILS_H +#include "optional.h" +#include "thread.h" +#include "timegm.h" #include -#include -#include +#include +#include #include #include #include +#include #include -#include "optional.h" -#include "thread.h" -#include "timegm.h" #include "cpp11.hpp" using namespace cpp11; // A callback for deleting objects on the main thread using later(). This is -// needed when the object is an Rcpp object or contains one, because deleting +// needed when the object is a cpp11 object or contains one, because deleting // such objects invoke R's memory management functions. -template -void deleter_main(void* obj) { +template void deleter_main(void *obj) { ASSERT_MAIN_THREAD() // later() passes a void* to the callback, so we have to cast it. - T* typed_obj = reinterpret_cast(obj); + T *typed_obj = reinterpret_cast(obj); try { delete typed_obj; - } catch (...) {} + } catch (...) { + } } // Does the same as deleter_main, but checks that it's running on the // background thread (when thread debugging is enabled). -template -void deleter_background(void* obj) { +template void deleter_background(void *obj) { ASSERT_BACKGROUND_THREAD() - T* typed_obj = reinterpret_cast(obj); + T *typed_obj = reinterpret_cast(obj); try { delete typed_obj; - } catch (...) {} + } catch (...) { + } } // It's not safe to call REprintf from the background thread but we need some @@ -61,55 +62,45 @@ inline void err_printf(const char *fmt, ...) { ssize_t res = write(STDERR_FILENO, buf, n); // This is here simply to avoid a warning about "ignoring return value" of the // write(), or "variable 'res' set but not used" on some compilers. - if (res) res += 0; + if (res) + res += 0; return; } - // ============================================================================ // Logging // ============================================================================ -enum LogLevel { - LOG_OFF, - LOG_ERROR, - LOG_WARN, - LOG_INFO, - LOG_DEBUG -}; +enum LogLevel { LOG_OFF, LOG_ERROR, LOG_WARN, LOG_INFO, LOG_DEBUG }; -void debug_log(const std::string& msg, LogLevel level); +void debug_log(const std::string &msg, LogLevel level); // ============================================================================ - // Indexing into an empty vector causes assertion failures on some platforms -template -T* safe_vec_addr(std::vector& vec) { +template T *safe_vec_addr(std::vector &vec) { return vec.size() ? &vec[0] : NULL; } // Indexing into an empty vector causes assertion failures on some platforms -inline const char* safe_str_addr(const std::string& str) { +inline const char *safe_str_addr(const std::string &str) { return str.size() ? &str[0] : NULL; } -inline std::string to_lower(const std::string& str) { +inline std::string to_lower(const std::string &str) { std::string lowered = str; std::transform(lowered.begin(), lowered.end(), lowered.begin(), tolower); return lowered; } -template -std::string toString(T x) { +template std::string toString(T x) { std::stringstream ss; ss << x; return ss.str(); } // This is used for converting a named R vector (T2) to a std::map. -template -std::map toMap(T2 x) { +template std::map toMap(T2 x) { ASSERT_MAIN_THREAD() std::map strmap; @@ -120,19 +111,19 @@ std::map toMap(T2 x) { strings names = x.names(); if (Rf_isNull(SEXP(names))) { - stop("Error converting R object to map: vector does not have names."); + stop("Error converting R object to map: vector does not have " + "names."); } for (R_xlen_t i = 0; i < x.size(); i++) { - std::string name = std::string(names[i]); - T1 value = as_cpp(SEXP(x[i])); + std::string name = std::string(names[i]); + T1 value = as_cpp(SEXP(x[i])); if (name == "") { - stop("Error converting R object to map: element has empty name."); + stop("Error converting R object to map: element has empty " + "name."); } - strmap.insert( - std::pair(name, value) - ); + strmap.insert(std::pair(name, value)); } return strmap; @@ -141,8 +132,7 @@ std::map toMap(T2 x) { // A wrapper for as_cpp. If the R value is NULL, this returns nullopt; // otherwise it returns the usual value that as_cpp returns, wrapped in // std::experimental::optional. -template -std::experimental::optional optional_as(SEXP value) { +template std::experimental::optional optional_as(SEXP value) { if (Rf_isNull(value)) { return std::experimental::nullopt; } @@ -150,19 +140,18 @@ std::experimental::optional optional_as(SEXP value) { } // If the C++ value is missing, this returns R NULL; otherwise converts to SEXP. -template -SEXP optional_wrap(std::experimental::optional value) { +template SEXP optional_wrap(std::experimental::optional value) { if (!value.has_value()) { return R_NilValue; } return as_sexp(*value); } - // as_cpp and as_sexp for ResponseHeaders. Since the ResponseHeaders typedef is // in constants.h and this file doesn't include constants.h, we define them // using the actual vector type instead of the ResponseHeaders typedef. -inline std::vector> as_response_headers(SEXP x) { +inline std::vector> +as_response_headers(SEXP x) { ASSERT_MAIN_THREAD() strings hdrs(x); strings nms = hdrs.names(); @@ -182,13 +171,14 @@ inline std::vector> as_response_headers(SEXP return result; } -inline SEXP response_headers_to_sexp(const std::vector>& x) { +inline SEXP response_headers_to_sexp( + const std::vector> &x) { ASSERT_MAIN_THREAD() R_xlen_t n = static_cast(x.size()); writable::strings values(n); writable::strings nms(n); for (R_xlen_t i = 0; i < n; i++) { - nms[i] = x[i].first; + nms[i] = x[i].first; values[i] = x[i].second; } values.attr("names") = nms; @@ -197,7 +187,8 @@ inline SEXP response_headers_to_sexp(const std::vector -inline std::experimental::optional>> +inline std::experimental::optional< + std::vector>> optional_as>>(SEXP value) { if (Rf_isNull(value)) { return std::experimental::nullopt; @@ -206,84 +197,119 @@ optional_as>>(SEXP value) { } template <> -inline SEXP optional_wrap(std::experimental::optional>> value) { +inline SEXP optional_wrap(std::experimental::optional< + std::vector>> + value) { if (!value.has_value()) { return R_NilValue; } return response_headers_to_sexp(*value); } - // Return a date string in the format required for the HTTP Date header. For // example: "Wed, 21 Oct 2015 07:28:00 GMT" -inline std::string http_date_string(const time_t& t) { +inline std::string http_date_string(const time_t &t) { struct tm timeptr; - #ifdef _WIN32 +#ifdef _WIN32 gmtime_s(&timeptr, &t); - #else +#else gmtime_r(&t, &timeptr); - #endif +#endif std::string day_name; - switch(timeptr.tm_wday) { - case 0: day_name = "Sun"; break; - case 1: day_name = "Mon"; break; - case 2: day_name = "Tue"; break; - case 3: day_name = "Wed"; break; - case 4: day_name = "Thu"; break; - case 5: day_name = "Fri"; break; - case 6: day_name = "Sat"; break; - default: return ""; + switch (timeptr.tm_wday) { + case 0: + day_name = "Sun"; + break; + case 1: + day_name = "Mon"; + break; + case 2: + day_name = "Tue"; + break; + case 3: + day_name = "Wed"; + break; + case 4: + day_name = "Thu"; + break; + case 5: + day_name = "Fri"; + break; + case 6: + day_name = "Sat"; + break; + default: + return ""; } std::string month_name; - switch(timeptr.tm_mon) { - case 0: month_name = "Jan"; break; - case 1: month_name = "Feb"; break; - case 2: month_name = "Mar"; break; - case 3: month_name = "Apr"; break; - case 4: month_name = "May"; break; - case 5: month_name = "Jun"; break; - case 6: month_name = "Jul"; break; - case 7: month_name = "Aug"; break; - case 8: month_name = "Sep"; break; - case 9: month_name = "Oct"; break; - case 10: month_name = "Nov"; break; - case 11: month_name = "Dec"; break; - default: return ""; + switch (timeptr.tm_mon) { + case 0: + month_name = "Jan"; + break; + case 1: + month_name = "Feb"; + break; + case 2: + month_name = "Mar"; + break; + case 3: + month_name = "Apr"; + break; + case 4: + month_name = "May"; + break; + case 5: + month_name = "Jun"; + break; + case 6: + month_name = "Jul"; + break; + case 7: + month_name = "Aug"; + break; + case 8: + month_name = "Sep"; + break; + case 9: + month_name = "Oct"; + break; + case 10: + month_name = "Nov"; + break; + case 11: + month_name = "Dec"; + break; + default: + return ""; } const int maxlen = 50; char res[maxlen]; - snprintf(res, maxlen, "%s, %02d %s %04d %02d:%02d:%02d GMT", - day_name.c_str(), - timeptr.tm_mday, - month_name.c_str(), - timeptr.tm_year + 1900, - timeptr.tm_hour, - timeptr.tm_min, - timeptr.tm_sec - ); + snprintf(res, maxlen, "%s, %02d %s %04d %02d:%02d:%02d GMT", day_name.c_str(), + timeptr.tm_mday, month_name.c_str(), timeptr.tm_year + 1900, + timeptr.tm_hour, timeptr.tm_min, timeptr.tm_sec); return std::string(res); } // Given a date string of format "Wed, 21 Oct 2015 07:28:00 GMT", return a // time_t representing that time. If the date is malformed, then return 0. -time_t parse_http_date_string(const std::string& date); +time_t parse_http_date_string(const std::string &date); // Compares two strings in constant time. Returns true if they are the same; // false otherwise. -inline bool constant_time_compare(const std::string& a, const std::string& b) { +inline bool constant_time_compare(const std::string &a, const std::string &b) { if (a.length() != b.length()) return false; - volatile const char* ac = a.c_str(); - volatile const char* bc = b.c_str(); + volatile const char *ac = a.c_str(); + volatile const char *bc = b.c_str(); volatile char result = 0; int len = a.length(); - for (int i=0; i - -void freeAfterClose(uv_handle_t* handle) { - free(handle); -} +void freeAfterClose(uv_handle_t *handle) { free(handle); } class WriteOp { private: - ExtendedWrite* pParent; + ExtendedWrite *pParent; // Bytes to write before writing the buffer std::vector prefix; @@ -23,9 +20,10 @@ class WriteOp { public: uv_write_t handle; - WriteOp(ExtendedWrite* parent, std::string prefix, uv_buf_t data, std::string suffix) - : pParent(parent), prefix(prefix.begin(), prefix.end()), buffer(data), - suffix(suffix.begin(), suffix.end()) { + WriteOp(ExtendedWrite *parent, std::string prefix, uv_buf_t data, + std::string suffix) + : pParent(parent), prefix(prefix.begin(), prefix.end()), buffer(data), + suffix(suffix.begin(), suffix.end()) { memset(&handle, 0, sizeof(uv_write_t)); handle.data = this; } @@ -60,9 +58,7 @@ class WriteOp { } }; -uint64_t InMemoryDataSource::size() const { - return _buffer.size(); -} +uint64_t InMemoryDataSource::size() const { return _buffer.size(); } uv_buf_t InMemoryDataSource::getData(size_t bytesDesired) { ASSERT_BACKGROUND_THREAD() size_t bytes = _buffer.size() - _pos; @@ -70,29 +66,28 @@ uv_buf_t InMemoryDataSource::getData(size_t bytesDesired) { bytes = bytesDesired; uv_buf_t mem; - mem.base = bytes > 0 ? reinterpret_cast(&_buffer[_pos]) : 0; + mem.base = bytes > 0 ? reinterpret_cast(&_buffer[_pos]) : 0; mem.len = bytes; _pos += bytes; return mem; } -void InMemoryDataSource::freeData(uv_buf_t buffer) { -} +void InMemoryDataSource::freeData(uv_buf_t buffer) {} void InMemoryDataSource::close() { ASSERT_BACKGROUND_THREAD() _buffer.clear(); } -void InMemoryDataSource::add(const std::vector& moreData) { +void InMemoryDataSource::add(const std::vector &moreData) { ASSERT_BACKGROUND_THREAD() if (_buffer.capacity() < _buffer.size() + moreData.size()) _buffer.reserve(_buffer.size() + moreData.size()); _buffer.insert(_buffer.end(), moreData.begin(), moreData.end()); } -static void writecb(uv_write_t* handle, int status) { +static void writecb(uv_write_t *handle, int status) { ASSERT_BACKGROUND_THREAD() - WriteOp* pWriteOp = (WriteOp*)handle->data; + WriteOp *pWriteOp = (WriteOp *)handle->data; pWriteOp->end(); } @@ -117,7 +112,7 @@ void ExtendedWrite::next() { uv_buf_t buf; try { buf = _pDataSource->getData(65536); - } catch (std::exception& e) { + } catch (std::exception &e) { _errored = true; if (_activeWrites == 0) { _pDataSource->close(); @@ -167,7 +162,7 @@ void ExtendedWrite::next() { return; } - WriteOp* pWriteOp = new WriteOp(this, prefix, buf, suffix); + WriteOp *pWriteOp = new WriteOp(this, prefix, buf, suffix); _activeWrites++; auto op_bufs = pWriteOp->bufs(); uv_write(&pWriteOp->handle, _pHandle, &op_bufs[0], op_bufs.size(), &writecb); diff --git a/src/websockets-base.cpp b/src/websockets-base.cpp index 29b92288..9563b8b9 100644 --- a/src/websockets-base.cpp +++ b/src/websockets-base.cpp @@ -1,13 +1,13 @@ -#include #include "websockets-base.h" +#include bool isBigEndian() { uint32_t i = 1; - return *((uint8_t*)&i) == 0; + return *((uint8_t *)&i) == 0; } // Swaps the byte range [pStart, pEnd) -void swapByteOrder(unsigned char* pStart, unsigned char* pEnd) { +void swapByteOrder(unsigned char *pStart, unsigned char *pEnd) { // Easier for callers to use exclusive end but easier to implement // using inclusive end pEnd--; @@ -24,31 +24,29 @@ void swapByteOrder(unsigned char* pStart, unsigned char* pEnd) { } } -void WebSocketProto::createFrameHeader( - Opcode opcode, bool mask, size_t payloadSize, int32_t maskingKey, - char pData[MAX_HEADER_BYTES], size_t* pLen) const { +void WebSocketProto::createFrameHeader(Opcode opcode, bool mask, + size_t payloadSize, int32_t maskingKey, + char pData[MAX_HEADER_BYTES], + size_t *pLen) const { - unsigned char* pBuf = (unsigned char*)pData; - unsigned char* pMaskingKey = pBuf + 2; + unsigned char *pBuf = (unsigned char *)pData; + unsigned char *pMaskingKey = pBuf + 2; // Need to copy from a 64-bit chunk of memory, but size_t may be smaller. uint64_t payloadSize_64 = payloadSize; - pBuf[0] = - toFin(true) << 7 | // FIN; always true - encodeOpcode(opcode); + pBuf[0] = toFin(true) << 7 | // FIN; always true + encodeOpcode(opcode); pBuf[1] = mask ? 1 << 7 : 0; if (payloadSize_64 <= 125) { pBuf[1] |= payloadSize_64; pMaskingKey = pBuf + 2; - } - else if (payloadSize_64 <= 65535) {// 2^16-1 + } else if (payloadSize_64 <= 65535) { // 2^16-1 pBuf[1] |= 126; memcpy(pBuf + 2, &payloadSize_64, sizeof(uint16_t)); if (!isBigEndian()) swapByteOrder(pBuf + 2, pBuf + 4); pMaskingKey = pBuf + 4; - } - else { + } else { pBuf[1] |= 127; memcpy(pBuf + 2, &payloadSize_64, sizeof(uint64_t)); if (!isBigEndian()) diff --git a/src/websockets-base.h b/src/websockets-base.h index 8781f5f3..b993caf9 100644 --- a/src/websockets-base.h +++ b/src/websockets-base.h @@ -12,21 +12,20 @@ class WebSocketProto { virtual ~WebSocketProto() {} // Return true if the request uses this protocol version and is valid - virtual bool canHandle(const RequestHeaders& requestHeaders, - const char* pData, size_t len) const = 0; + virtual bool canHandle(const RequestHeaders &requestHeaders, + const char *pData, size_t len) const = 0; // Populate response headers with the appropriate values. This call // must not fail, but it will not be called unless canHandle returned // true previously, so any validation should be done in canHandle. - virtual void handshake(const std::string& url, - const RequestHeaders& requestHeaders, - char** ppData, size_t* pLen, - ResponseHeaders* responseHeaders, - std::vector* pResponse) const = 0; + virtual void handshake(const std::string &url, + const RequestHeaders &requestHeaders, char **ppData, + size_t *pLen, ResponseHeaders *responseHeaders, + std::vector *pResponse) const = 0; void createFrameHeader(Opcode opcode, bool mask, size_t payloadSize, - int32_t maskingKey, - char pData[MAX_HEADER_BYTES], size_t* pLen) const; + int32_t maskingKey, char pData[MAX_HEADER_BYTES], + size_t *pLen) const; virtual bool isFin(uint8_t firstBit) const = 0; virtual uint8_t toFin(bool isFin) const = 0; @@ -36,6 +35,6 @@ class WebSocketProto { bool isBigEndian(); // Swaps the byte range [pStart, pEnd) -void swapByteOrder(unsigned char* pStart, unsigned char* pEnd); +void swapByteOrder(unsigned char *pStart, unsigned char *pEnd); #endif // WEBSOCKETS_BASE_H diff --git a/src/websockets-hixie76.cpp b/src/websockets-hixie76.cpp index 5d0b9d83..0e3f19aa 100644 --- a/src/websockets-hixie76.cpp +++ b/src/websockets-hixie76.cpp @@ -1,20 +1,19 @@ #include "websockets-hixie76.h" #include -void WSHixie76Parser::handshake(const std::string& url, - const RequestHeaders& requestHeaders, - char** ppData, size_t* pLen, - ResponseHeaders* responseHeaders, - std::vector* pResponse) const { +void WSHixie76Parser::handshake(const std::string &url, + const RequestHeaders &requestHeaders, + char **ppData, size_t *pLen, + ResponseHeaders *responseHeaders, + std::vector *pResponse) const { _hybi03.handshake(url, requestHeaders, ppData, pLen, responseHeaders, pResponse); } void WSHixie76Parser::createFrameHeaderFooter( - Opcode opcode, bool mask, size_t payloadSize, - int32_t maskingKey, - char pHeaderData[MAX_HEADER_BYTES], size_t* pHeaderLen, - char pFooterData[MAX_FOOTER_BYTES], size_t* pFooterLen) const { + Opcode opcode, bool mask, size_t payloadSize, int32_t maskingKey, + char pHeaderData[MAX_HEADER_BYTES], size_t *pHeaderLen, + char pFooterData[MAX_FOOTER_BYTES], size_t *pFooterLen) const { pHeaderData[0] = 0; *pHeaderLen = 1; @@ -23,10 +22,10 @@ void WSHixie76Parser::createFrameHeaderFooter( } #include -void WSHixie76Parser::read(const char* data, size_t len) { +void WSHixie76Parser::read(const char *data, size_t len) { if (len == 0) return; - for (const char* pos = data; pos < data + len; pos++) { + for (const char *pos = data; pos < data + len; pos++) { uint8_t b = *pos; if (_state == H76_START) { @@ -51,7 +50,7 @@ void WSHixie76Parser::read(const char* data, size_t len) { } else if (_state == H76_IN_TEXT_FRAME) { - const char* endMarker = pos; + const char *endMarker = pos; while (endMarker < (data + len) && *endMarker != (char)0xFF) { endMarker++; } diff --git a/src/websockets-hixie76.h b/src/websockets-hixie76.h index c8cbb0e9..b57a1503 100644 --- a/src/websockets-hixie76.h +++ b/src/websockets-hixie76.h @@ -1,8 +1,8 @@ #ifndef WEBSOCKETS_HIXIE76_H #define WEBSOCKETS_HIXIE76_H -#include "websockets.h" #include "websockets-hybi03.h" +#include "websockets.h" enum Hixie76State { // Starting state, also what we return to after finishing a frame @@ -23,31 +23,28 @@ enum Hixie76State { class WSHixie76Parser : public WSParser { private: - WSParserCallbacks* _pCallbacks; + WSParserCallbacks *_pCallbacks; WebSocketProto_HyBi03 _hybi03; int _state; size_t _bytesLeft; public: - WSHixie76Parser(WSParserCallbacks* pCallbacks) : - _pCallbacks(pCallbacks), _state(H76_START) { - } + WSHixie76Parser(WSParserCallbacks *pCallbacks) + : _pCallbacks(pCallbacks), _state(H76_START) {} ~WSHixie76Parser() {} - void handshake(const std::string& url, - const RequestHeaders& requestHeaders, - char** ppData, size_t* pLen, - ResponseHeaders* responseHeaders, - std::vector* pResponse) const; + void handshake(const std::string &url, const RequestHeaders &requestHeaders, + char **ppData, size_t *pLen, ResponseHeaders *responseHeaders, + std::vector *pResponse) const; - void createFrameHeaderFooter( - Opcode opcode, bool mask, size_t payloadSize, - int32_t maskingKey, - char pHeaderData[MAX_HEADER_BYTES], size_t* pHeaderLen, - char pFooterData[MAX_FOOTER_BYTES], size_t* pFooterLen - ) const; + void createFrameHeaderFooter(Opcode opcode, bool mask, size_t payloadSize, + int32_t maskingKey, + char pHeaderData[MAX_HEADER_BYTES], + size_t *pHeaderLen, + char pFooterData[MAX_FOOTER_BYTES], + size_t *pFooterLen) const; - void read(const char* data, size_t len); + void read(const char *data, size_t len); }; #endif // WEBSOCKETS_HIXIE76_H diff --git a/src/websockets-hybi03.cpp b/src/websockets-hybi03.cpp index c579e25c..a09bd3e3 100644 --- a/src/websockets-hybi03.cpp +++ b/src/websockets-hybi03.cpp @@ -9,15 +9,14 @@ extern "C" { #include "utils.h" -bool calculateKeyValue(const std::string& key, uint32_t* pResult = NULL) { +bool calculateKeyValue(const std::string &key, uint32_t *pResult = NULL) { std::string trimmed = trim(key); uint32_t value = 0; uint32_t spaces = 0; - for (std::string::const_iterator it = trimmed.begin(); - it != trimmed.end(); + for (std::string::const_iterator it = trimmed.begin(); it != trimmed.end(); it++) { if (*it == ' ') - spaces ++; + spaces++; else if (*it >= '0' && *it <= '9') { value *= 10; value += *it - '0'; @@ -30,8 +29,8 @@ bool calculateKeyValue(const std::string& key, uint32_t* pResult = NULL) { return true; } -bool WebSocketProto_HyBi03::canHandle(const RequestHeaders& requestHeaders, - const char* pData, size_t len) const { +bool WebSocketProto_HyBi03::canHandle(const RequestHeaders &requestHeaders, + const char *pData, size_t len) const { if (len != 8) return false; @@ -50,11 +49,11 @@ bool WebSocketProto_HyBi03::canHandle(const RequestHeaders& requestHeaders, strcasecmp(requestHeaders.at("upgrade").c_str(), "websocket") == 0; } -void WebSocketProto_HyBi03::handshake(const std::string& url, - const RequestHeaders& requestHeaders, - char** ppData, size_t* pLen, - ResponseHeaders* pResponseHeaders, - std::vector* pResponse) const { +void WebSocketProto_HyBi03::handshake(const std::string &url, + const RequestHeaders &requestHeaders, + char **ppData, size_t *pLen, + ResponseHeaders *pResponseHeaders, + std::vector *pResponse) const { assert(*pLen >= 8); @@ -63,8 +62,8 @@ void WebSocketProto_HyBi03::handshake(const std::string& url, calculateKeyValue(requestHeaders.at("sec-websocket-key2"), &key2); uint8_t handshake[16]; - *reinterpret_cast(handshake) = key1; - *reinterpret_cast(handshake + 4) = key2; + *reinterpret_cast(handshake) = key1; + *reinterpret_cast(handshake + 4) = key2; if (!isBigEndian()) { swapByteOrder(handshake, handshake + 4); swapByteOrder(handshake + 4, handshake + 8); @@ -94,38 +93,51 @@ void WebSocketProto_HyBi03::handshake(const std::string& url, pResponseHeaders->push_back(std::make_pair("Connection", "Upgrade")); pResponseHeaders->push_back(std::make_pair("Upgrade", "WebSocket")); pResponseHeaders->push_back(std::make_pair("Sec-WebSocket-Origin", origin)); - pResponseHeaders->push_back(std::make_pair("Sec-WebSocket-Location", location)); + pResponseHeaders->push_back( + std::make_pair("Sec-WebSocket-Location", location)); } bool WebSocketProto_HyBi03::isFin(uint8_t firstBit) const { return firstBit == 0; } -uint8_t WebSocketProto_HyBi03::toFin(bool isFin) const { - return isFin ? 0 : 1; -} +uint8_t WebSocketProto_HyBi03::toFin(bool isFin) const { return isFin ? 0 : 1; } Opcode WebSocketProto_HyBi03::decodeOpcode(uint8_t rawCode) const { switch (rawCode) { - case 0: return Continuation; - case 1: return Close; - case 2: return Ping; - case 3: return Pong; - case 4: return Text; - case 5: return Binary; - default: return Reserved; + case 0: + return Continuation; + case 1: + return Close; + case 2: + return Ping; + case 3: + return Pong; + case 4: + return Text; + case 5: + return Binary; + default: + return Reserved; } } uint8_t WebSocketProto_HyBi03::encodeOpcode(Opcode opcode) const { switch (opcode) { - case Continuation: return 0; - case Close: return 1; - case Ping: return 2; - case Pong: return 3; - case Text: return 4; - case Binary: return 5; + case Continuation: + return 0; + case Close: + return 1; + case Ping: + return 2; + case Pong: + return 3; + case Text: + return 4; + case Binary: + return 5; case Reserved: - default: return 6; // not expected + default: + return 6; // not expected } } diff --git a/src/websockets-hybi03.h b/src/websockets-hybi03.h index 3cc301ae..11d456f7 100644 --- a/src/websockets-hybi03.h +++ b/src/websockets-hybi03.h @@ -9,18 +9,16 @@ class WebSocketProto_HyBi03 : public WebSocketProto { WebSocketProto_HyBi03() {} virtual ~WebSocketProto_HyBi03() {} - bool canHandle(const RequestHeaders& requestHeaders, - const char* pData, size_t len) const; + bool canHandle(const RequestHeaders &requestHeaders, const char *pData, + size_t len) const; - void handshake(const std::string& url, - const RequestHeaders& requestHeaders, - char** ppData, size_t* pLen, - ResponseHeaders* pResponseHeaders, - std::vector* pResponse) const; + void handshake(const std::string &url, const RequestHeaders &requestHeaders, + char **ppData, size_t *pLen, ResponseHeaders *pResponseHeaders, + std::vector *pResponse) const; void createFrameHeader(Opcode opcode, bool mask, size_t payloadSize, - int32_t maskingKey, - char pData[MAX_HEADER_BYTES], size_t* pLen) const; + int32_t maskingKey, char pData[MAX_HEADER_BYTES], + size_t *pLen) const; bool isFin(uint8_t firstBit) const; uint8_t toFin(bool isFin) const; diff --git a/src/websockets-ietf.cpp b/src/websockets-ietf.cpp index f97101c3..dcbef677 100644 --- a/src/websockets-ietf.cpp +++ b/src/websockets-ietf.cpp @@ -2,29 +2,29 @@ #include "utils.h" -#include "sha1/sha1.h" #include "base64/base64.hpp" +#include "sha1/sha1.h" -bool WebSocketProto_IETF::canHandle(const RequestHeaders& requestHeaders, - const char* pData, size_t len) const { +bool WebSocketProto_IETF::canHandle(const RequestHeaders &requestHeaders, + const char *pData, size_t len) const { return requestHeaders.find("upgrade") != requestHeaders.end() && strcasecmp(requestHeaders.at("upgrade").c_str(), "websocket") == 0 && requestHeaders.find("sec-websocket-key") != requestHeaders.end(); } -void WebSocketProto_IETF::handshake(const std::string& url, - const RequestHeaders& requestHeaders, - char** ppData, size_t* pLen, - ResponseHeaders* pResponseHeaders, - std::vector* pResponse) const { +void WebSocketProto_IETF::handshake(const std::string &url, + const RequestHeaders &requestHeaders, + char **ppData, size_t *pLen, + ResponseHeaders *pResponseHeaders, + std::vector *pResponse) const { std::string key = requestHeaders.at("sec-websocket-key"); std::string clear = trim(key) + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; SHA1_CTX ctx; reid_SHA1_Init(&ctx); - reid_SHA1_Update(&ctx, (const uint8_t*)safe_str_addr(clear), clear.size()); + reid_SHA1_Update(&ctx, (const uint8_t *)safe_str_addr(clear), clear.size()); std::vector digest(SHA1_DIGEST_SIZE); reid_SHA1_Final(&ctx, safe_vec_addr(digest)); @@ -32,43 +32,57 @@ void WebSocketProto_IETF::handshake(const std::string& url, std::string response = b64encode(digest.begin(), digest.end()); pResponseHeaders->push_back( - std::pair("Connection", "Upgrade")); + std::pair("Connection", "Upgrade")); pResponseHeaders->push_back( - std::pair("Upgrade", "websocket")); + std::pair("Upgrade", "websocket")); pResponseHeaders->push_back( - std::pair("Sec-WebSocket-Accept", response)); + std::pair("Sec-WebSocket-Accept", response)); } bool WebSocketProto_IETF::isFin(uint8_t firstBit) const { return firstBit != 0; } -uint8_t WebSocketProto_IETF::toFin(bool isFin) const { - return isFin ? 1 : 0; -} +uint8_t WebSocketProto_IETF::toFin(bool isFin) const { return isFin ? 1 : 0; } Opcode WebSocketProto_IETF::decodeOpcode(uint8_t rawCode) const { switch (rawCode) { - case 0: return Continuation; - case 1: return Text; - case 2: return Binary; - case 8: return Close; - case 9: return Ping; - case 0xA: return Pong; - case 0xF: return Reserved; - default: return Reserved; + case 0: + return Continuation; + case 1: + return Text; + case 2: + return Binary; + case 8: + return Close; + case 9: + return Ping; + case 0xA: + return Pong; + case 0xF: + return Reserved; + default: + return Reserved; } } uint8_t WebSocketProto_IETF::encodeOpcode(Opcode opcode) const { switch (opcode) { - case Continuation: return 0; - case Text: return 1; - case Binary: return 2; - case Close: return 8; - case Ping: return 9; - case Pong: return 0xA; - case Reserved: return 0xF; - default: return 0xF; // not expected + case Continuation: + return 0; + case Text: + return 1; + case Binary: + return 2; + case Close: + return 8; + case Ping: + return 9; + case Pong: + return 0xA; + case Reserved: + return 0xF; + default: + return 0xF; // not expected } } diff --git a/src/websockets-ietf.h b/src/websockets-ietf.h index dd166c7a..407b48fd 100644 --- a/src/websockets-ietf.h +++ b/src/websockets-ietf.h @@ -9,14 +9,12 @@ class WebSocketProto_IETF : public WebSocketProto { WebSocketProto_IETF() {} virtual ~WebSocketProto_IETF() {} - bool canHandle(const RequestHeaders& requestHeaders, - const char* pData, size_t len) const; + bool canHandle(const RequestHeaders &requestHeaders, const char *pData, + size_t len) const; - void handshake(const std::string& url, - const RequestHeaders& requestHeaders, - char** ppData, size_t* pLen, - ResponseHeaders* responseHeaders, - std::vector* pResponse) const; + void handshake(const std::string &url, const RequestHeaders &requestHeaders, + char **ppData, size_t *pLen, ResponseHeaders *responseHeaders, + std::vector *pResponse) const; bool isFin(uint8_t firstBit) const; uint8_t toFin(bool isFin) const; diff --git a/src/websockets.cpp b/src/websockets.cpp index f5ece8f2..e4f31be9 100644 --- a/src/websockets.cpp +++ b/src/websockets.cpp @@ -1,26 +1,23 @@ #include "websockets.h" -#include "utils.h" #include "thread.h" +#include "utils.h" #include #include -#include #include +#include #include -#include "sha1/sha1.h" #include "base64/base64.hpp" +#include "sha1/sha1.h" -#include "websockets-ietf.h" -#include "websockets-hybi03.h" #include "websockets-hixie76.h" +#include "websockets-hybi03.h" +#include "websockets-ietf.h" -template -T min(T a, T b) { - return (a > b) ? b : a; -} +template T min(T a, T b) { return (a > b) ? b : a; } -std::string dumpbin(const char* data, size_t len) { +std::string dumpbin(const char *data, size_t len) { std::string output; for (size_t i = 0; i < len; i++) { char byte = data[i]; @@ -56,25 +53,21 @@ WSFrameHeaderInfo WSHyBiFrameHeader::info() const { return inf; } -bool WSHyBiFrameHeader::fin() const { - return _pProto->isFin(read(0, 1)); -} +bool WSHyBiFrameHeader::fin() const { return _pProto->isFin(read(0, 1)); } Opcode WSHyBiFrameHeader::opcode() const { uint8_t oc = read(4, 4); return _pProto->decodeOpcode(oc); } -bool WSHyBiFrameHeader::masked() const { - return read(8, 1) != 0; -} +bool WSHyBiFrameHeader::masked() const { return read(8, 1) != 0; } uint64_t WSHyBiFrameHeader::payloadLength() const { uint8_t pl = read(9, 7); switch (pl) { - case 126: - return read64(16, 16); - case 127: - return read64(16, 64); - default: - return pl; + case 126: + return read64(16, 16); + case 127: + return read64(16, 64); + default: + return pl; } } void WSHyBiFrameHeader::maskingKey(uint8_t key[4]) const { @@ -124,39 +117,37 @@ uint64_t WSHyBiFrameHeader::read64(size_t bitOffset, size_t bitWidth) const { uint8_t WSHyBiFrameHeader::payloadLengthLength() const { uint8_t pll = read(9, 7); switch (pll) { - case 126: - return 7 + 16; - case 127: - return 7 + 64; - default: - return 7; + case 126: + return 7 + 16; + case 127: + return 7 + 64; + default: + return 7; } } uint8_t WSHyBiFrameHeader::maskingKeyLength() const { return masked() ? 32 : 0; } -void WSHyBiParser::handshake(const std::string& url, - const RequestHeaders& requestHeaders, - char** ppData, size_t* pLen, - ResponseHeaders* pResponseHeaders, - std::vector* pResponse) const { +void WSHyBiParser::handshake(const std::string &url, + const RequestHeaders &requestHeaders, + char **ppData, size_t *pLen, + ResponseHeaders *pResponseHeaders, + std::vector *pResponse) const { ASSERT_BACKGROUND_THREAD() _pProto->handshake(url, requestHeaders, ppData, pLen, pResponseHeaders, pResponse); } void WSHyBiParser::createFrameHeaderFooter( - Opcode opcode, bool mask, size_t payloadSize, - int32_t maskingKey, - char pHeaderData[MAX_HEADER_BYTES], size_t* pHeaderLen, - char pFooterData[MAX_FOOTER_BYTES], size_t* pFooterLen - ) const { - _pProto->createFrameHeader(opcode, mask, payloadSize, maskingKey, - pHeaderData, pHeaderLen); + Opcode opcode, bool mask, size_t payloadSize, int32_t maskingKey, + char pHeaderData[MAX_HEADER_BYTES], size_t *pHeaderLen, + char pFooterData[MAX_FOOTER_BYTES], size_t *pFooterLen) const { + _pProto->createFrameHeader(opcode, mask, payloadSize, maskingKey, pHeaderData, + pHeaderLen); } -void WSHyBiParser::read(const char* data, size_t len) { +void WSHyBiParser::read(const char *data, size_t len) { ASSERT_BACKGROUND_THREAD() bool recur = false; while (len > 0 || recur) { @@ -164,58 +155,58 @@ void WSHyBiParser::read(const char* data, size_t len) { assert(len < 1000000000000000000); switch (_state) { - case InHeader: { - // The _header vector accumulates header data until - // the complete header is read. It's possible/likely it also - // holds part of the payload. - size_t startingSize = _header.size(); - std::copy(data, data + min(len, MAX_HEADER_BYTES - startingSize), - std::back_inserter(_header)); - - WSHyBiFrameHeader frame(_pProto, safe_vec_addr(_header), _header.size()); - - if (frame.isHeaderComplete()) { - _pCallbacks->onHeaderComplete(frame.info()); - - size_t payloadOffset = frame.headerLength() - startingSize; - _bytesLeft = frame.payloadLength(); - - // Header was consumed, but no payload - if (_bytesLeft == 0) recur = true; - - _state = InPayload; - _header.clear(); - - data += payloadOffset; - len -= payloadOffset; - } - else { - // All of the data was consumed, but no header - data += len; - len = 0; - } - break; + case InHeader: { + // The _header vector accumulates header data until + // the complete header is read. It's possible/likely it also + // holds part of the payload. + size_t startingSize = _header.size(); + std::copy(data, data + min(len, MAX_HEADER_BYTES - startingSize), + std::back_inserter(_header)); + + WSHyBiFrameHeader frame(_pProto, safe_vec_addr(_header), _header.size()); + + if (frame.isHeaderComplete()) { + _pCallbacks->onHeaderComplete(frame.info()); + + size_t payloadOffset = frame.headerLength() - startingSize; + _bytesLeft = frame.payloadLength(); + + // Header was consumed, but no payload + if (_bytesLeft == 0) + recur = true; + + _state = InPayload; + _header.clear(); + + data += payloadOffset; + len -= payloadOffset; + } else { + // All of the data was consumed, but no header + data += len; + len = 0; } - case InPayload: { - recur = false; + break; + } + case InPayload: { + recur = false; - size_t bytesToConsume = min((uint64_t)len, _bytesLeft); - _bytesLeft -= bytesToConsume; - _pCallbacks->onPayload(data, bytesToConsume); + size_t bytesToConsume = min((uint64_t)len, _bytesLeft); + _bytesLeft -= bytesToConsume; + _pCallbacks->onPayload(data, bytesToConsume); - data += bytesToConsume; - len -= bytesToConsume; + data += bytesToConsume; + len -= bytesToConsume; - if (_bytesLeft == 0) { - _pCallbacks->onFrameComplete(); + if (_bytesLeft == 0) { + _pCallbacks->onFrameComplete(); - _state = InHeader; - } - break; + _state = InHeader; } - default: - assert(false); - break; + break; + } + default: + assert(false); + break; } } } @@ -226,11 +217,12 @@ void WebSocketConnection::startPingTimer() { uv_timer_start(_pPingTimer, pingTimerCallback, 20000, 20000); } -bool WebSocketConnection::accept(const RequestHeaders& requestHeaders, - const char* pData, size_t len) { +bool WebSocketConnection::accept(const RequestHeaders &requestHeaders, + const char *pData, size_t len) { ASSERT_BACKGROUND_THREAD() assert(!_pParser); - if (_connState == WS_CLOSED) return false; + if (_connState == WS_CLOSED) + return false; WebSocketProto_IETF ietf; if (ietf.canHandle(requestHeaders, pData, len)) { @@ -248,22 +240,25 @@ bool WebSocketConnection::accept(const RequestHeaders& requestHeaders, return false; } -void WebSocketConnection::handshake(const std::string& url, - const RequestHeaders& requestHeaders, - char** ppData, size_t* pLen, - ResponseHeaders* pResponseHeaders, - std::vector* pResponse) { +void WebSocketConnection::handshake(const std::string &url, + const RequestHeaders &requestHeaders, + char **ppData, size_t *pLen, + ResponseHeaders *pResponseHeaders, + std::vector *pResponse) { ASSERT_BACKGROUND_THREAD() assert(_pParser); - if (_connState == WS_CLOSED) return; + if (_connState == WS_CLOSED) + return; _pParser->handshake(url, requestHeaders, ppData, pLen, pResponseHeaders, pResponse); } -void WebSocketConnection::sendWSMessage(Opcode opcode, const char* pData, size_t length) { +void WebSocketConnection::sendWSMessage(Opcode opcode, const char *pData, + size_t length) { ASSERT_BACKGROUND_THREAD() - if (_connState == WS_CLOSED) return; + if (_connState == WS_CLOSED) + return; std::vector header(MAX_HEADER_BYTES); std::vector footer(MAX_FOOTER_BYTES); @@ -272,13 +267,12 @@ void WebSocketConnection::sendWSMessage(Opcode opcode, const char* pData, size_t size_t footerLength = 0; _pParser->createFrameHeaderFooter(opcode, false, length, 0, - safe_vec_addr(header), &headerLength, - safe_vec_addr(footer), &footerLength); + safe_vec_addr(header), &headerLength, + safe_vec_addr(footer), &footerLength); header.resize(headerLength); footer.resize(footerLength); - _pCallbacks->sendWSFrame(safe_vec_addr(header), header.size(), - pData, length, + _pCallbacks->sendWSFrame(safe_vec_addr(header), header.size(), pData, length, safe_vec_addr(footer), footer.size()); } @@ -307,11 +301,12 @@ void WebSocketConnection::closeWS(uint16_t code, std::string reason) { } // Make sure code has right endian-ness - unsigned char* code_p = (unsigned char*)&code; + unsigned char *code_p = (unsigned char *)&code; if (!isBigEndian()) swapByteOrder(code_p, code_p + 2); - std::string message = std::string(reinterpret_cast(code_p), 2) + reason; + std::string message = + std::string(reinterpret_cast(code_p), 2) + reason; sendWSMessage(Close, message.c_str(), message.length()); @@ -320,9 +315,10 @@ void WebSocketConnection::closeWS(uint16_t code, std::string reason) { _pCallbacks->closeWSSocket(); } -void WebSocketConnection::read(const char* data, size_t len) { +void WebSocketConnection::read(const char *data, size_t len) { ASSERT_BACKGROUND_THREAD() - if (_connState == WS_CLOSED) return; + if (_connState == WS_CLOSED) + return; assert(_pParser); _pParser->read(data, len); } @@ -332,17 +328,19 @@ void WebSocketConnection::markClosed() { _connState = WS_CLOSED; } -void WebSocketConnection::onHeaderComplete(const WSFrameHeaderInfo& header) { +void WebSocketConnection::onHeaderComplete(const WSFrameHeaderInfo &header) { ASSERT_BACKGROUND_THREAD() - if (_connState == WS_CLOSED) return; + if (_connState == WS_CLOSED) + return; _header = header; if (!header.fin && header.opcode != Continuation) _incompleteContentHeader = header; } -void WebSocketConnection::onPayload(const char* data, size_t len) { +void WebSocketConnection::onPayload(const char *data, size_t len) { ASSERT_BACKGROUND_THREAD() - if (_connState == WS_CLOSED) return; + if (_connState == WS_CLOSED) + return; size_t origSize = _payload.size(); std::copy(data, data + len, std::back_inserter(_payload)); @@ -357,72 +355,76 @@ void WebSocketConnection::onPayload(const char* data, size_t len) { void WebSocketConnection::onFrameComplete() { ASSERT_BACKGROUND_THREAD() debug_log("WebSocketConnection::onFrameComplete", LOG_DEBUG); - if (_connState == WS_CLOSED) return; + if (_connState == WS_CLOSED) + return; if (!_header.fin) { std::copy(_payload.begin(), _payload.end(), - std::back_inserter(_incompleteContentPayload)); + std::back_inserter(_incompleteContentPayload)); } else { switch (_header.opcode) { - case Continuation: { - std::copy(_payload.begin(), _payload.end(), - std::back_inserter(_incompleteContentPayload)); - _pCallbacks->onWSMessage(_incompleteContentHeader.opcode == Binary, - safe_vec_addr(_incompleteContentPayload), _incompleteContentPayload.size()); - - _incompleteContentPayload.clear(); - break; - } - case Text: - case Binary: { - _pCallbacks->onWSMessage(_header.opcode == Binary, safe_vec_addr(_payload), _payload.size()); - break; - } - case Close: { + case Continuation: { + std::copy(_payload.begin(), _payload.end(), + std::back_inserter(_incompleteContentPayload)); + _pCallbacks->onWSMessage(_incompleteContentHeader.opcode == Binary, + safe_vec_addr(_incompleteContentPayload), + _incompleteContentPayload.size()); + + _incompleteContentPayload.clear(); + break; + } + case Text: + case Binary: { + _pCallbacks->onWSMessage(_header.opcode == Binary, + safe_vec_addr(_payload), _payload.size()); + break; + } + case Close: { - if (_connState == WS_OPEN) { - _connState = WS_CLOSE_RECEIVED; - } else if (_connState == WS_CLOSE_SENT) { - _connState = WS_CLOSED; - } + if (_connState == WS_OPEN) { + _connState = WS_CLOSE_RECEIVED; + } else if (_connState == WS_CLOSE_SENT) { + _connState = WS_CLOSED; + } - // If we haven't sent a Close frame before, send one now, echoing - // the callback - if (_connState != WS_CLOSE_SENT && _connState != WS_CLOSED) { - _connState = WS_CLOSED; - sendWSMessage(Close, safe_vec_addr(_payload), _payload.size()); - } + // If we haven't sent a Close frame before, send one now, echoing + // the callback + if (_connState != WS_CLOSE_SENT && _connState != WS_CLOSED) { + _connState = WS_CLOSED; + sendWSMessage(Close, safe_vec_addr(_payload), _payload.size()); + } - // TODO: Delay closeWSSocket call until close message is actually sent - _pCallbacks->closeWSSocket(); + // TODO: Delay closeWSSocket call until close message is actually sent + _pCallbacks->closeWSSocket(); - // TODO: Use code and status - _pCallbacks->onWSClose(0); + // TODO: Use code and status + _pCallbacks->onWSClose(0); - break; - } - case Ping: { - // Send back a pong - sendWSMessage(Pong, safe_vec_addr(_payload), _payload.size()); - break; - } - case Pong: { - // No action needed - break; - } - case Reserved: { - // TODO: Warn and close connection? - break; - } + break; + } + case Ping: { + // Send back a pong + sendWSMessage(Pong, safe_vec_addr(_payload), _payload.size()); + break; + } + case Pong: { + // No action needed + break; + } + case Reserved: { + // TODO: Warn and close connection? + break; + } } } _payload.clear(); } -void pingTimerCallback(uv_timer_t* pHandle) { +void pingTimerCallback(uv_timer_t *pHandle) { ASSERT_BACKGROUND_THREAD() - WebSocketConnection* c = reinterpret_cast(pHandle->data); + WebSocketConnection *c = + reinterpret_cast(pHandle->data); c->sendPing(); } diff --git a/src/websockets.h b/src/websockets.h index ce26ab68..270cfa7e 100644 --- a/src/websockets.h +++ b/src/websockets.h @@ -1,18 +1,18 @@ #ifndef WEBSOCKETS_HPP #define WEBSOCKETS_HPP -#include #include +#include #include #include #include -#include "utils.h" -#include "thread.h" #include "constants.h" -#include "websockets-base.h" +#include "thread.h" +#include "utils.h" #include "uvutil.h" +#include "websockets-base.h" class WSFrameHeaderInfo { public: @@ -30,19 +30,17 @@ class WSFrameHeaderInfo { */ class WSHyBiFrameHeader { std::vector _data; - WebSocketProto* _pProto; + WebSocketProto *_pProto; public: - WSHyBiFrameHeader() : _data(MAX_HEADER_BYTES), _pProto(NULL) { - } + WSHyBiFrameHeader() : _data(MAX_HEADER_BYTES), _pProto(NULL) {} // The data is copied (up to 14 bytes worth) - WSHyBiFrameHeader(WebSocketProto* pProto, const char* data, size_t len) - : _data(data, data + (std::min(MAX_HEADER_BYTES, len))), _pProto(pProto) { + WSHyBiFrameHeader(WebSocketProto *pProto, const char *data, size_t len) + : _data(data, data + (std::min(MAX_HEADER_BYTES, len))), _pProto(pProto) { } - virtual ~WSHyBiFrameHeader() { - } + virtual ~WSHyBiFrameHeader() {} // IMPORTANT: Don't attempt to call any of the other methods // until isHeaderComplete is true!! @@ -54,7 +52,6 @@ class WSHyBiFrameHeader { size_t headerLength() const; private: - bool fin() const; Opcode opcode() const; bool masked() const; @@ -75,9 +72,9 @@ class WSHyBiFrameHeader { class WSParserCallbacks { public: - virtual void onHeaderComplete(const WSFrameHeaderInfo& header) = 0; + virtual void onHeaderComplete(const WSFrameHeaderInfo &header) = 0; // The data is copied - virtual void onPayload(const char* data, size_t len) = 0; + virtual void onPayload(const char *data, size_t len) = 0; virtual void onFrameComplete() = 0; }; @@ -88,56 +85,52 @@ class WSParser { // Populate response headers with the appropriate values. This call // must not fail, but it will not be called unless canHandle returned // true previously, so any validation should be done in canHandle. - virtual void handshake(const std::string& url, - const RequestHeaders& requestHeaders, - char** ppData, size_t* pLen, - ResponseHeaders* responseHeaders, - std::vector* pResponse) const = 0; - - virtual void createFrameHeaderFooter( - Opcode opcode, bool mask, size_t payloadSize, - int32_t maskingKey, - char pHeaderData[MAX_HEADER_BYTES], size_t* pHeaderLen, - char pFooterData[MAX_FOOTER_BYTES], size_t* pFooterLen - ) const = 0; - - virtual void read(const char* data, size_t len) = 0; + virtual void handshake(const std::string &url, + const RequestHeaders &requestHeaders, char **ppData, + size_t *pLen, ResponseHeaders *responseHeaders, + std::vector *pResponse) const = 0; + + virtual void createFrameHeaderFooter(Opcode opcode, bool mask, + size_t payloadSize, int32_t maskingKey, + char pHeaderData[MAX_HEADER_BYTES], + size_t *pHeaderLen, + char pFooterData[MAX_FOOTER_BYTES], + size_t *pFooterLen) const = 0; + + virtual void read(const char *data, size_t len) = 0; }; class WSHyBiParser : public WSParser { - WSParserCallbacks* _pCallbacks; - WebSocketProto* _pProto; + WSParserCallbacks *_pCallbacks; + WebSocketProto *_pProto; WSParseState _state; std::vector _header; uint64_t _bytesLeft; public: - WSHyBiParser(WSParserCallbacks* callbacks, WebSocketProto* pProto) - : _pCallbacks(callbacks), _pProto(pProto), _state(InHeader) { - } + WSHyBiParser(WSParserCallbacks *callbacks, WebSocketProto *pProto) + : _pCallbacks(callbacks), _pProto(pProto), _state(InHeader) {} virtual ~WSHyBiParser() { try { delete _pProto; - } catch(...) {} + } catch (...) { + } } - void handshake(const std::string& url, - const RequestHeaders& requestHeaders, - char** ppData, size_t* pLen, - ResponseHeaders* responseHeaders, - std::vector* pResponse) const; + void handshake(const std::string &url, const RequestHeaders &requestHeaders, + char **ppData, size_t *pLen, ResponseHeaders *responseHeaders, + std::vector *pResponse) const; - void createFrameHeaderFooter( - Opcode opcode, bool mask, size_t payloadSize, - int32_t maskingKey, - char pHeaderData[MAX_HEADER_BYTES], size_t* pHeaderLen, - char pFooterData[MAX_FOOTER_BYTES], size_t* pFooterLen - ) const; + void createFrameHeaderFooter(Opcode opcode, bool mask, size_t payloadSize, + int32_t maskingKey, + char pHeaderData[MAX_HEADER_BYTES], + size_t *pHeaderLen, + char pFooterData[MAX_FOOTER_BYTES], + size_t *pFooterLen) const; - void read(const char* data, size_t len); + void read(const char *data, size_t len); }; - enum WSConnState { WS_OPEN, WS_CLOSE_RECEIVED, @@ -151,40 +144,37 @@ enum WSConnState { class WebSocketConnectionCallbacks { public: - virtual void onWSMessage(bool binary, const char* data, size_t len) = 0; + virtual void onWSMessage(bool binary, const char *data, size_t len) = 0; virtual void onWSClose(int code) = 0; // Implementers MUST copy data - virtual void sendWSFrame(const char* headerData, size_t headerLength, - const char* pData, size_t dataLength, - const char* footerData, size_t footerLength) = 0; + virtual void sendWSFrame(const char *headerData, size_t headerLength, + const char *pData, size_t dataLength, + const char *footerData, size_t footerLength) = 0; virtual void closeWSSocket() = 0; }; void pingTimerCallback(uv_timer_t *handle); class WebSocketConnection : WSParserCallbacks, NoCopy { - uv_loop_t* _pLoop; + uv_loop_t *_pLoop; WSConnState _connState; std::shared_ptr _pCallbacks; - WSParser* _pParser; + WSParser *_pParser; WSFrameHeaderInfo _incompleteContentHeader; WSFrameHeaderInfo _header; std::vector _incompleteContentPayload; std::vector _payload; - uv_timer_t* _pPingTimer; + uv_timer_t *_pPingTimer; public: - WebSocketConnection( - uv_loop_t* pLoop, - std::shared_ptr callbacks) - : _pLoop(pLoop), - _connState(WS_OPEN), - _pCallbacks(callbacks), + WebSocketConnection(uv_loop_t *pLoop, + std::shared_ptr callbacks) + : _pLoop(pLoop), _connState(WS_OPEN), _pCallbacks(callbacks), _pParser(NULL) { ASSERT_BACKGROUND_THREAD() debug_log("WebSocketConnection::WebSocketConnection", LOG_DEBUG); - _pPingTimer = static_cast(malloc(sizeof(uv_timer_t))); + _pPingTimer = static_cast(malloc(sizeof(uv_timer_t))); uv_timer_init(_pLoop, _pPingTimer); _pPingTimer->data = this; } @@ -196,26 +186,26 @@ class WebSocketConnection : WSParserCallbacks, NoCopy { uv_close(toHandle(_pPingTimer), freeAfterClose); try { delete _pParser; - } catch(...) {} + } catch (...) { + } } - bool accept(const RequestHeaders& requestHeaders, const char* pData, size_t len); - void handshake(const std::string& url, - const RequestHeaders& requestHeaders, - char** ppData, size_t* pLen, - ResponseHeaders* pResponseHeaders, - std::vector* pResponse); + bool accept(const RequestHeaders &requestHeaders, const char *pData, + size_t len); + void handshake(const std::string &url, const RequestHeaders &requestHeaders, + char **ppData, size_t *pLen, ResponseHeaders *pResponseHeaders, + std::vector *pResponse); - void sendWSMessage(Opcode opcode, const char* pData, size_t length); + void sendWSMessage(Opcode opcode, const char *pData, size_t length); void sendPing(); void closeWS(uint16_t code = 1000, std::string reason = ""); - void read(const char* data, size_t len); + void read(const char *data, size_t len); void markClosed(); void startPingTimer(); protected: - void onHeaderComplete(const WSFrameHeaderInfo& header); - void onPayload(const char* data, size_t len); + void onHeaderComplete(const WSFrameHeaderInfo &header); + void onPayload(const char *data, size_t len); void onFrameComplete(); }; diff --git a/src/winutils.cpp b/src/winutils.cpp index 01add2dc..d22e457f 100644 --- a/src/winutils.cpp +++ b/src/winutils.cpp @@ -1,56 +1,42 @@ #include "winutils.h" #ifdef _WIN32 -#include #include +#include -std::string wideToUtf8(const std::wstring& value) -{ - if (value.size() == 0) - return std::string(); - - const wchar_t * cstr = value.c_str(); - int chars = ::WideCharToMultiByte(CP_UTF8, 0, - cstr, -1, - nullptr, 0, nullptr, nullptr); - if (chars == 0) { - return std::string(); - } - - std::vector result(chars, 0); - chars = ::WideCharToMultiByte(CP_UTF8, - 0, - cstr, - -1, - &(result[0]), - result.size(), - nullptr, nullptr); - - return std::string(result.begin(), result.end()); -} +std::string wideToUtf8(const std::wstring &value) { + if (value.size() == 0) + return std::string(); + const wchar_t *cstr = value.c_str(); + int chars = + ::WideCharToMultiByte(CP_UTF8, 0, cstr, -1, nullptr, 0, nullptr, nullptr); + if (chars == 0) { + return std::string(); + } + + std::vector result(chars, 0); + chars = ::WideCharToMultiByte(CP_UTF8, 0, cstr, -1, &(result[0]), + result.size(), nullptr, nullptr); + + return std::string(result.begin(), result.end()); +} -std::wstring utf8ToWide(const std::string& value, - const std::string& context) -{ - if (value.size() == 0) - return std::wstring(); +std::wstring utf8ToWide(const std::string &value, const std::string &context) { + if (value.size() == 0) + return std::wstring(); - const char * cstr = value.c_str(); - int chars = ::MultiByteToWideChar(CP_UTF8, 0, - cstr, -1, - nullptr, 0); - if (chars == 0) { - return std::wstring(); - } + const char *cstr = value.c_str(); + int chars = ::MultiByteToWideChar(CP_UTF8, 0, cstr, -1, nullptr, 0); + if (chars == 0) { + return std::wstring(); + } - std::vector result(chars, 0); - chars = ::MultiByteToWideChar(CP_UTF8, 0, - cstr, -1, - &(result[0]), - result.size()); + std::vector result(chars, 0); + chars = + ::MultiByteToWideChar(CP_UTF8, 0, cstr, -1, &(result[0]), result.size()); - return std::wstring(result.begin(), result.end()); + return std::wstring(result.begin(), result.end()); } #endif // ifdef _WIN32 diff --git a/src/winutils.h b/src/winutils.h index c1eaca5e..015d7755 100644 --- a/src/winutils.h +++ b/src/winutils.h @@ -4,10 +4,10 @@ #include -std::string wideToUtf8(const std::wstring& value); +std::string wideToUtf8(const std::wstring &value); -std::wstring utf8ToWide(const std::string& value, - const std::string& context = std::string()); +std::wstring utf8ToWide(const std::string &value, + const std::string &context = std::string()); #endif // #ifdef _WIN32 #endif // #define WINUTILS_H From 42cc3c117ac3aeb62efac467ca7cad4b8a495611 Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Thu, 14 May 2026 00:21:12 +0100 Subject: [PATCH 15/20] expand list response in webapplication.cpp --- src/webapplication.cpp | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/webapplication.cpp b/src/webapplication.cpp index adc8f5fc..adf92889 100644 --- a/src/webapplication.cpp +++ b/src/webapplication.cpp @@ -180,8 +180,6 @@ listToResponse(std::shared_ptr pRequest, const list &response) { int status = as_cpp(response["status"]); std::string statusDesc = getStatusDescription(status); - list responseHeaders(response["headers"]); - // Self-frees when response is written std::shared_ptr pDataSource; @@ -220,10 +218,13 @@ listToResponse(std::shared_ptr pRequest, const list &response) { std::shared_ptr pResp( new HttpResponse(pRequest, status, statusDesc, pDataSource), auto_deleter_background); - strings headerNames = responseHeaders.names(); - for (R_len_t i = 0; i < responseHeaders.size(); i++) { - pResp->addHeader(std::string(headerNames[i]), - as_cpp(responseHeaders[i])); + if (response.contains("headers") && !Rf_isNull(response["headers"])) { + list responseHeaders(response["headers"]); + strings headerNames = responseHeaders.names(); + for (R_len_t i = 0; i < responseHeaders.size(); i++) { + pResp->addHeader(std::string(headerNames[i]), + as_cpp(responseHeaders[i])); + } } return pResp; @@ -257,10 +258,6 @@ void RWebApplication::onHeaders( std::shared_ptr pRequest, std::function)> callback) { ASSERT_MAIN_THREAD() - if (Rf_isNull(_onHeaders)) { - std::shared_ptr null_ptr; - callback(null_ptr); - } requestToEnv(pRequest, &pRequest->env()); @@ -268,7 +265,13 @@ void RWebApplication::onHeaders( // catch it and then send a generic error response. list response; try { - response = list(function(_onHeaders)(pRequest->env())); + sexp result(function(_onHeaders)(pRequest->env())); + if (Rf_isNull(result)) { + std::shared_ptr null_ptr; + callback(null_ptr); + return; + } + response = list(result); } catch (unwind_exception &e) { debug_log("Interrupt occurred in _onHeaders", LOG_INFO); response = errorResponse(); From ef1d490bb1a19de3f9adbaa7385a42d1d072c95b Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Thu, 14 May 2026 00:52:18 +0100 Subject: [PATCH 16/20] tidy Makefile + add check results --- .Rbuildignore | 1 + Makefile | 2 - check-gcc-clang/check-CXX17-clang.log | 163 +++++++++++++++++++++++ check-gcc-clang/check-CXX17-gcc.log | 166 ++++++++++++++++++++++++ check-gcc-clang/check-CXX20-clang.log | 163 +++++++++++++++++++++++ check-gcc-clang/check-CXX20-gcc.log | 166 ++++++++++++++++++++++++ check-gcc-clang/check-CXX23-clang.log | 163 +++++++++++++++++++++++ check-gcc-clang/check-CXX23-gcc.log | 166 ++++++++++++++++++++++++ check-gcc-clang/install-CXX17-clang.log | 59 +++++++++ check-gcc-clang/install-CXX17-gcc.log | 59 +++++++++ check-gcc-clang/install-CXX20-clang.log | 59 +++++++++ check-gcc-clang/install-CXX20-gcc.log | 59 +++++++++ check-gcc-clang/install-CXX23-clang.log | 59 +++++++++ check-gcc-clang/install-CXX23-gcc.log | 59 +++++++++ scripts/check_loop.sh | 15 +-- scripts/check_prepare.sh | 10 +- scripts/check_r_devel.sh | 68 +++++----- scripts/check_restore.sh | 19 +-- scripts/check_run.sh | 24 ++-- tests/testthat/test-traffic.R | 8 +- 20 files changed, 1400 insertions(+), 88 deletions(-) create mode 100644 check-gcc-clang/check-CXX17-clang.log create mode 100644 check-gcc-clang/check-CXX17-gcc.log create mode 100644 check-gcc-clang/check-CXX20-clang.log create mode 100644 check-gcc-clang/check-CXX20-gcc.log create mode 100644 check-gcc-clang/check-CXX23-clang.log create mode 100644 check-gcc-clang/check-CXX23-gcc.log create mode 100644 check-gcc-clang/install-CXX17-clang.log create mode 100644 check-gcc-clang/install-CXX17-gcc.log create mode 100644 check-gcc-clang/install-CXX20-clang.log create mode 100644 check-gcc-clang/install-CXX20-gcc.log create mode 100644 check-gcc-clang/install-CXX23-clang.log create mode 100644 check-gcc-clang/install-CXX23-gcc.log diff --git a/.Rbuildignore b/.Rbuildignore index bbe639ac..a83d9868 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -26,3 +26,4 @@ ^docs$ ^pkgdown$ scripts +^Makefile$ diff --git a/Makefile b/Makefile index 8562b4cb..6fcb92e6 100644 --- a/Makefile +++ b/Makefile @@ -38,6 +38,4 @@ check-devel: ./scripts/check_r_devel.sh cxx23 gcc $(foreach std,$(STANDARDS),$(foreach comp,$(COMPILERS),$(eval $(call run-check,$(std),$(comp))))) -$(foreach std,$(STANDARDS),$(foreach comp,$(COMPILERS),$(eval $(call run-bench,$(std),$(comp))))) $(foreach std,$(STANDARDS),$(eval check-$(std)-glang: check-$(std)-clang)) -$(foreach std,$(STANDARDS),$(eval bench-$(std)-glang: bench-$(std)-clang)) diff --git a/check-gcc-clang/check-CXX17-clang.log b/check-gcc-clang/check-CXX17-clang.log new file mode 100644 index 00000000..addb7eca --- /dev/null +++ b/check-gcc-clang/check-CXX17-clang.log @@ -0,0 +1,163 @@ +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-13 23:37:10 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/18s] 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/82s] OK +* used C compiler: ‘clang version 22.1.3’ +* used C++ compiler: ‘clang version 22.1.3’ +* 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’ [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 +using C compiler: ‘clang version 22.1.3’ +using C++ compiler: ‘clang version 22.1.3’ +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +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 -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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 00000000..9963e02f --- /dev/null +++ b/check-gcc-clang/check-CXX17-gcc.log @@ -0,0 +1,166 @@ +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-13 23:34:03 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/20s] 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 ... [135s/108s] OK +* used C compiler: ‘gcc (GCC) 15.2.1 20260209’ +* used C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +* 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] + [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 +using C compiler: ‘gcc (GCC) 15.2.1 20260209’ +using C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +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-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 00000000..857669c4 --- /dev/null +++ b/check-gcc-clang/check-CXX20-clang.log @@ -0,0 +1,163 @@ +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-13 23:42:51 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/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 ... [78s/79s] OK +* used C compiler: ‘clang version 22.1.3’ +* used C++ compiler: ‘clang version 22.1.3’ +* 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’ [23s/23s] + [23s/23s] 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 +using C compiler: ‘clang version 22.1.3’ +using C++ compiler: ‘clang version 22.1.3’ +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +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 -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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 00000000..b89d30ab --- /dev/null +++ b/check-gcc-clang/check-CXX20-gcc.log @@ -0,0 +1,166 @@ +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-13 23:39:51 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/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 ... [127s/103s] OK +* used C compiler: ‘gcc (GCC) 15.2.1 20260209’ +* used C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +* 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 +using C compiler: ‘gcc (GCC) 15.2.1 20260209’ +using C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +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 00000000..2d668d8b --- /dev/null +++ b/check-gcc-clang/check-CXX23-clang.log @@ -0,0 +1,163 @@ +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-13 23:48:23 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 ... [90s/92s] OK +* used C compiler: ‘clang version 22.1.3’ +* used C++ compiler: ‘clang version 22.1.3’ +* 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’ [23s/23s] + [23s/24s] 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 +using C compiler: ‘clang version 22.1.3’ +using C++ compiler: ‘clang version 22.1.3’ +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +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 -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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 00000000..0c9cbd08 --- /dev/null +++ b/check-gcc-clang/check-CXX23-gcc.log @@ -0,0 +1,166 @@ +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-13 23:45:25 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 ... [129s/102s] OK +* used C compiler: ‘gcc (GCC) 15.2.1 20260209’ +* used C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +* 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’ [22s/23s] + [23s/23s] 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 +using C compiler: ‘gcc (GCC) 15.2.1 20260209’ +using C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +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-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 00000000..6f08b0d1 --- /dev/null +++ b/check-gcc-clang/install-CXX17-clang.log @@ -0,0 +1,59 @@ +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 +using C compiler: ‘clang version 22.1.3’ +using C++ compiler: ‘clang version 22.1.3’ +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +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 -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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 00000000..faf410e0 --- /dev/null +++ b/check-gcc-clang/install-CXX17-gcc.log @@ -0,0 +1,59 @@ +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 +using C compiler: ‘gcc (GCC) 15.2.1 20260209’ +using C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +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-CXX20-clang.log b/check-gcc-clang/install-CXX20-clang.log new file mode 100644 index 00000000..6f08b0d1 --- /dev/null +++ b/check-gcc-clang/install-CXX20-clang.log @@ -0,0 +1,59 @@ +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 +using C compiler: ‘clang version 22.1.3’ +using C++ compiler: ‘clang version 22.1.3’ +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +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 -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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 00000000..faf410e0 --- /dev/null +++ b/check-gcc-clang/install-CXX20-gcc.log @@ -0,0 +1,59 @@ +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 +using C compiler: ‘gcc (GCC) 15.2.1 20260209’ +using C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +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 00000000..6f08b0d1 --- /dev/null +++ b/check-gcc-clang/install-CXX23-clang.log @@ -0,0 +1,59 @@ +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 +using C compiler: ‘clang version 22.1.3’ +using C++ compiler: ‘clang version 22.1.3’ +make[1]: Entering directory '/home/pacha/Documents/httpuv/httpuv.Rcheck/00_pkg_src/httpuv/src' +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 -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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 00000000..faf410e0 --- /dev/null +++ b/check-gcc-clang/install-CXX23-gcc.log @@ -0,0 +1,59 @@ +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 +using C compiler: ‘gcc (GCC) 15.2.1 20260209’ +using C++ compiler: ‘g++ (GCC) 15.2.1 20260209’ +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/scripts/check_loop.sh b/scripts/check_loop.sh index cbcc527e..d2a2d9ee 100755 --- a/scripts/check_loop.sh +++ b/scripts/check_loop.sh @@ -3,31 +3,22 @@ set -euo pipefail rm -f check-results.md -for std in CXX23 CXX20 CXX17 CXX14 CXX11; do +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 - - # Set USE_CLANG environment variable for this iteration - if [ "$compiler" = "clang" ]; then - export USE_CLANG=1 - else - unset USE_CLANG || true - fi ./scripts/check_prepare.sh "$std" "$compiler" touch ./check-gcc-clang/check-results.md - + # Run check, but don't exit on failure - # Pass the current loop's std and compiler so `check_run.sh` can create - # a per-iteration LOG file (avoids overwriting the previous run's log). 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 + else echo "$std + $compiler = ok" >> ./check-gcc-clang/check-results.md || true fi diff --git a/scripts/check_prepare.sh b/scripts/check_prepare.sh index b511ce4e..50d5461c 100755 --- a/scripts/check_prepare.sh +++ b/scripts/check_prepare.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -euo pipefail -std=${1:-CXX11} +std=${1:-CXX17} std=$(echo "$std" | tr '[:lower:]' '[:upper:]') compiler=${2:-gcc} @@ -9,5 +9,9 @@ echo "===============================" echo "Preparing C++ code with $std standard and $compiler compiler" echo "" -# Patch CXX_STD in httpuvtest/src/Makevars -sed -i "s/^CXX_STD = .*/CXX_STD = ${std}/" ./httpuvtest/src/Makevars +# Add or replace CXX_STD in src/Makevars +if grep -q "^CXX_STD" ./src/Makevars; then + sed -i "s/^CXX_STD = .*/CXX_STD = ${std}/" ./src/Makevars +else + echo "CXX_STD = ${std}" >> ./src/Makevars +fi diff --git a/scripts/check_r_devel.sh b/scripts/check_r_devel.sh index 1d5d34c0..00bff661 100755 --- a/scripts/check_r_devel.sh +++ b/scripts/check_r_devel.sh @@ -32,46 +32,47 @@ echo "Using R-devel:" cd "${PROJECT_DIR}" -# Prevent R from loading any startup files (including ~/.Rprofile which loads cpp4r) +# 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 (use --vanilla to avoid loading .Rprofile) +# 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", "decor", "desc", "glue", "tibble", "vctrs", "withr", "pkgbuild") + 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") } ' -# Install cpp4r from local source using R CMD INSTALL -echo "Installing cpp4r into R-devel..." -CPP4R_TARBALL=$("${R_DEVEL}" CMD build --no-manual . 2>/dev/null | grep -oP "^\* creating '\K[^']+" || true) -if [ -z "${CPP4R_TARBALL}" ] || [ ! -f "${CPP4R_TARBALL}" ]; then - # Fallback: find the tarball - CPP4R_TARBALL=$(ls -t cpp4r_*.tar.gz 2>/dev/null | head -1) -fi -if [ -z "${CPP4R_TARBALL}" ] || [ ! -f "${CPP4R_TARBALL}" ]; then - echo "ERROR: Failed to build cpp4r tarball" - exit 1 -fi -echo "Built tarball: ${CPP4R_TARBALL}" -"${R_DEVEL}" CMD INSTALL "${CPP4R_TARBALL}" -rm -f "${CPP4R_TARBALL}" +# Patch src/Makevars with the requested C++ standard +"${SCRIPT_DIR}/check_prepare.sh" "${std}" "${compiler}" -# Export CXX_STD for configure script -export CXX_STD="${std}" +# 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 -# Set compiler if [ "$compiler" = "clang" ]; then - export USE_CLANG=1 + 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 - unset USE_CLANG || true + touch "${MAKEVARS_FILE}" fi +export R_MAKEVARS_USER="${MAKEVARS_FILE}" # Ensure results directory exists mkdir -p "./check-r-devel" @@ -83,18 +84,11 @@ rm -f "${LOG}" # Capture everything (stdout+stderr) into the log while printing to console exec > >(tee -a "${LOG}") 2>&1 -# Register and document the test package using R-devel -echo "Registering httpuvtest with R-devel..." -"${RSCRIPT_DEVEL}" --vanilla -e 'cpp4r::register("./httpuvtest")' - -echo "Documenting httpuvtest with R-devel..." -"${RSCRIPT_DEVEL}" --vanilla -e 'devtools::document("./httpuvtest")' - -# Build package tarball using R-devel +# Build httpuv tarball using R-devel echo "Building tarball with R-devel..." -TARBALL=$("${RSCRIPT_DEVEL}" --vanilla -e 'cat(devtools::build("./httpuvtest", quiet = TRUE))') +TARBALL=$("${RSCRIPT_DEVEL}" --vanilla -e 'cat(devtools::build(".", quiet = TRUE))') if [ -z "${TARBALL}" ]; then - echo "Failed to build tarball for httpuvtest." + echo "Failed to build httpuv tarball." exit 1 fi @@ -102,13 +96,13 @@ echo "Tarball created: ${TARBALL}" # Run R CMD check on the tarball using R-devel echo "Running R CMD check with R-devel..." -CXX_STD="${std}" "${R_DEVEL}" CMD check --as-cran --no-manual "${TARBALL}" || true +"${R_DEVEL}" CMD check --as-cran --no-manual "${TARBALL}" || true # If there was an error, copy the install log for inspection -if [ -f "./httpuvtest.Rcheck/00install.out" ]; then - cp "./httpuvtest.Rcheck/00install.out" "./check-r-devel/install-${std}-${compiler}-devel.log" +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 "./httpuvtest.Rcheck/00install.out" + cat "./httpuv.Rcheck/00install.out" echo "=== END 00install.out ===" fi @@ -121,9 +115,7 @@ else echo "R CMD check completed with no ERRORs. Warnings/Notes (if any) are allowed. See ${LOG} for full output." fi -# Cleanup rm -f "${TARBALL}" -rm -rf ./httpuvtest.Rcheck || true echo "===============================" echo "R-devel check complete." diff --git a/scripts/check_restore.sh b/scripts/check_restore.sh index 9b32c3d9..a9236b43 100755 --- a/scripts/check_restore.sh +++ b/scripts/check_restore.sh @@ -1,25 +1,14 @@ #!/usr/bin/env bash set -euo pipefail -# Accept std as first arg, default to CXX11 -std=${1:-CXX11} +std=${1:-CXX17} std=$(echo "$std" | tr '[:lower:]' '[:upper:]') compiler=${2:-gcc} echo "Restoring files for $std and $compiler" -# Convert std to C++ format for DESCRIPTION (e.g., CXX20 -> C++20) -if [ "$std" = "CXX11" ]; then cpp_std="C++11" -elif [ "$std" = "CXX14" ]; then cpp_std="C++14" -elif [ "$std" = "CXX17" ]; then cpp_std="C++17" -elif [ "$std" = "CXX20" ]; then cpp_std="C++20" -elif [ "$std" = "CXX23" ]; then cpp_std="C++23" -else cpp_std="$std"; fi - -# Restore Makevars to defaults -sed -i 's/^CXX_STD = .*/CXX_STD = CXX23/' ./httpuvtest/src/Makevars -# Remove any leftover clang block from a previous prepare run -sed -i '/# cpp4r-check-clang-begin/,/# cpp4r-check-clang-end/d' ./httpuvtest/src/Makevars +# Remove the CXX_STD line added by check_prepare.sh +sed -i '/^CXX_STD = /d' ./src/Makevars # Clear check files -rm -rf ./httpuvtest.Rcheck || true +rm -rf ./httpuv.Rcheck || true diff --git a/scripts/check_run.sh b/scripts/check_run.sh index a1404be8..84b649d4 100755 --- a/scripts/check_run.sh +++ b/scripts/check_run.sh @@ -37,37 +37,31 @@ LOG="./check-gcc-clang/check-${std}-${compiler}.log" 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. +# while still printing to the console via tee. exec > >(tee -a "${LOG}") 2>&1 -# Run the bench script (will exit on error) -Rscript -e 'cpp4r::register("./httpuvtest")' -Rscript -e 'devtools::document("./httpuvtest")' - -# Build package tarball first (devtools::build returns path) -TARBALL=$(Rscript -e 'cat(devtools::build("./httpuvtest", quiet = TRUE))') +# Build httpuv tarball +TARBALL=$(Rscript -e 'cat(devtools::build(".", quiet = TRUE))') if [ -z "${TARBALL}" ]; then - echo "Failed to build tarball for httpuvtest." + 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. +# Run R CMD check on the tarball. 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 "./httpuvtest.Rcheck/00install.out" ]; then - cp "./httpuvtest.Rcheck/00install.out" "./check-gcc-clang/install-${std}-${compiler}.log" +if [ -f "./httpuv.Rcheck/00install.out" ]; then + cp "./httpuv.Rcheck/00install.out" "./check-gcc-clang/install-${std}-${compiler}.log" echo "=== BEGIN 00install.out ===" - cat "./httpuvtest.Rcheck/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." - # Print a short excerpt for convenience - grep -n "\bERROR\b" -n "${LOG}" || true + 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." diff --git a/tests/testthat/test-traffic.R b/tests/testthat/test-traffic.R index ed53088b..cb38f13b 100644 --- a/tests/testthat/test-traffic.R +++ b/tests/testthat/test-traffic.R @@ -1,8 +1,10 @@ skip_if_not_possible <- function() { + # @pachadotdev: run sudo pacman -S apache + # this is to run all tests for the WebTechnologies view + # Temporarily disable these tests because they may not run reliably on - # some platforms. - skip("") - # skip_on_cran() + # some platforms (comment this to run) + # skip("") if (Sys.which("ab")[[1]] == "") { skip("ab (Apache bench) not available for running traffic tests") From 7a590c286a83f5ce3e297470b27a44606bb5c359 Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Thu, 14 May 2026 01:50:32 +0100 Subject: [PATCH 17/20] fix checks with correct std change --- check-gcc-clang/check-CXX17-clang.log | 68 +++++++++++++----------- check-gcc-clang/check-CXX17-gcc.log | 66 ++++++++++++----------- check-gcc-clang/check-CXX20-clang.log | 68 +++++++++++++----------- check-gcc-clang/check-CXX20-gcc.log | 10 ++-- check-gcc-clang/check-CXX23-clang.log | 68 +++++++++++++----------- check-gcc-clang/check-CXX23-gcc.log | 70 +++++++++++++------------ check-gcc-clang/install-CXX17-clang.log | 56 ++++++++++---------- check-gcc-clang/install-CXX17-gcc.log | 56 ++++++++++---------- check-gcc-clang/install-CXX20-clang.log | 56 ++++++++++---------- check-gcc-clang/install-CXX20-gcc.log | 2 + check-gcc-clang/install-CXX23-clang.log | 56 ++++++++++---------- check-gcc-clang/install-CXX23-gcc.log | 56 ++++++++++---------- scripts/check_prepare.sh | 10 ++-- scripts/check_restore.sh | 2 +- scripts/check_run.sh | 5 +- 15 files changed, 344 insertions(+), 305 deletions(-) diff --git a/check-gcc-clang/check-CXX17-clang.log b/check-gcc-clang/check-CXX17-clang.log index addb7eca..b8b92ebc 100644 --- a/check-gcc-clang/check-CXX17-clang.log +++ b/check-gcc-clang/check-CXX17-clang.log @@ -8,13 +8,13 @@ Loading required package: usethis GNU Fortran (GCC) 15.2.1 20260209 * running under: Manjaro Linux * using session charset: UTF-8 -* current time: 2026-05-13 23:37:10 UTC +* 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/18s] WARNING +* checking CRAN incoming feasibility ... [9s/19s] WARNING Maintainer: ‘Winston Chang ’ Insufficient package version (submitted: 1.6.16.9000, existing: 1.6.17) @@ -28,9 +28,11 @@ Version contains large components (1.6.16.9000) * 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/82s] 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 @@ -87,8 +89,8 @@ Compilation used the following non-portable flag(s): * checking for unstated dependencies in ‘demo’ ... OK * checking for unstated dependencies in ‘tests’ ... OK * checking tests ... - Running ‘testthat.R’ [21s/22s] - [21s/22s] OK + 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 @@ -107,39 +109,41 @@ Loading required package: usethis ** 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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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 +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 diff --git a/check-gcc-clang/check-CXX17-gcc.log b/check-gcc-clang/check-CXX17-gcc.log index 9963e02f..efb610f9 100644 --- a/check-gcc-clang/check-CXX17-gcc.log +++ b/check-gcc-clang/check-CXX17-gcc.log @@ -8,13 +8,13 @@ Loading required package: usethis GNU Fortran (GCC) 15.2.1 20260209 * running under: Manjaro Linux * using session charset: UTF-8 -* current time: 2026-05-13 23:34:03 UTC +* 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 ... [8s/20s] WARNING +* checking CRAN incoming feasibility ... [7s/16s] WARNING Maintainer: ‘Winston Chang ’ Insufficient package version (submitted: 1.6.16.9000, existing: 1.6.17) @@ -28,9 +28,11 @@ Version contains large components (1.6.16.9000) * checking for portable file names ... OK * checking for sufficient/correct file permissions ... OK * checking serialization versions ... OK -* checking whether package ‘httpuv’ can be installed ... [135s/108s] 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: @@ -91,7 +93,7 @@ Compilation used the following non-portable flag(s): * checking for unstated dependencies in ‘tests’ ... OK * checking tests ... Running ‘testthat.R’ [19s/21s] - [20s/21s] OK + [19s/21s] OK * checking for non-standard things in the check directory ... OK * checking for detritus in the temp directory ... OK * DONE @@ -110,39 +112,41 @@ Loading required package: usethis ** 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++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 +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++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 +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++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 +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 diff --git a/check-gcc-clang/check-CXX20-clang.log b/check-gcc-clang/check-CXX20-clang.log index 857669c4..959fbfc1 100644 --- a/check-gcc-clang/check-CXX20-clang.log +++ b/check-gcc-clang/check-CXX20-clang.log @@ -8,13 +8,13 @@ Loading required package: usethis GNU Fortran (GCC) 15.2.1 20260209 * running under: Manjaro Linux * using session charset: UTF-8 -* current time: 2026-05-13 23:42:51 UTC +* 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 ... [8s/16s] WARNING +* checking CRAN incoming feasibility ... [11s/19s] WARNING Maintainer: ‘Winston Chang ’ Insufficient package version (submitted: 1.6.16.9000, existing: 1.6.17) @@ -28,9 +28,11 @@ Version contains large components (1.6.16.9000) * checking for portable file names ... OK * checking for sufficient/correct file permissions ... OK * checking serialization versions ... OK -* checking whether package ‘httpuv’ can be installed ... [78s/79s] 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 @@ -87,8 +89,8 @@ Compilation used the following non-portable flag(s): * checking for unstated dependencies in ‘demo’ ... OK * checking for unstated dependencies in ‘tests’ ... OK * checking tests ... - Running ‘testthat.R’ [23s/23s] - [23s/23s] OK + 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 @@ -107,39 +109,41 @@ Loading required package: usethis ** 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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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 +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 diff --git a/check-gcc-clang/check-CXX20-gcc.log b/check-gcc-clang/check-CXX20-gcc.log index b89d30ab..25d79cb7 100644 --- a/check-gcc-clang/check-CXX20-gcc.log +++ b/check-gcc-clang/check-CXX20-gcc.log @@ -8,13 +8,13 @@ Loading required package: usethis GNU Fortran (GCC) 15.2.1 20260209 * running under: Manjaro Linux * using session charset: UTF-8 -* current time: 2026-05-13 23:39:51 UTC +* 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/17s] WARNING +* checking CRAN incoming feasibility ... [9s/23s] WARNING Maintainer: ‘Winston Chang ’ Insufficient package version (submitted: 1.6.16.9000, existing: 1.6.17) @@ -28,9 +28,11 @@ Version contains large components (1.6.16.9000) * checking for portable file names ... OK * checking for sufficient/correct file permissions ... OK * checking serialization versions ... OK -* checking whether package ‘httpuv’ can be installed ... [127s/103s] 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: @@ -110,8 +112,10 @@ Loading required package: usethis ** 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 diff --git a/check-gcc-clang/check-CXX23-clang.log b/check-gcc-clang/check-CXX23-clang.log index 2d668d8b..6fdf67e7 100644 --- a/check-gcc-clang/check-CXX23-clang.log +++ b/check-gcc-clang/check-CXX23-clang.log @@ -8,13 +8,13 @@ Loading required package: usethis GNU Fortran (GCC) 15.2.1 20260209 * running under: Manjaro Linux * using session charset: UTF-8 -* current time: 2026-05-13 23:48:23 UTC +* 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 ... [9s/19s] WARNING +* checking CRAN incoming feasibility ... [7s/16s] WARNING Maintainer: ‘Winston Chang ’ Insufficient package version (submitted: 1.6.16.9000, existing: 1.6.17) @@ -28,9 +28,11 @@ Version contains large components (1.6.16.9000) * checking for portable file names ... OK * checking for sufficient/correct file permissions ... OK * checking serialization versions ... OK -* checking whether package ‘httpuv’ can be installed ... [90s/92s] 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 @@ -87,8 +89,8 @@ Compilation used the following non-portable flag(s): * checking for unstated dependencies in ‘demo’ ... OK * checking for unstated dependencies in ‘tests’ ... OK * checking tests ... - Running ‘testthat.R’ [23s/23s] - [23s/24s] OK + 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 @@ -107,39 +109,41 @@ Loading required package: usethis ** 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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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 +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 diff --git a/check-gcc-clang/check-CXX23-gcc.log b/check-gcc-clang/check-CXX23-gcc.log index 0c9cbd08..14b1ee8d 100644 --- a/check-gcc-clang/check-CXX23-gcc.log +++ b/check-gcc-clang/check-CXX23-gcc.log @@ -8,7 +8,7 @@ Loading required package: usethis GNU Fortran (GCC) 15.2.1 20260209 * running under: Manjaro Linux * using session charset: UTF-8 -* current time: 2026-05-13 23:45:25 UTC +* 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 @@ -28,13 +28,15 @@ Version contains large components (1.6.16.9000) * checking for portable file names ... OK * checking for sufficient/correct file permissions ... OK * checking serialization versions ... OK -* checking whether package ‘httpuv’ can be installed ... [129s/102s] 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.3Mb + installed size is 7.7Mb sub-directories of 1Mb or more: - libs 6.9Mb + libs 7.3Mb * checking package directory ... OK * checking for future file timestamps ... OK * checking DESCRIPTION meta-information ... OK @@ -90,8 +92,8 @@ Compilation used the following non-portable flag(s): * checking for unstated dependencies in ‘demo’ ... OK * checking for unstated dependencies in ‘tests’ ... OK * checking tests ... - Running ‘testthat.R’ [22s/23s] - [23s/23s] OK + 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 @@ -110,39 +112,41 @@ Loading required package: usethis ** 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++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 +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++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 +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++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 +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 diff --git a/check-gcc-clang/install-CXX17-clang.log b/check-gcc-clang/install-CXX17-clang.log index 6f08b0d1..32560d2d 100644 --- a/check-gcc-clang/install-CXX17-clang.log +++ b/check-gcc-clang/install-CXX17-clang.log @@ -6,39 +6,41 @@ Loading required package: usethis ** 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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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 +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 diff --git a/check-gcc-clang/install-CXX17-gcc.log b/check-gcc-clang/install-CXX17-gcc.log index faf410e0..6966e47b 100644 --- a/check-gcc-clang/install-CXX17-gcc.log +++ b/check-gcc-clang/install-CXX17-gcc.log @@ -6,39 +6,41 @@ Loading required package: usethis ** 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++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 +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++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 +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++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 +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 diff --git a/check-gcc-clang/install-CXX20-clang.log b/check-gcc-clang/install-CXX20-clang.log index 6f08b0d1..a0385456 100644 --- a/check-gcc-clang/install-CXX20-clang.log +++ b/check-gcc-clang/install-CXX20-clang.log @@ -6,39 +6,41 @@ Loading required package: usethis ** 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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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 +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 diff --git a/check-gcc-clang/install-CXX20-gcc.log b/check-gcc-clang/install-CXX20-gcc.log index faf410e0..35d2becd 100644 --- a/check-gcc-clang/install-CXX20-gcc.log +++ b/check-gcc-clang/install-CXX20-gcc.log @@ -6,8 +6,10 @@ Loading required package: usethis ** 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 diff --git a/check-gcc-clang/install-CXX23-clang.log b/check-gcc-clang/install-CXX23-clang.log index 6f08b0d1..8221c65c 100644 --- a/check-gcc-clang/install-CXX23-clang.log +++ b/check-gcc-clang/install-CXX23-clang.log @@ -6,39 +6,41 @@ Loading required package: usethis ** 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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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++ -I"/usr/include/R/" -DNDEBUG -pthread -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/later/include' -I'/home/pacha/R/x86_64-pc-linux-gnu-library/4.6/cpp11/include' -I/usr/local/include -fvisibility=hidden -DSTRICT_R_HEADERS -fpic -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-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++ -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 +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 diff --git a/check-gcc-clang/install-CXX23-gcc.log b/check-gcc-clang/install-CXX23-gcc.log index faf410e0..db1786c7 100644 --- a/check-gcc-clang/install-CXX23-gcc.log +++ b/check-gcc-clang/install-CXX23-gcc.log @@ -6,39 +6,41 @@ Loading required package: usethis ** 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++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 +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++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 +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++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 +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 diff --git a/scripts/check_prepare.sh b/scripts/check_prepare.sh index 50d5461c..692c9169 100755 --- a/scripts/check_prepare.sh +++ b/scripts/check_prepare.sh @@ -9,9 +9,11 @@ echo "===============================" echo "Preparing C++ code with $std standard and $compiler compiler" echo "" -# Add or replace CXX_STD in src/Makevars -if grep -q "^CXX_STD" ./src/Makevars; then - sed -i "s/^CXX_STD = .*/CXX_STD = ${std}/" ./src/Makevars +# 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 - echo "CXX_STD = ${std}" >> ./src/Makevars + sed -i "1s/^/CXX_STD = ${std}\n/" ./src/Makevars.in fi diff --git a/scripts/check_restore.sh b/scripts/check_restore.sh index a9236b43..535e9b53 100755 --- a/scripts/check_restore.sh +++ b/scripts/check_restore.sh @@ -8,7 +8,7 @@ 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 +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 index 84b649d4..925dda02 100755 --- a/scripts/check_run.sh +++ b/scripts/check_run.sh @@ -37,7 +37,8 @@ LOG="./check-gcc-clang/check-${std}-${compiler}.log" rm -f "${LOG}" # Capture everything (stdout+stderr) from this point into the per-iteration log -# while still printing to the console via tee. +# 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 @@ -47,7 +48,7 @@ if [ -z "${TARBALL}" ]; then exit 1 fi -# Run R CMD check on the tarball. Skip PDF/manual to avoid TeX font issues. +# 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 From 41d9d427dbb5e6ac5d0ada79bb3bab4281bca68e Mon Sep 17 00:00:00 2001 From: M Vargas Sepulveda Date: Sat, 27 Jun 2026 19:05:47 +0100 Subject: [PATCH 18/20] Update to libuv 1.52.1 --- src/libuv/.clang-tidy | 47 + src/libuv/.github/dependabot.yml | 7 + src/libuv/.github/stale.yml | 23 - src/libuv/.github/workflows/CI-docs.yml | 25 + src/libuv/.github/workflows/CI-sample.yml | 33 + src/libuv/.github/workflows/CI-unix.yml | 181 + src/libuv/.github/workflows/CI-win.yml | 128 + src/libuv/.github/workflows/CI.yml | 118 - src/libuv/.github/workflows/sanitizer.yml | 110 +- src/libuv/.gitignore | 4 + src/libuv/.mailmap | 14 +- src/libuv/.readthedocs.yaml | 8 +- src/libuv/AUTHORS | 140 +- src/libuv/CMakeLists.txt | 349 +- src/libuv/ChangeLog | 1562 +++- src/libuv/LICENSE | 51 - src/libuv/LICENSE-extra | 36 + src/libuv/LINKS.md | 18 +- src/libuv/MAINTAINERS.md | 23 +- src/libuv/Makefile.am | 81 +- src/libuv/Makefile.in | 1050 ++- src/libuv/README.md | 34 +- src/libuv/SECURITY.md | 27 + src/libuv/SUPPORTED_PLATFORMS.md | 14 +- src/libuv/aclocal.m4 | 441 +- src/libuv/ar-lib | 33 +- src/libuv/autogen.sh | 35 +- .../cmake-toolchains/cross-mingw32.cmake | 17 + src/libuv/compile | 42 +- src/libuv/config.guess | 121 +- src/libuv/config.sub | 952 ++- src/libuv/configure | 6868 +++++++++++------ src/libuv/configure.ac | 24 +- src/libuv/depcomp | 19 +- src/libuv/docs/code/cgi/main.c | 4 +- src/libuv/docs/code/interfaces/main.c | 14 +- src/libuv/docs/code/pipe-echo-server/main.c | 2 +- src/libuv/docs/code/plugin/main.c | 11 +- src/libuv/docs/code/thread-create/main.c | 5 +- src/libuv/docs/code/tty/main.c | 18 +- src/libuv/docs/code/udp-dhcp/main.c | 3 +- src/libuv/docs/code/uvcat/main.c | 1 - src/libuv/docs/code/uvtee/main.c | 1 - src/libuv/docs/requirements.txt | 63 +- src/libuv/docs/src/conf.py | 2 +- src/libuv/docs/src/design.rst | 44 +- src/libuv/docs/src/errors.rst | 3 + src/libuv/docs/src/fs.rst | 58 +- src/libuv/docs/src/fs_event.rst | 24 +- src/libuv/docs/src/guide/basics.rst | 23 +- src/libuv/docs/src/guide/filesystem.rst | 30 +- src/libuv/docs/src/guide/introduction.rst | 18 +- src/libuv/docs/src/guide/networking.rst | 3 +- src/libuv/docs/src/guide/processes.rst | 7 +- src/libuv/docs/src/guide/threads.rst | 3 +- src/libuv/docs/src/guide/utilities.rst | 8 +- src/libuv/docs/src/handle.rst | 7 +- src/libuv/docs/src/index.rst | 2 +- src/libuv/docs/src/loop.rst | 20 +- src/libuv/docs/src/metrics.rst | 48 +- src/libuv/docs/src/misc.rst | 219 +- src/libuv/docs/src/pipe.rst | 54 +- src/libuv/docs/src/poll.rst | 6 +- src/libuv/docs/src/process.rst | 48 +- src/libuv/docs/src/request.rst | 26 +- src/libuv/docs/src/static/loop_iteration.png | Bin 80528 -> 65186 bytes src/libuv/docs/src/tcp.rst | 86 +- src/libuv/docs/src/threading.rst | 87 + src/libuv/docs/src/threadpool.rst | 11 +- src/libuv/docs/src/timer.rst | 14 +- src/libuv/docs/src/tty.rst | 11 +- src/libuv/docs/src/udp.rst | 115 +- src/libuv/include/uv.h | 1705 ++-- src/libuv/include/uv/aix.h | 9 +- src/libuv/include/uv/android-ifaddrs.h | 54 - src/libuv/include/uv/bsd.h | 9 +- src/libuv/include/uv/darwin.h | 59 +- src/libuv/include/uv/errno.h | 331 +- src/libuv/include/uv/linux.h | 14 +- src/libuv/include/uv/os390.h | 6 +- src/libuv/include/uv/posix.h | 10 +- src/libuv/include/uv/stdint-msvc2008.h | 245 - src/libuv/include/uv/sunos.h | 14 +- src/libuv/include/uv/threadpool.h | 4 +- src/libuv/include/uv/tree.h | 1138 ++- src/libuv/include/uv/unix.h | 559 +- src/libuv/include/uv/version.h | 11 +- src/libuv/include/uv/win.h | 883 ++- src/libuv/install-sh | 18 +- src/libuv/libuv-static.pc.in | 2 +- src/libuv/libuv.pc.in | 1 + src/libuv/ltmain.sh | 1794 +++-- src/libuv/m4/libtool.m4 | 1306 +++- src/libuv/m4/libuv-check-flags.m4 | 63 +- src/libuv/m4/lt_obsolete.m4 | 4 +- src/libuv/m4/ltoptions.m4 | 160 +- src/libuv/m4/ltsugar.m4 | 2 +- src/libuv/m4/ltversion.m4 | 13 +- src/libuv/missing | 79 +- src/libuv/src/fs-poll.c | 7 +- src/libuv/src/heap-inl.h | 61 +- src/libuv/src/idna.c | 264 +- src/libuv/src/idna.h | 8 +- src/libuv/src/inet.c | 21 +- src/libuv/src/queue.h | 145 +- src/libuv/src/random.c | 4 +- src/libuv/src/strscpy.h | 6 +- src/libuv/src/strtok.c | 52 + src/libuv/src/strtok.h | 27 + src/libuv/src/thread-common.c | 175 + src/libuv/src/threadpool.c | 114 +- src/libuv/src/timer.c | 44 +- src/libuv/src/unix/aix.c | 85 +- src/libuv/src/unix/android-ifaddrs.c | 713 -- src/libuv/src/unix/async.c | 257 +- src/libuv/src/unix/atomic-ops.h | 63 - src/libuv/src/unix/bsd-ifaddrs.c | 38 +- src/libuv/src/unix/bsd-proctitle.c | 4 +- src/libuv/src/unix/core.c | 953 ++- src/libuv/src/unix/cygwin.c | 46 +- src/libuv/src/unix/darwin-proctitle.c | 20 +- src/libuv/src/unix/darwin-stub.h | 54 +- src/libuv/src/unix/darwin-syscalls.h | 17 + src/libuv/src/unix/darwin.c | 186 +- src/libuv/src/unix/epoll.c | 422 - src/libuv/src/unix/freebsd.c | 49 +- src/libuv/src/unix/fs.c | 664 +- src/libuv/src/unix/fsevents.c | 128 +- src/libuv/src/unix/getaddrinfo.c | 13 +- src/libuv/src/unix/getnameinfo.c | 2 +- src/libuv/src/unix/haiku.c | 9 +- src/libuv/src/unix/hurd.c | 172 + src/libuv/src/unix/ibmi.c | 35 +- src/libuv/src/unix/internal.h | 545 +- src/libuv/src/unix/kqueue.c | 289 +- src/libuv/src/unix/linux-core.c | 857 -- src/libuv/src/unix/linux-inotify.c | 327 - src/libuv/src/unix/linux-syscalls.c | 264 - src/libuv/src/unix/linux-syscalls.h | 71 - src/libuv/src/unix/linux.c | 2744 +++++++ src/libuv/src/unix/loop-watcher.c | 20 +- src/libuv/src/unix/loop.c | 57 +- src/libuv/src/unix/netbsd.c | 11 +- src/libuv/src/unix/openbsd.c | 68 +- src/libuv/src/unix/os390-syscalls.c | 60 +- src/libuv/src/unix/os390-syscalls.h | 49 +- src/libuv/src/unix/os390.c | 361 +- src/libuv/src/unix/pipe.c | 251 +- src/libuv/src/unix/poll.c | 5 +- src/libuv/src/unix/posix-hrtime.c | 13 +- src/libuv/src/unix/posix-poll.c | 45 +- src/libuv/src/unix/process.c | 877 ++- src/libuv/src/unix/pthread-fixes.c | 58 - src/libuv/src/unix/qnx.c | 57 +- src/libuv/src/unix/random-devurandom.c | 2 +- src/libuv/src/unix/random-getrandom.c | 2 - src/libuv/src/unix/signal.c | 52 +- src/libuv/src/unix/spinlock.h | 54 - src/libuv/src/unix/stream.c | 450 +- src/libuv/src/unix/sunos.c | 126 +- src/libuv/src/unix/tcp.c | 383 +- src/libuv/src/unix/thread.c | 419 +- src/libuv/src/unix/tty.c | 142 +- src/libuv/src/unix/udp.c | 703 +- src/libuv/src/uv-common.c | 142 +- src/libuv/src/uv-common.h | 501 +- src/libuv/src/win/async.c | 30 +- src/libuv/src/win/atomicops-inl.h | 60 - src/libuv/src/win/core.c | 425 +- src/libuv/src/win/dl.c | 15 +- src/libuv/src/win/error.c | 16 +- src/libuv/src/win/fs-event.c | 196 +- src/libuv/src/win/fs-fd-hash-inl.h | 81 +- src/libuv/src/win/fs.c | 1142 ++- src/libuv/src/win/getaddrinfo.c | 252 +- src/libuv/src/win/getnameinfo.c | 33 +- src/libuv/src/win/handle-inl.h | 163 +- src/libuv/src/win/handle.c | 26 +- src/libuv/src/win/internal.h | 323 +- src/libuv/src/win/loop-watcher.c | 4 +- src/libuv/src/win/pipe.c | 1041 +-- src/libuv/src/win/poll.c | 47 +- src/libuv/src/win/process-stdio.c | 35 +- src/libuv/src/win/process.c | 478 +- src/libuv/src/win/req-inl.h | 184 +- src/libuv/src/win/signal.c | 14 +- src/libuv/src/win/snprintf.c | 5 - src/libuv/src/win/stream-inl.h | 16 +- src/libuv/src/win/stream.c | 78 +- src/libuv/src/win/tcp.c | 452 +- src/libuv/src/win/thread.c | 375 +- src/libuv/src/win/tty.c | 392 +- src/libuv/src/win/udp.c | 374 +- src/libuv/src/win/util.c | 1061 +-- src/libuv/src/win/winapi.c | 128 +- src/libuv/src/win/winapi.h | 2542 +++--- src/libuv/src/win/winsock.c | 40 +- src/libuv/src/win/winsock.h | 219 +- src/libuv/test/benchmark-async-pummel.c | 15 +- src/libuv/test/benchmark-async.c | 37 +- src/libuv/test/benchmark-fs-stat.c | 12 +- src/libuv/test/benchmark-getaddrinfo.c | 10 +- src/libuv/test/benchmark-list.h | 280 +- src/libuv/test/benchmark-loop-count.c | 48 +- src/libuv/test/benchmark-million-async.c | 21 +- src/libuv/test/benchmark-million-timers.c | 14 +- src/libuv/test/benchmark-multi-accept.c | 116 +- src/libuv/test/benchmark-ping-pongs.c | 28 +- src/libuv/test/benchmark-ping-udp.c | 18 +- src/libuv/test/benchmark-pound.c | 14 +- src/libuv/test/benchmark-pump.c | 56 +- ...allback-order.c => benchmark-queue-work.c} | 70 +- src/libuv/test/benchmark-spawn.c | 24 +- src/libuv/test/benchmark-tcp-write-batch.c | 32 +- src/libuv/test/benchmark-thread.c | 8 +- src/libuv/test/benchmark-udp-pummel.c | 62 +- src/libuv/test/blackhole-server.c | 22 +- src/libuv/test/echo-server.c | 36 +- src/libuv/test/fixtures/one_file/one_file | 0 src/libuv/test/run-benchmarks.c | 2 +- src/libuv/test/run-tests.c | 55 +- src/libuv/test/runner-unix.c | 20 +- src/libuv/test/runner-unix.h | 8 +- src/libuv/test/runner-win.c | 12 +- src/libuv/test/runner-win.h | 7 +- src/libuv/test/runner.c | 60 +- src/libuv/test/runner.h | 89 +- src/libuv/test/task.h | 426 +- src/libuv/test/test-active.c | 34 +- src/libuv/test/test-async-null-cb.c | 18 +- src/libuv/test/test-async.c | 28 +- src/libuv/test/test-barrier.c | 58 +- src/libuv/test/test-callback-stack.c | 39 +- src/libuv/test/test-close-fd.c | 36 +- src/libuv/test/test-close-order.c | 20 +- src/libuv/test/test-condvar.c | 59 +- src/libuv/test/test-connect-unspecified.c | 35 +- src/libuv/test/test-connection-fail.c | 38 +- src/libuv/test/test-cwd-and-chdir.c | 18 +- src/libuv/test/test-default-loop-close.c | 21 +- src/libuv/test/test-delayed-accept.c | 42 +- src/libuv/test/test-dlerror.c | 10 +- src/libuv/test/test-eintr-handling.c | 26 +- src/libuv/test/test-embed.c | 136 +- src/libuv/test/test-emfile.c | 40 +- src/libuv/test/test-env-vars.c | 78 +- src/libuv/test/test-error.c | 26 +- src/libuv/test/test-fork.c | 314 +- src/libuv/test/test-fs-copyfile.c | 84 +- src/libuv/test/test-fs-event.c | 740 +- src/libuv/test/test-fs-fd-hash.c | 14 +- src/libuv/test/test-fs-open-flags.c | 98 +- src/libuv/test/test-fs-poll.c | 128 +- src/libuv/test/test-fs-readdir.c | 258 +- src/libuv/test/test-fs.c | 2855 ++++--- src/libuv/test/test-get-currentexe.c | 26 +- src/libuv/test/test-get-loadavg.c | 6 +- src/libuv/test/test-get-memory.c | 21 +- src/libuv/test/test-get-passwd.c | 144 +- src/libuv/test/test-getaddrinfo.c | 80 +- src/libuv/test/test-gethostname.c | 16 +- src/libuv/test/test-getnameinfo.c | 32 +- src/libuv/test/test-getsockname.c | 85 +- src/libuv/test/test-getters-setters.c | 51 +- src/libuv/test/test-gettimeofday.c | 6 +- src/libuv/test/test-handle-fileno.c | 44 +- src/libuv/test/test-homedir.c | 37 +- src/libuv/test/test-hrtime.c | 15 +- src/libuv/test/test-idle.c | 54 +- src/libuv/test/test-idna.c | 126 +- src/libuv/test/test-iouring-pollhup.c | 111 + src/libuv/test/test-ip-name.c | 24 +- src/libuv/test/test-ip4-addr.c | 30 +- src/libuv/test/test-ip6-addr.c | 56 +- .../test-ipc-heavy-traffic-deadlock-bug.c | 28 +- src/libuv/test/test-ipc-send-recv.c | 130 +- src/libuv/test/test-ipc.c | 357 +- src/libuv/test/test-list.h | 2133 ++--- src/libuv/test/test-loop-alive.c | 9 +- src/libuv/test/test-loop-close.c | 28 +- src/libuv/test/test-loop-configure.c | 14 +- src/libuv/test/test-loop-handles.c | 74 +- src/libuv/test/test-loop-oom.c | 62 + src/libuv/test/test-loop-stop.c | 30 +- src/libuv/test/test-loop-time.c | 28 +- src/libuv/test/test-metrics.c | 295 +- src/libuv/test/test-multiple-listen.c | 28 +- src/libuv/test/test-mutexes.c | 44 +- ...-not-readable-nor-writable-on-read-error.c | 38 +- .../test/test-not-writable-after-shutdown.c | 18 +- src/libuv/test/test-osx-select.c | 24 +- src/libuv/test/test-ping-pong.c | 74 +- src/libuv/test/test-pipe-bind-error.c | 118 +- .../test/test-pipe-close-stdout-read-stdin.c | 26 +- src/libuv/test/test-pipe-connect-error.c | 26 +- src/libuv/test/test-pipe-connect-multiple.c | 95 +- src/libuv/test/test-pipe-connect-prepare.c | 18 +- src/libuv/test/test-pipe-getsockname.c | 282 +- src/libuv/test/test-pipe-pending-instances.c | 10 +- src/libuv/test/test-pipe-sendmsg.c | 42 +- src/libuv/test/test-pipe-server-close.c | 26 +- src/libuv/test/test-pipe-set-fchmod.c | 24 +- src/libuv/test/test-pipe-set-non-blocking.c | 43 +- src/libuv/test/test-platform-output.c | 135 +- .../test-poll-close-doesnt-corrupt-stack.c | 26 +- src/libuv/test/test-poll-close.c | 6 +- src/libuv/test/test-poll-closesocket.c | 26 +- src/libuv/test/test-poll-multiple-handles.c | 35 +- src/libuv/test/test-poll-oob.c | 92 +- src/libuv/test/test-poll.c | 184 +- src/libuv/test/test-process-priority.c | 30 +- .../test/test-process-title-threadsafe.c | 33 +- src/libuv/test/test-process-title.c | 30 +- src/libuv/test/test-queue-foreach-delete.c | 43 +- src/libuv/test/test-random.c | 46 +- src/libuv/test/test-readable-on-eof.c | 39 +- src/libuv/test/test-ref.c | 110 +- src/libuv/test/test-run-nowait.c | 7 +- src/libuv/test/test-run-once.c | 6 +- src/libuv/test/test-semaphore.c | 30 +- src/libuv/test/test-shutdown-close.c | 40 +- src/libuv/test/test-shutdown-eof.c | 54 +- src/libuv/test/test-shutdown-simultaneous.c | 30 +- src/libuv/test/test-shutdown-twice.c | 24 +- src/libuv/test/test-signal-multiple-loops.c | 106 +- src/libuv/test/test-signal-pending-on-close.c | 45 +- src/libuv/test/test-signal.c | 156 +- src/libuv/test/test-socket-buffer-size.c | 24 +- src/libuv/test/test-spawn.c | 806 +- src/libuv/test/test-stdio-over-pipes.c | 74 +- src/libuv/test/test-strscpy.c | 24 +- src/libuv/test/test-strtok.c | 90 + src/libuv/test/test-tcp-alloc-cb-fail.c | 52 +- src/libuv/test/test-tcp-bind-error.c | 152 +- src/libuv/test/test-tcp-bind6-error.c | 58 +- src/libuv/test/test-tcp-close-accept.c | 70 +- .../test/test-tcp-close-after-read-timeout.c | 183 + src/libuv/test/test-tcp-close-reset.c | 162 +- .../test/test-tcp-close-while-connecting.c | 28 +- src/libuv/test/test-tcp-close.c | 36 +- .../test/test-tcp-connect-error-after-write.c | 42 +- src/libuv/test/test-tcp-connect-error.c | 10 +- src/libuv/test/test-tcp-connect-timeout.c | 50 +- src/libuv/test/test-tcp-connect6-error.c | 68 +- src/libuv/test/test-tcp-create-socket-early.c | 76 +- src/libuv/test/test-tcp-flags.c | 34 +- src/libuv/test/test-tcp-oob.c | 58 +- src/libuv/test/test-tcp-open.c | 142 +- src/libuv/test/test-tcp-read-stop-start.c | 46 +- src/libuv/test/test-tcp-read-stop.c | 40 +- src/libuv/test/test-tcp-reuseport.c | 259 + src/libuv/test/test-tcp-rst.c | 113 + .../test/test-tcp-shutdown-after-write.c | 36 +- src/libuv/test/test-tcp-try-write-error.c | 42 +- src/libuv/test/test-tcp-try-write.c | 44 +- src/libuv/test/test-tcp-unexpected-read.c | 52 +- src/libuv/test/test-tcp-write-after-connect.c | 30 +- src/libuv/test/test-tcp-write-fail.c | 41 +- src/libuv/test/test-tcp-write-in-a-row.c | 143 + src/libuv/test/test-tcp-write-queue-order.c | 56 +- .../test-tcp-write-to-half-open-connection.c | 38 +- src/libuv/test/test-tcp-writealot.c | 47 +- src/libuv/test/test-thread-affinity.c | 149 + src/libuv/test/test-thread-equal.c | 14 +- src/libuv/test/test-thread-name.c | 183 + src/libuv/test/test-thread-priority.c | 109 + src/libuv/test/test-thread.c | 111 +- src/libuv/test/test-threadpool-cancel.c | 254 +- src/libuv/test/test-threadpool.c | 26 +- src/libuv/test/test-timer-again.c | 40 +- src/libuv/test/test-timer-from-check.c | 52 +- src/libuv/test/test-timer.c | 268 +- src/libuv/test/test-tmpdir.c | 35 +- src/libuv/test/test-tty-duplicate-key.c | 128 +- .../test-tty-escape-sequence-processing.c | 247 +- src/libuv/test/test-tty.c | 250 +- src/libuv/test/test-udp-alloc-cb-fail.c | 58 +- src/libuv/test/test-udp-bind.c | 28 +- src/libuv/test/test-udp-connect.c | 79 +- src/libuv/test/test-udp-connect6.c | 61 +- src/libuv/test/test-udp-create-socket-early.c | 56 +- src/libuv/test/test-udp-dgram-too-big.c | 22 +- src/libuv/test/test-udp-ipv6.c | 78 +- src/libuv/test/test-udp-mmsg.c | 66 +- src/libuv/test/test-udp-multicast-interface.c | 28 +- .../test/test-udp-multicast-interface6.c | 28 +- src/libuv/test/test-udp-multicast-join.c | 74 +- src/libuv/test/test-udp-multicast-join6.c | 63 +- src/libuv/test/test-udp-multicast-ttl.c | 24 +- src/libuv/test/test-udp-open.c | 106 +- src/libuv/test/test-udp-options.c | 60 +- .../test/test-udp-recv-cb-close-pollerr.c | 112 + src/libuv/test/test-udp-recv-in-a-row.c | 128 + .../test/test-udp-recvmsg-unreachable-error.c | 125 + src/libuv/test/test-udp-reuseport.c | 298 + src/libuv/test/test-udp-send-and-recv.c | 64 +- src/libuv/test/test-udp-send-hang-loop.c | 22 +- src/libuv/test/test-udp-send-immediate.c | 36 +- src/libuv/test/test-udp-send-unreachable.c | 45 +- src/libuv/test/test-udp-sendmmsg-error.c | 12 +- src/libuv/test/test-udp-try-send.c | 70 +- src/libuv/test/test-uname.c | 18 +- src/libuv/test/test-walk-handles.c | 18 +- src/libuv/test/test-watcher-cross-stop.c | 32 +- src/libuv/tsansupp.txt | 2 + tools/update_libuv.R | 2 +- 406 files changed, 41411 insertions(+), 26109 deletions(-) create mode 100644 src/libuv/.clang-tidy create mode 100644 src/libuv/.github/dependabot.yml delete mode 100644 src/libuv/.github/stale.yml create mode 100644 src/libuv/.github/workflows/CI-docs.yml create mode 100644 src/libuv/.github/workflows/CI-sample.yml create mode 100644 src/libuv/.github/workflows/CI-unix.yml create mode 100644 src/libuv/.github/workflows/CI-win.yml delete mode 100644 src/libuv/.github/workflows/CI.yml create mode 100644 src/libuv/LICENSE-extra create mode 100644 src/libuv/SECURITY.md create mode 100644 src/libuv/cmake-toolchains/cross-mingw32.cmake delete mode 100644 src/libuv/include/uv/android-ifaddrs.h delete mode 100644 src/libuv/include/uv/stdint-msvc2008.h create mode 100644 src/libuv/src/strtok.c create mode 100644 src/libuv/src/strtok.h create mode 100644 src/libuv/src/thread-common.c delete mode 100644 src/libuv/src/unix/android-ifaddrs.c delete mode 100644 src/libuv/src/unix/atomic-ops.h create mode 100644 src/libuv/src/unix/darwin-syscalls.h delete mode 100644 src/libuv/src/unix/epoll.c create mode 100644 src/libuv/src/unix/hurd.c delete mode 100644 src/libuv/src/unix/linux-core.c delete mode 100644 src/libuv/src/unix/linux-inotify.c delete mode 100644 src/libuv/src/unix/linux-syscalls.c delete mode 100644 src/libuv/src/unix/linux-syscalls.h create mode 100644 src/libuv/src/unix/linux.c delete mode 100644 src/libuv/src/unix/pthread-fixes.c delete mode 100644 src/libuv/src/unix/spinlock.h delete mode 100644 src/libuv/src/win/atomicops-inl.h rename src/libuv/test/{test-callback-order.c => benchmark-queue-work.c} (52%) create mode 100644 src/libuv/test/fixtures/one_file/one_file create mode 100644 src/libuv/test/test-iouring-pollhup.c create mode 100644 src/libuv/test/test-loop-oom.c create mode 100644 src/libuv/test/test-strtok.c create mode 100644 src/libuv/test/test-tcp-close-after-read-timeout.c create mode 100644 src/libuv/test/test-tcp-reuseport.c create mode 100644 src/libuv/test/test-tcp-rst.c create mode 100644 src/libuv/test/test-tcp-write-in-a-row.c create mode 100644 src/libuv/test/test-thread-affinity.c create mode 100644 src/libuv/test/test-thread-name.c create mode 100644 src/libuv/test/test-thread-priority.c create mode 100644 src/libuv/test/test-udp-recv-cb-close-pollerr.c create mode 100644 src/libuv/test/test-udp-recv-in-a-row.c create mode 100644 src/libuv/test/test-udp-recvmsg-unreachable-error.c create mode 100644 src/libuv/test/test-udp-reuseport.c create mode 100644 src/libuv/tsansupp.txt diff --git a/src/libuv/.clang-tidy b/src/libuv/.clang-tidy new file mode 100644 index 00000000..0f912ae8 --- /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 00000000..700707ce --- /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 6f2fb663..00000000 --- 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 00000000..32e24c72 --- /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 00000000..9e7bb8ba --- /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 00000000..6b82ae5b --- /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 00000000..7dcd7096 --- /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 c8af0199..00000000 --- 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 c0a54b28..6c84a9f1 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 7eb49322..6d396efb 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 b23377c6..b8adf7b6 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 e53b9f3e..5290ec33 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 a18d0966..c8def153 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 b41e5462..9b38b555 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 ad661769..0a4fd4b5 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 28f17339..6566365d 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 00000000..7d8ee65f --- /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 b8204e56..c73c4552 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 fb7e5ef3..ff8be88b 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 4b61ef21..cc70ffe4 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 @@ -388,10 +410,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 +434,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 +450,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 +461,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 +477,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 +516,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 +527,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 +556,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 5b0d6017..df83e280 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 \ @@ -229,14 +229,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 +242,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 +310,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 +351,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 +376,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 +400,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 +410,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 +486,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 +495,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 +539,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 +579,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 +631,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 +668,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 +686,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 +725,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 +786,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 +803,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 +814,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 +852,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 +887,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 +896,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 +904,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 +929,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 +976,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 +1015,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 +1026,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 +1076,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 +1095,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 +1137,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 +1181,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 +1227,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 +1281,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ @@ -1308,8 +1334,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 +1387,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 +1482,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 +1519,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 +1570,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 +1598,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 +1621,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 +1633,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 +1691,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 +1741,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 +1775,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/$(DEPDIR)/$(am__dirstamp) -src/unix/libuv_la-linux-inotify.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-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 +1796,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 +1816,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 +1894,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 +1908,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 +2016,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 +2028,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 +2050,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 +2072,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 +2084,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 +2148,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 +2191,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 +2200,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 +2208,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 +2233,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 +2280,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 +2319,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 +2330,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 +2380,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 +2399,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 +2441,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 +2457,7 @@ distclean-compile: $(am__depfiles_remade): @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + @: >>$@ am--depfiles: $(am__depfiles_remade) @@ -2458,6 +2520,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 +2562,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 +2898,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 +3017,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@ -@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 - -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-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-inotify.lo `test -f 'src/unix/linux-inotify.c' || echo '$(srcdir)/'`src/unix/linux-inotify.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-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@ +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-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 +3038,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 +3185,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 +3731,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 +3829,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 +3857,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 +3927,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 +4585,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 +4669,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 +4823,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 +4851,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 +4977,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 +5061,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 +5509,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 +5551,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 +5876,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 +5927,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 +5972,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 +5984,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 +6088,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 +6112,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 +6126,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 +6134,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 +6159,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 +6206,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 +6245,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 +6256,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 +6306,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 +6325,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 +6367,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 +6428,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 +6442,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 +6450,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 +6475,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 +6522,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 +6561,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 +6572,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 +6622,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 +6641,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 +6683,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 +6721,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 +6741,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 06486feb..1f1fdbfe 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 00000000..32abba81 --- /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 87e23823..b317da6f 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 ac4b8fe5..3ed9d128 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 c349042c..d0a7b5c8 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 271c2ee8..cf82cc63 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 00000000..3fe1dd69 --- /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 df363c8f..02ff093c 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 e81d3ae7..48a68460 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 40e98680..929e741f 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,555 @@ 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" - -fi - - - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes -then : - -fi - -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; } - - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes -then : - CFLAGS="$CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; + ;; +esac 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 "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 eval test x$`printf '%s\n' "cc_cv_cflags_werror_$flag" | sed "$as_sed_sh"` = xyes 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}; } -then : - printf %s "(cached) " >&6 -else $as_nop - ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $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'" fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS="$ac_save_CFLAGS" - + ;; +esac fi +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 : - + AM_CFLAGS="$AM_CFLAGS $flag"; DEBUG_CFLAGS="$DEBUG_CFLAGS $flag"; fi -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; } - if eval test x$`printf "%s\n" "cc_cv_cflags_$flag" | $as_tr_sh` = xyes -then : - CFLAGS="$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 +5873,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 +5894,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 +5923,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 +5944,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 +5972,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 +5981,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 +6002,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 +6015,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 +6032,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 +6058,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 +6103,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 +6130,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 +6151,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 +6182,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 +6194,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 +6220,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 +6241,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 +6266,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 +6278,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 +6304,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 +6340,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 +6352,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 +6379,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 +6417,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 +6429,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 +6456,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 +6488,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 +6526,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 +6559,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 +6601,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 +6628,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 +6654,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 +6671,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 +6692,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 +6721,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 +6742,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 +6770,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 +6799,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 +6818,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 +6854,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 +6883,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 +6926,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 +6964,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 +7017,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 +7039,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 +7054,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 +7175,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 +7197,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 +7271,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 +7296,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 +7317,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 +7341,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 +7361,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 +7375,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 +7391,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 +7401,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 +7410,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 +7425,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 +7446,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 +7478,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 +7497,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 +7505,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 +7521,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 +7567,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 +7615,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 +7636,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 +7661,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 +7682,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 +7706,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 +7727,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 +7753,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 +7768,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 +7790,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,36 +7836,147 @@ 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_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 + +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;} +{ 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 @@ -7153,25 +7984,41 @@ esac fi : ${AR=ar} -: ${AR_FLAGS=cru} +# 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 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 + + +# 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 +8037,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 +8045,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 +8055,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 +8076,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 +8097,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 +8122,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 +8143,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 +8167,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 +8184,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 +8198,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 +8258,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 +8279,7 @@ case $host_os in aix*) symcode='[BCDT]' ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | mingw* | windows* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) @@ -7552,7 +8294,7 @@ osf*) symcode='[BCDEGQRST]' ;; solaris*) - symcode='[BDRT]' + symcode='[BCDRT]' ;; sco3.2v5*) symcode='[DT]' @@ -7576,13 +8318,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 +8336,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 +8373,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 +8393,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 +8411,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 +8490,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 +8518,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 +8576,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 +8593,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 +8659,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 +8680,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 +8724,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 +8744,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 +8759,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 +8782,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 +8793,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 +8801,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 +8812,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 +8823,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 +8860,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 +8886,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 +8912,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 +8923,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 +8940,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 +8977,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 +8998,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 +9023,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 +9044,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 +9068,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 +9079,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 +9111,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 +9132,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 +9157,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 +9178,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 +9202,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 +9215,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 +9236,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 +9261,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 +9282,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 +9306,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 +9319,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 +9340,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 +9365,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 +9386,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 +9410,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 +9423,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 +9444,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 +9469,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 +9490,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 +9514,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 +9527,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 +9548,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 +9573,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 +9594,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 +9618,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 +9654,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 +9686,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; } +{ 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}: checking for -exported_symbols_list linker flag" >&5 -printf %s "checking for -exported_symbols_list linker flag... " >&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_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 "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 +9755,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 +9799,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 +9894,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 +9914,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 +9941,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 +10034,9 @@ fi + + + # Check whether --enable-fast-install was given. if test ${enable_fast_install+y} then : @@ -9168,8 +10057,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 +10072,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 +10129,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 +10210,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 +10224,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 +10256,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 +10281,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 +10330,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 +10349,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 +10398,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 +10442,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 +10493,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 +10520,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 +10584,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 +10669,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 +10687,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 +10720,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 +10734,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 +10765,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 +10790,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 +10844,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 +10909,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 +10953,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 +10992,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 +11008,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 +11019,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 +11037,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 +11068,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 +11083,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 +11125,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 +11140,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 +11152,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 +11160,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 +11176,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 +11220,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 +11278,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 +11332,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 +11342,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 +11362,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 +11370,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 +11389,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 +11405,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 +11438,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 +11453,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 +11465,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 +11482,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 +11493,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 +11614,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 +11739,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 +11772,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 +11795,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 +11828,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 +11885,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 +11902,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.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 - $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + $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 +11939,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 +11947,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 +11980,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 +12015,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 +12081,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 +12097,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 +12108,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 +12152,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 +12167,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 +12192,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 +12228,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 +12252,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 +12271,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 +12296,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 +12306,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 +12464,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 +12501,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 +12531,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 +12543,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 +12706,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 +12715,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 +12773,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 +12847,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 +12941,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 +12952,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 +12983,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 +13019,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 +13056,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 +13089,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 +13113,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 +13164,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 +13267,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 +13288,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 +13300,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 +13320,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 +13348,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 +13359,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 +13379,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 +13409,8 @@ netbsd*) shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes + enable_cxx_stdlib=yes + stdlibflag= ;; newsos6) @@ -12393,7 +13432,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 +13455,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 +13497,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,34 +13605,530 @@ 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 +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 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 + if test yes = "$GCC"; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' -# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... -configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + 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' + ;; -# ... 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" + 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 + ;; -# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool + 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 +14227,7 @@ 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 +14252,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 +14285,7 @@ else lt_cv_dlopen_self=yes ;; - mingw* | pw32* | cegcc*) + mingw* | windows* | pw32* | cegcc*) lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; @@ -12746,21 +14297,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 +14329,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 +14367,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 +14400,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 +14452,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 +14499,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 +14546,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 +14602,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 +14658,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 +14686,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 +14702,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 +14766,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 +14794,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 +14810,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 +14852,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 +14903,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 +14933,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 +14967,13 @@ CC=$lt_save_CC + + + + + + + ac_config_commands="$ac_config_commands libtool" @@ -13367,46 +14984,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 +14994,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 +15004,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 +15023,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 +15040,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 +15058,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 +15082,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 +15099,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 +15128,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 +15291,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 +15320,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 +15397,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 +15447,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 +15472,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 +15529,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 +15581,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 +15599,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 +15619,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 +15640,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 +15648,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 +15670,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 +15722,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 +15742,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 +15768,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 +15808,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 +15828,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 +15867,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 +15888,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 +15943,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 +15993,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 +16010,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 +16060,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 +16077,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 +16127,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 +16144,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 +16194,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 +16211,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 +16261,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 +16278,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 +16328,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 +16345,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 +16395,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 +16417,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 +16454,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 +16538,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 +16629,7 @@ else fi if case $host_os in - *freebsd*) true ;; + freebsd*) true ;; *) false ;; esac; then FREEBSD_TRUE= @@ -15003,25 +16751,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 +16792,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 +16820,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 +16832,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 +16844,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 +16862,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 +16877,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 +16909,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 +16929,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 +16940,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 +16980,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 +17052,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 +17077,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 +17167,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 +17189,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 +17235,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 +17254,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 +17286,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 +17308,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 +17319,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 +17349,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 +17358,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 +17402,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 +17442,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 +17450,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 +17480,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 +17498,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 +17533,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 +17571,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 +17612,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 +17641,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 +17653,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 +17774,7 @@ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ +FILECMD \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ @@ -16051,7 +17783,7 @@ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ -AR_FLAGS \ +lt_ar_flags \ archiver_list_spec \ STRIP \ RANLIB \ @@ -16158,7 +17890,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 +17903,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 +17925,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 +17949,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 +17977,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 +17994,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 +18039,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 +18070,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 +18102,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 +18115,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 +18137,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 +18180,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 +18204,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 +18251,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 +18268,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 +18282,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 +18313,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 +18339,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 +18358,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 +18381,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 +18393,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 +18415,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 +18440,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 +18472,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 +18521,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 +18597,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 +18627,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 +18873,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 +19007,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 +19022,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 +19038,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 eda93b22..c5246110 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,16 +27,17 @@ 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]) CC_CHECK_CFLAGS_APPEND([-Wno-unused-parameter]) -CC_CHECK_CFLAGS_APPEND([-Wno-declaration-after-statement]) CC_CHECK_CFLAGS_APPEND([-Wstrict-prototypes]) # AM_PROG_AR is not available in automake v0.11 but it's essential in v0.12. m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) @@ -61,7 +62,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 +74,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 +88,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 715e3431..9f6725b9 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 d2e34265..97422110 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 cac12c26..744a47f2 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 4f28fd03..6a233888 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 06e581e6..01335bbc 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 70224c1e..7e345ef0 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 d44ec62c..ce360798 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 fc2ca0c8..4dc28390 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 b03b0944..01923f2a 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 6216c2eb..be307b9a 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 8386e017..0319b308 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 f6f43253..354759a2 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 a23e33a2..7ad62076 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 c7240f35..a2e94d96 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 0bf2abed..99524e70 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 e28ec625..bfdecdd7 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 457fb15c..2b21d730 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 2d5f6cb9..c0bfbf5b 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 0656e4d8..91f0fa55 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 dcb56431..892ade00 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 c1278f17..024af1db 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 3990e442..f5f98451 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 4657b1b0..9a399a7f 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 0edb7d7a..2b1b8eec 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 5bdb4be8..448de406 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 0f5ddfb3..3d1973ba 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 696c620d..0141d032 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 8017e8e1..09db6244 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 5fa83b80..bb77f90e 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 93a101ec..b598f073 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 ea6c4b9a..f15dcf61 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 a0414431..aacabe02 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 e769cf338b4456ea688b0abf888b646a4253e0eb..1545f84a8dcd1cf7b5035f467fea69321e230302 100644 GIT binary patch literal 65186 zcmagF2Ut@}+xLqQDIyYzBGOABfOH5=dO`^`^p2DS2mwMbQltn0q=-QUq!>j}dT#=v zpnzaOiZnqK6)7qT2nc+W?S9_xdC$4db+-E=Yt5Q9Yu1!|=KkIPm2PQn$a3t=F&Y{g z7Goo%6%EaiAsQMw2S$33f~>CY0zXGWtqk>OYF_Xz)6g(XgrOY50-|t!1S}0qQUC7| zOhL{!C^QVFh=eI9co2y)-hLiFAszvtGJ)7IkOZy=1bO@6{IK4C^C-wEC`!vIO3Nc` zz*R+EWo7V3NmWKwP1Wgdeh(jP;J*bb%gBKO;12TgFhxCZWa<|f9tD1*R1xk7B?)k( zOC%Do_E=97KkzgIWknSkMFjO06C)clQ<#E2I41b{W5JIh*2_PLdW*hqNKgPsF_4#+ zllkW#NVN9Ad4%}=R}s{jW5Yar{?m96wbl@x=J9?~Y>F-}zln*P(amY`Xr<^L9S<1;a*Cej zC{?vcqEncurzs)Y53P$+ls5_sh(;<~M~3P<+RN!e*Tm)f|zC03)x6NJ5mNN{FGk6V5wam)ce)Q6|3D;T~346MsDmkYI}rkXIslsz#!M ziE2T1F-qa)p^gXxAG~g`wWnW@8o|%T5fv4Rh(Z!PJ@u7L4bA0L&24Rc<$bLcje<=O zYC$SW#sm{ZC!Ad{D9+k8z|qbc>uDN{bo6sFRJKRUqvZooI8!G_TeZMIBZml-p_Qe9 zi2=gG3~din&@-V{D%xAc9ucH$;Y96DBarF{ejUAWRx03F4I7AvR*ukDu*8E@PZL78 z57r!IX`)8-#o8i+0xbz4h;Wp?u}M&rIV#%3(1NIE9D}mAB2Nmv*M;Yj2YQk1e+KIhg+*r-&@}y%qrAOF4V-zKFrJ{ z(#+Jv(Zq;=_4lyS^9eFC4~+`6Q^2dJsfCB&m9dK9W;kP9kTu@V(@9Ux9_eix1Ih@n z_KNli_jYvj3W)KS)3q_viwMMl^ay+~)=xHHEiNC79gA)ogzrM9fl)in#&oZENuM2yXl#PTN8Zkae9IF7AAT| zfsW?pj)p;DL_}nykC!bd-^jqs$2%g>R?$#Rk7yQc?&pP-$A{Ugf=d_$IXQE~U`Lda zAId%;IKazJ%~nmtR#n~_VeX-dv5Hhxj#N>$(KS)V_+gQ1XkSNV1!I(Bc%Z66l!|^B z!Aw6C*b6-~#~?Jp(_76C>yI=DwL+RY`Wwdh$k{~O5_AnC%oR|e+0nWLJ+FWWqOF{Y zoVmQ5nl8qkIw{amwz}a#o+?&Rj@EKWH9|xT-pDTmTtFZl^ew$r6m%^E&28oN!og!4 zod~x2K~d4R-q=W_zOAP&GC*Ng*BJKP!p<&8l{!u~ZPL{#O$^nt)1lw>Ylp#jR(cC{8p=57pjth-Z zQZfzFlgHug>_FirYL=E3VYW)dKx;)?b6-y@Yg@dT1u-aufVc69#Cu?^jlx54fk^6z zu(MZE)>8_wa3X|Qns}?=Ok<)w%TBbTuti1d zIeDl?7%EY_1)(fw=x?fEPf$_}4^fP9LKp@p830qOXK95*I4J26F}gt(HW(ZR6|CZA z7!=~47@RF7!@qS3S%W76l9Kw#2I)|tx|}-nMn*1p%xvE z1%wh_AWriu#s_SV6kSS6bXuMqzzFI|KM(oxyT zkQk=mp%7__RWVoau(vX>QZuyjiwLu~(+v&@jkfjk^E8VHRq%=-T6(DI+S)kjdItsC zg`icvgTXSVCud_A6X@+3Vu?{OwL~j;+AA0$iIMuMI9qHCUf0e~-Xc;DjW$z>REzRJ zg_=63=%SqT33!uG2Y*vPGi8ET7@p{%6o~dvmA8)yQBl@c#F&7E(ZIyc*vH-y9C$_H z!N>tdin@AG|EIqFe^#D=*V~o_biE>*lKH4;kXuXtw=LUJ^ z&TQ(;-S0!g|NYBAYl8Xv3-ApV8)WmU zjl!9Z2nj+`E<&NS>5O6Qml}q3$zS>PbpD=$W4iwwf7RE? zXwaJdMFwSnv?eB6;UR>dudVgptl%=zQ6Mk|{r7Yla)b?Aq}234;_p*8g#;;8tSXwY zzo!977fB6fXPm}4sbw)H?n0rMiL{~;_P?hHT^;0<7)$ZpLiH^b7IcRpsxG7fy+)E+{cm_7B#b>7(<92vdBLzYgG3>vqQ%WgXRyyfsq$;9tn0%6Oeurv%sGZTtw z@#z$w*ey*sU^@fq2g!JJ+Uqh~#nM5MH04)MR!E~IvVdny(uh%s54`3ZA!#g}GJIlY zA>?51TTgPMBR%sGA-Q9T^3Qm!Exl7Nk`zSF>kr!@xjicfaiAfFJ6K8ZMg!HdKZm<3 zwXdtP4EOtkUTtR27^YYlLdLW=Rs_7VlpOgfIq?4npR(epPak@#eDv@2G%`< zbL*{FPVw^ZS1$@O;WO=$4)DH@T1Sc(!E2 zi`N3nUL6_=37#{M;NE1=-b*GabYkq01$-^NOMgJM8GIU#pQ6<}&q@0sTcf6IfDycz z!K2h0)g*;JyQ?F5I>>@>0VoESMbz1070@~-=#PB>h5`oC5wRwzqd>jRRwsm$q8zUu z_iluqz64&ovjn^>wO#lTgc}sMlba9p7w9x02@iifWeyx>>Oaqhg-hor7Yn1~V8|KI z$8)DdD8qrdoEThM08#C5YbK~bYRFI^Zmg$UyaT<)>2&o+-);U3(-s~`~jUH8q;ATf{P zh-tr1bx%$xu2i>{w11&wo_X9^5HX$ZKD|NR~}7e1*BY84vH_j&&u1}6Evq3R;pFQ{92!fczCmY1U@uw?>=|!=Un8xauxhJ+Y+a>sfTRb z?(#i8PHdwjBSxliSOGUAac{K@UX-7p_%jinqq@kr5`+4YT5^LCJJ&7b$?59J_&UBc z;1p(eR$Xmo0!`_QYkx$`e53!A^YCo!&yi2ViZ7K^W{JtY;b^6K;mot1TXT`_if>F6 z!*$9N4i6%-@|rCs;M-F^0z7r>78aVDKM6HRQ=&HHDS7YocWN)ow0~sJJn26(*BRNm{sOee zoR)xDu3|vz;lW;!@`S^aj>OUn>uNv0^&A#*<8Jg4x;7_T&Lv%VP>x^gT)O65=p58F z&Ko|4!CiNasGn-zVDj~B&?#fRv8cN|SzFp1UEMs<;6L-L*hIE#EcVZjXE;i_n1WPQ zT~e{P=oQPx>3dGaZ``;rcTo?v_K@UeFT1zm@t_}uZ$mKTg?+r!5;eJcR}5wJ2`29bYAXE+n%S zc7E%g(R!lu?0mwchPDQ?p_A$v59Xm#+y`=Y8l>7lqhJZB>oisRj2gkig zLgY^0PoI5qZ>LMhopZ}~t`<(ZC(MPdOpJW8h(pW}6gv;lV={E=DUgCIr)Rl;zd^c| z1V81DsB`xz4j(?s^%wW;b8*%ZJizi!Eu8VL(SpJr-MX2rv98*9u)E?cj0)J$m^pI# zV!`Hh5wU|8G^;M5=G-%!KpaOw9*UM$6h%fyH9!6dqcwW0CQpue_5uXM1Os+4*@meGGjhJDx>Y zR5vx3E`9BI#r-cn)xg%NCx3l%a`!1u5P7vP{4*!4#@>(&*JMXOYriufyL_;}HS@A# z1{iR0lhhwEA;rD?kNaS&q>%QdYmFHjYpwGw*!<_(Oad*{Wkwif@tedXzFgP#3fbAh zHv1s3=vZloOzzB_&{#eHmLo&BGF96dOGN1zfu*Bcnqiav{pQ#4=jVP7E5azmwH)+Q zmh9;#)tWPe#)5={ooDRFXJUw-M-6_w4Aiv&Go#ZnerIWaYB~}yP{W3+5da3;ihRc=RLkaVxPP_W5^9d8$s;7m2|V=nno|%>Dyn# z+z=U>@+qCuO41mq-bAH0%HyE_*4-!!3RX%OO65-Z5NxoRXp= zI94Mv|0UdL`MGRQllL-hDPRcZ@Y{rh<5S9P;SP2y&rHY znSpg3O1cu(Bb9mN^d=3H+`!M(qM&X+*IS|k{YQ_yKAGzK4^EoB1aPvjK`1O$?`<>Gw6dPH%&;lK%f$Qvp)5XEraHcOF zYgO#>wr7m4l8(co-$j3RY?Z{6$<&)K4P@x{a3j+dys|DIDY%&HD=NJd4>lqQb(H|U z_v)A2)(b=_eE}xObe&}5f$x@2UZ9vOpTx^fGio|+{&GBU7ev;MyswAR&K5v(Ey?b2oB6inrIy0)$6t1Qwj?8GC~$$Og+%04L8E(H4%*=v zc`-pf`&)KXVld&7;CB0lXPVED6)t;vgsLkI6TG%$vc(10=%swV3`0!E<_oY+iC=-= z-od`s%4!PuH8m(!RORR>QF@wI7#*I@PP=AAZj%*4x!`kQM|ggu9P`#diXaCei33jb zIAQ&rE|;V-%yye`aglnw>`G?tQUCn$7thUv(Hk&UPT`N&$v2eh0uA?>&PTt$#6{pd zdzHaR+AoWJscSJqYTCc8c4t|P(d2ABGHpTBUTh`Bl+l;jWj=7Ej#sN%6ivWK>?!#( zvSSd;gRg(G{oN4X9v)qNZo*Sj5+;z+dxnn*^`V7sx=Th^dDUS!nIt z35)ww;M0=9e(3|njhk4!xG-z+_>*h=k3C0mm})X47;41cTqJ#locWw3Pw-LdN*j|9 zWXwqEn93kOBi*F%Oi;^QgmdM(I*uz`9JWAUSV; zd5cIwr_SDf`91^3a&@<1!lgRF7Vplv#1}d1v3-LAzrFN^-rgk`mG)=wxy1Pi_>?=h zw6;VKuGOM>_ih(|BoBiMO*Em7H2UG`;EYmhyVmm%ZZaQ+-E?sb>b^ikrWYxf{4Nqf zlb*pQ9`Rz-C#5C@(e%15S;uqXJVRiA(sHiOEV&vimXF7FI>FhMq!Mn*gYT99#M=IOxzq4FD3ju; ztA2k(xArYp==qe77c);F+reLF)SwQh1vE=! z$hVG_u2uv+G3VmBLXUn4W6WNI8E-58ZoG@~r1`|jOClv+l|D^=exNZXmT?1uX|Sb5 z?SPF{{!seo9F6PB=Io+b>W{{ax__jc39WG_(WCkb1;qOo_)~{5Z$!;Ab;HF1e9}KN z-%_I>F&z-C*zlt&vUt|(!YM~5L{EsGHdBqEKU?n^$heh-3L>(0}8`Wv6V{+P{PEIwTIO8UqSef1UDED<@gj$Y5A?V ztaV47cWB-V*VF_6;+Mn8gBQYVFz@HnXS`_&7GjWt*F@}+5(U}FQgm8hkJ-yeaRr!?Pc@vCRha?Qiv(H776)Yo6 zUEXHvai70bDBXH6IH-{e_s@W8V;(}h-aokfE%`G0N$&wBEy%9Ui}S;f-hf?;WR7jJ z|NKJ|J5S;GKeg0i!z!nI?UA8W33NWz96Vno3MtH@K^nh;W@K*~l@p+(Z%0P%lDCF! zky9mWB@X^<=7{p&i5)#)2ED)Ah#5zWX8M@bCfZtuCr2WtC9 zz?y-$cxHc`ntITmwaTtjncelKf#v4MiB@<2t8~-kUA}j3{SY$$^v!J2Rgwy%n zd1z{?e)(K&gKai&`Lh7RARO;OTV%o;pCH<9PVtwCLQ-^YFt+WNc{qJ*9T!IT%!u2s zAj$2Is~@N6SOXstaq`890^lf8^UpWMf2#s{`DXOUUb5*joUz*w2EhAbv(VXE;Tzw$>w}DS#=qJ4u z92f!E!r&&k|HVhIS%n#V9s(i)Zm4zZn*RU2A-3Gj7?3PEwlBcfyOGLpzL}(O(O~E~ zlGIS(uJ|Z$$$oDV@hhAq&b6=WXY)gC&?N@wf4$~~-eeR(1Vs@3Dwp12QL5FOrFQG| zS<3P9@{l@3G zy=O`oeK-SGVMdYLb*qz7bly-qfN#_)_3uvnb0QrB{r}LO{k?52PHrldVsyYtLH=Qc z{W<{VU5>Dk{^v|j@GnQIBwV5bM7^@pV3=mU&VF#|FADsZaOGG3J>{eW@iX>hGKO?`THcEt-L4TY9|(omG&|5EL)$v5~;rNB1hyKXmpl>e{07kVnF&G zHc`p;V@Ef(*&GR6mH!8|yWi**K2iAsH?l>Tzwl1 zsJwiUMc$bWOR5$tqT;L-EznA5-e24}T&e9bXhd}Hi^M0_M9%UH$EpjL9b9ogJndgq zPkScdv4Sm<+wKAuFO9tKYme$gXq>U$S>n*t03Mf*x>i%@C*h%pzrB$N>H6ojRKg z`sMVcM{OUnrQrWB5C;bJ90QWg)g=CsvHB`mrTJ-8wMNKPu{%41U6*;z04PGdTl2*xzQU+N z$hmO)+SNcVFEB=%oBkay*WKfPOyEc%GXbs2nlZoRlIdB{O&q9Luxj4`aB1@U9spE6 z{D3(It&qJ>BisLMJaAG4@eKdby6xC~|==kK0oe*y{fXdt>IqvoIu8t5jLj@nC5aLfA#ZSsBWR_OOI&WMPISe92YkBWl`YRhs7qA)_VDNGCV0n}XX_r(;_CZPDXPrJ zHmU(1o8?Z{$`!aiZ5na&h0+^SW#!*#0`b1)nwvI1`#3CafEoGj*SGokRWPdW0;e(^ z**@XqUtq`|-FK}A>_fBdCh(QjxS#6Vv!NrYJb`cDtG8H1mK*}Vr)n5Ot*Ug7_IGc;T6W3E17fpsPJc+Bj}^8*W=FVt6VFw3-^Z`x0~ zcQXW?4j)YZJRi61+W1P3xd5QCSC{3Vp8f=On@X|ULBR7u%*XFl2Y68e1Y*7jDV~3H z(dM@%80puBExU71tz0>NU}|%EOi18h>uY80wT)y;MsvyuDE8q&Wo>r{YzPd|8A8)* zgYp&V8!(A+bj2jAOJ$7HdTe=uQlzTsNh`}wRom~th~H8p5r*ZTHF+z7(w!*}*IH&) z4~5VhonSL6jR|ZR6iZb$6@xSh^z|M2lWlsR3p2v|)l6sT)h+$CX22EZwYakEs++ZP zg|FU(U2}LG3mn@|U{@^Lb)Cv;LE||NH$0c|7e|ukJ0pXf`8l`=NL?=h?YNx6atldp zGBD3PF3H2n-jozZun%Ug#9LY<9PYQ;O2JR6JW|#pE5YwX%mzOz*qn5q2a%rs6E%Nc zM5F_JGjq*0izsL~#w*(S<0(%Ohq-DmyL7Sw{&Ep~Zu_q;wdOnRyLQ6pugRX>R7$oXCP1EZjhw>{@?5a|36E~s z(P?{Y@~+}sQu6Pvl3i8Goi2E$@e%(C*@xegbYY#wC+`eTBk-p#_?Ci4y@Wjyuy@>8`b%Sw+}2E_^_L$^3LJdE92xXfD8SonDb4wbL;3D6qdn& ziayx+oU=7`mUF588NWXRfm~os&Shb;m-u=%gDzQWU2Ou%ZBzOFv&{rR=!C&zo}@(v zj~|hwjeL7IiMWYlMHmF(B}och;ts-4Rnz@}W0DbNpQtE%#qDTM)SjB@-mhh^jl~K? zM=Eb!_)6WCF!-Y4J_1Yey#?<_%1caYhR^06Z~6flESu)VJgwEBAYtm*G(3oHJdYeT z7GL{*`Xi%6qZTCE#-t4ej7oecKv&l%HYhJ=0WMC}OouK33g*(m2}8RS`~ZJRB}!D{ zC)@L9G!J&8kE2(ut$ZpO?MQZ%xD|7+5dVN3V=&oAK@RpM_T8bOT%Nq-e^YAsW701G zQyraer!z4Hx``pcI%hq%>5( zNHt_9k}TBXWPnK1Bj?(mt3QO=_S0PUXTR>Mn4YJJH_mv?23xrd`3U;O#qm&2ZE-YH zeEOntlRV!yP-0mPEMX^X2!zq@ zhjF9QGxOBNB+xBtMC}MKZMG(J7Ws7FRD~pX@k(CBtBRGAo}IvwSDUCkfIB9nz^CqV zh@)HI?Yz+VCd!Ug>WNvQ!?6E2hDo|m-nT2deR~-5?d7?jm%~js#+g%*JG(cq2h*#N#$gkD+ynMbelVUd92UpFS6#vx zlX>~$Uutf@rMU(;V5kz0puUm3IT`Y$?&ziPraMpG3)ve@u)(-rf)H_p3H?=CF$QBM ztBZdeD!uni%E!=@s#dLWQpiBA(8NitXS|`8w=@kWl+?^~Q2mB68ql{ zV2@qE1^vpJ+i)QT607i8ABHQG3aOgLQ_EZW8wp#UA?H;BmCPTd8%Q)Bw&5YxcQib~JOxSpxOnopwq`FPdh!J=VGd1GP)+6Fy#!YEgln4@3~#-SkHaG2z&e`^bd=Q@=EQhN`JWh{W!)V`qh^vOxZ zBNjha2tFPSz1J}gm4UX07S@5YaeT8hAM1OC(K$TgL2quj?iH$@e8vW&^Dl3jbh}Uh z7R%{(dKc5JX{+SfP4zu1kCY}SofB-++;b$52;pquvf3f9e}F_LF^qE76!Ot|&L_W?QzlI^NsFed^H z-4M+kjPpo(n0^*(0@YS)7BfqN-=`Dj(!B`jxhTXiq5mDqBNM_N!4J47jB@!?4jNFc zf_{dbJAc03XN~J;!~Uu};=_EzWsFZnZry_`F7tW*mQHUYOKP=bx8aiv_?uq~yX$N~ zjNvR)n!%v(+s2s0u17NL5}O+6Wy%$qaaB!E-4tu>PLb^GLMJJyA}@N)spcOYe_EEl z!hu>Qx7z(0EGq9ErofxtqEdzb% z*8x9;w~usKF%*)kr?oc6@hu%I!=XiQUNHty#Pn@-p#`P%HI>&d6Y6uwYx0DlG&rl~ zuUG6C3Y-t~)O8M8Zha5=?kV;C>S`x;b;t{;6w_n0bX-X{TvFs$uC%SCCt=xpMQNJT zuRq@Y*uA>gSu8XyP8BIAG_=E!Oy>xZIr-O{QTl4zNX@ zd$z#pv521q+tVsZ)1n(^i4+!ZrgnB-)GHe|q@#b_12))B@B1*OyJKND{!?_P5xR* z#on{){?OCkwwl{Bz8n^(yd1bv9$$U1V4pyo2}t6JqLl;gm5#^~)^qgMd~|+w2w(!f z$AOFQ_1iYa>92ldI4vh1Br|d({ub|hTy?3`E)%{_xPHw6Mjv=1Kf|W-RH!5M#<=3(y_n0$vhTvI0EDn^9JpXK##-PrVe0^@xefg?-_!FSp^v1q&;m0p;2Pb^OTbOt?iZaBf+PV|54TO|po5U52EZZH z@^3iw1T%nOY+sj=lNYpMFOS3cbLzn-XeEu%D<^QY1`E4_!uX~DDYmRdt!NsB_Q{&hl$=LP+v|^=xxTYI}xB(Q|p>K zo3iIXQ$1Fxm%JfQMMy{Nw)D!z!E>DFXeG6&;OSOt*(w*UEg&xsG8q$}f?q^xX~`+t zcho|=)4j_+gWQ@yf(7CbNg+AHTRFwp-^4dv7q%N(%Y}x3VxthCo5H}k4kjX?Yn~wU zI4nhHfsr@3kL|8u4nJ#7oeFrcE4lLzV!4oqtQ-Lg`0lZWJOU;lifOtvNW39+9x6%ra(9wUyH6CN96#`J``2A+@N+>*; z=D|kS_B$!pEOs0j{sA&b2i)GPV|QY%K`SnTkuj&w$Vrn}@!+x@!{e|A^1By)@!ub$ z4WqFYvIehS@VIjLl1@BhpDng9uUza+*_{j1|I;gSjHz2+_%1$u^F;$WOnNA zj_sA>phIwsH4Ud|qeUz;ACL=&JHu_z#E!qr0=dtuU5agYy?zf$9(J9LVr4lk_%FqZl z(3>2+HgQzyRQO${chP%4JU!wUtmVU_Un}1`(#VJYR~AE*t3q z`oX|E^jgtbU$0810;)0Lbi>L(oHBK6!1G#Kq-|o_K<+028jdoM2f|QIIy-!Wq)Ue` zqbSI1^9)LR)R4y3cywEg`Q57rZa9!vG1-or`G_`D$2RX*m$CM=zFkThm{kuESNrwK za1bCSk=+}1@XE6N*%$-lnAG_h@$JZigj;N<g+pnB?fsh{44!mm5pw0CeF|EE8MFfQH&78)SB}FzhnW3LATI$1@8WIApPA0yp7W^A<lx9=>_9~dl(9}+cD2@jqz9w~+X z29AyfuV8L-KuA9>t8Rn!NMcz!`-a!T!o5ANqnhTIf6(8LDAs+vzcN~$IT4`u<@M1P zHhU>_!^!k;6I6c-ZFK%J9c?d|I)dh!soC;O4JpnpH=9{Ih#9v_5KHelJm}=|ztY_8 z12>7|>}c7Vn0qhyDui-;e59}?-Lc1;=JhVtsc-tH7GuLWraDVl)}8Y(} za=c6ZuW*plKrnjorJq-gA60Zh;>rw%a)PL<~->&#!p=>el+X23S7GQ1ht}~ z)h(GH;2FY*ksQyt=u*Gwbx*tzRdyelKC=u00V5NOh`~6ZQM4yo&;+beI*P(a$AE6p z8{k+q#U-+JAy8!8TT5CX_Dcc}F?${-hRBCAy<^&EX6$a#{`?ri_4g_tZcY2+9$h?w z?JXfR3=V@iAC!865C6N1ly2;Cs>Y5qDltSAb&+0`*KpK0n4PkIQqH4@ER#SEp2~HP z-$A7vQ)<8E(0KEF64S%C3X7yXN#M^v`~7I4o}p#6dVlWF#>Z!Kp3sQZHu} z2C%%1iOmekm@eP#cdX=cil;yKba;>=o9_)c(}J#RihW&;7jAjRAumeR2D9UF2@3K2PAyKo2v6)x~-gdrs~AhD+fc`-H36HXCj zT_6;)c5xT@`q_6$&q3%u6bMd>Kv?PZasG2}G1J=lcxtl1r=&f(0LT)Hr$7K8AeZms zM5Vp#&k>dRx0_z0ROW9E^x~t6&?Tx^7>oyymFb8p=${RF zE{#oBGr2i?i&vdT&4ipE$(xu;%HvAsa*((Hp+<+UJs5&x++u(9N9a&V*f6)xO^*m5 z;XXkl3b?>eu${u?Lnpahh`KY8K#s|+@#Jj_L^6PGRK-m$_r|z`=e4$YU5c8}l0Eu?W>dg%I^*SEjTj&IlGKX#0x(kUK z+G#vu3

rQxP)(0rA=J9lqKl9F+2FPD5_DS-^aYTQR=a^pCi8#W{$+&9lH)f+_JF z)RzP=a6JH_u7a8=-z?nN8M8`TEE&GD5A>G`)Ub}LhTcw@jSE^By}rav?=YLT{_7Tq z+PpdO$vt7eS$AI!x|jQ%tRuX%TiRGZHR*WU#pBY+)ibcRJZ=AcplC`dhTmH7x#5w@ zj&%9V*Jry6=12ihPmfY#Ia^e9Ct)3c*kmpmtIV3}kbS`Q8$YH$zZOxJb4!rRH4L+N z4$?7#mWL_6by2F;lj??G|4i`_Mtf?d*p2?=wL?b24ea zz!wPdXZL}Kv-!%`nHyB2m+I531PCFAVUT5THA-@?AX zCD9p3`FNBtS=-$D;DVfQ^VcV>#sK;lZ&|YoCV2`CBy$41z)bg*8f$hg-8V zreyT5WzqHnTXGW!@~UFY&3nxwXss}W3DcquV}o%Vw|Sq)!0$^H7$Z66LYwFkt#}jCXv<$NOvqfHaE)~R39d|i zu@h6zh6mTOuN9KpxQ=$dPX&7HZc&m|jf1<>ZHI_46d5WSI2khk^3AQ!#p+c7?K0MZ zhpy6-LPK`QKlvhPg5e;sxcTYcdS{Rl#rwP_h?Whr8S-N6*hT=|`~=j_bt{D20Jrq+ zg3Md2r#Xnd2`%1$=J z37aQ$lm1d#Pi)iS!Ci|<{U@K(4Cz8%i>#7Hy2P{LyzKdW-^dyjB8A!7GIhDT}Dej*2CqwAvG3Q;cUKG3s zU-qiPgnS~NQ;S@4^eJ94`))gH(C+zD{HpME2QCcwJS1lq9-0|*^hyqg#kt`1a(iL) zWuc0+1%BFWpg%WlZ*&X3$F4Mb+mMxKn8V#Cy!RaBDpAReKfQML_X0j^@?`jDpubDi z72eI4KGUSBs}ww`^tydD4&pr9NH{7K0OA#huO}yegHfk(rpn$mJf9k(MhAwvTyN`f z9g}+bouH(9r!B1h=yssguIKcDuJ%VDzY49be)bkGEH&N0cYuhS#3G8rrkOo9)62)?kGimO8Mh2q&|9K@vV*t^G#S3TSqny9`!l%|u8gS|FyGsk?d z;_H-#VJM;k)5pq<7m0KO+n~1_wtwFI#>92D*CV8V_nlSzjJ+ae!?Rgk;Z=}PV{5i! z$h+6IekAsW4}!F<0dO=KLM}s|Ca9rOd#~SSEsa`aS`qWEd#Nr5Il8>JZ3ULLt8b{G zyobP5Ye~NKs+bnp+lUxE7z5_8OP>L`te=+)TbXI|QoHl$=x->z55d}+{e{H7trAVK z!qh>}PQE?$w2!{wgv3zO$#14xB8lh$=ETDEyu`bs1_VB+9DYRJg!gpW#yh<$sqp0{ z!r@!6><|vK5^$MDe%W;*wK>`cZDF6_;?K)s8%(=9oIZrh0D&8WP|`QBj^gP`zj)p3 zITiuFFlpAr$w<5xUaGP;*Y#XGodbC`T8|s%f9o5994!0+J}x@X$|tD9Y_I$qo^+>Q)@b$L1N`Ecz9iw zH=B3=KC4xl^7I&z+!jB*|5n}TC@Nh_il6O<&l?Wk_q2+5=}9)xmE_|Y8mo2s)s9gK z+K}ZIx#*xOL;6#$7=v4>@SiS^1&LYd65pKJ#P9Nlf4Ey@#eu=6z8mD1TO;LVZB-Wr zbKJCCi64UNc9itFwF!4MwK*}dkKV^@W}RF^k_E|WQWI>V+L`L|)wQjce%hEJ2hSFx z_N$U@V_(cm{1a9$F}jL5ube^v*HOZ5&iSgdJ0Nh|bfKRy*wFSzd4%x6@8cMy_5yjH`kh#gUX`2p z$83J*p4p%JT_$aKub<-rDms;A3Zev+Zv8cCGBYxZ^xa*EfyMSrx7RK)HjrecA%j~v zc4jU%fm^TNIa-wcc%}5@WDznKb@N6`27?nO&+7t z$2{bUCPt~G4BZ!vMJ4vhdlFvYtTpeCBaJmlu~~POAj@P6wh6H%y!15jqeUD(xZh4> zK-kQ5-|tqe^!;?W+MhycVVV9X%OCEltfZBw>3YLe%(TpJA-}m*-$uCugvJq^>Zw(r>rtqzYCxx*=UaCUAGg(jVwG-)SMG|3 zGug--yG~9OydBNy5x{O=*_~GS?fmP&a(V7Fx##7eY9-Q-`eR8?(#C2%eKyjl$Ra-+P}@IR+1Th ztfY6Jy;fHA$$hvvriGR@a`v?MplD(Mzh7QsI8gmCZg}Tgo2&JA90(c5lk}V(kS^xQXyXoZ) zQJ{3i%BGT4`gJ^_>@2t8jT?Gobi5!D$Ui=N8kr%NIk7U=_G_U71)&me#3pzg?}Z_a z8PY6=*kJ1?yBRGys9#KJ?X7zCEJp%?nCL0vk5c~E!ADm^xhWJ={Ttb$n9=7lodhSN zuJ)X8FX7t!6rFdBs+5nKPn=Q5qDKo<;vMrp!!UYI`4b--Xy}f5?Hd zuX}ei)8RYoC3`y3lixa4WO#lIsbkepgV)&4q$#J_Nup=%vf-|CqwHegPY<9uuOIu< zIJQXcs+-OGZ)utisouQ#NHJdg{n7O8dE9kpY3&ovKAyYa^TDax(#!UZFVrhFmEtzX z?Q6H9pp%aALZg~zj%HG-F3Dv=IToC~eza@lT?Zd&irx_a)_l}W%MF>Gr7ta(&zioW z+3k0)cp?Iii_3=3T|Y&6S>OMJMG1};qdE74Atd(u#^za=@TcjMS6zh7D3em|T<8i!$}TGGDjy^H#gg##az)R+EA zPgwli%OKEHdOYc^pu9`iCLCRuv?fR}R0BJlHN(`~=~vMX+aIxnW(tIkYtyNQ*-m&k z*S5S;7E`;nkYQ#;CZu`Zzi2GvmV1uFKfFTJh&}%TQ10X-zIt)&6|}biNmIdG#Ei7X zn?k!&kb*7JfKrNt?Nrmee_dngm-fOSD)_Py>*Y$k8 zE*x=EWAD;&wYq98KM}4PrOg+7`e&A*hIjpSdDGsivoj0?2rKSYz&(W9XVyB9U7!BP z)vMliT&4S4MitmJ0w182^vCxHX`R13N*jC}B_fMOU6Q$_C0BPhhgz656)4Q-*5biue1)7v0>i}wpzZ;ypkkQD*Tq$;y}3uo0c9VFIdU=6}HRGAp*Z6 z$+QQ5&{~Z3!*=D`t9fG19do=e2WCObsY1I|M$b9uCEKTuvsbyfd(*}mTrNJz)aIN? zc;sYAf9?;@zbrs(Pf>F1)nD>t~R_gdFhW*rVWwK+ZqN?;Q zGR(xnGo{U6&nfZfDTb+VvVPDWh5fswC9i8n$N0*p>YoK>3QUr(CYetg{7N)&V%r*> z{Un2tWVsP-T|wuLh0SY35bVv@Eo#7Z=`(oLmvmTe*oK1{Mtz$3H)P zUh4PbDYI3USp~K}HS4@ywx&@=wTe2fg@0E0(xL4)jk#|*m#tmupO++GrL&-LvAL^D z@m#W=q!awDnR}8ub+X?hgShopvKU_W?HwT11{KocjnG_u{#{heo0l<^rPudeP;%%X z`=g$a*X0*0=NmW%J%@b)H#sHMoJQmJRg&f0Ghoku)2)|nw(%o*``fKMmey5n&%5}0 zagPiVY?t=i1@&|!I|WU|(3bDCIhbt3#}lZdsK3o?(M1o~z3OIjAoehxz425%v&x)T z=PeU^-wQLB$zKWjX>(FKbele0InEsHyuL!Z7~y|e_`@snnmwF~I)Se86RD+l8?mLdf{jaSI(Zj4f6ZT8ny%i?U(cQB zMA_?^KF}1i!#gIWe7RIQ!PlMmu{GyZ(}TDx*4LYU6bPWG zC+i6Wrk}FKh=dd(aL% z;khMFon_Iggj1fLC7-_K_tXax518+gXg;la@~utQoYL$Ihz-{1_{HTroWU==GI)8n zQ?)sT)ROZ!>aTYE01f1ExXZoNOJzFwq4^A&>jhUGo=sHvVACr>%Q4gMObPzOM_lE) zUn2R_yJ^oDoKf>in0l`f@lzeAFjN+=OIRJHu9)vzO~NxITq`egjFRjFIr%y%`ldd_kNWx@~irM@mP z)c!3pb57SYrcu^oi2{1s=&@qPX~sBjfyfLZX>Oh@^Ar5WxGKh5iR^gCE42y1No}@4 zf>@MI=wx$`B~P_kWJp}S(>k3%g5}a%pAv99SD|y=rnccLS*>ke9{kizJyThU^-<5f zG+5RBcxH#YL(0ukK0l=Ww4Sv^%ashvJIB1QgiQ#c}--3P*sD{*PXbKH6iPJT&g+nNlVdS_O8RCB5uNA-5h&ovw0 z@H$JN;Bj((mAU!@JCmv%HKum$W+gLq=j`AVzg5x&5X9PkmOuWZHyj~UIQe!z?chm< z3)u&H0XtP(XY9w%@6D@F3Cy;u=}CMa$<0LL6Tg=)tT>8|v}zVN_1ufMtbDh9exuMX|D^0>kqJAo{ss+p`*}&&@eAzY-LjeG4|0WR10$o19@5;DK6++VUdO(8 z&6854u#hSeWs%Sw1L6{0;rzMop;v$WLKz6%Hs(w2JLhvQ{M1j$@@#Ri5P2!`qvP$p zn;+f_vzuH|tb6PO@KIy9;5A$kJDod@oebQ~;ZX+n@CJK{?Cv?xbj91`@v~)M#oX~* zTvpFHq8fwX_tIt8$@-+Q6e}~Jf*cAK7S%l>TOYN^TSL+wK zedKA8W9C`>b9c%tlKnlF&=%DbJAqwM+_20a;C#B4r-fLF7d{rfd>6Tp8CxH1RG)Y` zRy9u2>8G+A2=F_k@;WDDUi|L(leDc)HK(%orMOBdbVzt5SK^X?s*PwTm<%|xf=sXvF)72yISm9x!#X? z3627HaBYh`dHpWK)p)Gr>U86dm@9C60?vyUz!|y^)XfRLe@*sdjv9vVy_q8DSl*Aw=UBU z6aIbo*bq%hNhaT)>lMzHER+~yH!3c>>z6C6#nw&4rEYOZzIka@hQLOVYs^1;dof!-an0hVjBZJ^nj@qU3oz-{Mxy6*BY%kr3T>8^2Nd^w461!SF@yGkT zrw)QIyq?v4DnlDl6qgq4Ym#|UJ4&WbtbKr7X5gJVZc|&edh*ZN8WX&ARaldDMI~7> zidARVsKPjav`DatB%Pzv%_m@p((T*0(tGaPkz<=0vXily?%rs!Zc1Ks&z@g1UjSnd z=Six=_FjychnTyY<<+&ZjpkFWmIp!9w`%!y@ce|Cp=OkvY^qwaVl7xwGtIWW4a-9p zB2EUu*!cKY4{bI|ig=eW11G*4>5-+O2$(eoj^W1?iCMTCuh$0!%1WJXb;!dy``B(i zaJ+k?On_J)ckFdt0AgTa45?XL{&Mz$CuWnGz`BmOq1A-gEWCBtWT^wEwvmgsJXqha zY8G|H`%P>5k*ZyteZe7Kbdg9V_A2Ma=Qeek@5AP6hn^_=G%b&~_nqN`pA$ECem~MQ zxSRMSlrSS}m>agvJRlN1_M{Ix@hYq8;b?Ml$brFmZ@rMz7{E=;=O1 z+9ov9>Gie^{o~}i!jEKTls}RWQE1?938)n==zWZtIo&86I?og8)z&ahDsSd7(?|Qb z;$F?r_|%Fmo7e9c9=+V#7BYir)Lp_E+P5zX-RFlcfJcuBH?etGoYqsOvTG;Jjx(0~ z@5b7DOjD9;;u;qKeD=yHrQ+35jysmP%kmQz`swC-oi7;gwmBqN4>$VvJso6ghl+{z zZKy6OLo%wIKSYE_zciVY=3wYV@O!Cp6Axl&U?`kooPJIJj7%_F6;t)}+j8r8bqe|` zZV5VPB64d-ZFJu*>lo`vKE7G8biAoSia3MnNM z{L?ke8&oZ2lL2KNzDJ>_sloGtv&yez4qGV>3 z)9!1NJf2w>s`+WkQ&&C=n0Q2{be^@uYL{OB|>{mnVzYOpjg@MKts39rK_6 z2|d^$qK`8}UnZ*ZE^rQTY;TZ9i)#F;m7v8{$h3Dd!#b~xt4Y&{bcam}MMiQ+H>4{;XM0?_FZcRk(zn&*2HNn^F8St_+`JJWLHq zH-9Jz!nPuwDK9xodz>)onLn6q6fBprP|LH15?LX^jVi(c5c$4$A}AY_ss zZ{X@;T~EpOvNrUFu39`whlHZleEQRpho;!q?-XHG#1&RoO_=fBlkQ zkBQl{z{N#98C|y-#NEjOXKYiw`%dWdsT28T?iKmh08^>pVQ8ho_{^PO9O!c9N_vj* zrQto2Z?V3jSa$!0pZi-{*HYv%cp&#s(&HFV97Jd0jfZQNn)2t&QU=DZ9GN=1QrQOGdcmnSA@@5aZC3Hy~73b-9e@4mR2XP_oVY z@N=~4DV{m&x{*s&gB&rR?aH^$6I?s*Qv|AyGQw@;=FW z)yqM$h(A%v$b?h9$dJah896%HuksOQm(Z+%M1!{w0>&sa>6@GuQf5K38yJ(XAru43 zJaa;X5T0N$j9e|-jTooPyhu<0B`{bkTF1=R;2y|3FFX;dWBpKX{A4Sq2LT{COt-6f zV^l|IbUwvrR5ZC(eNf(}#WY{Es(7HzeTmrnDPBB%6k4IxWfKM?X3G``IYei(Bt|?% zNpPW3-DWerNx#){x{`>Yv5j{yQnvDu0I?7r6uqr!(r;XBAbfwTB=xgHInm?rmkwbIfI(|OMb z)eoUyF=3k3%kXd^W@9yJ{t)c$J0OsiZQBu?^Y}yXP}toj>tMJNk!%{buI`_ZVwD4~ zzN&lnX0y;EPgSxQfng=$vh>3KfV?be zgeyM>CU_!sod>b8s(hhs1#R)DRW-w5(g?sy{ft_{GxkbPq{>sRix3pAdk@6_p1s3N4%!NFN%n68rNq<^>Bnaknc45^89M$ zGHg}qzL{nrNhngV<)6NLuM2ef2appL!Nc#Xp;5#d+Ln1f0p+fy|BF207%jZOCOCZ% z1}+<__-E`vi>b>g8dP;Uf1osRu5MkHM2h=!04cqM#;K)xoUhC9`BhP0kaP0DU~B1f zFXUV6E2NCNY;GSjl7en6fZ(NNutmy3MotuBetd;EnyBRGj=gPg89tVpHDJN>CQ;cY z!IO8;^37<6I=3ouu1whsm}s1nWF{mK9tu1wHx0gj==f_@#CpKKTMn@`DjnRB22fDn z2XRv7xZ<&u3+zCF1%U%>En*#M5{JGnMbeBaJ9efr4VWz)X+zpMSNt~SdYnP+kgDm} z$<1-jbt6Py5p;=AZP@d(oJQl^Qb$A8xs8Z(&y{)9_K++C7b*u*X1r+v!u+vqx-#g{dy-ZB?m#KQ^=`&dq34NuApcd20kvm^iNB_r+-cZ=e`B zhU(q}T&+h6eX@(rh;MO)PE&r|Xb!ml9JA#81x zEJMw|=R2n9u5}^CL|XttmR=E2E86Ytth>w3`d!-plkfZ5!e>bq0?t^Z315ACJKmjw zuLLp+u14Ay4n{mJ%SbaDEQlrpp(}Q68@&{-pl_c=-ZbBLC-25{j(2S~h{W<8gT45fCc+5Oy~enD8XJua8p3U!e}3ur&R^Hi zK+-|_+MPr}D$#C19E!FIa`qyi8|nWNPzQyn;M2oDZsHwpY+r!deLJG)A$g1{6Fh7z z%Ea-5q!CjzaAwNUIP=Gd^Ul4x^_kc4R`?<)SCjZn=HV&h3A*A*#IcpvN2Tx*i7Awo z%ydWhR7161O0Eq3<()8P`2*;9ue!ER<#yKIbQyt1T+F)oqimY8WL2gpJsCWIy+2kU zvo>13hnRj+%I=)O?T&P4>E;P^A?am_;L>O&Y;k`t-uwB+dlL29H-JufQj6N<4S>ha z6-=j9D;eV)@RURj{5_M6b_N6C0IB2IG7~;M(Rn}4{O+HE+m}Eg^T5>!TGNxviJb7Y8ooW*{siYk~$&>x;|ZK;>(k=FC-XgP3j1M zv!r`;Mi-5%6!9jf$rPon>Eq+bL%Zp2{qdwqSV$UZx;q9Qgffe!i0-+qE?YG zSp*HBm$7g3>M^8&(Z^1t|4h;u{SOCxQaG9W_Zs8ZHyYGUck)I4KR+7#9|G8dQQ+m5 zBD&K$oO72fjMEEb%3hYo0RhZ`2C6?7nApKDeKZd)C5?P629$S#@-e3?0z@;(-HvA_ zyw6Kxmf^O-Ba=fSF#G8gETkVT(L1COsx;n@(%yQ?zj|Pd0Kg=pEs_mH$TCa%cbP3> z0{YfM?qzW8Q>Z!?AqI?sfV-8YEJ z0uc}}1Nqx8RU-SPsPPkslY#u7zq-VISx^iO38yi06|Ou+41eKYM~tP}HoPJ=@{0fY zt4l?uf?`^LdM}U|{ZKDLk)lln{2i{B?ieza`cFUM1Tx<%eB72)nh_vqpo)bX2Pp#Uhxho{Z1yTfRgknuSa(ldM{q;$SS4eh2J475W?P3YmaY%&zq)DbE7l!A700 z%0!qp!^ORGD{qZ^)#S^#q(3WtnQ3i!TwED9I{o0sa4nLuz;gI&U6Zzi)R_1^d!(Oy z0Jvhi)V_x^VNo5PY)6#z7}=Y4Z&XDTW#;#;_d?d>^_SnJjVWvn&)VrF06$!aySX9@ zUkk!rBevrvrIb&z#<+8l9Ko1>3zKkwxAic4(+cjjYw+Z(p7)xC^nu$nI(NH4oXj~~ z&i{_XzhvD=NubBX&IH%nknX}=U>raCoilf|4VLH%hV2#38$G0ZM=0Xx=Vf!0+b6c~ zSbn@y_l!+sNe6f2X$-y$P7f>wZ_-%Mtc|*6hI#Ue{lqia5nX?-MO*sV@Kd2Z0E`bI zV}Yxb%JPjGeNG|~vXq8LeK-=O!vs%DAF?jT)#p21u>TS)N!aUxBfNBEbfg2`hjJOc zBl8-n1O#(AUogt|H>-AqG!Y)T%l~558oXQPg(r%a-Gla z#(YfK9bq2$u;HYB>r>+@#fL7b4F4Pt_rirksmBNnXu3 z7acMC7c?T43#$-H@)*!Ir{#L-$VaO zGE`+@I^ogw5%^lBZhpa@E|37oNV}XP)Uyk;*{)=aP@#4S>Ss?YP3a#fK61uCf$S|s zd7j3kwLkGEthi?(Z$qmu0F50zdCPGMEE04W^*5RqfnvLcMe&dr=c5vm)!KoL11iwQ z7pkS{p{2bc@K+l14npG8h)CH2`fJ7wGGN$CQK8?9%h&dovaT4-1gJw~-}iHK=*(ZQcsnp24}3qrUWU>`0%KHsz~05pUB$0+BJ2pf{`O~WaTC#kXmSx{k63TZZpSi z0$eH$X%hKAl2H5Gt1gTJoJ0(z-`yg~1UDwoLSRCArqWl>t@rva@?EUYDFPjr1ETlP zqqe|>P5>>36n`(KPaKe^%G7_?L!Tp`=f`i=d|q--jg!36ZsW$QCp0**)h?J7-{u~0 z9tz@D5G8Vbx1VY;CSEj4`C#jk)H`cmR%PzcZ>^tmPs+{IdikO##>u~GF)qP=#fwqE zy=1)zg-JvWLL5O+32K$3iJMv-hpafJIF#o@RQle~gFG)wV;myYnUNw{4#I;_iHeeH zo|})R501Gq#`53KF{sI8(f?=wwAk)^fPhU!UfouPXx}^}>s9sIh##z*IY@Z`B#+24 zTupMf&W0kHt!gY!)|;*F?B{9XQocfW!|q7!14sd_zoAI4q6mUzUm|3^DJusmZ~E1z zZK6?||E9S1v8^F7u2Gq_=W@A!9%nM|p4bOAOBOJ&2mWg5Cx#w43v(9nQc(%_T_c}*(UCNtg@1e za`%CKgd7;rldxf}cw2lv6nHP;2606SqQ2Hr1d4p`lx6c$ok9#}US+vgF?72bVVu`h zrqXo$_Lx_9wtjrE?e{?=;Uc+7vQsZMLM{0cTm zZg~%@At3gsXTr^~^it|-q#5;6%rW=4S2N$A-9A2&a$1eP!P)I0UB6o3zAN~a2(!6~`paL?_?Fp<>$_|EOj zyL&F&f@wKpKmxBS72R69;y0pM^$KDM3IztG*TW$IpI8tvtPE95(^59eE9$hb)WDcnCPDiuj?Hg*CZp*h(|vg%|w*z-|#$m z1!)#lNtHDk&ql&7xrZNTPELuQ%eHQ5E>WDK&d+hIvmHdo?bk&e9(^gkn+w~Z*~}x@ z8NUx6c@CR6*C*90YrTS`*+*~hl2!kP=dD<5BWq~Hz?IAUCSQj-!Et`Y>Y2t92(^1V z7*p}EBbiP0eTr@1{P8|Y`SW-6@{W)V38N4Z@gO!Ur~fAnc@%|}73rHv|93X)GI4Kc zmw;El)TV+(iHw7J`Bza2H_Kp5(GKJz`;MEMy;s|ZBWensY4@Md^5S5L~MkkkneAx_QG!J(5Q9kr%{jh>xF0Q)^AZqb)P7N6zYDH@~$~XRZOIUla>mjW;p&HH|O35*y1@2 z)jaHyq%Bfz(TB<|3{hkJT*IwL3?3OxZn=y}Io^2`gTj1Y%W9 zAe6lAN=Z%0PoF}F7n*2Vjg&IN-N2WKHYdpA(PWqPTMT-RzgvK6LwRZ)$nJX6@Dv8e z3%Q=n?<>=yM04h!(>DZ8yyvD_>!%{|)yB0Lg4)SKIrP)#bu&enR%m8L+`0|BSZ?wKex`cTJDS7VN<=lB}aO$pgX!L zOwh~g9)yF0a$Y}Cf_)zK@zX#@!WL~DL*A#e$HqUzXw@X3jx>zo>qkC}^?oKxadUQ1 zErgZPGqaLw(?KrHx>2~Kdx~6K=mlXGKlb*C$7iSr)eY}+v)WllqFDQltRNi4LK%%c zujj)tFYG8G01m@fMeDpF7W$%(pB{gLp?cAVeLP9X)Z?1? zr$`qb4A0}E*K(}q1bEKgzkg5XwNw0KzDGzYz+~lNkEOd#culkbX|ySvC@R8_`R*HnW^8nwG^h zEkqnVZ-qAi2ut`&P=%*f`t&!6?)#1Sk$W#6uztBwfj@7pt|l)Txm(Y#M|jQrOyX%m zq3nANvd`FP36z`A)OZr_@^g5{nw(3CBlVCaB4|z|P$w7{sVallNuv{{a>~m@xeIaK zT)uyY^O{WoF_vFo<^}4TG+H->%Dt}4Q|F9fF9!vy#_pC>R<^gqZWJT&1PUW5WY0@` zk+^qG{q+4v%#-acGr}k4?xlwYqNDsk-6l+rANLz!CM8ceok?zvw^NdAbBf>3o}nE{ zc*k48kN-n$Av9PSY(e!~OSjD8X&v+E$=hBBwZpU1wAakM7)~I@Mr?4#IB1QDs7Kl#?;GZYhmh1;w&TD(~{>LjCk$tbW=piv&i4L zo9cbD^<%~SK(}Tz3cW;VhaXnOjhzBVL0Z#UUfZMZM~5|)c>W?Hx~MUHe3~jhLn&WN z@Zjk=VyAeUrMTQ~dXligiU+74=Oy0Tt0r+On3E}dwtOm(l&fy@R<8S=&ILgp;<7j4 z@VjwF45icc(Yb~zXHa^iasEm;GsRFSze|-80}0JPRy^#YJ4caIjLMlT(KVpM;E2y* zxF!VZ=og#~rQC9QmlBv`L%b7;CCQHU1_*|2{T8K5C%ux+P+BAQ>AsBxjet}rFD8f# zODXpFGmSips}TVWE0HL{nU>S6yWVbEC!U~gQTDdbH}DT4qYX&R``^M?hO6(|14r`d zZg*oow``ji>+7Lc>1N}C9cIfo@w{xAp;;|AZ)iW^PIL{TJWNq#LJwH7>BTlZ^l`_{ z^`5t7!=sZFqXvOT@kzx$LkSH=!T%~Diu-b)5^f~dBCgV`lU4L;r zo5enMA*$l8zXmC%94hMMyBwCH*c&}~NggCjC8;NaRfV>4j2R!X#X`!{5vVYi_MiZQ zbmnIKn-z{Xg;rrCA@#Qjk_yymmoKczN)K_-g>f{FsMk8 zHM(N^%uHV8MRfxj?X9pq(rqWZ=c~6B@@32?l6i&$73yVQ{jMqjlk$Xc_~uphPYePr zCM#!%CyP*S`m&p!#^W+I_|Lk(rI8Don7$H}{ENr{6NqCLJMmaKol{V=kx>Pb)tC~L z0_IKU!gwE9$UPWNrT%7dNOjmqOJHcgwy=IoHW1~#^l?030o z=^dkm<;WuMP|0KJ!o(A*el4(i=lqbQnIHANgO~E&sHayRE{cit9Z4cKR@L(&xnLLR zD18dl&dWuMg+p#(pz6<9* zHy@`U5!qZk?RB1xsDn?>JMQ%1a$H(Ymp*0UWX}iv358j#%1o5V=+beXma6k}6mIju z{#M6V#0n*6l`ljZ8AvPaaP0it(ep88x5uD_eUQb&+D z(`h~RqE$6VeqQ#0Sb6%iHiWofndzCb%9y=84oPfLUYP_NEviLp9ZNTv+oRYXo}r^b zt1R0^iKc;2BbgAE5mNAtI9rt5ncM!DA0|%MNn(!X*~=}rYb-f>Px1D7K0q?Vn6RS+T>@9S3QY{~lMGD#;i(0Or? zSD5zKSx4%K6mABShgRCW*P9EAP&`wC4z+%0R_dLer^^#fwRiljOirxOJ4FuV^_&G; z#&6YS48HQ=t&P*0nFKk+RAX7^RZ%G?x-N0LySmX`8?EBlRIIjH89vnA=z`6=K7lmK zS0^3KaQfX3TS#=;kkd(N($Yzeh5;!9#CYRydxvOzbZt4`I?*$nT369Q_Xi=f%|{Qr zHreBIWJ23HQdmM`#l#!s)0t36+3BQ3L@4~`q> ze6GM=c6jc&2WKgr%_Wa$R8MA4zN#SeD^l8G{O&37$CYtu^{o9ERRb1oRHSQM|B?wi zgH&@}v-!~dg-UmjzPjjKdzCfE_#R2NO~lk+y@DFd)s6dUDN$}W2eu9Kx zo@h9hVFYyzw7ltkduct{E;j9${ZibX=eV!j&iALVn_uvpfll{CDLnc738QwOJ7N#- zoQ6Oh?cZw6s8H|H@9Omi@-y=c7AK>42ai(5*_G3u%F_;ZxV^JnQW1&nLXko zSJmQgy`vpNt_nsX4teZ-joo!bA$aI;Vu&2ASo^(5y(+KNJeeIWRG+Tt@M+ zCi-g-(SRZkjRdIqRTz?)&?70OJ+(P?6CG$Osdt|u9=&zcWco}G(@g&R*bsE@CtW2i z;8hScSTd#B^1VT4Ni}@@+cYl-36$S_b5Fx>H909Z>Z8Bf7r)@=F`@w|z!(?vWf0~; zh@+MMe$+o2MG&Wa$hxhPQ1XwC8ii_7G1@0;QmJh|i0BpJunpbc*}ndU9&}*A4{Wla zBwY7Qw}<18PErLwb$iwA|AS^b#^%Jcx7i&*M1i6HdyCWpBe#$q(w^U zQf}H^(1Ifyt+XI)drpNAc9sQ?wcx5mG;hKG91P?wAZnoc))HdxrP($TK#rX{0uX{Qtw^}XL@4yLU9&(~rHGqJXY zQ6Ke81?oz{Wx;h%;> zCya+WU$FTz716`2!6M?6grtwm>r^2~M#g2!0VD|6xw7urX0;@Q4@**r*53XKm&)(8 zhGFArInaLdApP`RJIpgf#-G&>--8KC%V1!Z1TDJx90$!h z-kiCiUGW{RAt%IoI{FcEcLRK(cb^CE{Jf$Wl8mR>A@*v62?Hs`t2XDB|Gt!p9WpU-nn&!?^cu_q_pVZx+M$}el zi(C&(W&M(nvLZ03wQ8G$I`v9r_45_5WTmajAckKrXmVKOVP5>v{QEGP)VM<>hE^); z=L}iH7~_y2g{Q$vyK_;cJ>Q|>vJu>6Hbs&PEJzg|iM-X1-$bUGUBCeH((2am=xZkg zRdki0kf}5t^NK6F+Ksb&DuU5I_;~6j$?~EaEzUF%mdqEohCBY(|VWb)z1P!Y^ z;AO{Tui{V@v=m+~z_NUhh(i)UcY?GTh#QNHhtGXx_eJJ%sOCfWeOR=8qt_WY5J^xo zuRikXV_O1g*)b{zq7~AqhP~59Azj!G90F87q4Sr=sT6E(W%L$quuwzvZ%~5Yw|{H@ zdBKXR=K?t4fi?y24wUn6HoOI2GVP^Z&Pf4e^>L-^*7S8mp!%$AM>o@ z&@apr|5fKb$dtWo<8RskHQ7zlmR`@WZh{lpkOBO$P2-~C5A;uHMzbpN5ldA;fJH#B z^ZbxuS1MamNF?`p)1=uE;_46m+WB4g-?q?pXkhgO@N?>}saD19oJP z6S$aGBnKPuz|OvHi!}M(%nqvZt6ZdENkq1!Ku;7$}o2S&Vk(jnkYlm~D=ZW^kzQIH-?HVSJ0 zzHzDmnyhv6CG@?luNA_4s6iU+fWHo<@l~atkhs?DRGi3?as?U{RPmDK%9LA+nz(CV zd-dd(kcGUqH_HUAXKPO%*La%V|;-|b? z?hDW!#!dx%h34erz#>i_4TiI1`{Es2#=eNed{lh+Ir}Qr{u4gEu+OcC8}b634qBp^ zrYE9H;igdZGbIDd+9k*=XbSM*@?2_uRl=k9g7K-&l_>ycUh&*vcNn-AZLCR9%rxK& zs8((G>6U9CdCQ=0e}IOob1bWKZMe2!abnKQNfwFjG@p^QxXmu6b!o}q_OKDlwz=&a z@efJIp&_NTUX(6)-wsKt9<^I5h>*@FOrTo%c0QhtS2anKvGfvA3*kNecS^nxanHhV z+>v4Sq1o#T6TkEEe*1JhfxPD_ja2t z9wD~CqcE9eo{vvAJzdcko*9g~md{T9;Y=~E2FS|xJe)L`Dk2lo;e0n6ckn{bl zdi52E^~Fs(#pr=Sl=DvAB%Q=^5m!MJV;nn%u zS>Kh$%GiNOxr9>yD~--E3CD?KH-r-R-W9aIkCGG=A0gH)RxO0VWWL}s$}oYUIwq`( zOczmOe97_)NADFVxX*bBk`K+Z^uA2yc{#x4?0iA^e}?VmPf|%m@#O#69{BpC^~c(` znGfG=zt5}+XMOi_DVa#ux>z%wdlEk0Et6Rm3g+I<6I{2vt=UUY3dGaB)WE^iK^Jb~ z3nr0DV~sa1WSxx_4ub(r4mx>H38o3qEZjl8uL{UYMt41iA;3cj?{V>Bzz=s%>T*(v z6p3EpLb8`*+&xsiL-`esK73yz<;Ev9(!Au*1A_$;ZkhPSKczx?ChV~*JnYZIOwa$0 z9p+JHVDtYxK;E>QE%5H8hOqzc$L3l2`OIt zol!A-t9GY202wPvYh5g=-d?KwkkdqBC1;=P9bGklG&bUKxnEq`fy%~fn0H5fnMO+G zsvY%%wN`PsP6Q63P&{%{3`fI+2FL7+A!gP1qeg z8B@86QD3{h4rvo-qhLgasd2afKDseYSAFT0eWdnCh7{kR@%kA}+}h7NZ5`LNgY!~M z?C>fVXWlJdVZzWolYW}L^$Nmlqst_A{IL18S?>Ee10jJQ&-O!7N6=-D8tLI;1Ig_5 zONa238@cj=qdiTlBXNjV@F&naA(kPypaQms?^4cMFhr^9kgH*wX$4l&O!;-0%LsNV zUZ@(d5yul=jT|z@8Mu~R*m=3Ou555?%|eagt8Pj?kMa&PCN7B4X)jnkVC{NprLi7H zoe))z1WIdSEJMs0Hl#?fG`umlul=BUtGBN0l!rGE_5xDiRJ7u1Wy3QATlK89@rbjm z{n2*}G3v4?y|h$4T7mtz#t{YqV)Tn&fRZNYNqI&aWBh5D?%PVyg&SZtrE*#V`tO{L zE*xheQ=1v)6cJ8$(@y|jB9dK_EsqSgl|Pqukb5hX zBg8t|`TZx}K1omhgxaomuK0dtNm1QR9t#0aSQ8S`LpU+~!|0;+flUt@vUu|KM)YcjE%u6RYj9Y;Y%daygee-HSv)c+)gC1J0E#g zbhh7Rk&rf&DieKKeP!a9<0)6))*TJPxo4cEF}JS6r-wRRpot@1| zO2w}kY~@vctJcAliKn5~k`$wR*77EEUSK>~`t={FJi47CSP`l)_7T24uH>%TLhV4R z7&pfO$JdS&sh@fDIyGaA&U!i>C3i?G^zA}Tc7ow_d|E%_2gUT)I)>CguEnKoVvJer zeQbGLVtJh}W;Q%zxqo@+a#bu!w~~iph%oy6z@igI!&%Jp@l~0ixHKAZ;@1VjId2^& zjhUXUewVkx>KUZ*YF~Ka=fs|R>=|d9=2`PHZ|e8;DKgi838i7-&bky|kJXl?zlup5 zZxI^Q`z{l+k=-uA;3P>554a8CXZ)_$v*%Y^jMU1E;?krtSfbtIg;$TS8oY@P!FYfD zL~Ajb)mA{m8RDPs8QuP(-7%cvsg@+U%O*FovYe)F91SnGfopu)`5#12(O>S>i{_<^ zS~1Z@lacBFY|huaTz;_oe1S+H>rba1j(OjQ#f5#K`)T+T^~9ef8nNf*qJ+mVbdg#Z z=a^?0T>C=uq20w%N=a=-eCF2^Q$xI|X7a`pU~gq+rWimG?y5Q_COM7~Y-^Ji96u3O z?@bUgv^QdrJmM^fSk27K&Ev zCi=L>te0j?R4Gy_Z!f<{*Cf^xKZ7x5lK)v?ji+_&!!z+*8RMn6?H8DZmSnmT-Jx6J z5Yg9aNtdnT7+IO%$~!n=n}PROp!J%s67-6+W(E~Ui16#8z(p@m7?8(G9O~Z9lo@(L z!$d^HsmI>AUa?B!)M~a(mpS(ND09tyzWB%e&&69mduUl}1U3Jz0~vyYTm3a3r|BX# zXgGBp#sX0)oXB3B%B|)={71Y*4kDfuagr_$jQd`{|ai2TM@Cgr!5VB6^0T9ECLKO5V## z+I-5|e}#|@(GwjFY4oG?T{6uKJYRm!ladyC^p5R*$^8`dYc*I#NUuie)0;DVdP2O& zf0|6!lwh8FDT-s%cHd?}DPLACv(2iIx==OdqAVdB7aLb;0jM-_^#_%U8_A2zU(fqp z6bESYO+Os8CeBdtmX*!ticAKdOE0P>c;qr38Y%zO+Y7m*WSBcuyft>}btsIbTMicD z9sk@%OQZar;$#wa(%laoAy4l8@QW(>mjxiu#Cbh=R(N&b`-!d3_Y~>iEalLq;7z_X z`WfTM7AX1x71Od1<+H(&$;@ixt|2!Qt5j;qIydcNEBH9&u@xwx2$WOx2O zg^5dGfndUOTtk$}Lz*uzs#@jY;ZL3a+fRebg5iID8e*wc9+rST70XVKC}pGs+N7wh zl`^Tt_r60WiFn*Oa2Dja+*1)SSm%i+NN&jSdVpu_ zFh5QEA0Z7kvn`%?{`r^x{gVt%6s+x>`DiWTu16e8$vTP)8*+o!`os4Iw2{Xb^e}Df zY~jgR)WJ3u&bKBcD+_5_#MLRn91ZnGjU+g>ZZ5)(;O))NW8s{-|CgWs16AYye0F4j z*q?I(nqQkQ&YTwn3!{vW0jV?+YArPQfU95n9~Dhu48fuQ@JIjvzwZm0n`dE*KOA|p z`(ieYYw%wo)KDeP5F>cECt!6#?8~o-t3ACMpVWpmwuk#58tqd+fyqS0boGzVAfmbR zN<^YG8TM|;gNWwAJHGp7ckcIJ5$$S+up&ec6ryohX8qFBe?>Hk0a`|<4>51RLTL50 zaxB}b1a&IPm*?79yr?G4UWkcYZ%lT5 zMw&ORIC<+bMGqizyI!Al*Z)1GKb1CeSz^+ebk?tMW8pmy>TDS~LqP*EoiRNS0}F~~ zHV7a3OviYVl=r^agDZv#0Zk{tcF_ldnQdrHTSGZ5f@b!CT5&29h<$IcYfIZ$T>x(1 z8wMLi0|F_5=tN?N7iHf&&chLq!sH%xWZ2)^CXt#xUYOAQX?KQt%XN6Zus@AnA z>WUpm>y8Eb`1Iku;bFk9Y9X%X$urFB@e|-d3-$IiDMx;<_?e~6>Tk#hvD`uFn>zA5 zw7iv!&j)tJ0R!-*W4g!$lT(Z@Vw>2ndAqO+8NA>e6rvPm|w$ z8eUCbj&>F(FyBD=z+k}aw3H(r_^lAOedmM+5vO|+9&t|<<8J}K-3Pm@w{E+Hu1Y`h zK)hW!AMRh`y^aYW?hp?+gMP0w#5-ub9S+-LdstPH=?6g&<^mn1L96Xi8{{S5L2Vc|iaW=NgVmVqJNR6hsAMQM>_^IE_|`)QbV0Aqe?Gy}pao36B{fiif$eC#BHkqxSHfmhpC!jE0> z=PR+GRfv5H?F3`Y*)>i1KnN{8iSWALF5neyCpX5;uEfCpTTU?V7F_c7kRwT+Al7V- z&~tqzmkh@rD6S}i=FtmK2%9s6Te8@Kf2^htG-j?L34gV75a|*e2u_txpJ5;zDM*=S zlVDQn1tjUigO^a)$%)p#;I)r9&J^e91Jq#*2tx{CF>Kp4K(gBdE={#Y_HZ54K5Ae= zomy6_pY(#N#_{8RwQ}fQwCQCF0dXUUQ)tYDW=r_F?sPQb?TQ77gJ%YW-iVIBQ<5qn zM8O^;S89uoA-e$Z9cTCoSQh>M7nqDkZZHGVZur`&pYeMDT{%Ind+iN`aWoSBof6k) z&ISy6e-xHcQH#|HM{6Ahuip!p7o#o6&pNla7y)cj+A)8EP4hhQjL_aexouRtX^kXlaGISR8h@VEHQ96q}1Z>cOO~)wKU3o6QD}I&bD$aKF#Cu z8cZn@tw81Y8PToX&j*p%9+G<9cm^3SoAb~KymN&7JVi8Fd9Iok4FNq>MF?FCw~V08 zj^>uTfiaWVjvQ-??M+ZL8H3APibn zQustR<}7joGT0))U5@=IlTd!`)>p+uGYU zf+Vg{qjbiE=+|IR$AMU~BMly27m260}YtE3=1& zowi+4!5aRTla7gOX|d@IF*p?j=dhEV6#OL#*R+{+UCh|%QW2h1;XVo$q^Fs8$^6xE zAh25U=a#4$AwtC;dY5VQA7+vwcXde}blKA7=FNH?qKynsYDgn;QagjggTxZG7SIgb z^2^fGTWq4pfq}obfPTe!h6H2G9I%+Gt;MUuriZH)6{b||K3+`4FkotC!>G&WiPL?* zz0<}1dX5~U&LUc1bXQlyrWl7M{9o+7`8(7P-~L}HV~H6%*@hX7r5H<*eazS^Bb6zU zJ*3b^L>P>nF+^E1mMCQjZM4|8Qc{*yq9Q7aMC$W=>FT=f`?&7w{(k>}`*{EI?%=?@ zW?swld_Kd`Y$m zQIy~MqeTk$l5$JAt{7PIwk8P0!hox-#i68jsMsP{6wiC}Xt=IF!9z?tO|d1p&@q0M z0W3R+zG>QRy36Za>%DCXog!+#Ydtgz{rlldC3ng`((G0fwj6Vf*eGew*_0xLzkGDQ zzHjXhbp0tPq8P>P>r5i>6bdcct`}Aux;1syIpF@98F$65Z#e(&K$7QD_Xo*f>uNEV zT6Z`UY^yP6*-pV~%Q=x_+pF8);G^tHu^)mI?0rU3njV%7MyK;dMVk%FHq5WtGJLS; z)(;l}Z$)bqbNNoK=~{w&Q@WZ)&lfpLPMvx;2j}qzxcnDyH?w;b47=8F_CJSwSqu+z zt6Hug*1J(6nv4_K57sCEx|Og&Ua>AK7V z&}DV7%}6|fi9Y)yt>NsL014@)bQ!wNUDEBoL*pZ#uT>c~x81scM=V-{%0jCy9khzB zwbe6gqEoL;fr*hZV$O`q+Ur|hwul-C66`dl#ad&Ntn5>#FAg0)z>zZLhorL4OsR0W zg`T0y^Y9IH{|ss;lIvf6DPfGY@9<5$ z(ks@W!W`f+}h_EPfH zPAO`QdOJDaQ~C;)XHA3}SBDXyaIXk4qe_xDUqjo~{Ff)jbK`Qa87qm0MH>c5jk>xf z0^3%MvA0-L6QE3CLELe$Lz0gc+oQ1gmtu=e4Zo{vn_m{DtE9r390Ia=oXm+q?05eA zugc1GhAo4oYwC&>c}X-9`&*z`{QIjFoZ<+fL?=1DguwGSP%bpE(~!`CnQOu2fVoAHd>VWvV+z))f-xj} zyWzudM=LXsH)bVZ@CjV(>VS%u?fGIEx@`(g{U=I(MG~lJ!XBk=$ioVTJw$6U-lnhm zk%|iaw7M8CEa+0_gxWk^o;KB4QD}a@yXypl$RmX*H4Nryr=6_&i;2BuYuW_Uc~XQP zZ)&EX~=hZd=MoS71+HfVK9yGEj-kk?;UOeW-%AVkNwO`+Br{s@-`c%zLWK{ zXEcc{%XF#Hys4VJ+UWY0Mw!IT?QKl_5^&nmKTN43b~0Ciz?VGZwD>&Dkv@o9A7 ze$1u&456p1WIJ&pU*lrd@bRa}nViYJsTh_lWbS$~!{bKk7!yX<*3%E*S@p{AIwk9x zFe{eA&y>mScf)(dG-UABLSc?-7`9SmM@?YHv}tEX`M!7p?a#BRaD|0l8SPFL;iT!bt?pcN&m}|8f)4Uno-&cP>gz2B6%W?;U-Qn~#EgJ5g+KcW z_o${;$qVbW?{N&&ni<0IDRJ9`$zN7q)?gmH?<_-(Kc!(7SV*AmrzJ2w_(kxci6NxQ z-LkGaLe5O{zIDG~a(GYWNzbL5vZk8Z1gk--^%k}rhe{6pw2V78ljkAaR8*UHjcJ>o zRmV%rSe2=59iu#ymSPZe;pT+FM8u0P{`YkKN6n=nzJ2EBaR6szJ@io%%{`}%Ln$W`A$d0)Hd z-aukym3O_LvSF{XQgaJ4yOkz0P*b^WVT=F5nqNuV+SbMgt37f=RiUiqTIHj~W=mcV zJ?YtNQuqCb|K~aMtvwm+Z^K#w%d^%jlh$9w_+3am1QmadXj*mA!b?q9WRm#^PmdAu ztb0jdd$1LpEIuR^gq-J%d&U!iIpG;pSJ7upZXR1}O6+8ll?R$`(bLO0YrKhP`kI+! z9svT+P6;{}cI`t!&6`CU8YtnKwhn1Z;5p)i5Zm*!sN%QI&yI#aD|M*Dr1%)YrOK=y zUB6^#9b&WZruESbnhu%gs+#==^_2ND!YwVNRH7gDyEQppkW9J}w}hqGd~#L0hLZ1U z>Mir=*KCu;Sp`gGvYnFE$^ijhzq;n(R^NWcge7?>p+>}0(cCF-(qu-v&yID%Io;zd z3`k*7YL3T?l&J9)cZffo)W7V~;({$&3TFw3i^DbaZ||-bK@%`0y)n zW~f?n(yQj($;tOy=OypAY8w2=9q6UzOLF-R-M}f07>`-r$o#ml9=kUsPk zHm0)FR`r=X%EJ99n@#^f4fcqt3Aj+OAUWPMBlqR4)Wb}nw(C81451S9-^IObdv#m~ zn>)rYfq560N3KEDS$S?T0$MAbt6!Czle86SEvSy*DSDn=s>Ui#<`YqO-7R)){*qN# zmAFQLVdrkOV2J^OIZFk*8}$>O;FCjZ7S2`_rT6OZ<8t1X(C62y`>k7_s_9cCmGgm_ zfwd#$mSOFG^6bZ4#pPOdWW*Oz$??AO#CWUo0TLOU-ts)JiPQ}n1*t)X*4%E2<#B6P zWw?}oKMA)9gPh<_`#OG0F$LUY)f>yWz??zqYx*hd9;L%dA^n{&&kAois3bh!t?L!7 zay1UQI&`^La}bG}KL|VE`J_-HY725PDJtA@6?@rZ&XcB(BZb?;EV~pgts-hEeHFrc z60fJVr z`GpIDx3>NYd6n~mCR{G!>5Y9&pDT^mTt4vedp%zaPL@U_)aMj4x)pOhA36W1N)Y8SMnGO@$7Hd*{oCZVfBD?M-g?4&5ig!-oMbcRUD z#a98J5*d9V+?|Ghq|Fk-`QU~6TLM%em22p9P+@&V|DnQ~&hl4Z=h>Oiw=Y$9-h!-5 zLSv8RqHC+V!c!2bH)TTouAj7auk{^E(j4JxS@@jF$9W4(?!40C$uA6U0R&h z)OV&<17xlwLY+cZ4GaFOm@`1|F*UBIvkyLl2Bxe-KTX2X=+eq8U+E5PBT3jK= zVjWcx6wCmq)3PT|9Jbs27X4cDLfU!K;W~kvOyA9_UD<9LuBT;AnA)*2)NUEHZ*t1T3CwVBKV^<;igXW6F8zV6l zW?BV2ACzbbaslVEGu6${zLZp{6ItyiqQIV#TCUj58~G6Wjg=`wl5elRJ1!ulUG~oN zk_pIs^i`;D)6WMsqV4|(yb9J4rxjA^CR7MJu%?Q+sR1KWg`T!UUelL21X}#5H&S{o7YZpB1?_$KIUV zmV)ToFHpxmzk2D0rxX>JdGX*2zKJ~m{CmhwKmMiWG*4Otdw$n|X ztN@FL7EKQ&Xom3D@4J53^zL<8J~3G-!BeuAB4pbny``^zEv|81k*@4mG~q}LS(*Ll zeKQYv!9%#bEv}8bHx3cc<7@};Gnj%$0)b3uCVBd0n`p1 z7Zehgd{TdhZ|XnZfSk{f11*HyS`**j99HlB`YfFYS3F5soShOBRK~VM9dL#&zr#?FM&u)0?{|2#hwn&)w+;FpzKiAo7(~ePAbgi5Y?q zK1R7TTj2#rZi->Q5LFLEJ~e}HkIY7ZffH!BgqZ?s=({R#l5_XBz})7ndUn@#9?;C; z5EuZVIDEogk8L|p3uAfr4sO`Dxeadi52sfjAOeXAWK!~ z0|e}dg7>vxGrmScce1Rg3524(HA*N%oLmP|QK;GTXHQjxfqmp7zPk%ZT$W*%{kod8 z45MCi`S{+7YY(MF$B`HycFWXP_~dDYfk$}+_)9^A8B{w2o8fgJ8HR=hn$|6lSgFw3 z=)fv-*vYbx4e@YbA+Y7uS!_P&zWRp%(4i(nuVcr?-&;prLfZw&dSJ+HJMjWSx?R&L zVv_fNgDj{e4KDT(P@M%p_B`4B{%3M;707eyu)E&u3M2ozhTJ9i!}$>VtnT~VqfH>x zV8mAn+a1C8espA~|L@xC%M+*0{rClefcK^i$_?SPc-u>4*zeYd>oU?XE%8d#6NJ|N zxJUqmbdf3ySCGap4aY+}C2@?{uYtAcK;Dkdqc;1mS_ymZ{*W2)1yZV|*78fBJEd=f zSlbM%Z?Om?2>Wb;psjNga^7(?eghCpT;X-{?J)Y`ksZ*)^RX}Ms&g5m<~Y}}r7b@u z6RsL*o~u|UNYkd#*`TDe*#?jn)h&e2_$uXBfl&)L25nhzyi}~P$Ikd zS24S1r*3F?68F6RQ1?f*Xu^i`hiV)fmAi`7=?;*@AfEXK5q^vp0cU1MA#=aN+5^;w z^4$<2AYWzY1W3SW{?&?kRIu|IOX{;bclq|Q88!9$&z~hw0jR9CtH_0sC0BB(jc#LQ zkHvU`7Q7B7GC_g`^Z0_Hj|{#Gbn;CNkSeXXs`~!g^(_HchX8_IUGpy}+{oGVQs+(1@!U(ow)% zvG^Km_INGD10K59ChI+vbzwf6O{8HGgOJ>jCODNP*4tQq1I;%4MWoE9VyoK{{!Sf2)MxcOXNAUL@{y5+Xhn_b+9z#|n#eYgDBZ!e zy>z1dV!o6WkGt_1+eG)0Qo^25+1gyF>q4$3BT8nKgnJO`fJ@SQm;HD{ zN`2akuW$iuSEDf`YCKXO)mSDIsKGn8>FgSWS8WDqUhYE4<@fA6_9%1#M61Dkj#$_2 zxh^fjkx91JDvwf~`y_p|2Xk5>#0NG3SC8E^ILee0dOPg~UTh7jo-1h_Q;s=1j&_yTBkGFKOnzU47~JbG+G zhG)91M}kmEW;;QUO-`4jGRtkEgg$dA_4}yk(qy@g!qp}Y;5#L+Z*J&ui0_wzB(_g=p zp}C_R?PR}vK@+NR;;SIEKL+~x@Yhg^6jC9CURyMj=97N_@<>@@)gi*({yEkDH~;!lwVZ+k4gLm4nCo?rD3AA%MdRm!$W{vjP4_zOChToCiX!`;?1`@Q^9`|Ey?aIL zw$El%)Wg%(z8My~VtUZ`pb!0rN1fR!wpxsGp-ta7&kj<;gkd#k^{TO}hoYU_;_;e! z3jLko@{-p|MX=UQDFmaP7YWu5{k32jcZABlib=Fd=^~7L&ZQID z?0m8hottL5wF6f4WR zMsg=^M?_jA&6>&<3i--!{rHuM8AqbBb$HuCk4VY>Jv?S9^*}WJwpFnvHK?tEq_(R) z3i6ioyNDuqWAO2blRJB-iHtrGm9d`7zcgx`AUP;ATcY-DihjK^^UJ2tCY)fpbmsfu z4!AGN%)^^6v0dqTwyg`zA5*nO?P-1gFiVL-TQ7Z^tc=`N&!X(lK9yY=qoyr(ZD4ieXIDV(F)vVcVbjEp7|un4=Bt#9 zUnls4Jk>tVK{RyYP=Uk}lhB1M+hkMk*`)*fZR?O9Vs)l*rwE?xk-%KG=qRXkk1ms+ ztS$Tm$xB%`&UWN0dHI`Cg@pW53klQPC{styv7MmPYIH^-rOTr+R7{8OU7C`0b$`C% zk$EJ}&~5XkrM3h9y!D3Rlfzx8!S&$g8d^|=?Rsj+lV=2Wh5x{DI)PhIRvOO1YRlR( znUv7M>*^QYWxud87|}|}&VHIfDCcCq^?aKf?eST3wppGkBCEdT%{U64Q2h8GKZ_=W zj7x`R(D!s>jIl>hGH-1s;nl7G9vZSF;2n##_+()vREo#)>Zn~7M6Nzgbr!S&;r|zFx)Bxf*<4a4CEIju+qW2}Lobnnmn^BaW9`);&F|Mxhy=*#BueTxxDN z6p`b%q=~A_$(P4+&eOR=GG$zHC{cEc-T7439M0Md#W60eSlA0AO6$OzqXHGm#F2&@bC&;xdHAd%TM;@*gvE&9 zgH&A+Ba595oPnRcs(8V5f&0Lm70Es+%m!%h@yPRpAJQLin ztvBlY19O_<+4;7}FGVo4*?tKI4yTQO2ab~6E%sT+e|7oXf2>i~&NcqR9_4E%zK#f& zed#ned29BzsQ)V#p*dm+e2>v9fBDIk0r=BePaT07%5~nG%454frk(HFNhk>Mgyq#0 zuf4t#nRNhd^VVJBe|3_Upk!+9t=Ae_6_2kr(t3O5ayTkTm3bj2o4l^ zN?x8){>aa;ZC7)*2z9e`&@KYkEq<6xF`n49`YyhzE7(v!XC&;-`-=w8vEZAx9hj1e zVGwSc8(+>OUC>$?o=>#hxEzuP{;5kLIVyI@e7=eU{D8;#=n!83a7;F%&!wP45y=Bw zdC?Nxa9>g*|HW?}K^IcQ_T~2w>-HbMdo4fVU*CNLg3r*kZ97y0Km0(!Y0OrWrk2VbT7H#f<(mdN6+;04-9!?fr?i$WYSVZlOO+7+k{eq`iamhm%L znJv@~$ii}817@Zz7uv#h@k{G!^uR^EF!cK;BnqkX)xG&`POf!NNxO5Os>=qy@Vi$220#!1Q5XLSJ;9Fhe+ztqsrBaOmJfKqRzyH$SUUy3_NgT>p8DGKr^um6d&Ug{wJJ1Ye1jJCZ zFdA!~Qkn8i@OwV+P*mz+$TuDV^gRAo5y3|=VHO^FKckIg=6buAg>5w=pG(?>{!z2g zB^EY9o&F;9jb{QZRG!lFi636;jRUMIe1M7QUWEiFSDu$uxX*nLRHWR#0@9T?FavYE2s&| zi947C@C>$qFtC9Rvzc*~w-G2sba2ipPXXeG{kX(`pM$apCOA6y@l<}o`yEJ9dd#?E zwIR|Uvc*ThR>Y4uTEWFgvfN^zI;vr-3!UR z3y7%D?kCSXDGNYFq8r^r-ZaTieDA?R%SkXjyV~e21ObiGcGm^OI#)QJml=HIo8aGz zgQ9HWsP%JsfiGun5XJZrap_Q^WMVQ>=%y4n(=-kKVzv788IH{dj)TXI+^5Yc%m_NW z{{#;raZQ;`vRxM9h+YRR{*qDb-xJY*54QwvhC|-I99ZR^bRenF{%!J%8=vl-Q@%j9 z@TmC?CYGKC#U@<3*$W886Vm5vlTU1i)YEF0A+HPJVrp9;R}p1(STyp;mo;zR{l)Rm zWfEvFi(>Ui_qkenZIu9vsu)+=bc-!bB{>X2#id;4HmJ!PEpGda78+aXQmtfdBUOJg z0$Qm^1>r24Tg6>o2-$n}y>+FuQa^!DQ0NGeJ?7o7*kZDb?f`3`_)`Tg(`7H)TWD2b zRo+PmjP#|Jmnoo9m#ErVlKj19oj z<1cxdsKp*T$y$Iro_IU2zu5!!u*Q57H9LFb9lL>~N@&)_&FdK1sb{-|FlIq{OPG#q z*%o6j=8>vd`dac@(q-UJ+k^gaQLFyRMa4)Dn)T#wgLRia(CY^Fstaw_uZl49+LWAj zW2Jpc-^QGk$Tvq5RO{3B-jZf8HN+B_NffQ76!bU@L1OWEA2c&Y6fsn50Nj>!Je9}4 zG{-9;!|2jlJhK)qum+bTQM{vOjeD2rG1x)-IbmkB2C-uju5!ubG#t-u@yt3%9;YZA z=oJq|*df{V%0J5#J9K?)Cka>$g`c((gCcm`4u)uE8?KjTDRgO8if^q5o_^nrdoEkM zUwyo2cw6;La93BadlLc>QHq`D0x9b+6s6{H@M5|^LD9o^a6XrnVQondB)BMLS*=mZ zrmCq%lxj8|Yb_L71)sk!D%K)F8+!6Li;)O{9hlKJi4BPT(5b4pw@*_^vJ&kTdVSUG z{EjPEuf^=S(skKW&z@CBzV^mbM+-8^pi42Q>;ybEC2z*w3KBkh+y~G0sOxp64a=`@ zI)Gl6aYE0%#akQTJIWI_{v*5yzNj-mCmf39$-#2kxC5LQfpjz@3Tw$PQV>327;WfjlEA3u%e+^Y0i3L~RnVxJAlEeS7trDw-iK{ieg)h%^|o=#(& z$;so}etizM8L6Fnv!Avr2(%uQ$mr*qC-d8-=L^nmc;0^P{Xefbk%S>ZQaV1llfN!9 z;T$M(Zkqg(XRSU$zSv-mND&6_Thu@19WEWdFp}QEGcgo$+q(H4^1l19iv^zxmwKr) zPg{R63&8}{a+L+$k)#H#XjFVF6$L})?wJbTJ zt87p2xx^=miX~Xr1gT1rJHyxe3LQ^U!B0K-wSM_tasB}OFxg2$B7x`qIgk?ekkZRm zEuOdJh_`I0j{mX|yUjs@ZxusR@>I+tJC;XPmV$Lk8+w#Z7z*{6iAlf5ay~P2Qgi!| z#kLgv^+(d8Wwy9sO%(*KHqvqiLcS;@G%XY_Ct2;op}n?yPrg&GOdmjRpZ|-iJ+Nin zvm!C3T`^7jfFa&z=T+mOiI*|HVse8~wAP~*5f#m{rLDB($EWAv0=8~{wiB)K%aEl0ZNTczjCqfxdmt;trpgAXf(e)SGtE6PXs zb0utgZY$|bF|q&9Y!L+vV8dhM)HXpJtIPQewu@^U=Qik^QTskH=-W4ok8L zchx9XFL8Ajf^^?C4QVUc>oXpBxW|il@RZ8!W$NnsuBK{^oKN>;uyJFVB?PNaCe&A8 zh7%RVho|Gaf0*>gD2rZB?95oUnHL?}6HSLEEr5!ALd#%-=4W8s(YVl>@7Q;ck8T;O z;+O=tV5(<&TJ$g$qtqzQJwZa*J|hr1(qm8qg|$6k4oJQ6;Q*Vv*FLn^Dnj16#)QhE zyFOVP`56X*z*Oe4Ns{4KMr4}%vwW3^qCEPUp=Rx(tnxu$XzGKz7zZoE$SpD| zE^NYmUOR)|-TmJ6uNAQWPc8ZG+2f zNSO^hYw=x^jrrtwxrW-jB2~0r@c|2L_86+$)Wr6UZMLHhfY+Vjav8cyg>=d38{Dq? zlaW7Z(g9PP(G44qSxbmMJ-C#FmNiP>$XA}e-zkBhe72SMy=}%c;d_|_ObAu3g-z>I z)V^je>%W@u>$GpUvHFlciIv;!At+|hDex{=wWXygiMV#gEtA3Yb0h}{et*)Q^`d#u z9b@7^FQ9goc_tZJGM^2qQf^Ao?2U2T2ju``;vMrz5Te%4#{$-oKD6D%2n4_ruO4T2 zQxTS_rw8`c4Uy7zlrk%&5KA6+k|(oiA&IBmIn;b1L2)%2A9~!Y%t$GsX74o-e7sgE zq5HIVX=Xe5AuiRIf=??<=rfTCbc#M2hAvmGww^1h_2E<@Ndv}wpj+i_Xs#JagkbVR z-DdYsi-y=P5_}djVmK#7*&dH$3JH4WqS?0j-Q!v;oW)5EF~zbYV&(I^R$*r}9_S8q zN*-v#CZxYLpgUr}z}TYmsdKa-`D>d&=5%F@-QB5AQu#2hHRJWoE1;d=RpoR2$`3o!LE3 zq-HcY@CE6-8I`+KEm-}@yrW4<77lg>?p2HwzeZc6(MHf1DDyVXWa-mA^d8G>_}eGAsaj@;8$OuD086~j&4(4X!{&H0A! zRZc{=sZ16G1ZqiRpsQ;B(w{2>Q#r0-;Nwhsr+f9Fb+|pArzucvQ8Nx*gzB76D!4D;Y0-BATat~ zUZ`lp-bpsWZi#u}D-*Ocgm+x45`p5L+S;tUX%Wg=7kN`6lci|w=lb7moq~5{doDx$ z2I2)?*iQZ{I9pOxzU@s7eELO`0(&DTQQpW+(FnXmW88lzzTCA!>dcv(QQz?0m$&iM zv}9a(JVE9}f|C%(ntzxQ3k?oFy6`VkA`*J`znKyZ0^Z#F*LN>3&VBvQa@>W~aR}?;3gt6p z@md%2PVCi%VWbI04bg}2IO&MgzDs0*bwC4D%vgB7C{mik@s*$ap>y&^2A^8Y0Q4RR z%fgd%K$r4GI&>ruPK5v$5)02TTh#9UoE=F}z52nU_xbL-uyl_>EC>iP;|jok!1%r^ zc^FWa{R~UDmKao$k+}XiaMEl=+RE^ONS9g@GN{L2D^g-l5u)bqx{zrRNq+lRT&*98 zPnE|_$zt{@<0eJMcSmB^H$k?V$S)9wG@ALfRoU@ZRki0onnD@F@#0%W(>h zLT;EuX|`Jeb76euHz+=We-I#KQc8r~zTIbFrCt@z^1Lifj=!5fzVCF%aKU)N^(C8; z7DIol^P4#jffGmTR<-J^-vhNL4R0U1*B=#B87Pf2L=gQNp94~i( z@DsZ}=#vdfxS}P$2(Psn+?!Id0y0v_gc<T*i0#etclVdYa`@yL1VUh@me;MSR%D#+{PkI9gMm1zR599$2QiqaNC1Vi9lT zw}~ekkPed^oX;<|0WG~q45|)dG@#~f*GpD0o1R;}5}q;xx})E&v->C8PMvi*8mE8r zo_#RV{!OI{d1_EX9#h2E09W7hiox8tW+w}Avu!Ba`+9OiZa~xG?njY*B?SFd&UtP^(A`i_#tF<43PZ^%1lzoJG)@okd0b@KD8AZ6>X@c#_q4-hpc5)N@G z_fEb=`ZI_l?j@PKeRm$(7|*;eL!<)lFugj4KV6ul^n+pbvgu4FV;0_C!Lv?5R>8o> zamH`6-HPx){5FVmt#}XlDmRNbfH){!!HFjbS6x1&$OaLVn_$%5++>IVDJ|zbvVkqz z3M8fCX#6A%)cEJiy8Kewgj}!-V7^1=qUL54Kl?8WkhKMZ`RPCq5_>>aRAik5O(Pb# zw#`VFO62k^Xqouf$7dlMEw~qIN&AC#z#~W>|KljAq*g$1!fJI1&ZJ5Z^nJJrUV$!> z&HoK#(-ynm@Z2L>4YK@?W<(2ax67g$EpOk)=nv?H7BMm8fgO=>>R;F=5GMHA@Hf&c zphD+;otlUo;2$4^t^B_UyNAF>CzX#=K?QPvhK98eA07W=ztql3TP}GKb@LOd2||k9 z+Im*??d|Z_YkkroHF&fRJ0KL)}l(!q)ZKP2Uo)4Mvrwt(#Ol7pg(){%L&+RAq!|o|pVt7oj z)dZ}5PT4AKkY#l1YT?sCku_jBjzPpZF=J4lxtfk8S**`^lahMkV538XNpLA)%iw`% zM_GCuD5LFb*0eNr|DH&MPtL|shNL9EQ>d@45;2dD>JE8iP;4RGE%C+~&QJx(G_SrC zFtQJBkT~6HEVk)D;_swsM2+jkb|EHb>7WiQMxCG3CMUKV62RS@4rzo}fu^psNH!i7 zd>i@kM;sEP6xa}4>sv5lUP}RRoFHB-u!9@|z-mjT@nyS?t9#u)GwqZ!G z$4Ya%e%aCy6EApq4OKIpX+U~OFh-r_5mp>Q?TTY#cbO{l{NGr{ZnOk zl=<%3Wg)ZGX%7qGa2?TCZV23PFsa3CFx9%ueu{v6>7Yt)f@oPzuapU6iuz51g0 zh7&kN_o4Ea4n@YfUA&^!_d#7F4&|e|j1&-g3gNwTCf>rs4jqiTo0$!Ba@33*?|i-a zHDjH}y^<9BRR*FiTg)l351l?%OieBbwL|GBPFGEgdoGcF0Tp=e zlFcjkoc1yj<1$kQk&W(Q4IF60b~bQ<3)6)}M+IWxd|83rJD|P{n&!g7VXxT!g^*2) z@SJOh^IcpN?;5<5^}hVM-AWc5dEpo3VU+4CY# zstF_GMDa8v5inZf&egr$N(&Bj(PQJtT_eA03za0fYd=Fyh5#tf{ta9ab}V|zleXZ< z{_LL{ZzfjFu6W9MYr5@^zacqF;*%w*LYu}LG)`~lidtiHN-l@M!KWYQ=4LVOHNE5H z7_Iz$Bj7j3N(dkI`X-&~r;qmEJm=K~fwnQqV3J`IvTXZxc!@=q z@D~-J*7UZd!>th)*8PhnOX;L13zbSYRb(c`8}Bz-q9XJ#bnfZ7%^%4!)yNv@#tFs~ zhu9K7_}$Y@2qLYF1Y6mkO2t-8!8V-jf>!svgxTP0>wGWf7WUlBoWJg^@Lsmc(>T>= zG-5Kwk!U&aip7dKi^0#a?`0$~zo-`;>_41k%I=R>*&vdyO{z!|H}Wp{4k~&4U9;k} z!o15m1;bii)Wg@)1$B?gwCAPf^mb zJ^<|8(L=CelD5iL6wl;mdMlVw_s$=_8Cuh2L1kW8oes;_{W;go(g?cz6d&W~tzi#~ zw-K`9Un-q$iY0h|sWa3U<1-J+9Nsf|baAyU)|e&ZxJR?;($8p#2}KlVW}*~+%2r5h zWDiQMoN#S1TFo7-oJrLK?b-4@RzW+ns2ix<8s0AJ8|)-&8Vf6(3QbNa0zLA+~xmFlvmuW`3`)At3dyQcZ|$2qdd+6|IROaC-^ z2~#-)t$1)u4O-PL_3OQD9`33>O6%qm><9#oru3g18wXlsv7MrhSK^sf#3ft${%MqD zO*hY5B9`s~_SL=C$C*BS}a>BTRHOuM(GSl(6JgANRXw(+*n1 zGt+#Z?K>|o9d<^9##Jq$aLC3Uts*9x7e1Yrd>uz+KOFkpD&JLc^1RR@{!lknS}f3< z^^GSqMdH05*0@8sqT;Za;WtS>{X}Vr-D+wyX#{S=MAY1D%mLIIstp^HAD&of9-Hj6 z3_B3yE_7gYE3ET0Uq5WVqbO|9(r&b_e0C6S0m2dW*A7n9W9}%ZC7QOBR@kNY$Ec8x zyV_nTJs^M4I+g>cn8^xena{34z2H+W+>F&ys;ihC680D!?^qRjn5MG225%bkMJ<7A zS7eP>P;2ioYoqKa482QMp6fR7?`>;%c=PR!E$T$lk6^>*@1i32Lf{a;-4T!KzLP%- zHrME5v7|)0%EoW!r#NqOb5KT1NuA+pPvw$?Mew{3W2ZNIAF2Y=1y=X9r)iIw?IX?~ z!{SN(w9uZP$$om`IRrt^In`~2q2=Sxp@2W&@ z%j}p7r|YD%uUVe)kQ|WqpYZ~`L^hrMZS&UWBZBV*45bRyl{R!-WMP~=**2fzG4|2) zgW_HBR;lqZqQ>fb&e;9XcO@}(ljzw!fSUKit>jxfJ?2uEJDo%;XU7g6b&KF@s#e>s zq_4lFqorV%QRr#hg$rUtrC^3&9p_EEO=Fq15^j~r^>*UZoa-40RwA=ex!I30mU7f^ zx^Zy{s}%#djFk@XXL3}(dvM8PHK(hIN$!&32qR6yXoT;yue!kj;(?(u-0!LjBX)+? z>w;pwP@@*OLR?F}M5zV0u21L_(M`mNtWV@*$Q3YT?c(Ovc;ti?t@F)w-~7&atgUx} z%QcdFKtpM$$TpUS4Q&%{lW>pZ%84>O9e1u)kw5@;J7G%>-E6;F)s0kQ56v!VBUjVY zB)*RGM#WBT8jeHG-dFCN*Xh;m4Ncy7;H&fNj*kG~#-GR-7|$d`W?JQIs948aMP?da z_ODSG;x^;)+$KQ3Y3F8}Z`+UN&fsguWd~$GvJ`Vu?@Ed4Paw>!cQYAcAIo83H$!wy znQbHM{DQwF(Ue`P8a!KuO@ECwdL%^&C-R}Be%p1F*^)Zx6l~xkMgcMzvH1Bg8drKc z-_RElH;Q*n?&hCy0eZhoE!VrbRdYsazFLqQ^( zI?9*xI;&;vX8JFpP<-$jdGdn=^TwKiZO>6pb`P6&FsevV&^<&8}VcRwa>CW5ph>V zkTke4vwN>%Ge1wZIRnV<*l_;VW{l^~lLfir99LIp-CMF3faxUg;AtqU--3d89`2C~ zfsbb1pSf21_qJp6Z=TaX@q%Jm6=U>o(MRxS&!PXsl+Dx2XCCXcTP&XUA2v37`dL7^ zYtePz4QBGcyH0&(eRa>v+vr&S57B=bAl1gM(2X}Bx(;yGEriQ~4DnRevC_1CSIiEp z>?jO-C%V+e@_ko&>UEJ}*C|D(3$xvr5}j)z>62fP1j4D9Si~*p^8MXY@}H25u=c{g zI(acc^wgF18@|Cg3SF^gSD|J7EF%1})mjd`PYnGF&E69~9I6xJyrM3XSpxc$P5&$i zX|a>lK4|wZw<91wi$^DoQ~wdVMP~h4B+LG@u(-uh76Qor_1)pii~lR#2@3JQP-dhF z_K%U0jMzmH4Oo$j)${h>0{kFP@UJ8F|Kk1rFW&EejQ1P=oCQjTei#U5BZx)w{NYCw5mu77`CcFZH?Wz!>~^2_&N~Hz*>D>$s&+XinKa!{klb>dNmklWV)D5EmzsfrB_7n{@`9o*X>O>r$|?f-&91J|xQ? z>-mV7(mFqar|Zh|1yuzqVtI1~jUyp33nI--$+YW_pVS|K^-zte*_As_5utcvD67O5 zJfQD;e}BLGn?eZzTruea;mNPhfHP95SD|%)N_}?iG$Q`y<|1MdGePsnGJu}}ju6Jw zY^(L4KbG+IRl)V&@?8kGt5OMR3XNA6-t4@xyyJSttWPgusoDg<>t-^5o=0NAKubUt zQLfOg`H)_Q`GpzoeQr#f{(9;+m$0qfYn}?u62H_M&Ns*F_F=me24VKt$%L$M8(~kw z=LKK*8u7-`~D=LfCSw&LqbT%H;4GbeD*p?O&n5IJp!tH>f|X9)&-DcoiS_8$AqFJ zreF3R1?%~xO;BKBY0w|vi)g(ER&&JC<^e6G1D>sqsM{le*6GA)TwKENtW-? zZkW{9i_tvNtL|~|(LpLVkVXhsaO$SG@NoY^D$fT&mvNWOoPsuW6u5y}QDw#qHwQx7uR`swTgPuK&clp*)Kxg=M}M? zz}fwr&;{CukO&v6-nKZ=AYaZ0RMQm-oC8&%KM%|kD*?a${0g4NzO+iYiEU3Q? zgW)xM5Wn)EMJAJSFcG6&=~rwluP-JD2~9UajcG5a1YKQ>T^!C>M2Ii!zB`)|=AVn_ z9RbWYP#Q_Q!5mrq2^*S}fq;(un4L_V?~t*m{-eih3X+wb;&_yT zm7X9XGMw$&fkM*$wU6D7kZ|<58!5#ymgfqvk<<0hH#sLlhDR?-RB-)fHLvQRymCWJ zZ}6}tjWvK(y>06QRO3~!ff2uT^?IQ{LRkFzYpyvju)T;?KD=kt6@usz65=}Z-fCr5 zh)~%zf_h_Vmi1+7Vp6rDnvoymaUDn_eNv0pg2}Cg8=%vX-6X+Mpjh|NgG2=~$1+9(Vda>OE<0t61l541Rom@~LVrbh6LL4*Mo5 zbYNN^Qj5XkY`kf&{5R;XSFQRS@d#=yQ?Raep9&17=Yo=9T;2fVa#EMd&jX@PT#93B zl%?S+e^UhSOOMaDD;eU~>OqU*h4nLz_Q~5cRU(bVxw_ON5*hjX>tI;^)+Ijja4Ix2_Wfg{Aaz=rCM6q zTy-7n=rt%Z&oc=wUNNgBaCMDFt*WycP2b4dRTpm*L*S9T7#{>=X#B|QVs`D~#LmTM z{C#EB>ERy3jQ2+rbJRvnz2#1f;WVsI~9iS$G>nVvh$*>P0U6^ZfI(?$g&@P~Fd9J=6 z)y`mU9Xw09QnGHmEqufDm2XizpRQyPXat;#oe8b%%_So81&+ zUp@X?Hy4upaetEhbIcES?U_$VIDjNnz9?`Xt*Eu=Y&j0BIwiAt^7SFuNhBr2qxU`& zf5@~WxuKTa5o(;Db8pi+Yb`(022=X79z%#}y&k)}W7X5R-~A6hqm`k(!1h7MF&)Z} zH_?LiKV{Zf42pX0Qt78yo~_5c^Spaah)SxM8qZ;mUC}|5(HCbqng8WI?^K6{M;n-OnicgEz zobcXdxKx-Ep8fQk(uied?Q({SKA8J+TkZ1sV4Xgh=G1N}6f4&~@TXEu(X z2QyA2l{T;n8_Dreu?MUaNP%ZHtFRvj7`frDzcW3u?AMka2!&i)i;ASO!S+VDR%jm4 z2fNT)XSMHpEpI=AWuL>=C)ryeVDU;&OBqKVwQhanCD2@NkG@h|+9gqF-o*4##93!; z6uzZwO^U7Xq9#urt@bu&FpET`A1U>8%8HY7_#69-hItA%h~hoI!A-P%nI?2%t1sP- zM_sG4ut@{hG2LhL6e zTXzVNnk?Bh!w6&S6%9(1WJ$7Q4U?#D*`*1s64Katf5+YP-p}(s@AG;8dGQCIImbCO z=gj%d?>g7@y+&ZBg;DajtJacUMK8)iwj6xQ?)Lq8#@D9lcm0KMJkoMi&XN6t!j&TG z1+*KKJL*DrpB*Z93B~2|=&83`;w9Sb>6}B1CTAI>}=~FJ>ZJ()(t@m8Z5KS2jZS zx_43XRTeWQ($T@>KGq@AGWS?kn%Zz}=E-BT_-|IU`{13DZ#VJ;>bx*Ztc2bvgLd+5 z-o9`lJyjmFx?vy9alZaNXV8>CYe!1v(oL({8^Vs6IR}4>t51qHe-Zn)FD2H7wS`?C;e!m9X5kg_a z9(3y^OEBnMg`)|+JjOq<;=L@D0T!PHL)!HYlN(L<9J5H{$~utKeB}zuZ5*olBn8Qp zLMcLJ?p=$>T)~O%b*y2&bxq~4M0tBYIG`D9Sej)?%;&lSFKrj2d$OHCz%F|->%DAJe zw$4cuS<G$7|njUbmdMpx6Y`#zg|09faE$&iz3I}=OadQ zO}LnLPBq8z&EGb_U$g4JV~0P4v~`d~n>4Ol=6a_N>fXA|=M3A!Xqbw-z=IWxyVboDb4v3uNW5FMbkHHie)6hTjm1e` zvTf&H9^D<50~Zbp)7j!N>{kokU(w?4r0h*2$M2B$`Nm&ycAhnj(FTGVQUG)%^rDvR zW~6-4#b-ime5>TLOSaqdm;_B0Jn9Cu^OmyrFVI8OeLTFEjR#{n;G0Ra%IY+%naTGK zb%CZlwX?qw`ywQysn{=~4}zU|Kz@cuKVxS;9e5G3!uQrQMI29K!^;Y=2_5FwZ#Tty zukL>~-lxgORLC(I4p1~m42@X^rk!ht(C37d+q)zBqYuOt$lEeaR`LT6w5J=4**sQ{ zj5W}0ZPgTOQsDM@NWI({#G7wsB_$EfJ}3VpOy`JTaZQGy8;ql-%bn$bq6$fDM=F)- zHRFqNK&+&)W1a~Ass|~^+6JfQ*&}cfk_|%T(NKZ9iwaD}jhd0;^pz{NOMX9U;C&@9 z9GD0B1Li|zXb5O*s)9J47fQsU=8BA;>`*;*$vxW8c;U5M%?_S3kR@XzHlAV`Kp>9 z>=zedf~viPthZaM;_x_IElZoaU#3DYKd{;GK7X;WaKq-n&3}wZI3cgqme06npXBM~ zahz>6S|cxj(}gy}6G=foSRGZrp~irMvllJGzF#HAFs7jUs5~sGPM}k*+(DSgH6qU_WLt&{vKlkE^Suay6UI1r{=D51bn|Z)wcuO%D~<2A2g~3mWjel!#cam zBkZMpRlxe$#)So`b;V@JOF3+W4GKMoR{0$rhkTrsGLxkYuZ0lIzvR|CT!tp*Nc+s= zM+$pbDe4l}P4sBmWZb{z*5@*OfTLx*(WK)t*FPMZCW&^p2Sdqa30a`zOLwZ&7IsnM zFYpu(6U-K#{WqHo>f_j^xN$fBhmMJVw{!l-y!4+@|4SJM5cZg))145B4SSs{`i}WF zdu}l{8-SPoPe5F!nN&!ElOUwVLU01&?*@$RKh43P(*O48>68TC-5&>Zpyazru;Q!6 zu*4@Jb)<&$nN&0KtBg+^a%!{@U-qANl8Mjp32>@y+QxU$3L2=2UsJ+&2Mw z`+#&9$sWp_`7&S$Fm4cfO0f8uQJOib0J$9&-=&!efEj-W%L{;$V)MpopW=U7Iubau z{`S3kBp=NDT}1M~zEbNT+5C4R{yCt7{m%E-f>IDbd;{$zM^nJLm00cgkrZ@3+H%Eeb=ku*KVZvLw7m?8oD$98b_R*d{$xcoBk)lB@&{u1vMl*f+|LNh|aEbQx*shC;&%l6SlV!6a^|>1)!oq zA@(OQ9ojfarEZ0OARyh6g7R zEAJ&Zs-FdMcDmD!jx`K$r#Qcm@ltW!H`PCrUx);NwYB|>IH3gaOMS6kH*+2{0A!J~ zLtv)GX50t3Y78hVsUiADCes+WQ1&G*#EZEEzJ2y=YctGYW~jh4Rsk=$38aDm0&wEB zLaNe7U`6TK?EV@{BlmerxSlh9!7y%N7kYA&t;QU5x~%JQ;4g`&VW^JZpMfEy4YG$VIBS~xN+smqICGwk7zh1I;o7gREkyRz@3%9-Jlp(k^8&^!Pg0OSvrs*$`4F7t; z)NB|c?k|Hffk}OA7H|Ov0&T*Jav^M_&E+d3b7Z=Net|k-(Bugqvx%dOrc%w^4ar#$ zV{erS^x$})iK(f>GJ(5nD3i1&7b%9t)B{ZLNa42M@zEcK&T~v~{^{%tIOF>hq|@vd z<_@f6Q~`sMvh~o+QHq|=nonv6h|P;Af8YC8MGA=XBqKpl^6UM;aSNGm^&mO%3`COy zhuZ}qP4*iFN|~~bBb*Opo0BJvR6UbIJr_PHEqTr?=tY`2=bB!{Qg{1Rw7_0oTL*Qf zI+oP2DyUHfeHZMrAzT=}^R)-)tO?cy=snfzg^&bg0HV#?LgXN%DGPE2COF7#TMj88 za1TbXt-oM%`}KO!Td#XTOOIlvnJZ%wr0ZqDomevQ+If{8@Gl|BG+^>{*l63y=s5^y zGzY}%=MfHC^n|GsfVlQVj@}i{C;b2z$a5HS;-%yyYBe0>yC9rsb`!E zzF`R5#~LYV3_^GRLVg5dg-P;wiw#Dqdb@t94zR5MNa2D?F@5ORxdF~nu?S5{qMs_aTP7(RnZvYc4oCRM{ zuy9HNWqR?Hh|Set<0^gq-dVl+uuDIFF0ARKd@>5|?RC=9AFSKdsA|7&Nj-dd)=6C7 zlV4>546DmY65+K3`IR|_neDrtqZ3v%sh3X@D?7@JRdYr8ZwC$HsdsJi%g1D5+&mJ- zXbkJ*M7WrbKayT{;$Z@>{xNEa;LJ#kuPN6Z<{YD~B}eOQjL!qRC1RMM&c|}+`WTeQ z4jW#vZ$Cfv#nOr#5F_)Gov{l~FHB;GnuB8-3Taak;`wc#7@=svj|saZmXzn69Q<-j zsQ``2`_k6?+!a_mM~m~*i|0y^7w*!Kj{tHeS;hZA))%o$^B+2FmvTqa6wNsTCYpGQ zk;>LLvcn7nra_5P>qY~0t~FIMQSxBe%EEL(qJ3K!OPY)UAyD_u0rJy}jol$#s&w@S z)k-NCniOYtl?uPCk%8`|nV~=->(hI2RKM9LPWEOO=5kW8UkCEEe+hg~SGIW$Q#ya- z$}ZePK3b90WM_(OEGRJIzb<3AYLj(!Yg5{SBH0f%}`rYC1C7ntcR2(BQrL%k4$xK978}o-8pr3kE$yt>x$uo)f#ZSDX1r zZ$wT>MCThv9`_$*CZxz1awk&62lI3S653iaNcAFv;(0&1)0JZncV$TGm{3c&$BHnC z3m;$RnPDvN^DAD8KiqNNoM!IdUTLv-CU|DEP*v&*ka#a} zxzqq?P&Z*E4--6mt9_irm~C%7?TL8&o_VuBe^G`=xq7BS*l(oz96{oQj{`Mr$d=k} zETL7puO@qc+l1})b~gJL`8q!cU8z_++$QpN$PuTcc1JvwYS2y*p?XWxVKj0a zt7sh!kwlHVU4oPck!FcX3|c}c7F@wjSWv(G{3y+j=IRyja@^S0ZC1^y@u3A7I`*dB z%e8?Z*zcWxKP9Ir{o@Im-#k4F*{RHbkQ8dFS3#;`6xXOQZ7WW!0A;6q-cDb1+T37m;;{jzQuGVU05k3)35Tz zaeHsiTvX~J>s!hu8|M=3xvgDEwgWzhe+gdJE|M)tX#ew?9F8cHv}CJhvEd<8t90*k z|2=#8P26+;TP4(#_>tmaro*=O_Fab*>sjGv+E=M$SYmb{`6OH+Gj{EnS8l{!lE37qyY``3?qj zh61;yDl6Pe*OF5|ax*+|nnnXA2T|+6+s#{j`Nl_-a9s&ga0i|#Y#k?}=M!AHeIsca z-Axb|E5Z)%no4HK6dCON!PaL%f{STz?^Yt}XXZC2K5J;5Cs1+gtH0E!uC|>gJ3fmc zuI=8<7WcU&Pz0^lN1zko4TO2Q9HL!rc0|&Pj1?9!7g%#yz;Fe8`txpi{PAIF$&rt1 zOFwwOJ8q0CtSA9$M3;6UQKs00!jY3tl||Pol(H|h%kh5QYbnfd5VhVs^Cuc#8SRdk zLu0yGchs2@+NJSSzo}z9UWs8MwX#dE&0RuuDFO?OPc3pq4!`W^tY12Gk@Vb`H#Ffo z=J`GOscxL}eRP!;iz26&8RipIzU`c+Q_|6=# zM|(Wz&f}@)9q#s=z3O!8_0NwI{OImag~;x?m%L8d0UzqcFW3{)+IR^hw{hDeT+E27 z2I`%FNt;eJ{9^)BiQb)VKB8MHSU6`SbG(`3CD&f3&S?&O+Ax998ec#UJg=UI{30}* z(atA-Ve@75&Q#?`=-x9gNt7@GYjcJbStzK}*|I_8Ao*LWuO2=~cCsPl+i~J>kZhju zlvSfj`QX@w{&%&O7c2x+=9qbpu-H;5F=$|(DyY;~*bd9!DP_GJEOGT%B9fTv-#0467E(n~sUK#jC^KW8d8p@@kr2+nPkn$$UtI z7k)dl8k&kcM%~>VP!n9Xw;TR_=3brU2O$f4kXu2FZr%D%n$VRH{NIyG>DPX`X zsH*e?jn_WovB(Qb7%|G0^JOJctnL#&(Jh(w^z_p2*m3`2aIsj&QQ* zDPSA>?sVb@^_+{5dh%NzI`#LQhq<_#n}jFoSPhyR51Je3-TUVql_9;+anC5G+j%)I z8Oh;GkvfzKpS78XuFv>9g3@Iqb!;DsDasjrW1n0NjF zgAHDct|N!kESwFBs#4c+_7ABa3%^w!&djK(smb_p?&yYz2leR99PW)=EOnk~iT?U4 zguVUlGN$bpWA*)~(drO(1bFIk-~wCyWa*MKJG!77R)P#^Jai@E_-r29Q9^ZhVic^0 z7=>2B_dfB=9ljwu^%f0OBsU3|-{|A>5-I1WwL%&n2aOEq?*r%A!pu{cwiGML4l_Kb zbm~DE7;4K0UL6OAP+`9!8yMO1=daHmIsumSSE7sB+;SF+PEdrN`R*okS;&t+@7lbT z9Ko@JEqJ5dIy?Z_W5geVq2jEK5UG+`jRp9oi(3bT_&1}T_@}pB`r@^5lHj`m9 zV|BsL^`DM9VTQ-+LOh{O%CQ}klfw_N&{Dvw1%5uOv%$SCe;P=GR*8c3M@69>cMy$G z(Du*;_22~_zj@kx5456!?GCUkuiPpOT2UZ+RzVJb>9W6c4zwcCgcmG(FzT}+w4w?7 h)1)Z$|JO#hSTzskPU)K35a literal 80528 zcmc$^^;;WJ*EWh3*V5uvoECSd6o(e6;qLA(fl{mlD-t|7rFbcY;_eWvxCeKFCImR) z`Ofpc-*x_h^TT8&bM4uC&ziN@TKm557;Q}zB77QrG&D3KHC4s;XlNLyYm7}?Y}6f> z1o~1mG<WDWV{)Vy)v(nVHxwXaewaLD?L#>(@x!bkbJ!c*ONz7sjtk`JyO8-QqL)a;|Fj79$^->Ey zU=3ZQatTHX2vX$Z6;v=od#atTO1ED%52l0IH}h%q$EaI`bAip;E17KTg+Q!)qja`4 z+rl6m>(-BInP^+roKsUb*>BPKpJkYi?6BuM#Rw`rqdty-VW8or^hmUL5XZtL>~hik zN^Cd3Va2Ffl#tD)+i&d-*dWg8KEN#mUZr%uTaWg83%U4B7|%}`TJ4&qgwCe#oMD%A zR7rPqq(8H52XCKWWeE9jCo>Rm`{|7R5Rxko%++6YI;`Mpr9iu4HOQi`YfJrv_S+fz z_11cY)(I0D>)FC;J&+NQS(Sjo+v>VlM23%#(6j(4>UE~5Vf)5Ny1@H&j zTI?#5sy!0~1MYVaj08sCT-M*pGk@5=B22LIU@PFJE?oWU)QRyl5yvYJUpS1HAA{SB zh%Qvf4ReJF?Q5tiDP|fbuPTQ9Yph@LvU4aG6qrNz33qTqn+^*Y$I|>F>V|EErQ1Q| zMnD*<@)|#~Q-dFUCCnc8%PHye0{Neb6h$N%Z)Qko4RHMxcoJkn_4n6oQSvtm)Inf;2pV0XlDLP!0uHiLBzvtOF zlpTxf>Wvh##0_1P>$In6+!3Z-$+)iva4{#8^>As=6yGH3v7(c`a735i6OzZtjZ^|*yYE=wY59U)z z76P4vpo5jkm}$m-Ey4r`9yT1G|H{!@R@oKi={?hM?(zMY~(|n=<3HOOmXS!q#W^QHf2>1WCGa#tPGT1WM zsW;(I%{U(UXv0<)E0JGWbyUhTAzQRuE>mgwqfXDZP_u4~-1s}Mp_qJwQNst{H(DBe zdVHqUIw$$EI^arhQM*dJAz-LuoN2)@ISJH-Sx(?GawX) zBaowZO09G?M}LfKjA*QofROT(a+-(AW5RvCkgSd}{b?~3YH)xUc{dxk z_n$y|eiXBj2Pc ztI;$C#v7!9PlPm{2%+(FgeMg*w{Qjfp?~8izYsrPEFKFbMTMSb)r5h`0hQP|3JnTh zcaG|?-tfl4&D{93V9u?7$6 zjF4?#Y-Vn{4AT#u58j4|*ogRg+qU`KMJ52H!Q+-}_uY&gnU=wF;|Uv&mdp~qqN z;>a>QqiX>STx&a4$~*U(FRfQ}LkzTp5zir&-;H1{<+6-2fq3bNLw(0lgWKLC0)yi-fsM_T0uSeNp>n-vVsNA+n!dNOeC%E+}@-A+Mp*c6r^f1JJ zul~fjbCp{7D~sfCX)cf^_oqh*>%`GO{Ow@=C0#V{6w(Q^R!)E~^G8r5^=qlQIBv4Qz!kOP9OWW=iC(ff5&({ z<)9uJ$9t#zpF#i6eHwf?;s5oQ1NDg4n`E;89k&KmQs7?DV$iV_9Dn_SSAa=Q-=e86_d4uPh;yX%42 z_Sklz4x4mv`=V=mtA4;O5dYC|_CfCK{O`byZCe--d+b68|0YNeRS|GTJ5Sy#F%d=FxB4pR zdr0yUMr66R{jDcwVc>Yq+Wj5}s|!(>>+$$PeyY9PXTv-FwlDsG4P9Hko%$f6DZc?^ zstWmlljZTWr7avBp0d!Mc!FGWu9hFIbct?Xk=| z|Jag|_irAp)MTo^5Za+gPkGkzr2g;OMhc^rO-ti6qmr34urF2viH#|DVmW!Q^4PXL zO2H7*=D9Fd6E?$5lL7lBd3#WZGSOa>bB`$b-NqAF!6TLBqPsZMYPbu2h-|y4e?cnM zvP;S7my}>SOF=26yt!cY9`Gzo)ahya6WiYl{4~=${Q+!80IW&v-G@N&-y&;q?2IreAzN!#Z_@GHwKbxA7Ja^a`CcIR}I$6=5ET_QD!CV3#J<~xcN+uQ;Vxe$(V8Td5LYdSL?2a4-AIay@b{$ z&oNA`wm&Y{_G_12jpIcptS_3wVst;Mw#m~<2|wmei+3mO>!Pe92gWOdM6Rn|z7kS} zXjObb+%kpT5ltxW9z)`bY$t{0)+D$TnhKmh`7G)st0DJ z&&y5E3&=>f=&+bc0Q-D?qDmWLtI^*e>aud@ATTqp_ic>(-iayJ@k+ZAH4U+ZwEJE6&WUJ?3L?4eF=54NkkGh6T z8F~NvWGO^cA4CZD9FtJWZJ+aYi`!dIfH|)lv=KM#Js@V=UH&XMls}ntNp>9O8(Kz% z#Zj#gSn~Ed3Ba#zJJT`KJAX(muAWYC`Q}KHNq-)ghY+cnyAuQ@w&(O6@$5-b%nQPs20h%5~ed z$U#M2{3mX&hGic|m&Wx-53q$qGm?N)H;gxDp!y>PuJT{r2MqjAc^VwBSE+(!I%HCp6eRbZrUzvy9QU5Bl;BFd+MAz2(dmK78Po~^^^{t($S*1^v5h+I^Q03 zOw+Rn(T(8NP5HzaupU7vT3*%UP*y6~*B=xY-v6sp?g6gVVp)d{O>O4^oV|(xBDufG zTASJzr)J)wY)`OPcdaDN8OYs!87plg?l(4L5_t5O%WCzWH2;CIkY1J=+#3M6yOmDu zn6d*F_O||NDVUSJKFl9N&dhcz3Y96EiIV=1vN``f1vHm@4Mz~Y;;4jwZB5*p)J^cv z|5IMw*5tn}1fHk!8kZmKX1J<}wBKVyuHjglF;|Mr=oR{3)q#ygo0g#r*P$Yx$DUHb z&4X!WIQuX>vRs<%&zojjs}A33k0Fb9z<`i*lO+&Z5`CS{S@TArEFAjHI&^m#so$O_qmWZyAyV8WA%ipa`6gH{-L{u33tp=|k)?8Xd$q9k zbs|^0G?Rcmn3J1a2x?3*vG^8wD8oe_jtC=SJSvk&bk1xu4pFpS(@pF+CJqI9kc{V> zIALFAaH;#=We33qiLy94u`r_%-^Zj@;bYqZ3H~E`_q9l!_HC__d+1(&V+^uBj6W%; z4?>JuQ6t1-8N-B3W;iyJUs?DfsS|hk-4TV{NKRL(Zyz`ij(5ydA<^x3SBtcwN+wB;%!fZ!HUg%dq>~kY}-}+D0%MbS6JUz2T%Y8w3RM| zPlDQ}D;ib;EXDg_(>HO?CH<(T`LS=lKzsQ@-0L3hZ^h1)ZOF%DZx6Roui;aN3d_Q- zDBO>B=C(8XBHt`}MS%g9xZQdZ>?$z8+m3_@c7&ij%2iWhE9J`>Y?#l~qmbK7HDvm_ zhg{2P<)%+eG{LWjWhhwoa{9wC(_MwFOgVhSR`vrhvI!{wc)A>Xy-W-1K|?11mZs{O z_#gf?SEz`Lw%5U?Q|`lmRWTlPQOL-1okpZPGMY5Prg_di78 z(%@Z57{5d|1?VFUek=ie#CHLAP9TFchcP~$TXNG2;iw)|SxvaNcT!M7qO>B&30ZuB zNrE}Qd?JhZBn~G=z-%Pj#wW9d+vl8Iv z$^<8|rbr8F?X?ebZ8m0qF9lnJPi z=GA?pq^Hx}+$$Y0b|0EXc#CjMa?oe*QAeuu59Vpv(m~IJ24wej5**UgZ0tMzR>t*9 z`=i(5>c+sGBkw$Rdti0IjuA9vba(Mf0scA0vxfFNXKudBBq0D-AQ=@Z@fAB| zlZCFkAOGFqeU?BshWr;^3T_B2*%Nr*q0shB-{y0gvClkgn+L2xsO1k%NS-@^xcm!U^l(Sc+aCJ2r8TS{i$W8a7`q?z}8QAM) zBzG)-bEgS`HFrabm@nP05y9QW>T@w-hXC%>nv6tyKmWe+grw6=4!OVUOx)I|mV`B( zbr2aqXuMO8K(6K zS{5ZV_|1wZ_m8Z-USwRq_Ba(16@YZoWah-aaBI?YDr3~?F0nvkwb^u`w(xfvIjV8V zeT`?xSHRzRqAy+A;Dtl8L@p*3-T`nQqf!~W^^EjjH3jqW-0v@bY8l$9TsGf0yOZ%= zIt(qkjK&5alDc1%x454xm&Ce@wDYTk9HVAR$rsM%+9=-UW=3v09TQ?TN1i97i4VTe z^R$f&lOa3&X-h;$U2On%d)xgkVuZ>p#Y+O)q@=yjCFip)op*282N2;I6;{Qi5N!vD zaaU%GOY4Qh+v*u#?JWW{8%3|8-Zr8w$8YBSw31Xa?j>aQDHB>jAh7sVA{ArV{io0R z*4(ls*3yAyr$PteXE+Rp@_QcK_WYQIAt}imBD|4>tA1tf@8QY$$s$zj$)ATV7*KnV zfCT#zaShxX3L76E?KX7pR%+@56CRd?-+oiw0{j`2NZw%43IRQsGUb+9c%1F7&)zMZ zF{jld=*xh?FZ1)%Ox|bIupTl9_Ukqb@uS~U>KW3`Nf`t)ZP2qpCHu`NVYd<`$wriM zRwD#)2VVjAqgpYEor=h;iB!IU33l#r`9Z5C5Wy%I;Rg5Ujk2@B?z%3xm0oZ-H-QpHD zeHRCU1(fFkIg)^`A?1ur+a)V|8p32H2cNA;?R4W7p#}zKGh4R$a3O*lqoitXK}4}m zyr0%Al;b?($cf23i@BJ#m0!^P!&_^nL)MW8tF24a#aXd_><;S0l_(=fnR8S zv6tb$Y`eTHGudjJLx8q&nDKGJK^QTz@qSaR6{{E1plafer9eF)mQK(MacF_;^_L7R z!l!h8Ve)jL8a)FE2=4kdqg>9gBt~1g#O~f8-0uDxOXWAzWoJnn{alz^%*HwHk@>PL z-uFEjkpb^Fymrqc@Q?Sj00D4=F7eHGV(&NJX*dK;$02k$5X~3wY<29M`MK3;%BG~S zJcKMyYDQ9QsL>@krSy>|r!AaM?>QZfHp^a-P-Ck~YPBVRTm!r_E7m<-&@prO6ug6! z?dERM+0VqW*`U-|`hrY!)^Sn&0QOy6&%29KIUXElctofvMqX67gW14`S-*3p!)cki zX95iLmlBHK?lA7b^3(l{)AcERkvL-)+#G__pt9gLn#6>PJ(XNUNih(nZ46W(DQ&Z7F6`!GG?~_ow|;7)Irr9~ z#a;Wd^NW7T0L$nf3%FnnTvk%4ovbqz?ay0eV7EZVAG4TeuJq9JeiGh`Rd$ z5k$Ym7Z;K@seC|{tyL+^+r8IFacuFeLRn?JsXa;Syon5U+WqvB9VS-mLON;L2P+n4 z4czTw*^ee5*{Su-ZV9wQxsHDb!X+o}%}V`-%NavZc*fj~J$#g4sEtgP%=!aosp<^; ze7>y3fKeump^>DdtOBmE^$+0K@*oKyKHLB+&(BdWzfF_d zMxg-z1++{(B*mp9I-=U0xAG%E?WJ#SU$t4KYvwEM`o+?5-VmxsxnO_kd;Z zKblO9FDqoV7bg9V+#gkj@1PH;Bv9iKKfqB{$|qSNVIHf-`_m}76!d%dgg_(sn{Ge5 z7K_YH@-5u+2=rUrJSt-yPzL_cC^re%K2r=F`b8>`cYmHzR%B~xGFEv^eeJ&Y;T%XqEW=AYSS4&Bn&LK#RhGDep{E|SJvw!vyp zQG)Y2GnraoKwK9?f^WlJdn&n4m|4r%zdl5bAApS=wp7T^-{5ic(gH_iv=AW8y6>%L z-F!ivF0LAV38!pXd$QFdRZ=sr+P^3}wG#BHV-}AtD>l}CZzmfa`y=uAI;|hJSR1=p zNmxUm&rjFi6Uqd;7I|i&{I3PYVOKzgTWawiQDYCuV5AkiR0Sr$H)%UwGQy3Mr@%nB zH%tph$Dz~KWML(e9ki0eY(AOi99SF7S3d;W`g8-5SOF^^C1gmuqZK93tPj((*%NI>B2Z^0wCmop{Uwt+xZV z_9I>Sh=b0*$gweA2vrU6LtX~H7k@y<{I(Nnn~HF&7O+Z($K0A#gzr%w7i^pMYkh8? z8Fm9Oxg{ixZRXu`I;07bQ3Z!@#Kno7m5ECU?tS#i_*DY6rpc-g#%7AY+ah>^jXfr4 zc4{5a=F>tgWDWU+p>p<%u46&mb*HFbr@7@w@br%a;nTKD+ws2FX5VsxGKhD0GKmrn zkvo7VRA_Eq+dYNDf|y&@Xq)^jD>F%3o^P>3hWgirve@J2aob$h5?`RcOwEjY8d|C1 zcM41{O!3S7d%`}a^h1vgUh5eQBd!l#RCI*nR4=LCQ|Y!$)D;(kxm~kSI8iDXs>`2Hs<`KjeOH&;X`o+ z1Dd@V)n3fTK-T>P9gaxyJ*yyB(wl#-A-YckkZI?O$6g=W76;-Ob9^&h)XTuQBN!Nj zXf5>3)Cv8dFfz(J=ySFqZ+Kua+-p_u%957w|ZcrY0gWW8vY za`3-@I6bIvTP}rIgg{_$6|5oE|K%mvJ{TyLHp*{d^xeK(0~U}Fio<&eOZ>?eU^?{h12B5As}1G zUUbP1*8tvG0Q-qtdddGh>?Km`S^bIu$7*9={(UYoV_J;Fj+@UMY9k0ZpeegIA2S_+ z$|UKo(z<_V4=Hqhx$(lsg1me0XLu}&P}P1skBVn zqQ1+QfGNje7TCorxm|djL~4`4s(E?)Wo4P)+w1$;J)6e%N0|RV_~D8s&li3Z9LlXG zWb2IWwHTOUV`0b;R5%Nt-P3x;kcI?b6mdM~+z%AwzB~ya4*2v?b&UR{Muq_Or)@ zDw*taguszrv~OxF=OUS_%kMa|{!5t{rv+h!&FLt$=gjyq{Sz#cdx(vq$r7b=%;@1e za}3n{KKt-!w1;aqJIA#Je_Av`10zBkV_ssX`nUh-l{?_JZ1F?nE$t&petS=3y+@6N z9~g*zM*k8X;!LHOf%}=qG%EGo-4ik3H;p)5`p>*)w3ks*{Lgk1)8Bz@i~UXLRg8Py zdSYakV)Ug-5Q>m-2meYzM~{oJ<1FeVMN@ZWuAw3w=S<{{WVT8Z`id&0gs`00rKE7J zN` zyVjP5E7bl=gpPYYGCLAQ8D{^z!!Q15CGl%P$M65;LNDkZcO=C2?CJl#L->f75stNv zWd0BTDf7rc%pFNfI|}X=zh&kR zd>l7W&sG!FTKffQT!b*`OE)8Yj!qiI2z z##jdqzS$0jy^4#-5BU1)mnZIHl@{fqOu-xV{Nr^4a0rBLLwXXbCl zCF}*hIdlsZ^U;p%56=-}Z3xU#Gz;KVP zkuL+R@33qb!cb0F@Zxp9k{*pzp7p(e z3gn7273-Mly^2_MD?REq{Wb0%pc~Lf%SW1@Un%Ld@ z0i+rh0vA2knAhg%Tw`=nX!+uMLc>-&z2RhK|GV+sri-nqK08w*)N3i`iQ$gyQ9qF) zkYvNw<6Y?sHpIb@dTO=Hy*ckr#Y@H_S06v}cvF-_PS+r^1Jh)(=th2E%hkJC8hnLaOF{Wfe7+ z6vk$uDd!qlRP6l#i;L)m0O0_RWmp3Ph}A>li&UZuFAHh~Q8kM%>KI?m%@oM}smmBI z%|6UnBY%e=tnxxdv6@}nk-x<_l4Me>D};@9yTnB_q#x&r@qfzoy_$Mnt*MKAyZ?c4 zNc~QjhMNRlqJg#j6yuK?h?d{Yz4mB&D-PnxqY@xgT&?q^wj)-VS7F+hy*s93nl$}` z5WW|?7n87yB&*S)AZC!%3;RuP_@dRKUtO_QR9|s^hXEh3)TV<3&)ak z%*U#6o2;7H9g%ucFT3~N1sGusGEU?6w8_s)ltcAPmM$cOFYLe#zZHf)Yy zL>FmbmBe>gh&|g?JOrjk+SXW6bczv`TSZxwVlo0+HkH0Hip^e@@#*p^0avP##z@>b zUZ_X-QQYJ|=UQF?h-ZqficA?YW1QpNep26?IG0HButAm@JrKj8V$B6LlfFl^BiQ+0 zbPmCpkMabgzc-DiG5D7ycdcXAsKtnAhXx3DgdL+ksY5n@&SwD$E2?b~;fuVS{jH1m z%@`M96dC=aM2;+-4kOlCIZQK*0E*@aX2ZE=8UL}E9VGS4>LQEb<6lW4`2NVJU?3(T z$I2#u0k^L)n2-ZQC=3lkO9@#+F`UAGZ2NpH4TVlb@2&ic1oY=c{|@e3a*wBZ*mO3d zmPEQVMy$1R7&as#sbf)yNROqnV3CU|Z3r|JrEGH1F!;My#pHsII5_Uf(0Z8YDN5BO z6ceh9q5M+$jZAm{`9N=n;VlnkP_{6_k-n?sQ_2^U>dV5~L?MEL98~92Vfu{zhn)Kv zSg{T*If}G#(s$uMAYRo%1U_psLiWt#j#zdY(zaB1Vk>@@2f7&EfpvsQ39G|?_9@9Y zaY5cJTJxeSA1{*XPu8DAyfQ|me_%pK#Te%t`ndS=Iz$rb7q=>2_Ah3ASBwE4b#*2{ zch?7b9&AI_@vY%S%@>bi4Xl6|H0MwseOf$dJ<++Y@=L~rzH<1Gs;vR|>OT`DJG$V& zIKmxi%Fj#c$nrpHEL?5y4Aisa=R-lfod4+eb%RR)`i8waJJR-5w+yx;(`0$Z zHrAPL#&5PbtTbA>#&<%0d2f{1*{yZ1MUC^c~WsPW>o zlrb|uJ(it9eUe$gAHK36`%M)9{VGM&+f9`Rr-P{yJ(ocrHkcZDSOi)68TAuMbZn6s zENJQHXA$Bw4i^divGn)>(7`{&^CyUDJi3fjGBI1KXq3yor9fZ!qTEF!wp26z_RU+4 zKUusXAVQe2J4)XrkT5?!tH;Eb_Cjxe*yqz~1R;qKhLCLGYn<0nMZL!d4BHksqNlw-c-6>@s2ni+S;)=#FAz>qQuss^kdn$Q%$OhX6#B5R7NAR|~a= z&cms6qdowh84~hK-J6F**BvJ-bl67B|2U{_4?$;JNI4>EcYgcR4W$#2pTJ?Xp-A^$ zS4Y)eQW!!GoZ|!1e4Qe4QZ#lKo-CV#u7L^yn);VTNpb^-wG0i?rAx15c_tb>clH;5 zC?{XMZH@`C1{(S3`ZH}q`pm~#GYF*Wl9c+JCdIN z8frl=)0Q*0Yl&k9#SYrA%r@U(ZoeW=_^=X0NUnRpiD_Ee;vTv4Q+Cb*=-&Iw04$&P zC{)QRjFD+QTHaAxEtuxrnHIx-6qS8S91ffQwMm)v4b z5Qk6j@eTbsE6_xRoB#JT(~`kYp(%4Y4Ff((V4m5&=^t4yMN#(K>6Y;s+M-XMhGo3Y z+lj;=ii;nd$9fpY4arJ2oidoY;cYvceALwh{C|EkAvUi-zD-_^IU)D}STfkjMJL1KM6i@yjt>vY=3)I^`lTQ8+QaBL&$=YpGOU9;gGFa zaLh@lV&Kcv(;5B}hZ%M{tV@xr$?#EP1N+^o{u43L8S!r_?NjY2rgpRwhjHoTUwS?4 zcFD5FbAuTY0g1d<<7@GabqA&Dy~=6Egsz? zOsKOpeZ4r%k}vJXY6PfnVfN3!wrF-_T2Pf1R0| zfmoEd$RtHX7FJMkmPBbCm(arL7__OR4@EVhVf5EY8>5FhC0@U5IWRtPm_dn%wzv2I z{{DR(%*$Q4r$%mP+-9t&R|n^qy}fRm83vp6gERJ|_b8>ztn}TU79R&K0|0qut%c{> zjS>q%vi_r2A(lEE4?53U<rGb?n)}5RBh-8m`03)WiNdPwr-2o3Me0VtsC3kV0EB%EMvWYx$%NR|@ zm(1^=1*;y)>Z=rTIlzEj%^CCYN9_nN1a@HhfcRVw2|o5D(y+Tdtka_Duf%2Z{6o4s z55ypfB>sjT+wk?KI6SqC_Brg57T98tChU;=tAr#~clfF9c?z2*M|B!o+csA@??)3J z4WrQyY2rDkMmL!#y>E+i4U+#y9X{QRQvct7pAA#@7BGp$Lmjl{jZw0^(Z`4>*m{SO z1hsl~Bm_(sW^%}$#cb`aaB+x7J@aE|7=%j120`na2X+o!eqtJc{0qgHHlM z)R@P!$+;Ir-;3de!)S;|v6lQ(F0nn?9SMlN=!zfIX3@EUM_ECpzB9d|+hh4vj z?9T}04$VnulgnhNEKF|~W;4$ra_u9NBUxhAhj->S?5ON+tM`n% z&K5mr$?en!>; z$Ldxee`xkli6FKRFsy#Yp!}_xrJWf!fB7j&Hd7#RJ|d){LM!D6uKueTypp44Mq0I~ zSb^zYpIn;zJI#>*?A}Kmare7a#+iH7033`tLK-UN{&3ST_bvbGQSY?d)m>&wrBE=+ zxnz^&JVYC;)1<+-?^@eSu@w;^U+Yss4~JRY!wTp^;8X+`zV7~|X*rxg^N7xiYQSB& z`Dbk3E<6t5#{i$D+q(a0G|kXO-|wFP7ItVW*E}C^P?`0}m0R0?(TavMfB6$8A9_Yc zKTKH^$KdgpS+bI~WdGjGGk$q-Rm>O6^|MHhOb;zAmkM8)PV&`?jlK9;^1$5bfJEe_ zVL_GK=0Sq+r3#rFyfa?I2s`Fi67T~$oZ>DVCAcdpznW=it8e)$5O>5bmdbeD*e~Ms z$7`k{^*Z@L@aYdsXGMbsP*n{~aQw=DMq<*!e#3)A0>E0eVQzf z(TalaR`%E*5;)|No@yS>FT_v9j@q;HVg)#G-o!9u^kRp%6Tc#dIuz9O>NN;3?=+&3C3vd+`D1-ta)082SAC;h6BV7cAVq6^j6*{h;Kxd1i|L(M1-#2;~izh@=2(OwKGm0(`n@ zN^{-$Q{rY6rK7cF9w<2_5Yx)=!1yb2?!DUrVzmggHl^f3JXxDZx;F^Fcsr`{H56tVOKbD5Sh?A

IlG||>&m()vh!j1bs%Xt$;1BU+W z)iGl9GvI77$4O39ztw3wP%$ae!I2Xpm=d6nHVmWIPs2^O{y~3B_Swk2H_|$lw||6K z$mWdo132(1(M?mySz4g*s*AF%=GEXP2gc}cq9-&Y^l6b8w60FtYq9MvA5XoYgC+OV zXS9)9IJpEi*mJwR1_z46Pj+&AP5iNQwy);Pxu)jD+lIlznk?whQ1qdOqq#IrIdiK; zqh;*WYPc~%;2lmd_AlOGY~GoEftPNFLgs%$yHlsb_EoSSszWZz1qv~8kHy;I?=p@# zDm15UV`BcS$$ZlKsfm(PS0Nhqw0vzk?{JNGzSf{81&)@O03)hmt!ZS5{+VZ^REn!F zg@{JzDt-;U?4>eiah0R$onhJAP%!I+cPVk=5JmR&U;=CNbkKU|^YTs;Q=e8FIVBD~ zzEPp)rb(j>eq{LmT=u|Ud{8TrV)E@R2p}B{RizA0`;xwF{=p<@QN)xJhu3@wj>i;`UD*M`qpSED!cE}MKWAxX zhMNhp|Am*D%&4Z2i=bldNuqRJ^KS9joY>;flqvg#^2uYo_*P+A*MaM*0~CahG!%i7zOxVV&5$mv{Vf_y)SWV^Rdn%Ho|^OH@K zbWS1?o|5`5m?U^tVR(@bUKRz`dMTk1t{;Oco8gx3gptjMzcl=hxkw~is{q_lAzao_ zBTS>}xCsCA?NlMsx%6gEVud(sToAKfZfBz4Q>c7A zt#6|*>6SJQOYFe^#4<2RCF62-8lfmF4NFqd0~DRQ>!fM1NQmQFhC(zYdZO+_KT!A+ z!<|l00=Bbs28LsL93uC(LUjsM_}pr4{G{PjU`>ynT3%Ubi^z$jVBDCYfYkM1!n@Ez z<27fR?yt90!}PMwnxS6(6|I;3M9Qu!KSL+(gZHO{k=7JzZ6lIt_H7d36O7Z)0VsaoCluRzBlE&8x zV$WbKe2Bd@j)UFkrM03luXER_9f;d5x8M0hub>JbD+CDsDXS;R<}4}FRw99$QW!45 z2Y9%yv@AX#{;Vdj|CFzcO?j+8ZBdm6;+CC@M!mxr>KQ4Fi z?#Y4J5NQ74!0gSpAknqjkTEATTSl`A7)cDbig*o|)7$yx za^<+{(g{L)$>ehH$D~fA^JVSV=HSC+w)I(>_eGx$gi;Zxtw>u%-BURe_~OO7lGyWL ztG^tCyeYA#c~UdAaFcAYqJ=Xf*gQ)gmdgD`f-(GW{ z>v1!RBR5tf4Ey%_l6d1T@8UOfOO7;OukKO5Z%MKk>%3A|r#_TDN08D* z)#eG6%Pmb0@d4#3jLO^;xw5ft75vR*8eO4XALQ* zqwWyrmj}9NDYC$pktum{*Jhfgo{d9UxN|-XvF@OGeS!I8?_IVyB?h{Gb0QM4ru%3r z(ikHpo!Ho4^k|ldTDArBP*E=667Vtopcz|CI-t##qHN<0% z$^KiC%y&QJsC$WTs!)*uc{}^T6ZaDP4{u2mKOOH8{1_0X*k&|a+FZGio=6T@{=C-g zJfVdc5wb&k{d-=rj4C}U_ye@KsM(5-Ll%`v8()CisF@V$>AhY>a9x(YktP_cGE|-n zA%x!U(y*Fz!WI<6-(M&Ys$#;!yU?0X=xC#KlG_n#S_!?d^ACFM_#tCe4Fl)79Z!$c z+`LP4W=ui?=~AD2PF-Y?S4hFEkK`Uah2pmkzrNDB_0_J4enqoxb@JA{`q*%{MW8(Q zrxfL24+ikkU8}&$KejZsG#3?z_dy4x|XLfUyyCE=>i?xHR!$I;qy(cAshe@%cPpsp}U z54Bwk7i6fL|H?Gvthhhz)THnQe$}rsstX%5%6q7nnh@YV73*wf-`cvfD>i>%EKB#S zd!QYWdj@OIOmrC>X2qJ&vQf7E+_}~1PO7uI7pnnFWS|b&?WCmy(U7{wPYOo;zFsdQ z(ZP+J*V~Etj?9$?&u@jx#B?+`QNK&Tew~{ZnddV**N4E+ZXN;GDgv+AF77vHFbZNh z>%bpuTHft;9)Ukl9;P3NJ<64i&9k8{=&zkQsGxGLDDJL`$b2=XJF8^pDl=k!pYCaF zxc8(s%tcS(=ZPp^!^o`p3_D%k9USpn((s-voVwG`wUEQ>uH(kn zUqsYmZ0KZL*0uG!>^!!ehaamW^N}4=BdP;jNvZ0 z=p==NaaqM~Q>i-rr*Mkn`#1X>9U*IWgm6C)V%qloqaeYrE`-|i-vv{`biTr6rbN+A zhbiQQ>e1eoaQ9WT@)!v&o`G!knUj&KVgG`RdgzJ1F^h~M-CD=1L&n^iVD@q)W=w|T zzgi1u-&U0;v~u|4^JE2yq<4`pbYwu9bmVM}?mXUCMDVECTEUgc`JBUA=`Y7-xDsg; z*0-FCRYl)+X)QtyOrYY~x&q6@;D8|cg+_5B*tMul&qvZq$sa{){UOeHgxD!xX`{43 zszZ2=BD1luqnk;HZ~k<=yV7!f=DKB~Cul0A|8EatNiiApYOv98)c)DmsfJhG@KU(_ z7#10`23GRau=gi2c_)rDi+JAk?V_s7fy%3ZbNfq&lQ;d!AOfMsU~Xs7REG9Bj0_&| zvmVTb{CJdzjYlFWBq}gc?%V44oZMan;d2gE>%J$0G;04kM#*yUgz;>m+}mfI^4vUc z!9DWgcT)yjXHw0^0;kM_C$ojTg^4ORGt{x=9eQm2a`F@%Tz(=Lb7k%x1b)Dq@900v ze*HPg$1v8u2yK9b@AS&Mfw^9{GQGOn1NBKaW=j%l*^4o4LFD>jX6ji>V)PkQ4Q4J7 zqG)FUj>S{lzVb(g=52RereTTYkx;S6&0W_Jx5YgaNR_js9jZTWQ7d3UKQd+R?$XD) zrLLwH2LT`+GT1-*^gT+1d}?p7J7~zM?ICgk{@kx-`9Cax(UY}4b!3te{&Qe^Vz7KC zic_Q%QyiM1o7N9ElHBcYD!Hxkp=AV`Yf%I=LNcG#t!hNIMtP(4)KJ7pHb50+Q4LhsnVni{r_T-b+VoJ-d z`J)OOb=C;xTAygjxK29@hi=KOn6=%*QZ4&ywz#Uye#%m-MgS{2^5Rn((t#R}B;eI& zrNxVy{#tN}te0_Hy}G}+@^5*Gl3x$qRh{qiz>bPdu$Akd$iywbp;2dHn#!+gJ4$0q zcb30Ghd$T4+owH1xQPbF7UIlo$2`GuoPGb=Njjy?H&8i>+fDdgwtpZ6f?33`qoC85 zR>ziK)dDC;HsG(NzpRXS{;7}uIQAy=_h+bUVs-GecpsIq20hY^`G_P!aH?W#soq&d zw}b^b0~haW+F(J7G)RwTt7Piu%G5zPSc;>CZ-T=nI$*GA*A%_sCV{q1HWsk%!zWIr z+`=)qroxVVC2FYgCxIJ=9>@N@kb=3SG2Y*|?HCWmr5y>7MTtHhq*P|-X8}eNCfpDI z*e{~4=H#zyZ>eIoIf|2($ppI{RN|lQW;fP(pbYyO%HQjwcHd@*lj5ahGNfHZv2|o! zwL1D%yXqT^u5MZ1mZ0IO9lLj;X(i6SdcnxUkxLqKZH`@B&L=d)uKtmBqn`p%iRC0Z z%Wxih|Jd5&)673Vks}qGHP<1bcw}JpF+3C5A14b8jf1d}nsw#8ef!b6nDE}q%4nuZ7rCLo*oSofp4pU&UeazP3H5Pk z#&#?a1yaw>wUQLiRiexld0a)ms9qnkw=cR1x1P>?k;?Xxy!l<@_L*c%9&4Fzk#dNf zgq4Joga@ovuI_I_h?h+)T32F1e#CWGCx&j6^fCN;qqvjB9qb*k)*5_l1OJ1$N&04` z@=`msLE1I|ZK&0_H{5@Drc1Bb{NCPzzdaOLvfbm~&!;4Im!5E0|CfN6<|tP|rQ%LG zNc_`dP30LLu)#@V?=Qy1&4H<%hoRFo)dN`p0y(hsqQpyCp}Rt+uY~6>!@c;D*eQI(AGqD~XyrxO6k?+E1 z@;B%YBd(EXl9!O|#KfbP(KS!m@n*I299OSew1f)%b@|Ep_Y+P(~DVoqW z@ao_ZxBIB;8u2)ekUvQry1@k}_#UEz_m)oFa-ZNSkT9pSia1PaVWjw9z3gZp!M*!) z65FUuoJ96^4wEurl=n!rV^W5mMt&+4_nynRtP|eZi`C4GP#%~U6tz>HA*-Q?f;y=? zcV`cwJ++CPKWw(=z4sf9V{1Zrb)%!+P& zJ2Mt5Y6)FDWPY&^QY~~jQXt%06mfaj&$80`)5D7|8?&$_Grd)EaMfv_p~Jw&Rhjk= z+7*~#rnGd+2f_#vR#JnT-AsY=g(Pha3fFgYy2sAC!mlVi1j~~0+g%h_qp03~{rls^ zepMRC^-&_ZkeW(KQS`kef5otlw}feHX&^)-_aQ{B-xgmL{86Vt9wufabGtFtrKv>T zd3gR%)>;5|^7EDblQaA4ZTj@P9yKhdnBe7kF<9qD zWFP&nqQl0Vmhy1dGDEi%kx;G^oe(Dy)qqdQb>rwjEx(ko8$}Y%(T3N{^NdG7PK%ST z8&6j0^q)gzqC{B9-{%+4n`x{k;08nXh7n9bi0}EsVGAo5T8m4!On+te2VwgQ0l86Q4Qa^bU1+8jEv}CCzswIpZ_|v8079Rp(R;0 zkWrooG*>3G!jJNvPx2I7n{^um?`jt(hB}g}Zd7n5iK5;}ki7YCA2Rqwh@BW?n5GZA zVYOM>6{Q)KKOPpb4}a3@-1!7$kx0wpc(@|%`l#_n+yN)jZ!@Fu!nnt}>p zS~p+5L5Le=+!&T9Tj$fk4#4aTByB9|3=Wag&UnZizfsq-7l9VTbN-0Ej6t!>oGtnC z?YcxZ@=y*#o5=M(ww=Aeistab23D80Hr?Xwi*f91ASDGv4Wy8r{!Qkn20h>sWk%&b-GE+lO!Q z$^Kad9Zd$ga8ch&W1hAU30OVBy7<^Qs#4e54B2-@SmWe?`FU@>uj^lSuP^#s=ltT? zq>PJ0HMSmD`1Ua98*_wrr}-k;wMrQ{ampNdFrsoH8dwZ;waYR-B%0mGdm4*T7dDYE9&0I-v?8^qat(&3}QF7W?+&xmNsfL^)$$N881(C71OM=M^m2mZH}W z`I(^vd`!j2Wsp7YKN*or&)@ngnBWWD{Pu&WHkIWM#~9XtnEUw#RbMmPmG~_+-kkzA zVGmVIWtReaqU$?iP=+_x^Ua7Ic55Xdm2dCHC$5ce4oiiWMSP~6FnH&fqCb~U;4Orl zqxkXcX>qN=82_|Hl57uMdKX$DK%dOxj9lT$cE@tV?Ds1((kD_vy-B72=g-O_OvD}> zcE=UN0}6l_wBydFnElpmVi&@6&di4CS&hvL^U{u`2gTMhu1pykKqboLfK&EWGki3m zGrq#piMrtOf@xGjmp&s`=Y&D1BY;C(aaXPV5Rip1wwC-tu{6v*9Zo7B{O@a(t;?|-7vc(ACVRNWSKH39VN(2`#m62JVW44esnAbq^3i|7~d^j zEYSG=IM1DUglCcpI|!q5YCR*1jwi|QBqqpTde8#&QSfEZmrjE?&F%=>mQEnuDfCIM z?J&WrN^s*pu;%zwi-G0gLEh#;*?u$B;TM(Qvpv;#ZpYTAo^{J`=Ue6R)*k+;cx_sE zVc4oce)qja@SsCLy6&><^0B{p8yZwFq@tIDRZ*||@GRiEPkSbMFtsZIHKB#^>=))= z_C|$`i3dP8DTXyAN&QZq6bO4YA_|o`io$z|Wx9N5SS9aW?ebUy9nVSSt;6s&;ako4 z{s*leL|!>)O1vClz4nE1i_*C8NiP|c*kK6`){H88IlwWtXuNOPCxWdMzR0-+CCi^; zcS8~-5w8GKUqrp;HA8eM6$$=E#MAC9e3Bk?hJb<0#E8W{PK8H1z8bNmE!jTnIT5-?#uOefV^-qCncHGsKN7(c*Njzyu zgZs8J7zxpf8^BFcmM_tzJN`uI$%Wo^iJL|$C>9uF?!|JK#!!y{V7*}W z&4#0Lt5(Y7u#D1A%lnnV%)jU7JRIb>|wu4|V zpfq40ZnzBsKUD4j7h^A`+t5Crd?0p=F=J~1cJ@H%ZZgW%apqtahMj5g1L2i(UeBTE z_b5LL6Yu9XnkZ4{%)7~Oyfut7xvq607%Qm5m(L<&5KjufPLjLeIh#ak>p!2I=NfAi zAK!YUNs?zu=CHJDT^>%BEc7x{yMuL33qf2xzsa5)AWNr*gSs95B}qJD!dQ5Oe%x&Q zRZxAe7J@V?JOOF!BRMV$bZj4{K+F&*^JblPsxm`+rTvTx`((Q#6EJ>`Ne;9qjo~;` zjMKPsK!|-P5+eUN7*uTR9jLiZ9|Z(`+|%Uf+`vo3S)%{5x{Lqpz*aNO?pOPY)s?|A zKa!d{USN?PO*D;G6qxcO6j5+gsx!`R}4N}g)B)p zzwCkJ^*zCfgBVBFWcaw52=3rpc08=y$xm}uOEU9v9je9oCnWlPO2epDnYw8suQIGA z|L$n?-Nn_8?%y&xg<5HuJ5+?-c|YH%_O6nYm!TpwpfK`1IJVO*;Q^!-D@q}$JWdlu z6|Qoxz&Qr1VBF?X_jP!JBfisZZ-36V=;>>A;Ujx!N#OlY$)bI!F|ArjENUT&j>R1I zr+COjuTeUlI^TH0pao72FumTKni zB<)_94Z1r?3bZ#;)X?Gy0~_9mim~|}HG_@0hIA3dqr;(U*EEjNvjL!T$Ozn(%4tca zV;01Lw2IRRv*wCA2ddZ?dQu@j!DW+$gVjP$G#ggue4@5m6!U|=EK~gD9M5;h`uSYwqu<=2qVoKQl^;l+bZE&TL) zLd84UuCemuBu^p4^4z-F^?hV;1!8_xg!_xy4*?_8JPgPU(wB-FSlP7_HJNW}lWfDn z-9Q^<0(Fd&hDv>;9sRNyZlEoiSup~V;KlQhPpRRQS40D;gBgISH+SgaGXO4n%rQjP zb+n>j%2_g8|KZMMr=lf0D;7AfyEIOmkqb}h(8aot4_aOAQ>k`J%_v8^eLZpN@T$?A3F3^C*wVGoM-kjT;yD zo89sh1d}dsjl^{%(h;?mN>?gxMLCYXm1O`y{QXxv4@blp6ZrIH6Hz&8{i0++c2OJI zdeD25D={5GeOMmT)okORJhbhfA8@TP2>qlDL6zoc$35e_itm8pJa0R(nGDn;aUgNI z9N8O@TCtEMI8=~2vGIGF%Rn=cmi>YGj?BF>MM`aM;EfVbsjd0(eD5}0Uels0bq7ne z$E_71lq;uq6Oc(GIfU(Fuoh5dLt%X}tUuyJsORSgChA)0ko#e4HstLe>f`0Fx(mpi z_Rnp$WW5wUZ5ojH)&6M5)VML!X;D(zDrhyD6g-=`Qx`cgU1kWfQSMm04TQ`5)bstc ze7XKz{I&-A;_E)y``UBR$kTfD4@)*rOtANj;#uY}Js|1V8w>)nnxmfH8qr;4A3qUT z;$2zKL>wooHN3uwhg)9k!ofH}r(i1F9La8aRcn*I^HlSQH{PSpQ$Oa7$b+u>iZLDH zzGs3`VNlR>p*T*x1~#wk=OlC}Ab6%n7SJN~EoJ*8!9dZ2pBC#w2_V;RQBteA%N^3@ zU0`GmFj)zOh;QEhC!_N{E#*MYPJ-1CdzcuVpmBXigr2xop!X!#EUa8NF~ck8QC4qZ zzDC40Xg99djzk6`>PWqKm62-JZAR&R+`%Q$L-(K(stSDnN?UyU*6E<`hv$=_)6PhC z24$I0sl2RL8WGPVcKj&{J|sHx_c#(9$NwaT`3EqF2@VQ)hFBSZCnlE)MCpuJ^>#c4 z)GMLitHV+dy`nfVkwX;pBp#2IV@EaKC))bstK_#6Z0b-Z;V{TY()FUS3QyHY&wZ&Yy z;w2?%Jsv%wyH&~YX)Dg|D?!R_2`qUN2yq@l3ndS4ca8iQhv%BZ<9cKi??+cX;8Mn7zo!yG4p=G+A{a2bdc}LH|J5YM^?cD5+|F?9U zO7X3Tw)`YJ>YC|};g_*@gVpMXq-NQG2S5kMC05X_b~suru{Mk{q1NU_(oeiR+aU*r zL?6pmo++J>M4Z7qjfi(#573T{D$p@f^e|)Dz)EPei4II2mtUB~i1&~B7gExc`{7KF zOJ0sThFoJK-@1L|&85S`%6M@rM_Y@dQ!dM&i?Sfsh0%t8-uRmsJ#l*BkMaUGW$1UZ zJ!uE0hxrTIgNdEFumhY$pbS!1wW);=QO}S8KOEjYS)Q&|m3orSUk;-r9X2(ohC+e& z4ic;7m~F#Zj&q4o?ue4)v8*fYmZwR!xKcv{?en1DvxhN6AQ>O3o74WRCBNkv0 z5^bLPX>jQ!$Fu~Wl)vwlqROAZHuJI#1OPxZ+$sm@O=l1k8bVoJYGms5QKR?`HwD4!17`~FX_ zO9k+#`cffgF~GUz&T3=MDU`uBY+@ho7`N@NIoT*3JgBw0mvNT?xz5XxBs$C~%%}aO z=t1zhObE%9&gf{o9k_a50)AuFaP~=lm2G7vnN~eN3&)AW)ns_`L&M~K`@U!Ngax^RXyI+bcY~UNHian} zZxK^FX&e4=ZJ$HDP#{pIR4QOEWy_=h+0hx5H)Zc?`T|@6e0Y6Z-2}kmNy#TRrNn!ymu^7Q@32kebqky-3@B z&Sy=tzVb{=2tAITg-&H9Ujvtf!R&nz3Sj~sAu$5};)6!jg`I&MbyoB^Zvh@d-H2(} zSjR96UoCtfT)MFs6`brdogysyFnAVL2Ud6K$3-cx#Qcjg!LY@QlDfmeaXA70vfXN61Uv^}P&@ z1xc$9@RW|Dk|EL)+yXv5$4ZMC!$>F$Gc2eL>+HD3 zmE}t$#J86tkYlI_p0+(ZDhPa@Qtp}73-?hD{`lor%aO@q+8bX3<2mg^H&#=jK^H|4 zvxB`74S;)7djE5lP|U5RUMj5Ftt8qnPeZO@|a@(eXREnntph z&+!Z2z0x(uMY@5FY223Vp5Vts$yH*Q2F6b=*|XuhHvBbNn3~jVPy{D$3T*)^ zcZINO2A7n*0c*NPIPNgZKCFvqVVX25{3MJnR7&SqsZ!rm=z{R_DIupv@;^Hn;8?Xu zQnNGq^9O49Lr8u|lVHd)yR@z^h_EFn$;vVFxT@|AK}!vlK+_7d+I-1QtW{<(Qna&| z;}mRE-2l6Jmr}5*vBbgaGl;9{Rml$jp3MF5YFizqs|nL3XLem%lx@A00-TGl*lf%p zW2T7X-g#yYwe2ag&nHyyd^2UITW2_;e>v5rCjrBQ3=7+pXL@`gUVHBh`1s;GPAF?a z0_cb@@v$Sn#sm)6j%bB#>E5F!r2GJ0m->Vb0|-$)vFm0!0f`V+st8Ty?RUA)A^5V1 zIAp>gwyOr5#0mJol1xMXE6a^txQ0M_``HM8O=pTD!3IXem8wXNMpuU-vstYo+MKP} z>T0&GX7iB)QLy5OUO_oimOuz|n%{~M`dtY+pU2>WL&a?9IV(_wn`smbnRc)uPBapu zrRy>B{T@teWo|IMS-68mg*NcxU^oI?Ir_~6t-xysIdJyONeE*UBh1MJhf7F)_7wO> z!qLEh@TX;2px@dP_|p;76AiO^Gw!a1i&xSN_BBi%;BK--eZg$&9AcMImqW7 z=07Wcn$t8MxOr~{TV&|A^x;kDM2`Pp1@Xpnuw73)lw8?Q8Id&ilAzJkXQu$L4Ys0` zYqaOq5C?1~DTIkK4Q;%z#7M49h<#i+Pku?d1Mu5hBYnBAh~@OVK^&=I;dGDnM!l3c z3kX)@I}%yLYQxw%FnZgo?S#RiXQjbj`b^VZ?DaVXS4$T`BOH3BD(9xhDEd!@3@-d0 z*E#Ux3fmL7@Y_(^2nSIH&f4~gvUEjdiC`cXJBJpc=--gc0e8Fs$Lm#aVOltNB;g;; zqH`WVY8Vt$X8>|8CTzrkDqPLR4kuF~Zmx%(xAq;ubUl$wcFj92vV1FgqV8v7^?m5G zME%##g`>zj*^OmLqt$T)Xa2$Ix214$9uF);g?{l%Xlfq~~C{(q?WP7u(){_hX@!tW`qd}R~(0yC5^nHhV^jTI89%-sK7 zs_E%+L|LJ*pgf(72_?cSUIfy*`BbLf0@(Cf5ro;(8A@08Ic&Xu0c-`}JH!@oLGVB* z-1+l%qQC$Bo=*XKz_GYH_r_}|7_kb$#m^-l~#kLC0+AmqvEZhPDM(JViWme zWA9SPj2rXO!1_y%W@*ZdkN*M18>HtX$LejzFnIDXQRX(}Qib*CWeXn#8XH)ymtVj0 z!H|q!xl|#SU-NrCHnzSr_Mz#=lk3^%6{YD|ef}Y6h*?M|cI<~UlHF&^KAKsEE_*#c zhfCM&O?ShzOqJ^Tbbz4|^YGP6I@_ywYegkR76=ibsqUM;sAIbGQy<+FV;7RsrG2K& zKO2|&WZC4nRpPN}<+~rEv(Oy!`(D zaQN1z5;p2ml$;RsBVutm$Y&7FEoNl_T3nb}1KE2gG%`H@uZZgn2WaS5yxb8LQLH{&|mGAkif*@ z>j7{!FO?ZUQ$~nA@qm!-9@~F?eX0aTx04$M#zp!A4XWJ8*Iu&zgVMZ*D2{f5q|1`) z?Sk~Pq|t`6Dy`%5Ea*k;gF9&SfdM4(LOShJ0X97M+5Wf$`(n^GBp-DwcOzM~7=*qu zs!#ca`>*htCjkTHV1y~={ft-pv<#Uisx$z)D|B{hf#mR$|t}4-|!em z0cd4>q$y5O0$dl$_X_~W%R|u|qD!+khl|?oa5TUj^p}+vQYUx*dPrialy5MQJu*2a z95TYYtN%0yjj9JvCx0wz+PNEmE#AUR}Y#Q@?_d$F|`4HwMJ&K)7$Sc0Y6^ znA3>%+3oY*eFo#5j5eZW;itOkgkIY%X~SUX2M=3mFBA-6tjV>ElkbSHCnnPxR70}< zp|x_;zdSn6^1PtiC3_lnH$SEea-9grjo zuUcF$%f4~niKK-68L=klH_KWW%!kt8D*YN$_~ipX`rDsSq~F#uo!@@R$u-_`)zf_P z7maQ?`Tdmv^?J%oPR!uhGMUXmvBf&JP4!9j=gqfHfCjeH%00wiuUii`ZBl6QdG_~b zD__U0HkGpf+$@ZR&h7&<7O8(EsU*+YsM9sVDKzyfOzOM8Q9W3+N}-bv*}x5FGl<$0 zGa7^cImCQZ!eVW zvB!2p^V(9z^jr7u5FING!FX;uH_or)IT8r@mr(rAn zA=s$QmN>96e|`Jd#PZW;FmS(}(v$meK9zqxT?IPXNLjY$VinkK-4Qru3$wnu6--MG zt5Vuv`-(On2G4gh8&8^p*mM7&yX#-3DFPQ#|YI?Frt z!^^W-(YZ%>z^UBN2BTxN0VxN4?$b)oqBJZxc~FGqH3s*&_y&BJiq*;d3S?G zw{K#zoGJSqedEq}P=pp1>Go!;33(%<>&ika=4Ds0TALC`9F$4S22!S7+uf>bnGCR1x0*rqtgqcK* zWRm3Rus52nM5@t&_9u54G1D`-?r|A~;w?KX?3p8p3K}Lw(pNziFGhx+g`({BaIdT(S9^6}_us zUG8Q35XqE1(==7ekw_+!d;Rv764Oalt7%S~0-ZKo+ffs)lax*?Y~GJvO4ASS5X{as(XX(5%uh z{pSz{G(~;TsiUcNL!c(1zUpD-g#LW%N&k_Ui(QWJK^1r2j5|@LG)|9%&xF1G zdwj^VW`cY9tPFQ?;U@#M*js2Fob`+_Lu7rTNYbJ{y)w~C|QOaU$4=&&wB^R;KjnB>l_=TX1SSCj)~Bz!po!5zS^k6 z0ZqlaPoet)2tVCrhg~>Z+8-(id*U>IAHiune- z%3s4KO30|~W95TiI3bwFQa-wBD#?1B^CeJry;e;k7gK}~K})+jO#0FOU&jJTrgTQ( z!Aw{0&Ca8jD{jE?y@|#(9}ihy*9ET)xU2a??DoG2D+P;SPO6)lfxDKr-vGW_;mt3z^fN&myZ)H`QQf;*F@>n4glTDD;QaT6N>tPH z@}hW6{Qj0xbQ5f%%K(@eIk7qsnUyo{Y;%vwyX8GMC>xq^t5otTZ>`N16!l0x30`u< zMt}ic)Ho)y{Td8@jZ+4~EXM};gVCvV)tEN`j4@*t`eR?@W9G&@kV4Wz4o14gKeXE( zyCeCq9sOJxLdjbDQmuO6LFv@Pv8Y#Mc%<^j!myxP#c6Xom!3kk#LI$6wqvyKX&)Jc zWLS}I45y@X5)gLa#}-eYs5ulFl`k+998_z&epe27KbQZsLw6yC8 zw?#iM$A(1|Q2lix?xpd%D#F)Ca;3&3O|~ez&+H)~W5ln7?u_bL=cP3-)(T8Tr$6l^mz07tgaiGN1Byv2mu9vm-l8n61KLNa)-J*!)8n8mgJfCr;a$3xK z@ZA5*M>#7|k%4+dC%7wJ2hyYWBpM_j>9N3r!%i?(l$eeoGp(s*7HWs2eT90%Uo*-F+;dNHO=WC2LGQ-RV8E&5m@=w>wF1`KCWqEutt=g?0|XRVT%Qq zf^oi~rzA?Arbc&`?+TO*iQEBdVOSoX-_CiwP>tqZgHOtkBSy6I8o z%WE_n3F(XB^snCNTUZ_?>AXp3Syxwd-Qf7yr7veVdsNz(yLTVaN>CksYkVrSWK(^S z29DZ?9-Q_ASx&OcxhIYux16XZQ^2G1!SX*1Rquqz?;99Dz2frwQVko1Z%m^G?^vD@ z=rU7Uo&6l3A)&y;lg4*lyGER2)2tcJwhkDXo+N^hAMc>~osB$GSldp--IKbfo+loKN z$7z!qe|#f0DqUQa87yIFzS}RW9y0i-Px>71m|bXh?!4q%?2|nCAMXO8-&eMJnkPS{ZnKdOC?C`E!6hM^KWF9S zO^z=$H5`ktS7TWeA9Ejnz;<<9%@R^Ns)Dx|1P>g`Ujp`ztGo;3_?2VV8qz?7wR?`8 z(9Hm4!xFU-!x;HJgQRq!+OBR zy(jpXYnOKQ4QyR!#K_uwQ z$?T$b#p39l?h;>ISL3%W{T{r<)R>9JiXZVhD^3knCP7#7`!NAE$n<=WU2<^{e)>VP zWVfo~s@1c<2}9cDo7~NGc*}uS)MKRphe<`?lq=^_+3VR#3HFQ7zQttxWjddn?JH1j z3t2yZG~4nMy#xMo2dWe9{Cl5Kc)=d73Wd(T)i)YzyuO4JSe36w8p{(QX6^-Q+tpNQ zEgdAB_qkmnF1qoy1d;)i;i$r85!-m5sOJ=+Yiecw6~Lw-2YYYg{n zlROIe>^5m#Yo~6eeH@^~^-WeSgv%n3G&4%!q)h&&{o~P|u9qp_l7G_(2Omj?Y4yN9ekQj=#}oCeGZq=}dd*79S8U!06?|HI;QsoZ zL-#<_cC=tP0;S9qi`=d#^ydBQGpwk=v-W(r%gLjw<15zLL0K@qd_d??|Ki~_jb?dbt z8TyrDob##q;LYkB#;w-hslw9co3bnYDjyZka>aTvcDMgU$S; zJ>R~1N{@z-VFve=9@)vJV}jnDQFhH)MhWlnx{ZanRVyOMbnnJ2TBDB!8*7J$Kc-T8 zT(T$Jgkb%%xy>Tfg<%YO{1A2|k`xrDzm{=T{y~3U$!XAtYo|*UjB3%(M(XKiKKk~q1zZ?Uw4&B^ts?rFT)Iim)AZbaic{zj0k7+ushFy0Z;52pFhItyaAHX?FTl7i;8z?wU7F}e z0wcv=ig-S07xpnY45=*mKOx@>uokAypz0uUb*s6nV)x1D1aKL|e-|A`xGCbWA1BJW zjNm*3vDC^RLGNl^yKB?6FK@LshQ4l%hNC}tLr>O-t0?D%9j2YYl4@oWM`ivm@CtfI zJ8buYcj|vl{tiF0F3*E&h$wPS-1=Du)oK8$_JjMb{xwqI@YQV4jO)g&cH6Zrg{Mkd zEj5&&pV(TrtIURi=$eZpK$=Vja`S|omSC6wcQH@^iM2jHe7Cx9iM)X;F+DzB(f4a_-;|$&3aF?2al5Z+uM6 zJn6qY?Igr3=w5X#!T5-nF^DnI9U8);8;XX`ZsTMAeo$4KI!?YBVy3NGC{!{vn!|<& zac{ksEL@d9%>#&cr zU`gX$rdC{P8eQ31ncvqe)Zm=jOA5O=4F(OqVSVpKv8oUKqA^Yi3({C4?@^ohk$vl^ z*N`gLk-hvMZb}NOie@daNA4f!W2n)neg8}236eY?~S>sm_*%S5&-XC zBF#!?`sjm@oze_RfREpqX6?aHJBXR{33FanA)-faqNDOxTkXquMt^k^`(JSN(GFet zoo{4h1eO;Yv?zPQCJnbqcUK{HVRllhYY9T0=>q1)p6>Y14B{ebT-T8WcyNmI3MCnt zFr782&tkYVQS4KKB5>`PUQj=*wQ)(pqX4P>H>oaTyee(&v z558XoYgW1}+iS_>s&nA0Rs))KJB`I4a8do&Y?fMo$&;}X;3QYE9pHqIpu4`68-NauRPa^ zOTi~YS?Pg0->Nrsb>8e1eadll&B(iaGTQLy^Z)0+di#;LJ$>wCne|n2*D@lr)StDc zj3N8-`W=P;sa{uj$qRs+cE7;e-4R(Vp%6fTYEZANq?K-Xd#Tcw5B z=eSZ)sRRwSsb>#hv)^M3PxH?wV69}@7wTZ}4?SegkuVk)k>>q8X=}ix^-YTTT-{|& ze^+1cY5dB%UP6fa+bd_E6{TeC|MmxX2hu_Pn3mi{NwLZ2741(Cyt>~fWuWK9#J^(* zyz$^kgg^D>w`kMhnRh1b4H9~ueWd}RyZY7&b7yhc4Ws&Cs@Qg)yXp?*_;9>se^Z!D zheFTJ*EP%~ckt-$F-EadSVA4v-Zz8X2UsjvpXNXQa@X>&HZ81hS!r6VdmB9uoIuDI zBPvq}up(3W7~d6crv6v;W%((vT|ie~zKEJ`vz2{_9CWy$gWbf>u_LcQE8J6(CSN3q z^iV*&=F-9)Xm~_7`N_yOuSFym_1){G|LSxv{!ow7#R|0LW=$dgaDoFg+_ngFL$tK* zmoMo0%g<g)NquuK3Dg|_FG+a23WAA3t=O=e%hOxXfKYXfacckup1EYC){dp^I=@J$EGb(9!?@ zDl0nTW>xx~=O^JCWdI*2&Mj>>^XzJG?+6|C`n+9~@YejtQF`qY`>&xsu|7{qMMWOsNJ3n9 z%+3&$-Zhb;6o(vwEMdc9f-Z*1XLCSyyE*!-%?};VEd@YN)wk$cu;&2dv;f`Fv3`oi zwMvkT-~7J0Qkp4WnCM%acMdbj{~h}u765G6o_XpLM4$5BBSBi}VG!ClTDIWxsyDgt z;|;12wu}N0L-<=X%5VhidK3b#I#?1F0iQF&Noe!5n(zi)bPzY;cvQ}di1+{_9~4)8 z{^SN7Fkfi}m0~krXTz_y(3N1(7z@2hjz5W4Z*?a_X4)Td-JB#V|Kd3zJFg*`jlA!! z5G<0J{#Fz9xcd3yf2DF400;doU|n8~ka~JYI(>V6=cPDzKGfH*0~0?j+ylLkVFqA4 zy^WcTEW_gmbJLxaUo*E5rWxhBBT@qYDH#2q;?bH44rjGpOCU+{me1<&<%d*U*?{0$ zMx^1#^y;bIY3S5{%idjKK9wJw-FQvAF$^rM$dtfu0f)tchk~C6xS97LLvg;ft%9M` zNk>OBsX+FqeSuyMUW>4#se3*T^`z@N(^XdcoT?{VAx*f?g{Ggrecl?DxJuL1tiJFd z2#v(diMD+9{geCO*DOOXeFBzT__LdLq+JI0CcWImWRI3k*400MY_9WY09iZqH!?^A ztm!j!tT6`^kTklyWyWhSH^VK|_r{~x@FU-kvj4%_d&g7xKYrs@Br+?6Lu8aq_HnEv zk&&{uka4o*$V?I95ZSBj>{&*3X7s;gYdR@=SRSe$w_Xo7E#nF-kc&81yH zdMqhb(~Ha6Hk@C~2>vsmJ#`_dh!DZ+EM8bI&@26b0*$UF$$?O-=+d}nTyL3GcWAVn zzUe_TU3OPhfqN;MUp^^1uhY%g#%gvl4wYD+T{`^w+-a1am%Po`w$Y|U5Q*?6Nubq$ zmojk!#wATJ`4#s}HpGtBR09@g+-bWgHtSp3>F=DL6~un^GO+lnx`Jy(6iSFp0#(1$ zJ;py>=t7e&Oaz-V-AfR<&A7-o+|&jklFRDPYP8G2#TwW06iUeLGFPKeoL;>nZuisU zQ?00O?ZilEiUEs5tbpmX_m;h>J=ClFL0J<1q8cJTj^*q?c^4F_m&3cDaOkTZc8xKFNcSUdBITd#EV#Rp zEH2)b6=6-rr6WJp{@A)oA$3Q8gX9D|{zyV}!OCFT#jYvc>^;N-Ujg7!3Fssq>U zfKm7$(tG+Tt6=}PJ1h(^4Z!jhC+NVI8WuSOZ2v@)$vZ#^4mtf$>Zdrc!bK-S^w!W~ z<*TilB4l0B;jRv`J0Mtn2ccSTs~2v~kNsEVCLzNhQ$W=oh|FS#?Yv&b^?}N6aAXQ3 z#MDffrl$a>cvXEOpX8jt=C$r7#a^TlAra~OClTJ<_7?Lz0EI6e2zD;IlakN2M{q`xBW`MA$8}C zO$;qI#tNm$N!J?(hthK+WKR!-2b?geA~)66ZBpEIO50m+E^9Ru8gG9O_kz-1ldnz# z6YmSM#1=}~x{A0O1D)aaWpG9sf)qmm`)B1EZf}&K7OCO0uAKxO>#r)ISb-dx}MZgzM@iV5q-#nw3pkgz(Tu zn13?w;QYmj$#&>Zpf+fAd}_<39*QZAh$4abZDct_;zDW5&WO2dfe5S@L`gC6CQ~te z0Wr7kJ7L7U`-PQdlYZR+##C%YI>xl)msq5y2ZcwT=DAieaLPG?&vHJ%G4k z0{XyP*Sf}R-DercMuTOK=axY{^Fx&3Jjmw#6~l~Sh)*cd4-x6lGi4iLS+snO9pJ>Z zy|Z!2=Bs0N0!Q1k3qdGGcnXg5@3-xC4}3VynXXeHeZk1ZZ^O@vZaTEpcy8eA1Y(jk zVlXAPW^8R*o`#R3)4ii4`r}{!La;AXlUsHte+OAN6{;kgtUaJgqu)g z@tgQ)$K*P2)V8b!zv5fig!;>H8kKkg<%Y4xWs3$pZI64abh8%eaLx|s_b%;R=~b>M zHmVSy4CR$2P-pIiA&E&|#5aIMN96Qg)u(r3F4eKbZfW~m0uCM$N{4-LT^bL<;s@SSfTX*l3$lA0NJW(KK`GkDVO)PM zwPx^L(XCga>T_VYYA*{6VxCl(`H(Vv1US*-hbi0|@W{&|2W_2P0xh1@9n7zG<{MTE zT{B#Vj>?;|nYr(dIeU`B3xeYKjSaf=41Kml2FhObK9+mEm+(d$Xjk(1*7V}I$!5%| z-BZ|ST>9tamZ8S?`RkFR2s8^ky|a}8oAAW>dcS3J_};jQHOIG`QCq*CgkhZTm>kd3 z(QzpnZYPk_d-@pn9g67B$D2jB3zfp)uxn|*bm)0$C0{J%lAu*yS2>@=1oyemYLUBZ zqP$8})j$QK{>~DW+&w2m?cT86 zOqTQ8Ru;YBMB`(W#RpRq3JIi?mY4_@4sqT7{hB?38;w^$xqrDBS}ebsN0Mm(EDAompjnIjbR%pN`w>R(1g40^>_1$u*SGn>7f|kv2wM%87-L@&=LqkXKRkq?~dsBT*&7}+< z&rOQ$ip-lN_w4uPO zNc=n*s;tUBC&kIgb^`Y=ywbxS5Zujb23%6lJGXU%Ny2TMgs4oI&UcX z4(p~8zKs3B>H1~ExHv{N#q)Y&lVq=;phS6((c}Pe-$|ad)uCdn0Eb;Ix5n`Re;~Y; zWLad+dG+nPdiRH14=6Y>m+z3cVn8MQOwEXUKjPBLH>r-Ct+DD}_w2*F6@`4179UzP zeCbX%HB0PU)+eiM`!K(pf~8|@R!dKrbSfOUPhJsvCzsB86V>t*6cm!|4d}MlTyAS+ z85}^^CSRg>IO@IALcLf@i{`Ef)b5mg``yHYvoWHbY^Ozc6dw_=VJ|u1Pf1Bq>R~Xv z63JmB>;#++BCzE=4HQ$+*SvuF#S%k;pG3(#6QRjld|tDcqtPz6B5YV9nmnM;_Qmnr^M2ki znAL{@XIn$&Z}u4#KU`^>HY>Q1qI$$@MH1*D?--h;58jLI5{{PycLq(5C)lE|OY>}Y z-5yWq;(5Vyc3YA;Tu+_3U8tY>7TWj~)P!I~5~^61Nm@ax9NJFteIV8+?_%%=i5+GA zL7|B9u1vJZE0HF4ZYDhD$y~p&+UZJMe=uTrdqf2mw$sAtSTGAes9vAAlM=DVC%fhe zJuBB82zYHE^GU95U0^GM(X+Cp-6FggfFE@xG|Nh}6x!Izf|ca!C2ErU8cMF8`g|98 z4u-!?|3bH!J1HQ3HbAtigbCTH7_mn`F>z(%RVpTV3cYk&vdgkNuF;N#nNy!&h1}EE zp+sFP&1NVTiNH+U8BI^dEzbEaSf|mqLQ!2bj?QR+e46dx+p)jq=P^ z6=?FajX=3nmsh24ZN6lA8wUPh=zg2X(#@%X2u7foS{B$~WCNyp%&tWNjrw?te3US3 z)F>)Dqb`kD;2yY}hU#PLR#|tg@g3i9-;EF_^@KO~5=KiPmz*h9oX?N8Z-kZe^VlE!3Op$Cm+t2A(mz(n?VKbU; zBiCWj7aYF#rgbDX;Z6R)i9>V#fP%j3Zj||3Z?KX#Al~wPTcetmLZJS1_o=u#fmNw+ zt4gE3lmD~rYiViGA-3JY&946MDEr{^rN+w%lvawio)*5xEp6_x9bJr9#s7ZA6x1MiEQsaoi0*Wkfc?W=cgCoqUQ11sIVi^Y|07A zC)yM8l`PE1S97ENgSm!8p}Dz`$=| zoyW2|yHX>OlGD6hcz6WH5-`6*$kj@kd}oD07Ofhir7K-f&w|ZWewRXvj8ZP~wwhD& z!FB9(1O%k~y7DA{bY(mBS#hNUb!*V5069m^2=ruR4?Kc4*`Cz1+iFp)1t=R>7}Q@R_a@ z)9y*MG*wd|`0s!okH&Xpc`eSg#a+!Jrbn8%%6j2No4-?|ejy2gqZbKDF5K!|NZ`Zm z?-!kv@*IX&-ib|b6*W|>E_Qn$LH9-94VM>IqkCXR&vu+vJ9L=C99kwJNE#1x@V6dY zS)&TR$4lUT#bZ7o@^5iQc-{@Kp(*HoY}bQbasCE+LR#h{ZB>oA^X0ci^n5eh3Ny+y zyKiae=c4Lt8^t7xF}SH8!jV8TP>@NAJjC!)N+OI}7dT+br4vP43%ASOX7_F1!D}kN zTCjXEmUM}a)O6qt*0H=8f$HkABuhm!UAIS|zBlGA4lwX|F6Zv`& zZ*Vl}vLc^hsx8QFu8Rj?96+R-pX@MuuT9PFaH0tVy#a-5*mh0QqPd-QSaAyEk zwZw4Du(=PM8W>CL*LJ50MFzO(a-|$hMsP>iOh}@<>v2}g^_~z19c?&)+1m$cWKVv) zd9Gz?{4NB(frdK@Y?m^m{wlNhO1yW_i)X68SbA^j+o z95>sdWW?j4ol7#)Jj)X_9ES8OVnOqLXOJ7C+Mt=dS1MCP;&RGs2!b`JmWeINCd< zzZ2m0f;EfjnQkdM=N`;+eRtZE(|1}%QXxWLX)ByG5>KU`Y}&-_GQ;m>B1(<0_Nnf= z^|yG>-kbw+1HmibgDqo{W~df06HmOSZ4o@o9%Kh{6wy3^$}tP9bb&JY52~ax_^N*E zpZm})FNp1*qhhyVl~D5SxE37qj$?9iN0QI#D~r1@@`SC@dnw)fbr7ZWT!COZV|>S~ z$TdAj?E8v$lov}s?B}CaKLkfF?BnzHd3+k_gL-N7wmB41<#)AGpOCGDkp|c-ywvmH z9g@I`b!Znaw|isaSy37OA^nb=jW)Xel(ah%{_U#1hJkfbuhYCab$iWA2qH`+ucwvs zN+hI;`?r5&Za*I!ZEuBA`ygQrFV8_cHKN7w4j!l5N)RMQrM311M} zH#%oE3_0?W-7`G+CfX}ZTkqaNYS!Fdy(l%1=KS(|A)C|pC|9})QZA8cS+kZC{41km zSGOJn+0MgH&FC(Wq%u=_&^vXY6iM1$KvcT2!_C?4!B59UZ4d9Lwu+7D5BR3Utqrhk z%hJvkU+q-3=TT)jPf*mThb%3WoRrgj9I2;m_NXW4F-|CVw=R~?V8&^6(1z9ea)(^E zTpd`8-Y;*zKz;=KnUP#2Rk>61Sn{OjX6R*llG^hH>f>K$iDdFU*YB_19D~DZxA|qk zldw&`I59R$NB}%74eRB%V;5?VX9H3uY}W_1)5>ZcB5ht{w%2d*JV49_`f#!lnC@Gi z>m_=%ORreSviqi-N2#IdM#juRe890mT4&5ej zsN$lr$2lh>>kGfHtrIJy9yK0nJ04!Bt8)3wHIU`#LaFIDkyY=pA=QPxWN7gLu{5NC zGiTZKPPw%{>WsDbRU6uOrWqgUfBLP@bBM{azv*1i$^PWC-dV8NfwT>`S*0#KU6A(d zwH8cI2HJ)(6UHrI77&v`0idzSf$>prQ#@K`j=SV)%uF`ufhyvGEp2$lsV@Q-JTt%= zwdy0Dt=;x5Y+1NoRXz^0VRPIN*(~yQn(y{6i1C>=j#HGHSPT8HW$gdAAIz26n9ph1 z<@^y*C`ylZrmz!D&Br__a3&$l4d}dv3C}O5!WNcqRq$2aN4SKQo>X*-g(>||KS*Yr zJu`3;jPNrf;3)S70qcx-5s>blzzpiGv0-;6OOg?QS|JU>}`e~w^P2XY8 ziApfXyx@i7FKKW0f&uM&VlH!6RXxIefkBN)vqOac9oy-eTk0K*I z@HOv`eyu+wumu}-DYcImdB(E);)qdUfi0fLhV~u|5@Ah-#7qyD-f2;oM0EKY=ftPp zKgsYmZXY&%B^Mt4S!MFDB@tXukb;wv9vRWMznuMW5#QGHw0ZX7L64{*d3Q-Ttwcnn^yQLP{r|=>=_LWd_ZKD zjeoPt{j0VghDn*R$~a!>RG}ID%XE0l=q?uhnX&J%*!1jjd*;bCKoI%qQ4T(k=^#`9 zo$gGF^ba>85A!LCN4~eZ0fN*brhs_r;H`93Ys|_@ z)6GVw!D8k>Zd!SeCtp#PcQ&JAli!xF&gC0@{_&Z<-brx24*J^OQf3BpOa^A9Rv)<2 z9OyO?adFFE>!GZ^YYC?y+O}jh?ylMyRyk?ytH(ob@Bmpz*%?6G%O7{r2&fLipq0IH zN$_L4KUxx~0&KTO+!0uFk}*A}OWkpC@?Li(9veco+#l4lX?Z&gzY41+K0@Y-t4yyx zzt-D-tL=(}1Rco!d*k}-jZX>AuxLM8wPR5BjpT1Q#<*Rw4mZ01^cr{(0b~?cm?bE9 z6$bTJKRNz$a!T6nf4dlwA(wo)DfBW=XolcaQNS(0w=DYHkSH->Xas@jOIzc`G05c)9-Z^_s!YI|#zcZAJfW^93#D z1mM*1zRZttSNpfox9ugkLoEpqJ>WY*=HcrEWcc9BU1@&QCH40uO9gOJgz(d>|K&ZV z33%lXHY1z6X~q2aB_VLD0lrkD{9m6F(x@N@Hhbmtt}Np3OYu}4l>FhO2Vb97ZJF-! z?}^zQ0SmI3+xY{fJ8P@FR-K|?4~Jhr_EM*6)SBG~{-0-|y(&%mcfqcaU%+P~lqE?s z^=9tN(g1pz&jNP&5+uh5=%~{(&$9%wUd72!R*a=lIuyn5e^z+>?}Q*L(Fn`XfSv1# ze$d^+G8$Oc`bY8+>nF6;NXX&YvLM(Y0<*H5I{tH^tEtEDqzb}*CD4oey`PbdGxfy{ z`$cE+{k^SYE)#Qm(DDN%Qjnie59`t_1(kC@TevsV@GLc(ELOKLo2KCrh4l}ORgs`g z+5DgRUtP|4P3!B9#SPlYirokQy*PfnHq|O|0i<4yS9DIx*JZzWxSK*X$EaKtt9qhB zWM|aM3rK5AQ@z#yMdlGrEAB3XB9&wMJev^PtoI>JSW83;{$+%KvJy{3f&$!v(} zys|87YrUM*UUYoKG2p+nQYGYNZq(&kCZ|x(A4m4|LxA7!z}?vbC-&#spG2n_XTXLy zFHvJ{U%s@pYG`n%ZW2;mlQX+7E`~Ga z2~5D;5|93-hROrE4r=s0F>zpoWfjzBNx0!ybckNM{#U;f*IV==LT;=Pe@3%A6O!xL zxP*PF7oV4*U6?=TSo%Y@O62btTcIOO;M^GI+!R2EYrTj>Ih)-sy3Yx;Lr+>bcalyE zYAIc{0Dc;VKTD@1%4z;*#N*eg81LH+U!6$bNR{Gjc6`4hT|DE5-g z=xBZ99A`u)i-i=6`5upIen#`3DpdRB+64WTLY&iOrzRri(v{Fu?BU|mU;y=EsBCu8 zA~i?>N}A`>;+EO=uJcsn^pv((sqN@r(^kc0;z_SYj{A`pB5m`8GwpMl;qI1F*xH#( zYt4CKl(8Xxdkr|Zv#-w)3mFg*JzxocLgw7;@$4D~kLxGD#I+l=Bss&TC;HE!v+-oV zFP&sqNE88$G_se<)eofb)c2}nm%9~%X7TQV8&WG1uxb{Z>~FnnyD3eCty>&l$% z{as>E7?h5S3P|B=^{TL9UZWMy0P&;(>2%{h4r3>P2`wq#Xz6AT5ZjJH@;~j7!liHY z$|t2h%Lz7O4Y(f1M8KUDLanHUy|=g=LM5p~uxFqdRR0ut0FrW~Ui~TMgz)euPl298 z91>4lni2j`4_}?AID0|H{{$jsmt#NGS-Ar8sq|90*x^9Yj`M2Z5!4g942t@&50Cm} z_NSJC*UT2^FQ&4M&{bagD|aUsojy(;X!Us}O(_iIq%s`-CGI)No)NEyv?RfNW5T=} z6Dbc#n4IKxfyd3U&HmF|5Th6+szWi+M)qjDM_qdBmgqol@L}LDpdJ}nzFh37v>Wc| zoly-8lZH-N^5souDZjjJc7YSGCg$3Cu4E^LU8o3FZ4rcc_YAuyc5k#39YLmK93V?) zrhq|m%zUhfOZ5ItSH!hkXW^|wm z>+sZo#!%XRMbU-p!=tBOvx0n&a@3#gyo-h;3nS5YBt8Goguo-$o%$ip#LIRUXhtg4 zK0u$H1d-Q0LhVdLf+(7G%)|pK*;_m!u}~$JAl?kmf?A z_qQ-%tzJx~v5V-8u$`}NO<1w9Ex77I0Z81G+Ht%M(>l6r>Dl<&d_LFztiOO>iB7AK zh1P$R8}bJ8*(-Fqlx;QynLxU5G~7P=mP0jh3pDe5DH9FM@8G0NHljI8kXzVj649rUnHffgM&n{1 z>z5Qx^mUR_;aHVtUx7XXSes|ExdghXSCm&7WgSM{^^LVJ8 z{9~HMrbYcbb@|s@Kf7R<)E4`)5Mt!9`OF7xzg*LfZh2@#c@e1wvH`MYz3B4L>$P zE^5!8RA&QbNWmojhuw#$KaRAT=_USWwnZM5`IpBHOtL+)wnNgqF`YdjT&dst#bD1h zSB`*kpa)XtJjxj_#;SA&nm}b4-sk9(K?`UPw&>ZHW!U~_6|Y355i(Icn>@?z4?{t+&=)g9yEw(7QM1 zp8;yy@*}erV)Wf-q-Zbx!~$BjezqN3GZ6lCcoX+iA)Oo;mpA6CiO`ki0wjQmF|N8?9+{nQR-i2T)%QBy#E z>OT#*SWiH(PQqvLDY>f(&<}Ynufl4Xiotslq3<}f$+{mv>7D*ZMxyx>Dr`uOf=K-) z{^-lXJ2@AHgf1EbcZK3}=g0NOO9FA_SJf~OW7~DRoq=L;xHNUJBUo7iRBv2O&LyOT zmq?KRp{hZ~eG#ga9X8;-s>qUflPC7*qwbfF6(Nd&$#m7Dl|_$w-@+Fd`knyN^Vb87 z$(OK*CXhJ2OpJq)7bHQgStxsuqH`;?a!eT**D7qs9-TmXlq@9EVJ7AFl@3URBCO(y zyx28)=U`h+u_Qtv6c}5MtB2{p(;^$t1N@oH$zjgt6r?Z~iTI#4TIA9GNX!$ZA5nVM)JInCe56Fj}n1Cwb*bq{iuPqTVor}LSxn%Ox;6O$)Zg-#^;XcBt zP7u+~IK3TY4W^9bnrx;+@9}PvQTWmg4O=KOx=gt0L}Y}8u@BYjdR6BTs$#u&5~&<_ z2%+;&p8{q!mc_dn5?`>XGJhu({5}n8sF$p0tc8PYP_v=5J5X_KL0eBtwb$BWNbDQQI^|xCGokC>& zA4MAR6=EtsvFQpz$~7r|09wnN6lQ!$yxCB6xH^YdBGdB=oMCw!wauWbQg3VH%eK%< zNuz{5^TZp3eQCn$O*R}jC=fsbwtdmip;RfM0$67oVjLN6GcQEZtk?+NPnzC|cou`i z1X4)ls`+dEBGvFzK*>ZEp3=tzD9ha6%_ZV>GV^>i496tMC43&Ik^SATnBx``(DvEN zVu4uvvwS(I`Jm$ps6f@Fc4qecR2^O^j82+bXHc)<0OZKkB$)*lsCp;d7(K zt&q0+YF7Q$-3dy9>VF>dn;WSWQzB3WM)UxGTNrFF%I`{8Z_g|N+JGxjRW(IAXyZ&XNbx_y&A`+Zwa*f6w4{crz> z5g_yhZNR4YgZSKa+?lRF2jL6aRsJ$D^jN-zs%tFzoHT-LjVl)~=#+QeK0dCoI62lo zd2sh&;rh8Ocr&!ZQ8=++JvQ*mFRV(e>M49bq{ z&wzynP7U?#g=Kq&fJe&t--f=%2l`J9e@txhIHs;4epmk0iZ|(7Zoh7-7_N(taNf;Y zRvp%gy-_w!{UKsr`3eeQuyUD?BFwka@jBE}bSKK`ujX=bpe2f* z(^#B@8(xVCi5klm_W2akOez#r8F5XhpkdWx||U8chtLlWEXtZwv**q@Ao5iI%*-6 z(>qSIGE*{gwtS2$#qEJ}q=amf{GB3_;(K>|=H16fRqs_-zNvFwwUqu3(74)oJ)DqA zuJKu;)*U%u~^-;%i%LMeDL^< zV#@04ZkwYNuTrU{Nb}(kXPsX4vh^!-A+pZ%kC(oM#*5$q8!}^Xq6P}H^zK`T?8HZ| zc_|i2E1WN(Iswlg-Q-YL)p3|W{pU5Wuojn?ccE#v+y~U2nR5(5Vke&QLdzMd6D+;t z#WqEhzQ1cXj8>$UoE88Cr%hpwsUj`bIJ`sVK{{bfdpauF6|UIuPzsV;*JJyo7h8lo z@D}hk(y#Y5vD|*$EpEKqR;cl%AkaP7z!dYnnd_jCV6xS9=`iMt)wXvET*266(RNb! zJ@N0weC^$sM-kqz1gh`ZaT6-QSvPzyx zhsWP3I6sdV0rztesDp|fTldy^iqfRGTZR$QOSR3dt2tfN3Toh1ol38_-8wqKugb-J zYJbVyo!ON@Hmxp~(^HRGbQKG9#dAb;8+MU|SLA$y1nVxVt}7ucYelO)?UK8bNLorsls4k4Dgk(p@GfKDY54^!NP0gRAJJ@qIj8LB5 z&t9Z3y7h~4x9IYteBP#zP;h@}kyj~VuH`1O8o_E_|2zzILDNzRIF!Fvax4uhE63soi7)?f5;aK#UNroSf|2Chu~Vpo2wtkUR+JfY<+Z+BHn2U2mM)~| zWzy8$&gk3DQY*2F^B>c%>`S8D?B90gHF>qDng};AZx3im-jv&xIX8pR)cCkn^K|iu zy|3mY*Oqp}LpJCRNYz?p#+Wm>`M)0#LeO5ox@uar7s@7yZQk0^A&S0~c4Haz$|y8a z&&n|bZ%Vv+I;(%HxA{g+@`Kc^p|wdaW92?70BzV4xsd$&AQgI4{8Ms!kV1f2`|c+-Y&8~fRbps zSHk$vD)gJq-wtjG&p3Yu!p$Gs#Z5S~w};Nppa+l(SeotK!c_WK8Ifq1PP?R}>ubEp6baG?p<+Mr@I+Y|acv`i$P}{~;Fm5q zYAkvz)n%u%-Z*ZU}#x!(sMZ}?l2l{+p6eI18_>DPxGlc=-u)I z>FB4>`(+DAY&+#|i244D_G_4wUv1{a&^EN9kIJ^D-<)LfAby?>Jt|)O7x9FQg$Kw@ znhm$v6Ou_1XZ?4x_nUo<%>{;E|1uMn=)@N!m$03q0!2gH7E={ ziNzLjQTkdmlr(gR0|IbiUG{rVzbpiaqjBlH!k-WF8K>KVmHnm6Dm!mvcxxHt*_f;s zyIi+RZp~dz3gYw)G1Zk_o8KSz%T)~Wg}w|+GKoD$ef_!fSVJoHI~bLGS`-0ypBu2~ zSnavpHo8>L949Og@(w;&QtJ-E-Nxe#??W4_OF}FAMf4p{2l?A7HrWK<;_5Wf45YJz4Vc5TH-}n9}+qdkI$`A2H zWrOZFwP&q0R&{@|G0Zs1aDl73F4I(+Sc~(8PWPCt6(DL^97BRD0O!X8Vf0uTm6_Zl)fAZSS<_QPpF)knY6$bJ zZg<<}aG~8btZ^%QF4=gV+}5|__SFSvR(}@4HG`_~oPR`&c`94jRZSoqqbaM0ne5Bsv zRVI|DOnw#6QFKhaQcg^IFEh*g9Y29n3v`9%;Ysm~Ov(WgZorP5@8e)gW%igIq8wAG z8*lXMH=6fr>8%iGJEuUvUW%D&Rs!&X`@3Wa{KEpOc_l#E;URLj{e@bciGr^^qh*si z`8ouFlTCW_5E1AI(Ce=%^lA&`?;&oHhRE$Ilj$9c>tsksGoYjQwz~ejr*^TUWM0~z zPht}^0am?YTt(_XKSC_uE(3U~THYP$tO3UBe~3Rz$i66K>VNBBTScD#27-aL;`?;D zHe&z1ywME%iSNVF4 zvsNM$=!82>ZHS!6Pl0hz44^aux1=t#PAV+6e=fshVzPiE+}+m@CJg=te35_r-LFbl zaY805pO&uC;)H;&^Ze_OhenzIP#(#j!;aFa=2j-a~8&_)w2BmP^7&Uo0N zZl}#^{+SEOONq7UI|!-s+vlUw4x@YVKVSFFPwuTr>$f2v_tW{I8@6<69_O+)n1wsv ztUgV9U->;(dhp{Q{Hw}yZ&mpd#Kxsxk3Dp-tEXl2Ug#JFWpE*K;bHL{zTTmXo)nlfbNH4covHctfE!RO-+1}M*$ z3PeVnT+e2gU2pY_;ZoPsxFE1jzY>*=`i~7eQs;B^mnM5WyLww&KGPhC0yL;sA9Kmh zs`O4N0%mM`oRl%32S-84Bp?e5mp0t^Yzz##$JT&1y8_r7A*c5L{|(dDb|C$r=Z@*` z(J{A$=$T64_!}Ct)^8JT0L=zY_v~x^?Ac`Ku#etS`;RnYBtnj9+rr3cRte#(XlTMjA7vk{ z0?5~i5|!g@*^Q?y+(&)KtFk7+5QO;0W8Zs~Cy_om#%N8Dn>G{Re#dOLcDR71qq5b} zCFg5BThD3v=U*)C0smzKLQkf;1^*)2fi}hV<6%?LgHProZK{w0r0vMYiEtHe>m+qy zcTs_N*={)BbmA(P_`;x+EHHBE>uIMN;tU>c9%X)(OZ!q->dc7e*HjUgR3TW!QOfjsv ztMX5jaO&FK@IO()J_>d-g3Ni&R%K^z8qQknqjvs1^&nq0Rl%H8Xfp{O8+;^Ro5&N? z_z|yu@>5)?#%X;%&}u&I#1ZksZzr|y;IG|VA-UwopD^KCGWEM%txY$ux_+an(4;bP zBC?9_t`-hfRBDZsUkhmKDg2|qY@uNt4xgsIELxYE3a&*#aWOkN6^xyf~N?;RjQVX{g_S1>2E&*&|a zgb@bNc*R#ADDXpt+<PzVVh_ zPwMlZgy^|TGPHrujE58iv=u4|9e)utxe94#bc)s zovDD*gZ)5}uQ(L^y9>;HdQmsLAeSiwE+s-)oK5e)1K(iRbs-Kx>Vcx+I;kIDb=4=p zIoH+rzx~N|20}#b)e*SGp!$FauLn!(Zgik7^IuGwQO_ChjSd|H5GirOR`CpgHvIbp zXR+1O^10ZJ-xCuoarGY25il@A+(GZ8^9inQhvm~Ph~N)_#jf!o#Og^SPk}%431p%Y zXF2-bo(RP&_C%-t&K$M)kW%ECKYz~}X!de^#R;f$iabBknIZh@z^P{<~JVSoFLq{M*BLebM%A-x1KQ~kl^&cHh+ z!(4s-PvcHO;M4c1O>1#`-~wUk$@AGb119)teUM^R4#b?Is|Gv|EKurgwT?S8H2OTsgQ zu^OEg5lbuHnX(V3Ks2-efUY;xNu8+nrRT}S@6NNynbXltV0O=+Q#StN+1)({u{1g0 znWj6?z;vEyOQ8=yG|M15hp+a&Y8-zGXTH%ew5R$LO2$QABl%(wMf@nCR|5Z_t6Cs=ATi}Dzfv!XU&H^B3#e^s6r~~+~ z+jTnxj?IJ*S(Rv$96~kU)e!4eH-EV}{$m(!)d!%ZH%Qvl;XAFujV;p0+bv0y-m`=~ zf9k10E37@BBq`s8gu|KMaslUM4;iqG+tL!FN{xmpaNr<$>;mGu;Sc-0O@1O;jJm%Y zopwwVMH4TWhKb3!g+_g|e0=#Hs?U2_gpust9{rku-0xZ8$}B#=V|dluRZR~E zm%$3e7cwj6Y$sH(?0;?-J=!eSNH{PLJ%cQvgQHNC>ypzHwK9`dYB0Ov(NpIz!Z{k=dki;{OR4w=2mB4(EqiP9QVt($)U9xVlA-9u=;XVJMya z+!&k0&I*LO+Y+vj#luN;frIku`r#s%Y;|U#YPf4>@&VxtoEr;=c#iduz)$V4=eLRh z1=uaGhs}h79|$>(_UWGjyy#Ckby59GkuHFJ3jh!C3&IoAZ~b#M{c%n;bNPy?JKU5rn!95C7Uh_>Jf_aUk&!PAFk?+HN9=bFuj-yHqCpwGE1vU;dNq@Vy;TMc!5*bt5h0 z>M2yuz3fj&5g$a-OBuaio{BA4hEV<8l3@__W`eDGo|($TCs0{%%pWVAKu{ z|AO!}k*F{htFm=KMWz`tUE!2ZCggm=nFum9?)N|r=?4M_YE(qO6ZGOY^GLSZJ8|F~ z8z)~{j~K#$qv`fhHoZl(aT(B}#wBJLkZ|xzuWOM~{VD~1Ef26TOD8gdB#d)sfBgLf z)&w@qpH58-$#Qps(QtafwdrNCPdB2ukS!{ni|j1=6LY;(hnp6f#SreF^#jZ}*n72p z*nHE=%z_YMHst`C>$Q;?rYR`UIpsC~Z4Pd{A~kly{cLIlp_|O5c?cH&$D157;K z6cpO=t`jwMU!0F(7-DN(Qrr)Q<W|zrb=q2+b+c}X!#&c2Om>0nkpz{r zI`R`}DnE;-?D{|$5bn`$ruiCQGH@sHt!(rkM^Gq&kRxBD>rZ})RJzAnyGzV_wNE>; zz)^jxfFf!Vq`h{_s}MVL&O!1RE5Ve!)0nJ_OcW;1!W^AS3Von-6$y}d(4pKF`u0(Z z*J@c;Ti)yz#iyn`9+cWd9b1=tFSNj4jk0cTd2gn0HW*j`kkhyOrSOfC!c$NSQ01_j z)c)89^6Pb!hc&%4hwbIcN|Q*OBi1?HM3nF}+J_W8U9dd22$<;Ncchz8z(IxbC9_WX zVIbzq+MI@DNLhL?X~DUI%Zh3N@Qo?J66K$Jo-APv1A;r zZp;D%w0`SS%{G&%DjB_&jU0a*$5zF8r=x#(*xhsznJ1Np=?xH>sk{iOH7dNpWEP<4 zpFy*MCTzSHPnr_Ky-ZC)=0U8NHHO-BDM`%yR&(m@=N}TWS32?OB-zqTnsLe!wQd>K zcyr2ou+^5(5G!T8%z|2svZ8yzeAz>NQS}$NWaI3=nLk2_jv%}V9qVTus0w6pG0F!( zDS~(e!);Q@fZ2nuSBIBHpNT*D_4lGDVfKozy;|3}HuVCMP%%yFr07=?lmxOMwU*4I z%%bEJ!%KDuvZHH~h0-Z!AAg0<52tvwB4!t;nFt?$IN>pxyI}RK{q*Jitud>lh(kJbClB0Hg*A6Gmq%=gOQdF*N`x(!+D2=lsa)0-Peu+i85T1; zzB=U_{;;!)bQ`&i2$T#cwE1l_0CYJ3HQSj4fT8`%kTj*V*L+k3T!(MuT5 z*X=wNWc2|O5m#6a%f1Np`8Eef4=*s0UXwDMsEkO?Fry2Ut1ji=zH10Os5EDEZ$yh+ z+C(^|&6W)2eBWY)^|5Or)MLdmN5hZlKcsNe;@UD&oiW01ApGu6O2?@9C)+$ZKyyMY z;Z+>Qb9Cae1pUEFF8F&m+WPr4zN+zWi@JO!t8{pSwfHs6uw@CyFe>|9{t))DUU%tM zUuN&im$aFPUc9CXujE*+I_Q3_yt;Iel)!Mjfb}Bm;dNy71J7iX**>0(!nXxy{1sw} zv&QNWAgB;nLXzoz?7BAqq%s%Ljk{hRG$x=3;=ZuK>7Y6yy;YxN{Sis`tE)C_w<5gX zxFRzOP-Uq^{%o&CHu7t>U{Tf&F~ z(xP}$*&=G>!tragg(rF2f)vbk7Kr@=+j)~!La(26Y7bt! z|LpCHeQudu3ZxWl$irxwXda&3IVHw|T&T3+mV>41g_O%W%muC$m#sRu`i>Q~Xh+=}%s+iwC{uqmXnn*l5ouiR_eWqxY)zG4EMC{}b~;^Lm0N-Rri z=Yqv64YfB6Zpr{-?Ct7!I-HhHLMF(00nrh&2>Sf#%?Bg|`2KwYn0HETpKo;~G*lfj zO|c2~A8p3Dkj7;34Lz8CDp;hJDP%&#b$Z)`slyT>T&0TA$!78v;d>OJ%jHb9{%pJl zy+mu{{yL+vs%-DW8?Ogj*A$JDZ+%18EDGgS)B6AXqsxRE0dNgh5thozKK1!#xz1Wa z-W&K!vmDaQB+PD_H96~sP{k&TF8VEnpJE1 z5@YWxvZFoK+P#x`INg)+m=(A5U^SbIvvT_Cz%Cbqkn_{0JN9&FmRF__9Yjm~YL;Y~ zwl>dsVI2BIc2uA$ukdtLsebA9myYsH$SM=eaMa=z8T+}3`Ekfm;0mSLYoJmCeoRzX zE(^YxhCXK4rsR6bpi%^$6Phg7&3RN4Vg)Gea*7{BgVJXrR(9IkY5bE0=PneEiou^a!5?=f(AjrQtMR>{-?uNU!Ws8!y6#Jz)24uJCm8P*j|d$W zZH2kO9`UA0N`avc$4OAU{dF(DxS&Rp;>-Ww?JeV?TKm6IN{O zMk!H{PDxR^yBk4?kq`xu&Y_1!rIA)<=osc)%YD1=|BL52=X1{aobzUndziIm&01If zzNKa6`-Y`CFlC% zVufpieq51Jv6j*Cvq#rmc6Y~%Jwdc-=YBpxt0mgT!DRCuGRoAdaW)^Z@VMvy)Q+)x zXPp`qF8fye7DBxZY)Q_!%qqwZ?hMtg$S;8I!Zb*_&mz|wT>Y~3kjD#?C?nV6JYT5N zbo_XFV|VJpDv|A@oRwrez4LheP1tG8NUXKZf5Ct!7EWX_qNibS5g0N#y(;Uemy8z{Dlh7f-$4E7}vQW9r?5_RaP@I;M%S zZnIT7%375wk@|8lKm`8$!f*|}CThTK(Z}G zY4kBW&QRra%Fi$O8%}G{rW78Jm$mq5770+SJ0UpMCp-{&L0%to3Rbc!6}W?hA0hz- zNUy~{z_sG3LZ*y$U+Vpr=)A6RmWO$!9mk@BBQjDR-d?&%z1cnno~5lWtZaj^N?QoJ5pC3Sgj{38%y@?;l(zWt&W z*0(MX!17-N7?eC4QXQMCx#7|k2j8!x+gJD33=pY^tTD!r<4|^B@=~M zHg=8Z=W^$bDYhPbSQ#v8ZQlFYAzQL=Y*Zjoo2!A#1XAnRVv~8(c4coIP2j1Ms}uT2 zt^RbAweGesjE9{;6!K#aoFRmFa_lbqSdfb|`pD$2*T?lqh>ATGHW^!ctjTWNG#j?m zQ%PiQ-LcT&yg-3FNUToo7vdIjcL7DtRyer{!(p=q%9 z#wFhZS%c zIg;Vq-FNS&_rRB`&V?N7PP90dT!UK@F8w~!b=B5MNgz_Y+48z4ul+qj_sIT(GjrVF zeGY_0>NpktyjqZh-9@>&zT*sYDbB8re#I_V8@&!SnVlmyAs!yRNj1$E4%+&p*{C;) zn|vQhi+Wd=6h$s9dwC2!OXhQ%C6){2b7!|+9J>Gu3AS^`c}^;aetx-Wyd__b-G}`~ zC8ZaN-#;_4<$ba!ofE$pM&07oA`Sz*d%;9%Lo3$E!KLlGqo~tECnvG9kl^4e>%#|^ESxt#uqvslhu&p zo+I+$e3|551P;F zVlU6kiB4`#UNv#bn9ANUddCrM-OpZ`Q~NOVWY?7Jm*LL92MN46>4leXyt^g8d+hhS zFP{x{D5cNxOjPCRs1hg!;$GkgqPj&%VcMT5(Ut7@zcLE^;~E$}7C_vI$Zn5#4T+NA zF|hhduL{c1jd`LEuC0?NMCd|$V~BJQj0oM=6`QIZZvWr>pLv~Xg?8GAHJo>;wRWUZ zPtjP!R`Xnw>qVH1Pnrm4P2ODsgYEfS58{P>S^NhrH{3c|#3|lhdeOX3OMI^IJK%CY z=Aidqnd!vUM24W=5ORi4F~b5f z$yPvz$bTzerlO+3dH6T;Xi^c8>qLw|v|!Spx!>7$(0LG5gPG`)FlbJ@zT1-tN|5Tv za%@{uKx2&ZUoB2~a$WenoHDjiilVzY$3OY*`!yYPXI?@THEyRIOrL`ktTL&~6YTDS zO*AOD&|L<*x&W6@CzDB8v&g8!|5jPvQv{}8Oatm_^Zpb1i5b@+Y1PqhA6N^A4qTt* zl5ZkQFi#p!5)U{&EiK)7$DAQlKa9$(a!wb&3f0dql^d24)n2i2kXm6?ijl7%eb>CP zV;lWYjRSyD*OxGqr(XYRhsvqgc{s`+;C9HX$u!c4@(DabKMFvGU!_J}r5^nW%K!*K zRqm9)mH_%;Ce!-o6EY8xJ;;U}V=2QKNy2}=5%LMOK#@mk;NXJbG*8moNKZW}qYtO! z5PE<7HXmr(CdV}zj{FXoHsbP`z{UMh_Ab;mQj#){m8=dV{;^w^`=55}Pr&{Bo%mll zm-8En8*_JCVTMZ^W9wt)Kjg_-OHmz;SA*zcw`4DW!A`*w|688gFY3fG-Noq+GNHqb zZ2W`&xklfpRLCa!X-CeCNyasrb z%N@Mgc}T=kV?SN}v$~J}`9GrDXL-We0D;aX5{#Lrhhnn^er7tFEsBu?{_~~j2f}|^ zUpxO;G7c%8$gb0XjpAh2D!@zR#^cxFefPpe^VBaOAVL-1YR!ek-!%cU~;+b;Jdh*?9u(k_0^zobbP zafLG6-W_1w7 z|B!#WvtkSB*Qp~c!xP`N&sL`pmtmV?C!l*7>u2zC>*qaIz}t`$>Prj3iNVE6Cj{_q zmt-!`=CXfJc$(<2^s)51UZ(vGf&FhlKKVX+vhqh#0G^)t=Gf4=`C<6Sby*(0a?Yht ztn{Pq{IaO!A;@sOpD)L7h5%2E_>b<@u)R6WBO&l=5edD}i=4Ak4h`C;%M_v-0JTC+mzra=iQ`-n2xz7=8v&cwi9)K6tz%O(;6CP1!vwPI?z;e-mSs= ze6$$Z_i%tYXvrch_@dPEQc-~kz?~Ltn}LcR(aJc33I1dB{|?nA6Yo|FHBcj8LSu=T zHYnv1LXEU()<`;(&CRy23DT0!-vD2$s~(&N!S@eOUgcKkfC1h{)OA8&``zrGGJvv!d9V?{>kgygjR05w|Ll)lpN};?qo4S9!JrAF zu=S3rX?UQh2VTNI+>j4~5TE0**{2KI&poL2&TMOlORb+sbbZ13^P=6%5JXp)7K8HG z?(J4IbF?Z@k1Fw(#Jh7}h+%1aW)yXweWT;(-uUnLo@f{Z2NiaTs^-cC;v(dvNDYJ- zt)mpct*Ma(-rolpOW6m1!TI^}`oeju-_L4*FU%r>Hug9$?Icn1&f?7rqC)r_OG41? z1bPallNbNqOY4zKh)a>U5iPHOT2OiSC^59EV3b$6o+KYVlu)He+>(tvJ$IIZzTsFS zA1DvvCV+hc$vykLS|DGl0T%;ee^~@qbx!d=eLAUf{eIYgKCUj$h4V1U?bZUPVFl4|*+t>ByE1 zR)qBe3f$V<|B!=TyhX@ncSUYlvJ{r%Y`38SV+M?|il#@`nbzI*^gNB?BdfbW{4zsO z7$~OC?af#{y9TvfVx5|PE`mj7;ZFN-=2d3PI;l|+E$c#QZ;|!%68jDK%sX;Qp^R|u zOu)=KpgeuOo?cqLITK*REx9`ZWl>Bpwevo{NB~Soh-}ESjXIU4fwbA{Cc7z39mG+< zcmO8Ev!##E;WO!Sge9qQC$8TDIzMjG-3qu3eLbB?%~&##pr(XVmwckVC;8%ldEZU_ zU0#lTed(7MIqpS6y64QSMnH9FJg4lAKrZZR2!I2JFZZ|KX>bM`H*TNGuv~v{tT#ZO_7UYU6koHszj5gQ=xzm^|*7qalK0ilng5ab`fs*yX1g`yfD zk)sVz-`hbcJ&!`~p8ock{E`7#u^x|=$b2-yO7HfIWI`f9aiD?hiw*ET!+w*b^qPB% z#=@O`L_Y7K(VC2V8mGv4FGS~UQk-y-8dbcS7G2NxK=yk#Yi<=>WzkVgJkkm$W>a8k zFUDdUC+l;6`wcd{%zZgnzq}9U5o*^3+WWrTM z$zHe|Y1o?UQZD-yJ0ui3w^pKYn_-LdcC=UDmfeS<>5e{m_%at0cQ$>Mf7kCZZHVU%Z$EJ z2;*0mw%%;JET9HexVl~GdU*lN>4*du4Qv z#gT{IC!<3FM3kd8%BPcy;i0*@iGR7`Z>cN3Ag#fp*L8PzaIBpgIDJ ziJa^={x1U35xMCyE>(j<>c{QlB~l-Y#{xhkEYcB}XV(Jw;b%jcbSR_GQwf0Ojsjpm z4Khlu9lm#2OO13Y07SBmvV_tn$bcluVkpXS9l*=?wg(5xCz>lx+P>8q5;Vq+^3GP& zbTO+2b_E#*JN8p*NFXRb`eRq&Z$h132|M#vbzHUUr(Kb^eJemqoTiI02w5CCcb_y(^}OU2l_y~a z?#Q(AlwC*LI!#&eB#~aN`<#BB){s>auj-*Cy#q;lXQkqv6Pz3aLNug{! z{bsg?dGThoo?ibwVK_Qp9P*r;=N&rVT>?>7uyf7E)^Fy)>0(j7M7wn z{Ne=QnAz72EO4!_q-9xbNVpNaMRic8SQ|CGhh;Y{d);oU@$KzK7gR1M!)vWN1m2<9 z01GBrKt@M)CEUz!fBX{1<6rfwgTiANfP6jFK4H8wPmomRy&euF+g|E^1>=Jf6h?uN zzoeXWwu&*k-!8t|EP>4!mCz+@V~d$m@6J?ciMi)$@CkX95+9!@2v-dyAz0x1&Jq(; zHq1@(X6|MrZ$b^z%dM*0*t6YLu_NcS-yjUQ-*^+qyI;x}9D&ea2?sE>+ktrH0ZQ-j zJIH0q-HyopI6stFOAjl>k-nL?^$9@cQ=F^-{w*7BnH@W_|N7P*a-;$v!(MS_zffKQK>#Esls3-kRV{kML8;Dw!vkJ0Dz8aQ&F*+ zTDRA`5;rdGw`{gE^mrcEGTIxGQ)=5r1}dqz>=xtkG?(Km5dz1^Ah=jKai2F$Su1)4tusXuleI-IcmwqIcRmk+L`?9@cAfDe zdA?bRPJQ_qbhAq!b4I)0Uk?Y}i%iD#U5dgLk_G6jlZRehaI{uif7zdR_VQOf$F7&# zP4Q9$Rk2BDzC~0eLaS*DW|(}#yEtoKz9s(#(UjKO#SOlick*#I`kk9zJ9nIjt0ks| znd+ytay^9C=RjKgGnW^uAdw)R(f??n(JufDpKN+lSxp>)?VxSt{%XdackuYCSuCzT zn9Ic+&dD~X1EvZ`5dnQ-_b^7q>|B1bn^U4sKw8RlYh;`GV(M7VHYR*{@?pXbAy&Cp~#SymQ6Q&B6ica0?HEH1n5BswZ?HJ$#- zW*}Q;1c97U#UAqW6vHeXXyv}^whB|n^Cn@HZ_u|0D@If8`>Ej-C$-=5y$Qf98tYxg zE8MeQ64D(M>qVjxnE-24d)^Y|+k5}LR}!mC&c63PYB^EktsO13URf3_5J>4dXlL$& z+~LF7j(UPc_wC8e$R21Tn~jc7b&X3OJ=X!n3&pa<w15oLlGMX#he&qw-pD&a(TI9D>r4|KD(X343rlMM?Jc8tKMn}0Fs@|T|98T{Z z;2?|7AnxWIv&e0_qM~t)ZP8jV1Fu&}+EVmQ-#Z}gnx&`9Z2j9*M}Bn8b%Mw>;05*)zRF_Vn@C-p^)o-4}0 zO@K>FgGf^ScbC4E?yFJ>T9~}orA)g{_EQ(+^?k?9*IV~gr@18^#!3cA2Usm&`QH7; z)>Y2}N9DwmT8B^Y8MxeYBuq90P3wL$DFGh>zij0)73@&JxhsE;?uSaPS`Nk}^3jON zX?Q|6X{g}wghKZDsD^CzCyZsbRr6p9;%c-@{UUTJp$g(8+%WluVNmE`mrW2`Nz#_s zf6cVdCNK+@p*g$ahb%c(ie*O%D+B#a_G7){sFy$d8~tNMLjxJ!{QU5uxLC|WT*lAS zy2zlE@``?LEElSQtxqkzy7_A!{M}$I`F}pA2&8BzxzN7JT zgbfF82X2BpV%TVGTk%43456gsVr_JmprWpG{J($o)pBR<4d-rFiyR6K_j)@tdEvMx zepxX+?ihC8H!%=Kg$%xmsP#hX`=?)*rM`-gkI@$sowiDJo3Sf#ZxSWnPj@=@9HQr6 zwp8QhL2{BctHBIAbq_g*EJNKV3`_KK$#nSuL(C4OnD&G+TEld#cO7d#0Xl6|zS$2Q zvmzv=u37r^=Ar~jUGNS6yH|4^Ob=Ll`KDDtzb^VlZo2{T_Z<~Vjxc~2q&9k~sA|;m zow#q8F9lO4(ql^k;R5K`Xedad7LDLpb-;k)kPtjDz4o}|QJc2T=g0_iWb2ly=mFv0 z@t6?Pt0yiiODbEwn&xKOR;M|l7mw~)CRcFhY$?7!$0Iu>My{d=54;{GGB<=@>(gQ<+=elkoZViLu_q0Y1my{7bZib`i{|6I z0jV%)5YSNvscF*FM5io*&sa*4GAo*lcSA@0?RV=4+*dy;t}Iw{w|^&3I;tp5C>whDv7Z9U^XXA|dZ)14!-m;0g*b4l@FjDGiGm|W&t0vabM zXyiL2iCJ+5xD{Y|&vr&};8GQFI`5B)s8VCR3P=(ra+|Ulox@RAWu1(HGHADBLiI@K zlFs$o#cFXe;1wV)8Q7h63znzyMg=C8wvp z=B&vl&!TaRq)aYHD|Ln%%^kfnFP#f}pUcUFXnv>HOrhJfr&zYvNvSk>g1Ir?_VD%- zMH8`bft({GWwgtGM-8?L54WWulGl&a?X)(@V&uXTkp;oehs2yzHO5YYSv41nYS-px zx|%zb?MBiUR?n*BTVmR#<~JUdu*~21ZrVyjgUc$|1TIam32r_#X%@>+%BhZT944fg zvsh59zFZd7qir&Ff-e;NnWovF;3j)SWCM2346D_A$Kg7d=LZ&ls5~cWBo;F3)RswN zih1MJ)BSn>lp-vRlXS)Q?0di%hfU}y?6A?U2AZaz?FB#q#GLIs9l~i)} z37f8SG`@~RQiv|e{%|H&Z-aS-!)wv3Y#J_$s%Buz!1Qh(7Q*yd{B|rfS_(NPD_w+P z5Fz>yB0%RUONgY7&P2T{(ZeI>d?d zYW5X5b4FAL2VZtiA{Y&fn*)R?`MZWNwjNCZZgbFN#qh=k^&vyWK^z854sW}Fwmte&ZCEZm~r>Sm4qUkObcvC|dkDt^9QMPC} zcT|td+W)n>6iiFm$C(FDjB<3ML82m=Tl=#1AHZ zdy+@xp2q&VF>?32tb$#k^?fGrs0w4>sb+-)>iM!Ulh|kMuqvrbh#0deNv|7##wYL@ zOVXq&n)5r?MatP{3u+JtG@l0Xf^TDa{448!B1mzAujbQt^mSiN2N{+V|t{X5*0}k?fFGsGLc8U77 z7|yn0XT@E-`xatEYH5Nj1CqZR?H1lpt4H$H8JPL@7}BVVr)1v&C+es3pQx0_fd$?0 z&3|(pA$kZ+zBvKs-jc+3ywV*AqFSPeKJbVies?W7{+TK8Fh@$fd-~x{Ok0#eG+TE} zn?b=hWOaRbeJjVqj3mc3KzZc=W^Aq=SB++vzT2}3J|eiCGS9nXX@ZJrdoV&@pTqDb z-qLn}j^J~BeR_S>G|=va4Ly85)(bMievU+8g7A*?UWXcYuGniInnAD zFBsJ9nXbO5q7cL@3<~VJR=Nl<&ORDCuyqLuNh}Tt4|H66jA!G_YC#Ys7khIUTd5qY zH#jZ~ofY&z3xWoy$^BY%-2D574;^@9(th41;?OaH;KVn4Bi5 z$}I3#=(wO?(1iZw=v%|zH*)TSV>HYe^#}j?nkYF>Xc#g*bNKQ14Gm~nR3Z?|WBbq7 z+|T<$bkrC1qcfoH<1g&C;5RcP(S9Pg3%Gs_hP6D&Pv2=t67zlCv7ELSzcdVz$O4X; z?#VO!xx#jNIrX4($0%e$J6B&dD+~-ZJykU}SMXfOk0y~Pj*j2gzJFiV{jm(>cET(< zrAGzeAJ+c5f8==+zhQD|VZ_uUJ+Ua^W^S_do>=G2Lsn)r#W#^pm%F{v&67jbz^lOe z^QwFyC3g{qza6i(Z$F<*gHF@dko?o1}TU@L)^txJ;TQ!sMP|-LOMa$ zp~~%~(!{QK6v1kYFl=TDx=Q`n1{xNryG{Yz(6ZQ`ZwT!;B0WL%Ox#&JH8B+@44+!6 zSZP7|Q`A4^ofAx-8!mFZ0p^|HU0T_t|Al#{Pr*(>%;HuQ`D$qS-^-XVT)02+&~)7E z#}Pu?Nasw#2*Jf?RKnrURZ?5JyzvygJk8EID$YU{B$O3GFYZ2zsV*v!DwQ!Q;ALVx z+#DRiUH||1z=T2G<|I!aH&DkDln`r3q9d^JuuL@nBuvAr@$+ILE$`3?hKM9&#KOC4 z=qRYg!q4hMh@=R^H;V!R%JCW|`P>4eQ9Zi72H>7^+egi{*#6L^smJc!$BwuQ{++rc zAPdjoqM~HdU}5*@>son7-nV0Gr>Zu%*EN&R)RUF4&WPctueM zHLL|12HCl;fi4ORw?kWA*xDC3+wm8_X|2Uy7LwF2G{GPz#Ok^DjeZ&j%x~0pz&?kk z9D|>#Wcy`{X+yNY+Ft;`)oXtnVR8zM6_GP}gxnY^KD=yEqF$nDKN_5P&osH=v?xZ_ z3`q9Y1rI>&S7ZmOP`<{OYDF4Zg7NvWHIjOXTuZq)uIt^F&-thy$`zhr;> zmPHwf&5}TMl-BxjJsSHy+|=9hIym6r(jtqs^QG3iYWFwiuDxr27ekiPHHU$x{%ZCb zl9c)PyI9nxX8t4E%ZR&0NyxD|bX5KWOm4N?=XU#nGsRutM_=7>5GuQ5P8!Jm@}um} z$WRh_d}h#v;ZLK@n;{d=&)ELYBBGLWvKajz0h!RqG#d7)Kj$JyPECN4Q%fKd&!LEO zkQa*mOsOOE zBv}J)f5QSoHjk<6z@2rlZtout^T_xhEAj`qDEaccN%BvTZ9lQmNy~_aR1XVT;H~pH zdaIuF+scf#x{IAm#hpFaiVZmjv7O1M8z7i8MbFSWS=|o;EB1hHM{FCMhL(7vS7Sfw zGc$A3Ok(m|RCp{0Mq<^}L73qNG(TUdjfZWl%4+PuHUb zfBhflK~h#EQqI+iLqlSyI}e}p=x$^geJ3G)kvaz&Rse5JHpOEUNqP+Y6(9BqH2a!G zS3mm#L`X<7J*etOigXzNDs0oClZ7#DXGr+F8wKs#k&Z;eG0 zL+-JM@Kol51>VTP;aj4^Sx7}mWcLWTTjBdB@hqv3y&YnX43_&0@T8aT&#SWCoj=B( zH5^%N!$-r(oLHi?!shN$h(YB-#OX`1n^v(m0gU!a9)ft>(JO1bs)w4{m;*~ z%gaYaJTJzNZB@5hQBA2ucLd*`b=to}1RRwF{YdXz%>hVEOyLexZ!vZ5q_P8#{^4c5 zTFqi8AviMyzyNz)qD@uWlVH6h{S|nns6+OTNT|T)t2YmYC#D1+0%elqHzd=HOws{% z+c7{@-_%{VVY}`dGMG#ztx&bD#Mj zLL`7{7WYC#8(BcrPtOjxHqZy=y5$#RpmJ(`Hc#c}Co>koS0oDDCk0Z1w#(p65|fYL z6{o0_RW>|(@!XCn^K~ebznC9T9VtUXSoFfs8)`E#bIF~@)Z9o!UG0nM=<~hk}&cN?9jgH+%)ap~hy#Co`B?15%&Ps16Ip z0$2m628=?AIf4VYS0|6~tOYyfDHhao)WOukRW{^{7yt%gp0wYhs6%aHHJ9O3o)fk4&ebm z+$W2H!Ei;m$TgCqKHeI&95wOfE`oDNf*34vLcHbxBBs63Q2KJlPXLm-0oP-j)kUCx zGcBp87IEJga|2M<&)($rxT)6qdHU{eK)tm^RO(-K4q<6E*_7&HET67O?*Wgq*i|3b z57%x~Yg5~{&Dvx-Ac5*G!wfiMx-DCaZ1l-Eu#x@(YRi|q9Ro#|*ujJGk|{j_pw56r z?g?t*g2U27{H)Kti5w*$Qua;-KuFdhiT(KezUm;0#t=Dz>>K)<^rWuC{^nkXyARRY7SRr1a(8adcK2-1nnfKhYLvqgzlJP z2C^siWk%-(lOp_XAzT?l&lPeT0gzX%9kjIDDc~>EOxv!WVXsik^DVyQ^D_G&nxR~CW5d>OR=k_34q1N(=7Ae zM?rkdyNlMg2zadWI{+PX*s8Gic#^Uw@Cj9GtPUN`-|W8C9;D?#2Ira|6!R8C}LS+>>LDpzzKKOZ2L)GV0wo5Hp(% z{fK2{qm%NM){t@0H1#yWeC@mHS0wRksY_J06;nR|lgw39mRa6#pZTEVCV!#+QInUKw&&+~t;~W<2l7G2o8<}#_DKiUhoE@>OR73gYI&+^Ug&~xS8)!~8UygMsk5{o^iOcE${tztS`wO>TH#r`q>v^B(mU(5i)s2^4!V>k!OhHCUkVp!}_kx+u zEM}`(uiL!=s&c;H)jJP}&x(Sjkz$~vbZL2=!*BdDBG&W@qi5C2!bxvk_E;gOz?Qi4 zJmKjJk5^fLrD$gm9 z4HPy=)AdUpD(Z*x3tr0cob~p86n?juOaRSQQXY^#6dL0-TOnNFpw~aM5q&1Co=!5G zMLqnQU2^2S1mNRt$1AC;*?8>rG+rjm**%klzFsdXeRIqyy-e^leAgG!oXmnv3H^)2 zyIYs8=)u*pv|uQ(z`HGbxOzr7)M+UfLU!e`E0`(zB>859;{B8KrRta%%e)2^6&X71 zcw&-}Jxg-)Q%*4~=w8;HwPj#^=O|Ot7Lm;?4t!d?9qeRn#a_Q#7Vky_i&CzK>B7a@ z_seAm@g~EcKZwhDy1dYD`f~f@I+((?NW5%Unq;AzXph;aB9gQOSvTk{_v~D2u^?_) zT$a6{S#P@k!nJ?`|M+p`u4)MYO6RYoN~nweTZ|DCB)1hLr{Yvmpwc%hLO|#{>vWry)DSENYbR+~_+&&NYU8b6M7K?N6X3t3D zpyhN~Mr9M?h0Z?l7HR@(ouA>?#g7WgE34RYj*`lHV?{0@y15=J!B;^go_e#V#@9<~ zVjkzIVY7YX@7TRODdH9i=8n6G-H+ueuk6p`taXG_*1Q;tJzzC=Mr2=Qe~d%~zrvLy z?dY_1kH(kJXwkpv>|-zu90i((R)7VZ67o>VtGM6wX;ot~#Dl5wC_-d_$r}!eR zbF7{)ek&`#TZTu;TC!>QrmD^ArK!BN0u>ZK&+nbFlSHN)RxMQNtA(Dr%HEOe2)r)W z!ygge<5Dncq*?Vo2J_;oFR{7xm=-$={hRkE${aJ~WZaojSD$>zvEAOf?UeFLjF5tj z+Ro+xqg5{?uxN@#FYrQn_qnzW-r7fS3%s>7 zIW9m@0=%zJsyEGp47vyHO;jl#eY7m^5cS(z7x?al@$|o!+1Dz4pSk4{7(e;LD~2a? zO_|9oTPF0ZpnQWYxoL}2<8Izrl7@H!i#iCtCD40Yu18g1mMn8jFm8-S+P--h2xm&< z<1wFQ)MV6I>29#ImEX4n_R5sjI-%Tth~kIzw>!iwsRmi2z@ksA`4tV5rOtYpbhW(q zGalzxXcZO4I>Y=_~tIeat+}xZ_PMLOz6ie|WWm z0A)#=K79x~SUxj#YQ1o5@_?7n5b{F1C9A)PTv40r88(Zq)M?R&;!NG01NYWd|EsHc9FX4S< zFL&JOk{nvt^8S(V8VhW=>^UM)240McNJo$>!JM^FHYq9e*Cc(ewQXeL2e0)tS*2Tv z^Y-XT7;h9`Sti;ko*POZWF2^a5F`0(&A0QBM;DSMQaIiIXM`)qibM;v6) zag?f|lsZB1XZ$EZg`@5VWBlCQ4JvoHG_8hZ7HaDr$}TaRt+rCB-p*>!2zqMTLtHyN znT~43CGEC^TX>pV0~_(2rzy>KR$xZ9vS`B5R8vqr-Z3Tv#deA3-}gx32o_ITM`NWH zwe-B>IZRQvL`?jaFNut<>PqQ-?xFZl7VPQET%wZ8_q;a&-Vjl8_kn0ibQBT+N3M<# z;cr3~HMnT4lyNqE8RG%&MBj0R6&|wpzT^0eOmmOhR>j4RPn7)FUClDD>6N!lSC;tq z^o6+P`_g5e*nKk*&dAf1vAyPXCFv9O-WB|0F4}Q@-;Y`cI(5hbWH4HSmy|J9e9@S$ zN=@$@0g5wKOx}6=RYdBAlk*;aN!F|j^A0z}vl5bJVy?|aGxvn-btYa}7~px2)Mu3F zScf|TNA=zG8(tdH`#SzV61#Z`tZwxMje*sxxTGq5f=+t1fcP}$eln1d-MHe1aDK`N zI?jOQtV*PA@I|?&!z0Xi8r2Vfw&S@;pkKG$|$Dm2AEM(vc<@aa1;jbmS- zgmHGbB{5-yrVNwrqO>nN4?_rnXkA4Bu>M(wi`^8sp~((ws%ZH}<7+GL-9v%69g9CT zJu)LZqxzVerkC}EwS?^@*%_bs9t+z{fDg_G`w+V)8ihgPF`o(bH>F#5IfnSbG z&`&QCmkbPk%S^i-8A}@L3Hh2^F?<~?t&Ur20JO))$9b&qg{w{>V&y$c*F0|O$f7^A ze!AxM`YnERv0pM7^ux7NUU_N0vI;GOqt!B@%5ja?r$IXW;ER{&mkuZ-p{&}-ts={c2IBJB9TZQO zyQMmHL$)G^Jg+zrh*b<)46$C_XnlF!h>smsAX|YG2p{*xY~_?;Fq$ce zDQ}7I+~A|z@6;AAD)XAwoMT#l5)9Wx&)oD9))Edv?<;2AYD(()bce{~| zw3s zKbqL|+#yQ3K}K-kN_bw(SnOw(yYwBm?ugiu1d=c;UXCp9(Uslv#%S$ZE{>|>H2CTV z+Rmf;;&z;$l`_d&uPDwj&H5a*5X!`P-UMqdS8_zG&NeUHnKw~tONr6;8WD`%SusZ^ zoVEKC{gDAhtddjGk>Xu*`DICpgrN83S7m2zh4S(2Ve(A`=M{9%;6&`tE@UU-h%6H& zRiM{7c9Pja5o4DE^^*kOJk$i#+z8ip*a-(2V~Cq+AP!lS!jH^5T6IyW+xq_Ha4%gq zz5O!8ZN~|6FZsF7P0xLs3i{_af=Ka59+j&ZIJlO+C=IIYVHQFT*UIpC=^@Ic(gBt| z9DNcj3Kv9=OK;@2yR>&Ya~?UH8d{6ksjo|V^@x*#O<5L=)8aSWwWlTbeG1%95V^Dr ze103se%_KnFmAPe;;o1ek8G*m^vZ@9Rt>f4kP0l~tmoQyR)=0q#e|7kFX)g?2#hQx zKiqPacIG`AMmhy=k?Cuo6-G*a&nF=a6Drr;2x6p8UT29dx10~PY7EhO_y5H=MzrRS z!5sCZ@xF9Tp^54DlYOGG$JdYdXD~bl5Baq?x+=_LHCyLnB8O7wy|wZ0WaD(v;VqWn#gh-tj{9^zK?%^NiuE%)Z0HpUog@2LO(Pgu{^tN)OxZV+w5&uL!YB+0c9$M0& z1pP-Ta8kpf7YlyLe*F>f)?B$eLk^4*l$@WY?$di+2=@ywv^%R01H5l#LJECl!G7HpIPARB$Y)PHv?y|c3yOJE^4W%yg}4b z_Fbgs7wp)0-&qx4YPL;1-b^?pFQtom@1<+O(w(PsaZ^LKQSS-m=pXpCG2jW4XCp0C z{tI?}ULj~`2L&_U4hts(Ydo;TLYL3|R=h;Lz-E%92l9`HFffcF<{m}~f{5)t0nHdg z2B^~B+fDm~xEUPjZ{1#Yv_qtM#X#33A>LOn<86u5riSM&m8{oVz4~;|&Z5jsW#27{ z0-x64e^C>oaJVDxz2obz*;!G_APl9~dq2Ng%&>U}2ESZM^H=e~{e$7>h=IH!`JJujYU;_WuDA6TYXJ%)3Lw zSsb-r(u~r4qW#8_%knHL_e6PGv?I1QY25=G?(W+7Z>4m7+FSP@pVo2U)0!;&=j_{G z0}!Z|_5a-YZyO2eXUFRnR2EN>0)LVjc~<&rtt#fQv7cUtJ`LATPsu`w_^$w;R?bt^ z^j~_wr&ZTamuYkas(i0m&YWDW4?iBbqaSdH#9_7gD;>iH(y`QPU8#R?WVx~v6)Fu0 z(5glQeu5&I>Gjcz5ah@_I5kd-(tgFq-)XJN6OcbNat)5?@1`~a|Qa@VZUf_?{5Rf}J-$8BkG=GbeM0xri zfIn*)aq02s@%h96p)iYGEiKOA^_1b$x|e@w2YLphP)Z}cg!_ihZ}!^7jW6-{E%wMQ z&MfkUAoLj2W!&lCjMU60guDW%YJQ$o`ePPm7;ePj(3MKtmUix*wtv1Nnq!OKOEh2d zM=JnhopLKGTr4R+zcaj)6xwRD+4aR4d@4!;k4`%;BDR5o+5m!ejhjEC_&Gp+);{tq zp8RtRI1dZxD0{=5PP%{KSMaet2yyn=j`%F|_tZW_;J!(_37Js+g^j<4fNL`Qa-AEWK-V3x`xcM}gzM~pdA!(6)7snDkA?WfQHq_^z|citw+tN@en#`jUly-TQRj2m zegCM`V_gu<;2&k&%!K>+Cbx+q2y^T^doN{mQ?~1+QZ7nyiEt24HuNWSQ|KousygI? z6L$dU>v`T;`@%(T{w)U}tk4zZf$iU3xg!8rXS}h%ydzC8sPFeMGq@>q1Yh{xrp@O9 z7VaJ}MG(bi+Oc~-{AEGT;RhfvoLKT>K${?K={(y1trm2F<$!XLIR5v!$jiN4P?x$p z00ax(u%OeH{Qrzio8|MzPym))>ji514RnPlE2_d) z;WrxX-Fo$nYLf&;Aw0L(H=Tba={ny^pBn`Ba+$wX6)#p&Jr*{FkYGgWI$#ZrJZe&d zK;IO!bwiT&|GPu=jgB?5i2uvADY)^4G_du>Q7c+!)^k#=$9X|&r1Fxv3f>4 z3_)V^ou6Bv#73(3=*5;WljJBsJt}SMI=b?`t+K5LQzCj2TN(WKkO@OeCCXrSwhA|z zq)P?MJdDSNrN3kMPdV-^iDK}js&WB932}9B{~d;Fx{8Vux3bm|e2=!ozf;32K?CSw#Z_iOuqcY@4D zhKzqT3;*$Gm4G~2O*r(sKQ#ezQF>F^BhTD1RCganL7Jfp+TmEnI+yW1y>nIG!U;)C z_+AsO9LYgj>Q#WymUz_31}zn2Sl&0~yA?&Kc410RF&t)>0p$+#Y7wzdGsM9T;`0gY zVZ_YEN^A-ZZrn*6Kho;_F_|~r#l}&s$fGaVeI$nZw|959t+)-@FIkhLv`WMmxWru!&aSs^WN%4Kzs)it76$p5WgiCJ^-X&De&lxfMI#Ul_rYQ-#}lJ zqAtBZ7DMk{=#9~tD4z!&iK`_L2$t>Bc~WLFz213p8CxAwFMmGD35`B)zW8;0o~C{6 zHVQK$HAw&%kZCdx1L%zBfUlV#b5Ipq3=xMhz>IQ;6pyln1B7_}5no^cqWb^};5!$p zNJ1gK68&)XgU z^M-DTK+`g3O%zNL0bh(RI#;ODs86^daG+~0?y6FDt^%W5VoO0J`i~ydNCMpdWPWmM#{XB&#a^!g3^aC+nLyO!RI@S*Y z){9dIV=hRN>=b+lv4dG+9S0!XQ~(29f_uCn9>xqX7C=Ilr?vgUeQwLT0fEW;#tW1A;yc=B8HYY`D%>hoL zNMAVsx()pSy0bPP$crnfW$yfuse2xvM}win0Np!?T7RU4+I1cHKlj{?`}VXj8ol4rDaPfVjzafI{2xokeu@${T)~X`_iQ1 zH_#92`n780zbAuY3)X?J?|`jG3%Rr#P%_T_0SaX0(f$x_Vm}65=a)r zU2O>?S%;l=B&TFO?d7O=9uu`#oVEAx-?CB0MVvcXZp)pw@iQ)pbr$kkD;^8;F&sre z*U6rK7gz(Ug%)5Tag<0)uS~FTqA<@hb{lqlv$94Y4?_Z$!hXlMYhvUi-wC$#FCZdW zCSdOD=FaH!Qrgnr0M9iEg>X(NM^8iF#92v3yR{<#@BxZ0QL?-3BwiUew_^{2`)xmm z6lJPV9VKTcy+?eni$MMSZRU%aDvg)UL{8+8U$GSKIjFd+0k>jH37~1Z>PYNV8NB&c zLWHYE#C6W^(7OBps60BXdKM%WKYe#mJ=rUf%`Us0bg-1S4K5@cKM(Xhhptx=g7QmJ z&ZRpb;`f2tGm!tWWI{Z(4csZ#AuG48Q2e)zSMFg1zV0Dwdu~R$ov^xVX&T>*l>*8y zlb16?@&@cC^cj#K^f;QxKCT(Skg8IfkR93 z4?xH$za*(xq)GE+%o)}B}&SgJ&Yww@!r$PdEe{3 z-oJi-zy7>k&peO&{?6mRzn|@gLu{`fYWYy}f2*4=%Gl*;`TNVjq;$%ixJQ6+l=pMlv8GUiP9~jvjqB`M`M| z7?Z_B*oMf2$X_=ksuDF|&=t?Kb~*J(rq_WB8RlL~o!Vz+%3sD*cNS+m)+9_@oDa48 zY~48QBYM5VQQb3|1%|Vf4tj#R`M0Fz#y;A|&ZXtFtwe$t<~vT`W;Iz3$@iIPp<)ll z?563xnS#}3KW~=1_WgPw+$`*M^3YF8>!Q`vSylmCwc2 z{JBpP0IbQ#sjl=fWqZpapS9@};(Sg~*8zWvc;7r?z?;llY@ntB+-*<&|oUCP0MQzA+}wHuXx04kdzcNq74WeUq?p4mdD*S#jX zkxc6oFb@{2qO0SayVc^$Ye#NryrcFqE2F<8cwUp8o&e21(&@htdst+t&my88>AeUT zdstv%(l(1bBx)`(e5YJ@1W_^AIUql_yWiPsA`X`qR^+fReUM*48eZO>QBOxn>Fu*l zLw@v1AgtaQ-V_}=TTPw$lM{0Mu)r+?TF~^vNM%FqoOuE`tL!DLVzX|LzRv(dObUTA zO)zaDi$&;%oXhW05y%|z?*sx_NrUz4r8S>*-=5Q+t+>=U3euPsaFP;-iCeo2X4M~a z%GA>xHUO9JLWD?&XUNwU(N=LTE1kp<(*Oa+acI^@v86=VG*ez;5q9Q^(#D6I+nOoh zK>JT8mcw?}0kA2KtT0CBZ@{DEk{vv*qJ8P8KaQNlQsNt+1A`X@u>5KE+0*t++Q%-l z=B0}YzEepLy3oxok_dLYmrokyo2vC-4(|#D3qXj>aNWquulFwL65H=xDkEn#UL=O| z*k$*s5?t1f|G8$}&tg0n@UR`*Li6C0{D$Fw6SIrZ`5^Ohw>O7lwvu{DkPg1#qC`Ej z-yL5V=3tN>4tetD%-;1Dt4}Ss^2%HYs*TcpGper{ za8GmEft$@pg_;hb<3M6zdQEsC5C3iG^M2Z=Nj0UT#jME4@ub6No{SMeifHw@sU)W! z@{}?azyOeDV@(A&)QysT*smq=lH?xlsYZ-lVX}sCNQfOAb73`uiIMh+x<9BMNeC~WfsjevA!vkR_7b6 z3^5(48QAF1t5E^yC6RPR{_^6V&)g9qi;?l1e)5{KG`PPbg~_K@P9-w)J>DzRRe(&W8}x=1AhHyQ^gtP5e5}UmyR`oF}#+EWJ-I zT|HlCyV03PN@GDO(ezo=)AajruBjbB*`1|4mbxlAF9kN~&+yU8N2>VWgj?<}F=mrm zR6oYdD`~h@mpeJC6w;6kTPV4LrxDzyTh<|{xsu{cGcp7-6K6^Bdm-2Yp*y`mTOpaF z#YOyCl|QW?9*gWw(p^E3?NY+{3fwT2jl+f<#9~ZZmw0rnMYvJQYAEIog26E%eXi6U zJ5E~1{s75tX^KWrvoIB-31NVlCs>NLc~>;#x0xlTBuv8&b$!9QtLSu-pHeq8j4MYQ zSAe_nz&p~!4+^JDQJol%^qQ}GN771KOo=Enuy1CUc*hWYfv&P={ZKSRyf1S}k>z5+ zl+c|#E5sotT%qXxgs8E(l>=MP4>jn&GvwOzW2uW;-Up&;(y#f;AB(0OU*M21@MHY7 z2aQPXSQmlw>XdY+EIYdAkIB-Eq`dMs4z~f3-7oU`Oi6&Ja4(yz%+OL&RL6n5TK{zW zEzb?XCP;Ox&anQTXq$44+VJCXiD|GYqyRqbBV}(jy&!NloK3J;I*JRke@Ko{JLdCZ z=#Z*T$h60XU69hoVJn`|5V0pT+X8}ViyYUB7qZdN$;CXWx~WDTh(bDuXj0b`nMKOH zTDnXr0-RwDZFcvPs*yK`H%G=_*Bd^e?p+W0*i|NkU-1_hm_=v?l3{2nE*UcI^xh6R zo^+OHO0K!>FL~v9bS{JJZxVF+utHxLu{7xHbi&m>3F zTNy52Hr|&ssWh@I8lqxwVOG%*7Km$&F2|$3#5?(8DQ4SWrA9jW-PIhGR)#ZHl8{fs z^EY}l0N_?2MFZpw-R^{?`}BwN;^C$;=zA+>$HJ7-0h!fAZf6g~IAlBiyI)CL+DTX|O z!rPuP&g$UOzbvGJFe4s*vj2yIT*9JcO3@iIgv3QM=u3FQbT~N{stN_#pDV!ngE;#R zKf_=@%Ml4zA6IJ~#!G*0Bp?|{LoF3B)11HvAxuk)i{dOJ#O-Q~d3A1@(~ES4W6YZ~ z+Gl?TzGfXVQcOluYuDS zM=w_U>mb|M^|=%dC)f-3V~RycLjb;QRo z@F+}PZon2*ifm3H>P7|9rC{vassdTX0)=zVZl_N861(KvG-fe9Tc?8~?XxSiyu5HS z(W+lh?=m=ICf;2icxs>ibOKbGH|j|MQ1pVR;mM6HumigfK`nLHj}0w; zF=@OxQ^L#_+DnL{Kq!Zxx4iAKbwPAF&4N6G=l%#Wc#C{dshvmN;poMjss~ik&%#jF zR}+eTE~u{RpPDls>bYAwJBCFUI8ofC!Zt9BJnpILh<(t1!MEL+liTETxZgpAOLoJwegHxAMUF%K&D3{2<2%XMhA&LH#s%M@*d?aiY*Y0Wo!bT~$Fg{i7H&y~(B8 z1WAeNFJw%<;{F*k_{r;hRBbWDO*{pigRn(#yZVezMJ^UAsHe3V^pUrxjE5pS%KRCV zn|YOQZW~8oDBnG;q!dqYRJP`tF~Szk2mJ8X zwm+VaeBjC>wX(2VRVttesbn11GQ9YwdHqrxt`#eSK?XJDt^+!B*5Y-1b_~KB;Tv|B zBy`*G!`b>}OTZm5!{_~5nF6>JcLPU!knd7Ezh+|kKRYg??OzsI-9OJrCw zyfng>>ZnfBh4U)NbEDDZ+O>8OWcGJvC#Ql5H0E)b{Y}o?k22Zl14jqCG<>t4R^8sJ zu6a>vAB>`w@ULU+N~)HvB%%!CzRzKM?^xm^Li>pk3#A+pDww*a@Qb~~rTt^WW{Yb# z60`QI5jCE}APVjsK3TZPcNw~icOg`^uc>m+1*4?dCU9cc)fln@5kC0=T0>{}U6%6Ny9gerKKb=aMhBni2UWXcL{L8b*GSVy3xtlePh zEy2Iv`c5AX#sMX>EYPJdQ=G8EAm#KiQPJsxnyM|_KQkre%Je5}G0C}12bATj8998~k@VYA^;j*2*wx%}ZyLnx;Y$K{bt*s^%U#agJVo)orm;x-)aov<)^Tm0jn z8ur|Q70->Sz8P%zxJ$3&JyeIDb@xsAEepZ*A{cLI0+q_=L6bTo+n)rV(5pTEiRc(z zbgJ-j-Ar)pA#Lp7)%Q|QAHK|)f3Q5ycl-Pum7+P`3iA&1>$?b?o}0Dy)nuU?_5dU9 zDmLKMnN2nL}15 zbn_l{P1{_}b2TBZ_ErZy{j$na|7>c;uwomB|EAa7K7-oMg+g~+69P`dWO2KUiQ)MR z2Spz#1Tjm4e@yZ`{?fvCWL09!;`#P+Y`-89hy?M~2+bWuvDPjd-)8X^tqNjcZ4pLI z@>QJl(jL*LF@_I!3yo?^vWF!0E2#kJXyB*c2I)!(AL|_+AC`2vCEiK(W?^r34;_zM zOfN?QS=GKj@e67|4D1+f^3xPMy0T@bXZ^1mQW|$b|5_t=5sWj^t^`TfD~vbI`cj*G<&CMm{`1m8=4Ogi-&kN<@qv+&=3 zpHCMBtWozsZ0ep}-XqOPp#`l;>EJ>1?3&Cme4;FoHUKZ|4DDXp#_skA7(e;3bPMP9 zFFsY-KJ>uj!@^+$B!>ehibO%nQ%Mh}4s~t3l}r>-^m1U5ZtOQ4b?Q4ay>=R?;)dS* z)~h{5jm%t%v#saK?XZaI=}APgD`oe*pQpaQp2WgR?$1jPe*f1h!S7daDh&ju(rT~J zpRD*@5x&0LA#}8lV3dg8>{|O~INb-x%>Zi^r?^}ypn%|1E2$xW8PVHuEFm^^^UMo5 zvH87&rgyYI&r3h;*xBDIm$t?q{#(m`7x$?{K0l{|k?H*o!{_K?hNFcsXIFPE${qE6 zHW=$Y2oHv`_-I~(r>r6)+X67;mLf8uzxtPltL`~2 zv3tu_Z8CJTH>W^j&3Weg_UO@J+4Ccg!2Squ6tHJ{wCP)CA3pDnEuMZ9nVBNVg3F)- zsEpUUN@Ks2u%C!a{fY-c1yVeaHMLX~UmB+8as8sbM;vN}bU6FUr`X8C?S=9Jafy+& zoEfxk1WQ4v7wF=muB~R%1oW=V?UdNHVfrXn%NWSXxeEkt@xBJYXh8k?SF0|=?WlXK)*?&2CvBQet123; zWdY1ayhFkjI91?~bG=Fx%N#@AZK$b|Nxzr-OO5CV@+3p|^xMfWPNy{I%nhRAhyUIW zZtM+&*%hW82|i8N`LNdFq46mAZtz#1fMk)lO^uY7mYjTg*R@XZO`E$IpF`0ReV^`&nJ7Gi+H#_N?y7y!tCxF!4>Z&QPEAv7t#w)c4%YsSReXB21I0T7q4D5xLPN=}mOHl^WC3^A zLTVg$21YqRQH_qM|CP3b>OW&q&A$x=(RK#@=3>=Et8duB+bpd(82(MG9z^X7BnyC- zNpjMwu~T4ze`(5r-UXa`anDP42E;^Jr6HQpLDJkI9Y}(UuJBxQ(fU20s=}IH6&0d# zzz$R4|0jmE-2dssWYY95{8KQh!trth12388LtuF#Ie-{&xy3i+;J@4s1&(8DvC+BO zw6Etu$?v!VoB-giKJpd!UU&FM#lx@!H8JEfS^l*i417sEg0;{`r= 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 7281fa6b..da063455 100644 --- a/src/libuv/include/uv.h +++ b/src/libuv/include/uv.h @@ -31,163 +31,168 @@ 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) -/* Building shared library. */ -#define UV_EXTERN __declspec(dllexport) -#elif defined(USING_UV_SHARED) -/* Using shared library. */ -#define UV_EXTERN __declspec(dllimport) + /* Windows - set up dll import/export decorators. */ +# if defined(BUILDING_UV_SHARED) + /* Building shared library. */ +# define UV_EXTERN __declspec(dllexport) +# elif defined(USING_UV_SHARED) + /* Using shared library. */ +# define UV_EXTERN __declspec(dllimport) +# else + /* Building static library. */ +# define UV_EXTERN /* nothing */ +# endif +#elif defined(__GNUC__) +# define UV_EXTERN __attribute__((visibility("default"))) #else -/* Building static library. */ -#define UV_EXTERN /* nothing */ -#endif -#elif __GNUC__ >= 4 -#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 */ +# define UV_EXTERN /* nothing */ #endif +#endif /* UV_EXTERN */ #include "uv/errno.h" #include "uv/version.h" #include #include - -#if defined(_MSC_VER) && _MSC_VER < 1600 -#include "uv/stdint-msvc2008.h" -#else #include -#endif +#include + +/* Internal type, do not use. */ +struct uv__queue { + struct uv__queue* next; + struct uv__queue* prev; +}; #if defined(_WIN32) -#include "uv/win.h" +# include "uv/win.h" #else -#include "uv/unix.h" +# include "uv/unix.h" #endif /* Expand this list if necessary. */ -#define UV_ERRNO_MAP(XX) \ - XX(E2BIG, "argument list too long") \ - XX(EACCES, "permission denied") \ - XX(EADDRINUSE, "address already in use") \ - XX(EADDRNOTAVAIL, "address not available") \ - XX(EAFNOSUPPORT, "address family not supported") \ - XX(EAGAIN, "resource temporarily unavailable") \ - XX(EAI_ADDRFAMILY, "address family not supported") \ - XX(EAI_AGAIN, "temporary failure") \ - XX(EAI_BADFLAGS, "bad ai_flags value") \ - XX(EAI_BADHINTS, "invalid value for hints") \ - XX(EAI_CANCELED, "request canceled") \ - XX(EAI_FAIL, "permanent failure") \ - XX(EAI_FAMILY, "ai_family not supported") \ - XX(EAI_MEMORY, "out of memory") \ - XX(EAI_NODATA, "no address") \ - XX(EAI_NONAME, "unknown node or service") \ - XX(EAI_OVERFLOW, "argument buffer overflow") \ - XX(EAI_PROTOCOL, "resolved protocol is unknown") \ - XX(EAI_SERVICE, "service not available for socket type") \ - XX(EAI_SOCKTYPE, "socket type not supported") \ - XX(EALREADY, "connection already in progress") \ - XX(EBADF, "bad file descriptor") \ - XX(EBUSY, "resource busy or locked") \ - XX(ECANCELED, "operation canceled") \ - XX(ECHARSET, "invalid Unicode character") \ - XX(ECONNABORTED, "software caused connection abort") \ - XX(ECONNREFUSED, "connection refused") \ - XX(ECONNRESET, "connection reset by peer") \ - XX(EDESTADDRREQ, "destination address required") \ - XX(EEXIST, "file already exists") \ - XX(EFAULT, "bad address in system call argument") \ - XX(EFBIG, "file too large") \ - XX(EHOSTUNREACH, "host is unreachable") \ - XX(EINTR, "interrupted system call") \ - XX(EINVAL, "invalid argument") \ - XX(EIO, "i/o error") \ - XX(EISCONN, "socket is already connected") \ - XX(EISDIR, "illegal operation on a directory") \ - XX(ELOOP, "too many symbolic links encountered") \ - XX(EMFILE, "too many open files") \ - XX(EMSGSIZE, "message too long") \ - XX(ENAMETOOLONG, "name too long") \ - XX(ENETDOWN, "network is down") \ - XX(ENETUNREACH, "network is unreachable") \ - XX(ENFILE, "file table overflow") \ - XX(ENOBUFS, "no buffer space available") \ - XX(ENODEV, "no such device") \ - XX(ENOENT, "no such file or directory") \ - XX(ENOMEM, "not enough memory") \ - XX(ENONET, "machine is not on the network") \ - XX(ENOPROTOOPT, "protocol not available") \ - XX(ENOSPC, "no space left on device") \ - XX(ENOSYS, "function not implemented") \ - XX(ENOTCONN, "socket is not connected") \ - XX(ENOTDIR, "not a directory") \ - XX(ENOTEMPTY, "directory not empty") \ - XX(ENOTSOCK, "socket operation on non-socket") \ - XX(ENOTSUP, "operation not supported on socket") \ - XX(EOVERFLOW, "value too large for defined data type") \ - XX(EPERM, "operation not permitted") \ - XX(EPIPE, "broken pipe") \ - XX(EPROTO, "protocol error") \ - XX(EPROTONOSUPPORT, "protocol not supported") \ - XX(EPROTOTYPE, "protocol wrong type for socket") \ - XX(ERANGE, "result too large") \ - XX(EROFS, "read-only file system") \ - XX(ESHUTDOWN, "cannot send after transport endpoint shutdown") \ - XX(ESPIPE, "invalid seek") \ - XX(ESRCH, "no such process") \ - XX(ETIMEDOUT, "connection timed out") \ - XX(ETXTBSY, "text file is busy") \ - XX(EXDEV, "cross-device link not permitted") \ - XX(UNKNOWN, "unknown error") \ - XX(EOF, "end of file") \ - XX(ENXIO, "no such device or address") \ - XX(EMLINK, "too many links") \ - XX(EHOSTDOWN, "host is down") \ - XX(EREMOTEIO, "remote I/O error") \ - XX(ENOTTY, "inappropriate ioctl for device") \ - XX(EFTYPE, "inappropriate file type or format") \ - XX(EILSEQ, "illegal byte sequence") \ - XX(ESOCKTNOSUPPORT, "socket type not supported") - -#define UV_HANDLE_TYPE_MAP(XX) \ - XX(ASYNC, async) \ - XX(CHECK, check) \ - XX(FS_EVENT, fs_event) \ - XX(FS_POLL, fs_poll) \ - XX(HANDLE, handle) \ - XX(IDLE, idle) \ - XX(NAMED_PIPE, pipe) \ - XX(POLL, poll) \ - XX(PREPARE, prepare) \ - XX(PROCESS, process) \ - XX(STREAM, stream) \ - XX(TCP, tcp) \ - XX(TIMER, timer) \ - XX(TTY, tty) \ - XX(UDP, udp) \ - XX(SIGNAL, signal) - -#define UV_REQ_TYPE_MAP(XX) \ - XX(REQ, req) \ - XX(CONNECT, connect) \ - XX(WRITE, write) \ - XX(SHUTDOWN, shutdown) \ - XX(UDP_SEND, udp_send) \ - XX(FS, fs) \ - XX(WORK, work) \ - XX(GETADDRINFO, getaddrinfo) \ - XX(GETNAMEINFO, getnameinfo) \ - XX(RANDOM, random) +#define UV_ERRNO_MAP(XX) \ + XX(E2BIG, "argument list too long") \ + XX(EACCES, "permission denied") \ + XX(EADDRINUSE, "address already in use") \ + XX(EADDRNOTAVAIL, "address not available") \ + XX(EAFNOSUPPORT, "address family not supported") \ + XX(EAGAIN, "resource temporarily unavailable") \ + XX(EAI_ADDRFAMILY, "address family not supported") \ + XX(EAI_AGAIN, "temporary failure") \ + XX(EAI_BADFLAGS, "bad ai_flags value") \ + XX(EAI_BADHINTS, "invalid value for hints") \ + XX(EAI_CANCELED, "request canceled") \ + XX(EAI_FAIL, "permanent failure") \ + XX(EAI_FAMILY, "ai_family not supported") \ + XX(EAI_MEMORY, "out of memory") \ + XX(EAI_NODATA, "no address") \ + XX(EAI_NONAME, "unknown node or service") \ + XX(EAI_OVERFLOW, "argument buffer overflow") \ + XX(EAI_PROTOCOL, "resolved protocol is unknown") \ + XX(EAI_SERVICE, "service not available for socket type") \ + XX(EAI_SOCKTYPE, "socket type not supported") \ + XX(EALREADY, "connection already in progress") \ + XX(EBADF, "bad file descriptor") \ + XX(EBUSY, "resource busy or locked") \ + XX(ECANCELED, "operation canceled") \ + XX(ECHARSET, "invalid Unicode character") \ + XX(ECONNABORTED, "software caused connection abort") \ + XX(ECONNREFUSED, "connection refused") \ + XX(ECONNRESET, "connection reset by peer") \ + XX(EDESTADDRREQ, "destination address required") \ + XX(EEXIST, "file already exists") \ + XX(EFAULT, "bad address in system call argument") \ + XX(EFBIG, "file too large") \ + XX(EHOSTUNREACH, "host is unreachable") \ + XX(EINTR, "interrupted system call") \ + XX(EINVAL, "invalid argument") \ + XX(EIO, "i/o error") \ + XX(EISCONN, "socket is already connected") \ + XX(EISDIR, "illegal operation on a directory") \ + XX(ELOOP, "too many symbolic links encountered") \ + XX(EMFILE, "too many open files") \ + XX(EMSGSIZE, "message too long") \ + XX(ENAMETOOLONG, "name too long") \ + XX(ENETDOWN, "network is down") \ + XX(ENETUNREACH, "network is unreachable") \ + XX(ENFILE, "file table overflow") \ + XX(ENOBUFS, "no buffer space available") \ + XX(ENODEV, "no such device") \ + XX(ENOENT, "no such file or directory") \ + XX(ENOMEM, "not enough memory") \ + XX(ENONET, "machine is not on the network") \ + XX(ENOPROTOOPT, "protocol not available") \ + XX(ENOSPC, "no space left on device") \ + XX(ENOSYS, "function not implemented") \ + XX(ENOTCONN, "socket is not connected") \ + XX(ENOTDIR, "not a directory") \ + XX(ENOTEMPTY, "directory not empty") \ + XX(ENOTSOCK, "socket operation on non-socket") \ + XX(ENOTSUP, "operation not supported on socket") \ + XX(EOVERFLOW, "value too large for defined data type") \ + XX(EPERM, "operation not permitted") \ + XX(EPIPE, "broken pipe") \ + XX(EPROTO, "protocol error") \ + XX(EPROTONOSUPPORT, "protocol not supported") \ + XX(EPROTOTYPE, "protocol wrong type for socket") \ + XX(ERANGE, "result too large") \ + XX(EROFS, "read-only file system") \ + XX(ESHUTDOWN, "cannot send after transport endpoint shutdown") \ + XX(ESPIPE, "invalid seek") \ + XX(ESRCH, "no such process") \ + XX(ETIMEDOUT, "connection timed out") \ + XX(ETXTBSY, "text file is busy") \ + XX(EXDEV, "cross-device link not permitted") \ + XX(UNKNOWN, "unknown error") \ + XX(EOF, "end of file") \ + XX(ENXIO, "no such device or address") \ + XX(EMLINK, "too many links") \ + XX(EHOSTDOWN, "host is down") \ + XX(EREMOTEIO, "remote I/O error") \ + XX(ENOTTY, "inappropriate ioctl for device") \ + 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) \ + XX(CHECK, check) \ + XX(FS_EVENT, fs_event) \ + XX(FS_POLL, fs_poll) \ + XX(HANDLE, handle) \ + XX(IDLE, idle) \ + XX(NAMED_PIPE, pipe) \ + XX(POLL, poll) \ + XX(PREPARE, prepare) \ + XX(PROCESS, process) \ + XX(STREAM, stream) \ + XX(TCP, tcp) \ + XX(TIMER, timer) \ + XX(TTY, tty) \ + XX(UDP, udp) \ + XX(SIGNAL, signal) \ + +#define UV_REQ_TYPE_MAP(XX) \ + XX(REQ, req) \ + XX(CONNECT, connect) \ + XX(WRITE, write) \ + XX(SHUTDOWN, shutdown) \ + XX(UDP_SEND, udp_send) \ + XX(FS, fs) \ + XX(WORK, work) \ + XX(GETADDRINFO, getaddrinfo) \ + XX(GETNAMEINFO, getnameinfo) \ + XX(RANDOM, random) \ typedef enum { -#define XX(code, _) UV_##code = UV__##code, +#define XX(code, _) UV_ ## code = UV__ ## code, UV_ERRNO_MAP(XX) #undef XX - UV_ERRNO_MAX = UV__EOF - 1 + UV_ERRNO_MAX = UV__EOF - 1 } uv_errno_t; typedef enum { @@ -195,7 +200,7 @@ typedef enum { #define XX(uc, lc) UV_##uc, UV_HANDLE_TYPE_MAP(XX) #undef XX - UV_FILE, + UV_FILE, UV_HANDLE_TYPE_MAX } uv_handle_type; @@ -204,9 +209,11 @@ typedef enum { #define XX(uc, lc) UV_##uc, UV_REQ_TYPE_MAP(XX) #undef XX - UV_REQ_TYPE_PRIVATE UV_REQ_TYPE_MAX + UV_REQ_TYPE_PRIVATE + UV_REQ_TYPE_MAX } uv_req_type; + /* Handle types. */ typedef struct uv_loop_s uv_loop_t; typedef struct uv_handle_s uv_handle_t; @@ -245,20 +252,33 @@ 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 enum { UV_LOOP_BLOCK_SIGNAL = 0, UV_METRICS_IDLE_TIME } uv_loop_option; +typedef struct uv_metrics_s uv_metrics_t; + +typedef enum { + UV_LOOP_BLOCK_SIGNAL = 0, + 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 { + UV_RUN_DEFAULT = 0, + UV_RUN_ONCE, + UV_RUN_NOWAIT +} uv_run_mode; -typedef enum { UV_RUN_DEFAULT = 0, UV_RUN_ONCE, UV_RUN_NOWAIT } uv_run_mode; UV_EXTERN unsigned int uv_version(void); -UV_EXTERN const char *uv_version_string(void); +UV_EXTERN const char* uv_version_string(void); -typedef void *(*uv_malloc_func)(size_t size); -typedef void *(*uv_realloc_func)(void *ptr, size_t size); -typedef void *(*uv_calloc_func)(size_t count, size_t size); -typedef void (*uv_free_func)(void *ptr); +typedef void* (*uv_malloc_func)(size_t size); +typedef void* (*uv_realloc_func)(void* ptr, size_t size); +typedef void* (*uv_calloc_func)(size_t count, size_t size); +typedef void (*uv_free_func)(void* ptr); UV_EXTERN void uv_library_shutdown(void); @@ -267,72 +287,100 @@ UV_EXTERN int uv_replace_allocator(uv_malloc_func malloc_func, uv_calloc_func calloc_func, uv_free_func free_func); -UV_EXTERN uv_loop_t *uv_default_loop(void); -UV_EXTERN int uv_loop_init(uv_loop_t *loop); -UV_EXTERN int uv_loop_close(uv_loop_t *loop); +UV_EXTERN uv_loop_t* uv_default_loop(void); +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); +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 *); +UV_EXTERN void uv_loop_delete(uv_loop_t*); UV_EXTERN size_t uv_loop_size(void); -UV_EXTERN int uv_loop_alive(const uv_loop_t *loop); -UV_EXTERN int uv_loop_configure(uv_loop_t *loop, uv_loop_option option, ...); -UV_EXTERN int uv_loop_fork(uv_loop_t *loop); - -UV_EXTERN int uv_run(uv_loop_t *, uv_run_mode mode); -UV_EXTERN void uv_stop(uv_loop_t *); - -UV_EXTERN void uv_ref(uv_handle_t *); -UV_EXTERN void uv_unref(uv_handle_t *); -UV_EXTERN int uv_has_ref(const uv_handle_t *); - -UV_EXTERN void uv_update_time(uv_loop_t *); -UV_EXTERN uint64_t uv_now(const uv_loop_t *); - -UV_EXTERN int uv_backend_fd(const uv_loop_t *); -UV_EXTERN int uv_backend_timeout(const uv_loop_t *); - -typedef void (*uv_alloc_cb)(uv_handle_t *handle, size_t suggested_size, - uv_buf_t *buf); -typedef void (*uv_read_cb)(uv_stream_t *stream, ssize_t nread, - const uv_buf_t *buf); -typedef void (*uv_write_cb)(uv_write_t *req, int status); -typedef void (*uv_connect_cb)(uv_connect_t *req, int status); -typedef void (*uv_shutdown_cb)(uv_shutdown_t *req, int status); -typedef void (*uv_connection_cb)(uv_stream_t *server, int status); -typedef void (*uv_close_cb)(uv_handle_t *handle); -typedef void (*uv_poll_cb)(uv_poll_t *handle, int status, int events); -typedef void (*uv_timer_cb)(uv_timer_t *handle); -typedef void (*uv_async_cb)(uv_async_t *handle); -typedef void (*uv_prepare_cb)(uv_prepare_t *handle); -typedef void (*uv_check_cb)(uv_check_t *handle); -typedef void (*uv_idle_cb)(uv_idle_t *handle); -typedef void (*uv_exit_cb)(uv_process_t *, int64_t exit_status, - int term_signal); -typedef void (*uv_walk_cb)(uv_handle_t *handle, void *arg); -typedef void (*uv_fs_cb)(uv_fs_t *req); -typedef void (*uv_work_cb)(uv_work_t *req); -typedef void (*uv_after_work_cb)(uv_work_t *req, int status); -typedef void (*uv_getaddrinfo_cb)(uv_getaddrinfo_t *req, int status, - struct addrinfo *res); -typedef void (*uv_getnameinfo_cb)(uv_getnameinfo_t *req, int status, - const char *hostname, const char *service); -typedef void (*uv_random_cb)(uv_random_t *req, int status, void *buf, +UV_EXTERN int uv_loop_alive(const uv_loop_t* loop); +UV_EXTERN int uv_loop_configure(uv_loop_t* loop, uv_loop_option option, ...); +UV_EXTERN int uv_loop_fork(uv_loop_t* loop); + +UV_EXTERN int uv_run(uv_loop_t*, uv_run_mode mode); +UV_EXTERN void uv_stop(uv_loop_t*); + +UV_EXTERN void uv_ref(uv_handle_t*); +UV_EXTERN void uv_unref(uv_handle_t*); +UV_EXTERN int uv_has_ref(const uv_handle_t*); + +UV_EXTERN void uv_update_time(uv_loop_t*); +UV_EXTERN uint64_t uv_now(const uv_loop_t*); + +UV_EXTERN int uv_backend_fd(const uv_loop_t*); +UV_EXTERN int uv_backend_timeout(const uv_loop_t*); + +typedef void (*uv_alloc_cb)(uv_handle_t* handle, + size_t suggested_size, + uv_buf_t* buf); +typedef void (*uv_read_cb)(uv_stream_t* stream, + ssize_t nread, + const uv_buf_t* buf); +typedef void (*uv_write_cb)(uv_write_t* req, int status); +typedef void (*uv_connect_cb)(uv_connect_t* req, int status); +typedef void (*uv_shutdown_cb)(uv_shutdown_t* req, int status); +typedef void (*uv_connection_cb)(uv_stream_t* server, int status); +typedef void (*uv_close_cb)(uv_handle_t* handle); +typedef void (*uv_poll_cb)(uv_poll_t* handle, int status, int events); +typedef void (*uv_timer_cb)(uv_timer_t* handle); +typedef void (*uv_async_cb)(uv_async_t* handle); +typedef void (*uv_prepare_cb)(uv_prepare_t* handle); +typedef void (*uv_check_cb)(uv_check_t* handle); +typedef void (*uv_idle_cb)(uv_idle_t* handle); +typedef void (*uv_exit_cb)(uv_process_t*, int64_t exit_status, int term_signal); +typedef void (*uv_walk_cb)(uv_handle_t* handle, void* arg); +typedef void (*uv_fs_cb)(uv_fs_t* req); +typedef void (*uv_work_cb)(uv_work_t* req); +typedef void (*uv_after_work_cb)(uv_work_t* req, int status); +typedef void (*uv_getaddrinfo_cb)(uv_getaddrinfo_t* req, + int status, + struct addrinfo* res); +typedef void (*uv_getnameinfo_cb)(uv_getnameinfo_t* req, + int status, + const char* hostname, + const char* service); +typedef void (*uv_random_cb)(uv_random_t* req, + int status, + 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; uint64_t st_mode; @@ -352,65 +400,80 @@ typedef struct { uv_timespec_t st_birthtim; } uv_stat_t; -typedef void (*uv_fs_event_cb)(uv_fs_event_t *handle, const char *filename, - int events, int status); -typedef void (*uv_fs_poll_cb)(uv_fs_poll_t *handle, int status, - const uv_stat_t *prev, const uv_stat_t *curr); +typedef void (*uv_fs_event_cb)(uv_fs_event_t* handle, + const char* filename, + int events, + int status); + +typedef void (*uv_fs_poll_cb)(uv_fs_poll_t* handle, + int status, + const uv_stat_t* prev, + const uv_stat_t* curr); + +typedef void (*uv_signal_cb)(uv_signal_t* handle, int signum); + -typedef void (*uv_signal_cb)(uv_signal_t *handle, int signum); +typedef enum { + UV_LEAVE_GROUP = 0, + UV_JOIN_GROUP +} uv_membership; -typedef enum { UV_LEAVE_GROUP = 0, UV_JOIN_GROUP } uv_membership; UV_EXTERN int uv_translate_sys_error(int sys_errno); -UV_EXTERN const char *uv_strerror(int err); -UV_EXTERN char *uv_strerror_r(int err, char *buf, size_t buflen); +UV_EXTERN const char* uv_strerror(int err); +UV_EXTERN char* uv_strerror_r(int err, char* buf, size_t buflen); + +UV_EXTERN const char* uv_err_name(int err); +UV_EXTERN char* uv_err_name_r(int err, char* buf, size_t buflen); -UV_EXTERN const char *uv_err_name(int err); -UV_EXTERN char *uv_err_name_r(int err, char *buf, size_t buflen); -#define UV_REQ_FIELDS \ - /* public */ \ - void *data; \ - /* read-only */ \ - uv_req_type type; \ - /* private */ \ - void *reserved[6]; \ - UV_REQ_PRIVATE_FIELDS +#define UV_REQ_FIELDS \ + /* public */ \ + void* data; \ + /* read-only */ \ + uv_req_type type; \ + /* private */ \ + void* reserved[6]; \ + UV_REQ_PRIVATE_FIELDS \ /* Abstract base class of all requests. */ struct uv_req_s { UV_REQ_FIELDS }; + /* Platform-specific request types. */ UV_PRIVATE_REQ_TYPES -UV_EXTERN int uv_shutdown(uv_shutdown_t *req, uv_stream_t *handle, + +UV_EXTERN int uv_shutdown(uv_shutdown_t* req, + uv_stream_t* handle, uv_shutdown_cb cb); struct uv_shutdown_s { UV_REQ_FIELDS - uv_stream_t *handle; + uv_stream_t* handle; uv_shutdown_cb cb; UV_SHUTDOWN_PRIVATE_FIELDS }; -#define UV_HANDLE_FIELDS \ - /* public */ \ - void *data; \ - /* read-only */ \ - uv_loop_t *loop; \ - uv_handle_type type; \ - /* private */ \ - uv_close_cb close_cb; \ - void *handle_queue[2]; \ - union { \ - int fd; \ - void *reserved[4]; \ - } u; \ - UV_HANDLE_PRIVATE_FIELDS + +#define UV_HANDLE_FIELDS \ + /* public */ \ + void* data; \ + /* read-only */ \ + uv_loop_t* loop; \ + uv_handle_type type; \ + /* private */ \ + uv_close_cb close_cb; \ + struct uv__queue handle_queue; \ + union { \ + int fd; \ + void* reserved[4]; \ + } u; \ + UV_HANDLE_PRIVATE_FIELDS \ /* The abstract base class of all handles. */ struct uv_handle_s { @@ -418,46 +481,48 @@ struct uv_handle_s { }; UV_EXTERN size_t uv_handle_size(uv_handle_type type); -UV_EXTERN uv_handle_type uv_handle_get_type(const uv_handle_t *handle); -UV_EXTERN const char *uv_handle_type_name(uv_handle_type type); -UV_EXTERN void *uv_handle_get_data(const uv_handle_t *handle); -UV_EXTERN uv_loop_t *uv_handle_get_loop(const uv_handle_t *handle); -UV_EXTERN void uv_handle_set_data(uv_handle_t *handle, void *data); +UV_EXTERN uv_handle_type uv_handle_get_type(const uv_handle_t* handle); +UV_EXTERN const char* uv_handle_type_name(uv_handle_type type); +UV_EXTERN void* uv_handle_get_data(const uv_handle_t* handle); +UV_EXTERN uv_loop_t* uv_handle_get_loop(const uv_handle_t* handle); +UV_EXTERN void uv_handle_set_data(uv_handle_t* handle, void* data); UV_EXTERN size_t uv_req_size(uv_req_type type); -UV_EXTERN void *uv_req_get_data(const uv_req_t *req); -UV_EXTERN void uv_req_set_data(uv_req_t *req, void *data); -UV_EXTERN uv_req_type uv_req_get_type(const uv_req_t *req); -UV_EXTERN const char *uv_req_type_name(uv_req_type type); +UV_EXTERN void* uv_req_get_data(const uv_req_t* req); +UV_EXTERN void uv_req_set_data(uv_req_t* req, void* data); +UV_EXTERN uv_req_type uv_req_get_type(const uv_req_t* req); +UV_EXTERN const char* uv_req_type_name(uv_req_type type); -UV_EXTERN int uv_is_active(const uv_handle_t *handle); +UV_EXTERN int uv_is_active(const uv_handle_t* handle); -UV_EXTERN void uv_walk(uv_loop_t *loop, uv_walk_cb walk_cb, void *arg); +UV_EXTERN void uv_walk(uv_loop_t* loop, uv_walk_cb walk_cb, void* arg); /* Helpers for ad hoc debugging, no API/ABI stability guaranteed. */ -UV_EXTERN void uv_print_all_handles(uv_loop_t *loop, FILE *stream); -UV_EXTERN void uv_print_active_handles(uv_loop_t *loop, FILE *stream); +UV_EXTERN void uv_print_all_handles(uv_loop_t* loop, FILE* stream); +UV_EXTERN void uv_print_active_handles(uv_loop_t* loop, FILE* stream); -UV_EXTERN void uv_close(uv_handle_t *handle, uv_close_cb close_cb); +UV_EXTERN void uv_close(uv_handle_t* handle, uv_close_cb close_cb); -UV_EXTERN int uv_send_buffer_size(uv_handle_t *handle, int *value); -UV_EXTERN int uv_recv_buffer_size(uv_handle_t *handle, int *value); +UV_EXTERN int uv_send_buffer_size(uv_handle_t* handle, int* value); +UV_EXTERN int uv_recv_buffer_size(uv_handle_t* handle, int* value); -UV_EXTERN int uv_fileno(const uv_handle_t *handle, uv_os_fd_t *fd); +UV_EXTERN int uv_fileno(const uv_handle_t* handle, uv_os_fd_t* fd); -UV_EXTERN uv_buf_t uv_buf_init(char *base, unsigned int len); +UV_EXTERN uv_buf_t uv_buf_init(char* base, unsigned int len); UV_EXTERN int uv_pipe(uv_file fds[2], int read_flags, int write_flags); -UV_EXTERN int uv_socketpair(int type, int protocol, - uv_os_sock_t socket_vector[2], int flags0, +UV_EXTERN int uv_socketpair(int type, + int protocol, + uv_os_sock_t socket_vector[2], + int flags0, int flags1); -#define UV_STREAM_FIELDS \ - /* number of bytes queued for writing */ \ - size_t write_queue_size; \ - uv_alloc_cb alloc_cb; \ - uv_read_cb read_cb; \ - /* private */ \ +#define UV_STREAM_FIELDS \ + /* number of bytes queued for writing */ \ + size_t write_queue_size; \ + uv_alloc_cb alloc_cb; \ + uv_read_cb read_cb; \ + /* private */ \ UV_STREAM_PRIVATE_FIELDS /* @@ -472,41 +537,52 @@ struct uv_stream_s { UV_STREAM_FIELDS }; -UV_EXTERN size_t uv_stream_get_write_queue_size(const uv_stream_t *stream); +UV_EXTERN size_t uv_stream_get_write_queue_size(const uv_stream_t* stream); -UV_EXTERN int uv_listen(uv_stream_t *stream, int backlog, uv_connection_cb cb); -UV_EXTERN int uv_accept(uv_stream_t *server, uv_stream_t *client); +UV_EXTERN int uv_listen(uv_stream_t* stream, int backlog, uv_connection_cb cb); +UV_EXTERN int uv_accept(uv_stream_t* server, uv_stream_t* client); -UV_EXTERN int uv_read_start(uv_stream_t *, uv_alloc_cb alloc_cb, +UV_EXTERN int uv_read_start(uv_stream_t*, + uv_alloc_cb alloc_cb, uv_read_cb read_cb); -UV_EXTERN int uv_read_stop(uv_stream_t *); +UV_EXTERN int uv_read_stop(uv_stream_t*); -UV_EXTERN int uv_write(uv_write_t *req, uv_stream_t *handle, - const uv_buf_t bufs[], unsigned int nbufs, +UV_EXTERN int uv_write(uv_write_t* req, + uv_stream_t* handle, + const uv_buf_t bufs[], + unsigned int nbufs, uv_write_cb cb); -UV_EXTERN int uv_write2(uv_write_t *req, uv_stream_t *handle, - const uv_buf_t bufs[], unsigned int nbufs, - uv_stream_t *send_handle, uv_write_cb cb); -UV_EXTERN int uv_try_write(uv_stream_t *handle, const uv_buf_t bufs[], +UV_EXTERN int uv_write2(uv_write_t* req, + uv_stream_t* handle, + const uv_buf_t bufs[], + unsigned int nbufs, + uv_stream_t* send_handle, + uv_write_cb cb); +UV_EXTERN int uv_try_write(uv_stream_t* handle, + const uv_buf_t bufs[], unsigned int nbufs); -UV_EXTERN int uv_try_write2(uv_stream_t *handle, const uv_buf_t bufs[], - unsigned int nbufs, uv_stream_t *send_handle); +UV_EXTERN int uv_try_write2(uv_stream_t* handle, + const uv_buf_t bufs[], + unsigned int nbufs, + uv_stream_t* send_handle); /* uv_write_t is a subclass of uv_req_t. */ struct uv_write_s { UV_REQ_FIELDS uv_write_cb cb; - uv_stream_t *send_handle; /* TODO: make private and unix-only in v2.x. */ - uv_stream_t *handle; + uv_stream_t* send_handle; /* TODO: make private and unix-only in v2.x. */ + uv_stream_t* handle; UV_WRITE_PRIVATE_FIELDS }; -UV_EXTERN int uv_is_readable(const uv_stream_t *handle); -UV_EXTERN int uv_is_writable(const uv_stream_t *handle); -UV_EXTERN int uv_stream_set_blocking(uv_stream_t *handle, int blocking); +UV_EXTERN int uv_is_readable(const uv_stream_t* handle); +UV_EXTERN int uv_is_writable(const uv_stream_t* handle); + +UV_EXTERN int uv_stream_set_blocking(uv_stream_t* handle, int blocking); + +UV_EXTERN int uv_is_closing(const uv_handle_t* handle); -UV_EXTERN int uv_is_closing(const uv_handle_t *handle); /* * uv_tcp_t is a subclass of uv_stream_t. @@ -519,37 +595,60 @@ struct uv_tcp_s { UV_TCP_PRIVATE_FIELDS }; -UV_EXTERN int uv_tcp_init(uv_loop_t *, uv_tcp_t *handle); -UV_EXTERN int uv_tcp_init_ex(uv_loop_t *, uv_tcp_t *handle, unsigned int flags); -UV_EXTERN int uv_tcp_open(uv_tcp_t *handle, uv_os_sock_t sock); -UV_EXTERN int uv_tcp_nodelay(uv_tcp_t *handle, int enable); -UV_EXTERN int uv_tcp_keepalive(uv_tcp_t *handle, int enable, +UV_EXTERN int uv_tcp_init(uv_loop_t*, uv_tcp_t* handle); +UV_EXTERN int uv_tcp_init_ex(uv_loop_t*, uv_tcp_t* handle, unsigned int flags); +UV_EXTERN int uv_tcp_open(uv_tcp_t* handle, uv_os_sock_t sock); +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_simultaneous_accepts(uv_tcp_t *handle, int enable); +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, const struct sockaddr *addr, +UV_EXTERN int uv_tcp_bind(uv_tcp_t* handle, + const struct sockaddr* addr, unsigned int flags); -UV_EXTERN int uv_tcp_getsockname(const uv_tcp_t *handle, struct sockaddr *name, - int *namelen); -UV_EXTERN int uv_tcp_getpeername(const uv_tcp_t *handle, struct sockaddr *name, - int *namelen); -UV_EXTERN int uv_tcp_close_reset(uv_tcp_t *handle, uv_close_cb close_cb); -UV_EXTERN int uv_tcp_connect(uv_connect_t *req, uv_tcp_t *handle, - const struct sockaddr *addr, uv_connect_cb cb); +UV_EXTERN int uv_tcp_getsockname(const uv_tcp_t* handle, + struct sockaddr* name, + int* namelen); +UV_EXTERN int uv_tcp_getpeername(const uv_tcp_t* handle, + struct sockaddr* name, + int* namelen); +UV_EXTERN int uv_tcp_close_reset(uv_tcp_t* handle, uv_close_cb close_cb); +UV_EXTERN int uv_tcp_connect(uv_connect_t* req, + uv_tcp_t* handle, + const struct sockaddr* addr, + uv_connect_cb cb); /* uv_connect_t is a subclass of uv_req_t. */ struct uv_connect_s { UV_REQ_FIELDS uv_connect_cb cb; - uv_stream_t *handle; + uv_stream_t* handle; UV_CONNECT_PRIVATE_FIELDS }; + /* * UDP support. */ @@ -564,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, @@ -590,15 +692,29 @@ 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. */ UV_UDP_RECVMMSG = 256 }; -typedef void (*uv_udp_send_cb)(uv_udp_send_t *req, int status); -typedef void (*uv_udp_recv_cb)(uv_udp_t *handle, ssize_t nread, - const uv_buf_t *buf, const struct sockaddr *addr, +typedef void (*uv_udp_send_cb)(uv_udp_send_t* req, int status); +typedef void (*uv_udp_recv_cb)(uv_udp_t* handle, + ssize_t nread, + const uv_buf_t* buf, + const struct sockaddr* addr, unsigned flags); /* uv_udp_t is a subclass of uv_handle_t. */ @@ -620,48 +736,67 @@ struct uv_udp_s { /* uv_udp_send_t is a subclass of uv_req_t. */ struct uv_udp_send_s { UV_REQ_FIELDS - uv_udp_t *handle; + uv_udp_t* handle; uv_udp_send_cb cb; UV_UDP_SEND_PRIVATE_FIELDS }; -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_bind(uv_udp_t *handle, const struct sockaddr *addr, +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); -UV_EXTERN int uv_udp_connect(uv_udp_t *handle, const struct sockaddr *addr); - -UV_EXTERN int uv_udp_getpeername(const uv_udp_t *handle, struct sockaddr *name, - int *namelen); -UV_EXTERN int uv_udp_getsockname(const uv_udp_t *handle, struct sockaddr *name, - int *namelen); -UV_EXTERN int uv_udp_set_membership(uv_udp_t *handle, - const char *multicast_addr, - const char *interface_addr, +UV_EXTERN int uv_udp_connect(uv_udp_t* handle, const struct sockaddr* addr); + +UV_EXTERN int uv_udp_getpeername(const uv_udp_t* handle, + struct sockaddr* name, + int* namelen); +UV_EXTERN int uv_udp_getsockname(const uv_udp_t* handle, + struct sockaddr* name, + int* namelen); +UV_EXTERN int uv_udp_set_membership(uv_udp_t* handle, + const char* multicast_addr, + const char* interface_addr, uv_membership membership); -UV_EXTERN int uv_udp_set_source_membership(uv_udp_t *handle, - const char *multicast_addr, - const char *interface_addr, - const char *source_addr, +UV_EXTERN int uv_udp_set_source_membership(uv_udp_t* handle, + const char* multicast_addr, + const char* interface_addr, + const char* source_addr, uv_membership membership); -UV_EXTERN int uv_udp_set_multicast_loop(uv_udp_t *handle, int on); -UV_EXTERN int uv_udp_set_multicast_ttl(uv_udp_t *handle, int ttl); -UV_EXTERN int uv_udp_set_multicast_interface(uv_udp_t *handle, - const char *interface_addr); -UV_EXTERN int uv_udp_set_broadcast(uv_udp_t *handle, int on); -UV_EXTERN int uv_udp_set_ttl(uv_udp_t *handle, int ttl); -UV_EXTERN int uv_udp_send(uv_udp_send_t *req, uv_udp_t *handle, - const uv_buf_t bufs[], unsigned int nbufs, - const struct sockaddr *addr, uv_udp_send_cb send_cb); -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_recv_start(uv_udp_t *handle, uv_alloc_cb alloc_cb, +UV_EXTERN int uv_udp_set_multicast_loop(uv_udp_t* handle, int on); +UV_EXTERN int uv_udp_set_multicast_ttl(uv_udp_t* handle, int ttl); +UV_EXTERN int uv_udp_set_multicast_interface(uv_udp_t* handle, + const char* interface_addr); +UV_EXTERN int uv_udp_set_broadcast(uv_udp_t* handle, int on); +UV_EXTERN int uv_udp_set_ttl(uv_udp_t* handle, int ttl); +UV_EXTERN int uv_udp_send(uv_udp_send_t* req, + uv_udp_t* handle, + const uv_buf_t bufs[], + unsigned int nbufs, + const struct sockaddr* addr, + uv_udp_send_cb send_cb); +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); -UV_EXTERN int uv_udp_using_recvmmsg(const uv_udp_t *handle); -UV_EXTERN int uv_udp_recv_stop(uv_udp_t *handle); -UV_EXTERN size_t uv_udp_get_send_queue_size(const uv_udp_t *handle); -UV_EXTERN size_t uv_udp_get_send_queue_count(const uv_udp_t *handle); +UV_EXTERN int uv_udp_using_recvmmsg(const uv_udp_t* handle); +UV_EXTERN int uv_udp_recv_stop(uv_udp_t* handle); +UV_EXTERN size_t uv_udp_get_send_queue_size(const uv_udp_t* handle); +UV_EXTERN size_t uv_udp_get_send_queue_count(const uv_udp_t* handle); + /* * uv_tty_t is a subclass of uv_stream_t. @@ -677,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 { @@ -695,24 +835,30 @@ typedef enum { UV_TTY_UNSUPPORTED } uv_tty_vtermstate_t; -UV_EXTERN int uv_tty_init(uv_loop_t *, uv_tty_t *, uv_file fd, int readable); -UV_EXTERN int uv_tty_set_mode(uv_tty_t *, uv_tty_mode_t mode); + +UV_EXTERN int uv_tty_init(uv_loop_t*, uv_tty_t*, uv_file fd, int readable); +UV_EXTERN int uv_tty_set_mode(uv_tty_t*, uv_tty_mode_t mode); UV_EXTERN int uv_tty_reset_mode(void); -UV_EXTERN int uv_tty_get_winsize(uv_tty_t *, int *width, int *height); +UV_EXTERN int uv_tty_get_winsize(uv_tty_t*, int* width, int* height); UV_EXTERN void uv_tty_set_vterm_state(uv_tty_vtermstate_t state); -UV_EXTERN int uv_tty_get_vterm_state(uv_tty_vtermstate_t *state); +UV_EXTERN int uv_tty_get_vterm_state(uv_tty_vtermstate_t* state); #ifdef __cplusplus extern "C++" { -inline int uv_tty_set_mode(uv_tty_t *handle, int mode) { +inline int uv_tty_set_mode(uv_tty_t* handle, int mode) { return uv_tty_set_mode(handle, static_cast(mode)); } + } #endif 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. * @@ -726,19 +872,34 @@ struct uv_pipe_s { UV_PIPE_PRIVATE_FIELDS }; -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 void uv_pipe_connect(uv_connect_t *req, uv_pipe_t *handle, - const char *name, uv_connect_cb cb); -UV_EXTERN int uv_pipe_getsockname(const uv_pipe_t *handle, char *buffer, - size_t *size); -UV_EXTERN int uv_pipe_getpeername(const uv_pipe_t *handle, char *buffer, - size_t *size); -UV_EXTERN void uv_pipe_pending_instances(uv_pipe_t *handle, int count); -UV_EXTERN int uv_pipe_pending_count(uv_pipe_t *handle); -UV_EXTERN uv_handle_type uv_pipe_pending_type(uv_pipe_t *handle); -UV_EXTERN int uv_pipe_chmod(uv_pipe_t *handle, int flags); +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); +UV_EXTERN int uv_pipe_getpeername(const uv_pipe_t* handle, + char* buffer, + size_t* size); +UV_EXTERN void uv_pipe_pending_instances(uv_pipe_t* handle, int count); +UV_EXTERN int uv_pipe_pending_count(uv_pipe_t* handle); +UV_EXTERN uv_handle_type uv_pipe_pending_type(uv_pipe_t* handle); +UV_EXTERN int uv_pipe_chmod(uv_pipe_t* handle, int flags); + struct uv_poll_s { UV_HANDLE_FIELDS @@ -753,47 +914,54 @@ enum uv_poll_event { UV_PRIORITIZED = 8 }; -UV_EXTERN int uv_poll_init(uv_loop_t *loop, uv_poll_t *handle, int fd); -UV_EXTERN int uv_poll_init_socket(uv_loop_t *loop, uv_poll_t *handle, +UV_EXTERN int uv_poll_init(uv_loop_t* loop, uv_poll_t* handle, int fd); +UV_EXTERN int uv_poll_init_socket(uv_loop_t* loop, + uv_poll_t* handle, uv_os_sock_t socket); -UV_EXTERN int uv_poll_start(uv_poll_t *handle, int events, uv_poll_cb cb); -UV_EXTERN int uv_poll_stop(uv_poll_t *handle); +UV_EXTERN int uv_poll_start(uv_poll_t* handle, int events, uv_poll_cb cb); +UV_EXTERN int uv_poll_stop(uv_poll_t* handle); + struct uv_prepare_s { UV_HANDLE_FIELDS UV_PREPARE_PRIVATE_FIELDS }; -UV_EXTERN int uv_prepare_init(uv_loop_t *, uv_prepare_t *prepare); -UV_EXTERN int uv_prepare_start(uv_prepare_t *prepare, uv_prepare_cb cb); -UV_EXTERN int uv_prepare_stop(uv_prepare_t *prepare); +UV_EXTERN int uv_prepare_init(uv_loop_t*, uv_prepare_t* prepare); +UV_EXTERN int uv_prepare_start(uv_prepare_t* prepare, uv_prepare_cb cb); +UV_EXTERN int uv_prepare_stop(uv_prepare_t* prepare); + struct uv_check_s { UV_HANDLE_FIELDS UV_CHECK_PRIVATE_FIELDS }; -UV_EXTERN int uv_check_init(uv_loop_t *, uv_check_t *check); -UV_EXTERN int uv_check_start(uv_check_t *check, uv_check_cb cb); -UV_EXTERN int uv_check_stop(uv_check_t *check); +UV_EXTERN int uv_check_init(uv_loop_t*, uv_check_t* check); +UV_EXTERN int uv_check_start(uv_check_t* check, uv_check_cb cb); +UV_EXTERN int uv_check_stop(uv_check_t* check); + struct uv_idle_s { UV_HANDLE_FIELDS UV_IDLE_PRIVATE_FIELDS }; -UV_EXTERN int uv_idle_init(uv_loop_t *, uv_idle_t *idle); -UV_EXTERN int uv_idle_start(uv_idle_t *idle, uv_idle_cb cb); -UV_EXTERN int uv_idle_stop(uv_idle_t *idle); +UV_EXTERN int uv_idle_init(uv_loop_t*, uv_idle_t* idle); +UV_EXTERN int uv_idle_start(uv_idle_t* idle, uv_idle_cb cb); +UV_EXTERN int uv_idle_stop(uv_idle_t* idle); + struct uv_async_s { UV_HANDLE_FIELDS UV_ASYNC_PRIVATE_FIELDS }; -UV_EXTERN int uv_async_init(uv_loop_t *, uv_async_t *async, +UV_EXTERN int uv_async_init(uv_loop_t*, + uv_async_t* async, uv_async_cb async_cb); -UV_EXTERN int uv_async_send(uv_async_t *async); +UV_EXTERN int uv_async_send(uv_async_t* async); + /* * uv_timer_t is a subclass of uv_handle_t. @@ -805,14 +973,17 @@ struct uv_timer_s { UV_TIMER_PRIVATE_FIELDS }; -UV_EXTERN int uv_timer_init(uv_loop_t *, uv_timer_t *handle); -UV_EXTERN int uv_timer_start(uv_timer_t *handle, uv_timer_cb cb, - uint64_t timeout, uint64_t repeat); -UV_EXTERN int uv_timer_stop(uv_timer_t *handle); -UV_EXTERN int uv_timer_again(uv_timer_t *handle); -UV_EXTERN void uv_timer_set_repeat(uv_timer_t *handle, uint64_t repeat); -UV_EXTERN uint64_t uv_timer_get_repeat(const uv_timer_t *handle); -UV_EXTERN uint64_t uv_timer_get_due_in(const uv_timer_t *handle); +UV_EXTERN int uv_timer_init(uv_loop_t*, uv_timer_t* handle); +UV_EXTERN int uv_timer_start(uv_timer_t* handle, + uv_timer_cb cb, + uint64_t timeout, + uint64_t repeat); +UV_EXTERN int uv_timer_stop(uv_timer_t* handle); +UV_EXTERN int uv_timer_again(uv_timer_t* handle); +UV_EXTERN void uv_timer_set_repeat(uv_timer_t* handle, uint64_t repeat); +UV_EXTERN uint64_t uv_timer_get_repeat(const uv_timer_t* handle); +UV_EXTERN uint64_t uv_timer_get_due_in(const uv_timer_t* handle); + /* * uv_getaddrinfo_t is a subclass of uv_req_t. @@ -822,38 +993,46 @@ UV_EXTERN uint64_t uv_timer_get_due_in(const uv_timer_t *handle); struct uv_getaddrinfo_s { UV_REQ_FIELDS /* read-only */ - uv_loop_t *loop; + uv_loop_t* loop; /* struct addrinfo* addrinfo is marked as private, but it really isn't. */ UV_GETADDRINFO_PRIVATE_FIELDS }; -UV_EXTERN int uv_getaddrinfo(uv_loop_t *loop, uv_getaddrinfo_t *req, - uv_getaddrinfo_cb getaddrinfo_cb, const char *node, - const char *service, const struct addrinfo *hints); -UV_EXTERN void uv_freeaddrinfo(struct addrinfo *ai); + +UV_EXTERN int uv_getaddrinfo(uv_loop_t* loop, + uv_getaddrinfo_t* req, + uv_getaddrinfo_cb getaddrinfo_cb, + const char* node, + const char* service, + const struct addrinfo* hints); +UV_EXTERN void uv_freeaddrinfo(struct addrinfo* ai); + /* - * uv_getnameinfo_t is a subclass of uv_req_t. - * - * Request object for uv_getnameinfo. - */ +* uv_getnameinfo_t is a subclass of uv_req_t. +* +* Request object for uv_getnameinfo. +*/ struct uv_getnameinfo_s { UV_REQ_FIELDS /* read-only */ - uv_loop_t *loop; + uv_loop_t* loop; /* host and service are marked as private, but they really aren't. */ UV_GETNAMEINFO_PRIVATE_FIELDS }; -UV_EXTERN int uv_getnameinfo(uv_loop_t *loop, uv_getnameinfo_t *req, +UV_EXTERN int uv_getnameinfo(uv_loop_t* loop, + uv_getnameinfo_t* req, uv_getnameinfo_cb getnameinfo_cb, - const struct sockaddr *addr, int flags); + const struct sockaddr* addr, + int flags); + /* uv_spawn() options. */ typedef enum { - UV_IGNORE = 0x00, - UV_CREATE_PIPE = 0x01, - UV_INHERIT_FD = 0x02, + UV_IGNORE = 0x00, + UV_CREATE_PIPE = 0x01, + UV_INHERIT_FD = 0x02, UV_INHERIT_STREAM = 0x04, /* @@ -861,8 +1040,8 @@ typedef enum { * determine the direction of flow, from the child process' perspective. Both * flags may be specified to create a duplex data stream. */ - UV_READABLE_PIPE = 0x10, - UV_WRITABLE_PIPE = 0x20, + UV_READABLE_PIPE = 0x10, + UV_WRITABLE_PIPE = 0x20, /* * When UV_CREATE_PIPE is specified, specifying UV_NONBLOCK_PIPE opens the @@ -870,7 +1049,7 @@ typedef enum { * if the child is not designed to handle to encounter this mode, * but can also be significantly more efficient. */ - UV_NONBLOCK_PIPE = 0x40, + UV_NONBLOCK_PIPE = 0x40, UV_OVERLAPPED_PIPE = 0x40 /* old name, for compatibility */ } uv_stdio_flags; @@ -878,31 +1057,31 @@ typedef struct uv_stdio_container_s { uv_stdio_flags flags; union { - uv_stream_t *stream; + uv_stream_t* stream; int fd; } data; } uv_stdio_container_t; typedef struct uv_process_options_s { uv_exit_cb exit_cb; /* Called after the process exits. */ - const char *file; /* Path to program to execute. */ + const char* file; /* Path to program to execute. */ /* * 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 note at * windows_verbatim_arguments. */ - char **args; + char** args; /* * This will be set as the environ variable in the subprocess. If this is * NULL then the parents environ will be used. */ - char **env; + char** env; /* * If non-null this represents a directory the subprocess should execute * in. Stands for current working directory. */ - const char *cwd; + const char* cwd; /* * Various flags that control how uv_spawn() behaves. See the definition of * `enum uv_process_flags` below. @@ -918,7 +1097,7 @@ typedef struct uv_process_options_s { * child process only if the child processes uses the MSVCRT runtime. */ int stdio_count; - uv_stdio_container_t *stdio; + uv_stdio_container_t* stdio; /* * Libuv can change the child process' user/group id. This happens only when * the appropriate bits are set in the flags fields. This is not supported on @@ -974,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) }; /* @@ -987,44 +1173,49 @@ struct uv_process_s { UV_PROCESS_PRIVATE_FIELDS }; -UV_EXTERN int uv_spawn(uv_loop_t *loop, uv_process_t *handle, - const uv_process_options_t *options); -UV_EXTERN int uv_process_kill(uv_process_t *, int signum); +UV_EXTERN int uv_spawn(uv_loop_t* loop, + uv_process_t* handle, + const uv_process_options_t* options); +UV_EXTERN int uv_process_kill(uv_process_t*, int signum); UV_EXTERN int uv_kill(int pid, int signum); -UV_EXTERN uv_pid_t uv_process_get_pid(const uv_process_t *); +UV_EXTERN uv_pid_t uv_process_get_pid(const uv_process_t*); + /* * uv_work_t is a subclass of uv_req_t. */ struct uv_work_s { UV_REQ_FIELDS - uv_loop_t *loop; + uv_loop_t* loop; uv_work_cb work_cb; uv_after_work_cb after_work_cb; UV_WORK_PRIVATE_FIELDS }; -UV_EXTERN int uv_queue_work(uv_loop_t *loop, uv_work_t *req, uv_work_cb work_cb, +UV_EXTERN int uv_queue_work(uv_loop_t* loop, + uv_work_t* req, + uv_work_cb work_cb, uv_after_work_cb after_work_cb); -UV_EXTERN int uv_cancel(uv_req_t *req); +UV_EXTERN int uv_cancel(uv_req_t* req); + struct uv_cpu_times_s { uint64_t user; /* milliseconds */ uint64_t nice; /* milliseconds */ - uint64_t sys; /* milliseconds */ + uint64_t sys; /* milliseconds */ uint64_t idle; /* milliseconds */ - uint64_t irq; /* milliseconds */ + uint64_t irq; /* milliseconds */ }; struct uv_cpu_info_s { - char *model; + const char* model; int speed; struct uv_cpu_times_s cpu_times; }; struct uv_interface_address_s { - char *name; + char* name; char phys_addr[6]; int is_internal; union { @@ -1038,11 +1229,17 @@ struct uv_interface_address_s { }; struct uv_passwd_s { - char *username; - long uid; - long gid; - char *shell; - char *homedir; + char* username; + 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 { @@ -1063,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 { @@ -1078,111 +1276,127 @@ typedef enum { } uv_dirent_type_t; struct uv_dirent_s { - const char *name; + const char* name; uv_dirent_type_t type; }; -UV_EXTERN char **uv_setup_args(int argc, char **argv); -UV_EXTERN int uv_get_process_title(char *buffer, size_t size); -UV_EXTERN int uv_set_process_title(const char *title); -UV_EXTERN int uv_resident_set_memory(size_t *rss); -UV_EXTERN int uv_uptime(double *uptime); +UV_EXTERN char** uv_setup_args(int argc, char** argv); +UV_EXTERN int uv_get_process_title(char* buffer, size_t size); +UV_EXTERN int uv_set_process_title(const char* title); +UV_EXTERN int uv_resident_set_memory(size_t* rss); +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 */ - uint64_t ru_maxrss; /* maximum resident set size */ - uint64_t ru_ixrss; /* integral shared memory size */ - uint64_t ru_idrss; /* integral unshared data size */ - uint64_t ru_isrss; /* integral unshared stack size */ - uint64_t ru_minflt; /* page reclaims (soft page faults) */ - uint64_t ru_majflt; /* page faults (hard page faults) */ - uint64_t ru_nswap; /* swaps */ - uint64_t ru_inblock; /* block input operations */ - uint64_t ru_oublock; /* block output operations */ - uint64_t ru_msgsnd; /* IPC messages sent */ - uint64_t ru_msgrcv; /* IPC messages received */ - uint64_t ru_nsignals; /* signals received */ - uint64_t ru_nvcsw; /* voluntary context switches */ - uint64_t ru_nivcsw; /* involuntary context switches */ + uv_timeval_t ru_utime; /* user CPU time used */ + uv_timeval_t ru_stime; /* system CPU time used */ + uint64_t ru_maxrss; /* maximum resident set size */ + uint64_t ru_ixrss; /* integral shared memory size */ + uint64_t ru_idrss; /* integral unshared data size */ + uint64_t ru_isrss; /* integral unshared stack size */ + uint64_t ru_minflt; /* page reclaims (soft page faults) */ + uint64_t ru_majflt; /* page faults (hard page faults) */ + uint64_t ru_nswap; /* swaps */ + uint64_t ru_inblock; /* block input operations */ + uint64_t ru_oublock; /* block output operations */ + uint64_t ru_msgsnd; /* IPC messages sent */ + uint64_t ru_msgrcv; /* IPC messages received */ + uint64_t ru_nsignals; /* signals received */ + uint64_t ru_nvcsw; /* voluntary context switches */ + uint64_t ru_nivcsw; /* involuntary context switches */ } uv_rusage_t; -UV_EXTERN int uv_getrusage(uv_rusage_t *rusage); +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_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); #if defined(__PASE__) /* On IBM i PASE, the highest process priority is -10 */ -#define UV_PRIORITY_LOW 39 /* RUNPTY(99) */ -#define UV_PRIORITY_BELOW_NORMAL 15 /* RUNPTY(50) */ -#define UV_PRIORITY_NORMAL 0 /* RUNPTY(20) */ -#define UV_PRIORITY_ABOVE_NORMAL -4 /* RUNTY(12) */ -#define UV_PRIORITY_HIGH -7 /* RUNPTY(6) */ -#define UV_PRIORITY_HIGHEST -10 /* RUNPTY(1) */ +# define UV_PRIORITY_LOW 39 /* RUNPTY(99) */ +# define UV_PRIORITY_BELOW_NORMAL 15 /* RUNPTY(50) */ +# define UV_PRIORITY_NORMAL 0 /* RUNPTY(20) */ +# define UV_PRIORITY_ABOVE_NORMAL -4 /* RUNTY(12) */ +# define UV_PRIORITY_HIGH -7 /* RUNPTY(6) */ +# define UV_PRIORITY_HIGHEST -10 /* RUNPTY(1) */ #else -#define UV_PRIORITY_LOW 19 -#define UV_PRIORITY_BELOW_NORMAL 10 -#define UV_PRIORITY_NORMAL 0 -#define UV_PRIORITY_ABOVE_NORMAL -7 -#define UV_PRIORITY_HIGH -14 -#define UV_PRIORITY_HIGHEST -20 +# define UV_PRIORITY_LOW 19 +# define UV_PRIORITY_BELOW_NORMAL 10 +# define UV_PRIORITY_NORMAL 0 +# define UV_PRIORITY_ABOVE_NORMAL -7 +# define UV_PRIORITY_HIGH -14 +# define UV_PRIORITY_HIGHEST -20 #endif -UV_EXTERN int uv_os_getpriority(uv_pid_t pid, int *priority); +UV_EXTERN int uv_os_getpriority(uv_pid_t pid, int* priority); UV_EXTERN int uv_os_setpriority(uv_pid_t pid, int priority); -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); +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); -UV_EXTERN void uv_free_interface_addresses(uv_interface_address_t *addresses, +UV_EXTERN int uv_interface_addresses(uv_interface_address_t** addresses, + int* count); +UV_EXTERN void uv_free_interface_addresses(uv_interface_address_t* addresses, int count); struct uv_env_item_s { - char *name; - char *value; + char* name; + char* value; }; -UV_EXTERN int uv_os_environ(uv_env_item_t **envitems, int *count); -UV_EXTERN void uv_os_free_environ(uv_env_item_t *envitems, int count); -UV_EXTERN int uv_os_getenv(const char *name, char *buffer, size_t *size); -UV_EXTERN int uv_os_setenv(const char *name, const char *value); -UV_EXTERN int uv_os_unsetenv(const char *name); +UV_EXTERN int uv_os_environ(uv_env_item_t** envitems, int* count); +UV_EXTERN void uv_os_free_environ(uv_env_item_t* envitems, int count); +UV_EXTERN int uv_os_getenv(const char* name, char* buffer, size_t* size); +UV_EXTERN int uv_os_setenv(const char* name, const char* value); +UV_EXTERN int uv_os_unsetenv(const char* name); #ifdef MAXHOSTNAMELEN -#define UV_MAXHOSTNAMESIZE (MAXHOSTNAMELEN + 1) +# define UV_MAXHOSTNAMESIZE (MAXHOSTNAMELEN + 1) #else -/* - Fallback for the maximum hostname size, including the null terminator. The - Windows gethostname() documentation states that 256 bytes will always be - large enough to hold the null-terminated hostname. -*/ -#define UV_MAXHOSTNAMESIZE 256 + /* + Fallback for the maximum hostname size, including the null terminator. The + Windows gethostname() documentation states that 256 bytes will always be + large enough to hold the null-terminated hostname. + */ +# define UV_MAXHOSTNAMESIZE 256 #endif -UV_EXTERN int uv_os_gethostname(char *buffer, size_t *size); +UV_EXTERN int uv_os_gethostname(char* buffer, size_t* size); -UV_EXTERN int uv_os_uname(uv_utsname_t *buffer); +UV_EXTERN int uv_os_uname(uv_utsname_t* buffer); -UV_EXTERN uint64_t uv_metrics_idle_time(uv_loop_t *loop); +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 { UV_FS_UNKNOWN = -1, @@ -1226,9 +1440,9 @@ typedef enum { } uv_fs_type; struct uv_dir_s { - uv_dirent_t *dirents; + uv_dirent_t* dirents; size_t nentries; - void *reserved[4]; + void* reserved[4]; UV_DIR_PRIVATE_FIELDS }; @@ -1236,40 +1450,56 @@ struct uv_dir_s { struct uv_fs_s { UV_REQ_FIELDS uv_fs_type fs_type; - uv_loop_t *loop; + uv_loop_t* loop; uv_fs_cb cb; ssize_t result; - void *ptr; - const char *path; - uv_stat_t statbuf; /* Stores the result of uv_fs_stat() and uv_fs_fstat(). */ + void* ptr; + const char* path; + uv_stat_t statbuf; /* Stores the result of uv_fs_stat() and uv_fs_fstat(). */ UV_FS_PRIVATE_FIELDS }; -UV_EXTERN uv_fs_type uv_fs_get_type(const uv_fs_t *); -UV_EXTERN ssize_t uv_fs_get_result(const uv_fs_t *); -UV_EXTERN int uv_fs_get_system_error(const uv_fs_t *); -UV_EXTERN void *uv_fs_get_ptr(const uv_fs_t *); -UV_EXTERN const char *uv_fs_get_path(const uv_fs_t *); -UV_EXTERN uv_stat_t *uv_fs_get_statbuf(uv_fs_t *); - -UV_EXTERN void uv_fs_req_cleanup(uv_fs_t *req); -UV_EXTERN int uv_fs_close(uv_loop_t *loop, uv_fs_t *req, uv_file file, +UV_EXTERN uv_fs_type uv_fs_get_type(const uv_fs_t*); +UV_EXTERN ssize_t uv_fs_get_result(const uv_fs_t*); +UV_EXTERN int uv_fs_get_system_error(const uv_fs_t*); +UV_EXTERN void* uv_fs_get_ptr(const uv_fs_t*); +UV_EXTERN const char* uv_fs_get_path(const uv_fs_t*); +UV_EXTERN uv_stat_t* uv_fs_get_statbuf(uv_fs_t*); + +UV_EXTERN void uv_fs_req_cleanup(uv_fs_t* req); +UV_EXTERN int uv_fs_close(uv_loop_t* loop, + uv_fs_t* req, + uv_file file, uv_fs_cb cb); -UV_EXTERN int uv_fs_open(uv_loop_t *loop, uv_fs_t *req, const char *path, - int flags, int mode, uv_fs_cb cb); -UV_EXTERN 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); -UV_EXTERN int uv_fs_unlink(uv_loop_t *loop, uv_fs_t *req, const char *path, +UV_EXTERN int uv_fs_open(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + int flags, + int mode, + uv_fs_cb cb); +UV_EXTERN 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); +UV_EXTERN int uv_fs_unlink(uv_loop_t* loop, + uv_fs_t* req, + const char* path, uv_fs_cb cb); -UV_EXTERN 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); +UV_EXTERN 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); /* * This flag can be used with uv_fs_copyfile() to return an error if the * destination already exists. */ -#define UV_FS_COPYFILE_EXCL 0x0001 +#define UV_FS_COPYFILE_EXCL 0x0001 /* * This flag can be used with uv_fs_copyfile() to attempt to create a reflink. @@ -1283,108 +1513,209 @@ UV_EXTERN int uv_fs_write(uv_loop_t *loop, uv_fs_t *req, uv_file file, */ #define UV_FS_COPYFILE_FICLONE_FORCE 0x0004 -UV_EXTERN 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); -UV_EXTERN int uv_fs_mkdir(uv_loop_t *loop, uv_fs_t *req, const char *path, - int mode, uv_fs_cb cb); -UV_EXTERN int uv_fs_mkdtemp(uv_loop_t *loop, uv_fs_t *req, const char *tpl, +UV_EXTERN 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); +UV_EXTERN int uv_fs_mkdir(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + int mode, + uv_fs_cb cb); +UV_EXTERN int uv_fs_mkdtemp(uv_loop_t* loop, + uv_fs_t* req, + const char* tpl, uv_fs_cb cb); -UV_EXTERN int uv_fs_mkstemp(uv_loop_t *loop, uv_fs_t *req, const char *tpl, +UV_EXTERN int uv_fs_mkstemp(uv_loop_t* loop, + uv_fs_t* req, + const char* tpl, uv_fs_cb cb); -UV_EXTERN int uv_fs_rmdir(uv_loop_t *loop, uv_fs_t *req, const char *path, +UV_EXTERN int uv_fs_rmdir(uv_loop_t* loop, + uv_fs_t* req, + const char* path, uv_fs_cb cb); -UV_EXTERN int uv_fs_scandir(uv_loop_t *loop, uv_fs_t *req, const char *path, - int flags, uv_fs_cb cb); -UV_EXTERN int uv_fs_scandir_next(uv_fs_t *req, uv_dirent_t *ent); -UV_EXTERN int uv_fs_opendir(uv_loop_t *loop, uv_fs_t *req, const char *path, +UV_EXTERN int uv_fs_scandir(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + int flags, + uv_fs_cb cb); +UV_EXTERN int uv_fs_scandir_next(uv_fs_t* req, + uv_dirent_t* ent); +UV_EXTERN int uv_fs_opendir(uv_loop_t* loop, + uv_fs_t* req, + const char* path, uv_fs_cb cb); -UV_EXTERN int uv_fs_readdir(uv_loop_t *loop, uv_fs_t *req, uv_dir_t *dir, +UV_EXTERN int uv_fs_readdir(uv_loop_t* loop, + uv_fs_t* req, + uv_dir_t* dir, uv_fs_cb cb); -UV_EXTERN int uv_fs_closedir(uv_loop_t *loop, uv_fs_t *req, uv_dir_t *dir, +UV_EXTERN int uv_fs_closedir(uv_loop_t* loop, + uv_fs_t* req, + uv_dir_t* dir, uv_fs_cb cb); -UV_EXTERN int uv_fs_stat(uv_loop_t *loop, uv_fs_t *req, const char *path, +UV_EXTERN int uv_fs_stat(uv_loop_t* loop, + uv_fs_t* req, + const char* path, uv_fs_cb cb); -UV_EXTERN int uv_fs_fstat(uv_loop_t *loop, uv_fs_t *req, uv_file file, +UV_EXTERN int uv_fs_fstat(uv_loop_t* loop, + uv_fs_t* req, + uv_file file, uv_fs_cb cb); -UV_EXTERN int uv_fs_rename(uv_loop_t *loop, uv_fs_t *req, const char *path, - const char *new_path, uv_fs_cb cb); -UV_EXTERN int uv_fs_fsync(uv_loop_t *loop, uv_fs_t *req, uv_file file, +UV_EXTERN int uv_fs_rename(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + const char* new_path, + uv_fs_cb cb); +UV_EXTERN int uv_fs_fsync(uv_loop_t* loop, + uv_fs_t* req, + uv_file file, uv_fs_cb cb); -UV_EXTERN int uv_fs_fdatasync(uv_loop_t *loop, uv_fs_t *req, uv_file file, +UV_EXTERN int uv_fs_fdatasync(uv_loop_t* loop, + uv_fs_t* req, + uv_file file, + uv_fs_cb cb); +UV_EXTERN int uv_fs_ftruncate(uv_loop_t* loop, + uv_fs_t* req, + uv_file file, + int64_t offset, uv_fs_cb cb); -UV_EXTERN int uv_fs_ftruncate(uv_loop_t *loop, uv_fs_t *req, uv_file file, - int64_t offset, uv_fs_cb cb); -UV_EXTERN int uv_fs_sendfile(uv_loop_t *loop, uv_fs_t *req, uv_file out_fd, - uv_file in_fd, int64_t in_offset, size_t length, +UV_EXTERN int uv_fs_sendfile(uv_loop_t* loop, + uv_fs_t* req, + uv_file out_fd, + uv_file in_fd, + int64_t in_offset, + size_t length, uv_fs_cb cb); -UV_EXTERN int uv_fs_access(uv_loop_t *loop, uv_fs_t *req, const char *path, - int mode, uv_fs_cb cb); -UV_EXTERN int uv_fs_chmod(uv_loop_t *loop, uv_fs_t *req, const char *path, - int mode, uv_fs_cb cb); -UV_EXTERN int uv_fs_utime(uv_loop_t *loop, uv_fs_t *req, const char *path, - double atime, double mtime, uv_fs_cb cb); -UV_EXTERN int uv_fs_futime(uv_loop_t *loop, uv_fs_t *req, uv_file file, - double atime, double mtime, uv_fs_cb cb); -UV_EXTERN int uv_fs_lutime(uv_loop_t *loop, uv_fs_t *req, const char *path, - double atime, double mtime, uv_fs_cb cb); -UV_EXTERN int uv_fs_lstat(uv_loop_t *loop, uv_fs_t *req, const char *path, +UV_EXTERN int uv_fs_access(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + int mode, + uv_fs_cb cb); +UV_EXTERN int uv_fs_chmod(uv_loop_t* loop, + uv_fs_t* req, + 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, + double atime, + double mtime, uv_fs_cb cb); -UV_EXTERN int uv_fs_link(uv_loop_t *loop, uv_fs_t *req, const char *path, - const char *new_path, uv_fs_cb cb); +UV_EXTERN int uv_fs_futime(uv_loop_t* loop, + uv_fs_t* req, + uv_file file, + double atime, + double mtime, + uv_fs_cb cb); +UV_EXTERN int uv_fs_lutime(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + double atime, + double mtime, + uv_fs_cb cb); +UV_EXTERN int uv_fs_lstat(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + uv_fs_cb cb); +UV_EXTERN int uv_fs_link(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + const char* new_path, + uv_fs_cb cb); /* * This flag can be used with uv_fs_symlink() on Windows to specify whether * path argument points to a directory. */ -#define UV_FS_SYMLINK_DIR 0x0001 +#define UV_FS_SYMLINK_DIR 0x0001 /* * This flag can be used with uv_fs_symlink() on Windows to specify whether * the symlink is to be created using junction points. */ -#define UV_FS_SYMLINK_JUNCTION 0x0002 +#define UV_FS_SYMLINK_JUNCTION 0x0002 -UV_EXTERN 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); -UV_EXTERN int uv_fs_readlink(uv_loop_t *loop, uv_fs_t *req, const char *path, +UV_EXTERN 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); +UV_EXTERN int uv_fs_readlink(uv_loop_t* loop, + uv_fs_t* req, + const char* path, uv_fs_cb cb); -UV_EXTERN int uv_fs_realpath(uv_loop_t *loop, uv_fs_t *req, const char *path, +UV_EXTERN int uv_fs_realpath(uv_loop_t* loop, + uv_fs_t* req, + const char* path, uv_fs_cb cb); -UV_EXTERN int uv_fs_fchmod(uv_loop_t *loop, uv_fs_t *req, uv_file file, - int mode, uv_fs_cb cb); -UV_EXTERN 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); -UV_EXTERN 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); -UV_EXTERN 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); -UV_EXTERN int uv_fs_statfs(uv_loop_t *loop, uv_fs_t *req, const char *path, +UV_EXTERN int uv_fs_fchmod(uv_loop_t* loop, + uv_fs_t* req, + uv_file file, + int mode, uv_fs_cb cb); +UV_EXTERN 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); +UV_EXTERN 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); +UV_EXTERN 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); +UV_EXTERN int uv_fs_statfs(uv_loop_t* loop, + uv_fs_t* req, + const char* path, + uv_fs_cb cb); + + +enum uv_fs_event { + UV_RENAME = 1, + UV_CHANGE = 2 +}; -enum uv_fs_event { UV_RENAME = 1, UV_CHANGE = 2 }; struct uv_fs_event_s { UV_HANDLE_FIELDS /* private */ - char *path; + char* path; UV_FS_EVENT_PRIVATE_FIELDS }; + /* * uv_fs_stat() based polling file watcher. */ struct uv_fs_poll_s { UV_HANDLE_FIELDS /* Private, don't touch. */ - void *poll_ctx; + void* poll_ctx; }; -UV_EXTERN int uv_fs_poll_init(uv_loop_t *loop, uv_fs_poll_t *handle); -UV_EXTERN int uv_fs_poll_start(uv_fs_poll_t *handle, uv_fs_poll_cb poll_cb, - const char *path, unsigned int interval); -UV_EXTERN int uv_fs_poll_stop(uv_fs_poll_t *handle); -UV_EXTERN int uv_fs_poll_getpath(uv_fs_poll_t *handle, char *buffer, - size_t *size); +UV_EXTERN int uv_fs_poll_init(uv_loop_t* loop, uv_fs_poll_t* handle); +UV_EXTERN int uv_fs_poll_start(uv_fs_poll_t* handle, + uv_fs_poll_cb poll_cb, + const char* path, + unsigned int interval); +UV_EXTERN int uv_fs_poll_stop(uv_fs_poll_t* handle); +UV_EXTERN int uv_fs_poll_getpath(uv_fs_poll_t* handle, + char* buffer, + size_t* size); + struct uv_signal_s { UV_HANDLE_FIELDS @@ -1393,15 +1724,18 @@ struct uv_signal_s { UV_SIGNAL_PRIVATE_FIELDS }; -UV_EXTERN int uv_signal_init(uv_loop_t *loop, uv_signal_t *handle); -UV_EXTERN int uv_signal_start(uv_signal_t *handle, uv_signal_cb signal_cb, +UV_EXTERN int uv_signal_init(uv_loop_t* loop, uv_signal_t* handle); +UV_EXTERN int uv_signal_start(uv_signal_t* handle, + uv_signal_cb signal_cb, int signum); -UV_EXTERN int uv_signal_start_oneshot(uv_signal_t *handle, - uv_signal_cb signal_cb, int signum); -UV_EXTERN int uv_signal_stop(uv_signal_t *handle); +UV_EXTERN int uv_signal_start_oneshot(uv_signal_t* handle, + uv_signal_cb signal_cb, + int signum); +UV_EXTERN int uv_signal_stop(uv_signal_t* handle); UV_EXTERN void uv_loadavg(double avg[3]); + /* * Flags to be passed to uv_fs_event_start(). */ @@ -1432,122 +1766,133 @@ enum uv_fs_event_flags { UV_FS_EVENT_RECURSIVE = 4 }; -UV_EXTERN int uv_fs_event_init(uv_loop_t *loop, uv_fs_event_t *handle); -UV_EXTERN int uv_fs_event_start(uv_fs_event_t *handle, uv_fs_event_cb cb, - const char *path, unsigned int flags); -UV_EXTERN int uv_fs_event_stop(uv_fs_event_t *handle); -UV_EXTERN int uv_fs_event_getpath(uv_fs_event_t *handle, char *buffer, - size_t *size); -UV_EXTERN int uv_ip4_addr(const char *ip, int port, struct sockaddr_in *addr); -UV_EXTERN int uv_ip6_addr(const char *ip, int port, struct sockaddr_in6 *addr); +UV_EXTERN int uv_fs_event_init(uv_loop_t* loop, uv_fs_event_t* handle); +UV_EXTERN int uv_fs_event_start(uv_fs_event_t* handle, + uv_fs_event_cb cb, + const char* path, + unsigned int flags); +UV_EXTERN int uv_fs_event_stop(uv_fs_event_t* handle); +UV_EXTERN int uv_fs_event_getpath(uv_fs_event_t* handle, + char* buffer, + size_t* size); + +UV_EXTERN int uv_ip4_addr(const char* ip, int port, struct sockaddr_in* addr); +UV_EXTERN int uv_ip6_addr(const char* ip, int port, struct sockaddr_in6* addr); -UV_EXTERN int uv_ip4_name(const struct sockaddr_in *src, char *dst, - size_t size); -UV_EXTERN int uv_ip6_name(const struct sockaddr_in6 *src, char *dst, - size_t size); -UV_EXTERN int uv_ip_name(const struct sockaddr *src, char *dst, size_t size); +UV_EXTERN int uv_ip4_name(const struct sockaddr_in* src, char* dst, size_t size); +UV_EXTERN int uv_ip6_name(const struct sockaddr_in6* src, char* dst, size_t size); +UV_EXTERN int uv_ip_name(const struct sockaddr* src, char* dst, size_t size); + +UV_EXTERN int uv_inet_ntop(int af, const void* src, char* dst, size_t size); +UV_EXTERN int uv_inet_pton(int af, const char* src, void* dst); -UV_EXTERN int uv_inet_ntop(int af, const void *src, char *dst, size_t size); -UV_EXTERN int uv_inet_pton(int af, const char *src, void *dst); struct uv_random_s { UV_REQ_FIELDS /* read-only */ - uv_loop_t *loop; + uv_loop_t* loop; /* private */ int status; - void *buf; + void* buf; size_t buflen; uv_random_cb cb; struct uv__work work_req; }; -UV_EXTERN int uv_random(uv_loop_t *loop, uv_random_t *req, void *buf, +UV_EXTERN int uv_random(uv_loop_t* loop, + uv_random_t* req, + void *buf, size_t buflen, - unsigned flags, /* For future extension; must be 0. */ + unsigned flags, /* For future extension; must be 0. */ uv_random_cb cb); #if defined(IF_NAMESIZE) -#define UV_IF_NAMESIZE (IF_NAMESIZE + 1) +# define UV_IF_NAMESIZE (IF_NAMESIZE + 1) #elif defined(IFNAMSIZ) -#define UV_IF_NAMESIZE (IFNAMSIZ + 1) +# define UV_IF_NAMESIZE (IFNAMSIZ + 1) #else -#define UV_IF_NAMESIZE (16 + 1) +# define UV_IF_NAMESIZE (16 + 1) #endif -UV_EXTERN int uv_if_indextoname(unsigned int ifindex, char *buffer, - size_t *size); -UV_EXTERN int uv_if_indextoiid(unsigned int ifindex, char *buffer, - size_t *size); +UV_EXTERN int uv_if_indextoname(unsigned int ifindex, + char* buffer, + size_t* size); +UV_EXTERN int uv_if_indextoiid(unsigned int ifindex, + char* buffer, + size_t* size); -UV_EXTERN int uv_exepath(char *buffer, size_t *size); +UV_EXTERN int uv_exepath(char* buffer, size_t* size); -UV_EXTERN int uv_cwd(char *buffer, size_t *size); +UV_EXTERN int uv_cwd(char* buffer, size_t* size); -UV_EXTERN int uv_chdir(const char *dir); +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); UV_EXTERN void uv_disable_stdio_inheritance(void); -UV_EXTERN int uv_dlopen(const char *filename, uv_lib_t *lib); -UV_EXTERN void uv_dlclose(uv_lib_t *lib); -UV_EXTERN int uv_dlsym(uv_lib_t *lib, const char *name, void **ptr); -UV_EXTERN const char *uv_dlerror(const uv_lib_t *lib); - -UV_EXTERN int uv_mutex_init(uv_mutex_t *handle); -UV_EXTERN int uv_mutex_init_recursive(uv_mutex_t *handle); -UV_EXTERN void uv_mutex_destroy(uv_mutex_t *handle); -UV_EXTERN void uv_mutex_lock(uv_mutex_t *handle); -UV_EXTERN int uv_mutex_trylock(uv_mutex_t *handle); -UV_EXTERN void uv_mutex_unlock(uv_mutex_t *handle); - -UV_EXTERN int uv_rwlock_init(uv_rwlock_t *rwlock); -UV_EXTERN void uv_rwlock_destroy(uv_rwlock_t *rwlock); -UV_EXTERN void uv_rwlock_rdlock(uv_rwlock_t *rwlock); -UV_EXTERN int uv_rwlock_tryrdlock(uv_rwlock_t *rwlock); -UV_EXTERN void uv_rwlock_rdunlock(uv_rwlock_t *rwlock); -UV_EXTERN void uv_rwlock_wrlock(uv_rwlock_t *rwlock); -UV_EXTERN int uv_rwlock_trywrlock(uv_rwlock_t *rwlock); -UV_EXTERN void uv_rwlock_wrunlock(uv_rwlock_t *rwlock); - -UV_EXTERN int uv_sem_init(uv_sem_t *sem, unsigned int value); -UV_EXTERN void uv_sem_destroy(uv_sem_t *sem); -UV_EXTERN void uv_sem_post(uv_sem_t *sem); -UV_EXTERN void uv_sem_wait(uv_sem_t *sem); -UV_EXTERN int uv_sem_trywait(uv_sem_t *sem); - -UV_EXTERN int uv_cond_init(uv_cond_t *cond); -UV_EXTERN void uv_cond_destroy(uv_cond_t *cond); -UV_EXTERN void uv_cond_signal(uv_cond_t *cond); -UV_EXTERN void uv_cond_broadcast(uv_cond_t *cond); - -UV_EXTERN int uv_barrier_init(uv_barrier_t *barrier, unsigned int count); -UV_EXTERN void uv_barrier_destroy(uv_barrier_t *barrier); -UV_EXTERN int uv_barrier_wait(uv_barrier_t *barrier); - -UV_EXTERN void uv_cond_wait(uv_cond_t *cond, uv_mutex_t *mutex); -UV_EXTERN int uv_cond_timedwait(uv_cond_t *cond, uv_mutex_t *mutex, +UV_EXTERN int uv_dlopen(const char* filename, uv_lib_t* lib); +UV_EXTERN void uv_dlclose(uv_lib_t* lib); +UV_EXTERN int uv_dlsym(uv_lib_t* lib, const char* name, void** ptr); +UV_EXTERN const char* uv_dlerror(const uv_lib_t* lib); + +UV_EXTERN int uv_mutex_init(uv_mutex_t* handle); +UV_EXTERN int uv_mutex_init_recursive(uv_mutex_t* handle); +UV_EXTERN void uv_mutex_destroy(uv_mutex_t* handle); +UV_EXTERN void uv_mutex_lock(uv_mutex_t* handle); +UV_EXTERN int uv_mutex_trylock(uv_mutex_t* handle); +UV_EXTERN void uv_mutex_unlock(uv_mutex_t* handle); + +UV_EXTERN int uv_rwlock_init(uv_rwlock_t* rwlock); +UV_EXTERN void uv_rwlock_destroy(uv_rwlock_t* rwlock); +UV_EXTERN void uv_rwlock_rdlock(uv_rwlock_t* rwlock); +UV_EXTERN int uv_rwlock_tryrdlock(uv_rwlock_t* rwlock); +UV_EXTERN void uv_rwlock_rdunlock(uv_rwlock_t* rwlock); +UV_EXTERN void uv_rwlock_wrlock(uv_rwlock_t* rwlock); +UV_EXTERN int uv_rwlock_trywrlock(uv_rwlock_t* rwlock); +UV_EXTERN void uv_rwlock_wrunlock(uv_rwlock_t* rwlock); + +UV_EXTERN int uv_sem_init(uv_sem_t* sem, unsigned int value); +UV_EXTERN void uv_sem_destroy(uv_sem_t* sem); +UV_EXTERN void uv_sem_post(uv_sem_t* sem); +UV_EXTERN void uv_sem_wait(uv_sem_t* sem); +UV_EXTERN int uv_sem_trywait(uv_sem_t* sem); + +UV_EXTERN int uv_cond_init(uv_cond_t* cond); +UV_EXTERN void uv_cond_destroy(uv_cond_t* cond); +UV_EXTERN void uv_cond_signal(uv_cond_t* cond); +UV_EXTERN void uv_cond_broadcast(uv_cond_t* cond); + +UV_EXTERN int uv_barrier_init(uv_barrier_t* barrier, unsigned int count); +UV_EXTERN void uv_barrier_destroy(uv_barrier_t* barrier); +UV_EXTERN int uv_barrier_wait(uv_barrier_t* barrier); + +UV_EXTERN void uv_cond_wait(uv_cond_t* cond, uv_mutex_t* mutex); +UV_EXTERN int uv_cond_timedwait(uv_cond_t* cond, + uv_mutex_t* mutex, uint64_t timeout); -UV_EXTERN void uv_once(uv_once_t *guard, void (*callback)(void)); +UV_EXTERN void uv_once(uv_once_t* guard, void (*callback)(void)); -UV_EXTERN int uv_key_create(uv_key_t *key); -UV_EXTERN void uv_key_delete(uv_key_t *key); -UV_EXTERN void *uv_key_get(uv_key_t *key); -UV_EXTERN void uv_key_set(uv_key_t *key, void *value); +UV_EXTERN int uv_key_create(uv_key_t* key); +UV_EXTERN void uv_key_delete(uv_key_t* key); +UV_EXTERN void* uv_key_get(uv_key_t* key); +UV_EXTERN void uv_key_set(uv_key_t* key, void* value); -UV_EXTERN int uv_gettimeofday(uv_timeval64_t *tv); +UV_EXTERN int uv_gettimeofday(uv_timeval64_t* tv); -typedef void (*uv_thread_cb)(void *arg); +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_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, @@ -1562,15 +1907,27 @@ struct uv_thread_options_s { typedef struct uv_thread_options_s uv_thread_options_t; -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_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_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; +#define XX(_, name) uv_ ## name ## _t name; union uv_any_handle { UV_HANDLE_TYPE_MAP(XX) }; @@ -1580,28 +1937,40 @@ union uv_any_req { }; #undef XX + struct uv_loop_s { /* User data - use this for whatever. */ - void *data; + void* data; /* Loop reference counting. */ unsigned int active_handles; - void *handle_queue[2]; + struct uv__queue handle_queue; union { - void *unused; + void* unused; unsigned int count; } active_reqs; /* Internal storage for future extensions. */ - void *internal_fields; + void* internal_fields; /* Internal flag to signal loop stop. */ unsigned int stop_flag; UV_LOOP_PRIVATE_FIELDS }; -UV_EXTERN void *uv_loop_get_data(const uv_loop_t *); -UV_EXTERN void uv_loop_set_data(uv_loop_t *, void *data); +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 @@ -1613,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/aix.h b/src/libuv/include/uv/aix.h index 051b7384..7dc992fa 100644 --- a/src/libuv/include/uv/aix.h +++ b/src/libuv/include/uv/aix.h @@ -22,10 +22,11 @@ #ifndef UV_AIX_H #define UV_AIX_H -#define UV_PLATFORM_LOOP_FIELDS int fs_fd; +#define UV_PLATFORM_LOOP_FIELDS \ + int fs_fd; \ -#define UV_PLATFORM_FS_EVENT_FIELDS \ - uv__io_t event_watcher; \ - char *dir_filename; +#define UV_PLATFORM_FS_EVENT_FIELDS \ + uv__io_t event_watcher; \ + char *dir_filename; \ #endif /* UV_AIX_H */ diff --git a/src/libuv/include/uv/android-ifaddrs.h b/src/libuv/include/uv/android-ifaddrs.h deleted file mode 100644 index 28720ae4..00000000 --- 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/bsd.h b/src/libuv/include/uv/bsd.h index 13fb5fa0..2d72b3d7 100644 --- a/src/libuv/include/uv/bsd.h +++ b/src/libuv/include/uv/bsd.h @@ -22,11 +22,12 @@ #ifndef UV_BSD_H #define UV_BSD_H -#define UV_PLATFORM_FS_EVENT_FIELDS uv__io_t event_watcher; +#define UV_PLATFORM_FS_EVENT_FIELDS \ + uv__io_t event_watcher; \ -#define UV_IO_PRIVATE_PLATFORM_FIELDS \ - int rcount; \ - int wcount; +#define UV_IO_PRIVATE_PLATFORM_FIELDS \ + int rcount; \ + int wcount; \ #define UV_HAVE_KQUEUE 1 diff --git a/src/libuv/include/uv/darwin.h b/src/libuv/include/uv/darwin.h index f58884ff..06962bfd 100644 --- a/src/libuv/include/uv/darwin.h +++ b/src/libuv/include/uv/darwin.h @@ -23,37 +23,38 @@ #define UV_DARWIN_H #if defined(__APPLE__) && defined(__MACH__) -#include -#include -#include -#include -#define UV_PLATFORM_SEM_T semaphore_t +# include +# include +# include +# include +# define UV_PLATFORM_SEM_T semaphore_t #endif -#define UV_IO_PRIVATE_PLATFORM_FIELDS \ - int rcount; \ - int wcount; - -#define UV_PLATFORM_LOOP_FIELDS \ - uv_thread_t cf_thread; \ - void *_cf_reserved; \ - void *cf_state; \ - uv_mutex_t cf_mutex; \ - uv_sem_t cf_sem; \ - void *cf_signals[2]; - -#define UV_PLATFORM_FS_EVENT_FIELDS \ - uv__io_t event_watcher; \ - char *realpath; \ - int realpath_len; \ - int cf_flags; \ - uv_async_t *cf_cb; \ - void *cf_events[2]; \ - void *cf_member[2]; \ - int cf_error; \ - uv_mutex_t cf_mutex; - -#define UV_STREAM_PRIVATE_PLATFORM_FIELDS void *select; +#define UV_IO_PRIVATE_PLATFORM_FIELDS \ + int rcount; \ + int wcount; \ + +#define UV_PLATFORM_LOOP_FIELDS \ + uv_thread_t cf_thread; \ + void* _cf_reserved; \ + void* cf_state; \ + uv_mutex_t cf_mutex; \ + uv_sem_t cf_sem; \ + struct uv__queue cf_signals; \ + +#define UV_PLATFORM_FS_EVENT_FIELDS \ + uv__io_t event_watcher; \ + char* realpath; \ + int realpath_len; \ + int cf_flags; \ + uv_async_t* cf_cb; \ + struct uv__queue cf_events; \ + struct uv__queue cf_member; \ + int cf_error; \ + uv_mutex_t cf_mutex; \ + +#define UV_STREAM_PRIVATE_PLATFORM_FIELDS \ + void* select; \ #define UV_HAVE_KQUEUE 1 diff --git a/src/libuv/include/uv/errno.h b/src/libuv/include/uv/errno.h index f09458e7..ac00778c 100644 --- a/src/libuv/include/uv/errno.h +++ b/src/libuv/include/uv/errno.h @@ -24,384 +24,384 @@ #include #if EDOM > 0 -#define UV__ERR(x) (-(x)) +# define UV__ERR(x) (-(x)) #else -#define UV__ERR(x) (x) +# define UV__ERR(x) (x) #endif -#define UV__EOF (-4095) +#define UV__EOF (-4095) #define UV__UNKNOWN (-4094) -#define UV__EAI_ADDRFAMILY (-3000) -#define UV__EAI_AGAIN (-3001) -#define UV__EAI_BADFLAGS (-3002) -#define UV__EAI_CANCELED (-3003) -#define UV__EAI_FAIL (-3004) -#define UV__EAI_FAMILY (-3005) -#define UV__EAI_MEMORY (-3006) -#define UV__EAI_NODATA (-3007) -#define UV__EAI_NONAME (-3008) -#define UV__EAI_OVERFLOW (-3009) -#define UV__EAI_SERVICE (-3010) -#define UV__EAI_SOCKTYPE (-3011) -#define UV__EAI_BADHINTS (-3013) -#define UV__EAI_PROTOCOL (-3014) +#define UV__EAI_ADDRFAMILY (-3000) +#define UV__EAI_AGAIN (-3001) +#define UV__EAI_BADFLAGS (-3002) +#define UV__EAI_CANCELED (-3003) +#define UV__EAI_FAIL (-3004) +#define UV__EAI_FAMILY (-3005) +#define UV__EAI_MEMORY (-3006) +#define UV__EAI_NODATA (-3007) +#define UV__EAI_NONAME (-3008) +#define UV__EAI_OVERFLOW (-3009) +#define UV__EAI_SERVICE (-3010) +#define UV__EAI_SOCKTYPE (-3011) +#define UV__EAI_BADHINTS (-3013) +#define UV__EAI_PROTOCOL (-3014) /* Only map to the system errno on non-Windows platforms. It's apparently * a fairly common practice for Windows programmers to redefine errno codes. */ #if defined(E2BIG) && !defined(_WIN32) -#define UV__E2BIG UV__ERR(E2BIG) +# define UV__E2BIG UV__ERR(E2BIG) #else -#define UV__E2BIG (-4093) +# define UV__E2BIG (-4093) #endif #if defined(EACCES) && !defined(_WIN32) -#define UV__EACCES UV__ERR(EACCES) +# define UV__EACCES UV__ERR(EACCES) #else -#define UV__EACCES (-4092) +# define UV__EACCES (-4092) #endif #if defined(EADDRINUSE) && !defined(_WIN32) -#define UV__EADDRINUSE UV__ERR(EADDRINUSE) +# define UV__EADDRINUSE UV__ERR(EADDRINUSE) #else -#define UV__EADDRINUSE (-4091) +# define UV__EADDRINUSE (-4091) #endif #if defined(EADDRNOTAVAIL) && !defined(_WIN32) -#define UV__EADDRNOTAVAIL UV__ERR(EADDRNOTAVAIL) +# define UV__EADDRNOTAVAIL UV__ERR(EADDRNOTAVAIL) #else -#define UV__EADDRNOTAVAIL (-4090) +# define UV__EADDRNOTAVAIL (-4090) #endif #if defined(EAFNOSUPPORT) && !defined(_WIN32) -#define UV__EAFNOSUPPORT UV__ERR(EAFNOSUPPORT) +# define UV__EAFNOSUPPORT UV__ERR(EAFNOSUPPORT) #else -#define UV__EAFNOSUPPORT (-4089) +# define UV__EAFNOSUPPORT (-4089) #endif #if defined(EAGAIN) && !defined(_WIN32) -#define UV__EAGAIN UV__ERR(EAGAIN) +# define UV__EAGAIN UV__ERR(EAGAIN) #else -#define UV__EAGAIN (-4088) +# define UV__EAGAIN (-4088) #endif #if defined(EALREADY) && !defined(_WIN32) -#define UV__EALREADY UV__ERR(EALREADY) +# define UV__EALREADY UV__ERR(EALREADY) #else -#define UV__EALREADY (-4084) +# define UV__EALREADY (-4084) #endif #if defined(EBADF) && !defined(_WIN32) -#define UV__EBADF UV__ERR(EBADF) +# define UV__EBADF UV__ERR(EBADF) #else -#define UV__EBADF (-4083) +# define UV__EBADF (-4083) #endif #if defined(EBUSY) && !defined(_WIN32) -#define UV__EBUSY UV__ERR(EBUSY) +# define UV__EBUSY UV__ERR(EBUSY) #else -#define UV__EBUSY (-4082) +# define UV__EBUSY (-4082) #endif #if defined(ECANCELED) && !defined(_WIN32) -#define UV__ECANCELED UV__ERR(ECANCELED) +# define UV__ECANCELED UV__ERR(ECANCELED) #else -#define UV__ECANCELED (-4081) +# define UV__ECANCELED (-4081) #endif #if defined(ECHARSET) && !defined(_WIN32) -#define UV__ECHARSET UV__ERR(ECHARSET) +# define UV__ECHARSET UV__ERR(ECHARSET) #else -#define UV__ECHARSET (-4080) +# define UV__ECHARSET (-4080) #endif #if defined(ECONNABORTED) && !defined(_WIN32) -#define UV__ECONNABORTED UV__ERR(ECONNABORTED) +# define UV__ECONNABORTED UV__ERR(ECONNABORTED) #else -#define UV__ECONNABORTED (-4079) +# define UV__ECONNABORTED (-4079) #endif #if defined(ECONNREFUSED) && !defined(_WIN32) -#define UV__ECONNREFUSED UV__ERR(ECONNREFUSED) +# define UV__ECONNREFUSED UV__ERR(ECONNREFUSED) #else -#define UV__ECONNREFUSED (-4078) +# define UV__ECONNREFUSED (-4078) #endif #if defined(ECONNRESET) && !defined(_WIN32) -#define UV__ECONNRESET UV__ERR(ECONNRESET) +# define UV__ECONNRESET UV__ERR(ECONNRESET) #else -#define UV__ECONNRESET (-4077) +# define UV__ECONNRESET (-4077) #endif #if defined(EDESTADDRREQ) && !defined(_WIN32) -#define UV__EDESTADDRREQ UV__ERR(EDESTADDRREQ) +# define UV__EDESTADDRREQ UV__ERR(EDESTADDRREQ) #else -#define UV__EDESTADDRREQ (-4076) +# define UV__EDESTADDRREQ (-4076) #endif #if defined(EEXIST) && !defined(_WIN32) -#define UV__EEXIST UV__ERR(EEXIST) +# define UV__EEXIST UV__ERR(EEXIST) #else -#define UV__EEXIST (-4075) +# define UV__EEXIST (-4075) #endif #if defined(EFAULT) && !defined(_WIN32) -#define UV__EFAULT UV__ERR(EFAULT) +# define UV__EFAULT UV__ERR(EFAULT) #else -#define UV__EFAULT (-4074) +# define UV__EFAULT (-4074) #endif #if defined(EHOSTUNREACH) && !defined(_WIN32) -#define UV__EHOSTUNREACH UV__ERR(EHOSTUNREACH) +# define UV__EHOSTUNREACH UV__ERR(EHOSTUNREACH) #else -#define UV__EHOSTUNREACH (-4073) +# define UV__EHOSTUNREACH (-4073) #endif #if defined(EINTR) && !defined(_WIN32) -#define UV__EINTR UV__ERR(EINTR) +# define UV__EINTR UV__ERR(EINTR) #else -#define UV__EINTR (-4072) +# define UV__EINTR (-4072) #endif #if defined(EINVAL) && !defined(_WIN32) -#define UV__EINVAL UV__ERR(EINVAL) +# define UV__EINVAL UV__ERR(EINVAL) #else -#define UV__EINVAL (-4071) +# define UV__EINVAL (-4071) #endif #if defined(EIO) && !defined(_WIN32) -#define UV__EIO UV__ERR(EIO) +# define UV__EIO UV__ERR(EIO) #else -#define UV__EIO (-4070) +# define UV__EIO (-4070) #endif #if defined(EISCONN) && !defined(_WIN32) -#define UV__EISCONN UV__ERR(EISCONN) +# define UV__EISCONN UV__ERR(EISCONN) #else -#define UV__EISCONN (-4069) +# define UV__EISCONN (-4069) #endif #if defined(EISDIR) && !defined(_WIN32) -#define UV__EISDIR UV__ERR(EISDIR) +# define UV__EISDIR UV__ERR(EISDIR) #else -#define UV__EISDIR (-4068) +# define UV__EISDIR (-4068) #endif #if defined(ELOOP) && !defined(_WIN32) -#define UV__ELOOP UV__ERR(ELOOP) +# define UV__ELOOP UV__ERR(ELOOP) #else -#define UV__ELOOP (-4067) +# define UV__ELOOP (-4067) #endif #if defined(EMFILE) && !defined(_WIN32) -#define UV__EMFILE UV__ERR(EMFILE) +# define UV__EMFILE UV__ERR(EMFILE) #else -#define UV__EMFILE (-4066) +# define UV__EMFILE (-4066) #endif #if defined(EMSGSIZE) && !defined(_WIN32) -#define UV__EMSGSIZE UV__ERR(EMSGSIZE) +# define UV__EMSGSIZE UV__ERR(EMSGSIZE) #else -#define UV__EMSGSIZE (-4065) +# define UV__EMSGSIZE (-4065) #endif #if defined(ENAMETOOLONG) && !defined(_WIN32) -#define UV__ENAMETOOLONG UV__ERR(ENAMETOOLONG) +# define UV__ENAMETOOLONG UV__ERR(ENAMETOOLONG) #else -#define UV__ENAMETOOLONG (-4064) +# define UV__ENAMETOOLONG (-4064) #endif #if defined(ENETDOWN) && !defined(_WIN32) -#define UV__ENETDOWN UV__ERR(ENETDOWN) +# define UV__ENETDOWN UV__ERR(ENETDOWN) #else -#define UV__ENETDOWN (-4063) +# define UV__ENETDOWN (-4063) #endif #if defined(ENETUNREACH) && !defined(_WIN32) -#define UV__ENETUNREACH UV__ERR(ENETUNREACH) +# define UV__ENETUNREACH UV__ERR(ENETUNREACH) #else -#define UV__ENETUNREACH (-4062) +# define UV__ENETUNREACH (-4062) #endif #if defined(ENFILE) && !defined(_WIN32) -#define UV__ENFILE UV__ERR(ENFILE) +# define UV__ENFILE UV__ERR(ENFILE) #else -#define UV__ENFILE (-4061) +# define UV__ENFILE (-4061) #endif #if defined(ENOBUFS) && !defined(_WIN32) -#define UV__ENOBUFS UV__ERR(ENOBUFS) +# define UV__ENOBUFS UV__ERR(ENOBUFS) #else -#define UV__ENOBUFS (-4060) +# define UV__ENOBUFS (-4060) #endif #if defined(ENODEV) && !defined(_WIN32) -#define UV__ENODEV UV__ERR(ENODEV) +# define UV__ENODEV UV__ERR(ENODEV) #else -#define UV__ENODEV (-4059) +# define UV__ENODEV (-4059) #endif #if defined(ENOENT) && !defined(_WIN32) -#define UV__ENOENT UV__ERR(ENOENT) +# define UV__ENOENT UV__ERR(ENOENT) #else -#define UV__ENOENT (-4058) +# define UV__ENOENT (-4058) #endif #if defined(ENOMEM) && !defined(_WIN32) -#define UV__ENOMEM UV__ERR(ENOMEM) +# define UV__ENOMEM UV__ERR(ENOMEM) #else -#define UV__ENOMEM (-4057) +# define UV__ENOMEM (-4057) #endif #if defined(ENONET) && !defined(_WIN32) -#define UV__ENONET UV__ERR(ENONET) +# define UV__ENONET UV__ERR(ENONET) #else -#define UV__ENONET (-4056) +# define UV__ENONET (-4056) #endif #if defined(ENOSPC) && !defined(_WIN32) -#define UV__ENOSPC UV__ERR(ENOSPC) +# define UV__ENOSPC UV__ERR(ENOSPC) #else -#define UV__ENOSPC (-4055) +# define UV__ENOSPC (-4055) #endif #if defined(ENOSYS) && !defined(_WIN32) -#define UV__ENOSYS UV__ERR(ENOSYS) +# define UV__ENOSYS UV__ERR(ENOSYS) #else -#define UV__ENOSYS (-4054) +# define UV__ENOSYS (-4054) #endif #if defined(ENOTCONN) && !defined(_WIN32) -#define UV__ENOTCONN UV__ERR(ENOTCONN) +# define UV__ENOTCONN UV__ERR(ENOTCONN) #else -#define UV__ENOTCONN (-4053) +# define UV__ENOTCONN (-4053) #endif #if defined(ENOTDIR) && !defined(_WIN32) -#define UV__ENOTDIR UV__ERR(ENOTDIR) +# define UV__ENOTDIR UV__ERR(ENOTDIR) #else -#define UV__ENOTDIR (-4052) +# define UV__ENOTDIR (-4052) #endif #if defined(ENOTEMPTY) && !defined(_WIN32) -#define UV__ENOTEMPTY UV__ERR(ENOTEMPTY) +# define UV__ENOTEMPTY UV__ERR(ENOTEMPTY) #else -#define UV__ENOTEMPTY (-4051) +# define UV__ENOTEMPTY (-4051) #endif #if defined(ENOTSOCK) && !defined(_WIN32) -#define UV__ENOTSOCK UV__ERR(ENOTSOCK) +# define UV__ENOTSOCK UV__ERR(ENOTSOCK) #else -#define UV__ENOTSOCK (-4050) +# define UV__ENOTSOCK (-4050) #endif #if defined(ENOTSUP) && !defined(_WIN32) -#define UV__ENOTSUP UV__ERR(ENOTSUP) +# define UV__ENOTSUP UV__ERR(ENOTSUP) #else -#define UV__ENOTSUP (-4049) +# define UV__ENOTSUP (-4049) #endif #if defined(EPERM) && !defined(_WIN32) -#define UV__EPERM UV__ERR(EPERM) +# define UV__EPERM UV__ERR(EPERM) #else -#define UV__EPERM (-4048) +# define UV__EPERM (-4048) #endif #if defined(EPIPE) && !defined(_WIN32) -#define UV__EPIPE UV__ERR(EPIPE) +# define UV__EPIPE UV__ERR(EPIPE) #else -#define UV__EPIPE (-4047) +# define UV__EPIPE (-4047) #endif #if defined(EPROTO) && !defined(_WIN32) -#define UV__EPROTO UV__ERR(EPROTO) +# define UV__EPROTO UV__ERR(EPROTO) #else -#define UV__EPROTO (-4046) +# define UV__EPROTO (-4046) #endif #if defined(EPROTONOSUPPORT) && !defined(_WIN32) -#define UV__EPROTONOSUPPORT UV__ERR(EPROTONOSUPPORT) +# define UV__EPROTONOSUPPORT UV__ERR(EPROTONOSUPPORT) #else -#define UV__EPROTONOSUPPORT (-4045) +# define UV__EPROTONOSUPPORT (-4045) #endif #if defined(EPROTOTYPE) && !defined(_WIN32) -#define UV__EPROTOTYPE UV__ERR(EPROTOTYPE) +# define UV__EPROTOTYPE UV__ERR(EPROTOTYPE) #else -#define UV__EPROTOTYPE (-4044) +# define UV__EPROTOTYPE (-4044) #endif #if defined(EROFS) && !defined(_WIN32) -#define UV__EROFS UV__ERR(EROFS) +# define UV__EROFS UV__ERR(EROFS) #else -#define UV__EROFS (-4043) +# define UV__EROFS (-4043) #endif #if defined(ESHUTDOWN) && !defined(_WIN32) -#define UV__ESHUTDOWN UV__ERR(ESHUTDOWN) +# define UV__ESHUTDOWN UV__ERR(ESHUTDOWN) #else -#define UV__ESHUTDOWN (-4042) +# define UV__ESHUTDOWN (-4042) #endif #if defined(ESPIPE) && !defined(_WIN32) -#define UV__ESPIPE UV__ERR(ESPIPE) +# define UV__ESPIPE UV__ERR(ESPIPE) #else -#define UV__ESPIPE (-4041) +# define UV__ESPIPE (-4041) #endif #if defined(ESRCH) && !defined(_WIN32) -#define UV__ESRCH UV__ERR(ESRCH) +# define UV__ESRCH UV__ERR(ESRCH) #else -#define UV__ESRCH (-4040) +# define UV__ESRCH (-4040) #endif #if defined(ETIMEDOUT) && !defined(_WIN32) -#define UV__ETIMEDOUT UV__ERR(ETIMEDOUT) +# define UV__ETIMEDOUT UV__ERR(ETIMEDOUT) #else -#define UV__ETIMEDOUT (-4039) +# define UV__ETIMEDOUT (-4039) #endif #if defined(ETXTBSY) && !defined(_WIN32) -#define UV__ETXTBSY UV__ERR(ETXTBSY) +# define UV__ETXTBSY UV__ERR(ETXTBSY) #else -#define UV__ETXTBSY (-4038) +# define UV__ETXTBSY (-4038) #endif #if defined(EXDEV) && !defined(_WIN32) -#define UV__EXDEV UV__ERR(EXDEV) +# define UV__EXDEV UV__ERR(EXDEV) #else -#define UV__EXDEV (-4037) +# define UV__EXDEV (-4037) #endif #if defined(EFBIG) && !defined(_WIN32) -#define UV__EFBIG UV__ERR(EFBIG) +# define UV__EFBIG UV__ERR(EFBIG) #else -#define UV__EFBIG (-4036) +# define UV__EFBIG (-4036) #endif #if defined(ENOPROTOOPT) && !defined(_WIN32) -#define UV__ENOPROTOOPT UV__ERR(ENOPROTOOPT) +# define UV__ENOPROTOOPT UV__ERR(ENOPROTOOPT) #else -#define UV__ENOPROTOOPT (-4035) +# define UV__ENOPROTOOPT (-4035) #endif #if defined(ERANGE) && !defined(_WIN32) -#define UV__ERANGE UV__ERR(ERANGE) +# define UV__ERANGE UV__ERR(ERANGE) #else -#define UV__ERANGE (-4034) +# define UV__ERANGE (-4034) #endif #if defined(ENXIO) && !defined(_WIN32) -#define UV__ENXIO UV__ERR(ENXIO) +# define UV__ENXIO UV__ERR(ENXIO) #else -#define UV__ENXIO (-4033) +# define UV__ENXIO (-4033) #endif #if defined(EMLINK) && !defined(_WIN32) -#define UV__EMLINK UV__ERR(EMLINK) +# define UV__EMLINK UV__ERR(EMLINK) #else -#define UV__EMLINK (-4032) +# define UV__EMLINK (-4032) #endif /* EHOSTDOWN is not visible on BSD-like systems when _POSIX_C_SOURCE is @@ -409,48 +409,75 @@ * icky to hard-code it. */ #if defined(EHOSTDOWN) && !defined(_WIN32) -#define UV__EHOSTDOWN UV__ERR(EHOSTDOWN) -#elif defined(__APPLE__) || defined(__DragonFly__) || defined(__FreeBSD__) || \ - defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) -#define UV__EHOSTDOWN (-64) +# define UV__EHOSTDOWN UV__ERR(EHOSTDOWN) +#elif defined(__APPLE__) || \ + defined(__DragonFly__) || \ + defined(__FreeBSD__) || \ + defined(__NetBSD__) || \ + defined(__OpenBSD__) +# define UV__EHOSTDOWN (-64) #else -#define UV__EHOSTDOWN (-4031) +# define UV__EHOSTDOWN (-4031) #endif #if defined(EREMOTEIO) && !defined(_WIN32) -#define UV__EREMOTEIO UV__ERR(EREMOTEIO) +# define UV__EREMOTEIO UV__ERR(EREMOTEIO) #else -#define UV__EREMOTEIO (-4030) +# define UV__EREMOTEIO (-4030) #endif #if defined(ENOTTY) && !defined(_WIN32) -#define UV__ENOTTY UV__ERR(ENOTTY) +# define UV__ENOTTY UV__ERR(ENOTTY) #else -#define UV__ENOTTY (-4029) +# define UV__ENOTTY (-4029) #endif #if defined(EFTYPE) && !defined(_WIN32) -#define UV__EFTYPE UV__ERR(EFTYPE) +# define UV__EFTYPE UV__ERR(EFTYPE) #else -#define UV__EFTYPE (-4028) +# define UV__EFTYPE (-4028) #endif #if defined(EILSEQ) && !defined(_WIN32) -#define UV__EILSEQ UV__ERR(EILSEQ) +# define UV__EILSEQ UV__ERR(EILSEQ) #else -#define UV__EILSEQ (-4027) +# define UV__EILSEQ (-4027) #endif #if defined(EOVERFLOW) && !defined(_WIN32) -#define UV__EOVERFLOW UV__ERR(EOVERFLOW) +# define UV__EOVERFLOW UV__ERR(EOVERFLOW) #else -#define UV__EOVERFLOW (-4026) +# define UV__EOVERFLOW (-4026) #endif #if defined(ESOCKTNOSUPPORT) && !defined(_WIN32) -#define UV__ESOCKTNOSUPPORT UV__ERR(ESOCKTNOSUPPORT) +# define UV__ESOCKTNOSUPPORT UV__ERR(ESOCKTNOSUPPORT) #else -#define UV__ESOCKTNOSUPPORT (-4025) +# 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 99291a25..9f22f8cf 100644 --- a/src/libuv/include/uv/linux.h +++ b/src/libuv/include/uv/linux.h @@ -22,13 +22,13 @@ #ifndef UV_LINUX_H #define UV_LINUX_H -#define UV_PLATFORM_LOOP_FIELDS \ - uv__io_t inotify_read_watcher; \ - void *inotify_watchers; \ - int inotify_fd; +#define UV_PLATFORM_LOOP_FIELDS \ + uv__io_t inotify_read_watcher; \ + void* inotify_watchers; \ + int inotify_fd; \ -#define UV_PLATFORM_FS_EVENT_FIELDS \ - void *watchers[2]; \ - int wd; +#define UV_PLATFORM_FS_EVENT_FIELDS \ + struct uv__queue watchers; \ + int wd; \ #endif /* UV_LINUX_H */ diff --git a/src/libuv/include/uv/os390.h b/src/libuv/include/uv/os390.h index e85b794e..0267d74c 100644 --- a/src/libuv/include/uv/os390.h +++ b/src/libuv/include/uv/os390.h @@ -24,8 +24,10 @@ #define UV_PLATFORM_SEM_T long -#define UV_PLATFORM_LOOP_FIELDS void *ep; +#define UV_PLATFORM_LOOP_FIELDS \ + void* ep; \ -#define UV_PLATFORM_FS_EVENT_FIELDS char rfis_rftok[8]; +#define UV_PLATFORM_FS_EVENT_FIELDS \ + char rfis_rftok[8]; \ #endif /* UV_MVS_H */ diff --git a/src/libuv/include/uv/posix.h b/src/libuv/include/uv/posix.h index 11c8431d..9a96634d 100644 --- a/src/libuv/include/uv/posix.h +++ b/src/libuv/include/uv/posix.h @@ -22,10 +22,10 @@ #ifndef UV_POSIX_H #define UV_POSIX_H -#define UV_PLATFORM_LOOP_FIELDS \ - struct pollfd *poll_fds; \ - size_t poll_fds_used; \ - size_t poll_fds_size; \ - unsigned char poll_fds_iterating; +#define UV_PLATFORM_LOOP_FIELDS \ + struct pollfd* poll_fds; \ + size_t poll_fds_used; \ + size_t poll_fds_size; \ + unsigned char poll_fds_iterating; \ #endif /* UV_POSIX_H */ diff --git a/src/libuv/include/uv/stdint-msvc2008.h b/src/libuv/include/uv/stdint-msvc2008.h deleted file mode 100644 index b3d2a71a..00000000 --- a/src/libuv/include/uv/stdint-msvc2008.h +++ /dev/null @@ -1,245 +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/sunos.h b/src/libuv/include/uv/sunos.h index 3d8d8dd1..04216642 100644 --- a/src/libuv/include/uv/sunos.h +++ b/src/libuv/include/uv/sunos.h @@ -22,22 +22,22 @@ #ifndef UV_SUNOS_H #define UV_SUNOS_H -#include #include +#include /* For the sake of convenience and reduced #ifdef-ery in src/unix/sunos.c, * add the fs_event fields even when this version of SunOS doesn't support * file watching. */ -#define UV_PLATFORM_LOOP_FIELDS \ - uv__io_t fs_event_watcher; \ - int fs_fd; +#define UV_PLATFORM_LOOP_FIELDS \ + uv__io_t fs_event_watcher; \ + int fs_fd; \ #if defined(PORT_SOURCE_FILE) -#define UV_PLATFORM_FS_EVENT_FIELDS \ - file_obj_t fo; \ - int fd; +# define UV_PLATFORM_FS_EVENT_FIELDS \ + file_obj_t fo; \ + int fd; \ #endif /* defined(PORT_SOURCE_FILE) */ diff --git a/src/libuv/include/uv/threadpool.h b/src/libuv/include/uv/threadpool.h index 53c4e098..24ce916f 100644 --- a/src/libuv/include/uv/threadpool.h +++ b/src/libuv/include/uv/threadpool.h @@ -30,8 +30,8 @@ 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_loop_s* loop; + 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 b4badbbd..06bba084 100644 --- a/src/libuv/include/uv/tree.h +++ b/src/libuv/include/uv/tree.h @@ -23,33 +23,19 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef UV_TREE_H_ -#define UV_TREE_H_ +#ifndef UV_TREE_H_ +#define UV_TREE_H_ #ifndef UV__UNUSED -#if __GNUC__ -#define UV__UNUSED __attribute__((unused)) -#else -#define UV__UNUSED -#endif +# if __GNUC__ +# define UV__UNUSED __attribute__((unused)) +# else +# define UV__UNUSED +# endif #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,679 +47,475 @@ * 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 { \ - struct type *rbh_root; /* root of the tree */ \ - } - -#define RB_INITIALIZER(root) {NULL} - -#define RB_INIT(root) \ - do { \ - (root)->rbh_root = NULL; \ - } while (/*CONSTCOND*/ 0) - -#define RB_BLACK 0 -#define RB_RED 1 -#define RB_ENTRY(type) \ - struct { \ - struct type *rbe_left; /* left element */ \ - struct type *rbe_right; /* right element */ \ - struct type *rbe_parent; /* parent element */ \ - int rbe_color; /* node color */ \ - } - -#define RB_LEFT(elm, field) (elm)->field.rbe_left -#define RB_RIGHT(elm, field) (elm)->field.rbe_right -#define RB_PARENT(elm, field) (elm)->field.rbe_parent -#define RB_COLOR(elm, field) (elm)->field.rbe_color -#define RB_ROOT(head) (head)->rbh_root -#define RB_EMPTY(head) (RB_ROOT(head) == NULL) - -#define RB_SET(elm, parent, field) \ - do { \ - RB_PARENT(elm, field) = parent; \ - RB_LEFT(elm, field) = RB_RIGHT(elm, field) = NULL; \ - RB_COLOR(elm, field) = RB_RED; \ - } while (/*CONSTCOND*/ 0) - -#define RB_SET_BLACKRED(black, red, field) \ - do { \ - RB_COLOR(black, field) = RB_BLACK; \ - RB_COLOR(red, field) = RB_RED; \ - } while (/*CONSTCOND*/ 0) +#define RB_HEAD(name, type) \ +struct name { \ + struct type *rbh_root; /* root of the tree */ \ +} + +#define RB_INITIALIZER(root) \ + { NULL } + +#define RB_INIT(root) do { \ + (root)->rbh_root = NULL; \ +} while (/*CONSTCOND*/ 0) + +#define RB_BLACK 0 +#define RB_RED 1 +#define RB_ENTRY(type) \ +struct { \ + struct type *rbe_left; /* left element */ \ + struct type *rbe_right; /* right element */ \ + struct type *rbe_parent; /* parent element */ \ + int rbe_color; /* node color */ \ +} + +#define RB_LEFT(elm, field) (elm)->field.rbe_left +#define RB_RIGHT(elm, field) (elm)->field.rbe_right +#define RB_PARENT(elm, field) (elm)->field.rbe_parent +#define RB_COLOR(elm, field) (elm)->field.rbe_color +#define RB_ROOT(head) (head)->rbh_root +#define RB_EMPTY(head) (RB_ROOT(head) == NULL) + +#define RB_SET(elm, parent, field) do { \ + RB_PARENT(elm, field) = parent; \ + RB_LEFT(elm, field) = RB_RIGHT(elm, field) = NULL; \ + RB_COLOR(elm, field) = RB_RED; \ +} while (/*CONSTCOND*/ 0) + +#define RB_SET_BLACKRED(black, red, field) do { \ + RB_COLOR(black, field) = RB_BLACK; \ + RB_COLOR(red, field) = RB_RED; \ +} while (/*CONSTCOND*/ 0) #ifndef RB_AUGMENT -#define RB_AUGMENT(x) \ - do { \ - } while (0) +#define RB_AUGMENT(x) do {} while (0) #endif -#define RB_ROTATE_LEFT(head, elm, tmp, field) \ - do { \ - (tmp) = RB_RIGHT(elm, field); \ - if ((RB_RIGHT(elm, field) = RB_LEFT(tmp, field)) != NULL) { \ - RB_PARENT(RB_LEFT(tmp, field), field) = (elm); \ - } \ - RB_AUGMENT(elm); \ - if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \ - if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \ - RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \ - else \ - RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \ - } else \ - (head)->rbh_root = (tmp); \ - RB_LEFT(tmp, field) = (elm); \ - RB_PARENT(elm, field) = (tmp); \ - RB_AUGMENT(tmp); \ - if ((RB_PARENT(tmp, field))) \ - RB_AUGMENT(RB_PARENT(tmp, field)); \ - } while (/*CONSTCOND*/ 0) - -#define RB_ROTATE_RIGHT(head, elm, tmp, field) \ - do { \ - (tmp) = RB_LEFT(elm, field); \ - if ((RB_LEFT(elm, field) = RB_RIGHT(tmp, field)) != NULL) { \ - RB_PARENT(RB_RIGHT(tmp, field), field) = (elm); \ - } \ - RB_AUGMENT(elm); \ - if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \ - if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \ - RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \ - else \ - RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \ - } else \ - (head)->rbh_root = (tmp); \ - RB_RIGHT(tmp, field) = (elm); \ - RB_PARENT(elm, field) = (tmp); \ - RB_AUGMENT(tmp); \ - if ((RB_PARENT(tmp, field))) \ - RB_AUGMENT(RB_PARENT(tmp, field)); \ - } while (/*CONSTCOND*/ 0) +#define RB_ROTATE_LEFT(head, elm, tmp, field) do { \ + (tmp) = RB_RIGHT(elm, field); \ + if ((RB_RIGHT(elm, field) = RB_LEFT(tmp, field)) != NULL) { \ + RB_PARENT(RB_LEFT(tmp, field), field) = (elm); \ + } \ + RB_AUGMENT(elm); \ + if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \ + if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \ + RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \ + else \ + RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \ + } else \ + (head)->rbh_root = (tmp); \ + RB_LEFT(tmp, field) = (elm); \ + RB_PARENT(elm, field) = (tmp); \ + RB_AUGMENT(tmp); \ + if ((RB_PARENT(tmp, field))) \ + RB_AUGMENT(RB_PARENT(tmp, field)); \ +} while (/*CONSTCOND*/ 0) + +#define RB_ROTATE_RIGHT(head, elm, tmp, field) do { \ + (tmp) = RB_LEFT(elm, field); \ + if ((RB_LEFT(elm, field) = RB_RIGHT(tmp, field)) != NULL) { \ + RB_PARENT(RB_RIGHT(tmp, field), field) = (elm); \ + } \ + RB_AUGMENT(elm); \ + if ((RB_PARENT(tmp, field) = RB_PARENT(elm, field)) != NULL) { \ + if ((elm) == RB_LEFT(RB_PARENT(elm, field), field)) \ + RB_LEFT(RB_PARENT(elm, field), field) = (tmp); \ + else \ + RB_RIGHT(RB_PARENT(elm, field), field) = (tmp); \ + } else \ + (head)->rbh_root = (tmp); \ + RB_RIGHT(tmp, field) = (elm); \ + RB_PARENT(elm, field) = (tmp); \ + RB_AUGMENT(tmp); \ + if ((RB_PARENT(tmp, field))) \ + RB_AUGMENT(RB_PARENT(tmp, field)); \ +} while (/*CONSTCOND*/ 0) /* Generates prototypes and inline functions */ -#define RB_PROTOTYPE(name, type, field, cmp) \ - RB_PROTOTYPE_INTERNAL(name, type, field, cmp, ) -#define RB_PROTOTYPE_STATIC(name, type, field, cmp) \ +#define RB_PROTOTYPE(name, type, field, cmp) \ + RB_PROTOTYPE_INTERNAL(name, type, field, cmp,) +#define RB_PROTOTYPE_STATIC(name, type, field, cmp) \ RB_PROTOTYPE_INTERNAL(name, type, field, cmp, UV__UNUSED static) -#define RB_PROTOTYPE_INTERNAL(name, type, field, cmp, attr) \ - attr void name##_RB_INSERT_COLOR(struct name *, struct type *); \ - attr void name##_RB_REMOVE_COLOR(struct name *, struct type *, \ - struct type *); \ - attr struct type *name##_RB_REMOVE(struct name *, struct type *); \ - attr struct type *name##_RB_INSERT(struct name *, struct type *); \ - attr struct type *name##_RB_FIND(struct name *, struct type *); \ - attr struct type *name##_RB_NFIND(struct name *, struct type *); \ - attr struct type *name##_RB_NEXT(struct type *); \ - attr struct type *name##_RB_PREV(struct type *); \ - attr struct type *name##_RB_MINMAX(struct name *, int); +#define RB_PROTOTYPE_INTERNAL(name, type, field, cmp, attr) \ +attr void name##_RB_INSERT_COLOR(struct name *, struct type *); \ +attr void name##_RB_REMOVE_COLOR(struct name *, struct type *, struct type *);\ +attr struct type *name##_RB_REMOVE(struct name *, struct type *); \ +attr struct type *name##_RB_INSERT(struct name *, struct type *); \ +attr struct type *name##_RB_FIND(struct name *, struct type *); \ +attr struct type *name##_RB_NFIND(struct name *, struct type *); \ +attr struct type *name##_RB_NEXT(struct type *); \ +attr struct type *name##_RB_PREV(struct type *); \ +attr struct type *name##_RB_MINMAX(struct name *, int); \ + \ /* Main rb operation. * Moves node close to the key of elm to top */ -#define RB_GENERATE(name, type, field, cmp) \ - RB_GENERATE_INTERNAL(name, type, field, cmp, ) -#define RB_GENERATE_STATIC(name, type, field, cmp) \ +#define RB_GENERATE(name, type, field, cmp) \ + RB_GENERATE_INTERNAL(name, type, field, cmp,) +#define RB_GENERATE_STATIC(name, type, field, cmp) \ RB_GENERATE_INTERNAL(name, type, field, cmp, UV__UNUSED static) -#define RB_GENERATE_INTERNAL(name, type, field, cmp, attr) \ - attr void name##_RB_INSERT_COLOR(struct name *head, struct type *elm) { \ - struct type *parent, *gparent, *tmp; \ - while ((parent = RB_PARENT(elm, field)) != NULL && \ - RB_COLOR(parent, field) == RB_RED) { \ - gparent = RB_PARENT(parent, field); \ - if (parent == RB_LEFT(gparent, field)) { \ - tmp = RB_RIGHT(gparent, field); \ - if (tmp && RB_COLOR(tmp, field) == RB_RED) { \ - RB_COLOR(tmp, field) = RB_BLACK; \ - RB_SET_BLACKRED(parent, gparent, field); \ - elm = gparent; \ - continue; \ - } \ - if (RB_RIGHT(parent, field) == elm) { \ - RB_ROTATE_LEFT(head, parent, tmp, field); \ - tmp = parent; \ - parent = elm; \ - elm = tmp; \ - } \ - RB_SET_BLACKRED(parent, gparent, field); \ - RB_ROTATE_RIGHT(head, gparent, tmp, field); \ - } else { \ - tmp = RB_LEFT(gparent, field); \ - if (tmp && RB_COLOR(tmp, field) == RB_RED) { \ - RB_COLOR(tmp, field) = RB_BLACK; \ - RB_SET_BLACKRED(parent, gparent, field); \ - elm = gparent; \ - continue; \ - } \ - if (RB_LEFT(parent, field) == elm) { \ - RB_ROTATE_RIGHT(head, parent, tmp, field); \ - tmp = parent; \ - parent = elm; \ - elm = tmp; \ - } \ - RB_SET_BLACKRED(parent, gparent, field); \ - RB_ROTATE_LEFT(head, gparent, tmp, field); \ - } \ - } \ - RB_COLOR(head->rbh_root, field) = RB_BLACK; \ - } \ - \ - attr void name##_RB_REMOVE_COLOR(struct name *head, struct type *parent, \ - struct type *elm) { \ - struct type *tmp; \ - while ((elm == NULL || RB_COLOR(elm, field) == RB_BLACK) && \ - elm != RB_ROOT(head)) { \ - if (RB_LEFT(parent, field) == elm) { \ - tmp = RB_RIGHT(parent, field); \ - if (RB_COLOR(tmp, field) == RB_RED) { \ - RB_SET_BLACKRED(tmp, parent, field); \ - RB_ROTATE_LEFT(head, parent, tmp, field); \ - tmp = RB_RIGHT(parent, field); \ - } \ - if ((RB_LEFT(tmp, field) == NULL || \ - RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) && \ - (RB_RIGHT(tmp, field) == NULL || \ - RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) { \ - RB_COLOR(tmp, field) = RB_RED; \ - elm = parent; \ - parent = RB_PARENT(elm, field); \ - } else { \ - if (RB_RIGHT(tmp, field) == NULL || \ - RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK) { \ - struct type *oleft; \ - if ((oleft = RB_LEFT(tmp, field)) != NULL) \ - RB_COLOR(oleft, field) = RB_BLACK; \ - RB_COLOR(tmp, field) = RB_RED; \ - RB_ROTATE_RIGHT(head, tmp, oleft, field); \ - tmp = RB_RIGHT(parent, field); \ - } \ - RB_COLOR(tmp, field) = RB_COLOR(parent, field); \ - RB_COLOR(parent, field) = RB_BLACK; \ - if (RB_RIGHT(tmp, field)) \ - RB_COLOR(RB_RIGHT(tmp, field), field) = RB_BLACK; \ - RB_ROTATE_LEFT(head, parent, tmp, field); \ - elm = RB_ROOT(head); \ - break; \ - } \ - } else { \ - tmp = RB_LEFT(parent, field); \ - if (RB_COLOR(tmp, field) == RB_RED) { \ - RB_SET_BLACKRED(tmp, parent, field); \ - RB_ROTATE_RIGHT(head, parent, tmp, field); \ - tmp = RB_LEFT(parent, field); \ - } \ - if ((RB_LEFT(tmp, field) == NULL || \ - RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) && \ - (RB_RIGHT(tmp, field) == NULL || \ - RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) { \ - RB_COLOR(tmp, field) = RB_RED; \ - elm = parent; \ - parent = RB_PARENT(elm, field); \ - } else { \ - if (RB_LEFT(tmp, field) == NULL || \ - RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) { \ - struct type *oright; \ - if ((oright = RB_RIGHT(tmp, field)) != NULL) \ - RB_COLOR(oright, field) = RB_BLACK; \ - RB_COLOR(tmp, field) = RB_RED; \ - RB_ROTATE_LEFT(head, tmp, oright, field); \ - tmp = RB_LEFT(parent, field); \ - } \ - RB_COLOR(tmp, field) = RB_COLOR(parent, field); \ - RB_COLOR(parent, field) = RB_BLACK; \ - if (RB_LEFT(tmp, field)) \ - RB_COLOR(RB_LEFT(tmp, field), field) = RB_BLACK; \ - RB_ROTATE_RIGHT(head, parent, tmp, field); \ - elm = RB_ROOT(head); \ - break; \ - } \ - } \ - } \ - if (elm) \ - RB_COLOR(elm, field) = RB_BLACK; \ - } \ - \ - attr struct type *name##_RB_REMOVE(struct name *head, struct type *elm) { \ - struct type *child, *parent, *old = elm; \ - int color; \ - if (RB_LEFT(elm, field) == NULL) \ - child = RB_RIGHT(elm, field); \ - else if (RB_RIGHT(elm, field) == NULL) \ - child = RB_LEFT(elm, field); \ - else { \ - struct type *left; \ - elm = RB_RIGHT(elm, field); \ - while ((left = RB_LEFT(elm, field)) != NULL) \ - elm = left; \ - child = RB_RIGHT(elm, field); \ - parent = RB_PARENT(elm, field); \ - color = RB_COLOR(elm, field); \ - if (child) \ - RB_PARENT(child, field) = parent; \ - if (parent) { \ - if (RB_LEFT(parent, field) == elm) \ - RB_LEFT(parent, field) = child; \ - else \ - RB_RIGHT(parent, field) = child; \ - RB_AUGMENT(parent); \ - } else \ - RB_ROOT(head) = child; \ - if (RB_PARENT(elm, field) == old) \ - parent = elm; \ - (elm)->field = (old)->field; \ - if (RB_PARENT(old, field)) { \ - if (RB_LEFT(RB_PARENT(old, field), field) == old) \ - RB_LEFT(RB_PARENT(old, field), field) = elm; \ - else \ - RB_RIGHT(RB_PARENT(old, field), field) = elm; \ - RB_AUGMENT(RB_PARENT(old, field)); \ - } else \ - RB_ROOT(head) = elm; \ - RB_PARENT(RB_LEFT(old, field), field) = elm; \ - if (RB_RIGHT(old, field)) \ - RB_PARENT(RB_RIGHT(old, field), field) = elm; \ - if (parent) { \ - left = parent; \ - do { \ - RB_AUGMENT(left); \ - } while ((left = RB_PARENT(left, field)) != NULL); \ - } \ - goto color; \ - } \ - parent = RB_PARENT(elm, field); \ - color = RB_COLOR(elm, field); \ - if (child) \ - RB_PARENT(child, field) = parent; \ - if (parent) { \ - if (RB_LEFT(parent, field) == elm) \ - RB_LEFT(parent, field) = child; \ - else \ - RB_RIGHT(parent, field) = child; \ - RB_AUGMENT(parent); \ - } else \ - RB_ROOT(head) = child; \ - color: \ - if (color == RB_BLACK) \ - name##_RB_REMOVE_COLOR(head, parent, child); \ - return (old); \ - } \ - \ - /* Inserts a node into the RB tree */ \ - attr struct type *name##_RB_INSERT(struct name *head, struct type *elm) { \ - struct type *tmp; \ - struct type *parent = NULL; \ - int comp = 0; \ - tmp = RB_ROOT(head); \ - while (tmp) { \ - parent = tmp; \ - comp = (cmp)(elm, parent); \ - if (comp < 0) \ - tmp = RB_LEFT(tmp, field); \ - else if (comp > 0) \ - tmp = RB_RIGHT(tmp, field); \ - else \ - return (tmp); \ - } \ - RB_SET(elm, parent, field); \ - if (parent != NULL) { \ - if (comp < 0) \ - RB_LEFT(parent, field) = elm; \ - else \ - RB_RIGHT(parent, field) = elm; \ - RB_AUGMENT(parent); \ - } else \ - RB_ROOT(head) = elm; \ - name##_RB_INSERT_COLOR(head, elm); \ - return (NULL); \ - } \ - \ - /* Finds the node with the same key as elm */ \ - attr struct type *name##_RB_FIND(struct name *head, struct type *elm) { \ - struct type *tmp = RB_ROOT(head); \ - int comp; \ - while (tmp) { \ - comp = cmp(elm, tmp); \ - if (comp < 0) \ - tmp = RB_LEFT(tmp, field); \ - else if (comp > 0) \ - tmp = RB_RIGHT(tmp, field); \ - else \ - return (tmp); \ - } \ - return (NULL); \ - } \ - \ - /* Finds the first node greater than or equal to the search key */ \ - attr struct type *name##_RB_NFIND(struct name *head, struct type *elm) { \ - struct type *tmp = RB_ROOT(head); \ - struct type *res = NULL; \ - int comp; \ - while (tmp) { \ - comp = cmp(elm, tmp); \ - if (comp < 0) { \ - res = tmp; \ - tmp = RB_LEFT(tmp, field); \ - } else if (comp > 0) \ - tmp = RB_RIGHT(tmp, field); \ - else \ - return (tmp); \ - } \ - return (res); \ - } \ - \ - /* ARGSUSED */ \ - attr struct type *name##_RB_NEXT(struct type *elm) { \ - if (RB_RIGHT(elm, field)) { \ - elm = RB_RIGHT(elm, field); \ - while (RB_LEFT(elm, field)) \ - elm = RB_LEFT(elm, field); \ - } else { \ - if (RB_PARENT(elm, field) && \ - (elm == RB_LEFT(RB_PARENT(elm, field), field))) \ - elm = RB_PARENT(elm, field); \ - else { \ - while (RB_PARENT(elm, field) && \ - (elm == RB_RIGHT(RB_PARENT(elm, field), field))) \ - elm = RB_PARENT(elm, field); \ - elm = RB_PARENT(elm, field); \ - } \ - } \ - return (elm); \ - } \ - \ - /* ARGSUSED */ \ - attr struct type *name##_RB_PREV(struct type *elm) { \ - if (RB_LEFT(elm, field)) { \ - elm = RB_LEFT(elm, field); \ - while (RB_RIGHT(elm, field)) \ - elm = RB_RIGHT(elm, field); \ - } else { \ - if (RB_PARENT(elm, field) && \ - (elm == RB_RIGHT(RB_PARENT(elm, field), field))) \ - elm = RB_PARENT(elm, field); \ - else { \ - while (RB_PARENT(elm, field) && \ - (elm == RB_LEFT(RB_PARENT(elm, field), field))) \ - elm = RB_PARENT(elm, field); \ - elm = RB_PARENT(elm, field); \ - } \ - } \ - return (elm); \ - } \ - \ - attr struct type *name##_RB_MINMAX(struct name *head, int val) { \ - struct type *tmp = RB_ROOT(head); \ - struct type *parent = NULL; \ - while (tmp) { \ - parent = tmp; \ - if (val < 0) \ - tmp = RB_LEFT(tmp, field); \ - else \ - tmp = RB_RIGHT(tmp, field); \ - } \ - return (parent); \ - } - -#define RB_NEGINF -1 -#define RB_INF 1 - -#define RB_INSERT(name, x, y) name##_RB_INSERT(x, y) -#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_MIN(name, x) name##_RB_MINMAX(x, RB_NEGINF) -#define RB_MAX(name, x) name##_RB_MINMAX(x, RB_INF) - -#define RB_FOREACH(x, name, head) \ - for ((x) = RB_MIN(name, head); (x) != NULL; (x) = name##_RB_NEXT(x)) - -#define RB_FOREACH_FROM(x, name, y) \ - for ((x) = (y); ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); \ +#define RB_GENERATE_INTERNAL(name, type, field, cmp, attr) \ +attr void \ +name##_RB_INSERT_COLOR(struct name *head, struct type *elm) \ +{ \ + struct type *parent, *gparent, *tmp; \ + while ((parent = RB_PARENT(elm, field)) != NULL && \ + RB_COLOR(parent, field) == RB_RED) { \ + gparent = RB_PARENT(parent, field); \ + if (parent == RB_LEFT(gparent, field)) { \ + tmp = RB_RIGHT(gparent, field); \ + if (tmp && RB_COLOR(tmp, field) == RB_RED) { \ + RB_COLOR(tmp, field) = RB_BLACK; \ + RB_SET_BLACKRED(parent, gparent, field); \ + elm = gparent; \ + continue; \ + } \ + if (RB_RIGHT(parent, field) == elm) { \ + RB_ROTATE_LEFT(head, parent, tmp, field); \ + tmp = parent; \ + parent = elm; \ + elm = tmp; \ + } \ + RB_SET_BLACKRED(parent, gparent, field); \ + RB_ROTATE_RIGHT(head, gparent, tmp, field); \ + } else { \ + tmp = RB_LEFT(gparent, field); \ + if (tmp && RB_COLOR(tmp, field) == RB_RED) { \ + RB_COLOR(tmp, field) = RB_BLACK; \ + RB_SET_BLACKRED(parent, gparent, field); \ + elm = gparent; \ + continue; \ + } \ + if (RB_LEFT(parent, field) == elm) { \ + RB_ROTATE_RIGHT(head, parent, tmp, field); \ + tmp = parent; \ + parent = elm; \ + elm = tmp; \ + } \ + RB_SET_BLACKRED(parent, gparent, field); \ + RB_ROTATE_LEFT(head, gparent, tmp, field); \ + } \ + } \ + RB_COLOR(head->rbh_root, field) = RB_BLACK; \ +} \ + \ +attr void \ +name##_RB_REMOVE_COLOR(struct name *head, struct type *parent, \ + struct type *elm) \ +{ \ + struct type *tmp; \ + while ((elm == NULL || RB_COLOR(elm, field) == RB_BLACK) && \ + elm != RB_ROOT(head)) { \ + if (RB_LEFT(parent, field) == elm) { \ + tmp = RB_RIGHT(parent, field); \ + if (RB_COLOR(tmp, field) == RB_RED) { \ + RB_SET_BLACKRED(tmp, parent, field); \ + RB_ROTATE_LEFT(head, parent, tmp, field); \ + tmp = RB_RIGHT(parent, field); \ + } \ + if ((RB_LEFT(tmp, field) == NULL || \ + RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) && \ + (RB_RIGHT(tmp, field) == NULL || \ + RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) { \ + RB_COLOR(tmp, field) = RB_RED; \ + elm = parent; \ + parent = RB_PARENT(elm, field); \ + } else { \ + if (RB_RIGHT(tmp, field) == NULL || \ + RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK) { \ + struct type *oleft; \ + if ((oleft = RB_LEFT(tmp, field)) \ + != NULL) \ + RB_COLOR(oleft, field) = RB_BLACK; \ + RB_COLOR(tmp, field) = RB_RED; \ + RB_ROTATE_RIGHT(head, tmp, oleft, field); \ + tmp = RB_RIGHT(parent, field); \ + } \ + RB_COLOR(tmp, field) = RB_COLOR(parent, field); \ + RB_COLOR(parent, field) = RB_BLACK; \ + if (RB_RIGHT(tmp, field)) \ + RB_COLOR(RB_RIGHT(tmp, field), field) = RB_BLACK; \ + RB_ROTATE_LEFT(head, parent, tmp, field); \ + elm = RB_ROOT(head); \ + break; \ + } \ + } else { \ + tmp = RB_LEFT(parent, field); \ + if (RB_COLOR(tmp, field) == RB_RED) { \ + RB_SET_BLACKRED(tmp, parent, field); \ + RB_ROTATE_RIGHT(head, parent, tmp, field); \ + tmp = RB_LEFT(parent, field); \ + } \ + if ((RB_LEFT(tmp, field) == NULL || \ + RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) && \ + (RB_RIGHT(tmp, field) == NULL || \ + RB_COLOR(RB_RIGHT(tmp, field), field) == RB_BLACK)) { \ + RB_COLOR(tmp, field) = RB_RED; \ + elm = parent; \ + parent = RB_PARENT(elm, field); \ + } else { \ + if (RB_LEFT(tmp, field) == NULL || \ + RB_COLOR(RB_LEFT(tmp, field), field) == RB_BLACK) { \ + struct type *oright; \ + if ((oright = RB_RIGHT(tmp, field)) \ + != NULL) \ + RB_COLOR(oright, field) = RB_BLACK; \ + RB_COLOR(tmp, field) = RB_RED; \ + RB_ROTATE_LEFT(head, tmp, oright, field); \ + tmp = RB_LEFT(parent, field); \ + } \ + RB_COLOR(tmp, field) = RB_COLOR(parent, field); \ + RB_COLOR(parent, field) = RB_BLACK; \ + if (RB_LEFT(tmp, field)) \ + RB_COLOR(RB_LEFT(tmp, field), field) = RB_BLACK; \ + RB_ROTATE_RIGHT(head, parent, tmp, field); \ + elm = RB_ROOT(head); \ + break; \ + } \ + } \ + } \ + if (elm) \ + RB_COLOR(elm, field) = RB_BLACK; \ +} \ + \ +attr struct type * \ +name##_RB_REMOVE(struct name *head, struct type *elm) \ +{ \ + struct type *child, *parent, *old = elm; \ + int color; \ + if (RB_LEFT(elm, field) == NULL) \ + child = RB_RIGHT(elm, field); \ + else if (RB_RIGHT(elm, field) == NULL) \ + child = RB_LEFT(elm, field); \ + else { \ + struct type *left; \ + elm = RB_RIGHT(elm, field); \ + while ((left = RB_LEFT(elm, field)) != NULL) \ + elm = left; \ + child = RB_RIGHT(elm, field); \ + parent = RB_PARENT(elm, field); \ + color = RB_COLOR(elm, field); \ + if (child) \ + RB_PARENT(child, field) = parent; \ + if (parent) { \ + if (RB_LEFT(parent, field) == elm) \ + RB_LEFT(parent, field) = child; \ + else \ + RB_RIGHT(parent, field) = child; \ + RB_AUGMENT(parent); \ + } else \ + RB_ROOT(head) = child; \ + if (RB_PARENT(elm, field) == old) \ + parent = elm; \ + (elm)->field = (old)->field; \ + if (RB_PARENT(old, field)) { \ + if (RB_LEFT(RB_PARENT(old, field), field) == old) \ + RB_LEFT(RB_PARENT(old, field), field) = elm; \ + else \ + RB_RIGHT(RB_PARENT(old, field), field) = elm; \ + RB_AUGMENT(RB_PARENT(old, field)); \ + } else \ + RB_ROOT(head) = elm; \ + RB_PARENT(RB_LEFT(old, field), field) = elm; \ + if (RB_RIGHT(old, field)) \ + RB_PARENT(RB_RIGHT(old, field), field) = elm; \ + if (parent) { \ + left = parent; \ + do { \ + RB_AUGMENT(left); \ + } while ((left = RB_PARENT(left, field)) != NULL); \ + } \ + goto color; \ + } \ + parent = RB_PARENT(elm, field); \ + color = RB_COLOR(elm, field); \ + if (child) \ + RB_PARENT(child, field) = parent; \ + if (parent) { \ + if (RB_LEFT(parent, field) == elm) \ + RB_LEFT(parent, field) = child; \ + else \ + RB_RIGHT(parent, field) = child; \ + RB_AUGMENT(parent); \ + } else \ + RB_ROOT(head) = child; \ +color: \ + if (color == RB_BLACK) \ + name##_RB_REMOVE_COLOR(head, parent, child); \ + return (old); \ +} \ + \ +/* Inserts a node into the RB tree */ \ +attr struct type * \ +name##_RB_INSERT(struct name *head, struct type *elm) \ +{ \ + struct type *tmp; \ + struct type *parent = NULL; \ + int comp = 0; \ + tmp = RB_ROOT(head); \ + while (tmp) { \ + parent = tmp; \ + comp = (cmp)(elm, parent); \ + if (comp < 0) \ + tmp = RB_LEFT(tmp, field); \ + else if (comp > 0) \ + tmp = RB_RIGHT(tmp, field); \ + else \ + return (tmp); \ + } \ + RB_SET(elm, parent, field); \ + if (parent != NULL) { \ + if (comp < 0) \ + RB_LEFT(parent, field) = elm; \ + else \ + RB_RIGHT(parent, field) = elm; \ + RB_AUGMENT(parent); \ + } else \ + RB_ROOT(head) = elm; \ + name##_RB_INSERT_COLOR(head, elm); \ + return (NULL); \ +} \ + \ +/* Finds the node with the same key as elm */ \ +attr struct type * \ +name##_RB_FIND(struct name *head, struct type *elm) \ +{ \ + struct type *tmp = RB_ROOT(head); \ + int comp; \ + while (tmp) { \ + comp = cmp(elm, tmp); \ + if (comp < 0) \ + tmp = RB_LEFT(tmp, field); \ + else if (comp > 0) \ + tmp = RB_RIGHT(tmp, field); \ + else \ + return (tmp); \ + } \ + return (NULL); \ +} \ + \ +/* Finds the first node greater than or equal to the search key */ \ +attr struct type * \ +name##_RB_NFIND(struct name *head, struct type *elm) \ +{ \ + struct type *tmp = RB_ROOT(head); \ + struct type *res = NULL; \ + int comp; \ + while (tmp) { \ + comp = cmp(elm, tmp); \ + if (comp < 0) { \ + res = tmp; \ + tmp = RB_LEFT(tmp, field); \ + } \ + else if (comp > 0) \ + tmp = RB_RIGHT(tmp, field); \ + else \ + return (tmp); \ + } \ + return (res); \ +} \ + \ +/* ARGSUSED */ \ +attr struct type * \ +name##_RB_NEXT(struct type *elm) \ +{ \ + if (RB_RIGHT(elm, field)) { \ + elm = RB_RIGHT(elm, field); \ + while (RB_LEFT(elm, field)) \ + elm = RB_LEFT(elm, field); \ + } else { \ + if (RB_PARENT(elm, field) && \ + (elm == RB_LEFT(RB_PARENT(elm, field), field))) \ + elm = RB_PARENT(elm, field); \ + else { \ + while (RB_PARENT(elm, field) && \ + (elm == RB_RIGHT(RB_PARENT(elm, field), field))) \ + elm = RB_PARENT(elm, field); \ + elm = RB_PARENT(elm, field); \ + } \ + } \ + return (elm); \ +} \ + \ +/* ARGSUSED */ \ +attr struct type * \ +name##_RB_PREV(struct type *elm) \ +{ \ + if (RB_LEFT(elm, field)) { \ + elm = RB_LEFT(elm, field); \ + while (RB_RIGHT(elm, field)) \ + elm = RB_RIGHT(elm, field); \ + } else { \ + if (RB_PARENT(elm, field) && \ + (elm == RB_RIGHT(RB_PARENT(elm, field), field))) \ + elm = RB_PARENT(elm, field); \ + else { \ + while (RB_PARENT(elm, field) && \ + (elm == RB_LEFT(RB_PARENT(elm, field), field))) \ + elm = RB_PARENT(elm, field); \ + elm = RB_PARENT(elm, field); \ + } \ + } \ + return (elm); \ +} \ + \ +attr struct type * \ +name##_RB_MINMAX(struct name *head, int val) \ +{ \ + struct type *tmp = RB_ROOT(head); \ + struct type *parent = NULL; \ + while (tmp) { \ + parent = tmp; \ + if (val < 0) \ + tmp = RB_LEFT(tmp, field); \ + else \ + tmp = RB_RIGHT(tmp, field); \ + } \ + return (parent); \ +} + +#define RB_NEGINF -1 +#define RB_INF 1 + +#define RB_INSERT(name, x, y) name##_RB_INSERT(x, y) +#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) 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) + +#define RB_FOREACH(x, name, head) \ + for ((x) = RB_MIN(name, head); \ + (x) != NULL; \ + (x) = name##_RB_NEXT(x)) + +#define RB_FOREACH_FROM(x, name, y) \ + for ((x) = (y); \ + ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); \ (x) = (y)) -#define RB_FOREACH_SAFE(x, name, head, y) \ - for ((x) = RB_MIN(name, head); \ - ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); (x) = (y)) +#define RB_FOREACH_SAFE(x, name, head, y) \ + for ((x) = RB_MIN(name, head); \ + ((x) != NULL) && ((y) = name##_RB_NEXT(x), (x) != NULL); \ + (x) = (y)) -#define RB_FOREACH_REVERSE(x, name, head) \ - for ((x) = RB_MAX(name, head); (x) != NULL; (x) = name##_RB_PREV(x)) +#define RB_FOREACH_REVERSE(x, name, head) \ + for ((x) = RB_MAX(name, head); \ + (x) != NULL; \ + (x) = name##_RB_PREV(x)) -#define RB_FOREACH_REVERSE_FROM(x, name, y) \ - for ((x) = (y); ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); \ +#define RB_FOREACH_REVERSE_FROM(x, name, y) \ + for ((x) = (y); \ + ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); \ (x) = (y)) -#define RB_FOREACH_REVERSE_SAFE(x, name, head, y) \ - for ((x) = RB_MAX(name, head); \ - ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); (x) = (y)) +#define RB_FOREACH_REVERSE_SAFE(x, name, head, y) \ + for ((x) = RB_MAX(name, head); \ + ((x) != NULL) && ((y) = name##_RB_PREV(x), (x) != NULL); \ + (x) = (y)) -#endif /* UV_TREE_H_ */ +#endif /* UV_TREE_H_ */ diff --git a/src/libuv/include/uv/unix.h b/src/libuv/include/uv/unix.h index c5725dcf..c6ba419d 100644 --- a/src/libuv/include/uv/unix.h +++ b/src/libuv/include/uv/unix.h @@ -22,19 +22,19 @@ #ifndef UV_UNIX_H #define UV_UNIX_H -#include -#include -#include #include +#include +#include +#include -#include -#include /* MAXHOSTNAMELEN on Solaris */ +#include #include #include -#include +#include +#include /* MAXHOSTNAMELEN on Solaris */ -#include #include +#include #if !defined(__MVS__) #include @@ -46,48 +46,51 @@ #include "uv/threadpool.h" #if defined(__linux__) -#include "uv/linux.h" -#elif defined(__MVS__) -#include "uv/os390.h" -#elif defined(__PASE__) /* __PASE__ and _AIX are both defined on IBM i */ -#include "uv/posix.h" /* IBM i needs uv/posix.h, not uv/aix.h */ +# include "uv/linux.h" +#elif defined (__MVS__) +# include "uv/os390.h" +#elif defined(__PASE__) /* __PASE__ and _AIX are both defined on IBM i */ +# include "uv/posix.h" /* IBM i needs uv/posix.h, not uv/aix.h */ #elif defined(_AIX) -#include "uv/aix.h" +# include "uv/aix.h" #elif defined(__sun) -#include "uv/sunos.h" +# include "uv/sunos.h" #elif defined(__APPLE__) -#include "uv/darwin.h" -#elif defined(__DragonFly__) || defined(__FreeBSD__) || \ - defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__NetBSD__) -#include "uv/bsd.h" -#elif defined(__CYGWIN__) || defined(__MSYS__) || defined(__HAIKU__) || \ - defined(__QNX__) || defined(__GNU__) -#include "uv/posix.h" +# include "uv/darwin.h" +#elif defined(__DragonFly__) || \ + defined(__FreeBSD__) || \ + defined(__OpenBSD__) || \ + defined(__NetBSD__) +# include "uv/bsd.h" +#elif defined(__CYGWIN__) || \ + defined(__MSYS__) || \ + defined(__HAIKU__) || \ + defined(__QNX__) || \ + defined(__GNU__) +# include "uv/posix.h" #endif #ifndef NI_MAXHOST -#define NI_MAXHOST 1025 +# define NI_MAXHOST 1025 #endif #ifndef NI_MAXSERV -#define NI_MAXSERV 32 +# define NI_MAXSERV 32 #endif #ifndef UV_IO_PRIVATE_PLATFORM_FIELDS -#define UV_IO_PRIVATE_PLATFORM_FIELDS /* empty */ +# define UV_IO_PRIVATE_PLATFORM_FIELDS /* empty */ #endif 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; @@ -95,24 +98,24 @@ struct uv__io_s { }; #ifndef UV_PLATFORM_SEM_T -#define UV_PLATFORM_SEM_T sem_t +# define UV_PLATFORM_SEM_T sem_t #endif #ifndef UV_PLATFORM_LOOP_FIELDS -#define UV_PLATFORM_LOOP_FIELDS /* empty */ +# define UV_PLATFORM_LOOP_FIELDS /* empty */ #endif #ifndef UV_PLATFORM_FS_EVENT_FIELDS -#define UV_PLATFORM_FS_EVENT_FIELDS /* empty */ +# define UV_PLATFORM_FS_EVENT_FIELDS /* empty */ #endif #ifndef UV_STREAM_PRIVATE_PLATFORM_FIELDS -#define UV_STREAM_PRIVATE_PLATFORM_FIELDS /* empty */ +# define UV_STREAM_PRIVATE_PLATFORM_FIELDS /* empty */ #endif /* Note: May be cast to struct iovec. See writev(2). */ typedef struct uv_buf_t { - char *base; + char* base; size_t len; } uv_buf_t; @@ -132,7 +135,8 @@ typedef pthread_cond_t uv_cond_t; typedef pthread_key_t uv_key_t; /* Note: guard clauses should match uv_barrier_init's in src/unix/thread.c. */ -#if defined(_AIX) || defined(__OpenBSD__) || \ +#if defined(_AIX) || \ + defined(__OpenBSD__) || \ !defined(PTHREAD_BARRIER_SERIAL_THREAD) /* TODO(bnoordhuis) Merge into uv_barrier_t in v2. */ struct _uv_barrier { @@ -144,11 +148,11 @@ struct _uv_barrier { }; typedef struct { - struct _uv_barrier *b; -#if defined(PTHREAD_BARRIER_SERIAL_THREAD) + struct _uv_barrier* b; +# if defined(PTHREAD_BARRIER_SERIAL_THREAD) /* TODO(bnoordhuis) Remove padding in v2. */ - char pad[sizeof(pthread_barrier_t) - sizeof(struct _uv_barrier *)]; -#endif + char pad[sizeof(pthread_barrier_t) - sizeof(struct _uv_barrier*)]; +# endif } uv_barrier_t; #else typedef pthread_barrier_t uv_barrier_t; @@ -160,333 +164,346 @@ typedef uid_t uv_uid_t; typedef struct dirent uv__dirent_t; -#define UV_DIR_PRIVATE_FIELDS DIR *dir; +#define UV_DIR_PRIVATE_FIELDS \ + DIR* dir; #if defined(DT_UNKNOWN) -#define HAVE_DIRENT_TYPES -#if defined(DT_REG) -#define UV__DT_FILE DT_REG -#else -#define UV__DT_FILE -1 -#endif -#if defined(DT_DIR) -#define UV__DT_DIR DT_DIR -#else -#define UV__DT_DIR -2 -#endif -#if defined(DT_LNK) -#define UV__DT_LINK DT_LNK -#else -#define UV__DT_LINK -3 -#endif -#if defined(DT_FIFO) -#define UV__DT_FIFO DT_FIFO -#else -#define UV__DT_FIFO -4 -#endif -#if defined(DT_SOCK) -#define UV__DT_SOCKET DT_SOCK -#else -#define UV__DT_SOCKET -5 -#endif -#if defined(DT_CHR) -#define UV__DT_CHAR DT_CHR -#else -#define UV__DT_CHAR -6 -#endif -#if defined(DT_BLK) -#define UV__DT_BLOCK DT_BLK -#else -#define UV__DT_BLOCK -7 -#endif +# define HAVE_DIRENT_TYPES +# if defined(DT_REG) +# define UV__DT_FILE DT_REG +# else +# define UV__DT_FILE -1 +# endif +# if defined(DT_DIR) +# define UV__DT_DIR DT_DIR +# else +# define UV__DT_DIR -2 +# endif +# if defined(DT_LNK) +# define UV__DT_LINK DT_LNK +# else +# define UV__DT_LINK -3 +# endif +# if defined(DT_FIFO) +# define UV__DT_FIFO DT_FIFO +# else +# define UV__DT_FIFO -4 +# endif +# if defined(DT_SOCK) +# define UV__DT_SOCKET DT_SOCK +# else +# define UV__DT_SOCKET -5 +# endif +# if defined(DT_CHR) +# define UV__DT_CHAR DT_CHR +# else +# define UV__DT_CHAR -6 +# endif +# if defined(DT_BLK) +# define UV__DT_BLOCK DT_BLK +# else +# define UV__DT_BLOCK -7 +# endif #endif /* Platform-specific definitions for uv_dlopen support. */ #define UV_DYNAMIC /* empty */ typedef struct { - void *handle; - char *errmsg; + void* handle; + char* errmsg; } uv_lib_t; -#define UV_LOOP_PRIVATE_FIELDS \ - unsigned long flags; \ - int backend_fd; \ - void *pending_queue[2]; \ - void *watcher_queue[2]; \ - uv__io_t **watchers; \ - unsigned int nwatchers; \ - unsigned int nfds; \ - void *wq[2]; \ - 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]; \ - void (*async_unused)(void); /* TODO(bnoordhuis) Remove in libuv v2. */ \ - uv__io_t async_io_watcher; \ - int async_wfd; \ - struct { \ - void *min; \ - unsigned int nelts; \ - } timer_heap; \ - uint64_t timer_counter; \ - uint64_t time; \ - int signal_pipefd[2]; \ - uv__io_t signal_io_watcher; \ - uv_signal_t child_watcher; \ - int emfile_fd; \ - UV_PLATFORM_LOOP_FIELDS +#define UV_LOOP_PRIVATE_FIELDS \ + unsigned long flags; \ + int backend_fd; \ + struct uv__queue pending_queue; \ + struct uv__queue watcher_queue; \ + uv__io_t** watchers; \ + unsigned int nwatchers; \ + unsigned int nfds; \ + struct uv__queue wq; \ + uv_mutex_t wq_mutex; \ + uv_async_t wq_async; \ + uv_rwlock_t cloexec_lock; \ + uv_handle_t* closing_handles; \ + 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; \ + struct { \ + void* min; \ + unsigned int nelts; \ + } timer_heap; \ + uint64_t timer_counter; \ + uint64_t time; \ + int signal_pipefd[2]; \ + uv__io_t signal_io_watcher; \ + uv_signal_t child_watcher; \ + int emfile_fd; \ + UV_PLATFORM_LOOP_FIELDS \ #define UV_REQ_TYPE_PRIVATE /* empty */ -#define UV_REQ_PRIVATE_FIELDS /* empty */ +#define UV_REQ_PRIVATE_FIELDS /* empty */ #define UV_PRIVATE_REQ_TYPES /* empty */ -#define UV_WRITE_PRIVATE_FIELDS \ - void *queue[2]; \ - unsigned int write_index; \ - uv_buf_t *bufs; \ - unsigned int nbufs; \ - int error; \ - uv_buf_t bufsml[4]; +#define UV_WRITE_PRIVATE_FIELDS \ + struct uv__queue queue; \ + unsigned int write_index; \ + uv_buf_t* bufs; \ + unsigned int nbufs; \ + int error; \ + uv_buf_t bufsml[4]; \ -#define UV_CONNECT_PRIVATE_FIELDS void *queue[2]; +#define UV_CONNECT_PRIVATE_FIELDS \ + struct uv__queue queue; \ #define UV_SHUTDOWN_PRIVATE_FIELDS /* empty */ -#define UV_UDP_SEND_PRIVATE_FIELDS \ - void *queue[2]; \ - struct sockaddr_storage addr; \ - unsigned int nbufs; \ - uv_buf_t *bufs; \ - ssize_t status; \ - uv_udp_send_cb send_cb; \ - uv_buf_t bufsml[4]; - -#define UV_HANDLE_PRIVATE_FIELDS \ - uv_handle_t *next_closing; \ - unsigned int flags; - -#define UV_STREAM_PRIVATE_FIELDS \ - uv_connect_t *connect_req; \ - uv_shutdown_t *shutdown_req; \ - uv__io_t io_watcher; \ - void *write_queue[2]; \ - void *write_completed_queue[2]; \ - uv_connection_cb connection_cb; \ - int delayed_error; \ - int accepted_fd; \ - void *queued_fds; \ - UV_STREAM_PRIVATE_PLATFORM_FIELDS +#define UV_UDP_SEND_PRIVATE_FIELDS \ + struct uv__queue queue; \ + union { \ + struct sockaddr addr; \ + struct sockaddr_storage storage; \ + } u; \ + unsigned int nbufs; \ + uv_buf_t* bufs; \ + ssize_t status; \ + uv_udp_send_cb send_cb; \ + uv_buf_t bufsml[4]; \ + +#define UV_HANDLE_PRIVATE_FIELDS \ + uv_handle_t* next_closing; \ + unsigned int flags; \ + +#define UV_STREAM_PRIVATE_FIELDS \ + uv_connect_t *connect_req; \ + uv_shutdown_t *shutdown_req; \ + uv__io_t io_watcher; \ + struct uv__queue write_queue; \ + struct uv__queue write_completed_queue; \ + uv_connection_cb connection_cb; \ + int delayed_error; \ + int accepted_fd; \ + void* queued_fds; \ + UV_STREAM_PRIVATE_PLATFORM_FIELDS \ #define UV_TCP_PRIVATE_FIELDS /* empty */ -#define UV_UDP_PRIVATE_FIELDS \ - 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]; - -#define UV_PIPE_PRIVATE_FIELDS const char *pipe_fname; /* 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]; - -#define UV_CHECK_PRIVATE_FIELDS \ - uv_check_cb check_cb; \ - void *queue[2]; - -#define UV_IDLE_PRIVATE_FIELDS \ - uv_idle_cb idle_cb; \ - void *queue[2]; - -#define UV_ASYNC_PRIVATE_FIELDS \ - uv_async_cb async_cb; \ - void *queue[2]; \ - int pending; - -#define UV_TIMER_PRIVATE_FIELDS \ - uv_timer_cb timer_cb; \ - void *heap_node[3]; \ - uint64_t timeout; \ - uint64_t repeat; \ +#define UV_UDP_PRIVATE_FIELDS \ + uv_alloc_cb alloc_cb; \ + uv_udp_recv_cb recv_cb; \ + uv__io_t io_watcher; \ + struct uv__queue write_queue; \ + struct uv__queue write_completed_queue; \ + +#define UV_PIPE_PRIVATE_FIELDS \ + 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; \ + struct uv__queue queue; \ + +#define UV_CHECK_PRIVATE_FIELDS \ + uv_check_cb check_cb; \ + struct uv__queue queue; \ + +#define UV_IDLE_PRIVATE_FIELDS \ + uv_idle_cb idle_cb; \ + struct uv__queue queue; \ + +#define UV_ASYNC_PRIVATE_FIELDS \ + uv_async_cb async_cb; \ + struct uv__queue queue; \ + int pending; \ + +#define UV_TIMER_PRIVATE_FIELDS \ + uv_timer_cb timer_cb; \ + union { \ + void* heap[3]; \ + struct uv__queue queue; \ + } node; \ + uint64_t timeout; \ + uint64_t repeat; \ uint64_t start_id; -#define UV_GETADDRINFO_PRIVATE_FIELDS \ - struct uv__work work_req; \ - uv_getaddrinfo_cb cb; \ - struct addrinfo *hints; \ - char *hostname; \ - char *service; \ - struct addrinfo *addrinfo; \ +#define UV_GETADDRINFO_PRIVATE_FIELDS \ + struct uv__work work_req; \ + uv_getaddrinfo_cb cb; \ + struct addrinfo* hints; \ + char* hostname; \ + char* service; \ + struct addrinfo* addrinfo; \ int retcode; -#define UV_GETNAMEINFO_PRIVATE_FIELDS \ - struct uv__work work_req; \ - uv_getnameinfo_cb getnameinfo_cb; \ - struct sockaddr_storage storage; \ - int flags; \ - char host[NI_MAXHOST]; \ - char service[NI_MAXSERV]; \ +#define UV_GETNAMEINFO_PRIVATE_FIELDS \ + struct uv__work work_req; \ + uv_getnameinfo_cb getnameinfo_cb; \ + struct sockaddr_storage storage; \ + int flags; \ + char host[NI_MAXHOST]; \ + char service[NI_MAXSERV]; \ int retcode; -#define UV_PROCESS_PRIVATE_FIELDS \ - void *queue[2]; \ - int status; - -#define UV_FS_PRIVATE_FIELDS \ - const char *new_path; \ - uv_file file; \ - int flags; \ - mode_t mode; \ - unsigned int nbufs; \ - uv_buf_t *bufs; \ - off_t off; \ - uv_uid_t uid; \ - uv_gid_t gid; \ - double atime; \ - double mtime; \ - struct uv__work work_req; \ - uv_buf_t bufsml[4]; - -#define UV_WORK_PRIVATE_FIELDS struct uv__work work_req; - -#define UV_TTY_PRIVATE_FIELDS \ - struct termios orig_termios; \ +#define UV_PROCESS_PRIVATE_FIELDS \ + struct uv__queue queue; \ + int status; \ + +#define UV_FS_PRIVATE_FIELDS \ + const char *new_path; \ + uv_file file; \ + int flags; \ + mode_t mode; \ + unsigned int nbufs; \ + uv_buf_t* bufs; \ + off_t off; \ + uv_uid_t uid; \ + uv_gid_t gid; \ + double atime; \ + double mtime; \ + struct uv__work work_req; \ + uv_buf_t bufsml[4]; \ + +#define UV_WORK_PRIVATE_FIELDS \ + struct uv__work work_req; + +#define UV_TTY_PRIVATE_FIELDS \ + struct termios orig_termios; \ int mode; -#define UV_SIGNAL_PRIVATE_FIELDS \ - /* RB_ENTRY(uv_signal_s) tree_entry; */ \ - struct { \ - struct uv_signal_s *rbe_left; \ - struct uv_signal_s *rbe_right; \ - struct uv_signal_s *rbe_parent; \ - int rbe_color; \ - } tree_entry; \ - /* Use two counters here so we don have to fiddle with atomics. */ \ - unsigned int caught_signals; \ +#define UV_SIGNAL_PRIVATE_FIELDS \ + /* RB_ENTRY(uv_signal_s) tree_entry; */ \ + struct { \ + struct uv_signal_s* rbe_left; \ + struct uv_signal_s* rbe_right; \ + struct uv_signal_s* rbe_parent; \ + int rbe_color; \ + } tree_entry; \ + /* Use two counters here so we don have to fiddle with atomics. */ \ + unsigned int caught_signals; \ unsigned int dispatched_signals; -#define UV_FS_EVENT_PRIVATE_FIELDS \ - uv_fs_event_cb cb; \ - UV_PLATFORM_FS_EVENT_FIELDS +#define UV_FS_EVENT_PRIVATE_FIELDS \ + uv_fs_event_cb cb; \ + UV_PLATFORM_FS_EVENT_FIELDS \ /* fs open() flags supported on this platform: */ #if defined(O_APPEND) -#define UV_FS_O_APPEND O_APPEND +# define UV_FS_O_APPEND O_APPEND #else -#define UV_FS_O_APPEND 0 +# define UV_FS_O_APPEND 0 #endif #if defined(O_CREAT) -#define UV_FS_O_CREAT O_CREAT +# define UV_FS_O_CREAT O_CREAT #else -#define UV_FS_O_CREAT 0 +# define UV_FS_O_CREAT 0 #endif #if defined(__linux__) && defined(__arm__) -#define UV_FS_O_DIRECT 0x10000 +# define UV_FS_O_DIRECT 0x10000 #elif defined(__linux__) && defined(__m68k__) -#define UV_FS_O_DIRECT 0x10000 +# define UV_FS_O_DIRECT 0x10000 #elif defined(__linux__) && defined(__mips__) -#define UV_FS_O_DIRECT 0x08000 +# define UV_FS_O_DIRECT 0x08000 #elif defined(__linux__) && defined(__powerpc__) -#define UV_FS_O_DIRECT 0x20000 +# define UV_FS_O_DIRECT 0x20000 #elif defined(__linux__) && defined(__s390x__) -#define UV_FS_O_DIRECT 0x04000 +# define UV_FS_O_DIRECT 0x04000 #elif defined(__linux__) && defined(__x86_64__) -#define UV_FS_O_DIRECT 0x04000 +# 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 +# define UV_FS_O_DIRECT O_DIRECT #else -#define UV_FS_O_DIRECT 0 +# define UV_FS_O_DIRECT 0 #endif #if defined(O_DIRECTORY) -#define UV_FS_O_DIRECTORY O_DIRECTORY +# define UV_FS_O_DIRECTORY O_DIRECTORY #else -#define UV_FS_O_DIRECTORY 0 +# define UV_FS_O_DIRECTORY 0 #endif #if defined(O_DSYNC) -#define UV_FS_O_DSYNC O_DSYNC +# define UV_FS_O_DSYNC O_DSYNC #else -#define UV_FS_O_DSYNC 0 +# define UV_FS_O_DSYNC 0 #endif #if defined(O_EXCL) -#define UV_FS_O_EXCL O_EXCL +# define UV_FS_O_EXCL O_EXCL #else -#define UV_FS_O_EXCL 0 +# define UV_FS_O_EXCL 0 #endif #if defined(O_EXLOCK) -#define UV_FS_O_EXLOCK O_EXLOCK +# define UV_FS_O_EXLOCK O_EXLOCK #else -#define UV_FS_O_EXLOCK 0 +# define UV_FS_O_EXLOCK 0 #endif #if defined(O_NOATIME) -#define UV_FS_O_NOATIME O_NOATIME +# define UV_FS_O_NOATIME O_NOATIME #else -#define UV_FS_O_NOATIME 0 +# define UV_FS_O_NOATIME 0 #endif #if defined(O_NOCTTY) -#define UV_FS_O_NOCTTY O_NOCTTY +# define UV_FS_O_NOCTTY O_NOCTTY #else -#define UV_FS_O_NOCTTY 0 +# define UV_FS_O_NOCTTY 0 #endif #if defined(O_NOFOLLOW) -#define UV_FS_O_NOFOLLOW O_NOFOLLOW +# define UV_FS_O_NOFOLLOW O_NOFOLLOW #else -#define UV_FS_O_NOFOLLOW 0 +# define UV_FS_O_NOFOLLOW 0 #endif #if defined(O_NONBLOCK) -#define UV_FS_O_NONBLOCK O_NONBLOCK +# define UV_FS_O_NONBLOCK O_NONBLOCK #else -#define UV_FS_O_NONBLOCK 0 +# define UV_FS_O_NONBLOCK 0 #endif #if defined(O_RDONLY) -#define UV_FS_O_RDONLY O_RDONLY +# define UV_FS_O_RDONLY O_RDONLY #else -#define UV_FS_O_RDONLY 0 +# define UV_FS_O_RDONLY 0 #endif #if defined(O_RDWR) -#define UV_FS_O_RDWR O_RDWR +# define UV_FS_O_RDWR O_RDWR #else -#define UV_FS_O_RDWR 0 +# define UV_FS_O_RDWR 0 #endif #if defined(O_SYMLINK) -#define UV_FS_O_SYMLINK O_SYMLINK +# define UV_FS_O_SYMLINK O_SYMLINK #else -#define UV_FS_O_SYMLINK 0 +# define UV_FS_O_SYMLINK 0 #endif #if defined(O_SYNC) -#define UV_FS_O_SYNC O_SYNC +# define UV_FS_O_SYNC O_SYNC #else -#define UV_FS_O_SYNC 0 +# define UV_FS_O_SYNC 0 #endif #if defined(O_TRUNC) -#define UV_FS_O_TRUNC O_TRUNC +# define UV_FS_O_TRUNC O_TRUNC #else -#define UV_FS_O_TRUNC 0 +# define UV_FS_O_TRUNC 0 #endif #if defined(O_WRONLY) -#define UV_FS_O_WRONLY O_WRONLY +# define UV_FS_O_WRONLY O_WRONLY #else -#define UV_FS_O_WRONLY 0 +# define UV_FS_O_WRONLY 0 #endif /* fs open() flags supported on other platforms: */ -#define UV_FS_O_FILEMAP 0 -#define UV_FS_O_RANDOM 0 -#define UV_FS_O_SHORT_LIVED 0 -#define UV_FS_O_SEQUENTIAL 0 -#define UV_FS_O_TEMPORARY 0 +#define UV_FS_O_FILEMAP 0 +#define UV_FS_O_RANDOM 0 +#define UV_FS_O_SHORT_LIVED 0 +#define UV_FS_O_SEQUENTIAL 0 +#define UV_FS_O_TEMPORARY 0 #endif /* UV_UNIX_H */ diff --git a/src/libuv/include/uv/version.h b/src/libuv/include/uv/version.h index 35700713..70f071a4 100644 --- a/src/libuv/include/uv/version.h +++ b/src/libuv/include/uv/version.h @@ -22,7 +22,7 @@ #ifndef UV_VERSION_H #define UV_VERSION_H -/* + /* * Versions with the same major number are ABI stable. API is allowed to * evolve between minor releases, but only in a backwards compatible way. * Make sure you update the -soname directives in configure.ac @@ -31,12 +31,13 @@ */ #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 "" -#define UV_VERSION_HEX \ - ((UV_VERSION_MAJOR << 16) | (UV_VERSION_MINOR << 8) | (UV_VERSION_PATCH)) +#define UV_VERSION_HEX ((UV_VERSION_MAJOR << 16) | \ + (UV_VERSION_MINOR << 8) | \ + (UV_VERSION_PATCH)) #endif /* UV_VERSION_H */ diff --git a/src/libuv/include/uv/win.h b/src/libuv/include/uv/win.h index 1dbf9f66..7b4ebd4b 100644 --- a/src/libuv/include/uv/win.h +++ b/src/libuv/include/uv/win.h @@ -20,32 +20,24 @@ */ #ifndef _WIN32_WINNT -#define _WIN32_WINNT 0x0600 +# define _WIN32_WINNT 0x0A00 #endif #if !defined(_SSIZE_T_) && !defined(_SSIZE_T_DEFINED) typedef intptr_t ssize_t; -#define SSIZE_MAX INTPTR_MAX -#define _SSIZE_T_ -#define _SSIZE_T_DEFINED +# define SSIZE_MAX INTPTR_MAX +# define _SSIZE_T_ +# define _SSIZE_T_DEFINED #endif #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 +# 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 @@ -55,24 +47,24 @@ typedef struct pollfd { #undef PTCP_INITIAL_RTO_PARAMETERS #include -#include #include #include +#include #include - -#if defined(_MSC_VER) && _MSC_VER < 1600 -#include "uv/stdint-msvc2008.h" -#else #include -#endif -#include "uv/threadpool.h" #include "uv/tree.h" +#include "uv/threadpool.h" #define MAX_PIPENAME_LEN 256 #ifndef S_IFLNK -#define S_IFLNK 0xA000 +# 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 @@ -90,22 +82,23 @@ typedef struct pollfd { * The additional signals have values that are common on other Unix * variants (Linux and Darwin) */ -#define SIGHUP 1 -#define SIGKILL 9 -#define SIGWINCH 28 +#define SIGHUP 1 +#define SIGQUIT 3 +#define SIGKILL 9 +#define SIGWINCH 28 /* Redefine NSIG to take SIGWINCH into consideration */ #if defined(NSIG) && NSIG <= SIGWINCH -#undef NSIG +# undef NSIG #endif #ifndef NSIG -#define NSIG SIGWINCH + 1 +# define NSIG SIGWINCH + 1 #endif /* The CRT defines SIGABRT_COMPAT as 6, which equals SIGABRT on many unix-like * platforms. However MinGW doesn't define it, so we do. */ #ifndef SIGABRT_COMPAT -#define SIGABRT_COMPAT 6 +# define SIGABRT_COMPAT 6 #endif /* @@ -113,72 +106,101 @@ typedef struct pollfd { * Mingw32 doesn't have these :-( */ #ifndef WSAID_ACCEPTEX -#define WSAID_ACCEPTEX \ - {0xb5367df1, 0xcbac, 0x11cf, {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} - -#define WSAID_CONNECTEX \ - {0x25a207b9, 0xddf3, 0x4660, {0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e}} - -#define WSAID_GETACCEPTEXSOCKADDRS \ - {0xb5367df2, 0xcbac, 0x11cf, {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} - -#define WSAID_DISCONNECTEX \ - {0x7fda2e11, 0x8630, 0x436f, {0xa0, 0x31, 0xf5, 0x36, 0xa6, 0xee, 0xc1, 0x57}} - -#define WSAID_TRANSMITFILE \ - {0xb5367df0, 0xcbac, 0x11cf, {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} - -typedef BOOL(PASCAL *LPFN_ACCEPTEX)(SOCKET sListenSocket, SOCKET sAcceptSocket, - PVOID lpOutputBuffer, - DWORD dwReceiveDataLength, - DWORD dwLocalAddressLength, - DWORD dwRemoteAddressLength, - LPDWORD lpdwBytesReceived, - LPOVERLAPPED lpOverlapped); - -typedef BOOL(PASCAL *LPFN_CONNECTEX)(SOCKET s, const struct sockaddr *name, - int namelen, PVOID lpSendBuffer, - DWORD dwSendDataLength, - LPDWORD lpdwBytesSent, - LPOVERLAPPED lpOverlapped); - -typedef void(PASCAL *LPFN_GETACCEPTEXSOCKADDRS)( - PVOID lpOutputBuffer, DWORD dwReceiveDataLength, DWORD dwLocalAddressLength, - DWORD dwRemoteAddressLength, LPSOCKADDR *LocalSockaddr, - LPINT LocalSockaddrLength, LPSOCKADDR *RemoteSockaddr, - LPINT RemoteSockaddrLength); - -typedef BOOL(PASCAL *LPFN_DISCONNECTEX)(SOCKET hSocket, - LPOVERLAPPED lpOverlapped, - DWORD dwFlags, DWORD reserved); - -typedef BOOL(PASCAL *LPFN_TRANSMITFILE)( - SOCKET hSocket, HANDLE hFile, DWORD nNumberOfBytesToWrite, - DWORD nNumberOfBytesPerSend, LPOVERLAPPED lpOverlapped, - LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers, DWORD dwFlags); - -typedef PVOID RTL_SRWLOCK; -typedef RTL_SRWLOCK SRWLOCK, *PSRWLOCK; +# define WSAID_ACCEPTEX \ + {0xb5367df1, 0xcbac, 0x11cf, \ + {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} + +# define WSAID_CONNECTEX \ + {0x25a207b9, 0xddf3, 0x4660, \ + {0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e}} + +# define WSAID_GETACCEPTEXSOCKADDRS \ + {0xb5367df2, 0xcbac, 0x11cf, \ + {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} + +# define WSAID_DISCONNECTEX \ + {0x7fda2e11, 0x8630, 0x436f, \ + {0xa0, 0x31, 0xf5, 0x36, 0xa6, 0xee, 0xc1, 0x57}} + +# define WSAID_TRANSMITFILE \ + {0xb5367df0, 0xcbac, 0x11cf, \ + {0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92}} + + typedef BOOL (PASCAL *LPFN_ACCEPTEX) + (SOCKET sListenSocket, + SOCKET sAcceptSocket, + PVOID lpOutputBuffer, + DWORD dwReceiveDataLength, + DWORD dwLocalAddressLength, + DWORD dwRemoteAddressLength, + LPDWORD lpdwBytesReceived, + LPOVERLAPPED lpOverlapped); + + typedef BOOL (PASCAL *LPFN_CONNECTEX) + (SOCKET s, + const struct sockaddr* name, + int namelen, + PVOID lpSendBuffer, + DWORD dwSendDataLength, + LPDWORD lpdwBytesSent, + LPOVERLAPPED lpOverlapped); + + typedef void (PASCAL *LPFN_GETACCEPTEXSOCKADDRS) + (PVOID lpOutputBuffer, + DWORD dwReceiveDataLength, + DWORD dwLocalAddressLength, + DWORD dwRemoteAddressLength, + LPSOCKADDR* LocalSockaddr, + LPINT LocalSockaddrLength, + LPSOCKADDR* RemoteSockaddr, + LPINT RemoteSockaddrLength); + + typedef BOOL (PASCAL *LPFN_DISCONNECTEX) + (SOCKET hSocket, + LPOVERLAPPED lpOverlapped, + DWORD dwFlags, + DWORD reserved); + + typedef BOOL (PASCAL *LPFN_TRANSMITFILE) + (SOCKET hSocket, + HANDLE hFile, + DWORD nNumberOfBytesToWrite, + DWORD nNumberOfBytesPerSend, + LPOVERLAPPED lpOverlapped, + LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers, + DWORD dwFlags); + + typedef PVOID RTL_SRWLOCK; + typedef RTL_SRWLOCK SRWLOCK, *PSRWLOCK; #endif -typedef int(WSAAPI *LPFN_WSARECV)( - SOCKET socket, LPWSABUF buffers, DWORD buffer_count, LPDWORD bytes, - LPDWORD flags, LPWSAOVERLAPPED overlapped, - LPWSAOVERLAPPED_COMPLETION_ROUTINE completion_routine); - -typedef int(WSAAPI *LPFN_WSARECVFROM)( - SOCKET socket, LPWSABUF buffers, DWORD buffer_count, LPDWORD bytes, - LPDWORD flags, struct sockaddr *addr, LPINT addr_len, - LPWSAOVERLAPPED overlapped, - LPWSAOVERLAPPED_COMPLETION_ROUTINE completion_routine); +typedef int (WSAAPI* LPFN_WSARECV) + (SOCKET socket, + LPWSABUF buffers, + DWORD buffer_count, + LPDWORD bytes, + LPDWORD flags, + LPWSAOVERLAPPED overlapped, + LPWSAOVERLAPPED_COMPLETION_ROUTINE completion_routine); + +typedef int (WSAAPI* LPFN_WSARECVFROM) + (SOCKET socket, + LPWSABUF buffers, + DWORD buffer_count, + LPDWORD bytes, + LPDWORD flags, + struct sockaddr* addr, + LPINT addr_len, + LPWSAOVERLAPPED overlapped, + LPWSAOVERLAPPED_COMPLETION_ROUTINE completion_routine); #ifndef _NTDEF_ -typedef LONG NTSTATUS; -typedef NTSTATUS *PNTSTATUS; + typedef LONG NTSTATUS; + typedef NTSTATUS *PNTSTATUS; #endif #ifndef RTL_CONDITION_VARIABLE_INIT -typedef PVOID CONDITION_VARIABLE, *PCONDITION_VARIABLE; + typedef PVOID CONDITION_VARIABLE, *PCONDITION_VARIABLE; #endif typedef struct _AFD_POLL_HANDLE_INFO { @@ -194,7 +216,8 @@ 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 + /** * It should be possible to cast uv_buf_t[] to WSABUF[] @@ -202,7 +225,7 @@ typedef struct _AFD_POLL_INFO { */ typedef struct uv_buf_t { ULONG len; - char *base; + char* base; } uv_buf_t; typedef int uv_file; @@ -233,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. */ @@ -278,355 +295,367 @@ typedef struct uv__dirent_s { char d_name[1]; } uv__dirent_t; -#define UV_DIR_PRIVATE_FIELDS \ - HANDLE dir_handle; \ - WIN32_FIND_DATAW find_data; \ +#define UV_DIR_PRIVATE_FIELDS \ + HANDLE dir_handle; \ + WIN32_FIND_DATAW find_data; \ BOOL need_find_call; #define HAVE_DIRENT_TYPES -#define UV__DT_DIR UV_DIRENT_DIR -#define UV__DT_FILE UV_DIRENT_FILE -#define UV__DT_LINK UV_DIRENT_LINK -#define UV__DT_FIFO UV_DIRENT_FIFO -#define UV__DT_SOCKET UV_DIRENT_SOCKET -#define UV__DT_CHAR UV_DIRENT_CHAR -#define UV__DT_BLOCK UV_DIRENT_BLOCK +#define UV__DT_DIR UV_DIRENT_DIR +#define UV__DT_FILE UV_DIRENT_FILE +#define UV__DT_LINK UV_DIRENT_LINK +#define UV__DT_FIFO UV_DIRENT_FIFO +#define UV__DT_SOCKET UV_DIRENT_SOCKET +#define UV__DT_CHAR UV_DIRENT_CHAR +#define UV__DT_BLOCK UV_DIRENT_BLOCK /* Platform-specific definitions for uv_dlopen support. */ #define UV_DYNAMIC FAR WINAPI typedef struct { HMODULE handle; - char *errmsg; + char* errmsg; } uv_lib_t; -#define UV_LOOP_PRIVATE_FIELDS \ - /* The loop's I/O completion port */ \ - HANDLE iocp; \ - /* The current time according to the event loop. in msecs. */ \ - uint64_t time; \ - /* Tail of a single-linked circular queue of pending reqs. If the queue */ \ - /* is empty, tail_ is NULL. If there is only one item, */ \ - /* tail_->next_req == tail_ */ \ - uv_req_t *pending_reqs_tail; \ - /* Head of a single-linked list of closed handles */ \ - uv_handle_t *endgame_handles; \ - /* TODO(bnoordhuis) Stop heap-allocating |timer_heap| in libuv v2.x. */ \ - void *timer_heap; \ - /* Lists of active loop (prepare / check / idle) watchers */ \ - uv_prepare_t *prepare_handles; \ - uv_check_t *check_handles; \ - uv_idle_t *idle_handles; \ - /* This pointer will refer to the prepare/check/idle handle whose */ \ - /* callback is scheduled to be called next. This is needed to allow */ \ - /* safe removal from one of the lists above while that list being */ \ - /* iterated over. */ \ - uv_prepare_t *next_prepare_handle; \ - uv_check_t *next_check_handle; \ - 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 */ \ - unsigned int active_tcp_streams; \ - /* Counter to keep track of active udp streams */ \ - unsigned int active_udp_streams; \ - /* Counter to started timer */ \ - uint64_t timer_counter; \ - /* Threadpool */ \ - void *wq[2]; \ - uv_mutex_t wq_mutex; \ +#define UV_LOOP_PRIVATE_FIELDS \ + /* The loop's I/O completion port */ \ + HANDLE iocp; \ + /* The current time according to the event loop. in msecs. */ \ + uint64_t time; \ + /* Tail of a single-linked circular queue of pending reqs. If the queue */ \ + /* is empty, tail_ is NULL. If there is only one item, */ \ + /* tail_->next_req == tail_ */ \ + uv_req_t* pending_reqs_tail; \ + /* Head of a single-linked list of closed handles */ \ + uv_handle_t* endgame_handles; \ + /* TODO(bnoordhuis) Stop heap-allocating |timer_heap| in libuv v2.x. */ \ + void* timer_heap; \ + /* Lists of active loop (prepare / check / idle) watchers */ \ + uv_prepare_t* prepare_handles; \ + uv_check_t* check_handles; \ + uv_idle_t* idle_handles; \ + /* This pointer will refer to the prepare/check/idle handle whose */ \ + /* callback is scheduled to be called next. This is needed to allow */ \ + /* safe removal from one of the lists above while that list being */ \ + /* iterated over. */ \ + uv_prepare_t* next_prepare_handle; \ + uv_check_t* next_check_handle; \ + 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]; \ + /* No longer used. */ \ + unsigned int active_tcp_streams; \ + /* No longer used. */ \ + unsigned int active_udp_streams; \ + /* Counter to started timer */ \ + uint64_t timer_counter; \ + /* Threadpool */ \ + struct uv__queue wq; \ + uv_mutex_t wq_mutex; \ uv_async_t wq_async; -#define UV_REQ_TYPE_PRIVATE \ - /* TODO: remove the req suffix */ \ - UV_ACCEPT, UV_FS_EVENT_REQ, UV_POLL_REQ, UV_PROCESS_EXIT, UV_READ, \ - UV_UDP_RECV, UV_WAKEUP, UV_SIGNAL_REQ, - -#define UV_REQ_PRIVATE_FIELDS \ - union { \ - /* Used by I/O operations */ \ - struct { \ - OVERLAPPED overlapped; \ - size_t queued_bytes; \ - } io; \ - } u; \ - struct uv_req_s *next_req; - -#define UV_WRITE_PRIVATE_FIELDS \ - int coalesced; \ - uv_buf_t write_buffer; \ - HANDLE event_handle; \ +#define UV_REQ_TYPE_PRIVATE \ + /* TODO: remove the req suffix */ \ + UV_ACCEPT, \ + UV_FS_EVENT_REQ, \ + UV_POLL_REQ, \ + UV_PROCESS_EXIT, \ + UV_READ, \ + UV_UDP_RECV, \ + UV_WAKEUP, \ + UV_SIGNAL_REQ, + +#define UV_REQ_PRIVATE_FIELDS \ + union { \ + /* Used by I/O operations */ \ + 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; + +#define UV_WRITE_PRIVATE_FIELDS \ + int coalesced; \ + uv_buf_t write_buffer; \ + HANDLE event_handle; \ HANDLE wait_handle; -#define UV_CONNECT_PRIVATE_FIELDS /* empty */ - -#define UV_SHUTDOWN_PRIVATE_FIELDS /* empty */ - -#define UV_UDP_SEND_PRIVATE_FIELDS /* empty */ - -#define UV_PRIVATE_REQ_TYPES \ - typedef struct uv_pipe_accept_s { \ - UV_REQ_FIELDS \ - HANDLE pipeHandle; \ - struct uv_pipe_accept_s *next_pending; \ - } uv_pipe_accept_t; \ - \ - typedef struct uv_tcp_accept_s { \ - UV_REQ_FIELDS \ - SOCKET accept_socket; \ - char accept_buffer[sizeof(struct sockaddr_storage) * 2 + 32]; \ - HANDLE event_handle; \ - HANDLE wait_handle; \ - struct uv_tcp_accept_s *next_pending; \ - } uv_tcp_accept_t; \ - \ - typedef struct uv_read_s { \ - UV_REQ_FIELDS \ - HANDLE event_handle; \ - HANDLE wait_handle; \ +#define UV_CONNECT_PRIVATE_FIELDS \ + /* empty */ + +#define UV_SHUTDOWN_PRIVATE_FIELDS \ + /* empty */ + +#define UV_UDP_SEND_PRIVATE_FIELDS \ + /* empty */ + +#define UV_PRIVATE_REQ_TYPES \ + typedef struct uv_pipe_accept_s { \ + UV_REQ_FIELDS \ + HANDLE pipeHandle; \ + struct uv_pipe_accept_s* next_pending; \ + } uv_pipe_accept_t; \ + \ + typedef struct uv_tcp_accept_s { \ + UV_REQ_FIELDS \ + SOCKET accept_socket; \ + char accept_buffer[sizeof(struct sockaddr_storage) * 2 + 32]; \ + HANDLE event_handle; \ + HANDLE wait_handle; \ + struct uv_tcp_accept_s* next_pending; \ + } uv_tcp_accept_t; \ + \ + typedef struct uv_read_s { \ + UV_REQ_FIELDS \ + HANDLE event_handle; \ + HANDLE wait_handle; \ } uv_read_t; -#define uv_stream_connection_fields \ - unsigned int write_reqs_pending; \ - uv_shutdown_t *shutdown_req; - -#define uv_stream_server_fields uv_connection_cb connection_cb; - -#define UV_STREAM_PRIVATE_FIELDS \ - unsigned int reqs_pending; \ - int activecnt; \ - uv_read_t read_req; \ - union { \ - struct { \ - uv_stream_connection_fields \ - } conn; \ - struct { \ - uv_stream_server_fields \ - } serv; \ +#define uv_stream_connection_fields \ + unsigned int write_reqs_pending; \ + uv_shutdown_t* shutdown_req; + +#define uv_stream_server_fields \ + uv_connection_cb connection_cb; + +#define UV_STREAM_PRIVATE_FIELDS \ + unsigned int reqs_pending; \ + int activecnt; \ + uv_read_t read_req; \ + union { \ + struct { uv_stream_connection_fields } conn; \ + struct { uv_stream_server_fields } serv; \ } stream; -#define uv_tcp_server_fields \ - uv_tcp_accept_t *accept_reqs; \ - unsigned int processed_accepts; \ - uv_tcp_accept_t *pending_accepts; \ +#define uv_tcp_server_fields \ + uv_tcp_accept_t* accept_reqs; \ + unsigned int processed_accepts; \ + uv_tcp_accept_t* pending_accepts; \ LPFN_ACCEPTEX func_acceptex; -#define uv_tcp_connection_fields \ - uv_buf_t read_buffer; \ +#define uv_tcp_connection_fields \ + uv_buf_t read_buffer; \ LPFN_CONNECTEX func_connectex; -#define UV_TCP_PRIVATE_FIELDS \ - SOCKET socket; \ - int delayed_error; \ - union { \ - struct { \ - uv_tcp_server_fields \ - } serv; \ - struct { \ - uv_tcp_connection_fields \ - } conn; \ +#define UV_TCP_PRIVATE_FIELDS \ + SOCKET socket; \ + int delayed_error; \ + union { \ + struct { uv_tcp_server_fields } serv; \ + struct { uv_tcp_connection_fields } conn; \ } tcp; -#define UV_UDP_PRIVATE_FIELDS \ - SOCKET socket; \ - unsigned int reqs_pending; \ - int activecnt; \ - uv_req_t recv_req; \ - uv_buf_t recv_buffer; \ - struct sockaddr_storage recv_from; \ - int recv_from_len; \ - uv_udp_recv_cb recv_cb; \ - uv_alloc_cb alloc_cb; \ - LPFN_WSARECV func_wsarecv; \ +#define UV_UDP_PRIVATE_FIELDS \ + SOCKET socket; \ + unsigned int reqs_pending; \ + int activecnt; \ + uv_req_t recv_req; \ + uv_buf_t recv_buffer; \ + struct sockaddr_storage recv_from; \ + int recv_from_len; \ + uv_udp_recv_cb recv_cb; \ + uv_alloc_cb alloc_cb; \ + LPFN_WSARECV func_wsarecv; \ LPFN_WSARECVFROM func_wsarecvfrom; -#define uv_pipe_server_fields \ - int pending_instances; \ - uv_pipe_accept_t *accept_reqs; \ - uv_pipe_accept_t *pending_accepts; - -#define uv_pipe_connection_fields \ - uv_timer_t *eof_timer; \ - uv_write_t dummy; /* TODO: retained for ABI compat; remove this in v2.x. */ \ - DWORD ipc_remote_pid; \ - union { \ - 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]; \ - int ipc_xfer_queue_length; \ - uv_write_t *non_overlapped_writes_tail; \ - CRITICAL_SECTION readfile_thread_lock; \ +#define uv_pipe_server_fields \ + int pending_instances; \ + uv_pipe_accept_t* accept_reqs; \ + uv_pipe_accept_t* pending_accepts; + +#define uv_pipe_connection_fields \ + uv_timer_t* eof_timer; \ + uv_write_t dummy; /* TODO: retained for ABI compat; remove this in v2.x. */ \ + DWORD ipc_remote_pid; \ + union { \ + uint32_t payload_remaining; \ + uint64_t dummy; /* TODO: retained for ABI compat; remove this in v2.x. */ \ + } ipc_data_frame; \ + struct uv__queue ipc_xfer_queue; \ + int ipc_xfer_queue_length; \ + uv_write_t* non_overlapped_writes_tail; \ + CRITICAL_SECTION readfile_thread_lock; \ volatile HANDLE readfile_thread_handle; -#define UV_PIPE_PRIVATE_FIELDS \ - HANDLE handle; \ - WCHAR *name; \ - union { \ - struct { \ - uv_pipe_server_fields \ - } serv; \ - struct { \ - uv_pipe_connection_fields \ - } conn; \ +#define UV_PIPE_PRIVATE_FIELDS \ + HANDLE handle; \ + WCHAR* name; \ + union { \ + struct { uv_pipe_server_fields } serv; \ + 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_; \ - uv_buf_t read_line_buffer; \ - HANDLE read_raw_wait; \ - /* Fields used for translating win keystrokes into vt100 characters */ \ - char last_key[8]; \ - unsigned char last_key_offset; \ - unsigned char last_key_len; \ - WCHAR last_utf16_high_surrogate; \ - INPUT_RECORD last_input_record; \ - } rd; \ - struct { \ - /* Used for writable TTY handles */ \ - /* utf8-to-utf16 conversion state */ \ - unsigned int utf8_codepoint; \ - unsigned char utf8_bytes_left; \ - /* eol conversion state */ \ - unsigned char previous_eol; \ - /* ansi parser state */ \ - unsigned short ansi_parser_state; \ - unsigned char ansi_csi_argc; \ - unsigned short ansi_csi_argv[4]; \ - COORD saved_position; \ - WORD saved_attributes; \ - } wr; \ +#define UV_TTY_PRIVATE_FIELDS \ + HANDLE handle; \ + union { \ + struct { \ + /* Used for readable TTY handles */ \ + 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 */ \ + char last_key[8]; \ + unsigned char last_key_offset; \ + unsigned char last_key_len; \ + WCHAR last_utf16_high_surrogate; \ + INPUT_RECORD last_input_record; \ + } rd; \ + struct { \ + /* Used for writable TTY handles */ \ + /* utf8-to-utf16 conversion state */ \ + unsigned int utf8_codepoint; \ + unsigned char utf8_bytes_left; \ + /* eol conversion state */ \ + unsigned char previous_eol; \ + /* ansi parser state */ \ + unsigned short ansi_parser_state; \ + unsigned char ansi_csi_argc; \ + unsigned short ansi_csi_argv[4]; \ + COORD saved_position; \ + WORD saved_attributes; \ + } wr; \ } tty; -#define UV_POLL_PRIVATE_FIELDS \ - SOCKET socket; \ - /* Used in fast mode */ \ - SOCKET peer_socket; \ - AFD_POLL_INFO afd_poll_info_1; \ - AFD_POLL_INFO afd_poll_info_2; \ - /* Used in fast and slow mode. */ \ - uv_req_t poll_req_1; \ - uv_req_t poll_req_2; \ - unsigned char submitted_events_1; \ - unsigned char submitted_events_2; \ - unsigned char mask_events_1; \ - unsigned char mask_events_2; \ +#define UV_POLL_PRIVATE_FIELDS \ + SOCKET socket; \ + /* Used in fast mode */ \ + SOCKET peer_socket; \ + AFD_POLL_INFO afd_poll_info_1; \ + AFD_POLL_INFO afd_poll_info_2; \ + /* Used in fast and slow mode. */ \ + uv_req_t poll_req_1; \ + uv_req_t poll_req_2; \ + unsigned char submitted_events_1; \ + unsigned char submitted_events_2; \ + unsigned char mask_events_1; \ + unsigned char mask_events_2; \ unsigned char events; -#define UV_TIMER_PRIVATE_FIELDS \ - void *heap_node[3]; \ - int unused; \ - uint64_t timeout; \ - uint64_t repeat; \ - uint64_t start_id; \ +#define UV_TIMER_PRIVATE_FIELDS \ + union { \ + void* heap[3]; \ + struct uv__queue queue; \ + } node; \ + int unused; \ + uint64_t timeout; \ + uint64_t repeat; \ + uint64_t start_id; \ uv_timer_cb timer_cb; -#define UV_ASYNC_PRIVATE_FIELDS \ - struct uv_req_s async_req; \ - uv_async_cb async_cb; \ - /* char to avoid alignment issues */ \ +#define UV_ASYNC_PRIVATE_FIELDS \ + struct uv_req_s async_req; \ + uv_async_cb async_cb; \ + /* char to avoid alignment issues */ \ char volatile async_sent; -#define UV_PREPARE_PRIVATE_FIELDS \ - uv_prepare_t *prepare_prev; \ - uv_prepare_t *prepare_next; \ +#define UV_PREPARE_PRIVATE_FIELDS \ + uv_prepare_t* prepare_prev; \ + uv_prepare_t* prepare_next; \ uv_prepare_cb prepare_cb; -#define UV_CHECK_PRIVATE_FIELDS \ - uv_check_t *check_prev; \ - uv_check_t *check_next; \ +#define UV_CHECK_PRIVATE_FIELDS \ + uv_check_t* check_prev; \ + uv_check_t* check_next; \ uv_check_cb check_cb; -#define UV_IDLE_PRIVATE_FIELDS \ - uv_idle_t *idle_prev; \ - uv_idle_t *idle_next; \ +#define UV_IDLE_PRIVATE_FIELDS \ + uv_idle_t* idle_prev; \ + uv_idle_t* idle_next; \ uv_idle_cb idle_cb; -#define UV_HANDLE_PRIVATE_FIELDS \ - uv_handle_t *endgame_next; \ +#define UV_HANDLE_PRIVATE_FIELDS \ + uv_handle_t* endgame_next; \ unsigned int flags; -#define UV_GETADDRINFO_PRIVATE_FIELDS \ - struct uv__work work_req; \ - uv_getaddrinfo_cb getaddrinfo_cb; \ - void *alloc; \ - WCHAR *node; \ - WCHAR *service; \ - /* The addrinfoW field is used to store a pointer to the hints, and */ \ - /* later on to store the result of GetAddrInfoW. The final result will */ \ - /* be converted to struct addrinfo* and stored in the addrinfo field. */ \ - struct addrinfoW *addrinfow; \ - struct addrinfo *addrinfo; \ +#define UV_GETADDRINFO_PRIVATE_FIELDS \ + struct uv__work work_req; \ + uv_getaddrinfo_cb getaddrinfo_cb; \ + void* alloc; \ + WCHAR* node; \ + WCHAR* service; \ + /* The addrinfoW field is used to store a pointer to the hints, and */ \ + /* later on to store the result of GetAddrInfoW. The final result will */ \ + /* be converted to struct addrinfo* and stored in the addrinfo field. */ \ + struct addrinfoW* addrinfow; \ + struct addrinfo* addrinfo; \ int retcode; -#define UV_GETNAMEINFO_PRIVATE_FIELDS \ - struct uv__work work_req; \ - uv_getnameinfo_cb getnameinfo_cb; \ - struct sockaddr_storage storage; \ - int flags; \ - char host[NI_MAXHOST]; \ - char service[NI_MAXSERV]; \ +#define UV_GETNAMEINFO_PRIVATE_FIELDS \ + struct uv__work work_req; \ + uv_getnameinfo_cb getnameinfo_cb; \ + struct sockaddr_storage storage; \ + int flags; \ + char host[NI_MAXHOST]; \ + char service[NI_MAXSERV]; \ int retcode; -#define UV_PROCESS_PRIVATE_FIELDS \ - struct uv_process_exit_s { \ - UV_REQ_FIELDS \ - } exit_req; \ - BYTE *child_stdio_buffer; \ - int exit_signal; \ - HANDLE wait_handle; \ - HANDLE process_handle; \ +#define UV_PROCESS_PRIVATE_FIELDS \ + struct uv_process_exit_s { \ + UV_REQ_FIELDS \ + } exit_req; \ + void* unused; /* TODO: retained for ABI compat; remove this in v2.x. */ \ + int exit_signal; \ + HANDLE wait_handle; \ + HANDLE process_handle; \ volatile char exit_cb_pending; -#define UV_FS_PRIVATE_FIELDS \ - struct uv__work work_req; \ - int flags; \ - DWORD sys_errno_; \ - union { \ - /* TODO: remove me in 0.9. */ \ - WCHAR *pathw; \ - int fd; \ - } file; \ - union { \ - struct { \ - int mode; \ - WCHAR *new_pathw; \ - int file_flags; \ - int fd_out; \ - unsigned int nbufs; \ - uv_buf_t *bufs; \ - int64_t offset; \ - uv_buf_t bufsml[4]; \ - } info; \ - struct { \ - double atime; \ - double mtime; \ - } time; \ +#define UV_FS_PRIVATE_FIELDS \ + struct uv__work work_req; \ + int flags; \ + DWORD sys_errno_; \ + union { \ + /* TODO: remove me in 0.9. */ \ + WCHAR* pathw; \ + int fd; \ + } file; \ + union { \ + struct { \ + int mode; \ + WCHAR* new_pathw; \ + int file_flags; \ + int fd_out; \ + unsigned int nbufs; \ + uv_buf_t* bufs; \ + int64_t offset; \ + uv_buf_t bufsml[4]; \ + } info; \ + struct { \ + double atime; \ + double mtime; \ + } time; \ } fs; -#define UV_WORK_PRIVATE_FIELDS struct uv__work work_req; - -#define UV_FS_EVENT_PRIVATE_FIELDS \ - struct uv_fs_event_req_s { \ - UV_REQ_FIELDS \ - } req; \ - HANDLE dir_handle; \ - int req_pending; \ - uv_fs_event_cb cb; \ - WCHAR *filew; \ - WCHAR *short_filew; \ - WCHAR *dirw; \ - char *buffer; - -#define UV_SIGNAL_PRIVATE_FIELDS \ - RB_ENTRY(uv_signal_s) tree_entry; \ - struct uv_req_s signal_req; \ +#define UV_WORK_PRIVATE_FIELDS \ + struct uv__work work_req; + +#define UV_FS_EVENT_PRIVATE_FIELDS \ + struct uv_fs_event_req_s { \ + UV_REQ_FIELDS \ + } req; \ + HANDLE dir_handle; \ + int req_pending; \ + uv_fs_event_cb cb; \ + WCHAR* filew; \ + WCHAR* short_filew; \ + WCHAR* dirw; \ + char* buffer; + +#define UV_SIGNAL_PRIVATE_FIELDS \ + RB_ENTRY(uv_signal_s) tree_entry; \ + struct uv_req_s signal_req; \ unsigned long pending_signum; #ifndef F_OK @@ -643,27 +672,27 @@ typedef struct { #endif /* fs open() flags supported on this platform: */ -#define UV_FS_O_APPEND _O_APPEND -#define UV_FS_O_CREAT _O_CREAT -#define UV_FS_O_EXCL _O_EXCL -#define UV_FS_O_FILEMAP 0x20000000 -#define UV_FS_O_RANDOM _O_RANDOM -#define UV_FS_O_RDONLY _O_RDONLY -#define UV_FS_O_RDWR _O_RDWR -#define UV_FS_O_SEQUENTIAL _O_SEQUENTIAL -#define UV_FS_O_SHORT_LIVED _O_SHORT_LIVED -#define UV_FS_O_TEMPORARY _O_TEMPORARY -#define UV_FS_O_TRUNC _O_TRUNC -#define UV_FS_O_WRONLY _O_WRONLY +#define UV_FS_O_APPEND _O_APPEND +#define UV_FS_O_CREAT _O_CREAT +#define UV_FS_O_EXCL _O_EXCL +#define UV_FS_O_FILEMAP 0x20000000 +#define UV_FS_O_RANDOM _O_RANDOM +#define UV_FS_O_RDONLY _O_RDONLY +#define UV_FS_O_RDWR _O_RDWR +#define UV_FS_O_SEQUENTIAL _O_SEQUENTIAL +#define UV_FS_O_SHORT_LIVED _O_SHORT_LIVED +#define UV_FS_O_TEMPORARY _O_TEMPORARY +#define UV_FS_O_TRUNC _O_TRUNC +#define UV_FS_O_WRONLY _O_WRONLY /* fs open() flags supported on other platforms (or mapped on this platform): */ -#define UV_FS_O_DIRECT 0x02000000 /* FILE_FLAG_NO_BUFFERING */ -#define UV_FS_O_DIRECTORY 0 -#define UV_FS_O_DSYNC 0x04000000 /* FILE_FLAG_WRITE_THROUGH */ -#define UV_FS_O_EXLOCK 0x10000000 /* EXCLUSIVE SHARING MODE */ -#define UV_FS_O_NOATIME 0 -#define UV_FS_O_NOCTTY 0 -#define UV_FS_O_NOFOLLOW 0 -#define UV_FS_O_NONBLOCK 0 -#define UV_FS_O_SYMLINK 0 -#define UV_FS_O_SYNC 0x08000000 /* FILE_FLAG_WRITE_THROUGH */ +#define UV_FS_O_DIRECT 0x02000000 /* FILE_FLAG_NO_BUFFERING */ +#define UV_FS_O_DIRECTORY 0 +#define UV_FS_O_DSYNC 0x04000000 /* FILE_FLAG_WRITE_THROUGH */ +#define UV_FS_O_EXLOCK 0x10000000 /* EXCLUSIVE SHARING MODE */ +#define UV_FS_O_NOATIME 0 +#define UV_FS_O_NOCTTY 0 +#define UV_FS_O_NOFOLLOW 0 +#define UV_FS_O_NONBLOCK 0 +#define UV_FS_O_SYMLINK 0 +#define UV_FS_O_SYNC 0x08000000 /* FILE_FLAG_WRITE_THROUGH */ diff --git a/src/libuv/install-sh b/src/libuv/install-sh index ec298b53..1d8d9669 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 ea625482..639058c8 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 1d7b86f7..0f569146 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 0f0a2da3..f2abcc80 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