Drop FreeBSD 10.3 support

Reviewed by:	yuri (SoPlex), sunpoet (nghttp2), cpm (chromium), brooks (llvm*)
Approved by:	portmgr (rene)
Differential Revision:	https://reviews.freebsd.org/D15238
This commit is contained in:
Jan Beich 2018-05-07 22:29:46 +00:00
parent 9f6655b0e0
commit 67a9073255
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=469338
26 changed files with 5 additions and 491 deletions

View file

@ -1772,18 +1772,10 @@ INSTALL_TARGET:= ${INSTALL_TARGET:S/^install-strip$/install/g}
# XXX PIE support to be added here # XXX PIE support to be added here
MAKE_ENV+= NO_PIE=yes MAKE_ENV+= NO_PIE=yes
# We prefer to pass MK_*=no but it was only supported after a certain
# revision. Passing WITHOUT_* may conflict with a make.conf or src.conf's
# WITH_* value. Note that ports *do* pull in src.conf.
.if ${OSVERSION} >= 1003503
# We will control debug files. Don't let builds that use /usr/share/mk # We will control debug files. Don't let builds that use /usr/share/mk
# split out debug symbols since the plist won't know to expect it. # split out debug symbols since the plist won't know to expect it.
MAKE_ENV+= MK_DEBUG_FILES=no MAKE_ENV+= MK_DEBUG_FILES=no
MAKE_ENV+= MK_KERNEL_SYMBOLS=no MAKE_ENV+= MK_KERNEL_SYMBOLS=no
.else
MAKE_ENV+= WITHOUT_DEBUG_FILES=yes
MAKE_ENV+= WITHOUT_KERNEL_SYMBOLS=yes
.endif
CONFIGURE_SHELL?= ${SH} CONFIGURE_SHELL?= ${SH}
MAKE_SHELL?= ${SH} MAKE_SHELL?= ${SH}

View file

@ -83,11 +83,6 @@ DOXYGEN_RUN_DEPENDS= ${LOCALBASE}/www/MathJax/MathJax.js:www/mathjax
.include <bsd.port.options.mk> .include <bsd.port.options.mk>
.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1003506
# undefined reference to `__cxa_thread_atexit' - see PR 192320
BROKEN= undefined reference to __cxa_thread_atexit
.endif
.if ${ARCH} == "i386" .if ${ARCH} == "i386"
BITS= 32 BITS= 32
.else .else

View file

@ -47,10 +47,4 @@ post-patch:
@${REINPLACE_CMD} -e 's,share/man,man,' \ @${REINPLACE_CMD} -e 's,share/man,man,' \
${WRKSRC}/openscad.pro ${WRKSRC}/openscad.pro
.include <bsd.port.options.mk>
.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1003506
BROKEN= no __cxa_thread_atexit() support in FreeBSD libc < 10.4
.endif
.include <bsd.port.mk> .include <bsd.port.mk>

View file

@ -275,11 +275,6 @@ MAN1SRCS+= bugpoint.1 dsymutil.1 llc.1 lli.1 llvm-ar.1 llvm-as.1 \
.include <bsd.port.pre.mk> .include <bsd.port.pre.mk>
.if ${OPSYS} == FreeBSD && ${OSREL} == 10.3
CFLAGS+= -D_LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1
BROKEN= Missing __cxa_thread_atexit
.endif
.if defined(WITH_DEBUG) .if defined(WITH_DEBUG)
CMAKE_BUILD_TYPE= RelWithDebInfo CMAKE_BUILD_TYPE= RelWithDebInfo
STRIP= STRIP=

View file

@ -273,10 +273,6 @@ MAN1SRCS+= bugpoint.1 dsymutil.1 llc.1 lli.1 llvm-ar.1 llvm-as.1 \
.include <bsd.port.pre.mk> .include <bsd.port.pre.mk>
.if ${OPSYS} == FreeBSD && ${OSREL} == 10.3
CFLAGS+= -D_LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1
.endif
.if ${ARCH} == "amd64" .if ${ARCH} == "amd64"
_COMPILER_RT_LIBS= \ _COMPILER_RT_LIBS= \
libclang_rt.asan-preinit-x86_64.a \ libclang_rt.asan-preinit-x86_64.a \

View file

@ -40,10 +40,4 @@ PROXY_SERVER_LIB_DEPENDS= libjsoncpp.so:devel/jsoncpp \
PORTDOCS= * PORTDOCS= *
.include <bsd.port.options.mk>
.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1003506
BROKEN= no __cxa_thread_atexit() support in FreeBSD libc < 10.4
.endif
.include <bsd.port.mk> .include <bsd.port.mk>

View file

@ -54,10 +54,4 @@ SETUID_VARS= USERS=pdns_recursor GROUPS=pdns
SUB_FILES= pkg-message SUB_FILES= pkg-message
.include <bsd.port.pre.mk> .include <bsd.port.mk>
.if ${OSVERSION} < 1003506
IGNORE= no _cxa_thread_atexit() support in FreeBSD libc < 10.4
.endif
.include <bsd.port.post.mk>

View file

@ -279,16 +279,6 @@ MAKE_ENV+= verbose=1
.include <bsd.port.pre.mk> .include <bsd.port.pre.mk>
.if ${OPSYS} == FreeBSD
.if (${OSVERSION} >= 1200000 && ${OSVERSION} < 1200003) || \
(${OSVERSION} >= 1100500 && ${OSVERSION} < 1100501) || \
(${OSVERSION} >= 1100000 && ${OSVERSION} < 1100122) || \
${OSVERSION} < 1003506
EXTRA_PATCHES= ${PATCHDIR}/extrapatch-vcl_inc_unx_gtk_gtkinst.hxx \
${PATCHDIR}/extrapatch-vcl_unx_gtk_gtkinst.cxx
.endif
.endif # FreeBSD
.if ${COMPILER_TYPE} == "clang" .if ${COMPILER_TYPE} == "clang"
CXXFLAGS_WARN= -Woverloaded-virtual -Wno-unused-parameter CXXFLAGS_WARN= -Woverloaded-virtual -Wno-unused-parameter
.if ${COMPILER_VERSION} >= 36 .if ${COMPILER_VERSION} >= 36

View file

@ -1,11 +0,0 @@
--- vcl/inc/unx/gtk/gtkinst.hxx.orig 2018-02-22 17:45:41 UTC
+++ vcl/inc/unx/gtk/gtkinst.hxx
@@ -46,7 +46,7 @@ class GtkPrintWrapper;
class GenPspGraphics;
class GtkYieldMutex : public SalYieldMutex
{
- thread_local static std::stack<sal_uIntPtr> yieldCounts;
+ std::list<sal_uLong> aYieldStack;
public:
GtkYieldMutex() {}

View file

@ -1,42 +0,0 @@
--- vcl/unx/gtk/gtkinst.cxx.orig 2018-02-22 17:45:41 UTC
+++ vcl/unx/gtk/gtkinst.cxx
@@ -302,28 +302,29 @@ SalPrinter* GtkInstance::CreatePrinter(
* for each pair, so we can accurately restore
* it later.
*/
-thread_local std::stack<sal_uIntPtr> GtkYieldMutex::yieldCounts;
void GtkYieldMutex::ThreadsEnter()
{
acquire();
- if (!yieldCounts.empty()) {
- auto n = yieldCounts.top();
- yieldCounts.pop();
- for (; n != 0; --n) {
+ if( !aYieldStack.empty() )
+ { /* Previously called ThreadsLeave() */
+ sal_uLong nCount = aYieldStack.front();
+ aYieldStack.pop_front();
+ while( nCount-- > 1 )
acquire();
- }
}
}
void GtkYieldMutex::ThreadsLeave()
{
+ aYieldStack.push_front( m_nCount );
assert(m_nCount != 0);
- auto n = m_nCount - 1;
- yieldCounts.push(n);
- for (sal_uIntPtr i = 0; i != n + 1; ++i) {
+ SAL_WARN_IF(
+ m_nThreadId && m_nThreadId != osl::Thread::getCurrentIdentifier(),
+ "vcl.gtk", "other thread " << m_nThreadId << " owns the mutex");
+ while( m_nCount > 1 )
release();
- }
+ release();
}
SalVirtualDevice* GtkInstance::CreateVirtualDevice( SalGraphics *pG,

View file

@ -38,8 +38,6 @@ USES= cmake compiler:c++14-lang iconv:wchar_t localbase:ldflags \
USE_GL= gl glew USE_GL= gl glew
USE_QT5= qmake_build buildtools_build core dbus gui network widgets qml USE_QT5= qmake_build buildtools_build core dbus gui network widgets qml
USE_XORG= x11 USE_XORG= x11
EXTRA_PATCHES+= ${EXTRA_PATCHES_${OPSYS}_${OSREL}}
EXTRA_PATCHES_FreeBSD_10.3= ${PATCHDIR}/extra-patch-no-thread_local
CMAKE_ON= CMAKE_SKIP_RPATH USE_SYSTEM_FFMPEG USE_SYSTEM_LIBPNG CMAKE_ON= CMAKE_SKIP_RPATH USE_SYSTEM_FFMPEG USE_SYSTEM_LIBPNG
CMAKE_OFF= USE_NATIVE_INSTRUCTIONS CMAKE_OFF= USE_NATIVE_INSTRUCTIONS
CXXFLAGS+= -D_GLIBCXX_USE_C99 # XXX ports/193528 CXXFLAGS+= -D_GLIBCXX_USE_C99 # XXX ports/193528

View file

@ -1,156 +0,0 @@
FreeBSD 10.3 lacks __cxa_thread_atexit, so revert
https://github.com/RPCS3/rpcs3/commit/c1450ad61627
--- rpcs3/Emu/VFS.cpp.orig 2018-03-12 20:29:35 UTC
+++ rpcs3/Emu/VFS.cpp
@@ -18,7 +18,7 @@ bool vfs::mount(const std::string& dev_name, const std
{
const auto table = fxm::get_always<vfs_manager>();
- safe_writer_lock lock(table->mutex);
+ writer_lock lock(table->mutex);
return table->mounted.emplace(dev_name, path).second;
}
@@ -27,7 +27,7 @@ std::string vfs::get(const std::string& vpath, const s
{
const auto table = fxm::get_always<vfs_manager>();
- safe_reader_lock lock(table->mutex);
+ reader_lock lock(table->mutex);
std::smatch match;
--- Utilities/Log.cpp.orig 2017-09-19 12:07:07 UTC
+++ Utilities/Log.cpp
@@ -255,7 +255,7 @@ void logs::message::broadcast(const char* fmt, const f
}
// Get text
- thread_local std::string text; text.clear();
+ std::string text;
fmt::raw_append(text, fmt, sup, args);
std::string prefix = g_tls_log_prefix();
@@ -275,7 +275,7 @@ void logs::message::broadcast(const char* fmt, const f
}
// Store message additionally
- get_logger()->messages.emplace_back(stored_message{*this, stamp, std::move(prefix), text});
+ get_logger()->messages.emplace_back(stored_message{*this, stamp, std::move(prefix), std::move(text)});
}
}
@@ -405,7 +405,7 @@ logs::file_listener::file_listener(const std::string&
void logs::file_listener::log(u64 stamp, const logs::message& msg, const std::string& prefix, const std::string& _text)
{
- thread_local std::string text;
+ std::string text; text.reserve(prefix.size() + _text.size() + 200);
// Used character: U+00B7 (Middle Dot)
switch (msg.sev)
--- Utilities/mutex.cpp.orig 2017-10-08 20:37:54 UTC
+++ Utilities/mutex.cpp
@@ -5,8 +5,10 @@
#include <vector>
#include <algorithm>
+#if 0
// TLS variable for tracking owned mutexes
thread_local std::vector<shared_mutex*> g_tls_locks;
+#endif
void shared_mutex::imp_lock_shared(s64 _old)
{
@@ -258,6 +260,7 @@ bool shared_mutex::try_lock_degrade()
return m_value.compare_and_swap_test(0, c_one - c_min);
}
+#if 0
safe_reader_lock::safe_reader_lock(shared_mutex& mutex)
: m_mutex(mutex)
, m_is_owned(false)
@@ -332,3 +335,4 @@ safe_writer_lock::~safe_writer_lock()
// TODO: order locks
}
+#endif
--- Utilities/mutex.h.orig 2017-10-08 20:37:54 UTC
+++ Utilities/mutex.h
@@ -177,6 +177,7 @@ class writer_lock final (public)
}
};
+#if 0
// Safe reader lock. Can be recursive above other safe locks (reader or writer).
class safe_reader_lock final
{
@@ -229,3 +230,4 @@ class safe_writer_lock final (public)
~safe_writer_lock();
};
+#endif
--- Utilities/types.h.orig 2017-08-24 18:20:18 UTC
+++ Utilities/types.h
@@ -32,6 +32,7 @@
#define SAFE_BUFFERS
#define NEVER_INLINE __attribute__((noinline))
#define FORCE_INLINE __attribute__((always_inline)) inline
+#define thread_local __thread
#endif
#define CHECK_SIZE(type, size) static_assert(sizeof(type) == size, "Invalid " #type " type size")
--- rpcs3/Emu/System.cpp.orig 2017-08-24 18:20:18 UTC
+++ rpcs3/Emu/System.cpp
@@ -797,20 +797,26 @@ void Emulator::Stop()
s32 error_code::error_report(const fmt_type_info* sup, u64 arg, const fmt_type_info* sup2, u64 arg2)
{
- static thread_local std::unordered_map<std::string, std::size_t> g_tls_error_stats;
- static thread_local std::string g_tls_error_str;
+ static thread_local std::unordered_map<std::string, std::size_t>* g_tls_error_stats{};
+ static thread_local std::string* g_tls_error_str{};
- if (g_tls_error_stats.empty())
+ if (!g_tls_error_stats)
{
+ g_tls_error_stats = new std::unordered_map<std::string, std::size_t>;
+ g_tls_error_str = new std::string;
+
thread_ctrl::atexit([]
{
- for (auto&& pair : g_tls_error_stats)
+ for (auto&& pair : *g_tls_error_stats)
{
if (pair.second > 3)
{
LOG_ERROR(GENERAL, "Stat: %s [x%u]", pair.first, pair.second);
}
}
+
+ delete g_tls_error_stats;
+ delete g_tls_error_str;
});
}
@@ -840,15 +846,15 @@ s32 error_code::error_report(const fmt_type_info* sup,
}
// Format log message (use preallocated buffer)
- g_tls_error_str.clear();
- fmt::append(g_tls_error_str, "'%s' failed with 0x%08x%s%s%s%s", func, arg, sup ? " : " : "", std::make_pair(sup, arg), sup2 ? ", " : "", std::make_pair(sup2, arg2));
+ g_tls_error_str->clear();
+ fmt::append(*g_tls_error_str, "'%s' failed with 0x%08x%s%s%s%s", func, arg, sup ? " : " : "", std::make_pair(sup, arg), sup2 ? ", " : "", std::make_pair(sup2, arg2));
// Update stats and check log threshold
- const auto stat = ++g_tls_error_stats[g_tls_error_str];
+ const auto stat = ++(*g_tls_error_stats)[*g_tls_error_str];
if (stat <= 3)
{
- channel->format(level, "%s [%u]", g_tls_error_str, stat);
+ channel->format(level, "%s [%u]", *g_tls_error_str, stat);
}
return static_cast<s32>(arg);

View file

@ -40,12 +40,6 @@ PLIST_FILES= bin/${PORTNAME} \
${DATADIR}/${PORTNAME}.pk3 \ ${DATADIR}/${PORTNAME}.pk3 \
share/pixmaps/${PORTNAME}.xpm share/pixmaps/${PORTNAME}.xpm
.include <bsd.port.pre.mk>
.if ${OPSYS} == "FreeBSD" && ${OSVERSION} < 1004000
BROKEN= Fails to link due to lack of thread_local
.endif
.include "${.CURDIR}/../doom-data/Makefile.include" .include "${.CURDIR}/../doom-data/Makefile.include"
do-install: do-install:
@ -54,4 +48,4 @@ do-install:
${INSTALL_DATA} ${CONFIGURE_WRKSRC}/${PORTNAME}.pk3 ${STAGEDIR}${DATADIR} ${INSTALL_DATA} ${CONFIGURE_WRKSRC}/${PORTNAME}.pk3 ${STAGEDIR}${DATADIR}
${INSTALL_DATA} ${FILESDIR}/${PORTNAME}.xpm ${STAGEDIR}${PREFIX}/share/pixmaps ${INSTALL_DATA} ${FILESDIR}/${PORTNAME}.xpm ${STAGEDIR}${PREFIX}/share/pixmaps
.include <bsd.port.post.mk> .include <bsd.port.mk>

View file

@ -19,8 +19,6 @@ CONFLICTS_INSTALL= zimg-[0-9]* # include/zimg.h
USES= autoreconf compiler:c++11-lib gmake libtool pathfix USES= autoreconf compiler:c++11-lib gmake libtool pathfix
EXTRACT_AFTER_ARGS= --exclude test/extra EXTRACT_AFTER_ARGS= --exclude test/extra
EXTRA_PATCHES+= ${EXTRA_PATCHES_${OPSYS}_${OSREL}}
EXTRA_PATCHES_FreeBSD_10.3= ${PATCHDIR}/extra-patch-src_zimg_api_zimg.cpp
GNU_CONFIGURE= yes GNU_CONFIGURE= yes
CPPFLAGS+= -D_GLIBCXX_USE_C99 -D_GLIBCXX_USE_C99_MATH_TR1 \ CPPFLAGS+= -D_GLIBCXX_USE_C99 -D_GLIBCXX_USE_C99_MATH_TR1 \
-D_DECLARE_C99_LDBL_MATH # XXX ports/193528 -D_DECLARE_C99_LDBL_MATH # XXX ports/193528

View file

@ -1,62 +0,0 @@
FreeBSD 10.3 lacks __cxa_thread_atexit, so revert
https://github.com/sekrit-twc/zimg/commit/7e47d8d2a892
--- src/zimg/api/zimg.cpp.orig 2017-01-21 18:59:03 UTC
+++ src/zimg/api/zimg.cpp
@@ -1,6 +1,5 @@
#include <cmath>
#include <memory>
-#include <string>
#include <tuple>
#include <type_traits>
#include <utility>
@@ -31,7 +30,7 @@ constexpr unsigned API_VERSION_2_2 = ZIM
#define STRIDE_ALIGNMENT_ASSERT(x) zassert_d(!(x) || (x) % zimg::ALIGNMENT == 0, "buffer stride not aligned")
thread_local zimg_error_code_e g_last_error = ZIMG_ERROR_SUCCESS;
-thread_local std::string g_last_error_msg;
+thread_local char g_last_error_msg[1024];
constexpr unsigned VERSION_INFO[] = { 2, 4, 0 };
@@ -43,19 +42,10 @@ T *assert_dynamic_type(U *ptr) noexcept
return static_cast<T *>(ptr);
}
-void clear_last_error_message() noexcept
-{
- g_last_error_msg.clear();
- g_last_error_msg.shrink_to_fit();
-}
-
void record_exception_message(const zimg::error::Exception &e) noexcept
{
- try {
- g_last_error_msg = e.what();
- } catch (const std::bad_alloc &) {
- clear_last_error_message();
- }
+ strncpy(g_last_error_msg, e.what(), sizeof(g_last_error_msg) - 1);
+ g_last_error_msg[sizeof(g_last_error_msg) - 1] = '\0';
}
zimg_error_code_e handle_exception(std::exception_ptr eptr) noexcept
@@ -438,7 +428,7 @@ unsigned zimg_get_api_version(unsigned *
zimg_error_code_e zimg_get_last_error(char *err_msg, size_t n)
{
if (err_msg && n) {
- std::strncpy(err_msg, g_last_error_msg.c_str(), n);
+ strncpy(err_msg, g_last_error_msg, n);
err_msg[n - 1] = '\0';
}
@@ -447,8 +437,8 @@ zimg_error_code_e zimg_get_last_error(ch
void zimg_clear_last_error(void)
{
+ g_last_error_msg[0] = '\0';
g_last_error = ZIMG_ERROR_SUCCESS;
- clear_last_error_message();
}
unsigned zimg_select_buffer_mask(unsigned count)

View file

@ -17,15 +17,8 @@ LICENSE_PERMS= dist-mirror pkg-mirror auto-accept
LIB_DEPENDS= libgmp.so:math/gmp LIB_DEPENDS= libgmp.so:math/gmp
USES= cmake:outsource,noninja tar:tgz USES= cmake:outsource tar:tgz
USE_LDCONFIG= yes USE_LDCONFIG= yes
PLIST_SUB= SHL4=${DISTVERSION}.0 SHL2=${DISTVERSION:R} PLIST_SUB= SHL4=${DISTVERSION}.0 SHL2=${DISTVERSION:R}
.include <bsd.port.pre.mk> .include <bsd.port.mk>
.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100000
CMAKE_ARGS= -DFREEBSD_NO_CXX_THREAD_LOCAL_BUG224581:BOOL=ON # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224581
# This also necessitates noninja above for some reason
.endif
.include <bsd.port.post.mk>

View file

@ -1,11 +0,0 @@
--- CMakeLists.txt.orig 2017-12-26 18:14:03 UTC
+++ CMakeLists.txt
@@ -85,7 +85,7 @@ if(LEGACY)
add_definitions(-DTHREADLOCAL=)
endif()
-if(NOT "${CMAKE_CXX_COMPILE_FEATURES}" MATCHES "cxx_thread_local")
+if(NOT "${CMAKE_CXX_COMPILE_FEATURES}" MATCHES "cxx_thread_local" OR FREEBSD_NO_CXX_THREAD_LOCAL_BUG224581)
add_definitions(-DTHREADLOCAL=)
endif()

View file

@ -45,10 +45,7 @@ MAKE_ARGS+= -D WITH_HAL
.endif .endif
.endif .endif
.if (${OSVERSION} >= 1003500)
MAKE_ARGS+= -D CX88_USE_IIC MAKE_ARGS+= -D CX88_USE_IIC
.endif
MAKE_ARGS+= DEFAULT_XML_CONFIG="${EXAMPLESDIR}/cx88.xml.sample" MAKE_ARGS+= DEFAULT_XML_CONFIG="${EXAMPLESDIR}/cx88.xml.sample"
.include <bsd.port.mk> .include <bsd.port.mk>

View file

@ -49,11 +49,6 @@ CONFIGURE_ARGS+= --disable-gui
CONFIGURE_ARGS+= CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" CONFIGURE_ARGS+= CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}"
post-patch:
@${REINPLACE_CMD} \
-e 's/#ifdef Q_OS_MAC/#if defined(Q_OS_MAC) || (defined(__FreeBSD__) \&\& __FreeBSD_version < 1003506)/' \
${WRKSRC}/src/base/utils/string.cpp
post-install: post-install:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/qbittorrent${SUFFIX} ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/qbittorrent${SUFFIX}
${INSTALL_MAN} ${WRKSRC}/doc/qbittorrent${SUFFIX}.1 \ ${INSTALL_MAN} ${WRKSRC}/doc/qbittorrent${SUFFIX}.1 \

View file

@ -59,12 +59,6 @@ TSC_CMAKE_BOOL= ENABLE_TSC_CLOCK
# FLATBUFFERS_LIB_DEPENDS= libflatbuffers.so:devel/flatbuffers # FLATBUFFERS_LIB_DEPENDS= libflatbuffers.so:devel/flatbuffers
HYPERSCAN_LIB_DEPENDS= libhs.so:devel/hyperscan HYPERSCAN_LIB_DEPENDS= libhs.so:devel/hyperscan
.include <bsd.port.pre.mk>
.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1004000
EXTRA_PATCHES= ${PATCHDIR}/freebsd103_patch-src_memory_memory__allocator.h
.endif
CONFLICTS= snort-2* CONFLICTS= snort-2*
.include <bsd.port.post.mk> .include <bsd.port.mk>

View file

@ -1,14 +0,0 @@
--- src/memory/memory_allocator.h.orig 2018-02-01 22:21:37 UTC
+++ src/memory/memory_allocator.h
@@ -34,4 +34,11 @@ struct MemoryAllocator
} // namespace memory
+// Fix for FreeBSD 10.3's broken toolchain
+typedef struct {
+ long long __max_align1 __aligned(_Alignof(long long));
+ long double __max_align2 __aligned(_Alignof(long double));
+} max_align_t;
+
+
#endif

View file

@ -39,10 +39,4 @@ post-patch:
@${REINPLACE_CMD} -e 's|WEXITSTATUS||' ${WRKDIR}/zen/shell_execute.h @${REINPLACE_CMD} -e 's|WEXITSTATUS||' ${WRKDIR}/zen/shell_execute.h
@${REINPLACE_CMD} -e 's| noexcept;|;|' ${WRKDIR}/zen/scope_guard.h @${REINPLACE_CMD} -e 's| noexcept;|;|' ${WRKDIR}/zen/scope_guard.h
.include <bsd.port.options.mk>
.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1003506
BROKEN= no __cxa_thread_atexit() support in FreeBSD libc < 10.4
.endif
.include <bsd.port.mk> .include <bsd.port.mk>

View file

@ -211,14 +211,6 @@ TEST_DISTFILES= ${PORTNAME}-${DISTVERSION}-testdata${EXTRACT_SUFX}
MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \ MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \
CPLUS_INCLUDE_PATH=${LOCALBASE}/include CPLUS_INCLUDE_PATH=${LOCALBASE}/include
# Work around base r261801
.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1004000
GN_ARGS+= extra_cxxflags="-D_LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1"
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-libc++-old
.else
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-libc++-new
.endif
.if !defined(GN_ONLY) .if !defined(GN_ONLY)
pre-everything:: pre-everything::
@${ECHO_MSG} @${ECHO_MSG}

View file

@ -1,88 +0,0 @@
--- tools/gn/bootstrap/bootstrap.py.orig 2017-12-23 20:11:27.769312000 +0100
+++ tools/gn/bootstrap/bootstrap.py 2017-12-23 20:27:26.501215000 +0100
@@ -32,9 +32,10 @@
is_win = sys.platform.startswith('win')
is_linux = sys.platform.startswith('linux')
+is_bsd = platform.system().lower().endswith('bsd')
is_mac = sys.platform.startswith('darwin')
is_aix = sys.platform.startswith('aix')
-is_posix = is_linux or is_mac or is_aix
+is_posix = is_linux or is_mac or is_aix or is_bsd
def check_call(cmd, **kwargs):
logging.debug('Running: %s', ' '.join(cmd))
@@ -576,7 +577,6 @@
'base/trace_event/trace_log_constants.cc',
'base/trace_event/tracing_agent.cc',
'base/unguessable_token.cc',
- 'base/value_iterators.cc',
'base/values.cc',
'base/vlog.cc',
])
@@ -633,6 +633,47 @@
'cflags': cflags + ['-DHAVE_CONFIG_H'],
}
+ if is_bsd:
+ libs.extend(['-lexecinfo', '-lkvm'])
+ ldflags.extend(['-pthread'])
+ include_dirs += ["/usr/local/include"]
+
+ static_libraries['xdg_user_dirs'] = {
+ 'sources': [
+ 'base/third_party/xdg_user_dirs/xdg_user_dir_lookup.cc',
+ ],
+ 'tool': 'cxx',
+ }
+ static_libraries['base']['sources'].extend([
+ 'base/memory/shared_memory_handle_posix.cc',
+ 'base/memory/shared_memory_posix.cc',
+ 'base/nix/xdg_util.cc',
+ 'base/process/memory_stubs.cc',
+ 'base/process/process_info_linux.cc',
+ 'base/process/internal_linux.cc',
+ 'base/process/process_handle_freebsd.cc',
+ 'base/process/process_metrics_freebsd.cc',
+ 'base/strings/sys_string_conversions_posix.cc',
+ 'base/sys_info_freebsd.cc',
+ 'base/threading/platform_thread_linux.cc',
+ 'base/synchronization/waitable_event_posix.cc',
+ 'base/time/time_exploded_posix.cc',
+ 'base/time/time_now_posix.cc',
+ 'base/value_iterators.cc',
+ ])
+ static_libraries['libevent']['include_dirs'].extend([
+ os.path.join(SRC_ROOT, 'base', 'third_party', 'libevent', 'freebsd')
+ ])
+ static_libraries['libevent']['sources'].extend([
+ 'base/third_party/libevent/kqueue.c',
+ ])
+
+ # Suppressing warnings
+ cflags.extend(['-Wno-deprecated-register', '-Wno-parentheses-equality'])
+
+ # Work around base r261801
+ cflags_cc.extend(['-D_LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1'])
+
if is_linux or is_aix:
ldflags.extend(['-pthread'])
@@ -671,17 +712,6 @@
])
static_libraries['libevent']['sources'].extend([
'base/third_party/libevent/epoll.c',
- ])
- else:
- libs.extend(['-lrt'])
- static_libraries['base']['sources'].extend([
- 'base/process/internal_aix.cc'
- ])
- static_libraries['libevent']['include_dirs'].extend([
- os.path.join(SRC_ROOT, 'base', 'third_party', 'libevent', 'aix')
- ])
- static_libraries['libevent']['include_dirs'].extend([
- os.path.join(SRC_ROOT, 'base', 'third_party', 'libevent', 'compat')
])
if is_mac:

View file

@ -59,8 +59,6 @@ HPACK_BUILD_DEPENDS= jansson>=2.5:devel/jansson
HPACK_CONFIGURE_ENABLE= hpack-tools HPACK_CONFIGURE_ENABLE= hpack-tools
HPACK_LIB_DEPENDS= libjansson.so:devel/jansson HPACK_LIB_DEPENDS= libjansson.so:devel/jansson
.include <bsd.port.options.mk>
post-patch: post-patch:
@${REINPLACE_CMD} -e '/^SUBDIRS = / s| lib||' ${WRKSRC}/Makefile.am @${REINPLACE_CMD} -e '/^SUBDIRS = / s| lib||' ${WRKSRC}/Makefile.am
@${REINPLACE_CMD} -e 's|$$[({]top_builddir[})]/lib/libnghttp2.la|-lnghttp2|' ${WRKSRC}/*/Makefile.am @${REINPLACE_CMD} -e 's|$$[({]top_builddir[})]/lib/libnghttp2.la|-lnghttp2|' ${WRKSRC}/*/Makefile.am
@ -71,11 +69,6 @@ post-configure:
@${MKDIR} ${WRKSRC}/lib/.libs/ @${MKDIR} ${WRKSRC}/lib/.libs/
@${CP} ${LOCALBASE}/lib/libnghttp2.so* ${WRKSRC}/lib/.libs/ @${CP} ${LOCALBASE}/lib/libnghttp2.so* ${WRKSRC}/lib/.libs/
@cd ${WRKSRC}/lib/.libs/ && ${AR} x ${LOCALBASE}/lib/libnghttp2.a @cd ${WRKSRC}/lib/.libs/ && ${AR} x ${LOCALBASE}/lib/libnghttp2.a
# Disable thread_local support for hosts without __cxa_thread_atexit()
# See PR/192320 for details
.if ${OPSYS} == FreeBSD && ((${OSVERSION} < 1003506) || (${OSVERSION} == 1100500))
@${REINPLACE_CMD} -e '/HAVE_THREAD_LOCAL/d' ${WRKSRC}/config.h
.endif
post-install: post-install:
${MKDIR} ${STAGEDIR}${PREFIX}/etc/nghttpx/ ${MKDIR} ${STAGEDIR}${PREFIX}/etc/nghttpx/