Merge pull request #269297 from boltzmannrain/bazel_6_clang16

bazel_6: fix CLang 16 Werror-s on darwin
This commit is contained in:
Uri Baghin 2023-11-23 22:02:02 +08:00 committed by GitHub
commit f2910d39dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 0 deletions

View File

@ -199,6 +199,10 @@ stdenv.mkDerivation rec {
inherit src;
inherit sourceRoot;
patches = [
# upb definition inside bazel sets its own copts that take precedence
# over flags we set externally, so need to patch them at the source
./upb-clang16.patch
# Force usage of the _non_ prebuilt java toolchain.
# the prebuilt one does not work in nix world.
./java_toolchain.patch
@ -403,6 +407,8 @@ stdenv.mkDerivation rec {
# libcxx includes aren't added by libcxx hook
# https://github.com/NixOS/nixpkgs/pull/41589
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${lib.getDev libcxx}/include/c++/v1"
# for CLang 16 compatibility in external/{absl,upb} dependencies
export NIX_CFLAGS_COMPILE+=" -Wno-deprecated-builtins -Wno-gnu-offsetof-extensions"
# don't use system installed Xcode to run clang, use Nix clang instead
sed -i -E "s;/usr/bin/xcrun (--sdk macosx )?clang;${stdenv.cc}/bin/clang $NIX_CFLAGS_COMPILE $(bazelLinkFlags) -framework CoreFoundation;g" \

View File

@ -0,0 +1,30 @@
diff --git a/distdir_deps.bzl b/distdir_deps.bzl
index c7fc4588e4..01e6966fca 100644
--- a/distdir_deps.bzl
+++ b/distdir_deps.bzl
@@ -192,6 +192,8@@ DIST_DEPS = {
"archive": "a5477045acaa34586420942098f5fecd3570f577.tar.gz",
"sha256": "cf7f71eaff90b24c1a28b49645a9ff03a9a6c1e7134291ce70901cb63e7364b5",
"strip_prefix": "upb-a5477045acaa34586420942098f5fecd3570f577",
+ "patches": ["//:upb-clang16.patch"],
+ "patch_args": ["-p1"],
"urls": [
"https://mirror.bazel.build/github.com/protocolbuffers/upb/archive/a5477045acaa34586420942098f5fecd3570f577.tar.gz",
"https://github.com/protocolbuffers/upb/archive/a5477045acaa34586420942098f5fecd3570f577.tar.gz",
diff --git a/upb-clang16.patch b/upb-clang16.patch
new file mode 100644
index 0000000000..f81855181f
--- /dev/null
+++ upb-clang16.patch
@@ -0,0 +1,10 @@
+--- a/bazel/build_defs.bzl
++++ b/bazel/build_defs.bzl
+@@ -43,6 +43,7 @@
+ "-Werror=pedantic",
+ "-Wall",
+ "-Wstrict-prototypes",
++ "-Wno-gnu-offsetof-extensions",
+ # GCC (at least) emits spurious warnings for this that cannot be fixed
+ # without introducing redundant initialization (with runtime cost):
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635