* Disable PaX MPROTECT for bin/mongo Changelog: 3.4.4 – Apr 21, 2017 Issues fixed: SERVER-18794: Add an aggregation operator $objectToArray to convert an object to an array of key, value pairs. SERVER-23310: Add an aggregation operator $arrayToObject to convert an array of pairs to an object. SERVER-22611: ChunkManager refresh can occasionally cause a full reload. 3.4.4 Changelog All JIRA issues closed in 3.4.4 3.4.3 – Mar 28, 2017 Issues fixed: SERVER-27863: Reschedule firing of early alarms in NetworkInterfaceASIO to avoid mongos crash. SERVER-28017: $ne should respect collection’s default collation. SERVER-27700: Improve WiredTiger performance on secondary when cache is full. 3.4.3 Changelog All JIRA issues closed in 3.4.3 3.4.2 – Feb 1, 2017 Issues fixed: SERVER-27125: Arbiters in pv1 should vote no in elections if they can see a healthy primary of equal or greater priority to the candidate. SERVER-27584 Add support for filter to listDatabases WT-2670 Inefficient I/O when read full DB (poor readahead) 3.4.2 Changelog All JIRA issues closed in 3.4.2 3.4.1 – Dec 20, 2016 Issues fixed: SERVER-27124: Disallow readConcern: majority reads on replica set protocolVersion 0 (pv0). SERVER-27201: $graphLookup triggers null pointer dereference. SERVER-27207: Find operation with a sort on a view via mongos may incorrectly return empty result set. SERVER-27213: Two $match pipeline stages can combine incorrectly to produce incorrect results. 3.4.1 Changelog All JIRA issues closed in 3.4.1
121 lines
4.5 KiB
Text
121 lines
4.5 KiB
Text
$NetBSD: patch-SConstruct,v 1.6 2017/05/29 14:44:47 ryoon Exp $
|
|
|
|
Add support for NetBSD/Dragonfly, fix locations.
|
|
Respect LDFLAGS and CXXFLAGS
|
|
|
|
--- SConstruct.orig 2017-04-20 21:43:42.000000000 +0000
|
|
+++ SConstruct
|
|
@@ -49,8 +49,12 @@ def get_running_os_name():
|
|
running_os = os.sys.platform
|
|
if running_os.startswith('linux'):
|
|
running_os = 'linux'
|
|
+ elif running_os.startswith('dragonfly'):
|
|
+ running_os = 'dragonfly'
|
|
elif running_os.startswith('freebsd'):
|
|
running_os = 'freebsd'
|
|
+ elif running_os.startswith('netbsd'):
|
|
+ running_os = 'netbsd'
|
|
elif running_os.startswith('openbsd'):
|
|
running_os = 'openbsd'
|
|
elif running_os == 'sunos5':
|
|
@@ -68,7 +72,7 @@ def env_get_os_name_wrapper(self):
|
|
|
|
def is_os_raw(target_os, os_list_to_check):
|
|
okay = False
|
|
- posix_os_list = [ 'linux', 'openbsd', 'freebsd', 'osx', 'solaris' ]
|
|
+ posix_os_list = [ 'linux', 'openbsd', 'freebsd', 'osx', 'solaris', 'dragonfly', 'netbsd' ]
|
|
|
|
for p in os_list_to_check:
|
|
if p == 'posix' and target_os in posix_os_list:
|
|
@@ -892,6 +896,7 @@ envDict = dict(BUILD_ROOT=buildDir,
|
|
INSTALL_DIR=installDir,
|
|
CONFIG_HEADER_DEFINES={},
|
|
LIBDEPS_TAG_EXPANSIONS=[],
|
|
+ ENV = os.environ,
|
|
)
|
|
|
|
env = Environment(variables=env_vars, **envDict)
|
|
@@ -1029,7 +1034,9 @@ def CheckForProcessor(context, which_arc
|
|
os_macros = {
|
|
"windows": "_WIN32",
|
|
"solaris": "__sun",
|
|
+ "dragonfly": "__DragonFly__",
|
|
"freebsd": "__FreeBSD__",
|
|
+ "netbsd": "__NetBSD__",
|
|
"openbsd": "__OpenBSD__",
|
|
"osx": "__APPLE__",
|
|
"linux": "__linux__",
|
|
@@ -1360,7 +1367,7 @@ elif env['_LIBDEPS'] == '$_LIBDEPS_LIBS'
|
|
|
|
libdeps.setup_environment(env, emitting_shared=(link_model.startswith("dynamic")))
|
|
|
|
-if env.TargetOSIs('linux', 'freebsd', 'openbsd'):
|
|
+if env.TargetOSIs('linux', 'dragonfly', 'freebsd', 'netbsd', 'openbsd'):
|
|
env['LINK_LIBGROUP_START'] = '-Wl,--start-group'
|
|
env['LINK_LIBGROUP_END'] = '-Wl,--end-group'
|
|
env['LINK_WHOLE_ARCHIVE_START'] = '-Wl,--whole-archive'
|
|
@@ -1388,10 +1395,24 @@ if env.TargetOSIs('linux'):
|
|
elif env.TargetOSIs('solaris'):
|
|
env.Append( LIBS=["socket","resolv","lgrp"] )
|
|
|
|
+elif os.sys.platform.startswith( "dragonfly" ):
|
|
+ env.Append( CPPPATH=[ "@PREFIX@/include" ] )
|
|
+ env.Append( LIBPATH=[ "@PREFIX@/lib" ] )
|
|
+ env.Append( LIBS=[ "m" ] )
|
|
+ env.Append( LIBS=[ "kvm" ] )
|
|
+ env.Append( CPPDEFINES=[ "__dragonfly__" ] )
|
|
+
|
|
elif env.TargetOSIs('freebsd'):
|
|
env.Append( LIBS=[ "kvm" ] )
|
|
env.Append( CCFLAGS=[ "-fno-omit-frame-pointer" ] )
|
|
|
|
+elif os.sys.platform.startswith( "netbsd" ):
|
|
+ env.Append( CPPPATH=[ "@PREFIX@/include" ] )
|
|
+ env.Append( LIBPATH=[ "@PREFIX@/lib" ] )
|
|
+ env.Append( LIBS=[ "m" ] )
|
|
+ env.Append( LIBS=[ "kvm" ] )
|
|
+ env.Append( CPPDEFINES=[ "__netbsd__" ] )
|
|
+
|
|
elif env.TargetOSIs('openbsd'):
|
|
env.Append( LIBS=[ "kvm" ] )
|
|
|
|
@@ -1570,6 +1591,9 @@ if env.TargetOSIs('posix'):
|
|
|
|
env.Append( CXXFLAGS=["-Woverloaded-virtual"] )
|
|
env.Append( LINKFLAGS=["-pthread"] )
|
|
+ env.Append( CPPDEFINES=["XP_UNIX=1"] )
|
|
+ env.Append( CXXFLAGS=os.environ['CXXFLAGS'] )
|
|
+ env.Append( LINKFLAGS=os.environ['LDFLAGS'] )
|
|
|
|
# SERVER-9761: Ensure early detection of missing symbols in dependent libraries at program
|
|
# startup.
|
|
@@ -2158,9 +2182,9 @@ def doConfigure(myenv):
|
|
if usingLibStdCxx:
|
|
def CheckModernLibStdCxx(context):
|
|
test_body = """
|
|
- #if !__has_include(<experimental/filesystem>)
|
|
- #error "libstdc++ from GCC 5.3.0 or newer is required"
|
|
- #endif
|
|
+ //#if !__has_include(<experimental/filesystem>)
|
|
+ //#error "libstdc++ from GCC 5.3.0 or newer is required"
|
|
+ //#endif
|
|
"""
|
|
|
|
context.Message('Checking for libstdc++ 5.3.0 or better... ')
|
|
@@ -2764,6 +2788,7 @@ def doConfigure(myenv):
|
|
# permit more than four parameters.
|
|
"BOOST_THREAD_DONT_PROVIDE_VARIADIC_THREAD",
|
|
"BOOST_SYSTEM_NO_DEPRECATED",
|
|
+ "BOOST_OPTIONAL_USE_SINGLETON_DEFINITION_OF_NONE",
|
|
]
|
|
)
|
|
|
|
@@ -2830,7 +2855,7 @@ def doConfigure(myenv):
|
|
myenv.ConfError("Couldn't find SASL header/libraries")
|
|
|
|
# requires ports devel/libexecinfo to be installed
|
|
- if env.TargetOSIs('freebsd', 'openbsd'):
|
|
+ if env.TargetOSIs('dragonfly', 'freebsd', 'netbsd', 'openbsd'):
|
|
if not conf.CheckLib("execinfo"):
|
|
myenv.ConfError("Cannot find libexecinfo, please install devel/libexecinfo.")
|
|
|