summaryrefslogtreecommitdiff
path: root/security/nss/coreconf/config.gypi
diff options
context:
space:
mode:
Diffstat (limited to 'security/nss/coreconf/config.gypi')
-rw-r--r--security/nss/coreconf/config.gypi288
1 files changed, 177 insertions, 111 deletions
diff --git a/security/nss/coreconf/config.gypi b/security/nss/coreconf/config.gypi
index fe9b55329e..9ea528ae4b 100644
--- a/security/nss/coreconf/config.gypi
+++ b/security/nss/coreconf/config.gypi
@@ -24,39 +24,44 @@
# building on.
'target_arch%': '<(host_arch)',
}],
+ ['OS=="linux"', {
+ # FIPS-140 LOWHASH
+ 'freebl_name': 'freeblpriv3',
+ }, {
+ 'freebl_name': 'freebl3',
+ }],
+ ['OS=="mac"', {
+ 'use_system_sqlite%': 1,
+ },{
+ 'use_system_sqlite%': 0,
+ }],
+ ['OS=="mac" or OS=="win"', {
+ 'cc_use_gnu_ld%': 0,
+ }, {
+ 'cc_use_gnu_ld%': 1,
+ }],
['OS=="win"', {
'use_system_zlib%': 0,
- 'nspr_libs%': ['nspr4.lib', 'plc4.lib', 'plds4.lib'],
+ 'nspr_libs%': ['libnspr4.lib', 'libplc4.lib', 'libplds4.lib'],
'zlib_libs%': [],
#TODO
'moz_debug_flags%': '',
'dll_prefix': '',
'dll_suffix': 'dll',
}, {
- 'nspr_libs%': ['-lplds4', '-lplc4', '-lnspr4'],
'use_system_zlib%': 1,
- }],
- ['OS=="linux" or OS=="android"', {
- 'zlib_libs%': ['-lz'],
- 'moz_debug_flags%': '-gdwarf-2',
- 'optimize_flags%': '-O2',
- 'dll_prefix': 'lib',
- 'dll_suffix': 'so',
- }],
- ['OS=="linux"', {
- 'freebl_name': 'freeblpriv3',
- }, {
- 'freebl_name': 'freebl3',
- }],
- ['OS=="mac"', {
+ 'nspr_libs%': ['-lplds4', '-lplc4', '-lnspr4'],
'zlib_libs%': ['-lz'],
- 'use_system_sqlite%': 1,
- 'moz_debug_flags%': '-gdwarf-2 -gfull',
- 'optimize_flags%': '-O2',
'dll_prefix': 'lib',
- 'dll_suffix': 'dylib',
- }, {
- 'use_system_sqlite%': 0,
+ 'conditions': [
+ ['OS=="mac"', {
+ 'moz_debug_flags%': '-gdwarf-2 -gfull',
+ 'dll_suffix': 'dylib',
+ }, {
+ 'moz_debug_flags%': '-gdwarf-2',
+ 'dll_suffix': 'so',
+ }],
+ ],
}],
['"<(GENERATOR)"=="ninja"', {
'cc_is_clang%': '<!(<(python) <(DEPTH)/coreconf/check_cc_clang.py)',
@@ -81,6 +86,7 @@
'dll_suffix': '<(dll_suffix)',
'freebl_name': '<(freebl_name)',
'cc_is_clang%': '<(cc_is_clang)',
+ 'cc_use_gnu_ld%': '<(cc_use_gnu_ld)',
# Some defaults
'disable_tests%': 0,
'disable_chachapoly%': 0,
@@ -91,16 +97,18 @@
'moz_fold_libs%': 0,
'moz_folded_library_name%': '',
'ssl_enable_zlib%': 1,
- 'use_asan%': 0,
- 'use_ubsan%': 0,
- 'use_msan%': 0,
- 'use_sancov%': 0,
+ 'sanitizer_flags%': 0,
'test_build%': 0,
+ 'no_zdefs%': 0,
'fuzz%': 0,
+ 'fuzz_tls%': 0,
+ 'fuzz_oss%': 0,
'sign_libs%': 1,
'use_pprof%': 0,
+ 'ct_verif%': 0,
'nss_public_dist_dir%': '<(nss_dist_dir)/public',
'nss_private_dist_dir%': '<(nss_dist_dir)/private',
+ 'only_dev_random%': 1,
},
'target_defaults': {
# Settings specific to targets should go here.
@@ -108,6 +116,8 @@
'variables': {
'mapfile%': '',
'test_build%': 0,
+ 'debug_optimization_level%': '0',
+ 'release_optimization_level%': '2',
},
'standalone_static_library': 0,
'include_dirs': [
@@ -115,13 +125,68 @@
'<(nss_dist_dir)/private/<(module)',
],
'conditions': [
- [ 'OS=="linux"', {
+ [ 'OS!="android" and OS!="mac" and OS!="win"', {
'libraries': [
'-lpthread',
+ ],
+ }],
+ [ 'OS=="linux"', {
+ 'libraries': [
'-ldl',
'-lc',
],
}],
+ [ 'fuzz==1', {
+ 'variables': {
+ 'debug_optimization_level%': '1',
+ },
+ }],
+ [ 'target_arch=="ia32" or target_arch=="x64"', {
+ 'defines': [
+ 'NSS_X86_OR_X64',
+ ],
+ # For Windows.
+ 'msvs_settings': {
+ 'VCCLCompilerTool': {
+ 'PreprocessorDefinitions': [
+ 'NSS_X86_OR_X64',
+ ],
+ },
+ },
+ }],
+ [ 'target_arch=="ia32"', {
+ 'defines': [
+ 'NSS_X86',
+ ],
+ # For Windows.
+ 'msvs_settings': {
+ 'VCCLCompilerTool': {
+ 'PreprocessorDefinitions': [
+ 'NSS_X86',
+ ],
+ },
+ },
+ }],
+ [ 'target_arch=="arm64" or target_arch=="aarch64"', {
+ 'defines': [
+ 'NSS_USE_64',
+ ],
+ }],
+ [ 'target_arch=="x64"', {
+ 'defines': [
+ 'NSS_X64',
+ 'NSS_USE_64',
+ ],
+ # For Windows.
+ 'msvs_settings': {
+ 'VCCLCompilerTool': {
+ 'PreprocessorDefinitions': [
+ 'NSS_X64',
+ 'NSS_USE_64',
+ ],
+ },
+ },
+ }],
],
'target_conditions': [
# If we want to properly export a static library, and copy it to lib,
@@ -135,7 +200,7 @@
'product_dir': '<(nss_dist_obj_dir)/lib'
}],
# mapfile handling
- [ 'test_build==0 and mapfile!=""', {
+ [ 'mapfile!=""', {
# Work around a gyp bug. Fixed upstream but not in Ubuntu packages:
# https://chromium.googlesource.com/external/gyp/+/b85ad3e578da830377dbc1843aa4fbc5af17a192%5E%21/
'sources': [
@@ -148,12 +213,12 @@
],
},
'conditions': [
- [ 'OS=="linux" or OS=="android"', {
+ [ 'cc_use_gnu_ld==1', {
'ldflags': [
'-Wl,--version-script,<(INTERMEDIATE_DIR)/out.>(mapfile)',
],
}],
- [ 'OS=="win"', {
+ [ 'cc_use_gnu_ld!=1 and OS=="win"', {
# On Windows, .def files are used directly as sources.
'sources': [
'>(mapfile)',
@@ -195,10 +260,16 @@
# Shared library specific settings.
[ '_type=="shared_library"', {
'conditions': [
- [ 'OS=="linux" or OS=="android"', {
+ [ 'cc_use_gnu_ld==1', {
'ldflags': [
'-Wl,--gc-sections',
- '-Wl,-z,defs',
+ ],
+ 'conditions': [
+ ['no_zdefs==0', {
+ 'ldflags': [
+ '-Wl,-z,defs',
+ ],
+ }],
],
}],
],
@@ -251,10 +322,36 @@
'LINUX2_1',
'LINUX',
'linux',
+ ],
+ }],
+ [ 'OS=="dragonfly" or OS=="freebsd"', {
+ 'defines': [
+ 'FREEBSD',
+ ],
+ }],
+ [ 'OS=="netbsd"', {
+ 'defines': [
+ 'NETBSD',
+ ],
+ }],
+ [ 'OS=="openbsd"', {
+ 'defines': [
+ 'OPENBSD',
+ ],
+ }],
+ ['OS=="mac" or OS=="dragonfly" or OS=="freebsd" or OS=="netbsd" or OS=="openbsd"', {
+ 'defines': [
+ 'HAVE_BSD_FLOCK',
+ ],
+ }],
+ [ 'OS!="win"', {
+ 'defines': [
'HAVE_STRERROR',
'XP_UNIX',
'_REENTRANT',
],
+ }],
+ [ 'OS!="mac" and OS!="win"', {
'cflags': [
'-fPIC',
'-pipe',
@@ -264,6 +361,9 @@
'cflags_cc': [
'-std=c++0x',
],
+ 'ldflags': [
+ '-z', 'noexecstack',
+ ],
'conditions': [
[ 'target_arch=="ia32"', {
'cflags': ['-m32'],
@@ -273,89 +373,57 @@
'cflags': ['-m64'],
'ldflags': ['-m64'],
}],
- [ 'use_pprof==1' , {
+ ],
+ }],
+ [ 'use_pprof==1 and OS!="android" and OS!="win"', {
+ 'conditions': [
+ [ 'OS=="mac"', {
+ 'xcode_settings': {
+ 'OTHER_LDFLAGS': [ '-lprofiler' ],
+ },
+ }, {
'ldflags': [ '-lprofiler' ],
}],
+ [ 'OS!="linux"', {
+ 'library_dirs': [
+ '/usr/local/lib/',
+ ],
+ }],
],
}],
- [ 'disable_werror==0 and (OS=="linux" or OS=="mac")', {
+ [ 'disable_werror==0 and OS!="android" and OS!="win"', {
'cflags': [
'<!@(<(python) <(DEPTH)/coreconf/werror.py)',
],
+ 'xcode_settings': {
+ 'OTHER_CFLAGS': [
+ '<!@(<(python) <(DEPTH)/coreconf/werror.py)',
+ ],
+ },
}],
- [ 'fuzz==1', {
+ [ 'fuzz_tls==1', {
'cflags': [
'-Wno-unused-function',
- ]
- }],
- [ 'use_asan==1 or use_ubsan==1', {
- 'cflags': ['-O1'],
+ '-Wno-unused-variable',
+ ],
'xcode_settings': {
- 'GCC_OPTIMIZATION_LEVEL': '1', # -O1
- }
- }],
- [ 'use_asan==1', {
- 'variables': {
- 'asan_flags': '<!(<(python) <(DEPTH)/coreconf/sanitizers.py asan)',
- 'no_ldflags': '<!(<(python) <(DEPTH)/coreconf/sanitizers.py ld)',
+ 'OTHER_CFLAGS': [
+ '-Wno-unused-function',
+ '-Wno-unused-variable',
+ ],
},
- 'cflags': ['<@(asan_flags)'],
- 'ldflags': ['<@(asan_flags)'],
- 'ldflags!': ['<@(no_ldflags)'],
+ }],
+ [ 'sanitizer_flags!=0', {
+ 'cflags': ['<@(sanitizer_flags)'],
+ 'ldflags': ['<@(sanitizer_flags)'],
'xcode_settings': {
- 'OTHER_CFLAGS': ['<@(asan_flags)'],
- 'OTHER_LDFLAGS!': ['<@(no_ldflags)'],
+ 'OTHER_CFLAGS': ['<@(sanitizer_flags)'],
# We want to pass -fsanitize=... to our final link call,
# but not to libtool. OTHER_LDFLAGS is passed to both.
# To trick GYP into doing what we want, we'll piggyback on
# LIBRARY_SEARCH_PATHS, producing "-L/usr/lib -fsanitize=...".
# The -L/usr/lib is redundant but innocuous: it's a default path.
- 'LIBRARY_SEARCH_PATHS': ['/usr/lib <(asan_flags)'],
- },
- }],
- [ 'use_ubsan==1', {
- 'variables': {
- 'ubsan_flags': '<!(<(python) <(DEPTH)/coreconf/sanitizers.py ubsan)',
- 'no_ldflags': '<!(<(python) <(DEPTH)/coreconf/sanitizers.py ld)',
- },
- 'cflags': ['<@(ubsan_flags)'],
- 'ldflags': ['<@(ubsan_flags)'],
- 'ldflags!': ['<@(no_ldflags)'],
- 'xcode_settings': {
- 'OTHER_CFLAGS': ['<@(ubsan_flags)'],
- 'OTHER_LDFLAGS!': ['<@(no_ldflags)'],
- # See comment above.
- 'LIBRARY_SEARCH_PATHS': ['/usr/lib <(ubsan_flags)'],
- },
- }],
- [ 'use_msan==1', {
- 'variables': {
- 'msan_flags': '<!(<(python) <(DEPTH)/coreconf/sanitizers.py msan)',
- 'no_ldflags': '<!(<(python) <(DEPTH)/coreconf/sanitizers.py ld)',
- },
- 'cflags': ['<@(msan_flags)'],
- 'ldflags': ['<@(msan_flags)'],
- 'ldflags!': ['<@(no_ldflags)'],
- 'xcode_settings': {
- 'OTHER_CFLAGS': ['<@(msan_flags)'],
- 'OTHER_LDFLAGS!': ['<@(no_ldflags)'],
- # See comment above.
- 'LIBRARY_SEARCH_PATHS': ['/usr/lib <(msan_flags)'],
- },
- }],
- [ 'use_sancov!=0', {
- 'variables': {
- 'sancov_flags': '<!(<(python) <(DEPTH)/coreconf/sanitizers.py sancov <(use_sancov))',
- 'no_ldflags': '<!(<(python) <(DEPTH)/coreconf/sanitizers.py ld)',
- },
- 'cflags': ['<@(sancov_flags)'],
- 'ldflags': ['<@(sancov_flags)'],
- 'ldflags!': ['<@(no_ldflags)'],
- 'xcode_settings': {
- 'OTHER_CFLAGS': ['<@(sancov_flags)'],
- 'OTHER_LDFLAGS!': ['<@(no_ldflags)'],
- # See comment above.
- 'LIBRARY_SEARCH_PATHS': ['/usr/lib <(sancov_flags)'],
+ 'LIBRARY_SEARCH_PATHS': ['/usr/lib <(sanitizer_flags)'],
},
}],
[ 'OS=="android" and mozilla_client==0', {
@@ -368,9 +436,6 @@
[ 'OS=="mac"', {
'defines': [
'DARWIN',
- 'HAVE_STRERROR',
- 'HAVE_BSD_FLOCK',
- 'XP_UNIX',
],
'conditions': [
[ 'target_arch=="ia32"', {
@@ -415,9 +480,9 @@
'PreprocessorDefinitions': [
'WIN32',
],
+ 'AdditionalOptions': [ '/EHsc' ],
},
},
-
}],
[ 'target_arch=="x64"', {
'msvs_configuration_platform': 'x64',
@@ -430,6 +495,7 @@
'WIN64',
'_AMD64_',
],
+ 'AdditionalOptions': [ '/EHsc' ],
},
},
}],
@@ -451,7 +517,7 @@
'Debug': {
'inherit_from': ['Common'],
'conditions': [
- [ 'OS=="linux" or OS=="android"', {
+ [ 'OS!="mac" and OS!="win"', {
'cflags': [
'-g',
'<(moz_debug_flags)',
@@ -460,14 +526,15 @@
],
#TODO: DEBUG_$USER
'defines': ['DEBUG'],
+ 'cflags': [ '-O<(debug_optimization_level)' ],
'xcode_settings': {
'COPY_PHASE_STRIP': 'NO',
- 'GCC_OPTIMIZATION_LEVEL': '0',
+ 'GCC_OPTIMIZATION_LEVEL': '<(debug_optimization_level)',
'GCC_GENERATE_DEBUGGING_SYMBOLS': 'YES',
},
'msvs_settings': {
'VCCLCompilerTool': {
- 'Optimization': '0',
+ 'Optimization': '<(debug_optimization_level)',
'BasicRuntimeChecks': '3',
'RuntimeLibrary': '2', # /MD
},
@@ -482,16 +549,15 @@
# Common settings for release should go here.
'Release': {
'inherit_from': ['Common'],
- 'defines': [
- 'NDEBUG',
- ],
+ 'defines': ['NDEBUG'],
+ 'cflags': [ '-O<(release_optimization_level)' ],
'xcode_settings': {
'DEAD_CODE_STRIPPING': 'YES', # -Wl,-dead_strip
- 'GCC_OPTIMIZATION_LEVEL': '2', # -O2
+ 'GCC_OPTIMIZATION_LEVEL': '<(release_optimization_level)',
},
'msvs_settings': {
'VCCLCompilerTool': {
- 'Optimization': '2', # /Os
+ 'Optimization': '<(release_optimization_level)',
'RuntimeLibrary': '2', # /MD
},
'VCLinkerTool': {
@@ -516,9 +582,9 @@
},
},
'conditions': [
- [ 'OS=="linux" or OS=="android"', {
+ [ 'cc_use_gnu_ld==1', {
'variables': {
- 'process_map_file': ['/bin/sh', '-c', '/bin/grep -v ";-" >(mapfile) | sed -e "s,;+,," -e "s; DATA ;;" -e "s,;;,," -e "s,;.*,;," > >@(_outputs)'],
+ 'process_map_file': ['/bin/sh', '-c', '/usr/bin/env grep -v ";-" >(mapfile) | sed -e "s,;+,," -e "s; DATA ;;" -e "s,;;,," -e "s,;.*,;," > >@(_outputs)'],
},
}],
[ 'OS=="mac"', {