Bug 1807780 - Use -ivfsoverlay instead of liblowercase. r=firefox-build-system-reviewers,ahochheiden

Because this involves affecting the MSVC + Windows SDK packs, we need to
do this for toolchain tasks as well as Firefox builds in a single pass.

The MSVC + Windows SDK packs are altered to keep the original case
instead of lowercasing everything (except .lib files), and contain
an overlay file that we now automatically use from the WINSYSROOT.

This requires adjusting some paths to match what the original case
is, as well as removing everything related to the use of liblowercase,
which conflicts with the use of the overlay file. People using
liblowercase locally will still have a working setup as long as they
don't set WINSYSROOT (it's new, so they won't have it), and don't have
an overlay file in there (which they only would  if they ran the new
pack_vs.py).

Differential Revision: https://phabricator.services.mozilla.com/D165596
This commit is contained in:
Mike Hommey 2022-12-29 00:05:49 +00:00
Родитель 0bf5962c29
Коммит 007a7a25e5
29 изменённых файлов: 125 добавлений и 186 удалений

Просмотреть файл

@ -2,6 +2,7 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import functools
import os
import shutil
import subprocess
@ -25,11 +26,20 @@ def relativize(path, base=None):
return os.path.relpath(path, base)
@functools.lru_cache(maxsize=None)
def files_in(path):
return {p.lower(): os.path.join(path, p) for p in os.listdir(path)}
def search_path(paths, path):
for p in paths:
f = os.path.join(p, path)
if os.path.isfile(f):
return f
# try an case-insensitive match
maybe_match = files_in(p).get(path.lower())
if maybe_match:
return maybe_match
raise RuntimeError(f"Cannot find {path}")
@ -90,8 +100,15 @@ def preprocess(base, input, flags):
input = search_path(includes, input)
# If there is a .acf file corresponding to the .idl we're processing,
# we also want to preprocess that file because midl might look for it too.
if input.endswith(".idl") and os.path.exists(input[:-4] + ".acf"):
queue.append(input[:-4] + ".acf")
if input.lower().endswith(".idl"):
try:
acf = search_path(
[os.path.dirname(input)], os.path.basename(input)[:-4] + ".acf"
)
if acf:
queue.append(acf)
except RuntimeError:
pass
command = preprocessor + [input]
preprocessed = os.path.join(base, os.path.basename(input))
subprocess.run(command, stdout=open(preprocessed, "wb"), check=True)

Просмотреть файл

@ -558,6 +558,11 @@ option(
)
@depends_if("WINSYSROOT", when=is_windows)
def winsysroot(winsysroot):
return winsysroot[0]
option(
env="VC_PATH",
nargs=1,
@ -571,7 +576,7 @@ option(
vs_version,
build_environment,
"VC_PATH",
"WINSYSROOT",
winsysroot,
when=is_windows,
)
@imports("os")
@ -583,7 +588,7 @@ def vc_compiler_paths_for_version(host, vs_version, env, vc_path, winsysroot):
if winsysroot:
if vc_path:
die("WINSYSROOT and VC_PATH cannot be set together.")
base_vc_path = os.path.join(winsysroot[0], "VC", "Tools", "MSVC")
base_vc_path = os.path.join(winsysroot, "VC", "Tools", "MSVC")
versions = os.listdir(base_vc_path)
vc_path = [os.path.join(base_vc_path, str(max(Version(v) for v in versions)))]
if vc_path:
@ -606,8 +611,8 @@ def vc_compiler_paths_for_version(host, vs_version, env, vc_path, winsysroot):
# Choose the newest version.
path = all_versions[-1][1]
host_dir = {
"x86_64": "HostX64",
"x86": "HostX86",
"x86_64": "Hostx64",
"x86": "Hostx86",
}.get(host.cpu)
if host_dir:
path = os.path.join(path, "bin", host_dir)
@ -1180,6 +1185,7 @@ def compiler(
sysroot,
macos_target,
multiarch_dir,
winsysroot,
)
@checking("whether %s can be used" % what, lambda x: bool(x))
@imports(_from="mozbuild.shellutil", _import="quote")
@ -1192,6 +1198,7 @@ def compiler(
sysroot,
macos_target,
multiarch_dir,
winsysroot,
):
wrapper = list(compiler_wrapper or ())
flags = []
@ -1308,6 +1315,23 @@ def compiler(
"Only clang-cl 8.0 or newer is supported (found version %s)"
% info.version
)
if winsysroot:
overlay = os.path.join(winsysroot, "overlay.yaml")
if os.path.exists(overlay):
overlay_flags = ["-Xclang", "-ivfsoverlay", "-Xclang", overlay]
if info.version >= "16.0" or (
# clang-cl 15 normally doesn't support the root-relative
# overlay we use, but the bootstrapped clang-cl 15 is patched
# to support it, so check we're using a patched version.
info.version >= "15.0"
and try_preprocess(
wrapper + [compiler] + flags + overlay_flags,
language,
"",
onerror=lambda: False,
)
):
flags.extend(overlay_flags)
# If you want to bump the version check here ensure the version
# is known for Xcode in get_compiler_info.

Просмотреть файл

@ -65,8 +65,8 @@ def get_sdk_dirs(sdk, subdir):
def categorize(dirs):
return {os.path.basename(d): d for d in dirs}
include_dirs = categorize(get_dirs_containing(sdk, "include", subdir))
lib_dirs = categorize(get_dirs_containing(sdk, "lib", subdir))
include_dirs = categorize(get_dirs_containing(sdk, "Include", subdir))
lib_dirs = categorize(get_dirs_containing(sdk, "Lib", subdir))
valid_versions = sorted(set(include_dirs) & set(lib_dirs), reverse=True)
return [

Просмотреть файл

@ -40,28 +40,64 @@ if __name__ == "__main__":
unpacked = tmpdir / "unpack"
extractPackages(selected, dl_cache, unpacked)
stem = Path(Path(args.output.stem).stem)
vfs = {}
# Create an archive containing all the paths in lowercase form for
# cross-compiles.
with open(args.output, "wb") as f:
with ZstdCompressor().stream_writer(f) as z:
with tarfile.open(mode="w|", fileobj=z) as tar:
for subpath, dest in (
("VC", "vc"),
("Program Files/Windows Kits/10", "windows kits/10"),
("DIA SDK", "dia sdk"),
):
subpath = unpacked / subpath
dest = Path(dest)
for root, dirs, files in os.walk(subpath):
relpath = Path(root).relative_to(subpath)
for f in files:
path = Path(root) / f
info = tar.gettarinfo(path)
with open(path, "rb") as fh:
info.name = str(stem / dest / relpath / f).lower()
# Set executable flag on .exe files, the Firefox build
# system wants it.
if info.name.endswith(".exe"):
info.mode |= (info.mode & 0o444) >> 2
print("Adding", info.name)
tar.addfile(info, fh)
with ZstdCompressor().stream_writer(open(args.output, "wb")) as z, tarfile.open(
mode="w|", fileobj=z
) as tar:
for subpath in ("VC", "Program Files/Windows Kits/10", "DIA SDK"):
dest = subpath
if dest.startswith("Program Files/"):
dest = dest[len("Program Files/") :]
subpath = unpacked / subpath
dest = Path(dest)
for root, dirs, files in os.walk(subpath):
relpath = Path(root).relative_to(subpath)
for f in files:
path = Path(root) / f
info = tar.gettarinfo(path)
with open(path, "rb") as fh:
lower_f = f.lower()
# Ideally, we'd use the overlay for .libs too but as of
# writing it's still impractical to use, so lowercase
# them for now, that'll be enough.
if lower_f.endswith(".lib"):
f = lower_f
info.name = str(stem / dest / relpath / f)
# Set executable flag on .exe files, the Firefox build
# system wants it.
if lower_f.endswith(".exe"):
info.mode |= (info.mode & 0o444) >> 2
print("Adding", info.name)
tar.addfile(info, fh)
if lower_f.endswith((".h", ".idl")):
vfs.setdefault(str(dest / relpath), []).append(f)
# Create an overlay file for use with clang's -ivfsoverlay flag.
overlay = {
"version": 0,
"case-sensitive": False,
"root-relative": "overlay-dir",
"overlay-relative": True,
"roots": [
{
"name": p,
"type": "directory",
"contents": [
{
"name": f,
"type": "file",
"external-contents": f"{p}/{f}",
}
for f in files
],
}
for p, files in vfs.items()
],
}
overlay_yaml = tmpdir / "overlay.yaml"
with overlay_yaml.open("w") as fh:
fh.write(yaml.dump(overlay))
info = tar.gettarinfo(overlay_yaml)
info.name = str(stem / "overlay.yaml")
tar.addfile(info, overlay_yaml.open("rb"))

Просмотреть файл

@ -3,8 +3,8 @@ if [ -z "${VSPATH}" ]; then
fi
if [ -d "${VSPATH}" ]; then
export WIN32_REDIST_DIR="${VSPATH}/vc/redist/msvc/14.16.27012/x86/microsoft.vc141.crt"
export WIN_UCRT_REDIST_DIR="${VSPATH}/windows kits/10/redist/ucrt/dlls/x86"
export WIN32_REDIST_DIR="${VSPATH}/VC/Redist/MSVC/14.16.27012/x86/Microsoft.VC141.CRT"
export WIN_UCRT_REDIST_DIR="${VSPATH}/Windows Kits/10/Redist/ucrt/DLLs/x86"
export WINSYSROOT="${VSPATH}"
fi

Просмотреть файл

@ -3,7 +3,7 @@ if [ -z "${VSPATH}" ]; then
fi
if [ -d "${VSPATH}" ]; then
export WIN32_REDIST_DIR=${VSPATH}/vc/redist/msvc/14.16.27012/x64/microsoft.vc141.crt
export WIN_UCRT_REDIST_DIR="${VSPATH}/windows kits/10/redist/ucrt/dlls/x64"
export WIN32_REDIST_DIR=${VSPATH}/VC/Redist/MSVC/14.16.27012/x64/Microsoft.VC141.CRT
export WIN_UCRT_REDIST_DIR="${VSPATH}/Windows Kits/10/Redist/ucrt/DLLs/x64"
export WINSYSROOT="${VSPATH}"
fi

Просмотреть файл

@ -35,9 +35,6 @@ win32/debug:
mozconfig-variant: debug
extra-config:
mozconfig_platform: win32
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
use-sccache: true
fetches:
toolchain:
@ -50,7 +47,6 @@ win32/debug:
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -87,9 +83,6 @@ win32/opt:
extra-config:
stage_platform: win32
mozconfig_platform: win32
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
run-on-projects: ['integration']
use-sccache: true
fetches:
@ -103,7 +96,6 @@ win32/opt:
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -140,9 +132,6 @@ win32-fuzzing/debug:
extra-config:
stage_platform: win32
mozconfig_platform: win32
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
mozconfig-variant: debug-fuzzing
run-on-projects: ['trunk']
use-sccache: true
@ -157,7 +146,6 @@ win32-fuzzing/debug:
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -197,9 +185,6 @@ win64/debug:
mozconfig-variant: debug
extra-config:
mozconfig_platform: win64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
use-sccache: true
fetches:
toolchain:
@ -212,7 +197,6 @@ win64/debug:
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -246,9 +230,6 @@ win64-hybrid/plain:
mozconfig-variant: hybrid
extra-config:
mozconfig_platform: win64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
use-sccache: true
run-on-projects: ['integration']
fetches:
@ -262,7 +243,6 @@ win64-hybrid/plain:
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -298,9 +278,6 @@ win64-fuzzing/debug:
- builds/taskcluster_sub_win64/debug.py
extra-config:
mozconfig_platform: win64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
mozconfig-variant: debug-fuzzing
run-on-projects: ['trunk']
use-sccache: true
@ -315,7 +292,6 @@ win64-fuzzing/debug:
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -397,13 +373,6 @@ win64/opt:
extra-config:
stage_platform: win64
mozconfig_platform: win64
env:
# Setting LD_PRELOAD at the worker level would set it during
# fetch-content, which can fail randomly when a tar/unzip subprocess
# of fetch-content starts while the library is being extracted by
# another.
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
run-on-projects: ['integration']
use-sccache: true
fetches:
@ -417,7 +386,6 @@ win64/opt:
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -514,9 +482,6 @@ win32-shippable/opt:
extra-config:
stage_platform: win32
mozconfig_platform: win32
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
fetches:
toolchain:
- linux64-clang
@ -527,7 +492,6 @@ win32-shippable/opt:
- linux64-cbindgen
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -570,9 +534,6 @@ win64-shippable/opt:
extra-config:
stage_platform: win64
mozconfig_platform: win64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
fetches:
toolchain:
- linux64-clang
@ -583,7 +544,6 @@ win64-shippable/opt:
- linux64-cbindgen
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -615,9 +575,6 @@ win32-add-on-devel/opt:
extra-config:
stage_platform: win32-add-on-devel
mozconfig_platform: win32
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
mozconfig-variant: add-on-devel
run-on-projects: ['mozilla-beta', 'mozilla-release']
use-sccache: true
@ -632,7 +589,6 @@ win32-add-on-devel/opt:
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -664,9 +620,6 @@ win64-add-on-devel/opt:
extra-config:
stage_platform: win64-on-devel
mozconfig_platform: win64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
mozconfig-variant: add-on-devel
run-on-projects: ['mozilla-beta', 'mozilla-release']
use-sccache: true
@ -681,7 +634,6 @@ win64-add-on-devel/opt:
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -714,9 +666,6 @@ win64-noopt/debug:
mozconfig-variant: noopt-debug
extra-config:
mozconfig_platform: win64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
run-on-projects: ['mozilla-central']
use-sccache: true
fetches:
@ -730,7 +679,6 @@ win64-noopt/debug:
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -763,9 +711,6 @@ win32-noopt/debug:
mozconfig-variant: noopt-debug
extra-config:
mozconfig_platform: win32
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
run-on-projects: ['mozilla-central']
use-sccache: true
fetches:
@ -779,7 +724,6 @@ win32-noopt/debug:
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -1087,9 +1031,6 @@ win64-asan/debug:
- builds/taskcluster_sub_win64/asan_debug.py
extra-config:
mozconfig_platform: win64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
mozconfig-variant: debug-asan
use-sccache: true
fetches:
@ -1103,7 +1044,6 @@ win64-asan/debug:
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -1141,9 +1081,6 @@ win64-asan/opt:
extra-config:
stage_platform: win64-asan
mozconfig_platform: win64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
mozconfig-variant: nightly-asan
use-sccache: true
fetches:
@ -1157,7 +1094,6 @@ win64-asan/opt:
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -1201,9 +1137,6 @@ win64-asan-reporter-shippable/opt:
extra-config:
stage_platform: win64-asan-reporter
mozconfig_platform: win64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
mozconfig-variant: nightly-asan-reporter
mar-channel-id:
firefox-mozilla-central-asan
@ -1220,7 +1153,6 @@ win64-asan-reporter-shippable/opt:
- linux64-cbindgen
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -1254,9 +1186,6 @@ win64-asan-fuzzing/opt:
extra-config:
stage_platform: win64-fuzzing-asan
mozconfig_platform: win64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
mozconfig-variant: nightly-fuzzing-asan
use-sccache: true
fetches:
@ -1270,7 +1199,6 @@ win64-asan-fuzzing/opt:
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -1325,9 +1253,6 @@ win32-devedition/opt:
extra-config:
stage_platform: win32-devedition
mozconfig_platform: win32
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
mozconfig-variant: devedition
run-on-projects: ['mozilla-beta']
fetches:
@ -1340,7 +1265,6 @@ win32-devedition/opt:
- linux64-cbindgen
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -1382,9 +1306,6 @@ win64-devedition/opt:
extra-config:
stage_platform: win64-devedition
mozconfig_platform: win64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
mozconfig-variant: devedition
run-on-projects: ['mozilla-beta']
fetches:
@ -1397,7 +1318,6 @@ win64-devedition/opt:
- linux64-cbindgen
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -1433,9 +1353,6 @@ win64-aarch64/debug:
- builds/taskcluster_sub_win64/debug.py
extra-config:
mozconfig_platform: win64-aarch64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
mozconfig-variant: debug
use-sccache: true
fetches:
@ -1449,7 +1366,6 @@ win64-aarch64/debug:
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -1493,9 +1409,6 @@ win64-aarch64/opt:
extra-config:
stage_platform: win64-aarch64
mozconfig_platform: win64-aarch64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
run-on-projects: ['integration']
use-sccache: true
fetches:
@ -1509,7 +1422,6 @@ win64-aarch64/opt:
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -1695,9 +1607,6 @@ win64-aarch64-shippable-no-eme/opt:
extra-config:
stage_platform: win64-aarch64
mozconfig_platform: win64-aarch64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
run-on-projects: ['all']
fetches:
toolchain:
@ -1709,7 +1618,6 @@ win64-aarch64-shippable-no-eme/opt:
- linux64-cbindgen
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -1853,9 +1761,6 @@ win64-aarch64-devedition-no-eme/opt:
extra-config:
stage_platform: win64-aarch64
mozconfig_platform: win64-aarch64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
mozconfig-variant: devedition
run-on-projects: ['mozilla-beta']
fetches:
@ -1868,7 +1773,6 @@ win64-aarch64-devedition-no-eme/opt:
- linux64-cbindgen
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu

Просмотреть файл

@ -263,9 +263,6 @@ jobs:
extra-config:
stage_platform: win32
mozconfig_platform: win32
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
fetches:
toolchain:
- linux64-clang
@ -276,7 +273,6 @@ jobs:
- linux64-cbindgen
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu
@ -303,9 +299,6 @@ jobs:
extra-config:
stage_platform: win64
mozconfig_platform: win64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
fetches:
toolchain:
- linux64-clang
@ -316,7 +309,6 @@ jobs:
- linux64-cbindgen
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu

Просмотреть файл

@ -49,7 +49,6 @@ job-template:
- linux64-hfsplus
win.*:
- linux64-wine
- linux64-liblowercase
- nsis
fetch:
by-build-platform:

Просмотреть файл

@ -123,9 +123,6 @@ jobs:
- builds/taskcluster_sub_win64/searchfox_debug.py
extra-config:
mozconfig_platform: win64
env:
LD_PRELOAD: "/builds/worker/fetches/liblowercase/liblowercase.so"
LOWERCASE_DIRS: "/builds/worker/fetches/vs"
use-sccache: true
fetches:
toolchain:
@ -138,7 +135,6 @@ jobs:
- linux64-sccache
- linux64-dump_syms
- linux64-wine
- linux64-liblowercase
- linux64-winchecksec
- nsis
- sysroot-x86_64-linux-gnu

Просмотреть файл

@ -56,7 +56,6 @@ job-template:
- linux64-hfsplus
win.*:
- linux64-wine
- linux64-liblowercase
- nsis
fetch:
by-build-platform:

Просмотреть файл

@ -61,5 +61,4 @@ win64-cargo-vet:
toolchain:
- linux64-clang-toolchain
- linux64-rust-windows-toolchain
- linux64-liblowercase
- win64-vs2017

Просмотреть файл

@ -64,5 +64,4 @@ win64-cbindgen:
toolchain:
- linux64-clang-toolchain
- linux64-rust-windows-toolchain
- linux64-liblowercase
- win64-vs2017

Просмотреть файл

@ -188,7 +188,6 @@ win32-compiler-rt-15:
- clang-15
toolchain:
- linux64-clang-15-stage1
- linux64-liblowercase
- win64-vs2019
win64-compiler-rt-15:
@ -207,7 +206,6 @@ win64-compiler-rt-15:
- clang-15
toolchain:
- linux64-clang-15-stage1
- linux64-liblowercase
- win64-vs2019
wasm32-wasi-compiler-rt-15:
@ -424,7 +422,6 @@ win32-compiler-rt-trunk:
- clang-trunk
toolchain:
- linux64-clang-trunk-stage1
- linux64-liblowercase
- win64-vs2019
win64-compiler-rt-trunk:
@ -445,7 +442,6 @@ win64-compiler-rt-trunk:
- clang-trunk
toolchain:
- linux64-clang-trunk-stage1
- linux64-liblowercase
- win64-vs2019
wasm32-wasi-compiler-rt-trunk:

Просмотреть файл

@ -62,5 +62,4 @@ win64-dump_syms:
toolchain:
- linux64-clang-toolchain
- linux64-rust-windows-1.66
- linux64-liblowercase
- win64-vs2017

Просмотреть файл

@ -60,7 +60,6 @@ win32-fix-stacks:
fetches:
toolchain:
- linux64-clang-toolchain
- linux64-liblowercase
- linux64-rust-windows-toolchain
- win64-vs2017
@ -72,6 +71,5 @@ win64-fix-stacks:
fetches:
toolchain:
- linux64-clang-toolchain
- linux64-liblowercase
- linux64-rust-windows-toolchain
- win64-vs2017

Просмотреть файл

@ -105,7 +105,6 @@ win32-geckodriver:
fetches:
toolchain:
- linux64-clang-toolchain
- linux64-liblowercase
- linux64-rust-windows
- win64-vs2017
@ -121,7 +120,6 @@ win64-aarch64-geckodriver:
fetches:
toolchain:
- linux64-clang-toolchain
- linux64-liblowercase
- linux64-rust-windows
- win64-vs2017
@ -137,6 +135,5 @@ win64-geckodriver:
fetches:
toolchain:
- linux64-clang-toolchain
- linux64-liblowercase
- linux64-rust-windows
- win64-vs2017

Просмотреть файл

@ -46,6 +46,5 @@ win64-grcov:
fetches:
toolchain:
- linux64-clang-toolchain
- linux64-liblowercase
- linux64-rust-windows-toolchain
- win64-vs2017

Просмотреть файл

@ -118,7 +118,6 @@ win64-llvm-symbolizer-15:
- clang-15
toolchain:
- linux64-clang-15-stage1
- linux64-liblowercase
- win64-vs2019
linux32-llvm-symbolizer-trunk:
@ -239,5 +238,4 @@ win64-llvm-symbolizer-trunk:
- clang-trunk
toolchain:
- linux64-clang-trunk-stage1
- linux64-liblowercase
- win64-vs2019

Просмотреть файл

@ -62,7 +62,6 @@ win32-minidump-stackwalk:
fetches:
toolchain:
- linux64-clang-toolchain
- linux64-liblowercase
- linux64-rust-windows-toolchain
- win64-vs2017
@ -74,7 +73,6 @@ win64-minidump-stackwalk:
fetches:
toolchain:
- linux64-clang-toolchain
- linux64-liblowercase
- linux64-rust-windows-toolchain
- win64-vs2017

Просмотреть файл

@ -279,7 +279,6 @@ win64-winchecksec:
- winchecksec
toolchain:
- linux64-clang-toolchain
- linux64-liblowercase
- win64-vs2017
linux64-makecab:
@ -315,7 +314,6 @@ win64-mozmake:
- gnumake
toolchain:
- linux64-clang-toolchain
- linux64-liblowercase
- win64-vs2017
nsis:

Просмотреть файл

@ -34,6 +34,5 @@ win64-rust-size:
fetches:
toolchain:
- linux64-clang-toolchain
- linux64-liblowercase
- linux64-rust-windows-toolchain
- win64-vs2017

Просмотреть файл

@ -85,6 +85,5 @@ win64-sccache:
fetches:
toolchain:
- linux64-clang-toolchain
- linux64-liblowercase
- linux64-rust-windows-toolchain
- win64-vs2017

Просмотреть файл

@ -19,8 +19,8 @@ case "$TARGET" in
. $GECKO_PATH/taskcluster/scripts/misc/vs-setup.sh
# Bug 1584530: don't require the Microsoft MSVC runtime to be installed.
export RUSTFLAGS="-Ctarget-feature=+crt-static -C linker=$MOZ_FETCHES_DIR/clang/bin/lld-link"
export LD_PRELOAD=$MOZ_FETCHES_DIR/liblowercase/liblowercase.so
export LOWERCASE_DIRS=$MOZ_FETCHES_DIR/vs
export TARGET_CFLAGS="-Xclang -ivfsoverlay -Xclang $MOZ_FETCHES_DIR/vs/overlay.yaml"
export TARGET_CXXFLAGS="-Xclang -ivfsoverlay -Xclang $MOZ_FETCHES_DIR/vs/overlay.yaml"
;;
# OSX cross builds are a bit harder
*-apple-darwin)

Просмотреть файл

@ -126,8 +126,6 @@ case "$target" in
"
;;
*-pc-windows-msvc)
export LD_PRELOAD="/builds/worker/fetches/liblowercase/liblowercase.so"
export LOWERCASE_DIRS="/builds/worker/fetches/vs"
EXTRA_CMAKE_FLAGS="
$EXTRA_CMAKE_FLAGS
-DCMAKE_TOOLCHAIN_FILE=$MOZ_FETCHES_DIR/llvm-project/llvm/cmake/platforms/WinMsvc.cmake

Просмотреть файл

@ -50,14 +50,12 @@ EOF
chmod +w src/config.h.W32
sed "/#define BATCH_MODE_ONLY_SHELL/s/\/\*\(.*\)\*\//\1/" src/config.h.W32 > src/config.h
export LD_PRELOAD=$MOZ_FETCHES_DIR/liblowercase/liblowercase.so
export LOWERCASE_DIRS=$MOZ_FETCHES_DIR/vs
make -f Basic.mk \
MAKE_HOST=Windows32 \
MKDIR.cmd='mkdir -p $1' \
RM.cmd='rm -f $1' \
CP.cmd='cp $1 $2' \
msvc_CC=$MOZ_FETCHES_DIR/clang/bin/clang-cl \
msvc_CC="$MOZ_FETCHES_DIR/clang/bin/clang-cl -Xclang -ivfsoverlay -Xclang $MOZ_FETCHES_DIR/vs/overlay.yaml" \
msvc_LD=$MOZ_FETCHES_DIR/clang/bin/lld-link
mkdir mozmake

Просмотреть файл

@ -44,8 +44,8 @@ x86_64-unknown-linux-gnu)
. $GECKO_PATH/taskcluster/scripts/misc/vs-setup.sh
export CARGO_TARGET_I686_PC_WINDOWS_MSVC_LINKER=$MOZ_FETCHES_DIR/clang/bin/lld-link
export CARGO_TARGET_X86_64_PC_WINDOWS_MSVC_LINKER=$MOZ_FETCHES_DIR/clang/bin/lld-link
export LD_PRELOAD=$MOZ_FETCHES_DIR/liblowercase/liblowercase.so
export LOWERCASE_DIRS=$MOZ_FETCHES_DIR/vs
export TARGET_CFLAGS="-Xclang -ivfsoverlay -Xclang $MOZ_FETCHES_DIR/vs/overlay.yaml"
export TARGET_CXXFLAGS="-Xclang -ivfsoverlay -Xclang $MOZ_FETCHES_DIR/vs/overlay.yaml"
;;
esac

Просмотреть файл

@ -12,9 +12,6 @@ x86_64-pc-windows-msvc)
SUFFIX=.exe
export PATH="$MOZ_FETCHES_DIR/clang/bin:$PATH"
export LD_PRELOAD=$MOZ_FETCHES_DIR/liblowercase/liblowercase.so
export LOWERCASE_DIRS=$MOZ_FETCHES_DIR/vs
. $GECKO_PATH/taskcluster/scripts/misc/vs-setup.sh
# Patch pe-parse because clang-cl doesn't support /analyze.
@ -34,8 +31,8 @@ EOF
-DCMAKE_CXX_COMPILER=clang-cl
-DCMAKE_C_COMPILER=clang-cl
-DCMAKE_LINKER=lld-link
-DCMAKE_C_FLAGS=-fuse-ld=lld
-DCMAKE_CXX_FLAGS="-fuse-ld=lld -EHsc"
-DCMAKE_C_FLAGS="-fuse-ld=lld -Xclang -ivfsoverlay -Xclang $MOZ_FETCHES_DIR/vs/overlay.yaml"
-DCMAKE_CXX_FLAGS="-fuse-ld=lld -EHsc -Xclang -ivfsoverlay -Xclang $MOZ_FETCHES_DIR/vs/overlay.yaml"
-DCMAKE_RC_COMPILER=llvm-rc
-DCMAKE_MT=llvm-mt
-DCMAKE_SYSTEM_NAME=Windows

Просмотреть файл

@ -1,13 +1,13 @@
VSDIR=vs
VSPATH="${MOZ_FETCHES_DIR}/${VSDIR}"
UNIX_VSPATH="$(cd ${MOZ_FETCHES_DIR} && pwd)/${VSDIR}"
VCDIR=vc/tools/msvc/14.16.27023
VCDIR=VC/Tools/MSVC/14.16.27023
if [ ! -d "${VSPATH}/${VCDIR}" ]; then
VCDIR=vc/tools/msvc/14.29.30133
VCDIR=VC/Tools/MSVC/14.29.30133
fi
SDKDIR="windows kits/10"
SDKDIR="Windows Kits/10"
SDK_VERSION=10.0.17134.0
if [ ! -d "${VSPATH}/${SDKDIR}/lib/${SDK_VERSION}" ]; then
if [ ! -d "${VSPATH}/${SDKDIR}/Lib/${SDK_VERSION}" ]; then
SDK_VERSION=10.0.19041.0
fi
@ -23,6 +23,6 @@ i686-pc-windows-msvc)
;;
esac
export INCLUDE="${VSPATH}/${VCDIR}/include;${VSPATH}/${VCDIR}/atlmfc/include;${VSPATH}/${SDKDIR}/include/${SDK_VERSION}/ucrt;${VSPATH}/${SDKDIR}/include/${SDK_VERSION}/shared;${VSPATH}/${SDKDIR}/include/${SDK_VERSION}/um;${VSPATH}/${SDKDIR}/include/${SDK_VERSION}/winrt;${VSPATH}/dia sdk/include"
export LIB="${VSPATH}/${VCDIR}/lib/${SDK_CPU};${VSPATH}/${VCDIR}/atlmfc/lib/${SDK_CPU};${VSPATH}/${SDKDIR}/lib/${SDK_VERSION}/um/${SDK_CPU};${VSPATH}/${SDKDIR}/lib/${SDK_VERSION}/ucrt/${SDK_CPU};${VSPATH}/dia sdk/lib/amd64"
export INCLUDE="${VSPATH}/${VCDIR}/include;${VSPATH}/${VCDIR}/atlmfc/include;${VSPATH}/${SDKDIR}/Include/${SDK_VERSION}/ucrt;${VSPATH}/${SDKDIR}/Include/${SDK_VERSION}/shared;${VSPATH}/${SDKDIR}/Include/${SDK_VERSION}/um;${VSPATH}/${SDKDIR}/Include/${SDK_VERSION}/winrt;${VSPATH}/dia sdk/include"
export LIB="${VSPATH}/${VCDIR}/lib/${SDK_CPU};${VSPATH}/${VCDIR}/atlmfc/lib/${SDK_CPU};${VSPATH}/${SDKDIR}/Lib/${SDK_VERSION}/um/${SDK_CPU};${VSPATH}/${SDKDIR}/Lib/${SDK_VERSION}/ucrt/${SDK_CPU};${VSPATH}/dia sdk/lib/amd64"
export PATH="${UNIX_VSPATH}/${VCDIR}/bin/hostx64/${SDK_CPU}:${UNIX_VSPATH}/${VCDIR}/bin/hostx86/x86:${UNIX_VSPATH}/${SDKDIR}/bin/${SDK_VERSION}/${SDK_CPU}:${UNIX_VSPATH}/redist/${SDK_CPU}/microsoft.vc141.crt:${UNIX_VSPATH}/${SDKDIR}/redist/ucrt/dlls/${SDK_CPU}:${UNIX_VSPATH}/dia sdk/bin/amd64:$PATH"