Index: Mk/bsd.port.mk =================================================================== --- Mk/bsd.port.mk +++ Mk/bsd.port.mk @@ -1173,7 +1173,7 @@ .endif _EXPORTED_VARS+= OSVERSION -.if (${OPSYS} == FreeBSD && (${OSVERSION} < 1003000 || (${OSVERSION} >= 1100000 && ${OSVERSION} < 1101001))) || \ +.if (${OPSYS} == FreeBSD && (${OSVERSION} < 1004000 || (${OSVERSION} >= 1100000 && ${OSVERSION} < 1101001))) || \ (${OPSYS} == DragonFly && ${DFLYVERSION} < 400400) _UNSUPPORTED_SYSTEM_MESSAGE= Ports Collection support for your ${OPSYS} version has ended, and no ports\ are guaranteed to build on this system. Please upgrade to a supported release. @@ -1768,18 +1768,10 @@ # XXX PIE support to be added here 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 # split out debug symbols since the plist won't know to expect it. MAKE_ENV+= MK_DEBUG_FILES=no MAKE_ENV+= MK_KERNEL_SYMBOLS=no -.else -MAKE_ENV+= WITHOUT_DEBUG_FILES=yes -MAKE_ENV+= WITHOUT_KERNEL_SYMBOLS=yes -.endif CONFIGURE_SHELL?= ${SH} MAKE_SHELL?= ${SH} Index: cad/opencascade/Makefile =================================================================== --- cad/opencascade/Makefile +++ cad/opencascade/Makefile @@ -83,11 +83,6 @@ .include -.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" BITS= 32 .else Index: cad/openscad-devel/Makefile =================================================================== --- cad/openscad-devel/Makefile +++ cad/openscad-devel/Makefile @@ -47,10 +47,4 @@ @${REINPLACE_CMD} -e 's,share/man,man,' \ ${WRKSRC}/openscad.pro -.include - -.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1003506 -BROKEN= no __cxa_thread_atexit() support in FreeBSD libc < 10.4 -.endif - .include Index: databases/mysql80-server/Makefile =================================================================== --- databases/mysql80-server/Makefile +++ databases/mysql80-server/Makefile @@ -140,10 +140,6 @@ .include -.if !defined(CLIENT_ONLY) && ${OPSYS} == FreeBSD && ${OSVERSION} < 1003506 -BROKEN= no __cxa_thread_atexit() support in FreeBSD libc < 10.4 -.endif - .if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1200057 SUB_LIST+= LEGACY_LIMITS="@comment " MODERN_LIMITS="" .else Index: devel/llvm-devel/Makefile =================================================================== --- devel/llvm-devel/Makefile +++ devel/llvm-devel/Makefile @@ -275,11 +275,6 @@ .include -.if ${OPSYS} == FreeBSD && ${OSREL} == 10.3 -CFLAGS+= -D_LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1 -BROKEN= Missing __cxa_thread_atexit -.endif - .if defined(WITH_DEBUG) CMAKE_BUILD_TYPE= RelWithDebInfo STRIP= Index: devel/llvm60/Makefile =================================================================== --- devel/llvm60/Makefile +++ devel/llvm60/Makefile @@ -273,10 +273,6 @@ .include -.if ${OPSYS} == FreeBSD && ${OSREL} == 10.3 -CFLAGS+= -D_LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1 -.endif - .if ${ARCH} == "amd64" _COMPILER_RT_LIBS= \ libclang_rt.asan-preinit-x86_64.a \ Index: devel/opendht/Makefile =================================================================== --- devel/opendht/Makefile +++ devel/opendht/Makefile @@ -40,10 +40,4 @@ PORTDOCS= * -.include - -.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1003506 -BROKEN= no __cxa_thread_atexit() support in FreeBSD libc < 10.4 -.endif - .include Index: dns/dnsdist/Makefile =================================================================== --- dns/dnsdist/Makefile +++ dns/dnsdist/Makefile @@ -62,12 +62,6 @@ SNMP_LIB_DEPENDS= libnetsnmp.so:net-mgmt/net-snmp SNMP_CONFIGURE_WITH= net-snmp -.include - -.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1004000 -BROKEN= fails to link due to lack of thread_local -.endif - post-install: ${INSTALL_DATA} ${FILESDIR}/dnsdist.conf.sample \ ${STAGEDIR}${PREFIX}/etc Index: dns/powerdns-recursor/Makefile =================================================================== --- dns/powerdns-recursor/Makefile +++ dns/powerdns-recursor/Makefile @@ -54,10 +54,4 @@ SUB_FILES= pkg-message -.include - -.if ${OSVERSION} < 1003506 -IGNORE= no _cxa_thread_atexit() support in FreeBSD libc < 10.4 -.endif - -.include +.include Index: editors/libreoffice/Makefile =================================================================== --- editors/libreoffice/Makefile +++ editors/libreoffice/Makefile @@ -279,16 +279,6 @@ .include -.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" CXXFLAGS_WARN= -Woverloaded-virtual -Wno-unused-parameter .if ${COMPILER_VERSION} >= 36 Index: editors/libreoffice/files/extrapatch-vcl_inc_unx_gtk_gtkinst.hxx =================================================================== --- editors/libreoffice/files/extrapatch-vcl_inc_unx_gtk_gtkinst.hxx +++ /dev/null @@ -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 yieldCounts; -+ std::list aYieldStack; - - public: - GtkYieldMutex() {} Index: editors/libreoffice/files/extrapatch-vcl_unx_gtk_gtkinst.cxx =================================================================== --- editors/libreoffice/files/extrapatch-vcl_unx_gtk_gtkinst.cxx +++ /dev/null @@ -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 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, Index: emulators/i386-wine-devel/Makefile.inc =================================================================== --- emulators/i386-wine-devel/Makefile.inc +++ emulators/i386-wine-devel/Makefile.inc @@ -65,7 +65,7 @@ .endfor .if ${OPSYS} != FreeBSD || (!(${OSVERSION} < 1100000) && !(${OSVERSION} >= 1101000 && ${OSVERSION} < 1200000) && !(${OSVERSION} >= 1200060 && ${OSVERSION} < 1300000)) -IGNORE= binaries compiled for FreeBSD 10.3+, 11.1+ and -current only +IGNORE= binaries compiled for FreeBSD 10.4+, 11.1+ and -current only DISTFILES= .endif Index: emulators/i386-wine/Makefile.inc =================================================================== --- emulators/i386-wine/Makefile.inc +++ emulators/i386-wine/Makefile.inc @@ -57,8 +57,8 @@ .endif .endfor -.if ${OPSYS} != FreeBSD || (!(${OSVERSION} < 1000000) && !(${OSVERSION} >= 1003000 && ${OSVERSION} < 1100000) && !(${OSVERSION} >= 1101000 && ${OSVERSION} < 1200000) && !(${OSVERSION} >= 1200056 && ${OSVERSION} < 1300000)) -IGNORE= binaries compiled for FreeBSD 10.3+, 11.0+ and -current only +.if ${OPSYS} != FreeBSD || (!(${OSVERSION} < 1000000) && !(${OSVERSION} >= 1004000 && ${OSVERSION} < 1100000) && !(${OSVERSION} >= 1101001 && ${OSVERSION} < 1200000) && !(${OSVERSION} >= 1200056 && ${OSVERSION} < 1300000)) +IGNORE= binaries compiled for FreeBSD 10.4+, 11.1+ and -current only DISTFILES= .endif Index: emulators/linux_base-c6/pkg-plist.amd64 =================================================================== --- emulators/linux_base-c6/pkg-plist.amd64 +++ emulators/linux_base-c6/pkg-plist.amd64 @@ -1,10 +1,4 @@ @preexec [ -n "`/sbin/sysctl -q %%SYSCTLMIB%%`" ] || ( echo "Cannot install package: kernel missing 64-bit Linux support" >&2; exit 1 ) -@comment The commands below may be removed after FreeBSD 10.3 EoL 2018-04-30 -@preexec [ ! -e %D/bin -o -L %D/bin ] || ( cd %D && find bin | cpio -dumpl --quiet usr && rm -r bin ) -@preexec [ ! -e %D/lib -o -L %D/lib ] || ( cd %D && find lib | cpio -dumpl --quiet usr && rm -r lib ) -@preexec [ ! -e %D/lib64 -o -L %D/lib64 ] || ( cd %D && find lib64 | cpio -dumpl --quiet usr && rm -r lib64 ) -@preexec [ ! -e %D/sbin -o -L %D/sbin ] || ( cd %D && find sbin | cpio -dumpl --quiet usr && rm -r sbin ) -@preexec [ ! -e %D/usr/share/icons -o -L %D/usr/share/icons ] || ( cd %D/usr/share && find icons | cpio -dumpl --quiet %%LOCALBASE%%/share && rm -r icons ) bin etc/DIR_COLORS etc/DIR_COLORS.256color Index: emulators/linux_base-c6/pkg-plist.i386 =================================================================== --- emulators/linux_base-c6/pkg-plist.i386 +++ emulators/linux_base-c6/pkg-plist.i386 @@ -1,9 +1,4 @@ @preexec [ -n "`/sbin/sysctl -q %%SYSCTLMIB%%`" ] || ( echo "Cannot install package: kernel missing Linux support" >&2; exit 1 ) -@comment The commands below may be removed after FreeBSD 10.3 EoL 2018-04-30 -@preexec [ ! -e %D/bin -o -L %D/bin ] || ( cd %D && find bin | cpio -dumpl --quiet usr && rm -r bin ) -@preexec [ ! -e %D/lib -o -L %D/lib ] || ( cd %D && find lib | cpio -dumpl --quiet usr && rm -r lib ) -@preexec [ ! -e %D/sbin -o -L %D/sbin ] || ( cd %D && find sbin | cpio -dumpl --quiet usr && rm -r sbin ) -@preexec [ ! -e %D/usr/share/icons -o -L %D/usr/share/icons ] || ( cd %D/usr/share && find icons | cpio -dumpl --quiet %%LOCALBASE%%/share && rm -r icons ) bin etc/DIR_COLORS etc/DIR_COLORS.256color Index: emulators/linux_base-c7/pkg-plist.amd64 =================================================================== --- emulators/linux_base-c7/pkg-plist.amd64 +++ emulators/linux_base-c7/pkg-plist.amd64 @@ -1,6 +1,4 @@ @preexec [ -n "`/sbin/sysctl -q %%SYSCTLMIB%%`" ] || ( echo "Cannot install package: kernel missing 64-bit Linux support" >&2; exit 1 ) -@comment The command below may be removed after FreeBSD 10.3 EoL 2018-04-30 -@preexec [ ! -e %D/usr/share/icons -o -L %D/usr/share/icons ] || ( cd %D/usr/share && find icons | cpio -dumpl --quiet %%LOCALBASE%%/share && rm -r icons ) bin etc/DIR_COLORS etc/DIR_COLORS.256color Index: emulators/linux_base-c7/pkg-plist.i386 =================================================================== --- emulators/linux_base-c7/pkg-plist.i386 +++ emulators/linux_base-c7/pkg-plist.i386 @@ -1,6 +1,4 @@ @preexec [ -n "`/sbin/sysctl -q %%SYSCTLMIB%%`" ] || ( echo "Cannot install package: kernel missing Linux support" >&2; exit 1 ) -@comment The command below may be removed after FreeBSD 10.3 EoL 2018-04-30 -@preexec [ ! -e %D/usr/share/icons -o -L %D/usr/share/icons ] || ( cd %D/usr/share && find icons | cpio -dumpl --quiet %%LOCALBASE%%/share && rm -r icons ) bin etc/DIR_COLORS etc/DIR_COLORS.256color Index: emulators/rpcs3/Makefile =================================================================== --- emulators/rpcs3/Makefile +++ emulators/rpcs3/Makefile @@ -38,8 +38,6 @@ USE_GL= gl glew USE_QT5= qmake_build buildtools_build core dbus gui network widgets qml 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_OFF= USE_NATIVE_INSTRUCTIONS CXXFLAGS+= -D_GLIBCXX_USE_C99 # XXX ports/193528 Index: emulators/rpcs3/files/extra-patch-no-thread_local =================================================================== --- emulators/rpcs3/files/extra-patch-no-thread_local +++ /dev/null @@ -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(); - -- 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(); - -- 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 - #include - -+#if 0 - // TLS variable for tracking owned mutexes - thread_local std::vector 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 g_tls_error_stats; -- static thread_local std::string g_tls_error_str; -+ static thread_local std::unordered_map* 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; -+ 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(arg); Index: games/gzdoom/Makefile =================================================================== --- games/gzdoom/Makefile +++ games/gzdoom/Makefile @@ -40,12 +40,6 @@ ${DATADIR}/${PORTNAME}.pk3 \ share/pixmaps/${PORTNAME}.xpm -.include - -.if ${OPSYS} == "FreeBSD" && ${OSVERSION} < 1004000 -BROKEN= Fails to link due to lack of thread_local -.endif - .include "${.CURDIR}/../doom-data/Makefile.include" do-install: @@ -54,4 +48,4 @@ ${INSTALL_DATA} ${CONFIGURE_WRKSRC}/${PORTNAME}.pk3 ${STAGEDIR}${DATADIR} ${INSTALL_DATA} ${FILESDIR}/${PORTNAME}.xpm ${STAGEDIR}${PREFIX}/share/pixmaps -.include +.include Index: graphics/sekrit-twc-zimg/Makefile =================================================================== --- graphics/sekrit-twc-zimg/Makefile +++ graphics/sekrit-twc-zimg/Makefile @@ -19,8 +19,6 @@ USES= autoreconf compiler:c++11-lib gmake libtool pathfix 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 CPPFLAGS+= -D_GLIBCXX_USE_C99 -D_GLIBCXX_USE_C99_MATH_TR1 \ -D_DECLARE_C99_LDBL_MATH # XXX ports/193528 Index: graphics/sekrit-twc-zimg/files/extra-patch-src_zimg_api_zimg.cpp =================================================================== --- graphics/sekrit-twc-zimg/files/extra-patch-src_zimg_api_zimg.cpp +++ /dev/null @@ -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 - #include --#include - #include - #include - #include -@@ -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(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) Index: lang/beignet/Makefile =================================================================== --- lang/beignet/Makefile +++ lang/beignet/Makefile @@ -64,11 +64,4 @@ pre-install-TEST-on: do-test-TEST-on -.include - -# gbe_bin_generater crashes in libc++ when built by clang++60 -.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1003513 -LLVMVER= 50 -.endif - .include Index: math/SoPlex/Makefile =================================================================== --- math/SoPlex/Makefile +++ math/SoPlex/Makefile @@ -17,15 +17,8 @@ LIB_DEPENDS= libgmp.so:math/gmp -USES= cmake:outsource,noninja tar:tgz +USES= cmake:outsource tar:tgz USE_LDCONFIG= yes PLIST_SUB= SHL4=${DISTVERSION}.0 SHL2=${DISTVERSION:R} -.include - -.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 +.include Index: math/SoPlex/files/patch-CMakeLists.txt =================================================================== --- math/SoPlex/files/patch-CMakeLists.txt +++ /dev/null @@ -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() - Index: multimedia/cx88/Makefile =================================================================== --- multimedia/cx88/Makefile +++ multimedia/cx88/Makefile @@ -45,10 +45,7 @@ .endif .endif -.if (${OSVERSION} >= 1003500) MAKE_ARGS+= -D CX88_USE_IIC -.endif - MAKE_ARGS+= DEFAULT_XML_CONFIG="${EXAMPLESDIR}/cx88.xml.sample" .include Index: net-p2p/qbittorrent/Makefile =================================================================== --- net-p2p/qbittorrent/Makefile +++ net-p2p/qbittorrent/Makefile @@ -49,11 +49,6 @@ 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: ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/qbittorrent${SUFFIX} ${INSTALL_MAN} ${WRKSRC}/doc/qbittorrent${SUFFIX}.1 \ Index: net/viamillipede/Makefile =================================================================== --- net/viamillipede/Makefile +++ net/viamillipede/Makefile @@ -16,10 +16,4 @@ PLIST_FILES= bin/viamillipede man/man1/viamillipede.1.gz -.include - -.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1004000 -BROKEN= Needs bsd.prog.mk features from at least 10.4, otherwise referenced /usr/share/mk/bsd.own.mk line 505: MK_DEBUG_FILES can't be set by a user. -.endif - -.include +.include Index: security/snort3/Makefile =================================================================== --- security/snort3/Makefile +++ security/snort3/Makefile @@ -59,12 +59,6 @@ # FLATBUFFERS_LIB_DEPENDS= libflatbuffers.so:devel/flatbuffers HYPERSCAN_LIB_DEPENDS= libhs.so:devel/hyperscan -.include - -.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1004000 -EXTRA_PATCHES= ${PATCHDIR}/freebsd103_patch-src_memory_memory__allocator.h -.endif - CONFLICTS= snort-2* -.include +.include Index: security/snort3/files/freebsd103_patch-src_memory_memory__allocator.h =================================================================== --- security/snort3/files/freebsd103_patch-src_memory_memory__allocator.h +++ /dev/null @@ -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 Index: sysutils/freefilesync/Makefile =================================================================== --- sysutils/freefilesync/Makefile +++ sysutils/freefilesync/Makefile @@ -39,10 +39,4 @@ @${REINPLACE_CMD} -e 's|WEXITSTATUS||' ${WRKDIR}/zen/shell_execute.h @${REINPLACE_CMD} -e 's| noexcept;|;|' ${WRKDIR}/zen/scope_guard.h -.include - -.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1003506 -BROKEN= no __cxa_thread_atexit() support in FreeBSD libc < 10.4 -.endif - .include Index: www/chromium/Makefile =================================================================== --- www/chromium/Makefile +++ www/chromium/Makefile @@ -211,13 +211,7 @@ MAKE_ENV+= C_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) pre-everything:: Index: www/chromium/files/extra-patch-libc++-old =================================================================== --- www/chromium/files/extra-patch-libc++-old +++ /dev/null @@ -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: Index: www/nghttp2/Makefile =================================================================== --- www/nghttp2/Makefile +++ www/nghttp2/Makefile @@ -71,11 +71,6 @@ @${MKDIR} ${WRKSRC}/lib/.libs/ @${CP} ${LOCALBASE}/lib/libnghttp2.so* ${WRKSRC}/lib/.libs/ @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: ${MKDIR} ${STAGEDIR}${PREFIX}/etc/nghttpx/ Index: x11/xlockmore/Makefile =================================================================== --- x11/xlockmore/Makefile +++ x11/xlockmore/Makefile @@ -159,7 +159,7 @@ post-patch: @${REINPLACE_CMD} -e '/xglockrc/ s|PROGRAM|DATA|' ${WRKSRC}/xglock/Makefile.in -.if ${OPSYS} == FreeBSD && ${OSVERSION} > 1003500 +.if exists(/usr/bin/fortune) @${REINPLACE_CMD} -e 's|/usr/games/fortune|/usr/bin/fortune|' ${WRKSRC}/modes/Makefile.in .endif