--- ./nss/coreconf/nspr.sh.sav 2019-11-19 20:55:30.000000000 +0100 +++ ./nss/coreconf/nspr.sh 2020-02-19 22:25:05.863542364 +0100 @@ -28,9 +28,13 @@ # These NSPR options are directory-specific, so they don't need to be # included in nspr_opt and changing them doesn't force a rebuild of NSPR. - extra_params=(--prefix="$dist_dir"/$target) + extra_params=(--prefix="$dist_dir"/out --libdir="$dist_dir"/out/lib --includedir="$dist_dir"/out/include) if [ "$opt_build" = 1 ]; then - extra_params+=(--disable-debug --enable-optimize) + if [ "$symbols_build" = 1 ]; then + extra_params+=(--enable-debug-symbols --enable-optimize) + else + extra_params+=(--disable-debug --enable-optimize) + fi fi if [ "$target_arch" = "x64" ]; then extra_params+=(--enable-64bit) --- ./nss/build.sh.sav 2019-11-19 20:55:30.000000000 +0100 +++ ./nss/build.sh 2020-02-19 22:28:30.976068194 +0100 @@ -50,6 +50,7 @@ fi opt_build=0 +symbols_build=0 build_64=0 clean=0 rebuild_gyp=0 @@ -96,6 +97,7 @@ -j) ninja_params+=(-j "$2"); shift ;; --gyp|-g) rebuild_gyp=1 ;; --opt|-o) opt_build=1 ;; + --symbols) symbols_build=1 ;; -m32|--m32) target_arch=ia32; echo 'Warning: use -t instead of -m32' 1>&2 ;; -t|--target) target_arch="$2"; shift ;; --target=*) target_arch="${1#*=}" ;; @@ -139,7 +141,11 @@ # Set the target architecture and build type. gyp_params+=(-Dtarget_arch="$target_arch") if [ "$opt_build" = 1 ]; then - target=Release + if [ "$symbols_build" = 1 ]; then + target=ReleaseSymbols + else + target=Release + fi else target=Debug fi @@ -243,10 +243,10 @@ exit 3 fi # These extra arguments aren't used in determining whether to rebuild. - obj_dir="$dist_dir/$target" + obj_dir="$dist_dir/out" gyp_params+=(-Dnss_dist_obj_dir="$obj_dir") if [ "$no_local_nspr" = 0 ]; then - set_nspr_path "$obj_dir/include/nspr:$obj_dir/lib" + set_nspr_path "$obj_dir/include:$obj_dir/lib" fi run_verbose run_scanbuild ${GYP} -f ninja "${gyp_params[@]}" "$cwd/nss.gyp" @@ -261,7 +261,9 @@ if [ "$rebuild_gyp" = 1 ]; then fi # ninja. -if hash ninja-build 2>/dev/null; then +if test -n "$NINJA"; then + ninja="$NINJA" +elif hash ninja-build 2>/dev/null; then ninja=ninja-build elif hash ninja 2>/dev/null; then ninja=ninja @@ -263,4 +263,4 @@ echo "Building NSS requires an installation of ninja: https://ninja-build.org/" 1>&2 exit 3 fi -run_scanbuild "$ninja" -C "$target_dir" "${ninja_params[@]}" +run_scanbuild setup-python "$ninja" -C "$target_dir" "${ninja_params[@]}" --- ./nss/coreconf/config.gypi.sav 2020-03-06 16:10:17.371503700 +0100 +++ ./nss/coreconf/config.gypi 2020-03-06 16:34:14.868824800 +0100 @@ -612,6 +612,18 @@ }, }, }, + 'ReleaseSymbols': { + 'inherit_from': ['Release'], + 'cflags': [ '-g' ], + 'msvs_settings': { + 'VCCLCompilerTool': { + 'DebugInformationFormat': '3', # /Zi + }, + 'VCLinkerTool': { + 'GenerateDebugInformation': '1', + }, + }, + }, 'conditions': [ [ 'OS=="win"', { # The gyp ninja backend requires these. @@ -624,6 +636,9 @@ 'Release_x64': { 'inherit_from': ['Release'], }, + 'ReleaseSymbols_x64': { + 'inherit_from': ['ReleaseSymbols'], + }, }], ], },