From 4c8d0a1316000db93eb4484480b2e14188560e14 Mon Sep 17 00:00:00 2001 From: Camden Narzt Date: Fri, 10 Dec 2021 15:08:56 -0700 Subject: [PATCH] More missing boost headers for FreeBSD 13 --- dev/copy_boost_headers | 41 ++++++--- .../vendor-modified/boost/align/align.hpp | 19 ++++ .../boost/align/alignment_of.hpp | 54 +++++++++++ .../boost/align/alignment_of_forward.hpp | 20 ++++ .../boost/align/detail/align_cxx11.hpp | 21 +++++ .../boost/align/detail/alignment_of_cxx11.hpp | 23 +++++ .../boost/align/detail/element_type.hpp | 91 +++++++++++++++++++ 7 files changed, 256 insertions(+), 13 deletions(-) create mode 100644 src/cxx_supportlib/vendor-modified/boost/align/align.hpp create mode 100644 src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp create mode 100644 src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp create mode 100644 src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp create mode 100644 src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp create mode 100644 src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp diff --git a/dev/copy_boost_headers b/dev/copy_boost_headers index 568bbf4fff..f5ea641c97 100755 --- a/dev/copy_boost_headers +++ b/dev/copy_boost_headers @@ -102,16 +102,31 @@ PROGRAM_SOURCE = %q{ #include #include #include - #include #include #include #include #include #include #include - #include - #include #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +// Included despite not used in Passenger + #include + #include + #include } require 'fileutils' @@ -192,16 +207,16 @@ def copy_dependencies(cflags) compiler_output = `c++ test.cpp -c -I. -I.. #{cflags} 2>&1` File.unlink('test.o') if File.exist?('test.o') missing_headers = compiler_output. - split("\n"). - grep(/(error: .*: No such file|fatal error: '.*' file not found)/). - map do |line| - if line =~ /error: (.*): No such file/ - file = $1 - elsif line =~ /fatal error: '(.*)' file not found/ - file = $1 - else - abort "Bug" - end + split("\n"). + grep(/(error: .*: No such file|fatal error: '.*' file not found)/). + map do |line| + if line =~ /error: (.*): No such file/ + file = $1 + elsif line =~ /fatal error: '(.*)' file not found/ + file = $1 + else + abort "Bug" + end if file =~ /^boost\// file else diff --git a/src/cxx_supportlib/vendor-modified/boost/align/align.hpp b/src/cxx_supportlib/vendor-modified/boost/align/align.hpp new file mode 100644 index 0000000000..92f0c616b2 --- /dev/null +++ b/src/cxx_supportlib/vendor-modified/boost/align/align.hpp @@ -0,0 +1,19 @@ +/* +Copyright 2014-2015 Glen Joseph Fernandes +(glenjofe@gmail.com) + +Distributed under the Boost Software License, Version 1.0. +(http://www.boost.org/LICENSE_1_0.txt) +*/ +#ifndef BOOST_ALIGN_ALIGN_HPP +#define BOOST_ALIGN_ALIGN_HPP + +#include + +#if !defined(BOOST_NO_CXX11_STD_ALIGN) && !defined(BOOST_LIBSTDCXX_VERSION) +#include +#else +#include +#endif + +#endif diff --git a/src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp b/src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp new file mode 100644 index 0000000000..b7c50f1a2e --- /dev/null +++ b/src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp @@ -0,0 +1,54 @@ +/* +Copyright 2014-2016 Glen Joseph Fernandes +(glenjofe@gmail.com) + +Distributed under the Boost Software License, Version 1.0. +(http://www.boost.org/LICENSE_1_0.txt) +*/ +#ifndef BOOST_ALIGN_ALIGNMENT_OF_HPP +#define BOOST_ALIGN_ALIGNMENT_OF_HPP + +#include +#include + +#if defined(_MSC_VER) && defined(__clang__) +#include +#elif defined(BOOST_MSVC) +#include +#elif defined(__GNUC__) && defined(__unix__) && !defined(__LP64__) +#include +#elif defined(BOOST_CLANG) && !defined(__x86_64__) +#include +#elif !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) +#include +#elif defined(__ghs__) && (__GHS_VERSION_NUMBER >= 600) +#include +#elif defined(BOOST_CODEGEARC) +#include +#elif defined(BOOST_CLANG) +#include +#elif __GNUC__ > 4 +#include +#elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) +#include +#else +#include +#endif + +namespace boost { +namespace alignment { + +template +struct alignment_of + : detail::alignment_of::type>::type { }; + +#if !defined(BOOST_NO_CXX14_VARIABLE_TEMPLATES) +template +constexpr std::size_t alignment_of_v = alignment_of::value; +#endif + +} /* alignment */ +} /* boost */ + +#endif diff --git a/src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp b/src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp new file mode 100644 index 0000000000..31db15f23c --- /dev/null +++ b/src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp @@ -0,0 +1,20 @@ +/* +Copyright 2014 Glen Joseph Fernandes +(glenjofe@gmail.com) + +Distributed under the Boost Software License, Version 1.0. +(http://www.boost.org/LICENSE_1_0.txt) +*/ +#ifndef BOOST_ALIGN_ALIGNMENT_OF_FORWARD_HPP +#define BOOST_ALIGN_ALIGNMENT_OF_FORWARD_HPP + +namespace boost { +namespace alignment { + +template +struct alignment_of; + +} /* alignment */ +} /* boost */ + +#endif diff --git a/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp b/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp new file mode 100644 index 0000000000..637541ab40 --- /dev/null +++ b/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp @@ -0,0 +1,21 @@ +/* +Copyright 2014 Glen Joseph Fernandes +(glenjofe@gmail.com) + +Distributed under the Boost Software License, Version 1.0. +(http://www.boost.org/LICENSE_1_0.txt) +*/ +#ifndef BOOST_ALIGN_DETAIL_ALIGN_CXX11_HPP +#define BOOST_ALIGN_DETAIL_ALIGN_CXX11_HPP + +#include + +namespace boost { +namespace alignment { + +using std::align; + +} /* alignment */ +} /* boost */ + +#endif diff --git a/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp b/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp new file mode 100644 index 0000000000..05c7429385 --- /dev/null +++ b/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp @@ -0,0 +1,23 @@ +/* +Copyright 2014 Glen Joseph Fernandes +(glenjofe@gmail.com) + +Distributed under the Boost Software License, Version 1.0. +(http://www.boost.org/LICENSE_1_0.txt) +*/ +#ifndef BOOST_ALIGN_DETAIL_ALIGNMENT_OF_CXX11_HPP +#define BOOST_ALIGN_DETAIL_ALIGNMENT_OF_CXX11_HPP + +#include + +namespace boost { +namespace alignment { +namespace detail { + +using std::alignment_of; + +} /* detail */ +} /* alignment */ +} /* boost */ + +#endif diff --git a/src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp b/src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp new file mode 100644 index 0000000000..5b2b732da0 --- /dev/null +++ b/src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp @@ -0,0 +1,91 @@ +/* +Copyright 2015 Glen Joseph Fernandes +(glenjofe@gmail.com) + +Distributed under the Boost Software License, Version 1.0. +(http://www.boost.org/LICENSE_1_0.txt) +*/ +#ifndef BOOST_ALIGN_DETAIL_ELEMENT_TYPE_HPP +#define BOOST_ALIGN_DETAIL_ELEMENT_TYPE_HPP + +#include + +#if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) +#include +#else +#include +#endif + +namespace boost { +namespace alignment { +namespace detail { + +#if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) +using std::remove_reference; +using std::remove_all_extents; +using std::remove_cv; +#else +template +struct remove_reference { + typedef T type; +}; + +template +struct remove_reference { + typedef T type; +}; + +#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) +template +struct remove_reference { + typedef T type; +}; +#endif + +template +struct remove_all_extents { + typedef T type; +}; + +template +struct remove_all_extents { + typedef typename remove_all_extents::type type; +}; + +template +struct remove_all_extents { + typedef typename remove_all_extents::type type; +}; + +template +struct remove_cv { + typedef T type; +}; + +template +struct remove_cv { + typedef T type; +}; + +template +struct remove_cv { + typedef T type; +}; + +template +struct remove_cv { + typedef T type; +}; +#endif + +template +struct element_type { + typedef typename remove_cv::type>::type>::type type; +}; + +} /* detail */ +} /* alignment */ +} /* boost */ + +#endif