diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ece7ac30e7..1d54f4c74e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Install Dependencies for Ubuntu # git >= 2.18 required for actions/checkout git support - run: apt-get update && apt-get install -y software-properties-common && add-apt-repository -y ppa:git-core/ppa && apt-get update && apt-get install -y git build-essential clang libssl-dev libkrb5-dev libc++-dev wget + run: apt-get update && apt-get install -y software-properties-common && add-apt-repository -y ppa:git-core/ppa && apt-get update && apt-get install -y git build-essential clang-8 lld-8 libssl-dev libkrb5-dev libc++-dev wget env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true @@ -29,6 +29,9 @@ jobs: CC: clang CXX: clang++ run: | + update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-8 100 + update-alternatives --install /usr/bin/clang clang /usr/bin/clang-8 100 + update-alternatives --install /usr/bin/ld ld /usr/bin/lld-8 100 mkdir ~/python cd ~/python wget https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tgz @@ -65,10 +68,17 @@ jobs: CXX: clang++ npm_config_clang: 1 GYP_DEFINES: use_obsolete_asm=true + AR: "/usr/lib/llvm-8/bin/llvm-ar" + NM: "/usr/lib/llvm-8/bin/llvm-nm" + # ranlib is not needed, and doesn't support .bc files in .a + RANLIB: /bin/true # There is a race condition in node/generate that needs to be fixed # Node 16 changed the logic it uses to select it's UID which means to make node run as root and not 1001, we need to chwon the current directory. More Details: # https://stackoverflow.com/questions/70298238/getting-eaccess-when-running-npm-8-as-root run: | + update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-8 100 + update-alternatives --install /usr/bin/clang clang /usr/bin/clang-8 100 + update-alternatives --install /usr/bin/ld ld /usr/bin/lld-8 100 chown root.root -R . npm set unsafe-perm true node utils/retry npm install diff --git a/generate/templates/templates/binding.gyp b/generate/templates/templates/binding.gyp index 26b1f197dc..0bb014540f 100644 --- a/generate/templates/templates/binding.gyp +++ b/generate/templates/templates/binding.gyp @@ -7,6 +7,32 @@ "macOS_deployment_target": "10.11" }, + 'target_defaults': { + 'default_configuration': 'Debug', + 'configurations': { + 'Debug': { + 'defines': [ 'DEBUG', '_DEBUG' ], + }, + 'Release': { + 'defines': [ 'NDEBUG' ], + 'cflags': [ '-flto' ], + 'xcode_settings': { + 'LLVM_LTO': 'YES' + }, + 'msvs_settings': { + 'VCCLCompilerTool': { + 'WholeProgramOptimization': 'true' + }, + 'VCLibrarianTool': { + }, + 'VCLinkerTool': { + 'LinkTimeCodeGeneration': 1 + } + } + } + } + }, + "targets": [ { "target_name": "acquireOpenSSL", diff --git a/vendor/libgit2.gyp b/vendor/libgit2.gyp index 4767545bcc..f0276796de 100644 --- a/vendor/libgit2.gyp +++ b/vendor/libgit2.gyp @@ -13,6 +13,31 @@ "electron_openssl_root%": "