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/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/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/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: 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: 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/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 ${OPSYS} == FreeBSD @${REINPLACE_CMD} -e 's|/usr/games/fortune|/usr/bin/fortune|' ${WRKSRC}/modes/Makefile.in .endif