mirror of
https://github.com/mongodb/mongo.git
synced 2024-11-21 12:39:08 +01:00
SERVER-91979 Upgrade to Bazel 7.2 (#28749)
GitOrigin-RevId: 9139373c72c251a5474d080cbccba8ef221e1386
This commit is contained in:
parent
776fa92558
commit
3220129aea
16
.bazelrc
16
.bazelrc
@ -129,7 +129,7 @@ build:linux --jobs=200
|
||||
build --remote_cache=grpcs://sodalite.cluster.engflow.com
|
||||
build --bes_backend=grpcs://sodalite.cluster.engflow.com
|
||||
build --bes_results_url=https://sodalite.cluster.engflow.com/invocation/
|
||||
build --experimental_remote_cache_compression=true
|
||||
build --remote_cache_compression=true
|
||||
build --grpc_keepalive_time=30s
|
||||
build --nolegacy_important_outputs
|
||||
build --bes_keywords=repo:mongo
|
||||
@ -156,7 +156,7 @@ build:local --bes_backend=
|
||||
build:local --bes_results_url=
|
||||
build:local --tls_client_certificate=
|
||||
build:local --tls_client_key=
|
||||
build:local --experimental_remote_cache_compression=false
|
||||
build:local --remote_cache_compression=false
|
||||
build:local --grpc_keepalive_time=0s
|
||||
build:local --legacy_important_outputs
|
||||
build:local --jobs=auto
|
||||
@ -174,18 +174,17 @@ build:public-release --bes_backend=
|
||||
build:public-release --bes_results_url=
|
||||
build:public-release --tls_client_certificate=
|
||||
build:public-release --tls_client_key=
|
||||
build:public-release --experimental_remote_cache_compression=false
|
||||
build:public-release --remote_cache_compression=false
|
||||
build:public-release --grpc_keepalive_time=0s
|
||||
build:public-release --legacy_important_outputs
|
||||
|
||||
# Avoid failing builds when BES metadata fails to upload.
|
||||
common --bes_upload_mode=fully_async
|
||||
|
||||
# TODO SERVER-89593
|
||||
# Renable after bazel 7.0 due to query bug:
|
||||
# https://github.com/bazelbuild/bazel/issues/10902
|
||||
# Enable Build without the Bytes
|
||||
# common --remote_download_outputs=toplevel
|
||||
common --remote_download_outputs=toplevel
|
||||
|
||||
common --enable_bzlmod=false
|
||||
|
||||
# Default Mongo Version if a version is not specified.
|
||||
build --define=MONGO_VERSION=8.1.0-alpha
|
||||
@ -205,6 +204,9 @@ try-import %workspace%/.bazelrc.evergreen_engflow_creds
|
||||
# Evergreen settings, ex. in evergreen this will set the key/cert options for access to the cluster
|
||||
try-import %workspace%/.bazelrc.evergreen
|
||||
|
||||
# Import settings for selecting the right xcode version on mac
|
||||
try-import %workspace%/.bazelrc.xcode
|
||||
|
||||
# local default dev settings
|
||||
try-import %workspace%/.bazelrc.workstation
|
||||
|
||||
|
@ -1,3 +1,3 @@
|
||||
6.4.0
|
||||
# TODO(SERVER-86050): s390x and ppc64le are using custom built Bazel v6.4.0 binaries
|
||||
7.2.1
|
||||
# TODO(SERVER-86050): s390x and ppc64le are using custom built Bazel v7.2.1 binaries
|
||||
# Do not update this without updating the custom built binaries until Bazelisk is supported on s390x & ppc64le.
|
||||
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -279,11 +279,14 @@ buildifier
|
||||
.bazelrc.local
|
||||
.bazelrc.gitinfo
|
||||
.bazelrc.workstation
|
||||
.bazelrc.xcode
|
||||
.bazel_info_for_ninja.txt
|
||||
.ninja_last_command_line_targets.txt
|
||||
bazel/coverity/analysis/BUILD.bazel
|
||||
.bazel_include_info.json
|
||||
.bazel_header_list_cache
|
||||
MODULE.bazel
|
||||
MODULE.bazel.lock
|
||||
# generated configs for external fixture suites
|
||||
docker_compose/
|
||||
|
||||
|
@ -1,4 +1,23 @@
|
||||
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||
|
||||
# Apple cc toolchain needs to be loaded before regular cc toolchain or else Apple will just use regular cc toolchain
|
||||
http_archive(
|
||||
name = "build_bazel_apple_support",
|
||||
sha256 = "b53f6491e742549f13866628ddffcc75d1f3b2d6987dc4f14a16b242113c890b",
|
||||
url = "https://github.com/bazelbuild/apple_support/releases/download/1.17.1/apple_support.1.17.1.tar.gz",
|
||||
)
|
||||
|
||||
load(
|
||||
"@build_bazel_apple_support//lib:repositories.bzl",
|
||||
"apple_support_dependencies",
|
||||
)
|
||||
|
||||
apple_support_dependencies()
|
||||
|
||||
load("@bazel_features//:deps.bzl", "bazel_features_deps")
|
||||
|
||||
bazel_features_deps()
|
||||
|
||||
load("//bazel/platforms:local_config_platform.bzl", "setup_local_config_platform")
|
||||
load("//bazel/toolchains:mongo_toolchain.bzl", "toolchain_download")
|
||||
|
||||
@ -17,7 +36,7 @@ http_archive(
|
||||
],
|
||||
)
|
||||
|
||||
setup_local_config_platform(name = "local_config_platform")
|
||||
setup_local_config_platform(name = "internal_platforms_do_not_use")
|
||||
|
||||
toolchain_download(name = "mongo_toolchain")
|
||||
|
||||
|
@ -194,7 +194,7 @@ config_setting(
|
||||
name = "linux_ppc64le",
|
||||
constraint_values = [
|
||||
"@platforms//os:linux",
|
||||
"@platforms//cpu:ppc64le",
|
||||
"@platforms//cpu:ppc",
|
||||
],
|
||||
)
|
||||
|
||||
@ -259,7 +259,7 @@ selects.config_setting_group(
|
||||
match_any = [
|
||||
"@platforms//cpu:aarch64",
|
||||
"@platforms//cpu:x86_64",
|
||||
"@platforms//cpu:ppc64le",
|
||||
"@platforms//cpu:ppc",
|
||||
],
|
||||
)
|
||||
|
||||
@ -848,7 +848,7 @@ selects.config_setting_group(
|
||||
name = "_tcmalloc_gperf_auto_supported",
|
||||
match_any = [
|
||||
"@platforms//os:windows",
|
||||
"@platforms//cpu:ppc64le",
|
||||
"@platforms//cpu:ppc",
|
||||
"@platforms//cpu:s390x",
|
||||
],
|
||||
)
|
||||
|
@ -8,12 +8,12 @@ Bazel usually comes with a built-in JDK. However, the tooling used to build the
|
||||
|
||||
On the MongoDB PPC64LE Evergreen static hosts and dev hosts, the OpenJDK 11 installation exists at:
|
||||
|
||||
/usr/lib/jvm/java-11-openjdk-11.0.4.11-2.el8.ppc64le
|
||||
/usr/lib/jvm/java-21-openjdk-21.0.4.0.7-1.el8.ppc64le
|
||||
|
||||
To compile with on these platforms, the developer must set JAVA_HOME before invoking Bazel.
|
||||
|
||||
# Bazel v6.4.0 Compilation Steps
|
||||
# Bazel v7.2.1 Compilation Steps
|
||||
|
||||
curl -O -L https://github.com/bazelbuild/bazel/releases/download/6.4.0/bazel-6.4.0-dist.zip
|
||||
unzip bazel-6.4.0-dist.zip
|
||||
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.4.11-2.el8.ppc64le ./compile.sh
|
||||
curl -O -L https://github.com/bazelbuild/bazel/releases/download/7.2.1/bazel-7.2.1-dist.zip
|
||||
unzip bazel-7.2.1-dist.zip
|
||||
JAVA_HOME=/usr/lib/jvm/java-21-openjdk-21.0.4.0.7-1.el8.ppc64le ./compile.sh
|
||||
|
@ -8,12 +8,12 @@ Bazel usually comes with a built-in JDK. However, the tooling used to build the
|
||||
|
||||
On the MongoDB S390X Evergreen static hosts and dev hosts, the OpenJDK 11 installation exists at:
|
||||
|
||||
/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-0.el8_3.s390x
|
||||
/usr/lib/jvm/java-21-openjdk-21.0.4.0.7-1.el8.s390x
|
||||
|
||||
To compile with on these platforms, the developer must set JAVA_HOME before invoking Bazel.
|
||||
|
||||
# Bazel v6.4.0 Compilation Steps
|
||||
# Bazel v7.2.1 Compilation Steps
|
||||
|
||||
curl -O -L https://github.com/bazelbuild/bazel/releases/download/6.4.0/bazel-6.4.0-dist.zip
|
||||
unzip bazel-6.4.0-dist.zip
|
||||
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-0.el8_3.s390x ./compile.sh
|
||||
curl -O -L https://github.com/bazelbuild/bazel/releases/download/7.2.1/bazel-7.2.1-dist.zip
|
||||
unzip bazel-7.2.1-dist.zip
|
||||
JAVA_HOME=/usr/lib/jvm/java-21-openjdk-21.0.4.0.7-1.el8.s390x ./compile.sh
|
||||
|
@ -1329,7 +1329,7 @@ def force_includes_copt(package_name, name):
|
||||
if package_name.startswith("src/mongo"):
|
||||
basic_h = "mongo/platform/basic.h"
|
||||
return select({
|
||||
"@platforms//os:windows": ["/FI", basic_h],
|
||||
"@platforms//os:windows": ["/FI" + basic_h],
|
||||
"//conditions:default": ["-include", basic_h],
|
||||
})
|
||||
|
||||
@ -1341,7 +1341,7 @@ def force_includes_copt(package_name, name):
|
||||
"//bazel/config:linux_x86_64": ["-include", "third_party/mozjs/platform/x86_64/linux/build/js-config.h"],
|
||||
"//bazel/config:macos_aarch64": ["-include", "third_party/mozjs/platform/aarch64/macOS/build/js-config.h"],
|
||||
"//bazel/config:macos_x86_64": ["-include", "third_party/mozjs/platform/x86_64/macOS/build/js-config.h"],
|
||||
"//bazel/config:windows_x86_64": ["/FI", "third_party/mozjs/platform/x86_64/windows/build/js-config.h"],
|
||||
"//bazel/config:windows_x86_64": ["/FI" + "third_party/mozjs/platform/x86_64/windows/build/js-config.h"],
|
||||
})
|
||||
|
||||
return []
|
||||
|
@ -98,7 +98,7 @@ platform(
|
||||
platform(
|
||||
name = "linux_ppc64le",
|
||||
constraint_values = [
|
||||
"@platforms//cpu:ppc64le",
|
||||
"@platforms//cpu:ppc",
|
||||
"@platforms//os:linux",
|
||||
],
|
||||
)
|
||||
@ -114,7 +114,7 @@ platform(
|
||||
platform(
|
||||
name = "rhel8_ppc64le",
|
||||
constraint_values = [
|
||||
"@platforms//cpu:ppc64le",
|
||||
"@platforms//cpu:ppc",
|
||||
"@platforms//os:linux",
|
||||
":use_mongo_toolchain",
|
||||
],
|
||||
|
@ -12,7 +12,7 @@ _ARCH_MAP = {
|
||||
"amd64": "@platforms//cpu:x86_64",
|
||||
"aarch64": "@platforms//cpu:arm64",
|
||||
"x86_64": "@platforms//cpu:x86_64",
|
||||
"ppc64le": "@platforms//cpu:ppc64le",
|
||||
"ppc64le": "@platforms//cpu:ppc",
|
||||
"s390x": "@platforms//cpu:s390x",
|
||||
}
|
||||
|
||||
@ -85,18 +85,24 @@ def _setup_local_config_platform(ctx):
|
||||
}
|
||||
|
||||
ctx.template(
|
||||
"BUILD.bazel",
|
||||
"host/BUILD.bazel",
|
||||
ctx.attr.build_tpl,
|
||||
substitutions = substitutions,
|
||||
)
|
||||
|
||||
ctx.template(
|
||||
"constraints.bzl",
|
||||
"host/constraints.bzl",
|
||||
ctx.attr.constraints_tpl,
|
||||
substitutions = substitutions,
|
||||
)
|
||||
|
||||
return result
|
||||
ctx.template(
|
||||
"host/extension.bzl",
|
||||
ctx.attr.extension_tpl,
|
||||
substitutions = substitutions,
|
||||
)
|
||||
|
||||
return None
|
||||
|
||||
setup_local_config_platform = repository_rule(
|
||||
implementation = _setup_local_config_platform,
|
||||
@ -109,6 +115,10 @@ setup_local_config_platform = repository_rule(
|
||||
default = "//bazel/platforms:local_config_platform_constraints.bzl",
|
||||
doc = "Template modeling the builtin local config platform constraints file.",
|
||||
),
|
||||
"extension_tpl": attr.label(
|
||||
default = "//bazel/platforms:local_config_platform_extension.bzl",
|
||||
doc = "Template modeling the builtin local config platform constraints file.",
|
||||
),
|
||||
},
|
||||
environ = ["USE_NATIVE_TOOLCHAIN"],
|
||||
)
|
||||
|
66
bazel/platforms/local_config_platform_extension.bzl
Normal file
66
bazel/platforms/local_config_platform_extension.bzl
Normal file
@ -0,0 +1,66 @@
|
||||
def _translate_cpu(arch):
|
||||
if arch in ["i386", "i486", "i586", "i686", "i786", "x86"]:
|
||||
return "x86_32"
|
||||
if arch in ["amd64", "x86_64", "x64"]:
|
||||
return "x86_64"
|
||||
if arch in ["ppc", "ppc64", "ppc64le"]:
|
||||
return "ppc"
|
||||
if arch in ["arm", "armv7l"]:
|
||||
return "arm"
|
||||
if arch in ["aarch64"]:
|
||||
return "aarch64"
|
||||
if arch in ["s390x", "s390"]:
|
||||
return "s390x"
|
||||
if arch in ["mips64el", "mips64"]:
|
||||
return "mips64"
|
||||
if arch in ["riscv64"]:
|
||||
return "riscv64"
|
||||
return None
|
||||
|
||||
def _translate_os(os):
|
||||
if os.startswith("mac os"):
|
||||
return "osx"
|
||||
if os.startswith("freebsd"):
|
||||
return "freebsd"
|
||||
if os.startswith("openbsd"):
|
||||
return "openbsd"
|
||||
if os.startswith("linux"):
|
||||
return "linux"
|
||||
if os.startswith("windows"):
|
||||
return "windows"
|
||||
return None
|
||||
|
||||
def _host_platform_repo_impl(rctx):
|
||||
cpu = _translate_cpu(rctx.os.arch)
|
||||
os = _translate_os(rctx.os.name)
|
||||
|
||||
cpu = "" if cpu == None else " '@platforms//cpu:%s',\n" % cpu
|
||||
os = "" if os == None else " '@platforms//os:%s',\n" % os
|
||||
|
||||
rctx.file("BUILD.bazel", """
|
||||
# DO NOT EDIT: automatically generated BUILD file
|
||||
exports_files(["constraints.bzl"])
|
||||
""")
|
||||
|
||||
rctx.file("constraints.bzl", """
|
||||
# DO NOT EDIT: automatically generated constraints list
|
||||
HOST_CONSTRAINTS = [
|
||||
%s%s]
|
||||
""" % (cpu, os))
|
||||
|
||||
host_platform_repo = repository_rule(
|
||||
implementation = _host_platform_repo_impl,
|
||||
doc = """Generates constraints for the host platform. The constraints.bzl
|
||||
file contains a single <code>HOST_CONSTRAINTS</code> variable, which is a
|
||||
list of strings, each of which is a label to a <code>constraint_value</code>
|
||||
for the host platform.""",
|
||||
)
|
||||
|
||||
def _host_platform_impl(_mctx):
|
||||
host_platform_repo(name = "host_platform")
|
||||
|
||||
host_platform = module_extension(
|
||||
implementation = _host_platform_impl,
|
||||
doc = """Generates a <code>host_platform_repo</code> repo named
|
||||
<code>host_platform</code>, containing constraints for the host platform.""",
|
||||
)
|
@ -3,6 +3,7 @@ load("@bazel_tools//tools/cpp:toolchain_utils.bzl", "find_cpp_toolchain")
|
||||
WITH_DEBUG_SUFFIX = "_with_debug"
|
||||
CC_SHARED_LIBRARY_SUFFIX = "_shared"
|
||||
SHARED_ARCHIVE_SUFFIX = "_shared_archive"
|
||||
MAC_DEBUG_FOLDER_EXTENSION = ".dSYM"
|
||||
|
||||
def get_inputs_and_outputs(ctx, shared_ext, static_ext, debug_ext):
|
||||
"""
|
||||
@ -35,7 +36,10 @@ def get_inputs_and_outputs(ctx, shared_ext, static_ext, debug_ext):
|
||||
if shared_lib:
|
||||
basename = shared_lib.basename[:-len(WITH_DEBUG_SUFFIX + shared_ext + CC_SHARED_LIBRARY_SUFFIX)]
|
||||
if ctx.attr.enabled:
|
||||
debug_info = ctx.actions.declare_file(basename + shared_ext + debug_ext)
|
||||
if debug_ext == MAC_DEBUG_FOLDER_EXTENSION:
|
||||
debug_info = ctx.actions.declare_directory(basename + shared_ext + debug_ext)
|
||||
else:
|
||||
debug_info = ctx.actions.declare_file(basename + shared_ext + debug_ext)
|
||||
else:
|
||||
debug_info = None
|
||||
output_bin = ctx.actions.declare_file(basename + shared_ext)
|
||||
@ -49,7 +53,10 @@ def get_inputs_and_outputs(ctx, shared_ext, static_ext, debug_ext):
|
||||
|
||||
basename = program_bin.basename[:-len(WITH_DEBUG_SUFFIX)]
|
||||
if ctx.attr.enabled:
|
||||
debug_info = ctx.actions.declare_file(basename + debug_ext)
|
||||
if debug_ext == MAC_DEBUG_FOLDER_EXTENSION:
|
||||
debug_info = ctx.actions.declare_directory(basename + debug_ext)
|
||||
else:
|
||||
debug_info = ctx.actions.declare_file(basename + debug_ext)
|
||||
else:
|
||||
debug_info = None
|
||||
output_bin = ctx.actions.declare_file(basename)
|
||||
@ -292,7 +299,7 @@ def linux_extraction(ctx, cc_toolchain, inputs):
|
||||
def macos_extraction(ctx, cc_toolchain, inputs):
|
||||
outputs = []
|
||||
unstripped_static_bin = None
|
||||
input_bin, output_bin, debug_info, static_lib = get_inputs_and_outputs(ctx, ".dylib", ".a", ".dSYM")
|
||||
input_bin, output_bin, debug_info, static_lib = get_inputs_and_outputs(ctx, ".dylib", ".a", MAC_DEBUG_FOLDER_EXTENSION)
|
||||
input_file = ctx.attr.binary_with_debug.files.to_list()
|
||||
|
||||
if input_bin:
|
||||
|
@ -36,7 +36,7 @@ mongo_cc_toolchain_config(
|
||||
name = "cc_gcc_toolchain_config",
|
||||
bin_dirs = COMMON_BINDIRS,
|
||||
compiler = "gcc",
|
||||
cpu = "{platforms_arch}",
|
||||
cpu = "{bazel_toolchain_cpu}",
|
||||
cxx_builtin_include_directories = COMMON_BUILTIN_INCLUDE_DIRECTORIES,
|
||||
extra_ldflags = LINK_FLAGS,
|
||||
includes = GCC_INCLUDE_DIRS + COMMON_INCLUDE_DIRECTORIES + COMMON_BUILTIN_INCLUDE_DIRECTORIES,
|
||||
@ -65,7 +65,7 @@ mongo_cc_toolchain_config(
|
||||
name = "cc_clang_toolchain_config",
|
||||
bin_dirs = COMMON_BINDIRS,
|
||||
compiler = "clang",
|
||||
cpu = "{platforms_arch}",
|
||||
cpu = "{bazel_toolchain_cpu}",
|
||||
cxx_builtin_include_directories = COMMON_BUILTIN_INCLUDE_DIRECTORIES,
|
||||
extra_ldflags = LINK_FLAGS,
|
||||
includes = CLANG_INCLUDE_DIRS + COMMON_INCLUDE_DIRECTORIES + COMMON_BUILTIN_INCLUDE_DIRECTORIES,
|
||||
@ -112,12 +112,12 @@ toolchain(
|
||||
name = "mongo_toolchain",
|
||||
exec_compatible_with = [
|
||||
"@platforms//os:linux",
|
||||
"@platforms//cpu:{platforms_arch}",
|
||||
"@platforms//cpu:{bazel_toolchain_cpu}",
|
||||
"@//bazel/platforms:use_mongo_toolchain",
|
||||
],
|
||||
target_compatible_with = [
|
||||
"@platforms//os:linux",
|
||||
"@platforms//cpu:{platforms_arch}",
|
||||
"@platforms//cpu:{bazel_toolchain_cpu}",
|
||||
"@//bazel/platforms:use_mongo_toolchain",
|
||||
],
|
||||
toolchain = ":cc_mongo_toolchain",
|
||||
|
@ -11,7 +11,7 @@ _OS_MAP = {
|
||||
_ARCH_MAP = {
|
||||
"aarch64": "@platforms//cpu:arm64",
|
||||
"x86_64": "@platforms//cpu:x86_64",
|
||||
"ppc64le": "@platforms//cpu:ppc64le",
|
||||
"ppc64le": "@platforms//cpu:ppc",
|
||||
"s390x": "@platforms//cpu:s390x",
|
||||
}
|
||||
|
||||
@ -57,7 +57,7 @@ def _toolchain_download(ctx):
|
||||
elif arch == "x86_64":
|
||||
substitutions = {
|
||||
"{platforms_arch}": "x86_64",
|
||||
"{bazel_toolchain_cpu}": "k8",
|
||||
"{bazel_toolchain_cpu}": "x86_64",
|
||||
"{arch}": arch,
|
||||
}
|
||||
elif arch == "ppc64le":
|
||||
|
@ -12,7 +12,7 @@ _ARCH_MAP = {
|
||||
"amd64": "@platforms//cpu:x86_64",
|
||||
"aarch64": "@platforms//cpu:arm64",
|
||||
"x86_64": "@platforms//cpu:x86_64",
|
||||
"ppc64le": "@platforms//cpu:ppc64le",
|
||||
"ppc64le": "@platforms//cpu:ppc",
|
||||
"s390x": "@platforms//cpu:s390x",
|
||||
}
|
||||
|
||||
|
@ -405,9 +405,9 @@ def main():
|
||||
# Set JAVA_HOME on ppc & s390x architectures
|
||||
global bazel_env_settings
|
||||
if platform.machine().lower() == "ppc64le":
|
||||
bazel_env_settings["JAVA_HOME"] = "/usr/lib/jvm/java-11-openjdk-11.0.4.11-2.el8.ppc64le"
|
||||
bazel_env_settings["JAVA_HOME"] = "/usr/lib/jvm/java-21-openjdk-21.0.4.0.7-1.el8.ppc64le"
|
||||
elif platform.machine().lower() == "s390x":
|
||||
bazel_env_settings["JAVA_HOME"] = "/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-0.el8_3.s390x"
|
||||
bazel_env_settings["JAVA_HOME"] = "/usr/lib/jvm/java-21-openjdk-21.0.4.0.7-1.el8.s390x"
|
||||
|
||||
target_type_map = {}
|
||||
for scons_target in args.scons_targets:
|
||||
|
@ -10,8 +10,8 @@ import urllib.request
|
||||
from retry import retry
|
||||
|
||||
_S3_HASH_MAPPING = {
|
||||
"https://mdb-build-public.s3.amazonaws.com/bazel-binaries/bazel-6.4.0-ppc64le": "dd21c75817533ff601bf797e64f0eb2f7f6b813af26c829f0bda30e328caef46",
|
||||
"https://mdb-build-public.s3.amazonaws.com/bazel-binaries/bazel-6.4.0-s390x": "6d72eabc1789b041bbe4cfc033bbac4491ec9938ef6da9899c0188ecf270a7f4",
|
||||
"https://mdb-build-public.s3.amazonaws.com/bazel-binaries/bazel-7.2.1-ppc64le": "4ecc7f1396b8d921c6468b34cc8ed356c4f2dbe8a154c25d681a61ccb5dfc9cb",
|
||||
"https://mdb-build-public.s3.amazonaws.com/bazel-binaries/bazel-7.2.1-s390x": "2f5f7fd747620d96e885766a4027347c75c0f455c68219211a00e72fc6413be9",
|
||||
"https://mdb-build-public.s3.amazonaws.com/bazelisk-binaries/v1.19.0/bazelisk-darwin-amd64": "f2ba5f721a995b54bab68c6b76a340719888aa740310e634771086b6d1528ecd",
|
||||
"https://mdb-build-public.s3.amazonaws.com/bazelisk-binaries/v1.19.0/bazelisk-darwin-arm64": "69fa21cd2ccffc2f0970c21aa3615484ba89e3553ecce1233a9d8ad9570d170e",
|
||||
"https://mdb-build-public.s3.amazonaws.com/bazelisk-binaries/v1.19.0/bazelisk-linux-amd64": "d28b588ac0916abd6bf02defb5433f6eddf7cba35ffa808eabb65a44aab226f7",
|
||||
@ -72,7 +72,7 @@ def install_bazel(binary_directory: str) -> str:
|
||||
print(
|
||||
"Warning: Bazelisk is not supported on this platform. Installing Bazel directly instead."
|
||||
)
|
||||
s3_path = f"https://mdb-build-public.s3.amazonaws.com/bazel-binaries/bazel-6.4.0-{normalized_arch}"
|
||||
s3_path = f"https://mdb-build-public.s3.amazonaws.com/bazel-binaries/bazel-7.2.1-{normalized_arch}"
|
||||
|
||||
_download_path_with_retry(s3_path, binary_path)
|
||||
_verify_s3_hash(s3_path, binary_path)
|
||||
|
@ -42,9 +42,9 @@ fi
|
||||
# Set the JAVA_HOME directories for ppc64le and s390x since their bazel binaries are not compiled with a built-in JDK.
|
||||
# TODO(SERVER-86050): remove the branch once bazelisk is built on s390x & ppc64le
|
||||
if [[ $ARCH == "ppc64le" ]]; then
|
||||
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-11.0.4.11-2.el8.ppc64le"
|
||||
export JAVA_HOME="/usr/lib/jvm/java-21-openjdk-21.0.4.0.7-1.el8.ppc64le"
|
||||
elif [[ $ARCH == "s390x" ]]; then
|
||||
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-0.el8_3.s390x"
|
||||
export JAVA_HOME="/usr/lib/jvm/java-21-openjdk-21.0.4.0.7-1.el8.s390x"
|
||||
fi
|
||||
|
||||
# TODO(SERVER-86050): remove the branch once bazelisk is built on s390x & ppc64le
|
||||
|
@ -45,9 +45,9 @@ fi
|
||||
|
||||
# Set the JAVA_HOME directories for ppc64le and s390x since their bazel binaries are not compiled with a built-in JDK.
|
||||
if [[ $ARCH == "ppc64le" ]]; then
|
||||
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-11.0.4.11-2.el8.ppc64le"
|
||||
export JAVA_HOME="/usr/lib/jvm/java-21-openjdk-21.0.4.0.7-1.el8.ppc64le"
|
||||
elif [[ $ARCH == "s390x" ]]; then
|
||||
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-0.el8_3.s390x"
|
||||
export JAVA_HOME="/usr/lib/jvm/java-21-openjdk-21.0.4.0.7-1.el8.s390x"
|
||||
fi
|
||||
|
||||
# Print command being run to file that can be uploaded
|
||||
|
@ -36,9 +36,9 @@ fi
|
||||
|
||||
# Set the JAVA_HOME directories for ppc64le and s390x since their bazel binaries are not compiled with a built-in JDK.
|
||||
if [[ $ARCH == "ppc64le" ]]; then
|
||||
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-11.0.4.11-2.el8.ppc64le"
|
||||
export JAVA_HOME="/usr/lib/jvm/java-21-openjdk-21.0.4.0.7-1.el8.ppc64le"
|
||||
elif [[ $ARCH == "s390x" ]]; then
|
||||
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-0.el8_3.s390x"
|
||||
export JAVA_HOME="/usr/lib/jvm/java-21-openjdk-21.0.4.0.7-1.el8.s390x"
|
||||
fi
|
||||
|
||||
eval ${compile_env} $python ./buildscripts/bazel_scons_diff.py \
|
||||
|
@ -36,7 +36,7 @@ mkdir -p $TMPDIR
|
||||
|
||||
# TODO(SERVER-86050): remove the branch once bazelisk is built on s390x & ppc64le
|
||||
if [[ $ARCH == "ppc64le" ]] || [[ $ARCH == "s390x" ]]; then
|
||||
REMOTE_PATH=https://mdb-build-public.s3.amazonaws.com/bazel-binaries/bazel-6.4.0-${ARCH}
|
||||
REMOTE_PATH=https://mdb-build-public.s3.amazonaws.com/bazel-binaries/bazel-7.2.1-${ARCH}
|
||||
LOCAL_PATH=$TMPDIR/bazel
|
||||
else
|
||||
REMOTE_PATH=https://mdb-build-public.s3.amazonaws.com/bazelisk-binaries/v1.19.0/bazelisk-${OS}-${ARCH}${EXT}
|
||||
|
@ -74,8 +74,8 @@ _DISTRO_PATTERN_MAP = {
|
||||
}
|
||||
|
||||
_S3_HASH_MAPPING = {
|
||||
"https://mdb-build-public.s3.amazonaws.com/bazel-binaries/bazel-6.4.0-ppc64le": "dd21c75817533ff601bf797e64f0eb2f7f6b813af26c829f0bda30e328caef46",
|
||||
"https://mdb-build-public.s3.amazonaws.com/bazel-binaries/bazel-6.4.0-s390x": "6d72eabc1789b041bbe4cfc033bbac4491ec9938ef6da9899c0188ecf270a7f4",
|
||||
"https://mdb-build-public.s3.amazonaws.com/bazel-binaries/bazel-7.2.1-ppc64le": "4ecc7f1396b8d921c6468b34cc8ed356c4f2dbe8a154c25d681a61ccb5dfc9cb",
|
||||
"https://mdb-build-public.s3.amazonaws.com/bazel-binaries/bazel-7.2.1-s390x": "2f5f7fd747620d96e885766a4027347c75c0f455c68219211a00e72fc6413be9",
|
||||
"https://mdb-build-public.s3.amazonaws.com/bazelisk-binaries/v1.19.0/bazelisk-darwin-amd64": "f2ba5f721a995b54bab68c6b76a340719888aa740310e634771086b6d1528ecd",
|
||||
"https://mdb-build-public.s3.amazonaws.com/bazelisk-binaries/v1.19.0/bazelisk-darwin-arm64": "69fa21cd2ccffc2f0970c21aa3615484ba89e3553ecce1233a9d8ad9570d170e",
|
||||
"https://mdb-build-public.s3.amazonaws.com/bazelisk-binaries/v1.19.0/bazelisk-linux-amd64": "d28b588ac0916abd6bf02defb5433f6eddf7cba35ffa808eabb65a44aab226f7",
|
||||
@ -172,7 +172,9 @@ def bazel_builder_action(
|
||||
# So we will do the renaming of dwarf file to what scons expects here, before we copy to scons tree
|
||||
substring_end = str(t).find(".dSYM/") + 5
|
||||
t = str(t)[:substring_end]
|
||||
s = Globals.bazel_output(t)
|
||||
# This is declared as an output folder, so bazel appends (TreeArtifact) to it
|
||||
s = Globals.bazel_output(t + " (TreeArtifact)")
|
||||
s = str(s).removesuffix(" (TreeArtifact)")
|
||||
dwarf_info_base = os.path.splitext(os.path.splitext(os.path.basename(t))[0])[0]
|
||||
dwarf_sym_with_debug = os.path.join(
|
||||
s, f"Contents/Resources/DWARF/{dwarf_info_base}_shared_with_debug.dylib"
|
||||
@ -186,12 +188,20 @@ def bazel_builder_action(
|
||||
s, f"Contents/Resources/DWARF/{dwarf_info_base}_with_debug"
|
||||
)
|
||||
dwarf_sym = os.path.join(s, f"Contents/Resources/DWARF/{dwarf_info_base}")
|
||||
# rename the file for scons
|
||||
shutil.copy(dwarf_sym_with_debug, dwarf_sym)
|
||||
|
||||
# copy the whole dSYM in one operation. Clean any existing files that might be in the way.
|
||||
print(f"Moving .dSYM from {s} over to {t}.")
|
||||
shutil.rmtree(str(t), ignore_errors=True)
|
||||
shutil.copytree(s, str(t))
|
||||
# we want to change the permissions back to normal permissions on the folders copied rather than read only
|
||||
os.chmod(t, 0o755)
|
||||
for root, dirs, files in os.walk(t):
|
||||
for name in files:
|
||||
os.chmod(os.path.join(root, name), 0o755)
|
||||
for name in dirs:
|
||||
os.chmod(os.path.join(root, name), 0o755)
|
||||
# shouldn't write our own files to the bazel directory, renaming file for scons
|
||||
shutil.copy(dwarf_sym_with_debug.replace(s, t), dwarf_sym.replace(s, t))
|
||||
else:
|
||||
s = Globals.bazel_output(t)
|
||||
shutil.copy(s, str(t))
|
||||
@ -898,11 +908,11 @@ def setup_bazel_env_vars() -> None:
|
||||
# Set the JAVA_HOME directories for ppc64le and s390x since their bazel binaries are not compiled with a built-in JDK.
|
||||
if platform.machine().lower() == "ppc64le":
|
||||
Globals.bazel_env_variables["JAVA_HOME"] = (
|
||||
"/usr/lib/jvm/java-11-openjdk-11.0.4.11-2.el8.ppc64le"
|
||||
"/usr/lib/jvm/java-21-openjdk-21.0.4.0.7-1.el8.ppc64le"
|
||||
)
|
||||
elif platform.machine().lower() == "s390x":
|
||||
Globals.bazel_env_variables["JAVA_HOME"] = (
|
||||
"/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-0.el8_3.s390x"
|
||||
"/usr/lib/jvm/java-21-openjdk-21.0.4.0.7-1.el8.s390x"
|
||||
)
|
||||
|
||||
|
||||
|
@ -71,7 +71,7 @@ mongo_cc_library(
|
||||
] + select({
|
||||
"@platforms//cpu:x86_64": ["byte_vector_sse2.h"],
|
||||
"@platforms//cpu:aarch64": ["byte_vector_neon.h"],
|
||||
"@platforms//cpu:ppc64le": ["byte_vector_altivec.h"],
|
||||
"@platforms//cpu:ppc": ["byte_vector_altivec.h"],
|
||||
"//conditions:default": [],
|
||||
}),
|
||||
deps = [
|
||||
|
@ -74,6 +74,11 @@ IGNORE_WARNINGS_COPT = select({
|
||||
"//conditions:default": ["-w"],
|
||||
})
|
||||
|
||||
DYNAMIC_LOOKUP_LINKOPT = select({
|
||||
"@platforms//os:macos": ["-Wl,-undefined,dynamic_lookup"],
|
||||
"//conditions:default": [""],
|
||||
})
|
||||
|
||||
INTEL_RDFP_FLOAT128_INTERNAL_HEADERS = [
|
||||
"LIBRARY/float128/architecture.h",
|
||||
"LIBRARY/float128/assert.h",
|
||||
@ -132,6 +137,7 @@ mongo_cc_library(
|
||||
"LIBRARY/float128/dpml_log.c",
|
||||
] + INTEL_RDFP_FLOAT128_INTERNAL_HEADERS,
|
||||
copts = IGNORE_WARNINGS_COPT,
|
||||
linkopts = DYNAMIC_LOOKUP_LINKOPT,
|
||||
local_defines = INTEL_RDFP_MATHLIB_DEFINES + [
|
||||
"LOG1P=1",
|
||||
"efi2=1",
|
||||
|
7
src/third_party/mozjs/BUILD.bazel
vendored
7
src/third_party/mozjs/BUILD.bazel
vendored
@ -47,8 +47,7 @@ PLATFORM_INCLUDES = select({
|
||||
|
||||
PLATFORM_COPTS = select({
|
||||
config: [
|
||||
"/FI" if os == "windows" else "-include",
|
||||
"$(location platform/{}/{}/build/js-confdefs.h)".format(arch, os),
|
||||
("/FI" if os == "windows" else "-include") + "$(location platform/{}/{}/build/js-confdefs.h)".format(arch, os),
|
||||
] + (["-mavx2"] if arch == "x86_64" and os != "windows" else [])
|
||||
for config, (arch, os) in PLATFORMS.items()
|
||||
} | {
|
||||
@ -297,6 +296,10 @@ mongo_cc_library(
|
||||
"include",
|
||||
"mongo_sources",
|
||||
] + PLATFORM_INCLUDES,
|
||||
linkopts = select({
|
||||
"@platforms//os:macos": ["-Wl,-undefined,dynamic_lookup"],
|
||||
"//conditions:default": [""],
|
||||
}),
|
||||
local_defines = [
|
||||
"IMPL_MFBT=1",
|
||||
"U_NO_DEFAULT_INCLUDE_UTF_HEADERS=1",
|
||||
|
18
src/third_party/unwind/BUILD.bazel
vendored
18
src/third_party/unwind/BUILD.bazel
vendored
@ -98,7 +98,7 @@ mongo_cc_library(
|
||||
"dist/src/x86_64/is_fpreg.c",
|
||||
"dist/src/x86_64/regname.c",
|
||||
],
|
||||
"@platforms//cpu:ppc64le": [
|
||||
"@platforms//cpu:ppc": [
|
||||
"dist/src/ppc/Lget_proc_info.c",
|
||||
"dist/src/ppc/Lget_save_loc.c",
|
||||
"dist/src/ppc/Linit_local.c",
|
||||
@ -142,7 +142,7 @@ mongo_cc_library(
|
||||
"dist/src/x86_64/getcontext.S",
|
||||
"dist/src/x86_64/setcontext.S",
|
||||
],
|
||||
"@platforms//cpu:ppc64le": [],
|
||||
"@platforms//cpu:ppc": [],
|
||||
"@platforms//cpu:s390x": [
|
||||
"dist/src/s390x/getcontext.S",
|
||||
"dist/src/s390x/setcontext.S",
|
||||
@ -171,7 +171,7 @@ mongo_cc_library(
|
||||
"-Isrc/third_party/unwind/platform/linux_x86_64/build/include",
|
||||
"-Isrc/third_party/unwind/dist/include/tdep-x86_64",
|
||||
],
|
||||
"@platforms//cpu:ppc64le": [
|
||||
"@platforms//cpu:ppc": [
|
||||
"-Isrc/third_party/unwind/platform/linux_ppc64le/build/include",
|
||||
"-Isrc/third_party/unwind/dist/include/tdep-ppc64",
|
||||
],
|
||||
@ -204,14 +204,10 @@ mongo_cc_library(
|
||||
"no_warn_non_virtual_detour",
|
||||
],
|
||||
includes = select({
|
||||
"@platforms//cpu:{}".format(cpu): ["platform/linux_{}/install/include".format(cpu)]
|
||||
for cpu in [
|
||||
"aarch64",
|
||||
"x86_64",
|
||||
"ppc64le",
|
||||
"s390x",
|
||||
]
|
||||
} | {
|
||||
"@platforms//cpu:aarch64": ["platform/linux_aarch64/install/include"],
|
||||
"@platforms//cpu:x86_64": ["platform/linux_x86_64/install/include"],
|
||||
"@platforms//cpu:ppc": ["platform/linux_ppc64le/install/include"],
|
||||
"@platforms//cpu:s390x": ["platform/linux_s390x/install/include"],
|
||||
"//conditions:default": [],
|
||||
}),
|
||||
local_defines = [
|
||||
|
2
src/third_party/wiredtiger/BUILD.bazel
vendored
2
src/third_party/wiredtiger/BUILD.bazel
vendored
@ -102,7 +102,7 @@ mongo_cc_library(
|
||||
] + select({
|
||||
"@platforms//cpu:aarch64": WT_FILELIST_ARM64_HOST,
|
||||
"@platforms//cpu:x86_64": WT_FILELIST_X86_HOST,
|
||||
"@platforms//cpu:ppc64le": WT_FILELIST_POWERPC_HOST,
|
||||
"@platforms//cpu:ppc": WT_FILELIST_POWERPC_HOST,
|
||||
"@platforms//cpu:s390x": [
|
||||
WT_FILELIST_ZSERIES_HOST[0],
|
||||
":wiredtiger_s390x_checksum_index_1",
|
||||
|
22
tools/bazel
22
tools/bazel
@ -3,6 +3,12 @@
|
||||
# Whenever Bazel is invoked, it first calls this script setting "BAZEL_REAL" to the path of the real Bazel binary.
|
||||
# Use this file as a wrapper for any logic that should run before bazel itself is executed.
|
||||
|
||||
# WARNING : If you run //:compiledb target, you can not print to stdout in this file as it will fail with
|
||||
# "Bazel aquery failed." because it is reading this files stdout as aquery output
|
||||
|
||||
bazel_real="$BAZEL_REAL"
|
||||
bazelrc_xcode_lines=()
|
||||
|
||||
if [[ -z "${BAZELISK_SKIP_WRAPPER}" ]]; then
|
||||
echo "You're not using Bazelisk, which is recommended for a consistent build environment." >&2
|
||||
echo "Your version of Bazel may be mismatched with the version intended to be used to build MongoDB." >&2
|
||||
@ -18,4 +24,18 @@ if [ -d .git ]; then
|
||||
echo "build --define GIT_COMMIT_HASH=$(git rev-parse HEAD)" > .bazelrc.gitinfo
|
||||
fi
|
||||
|
||||
$BAZEL_REAL "$@"
|
||||
if [[ $OSTYPE == darwin* ]]; then
|
||||
echo "Running on Apple (darwin), creating .bazelrc for xcode settings." >&2
|
||||
xcode_path=$(xcode-select -p) >&2
|
||||
xcode_version=$(xcodebuild -version | tail -1 | cut -d " " -f3) >&2
|
||||
xcode_build_number=$(/usr/bin/xcodebuild -version 2>/dev/null | tail -1 | cut -d " " -f3) >&2
|
||||
|
||||
bazelrc_lines+=("startup --host_jvm_args=-Xdock:name=$xcode_path") >&2
|
||||
bazelrc_lines+=("build --xcode_version=$xcode_version") >&2
|
||||
bazelrc_lines+=("build --repo_env=USE_CLANG_CL=$xcode_version") >&2
|
||||
bazelrc_lines+=("build --repo_env=DEVELOPER_DIR=$xcode_path") >&2
|
||||
fi
|
||||
|
||||
printf '%s\n' "${bazelrc_xcode_lines[@]}" > .bazelrc.xcode
|
||||
|
||||
exec "$bazel_real" "$@"
|
||||
|
Loading…
Reference in New Issue
Block a user