Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump com_google_googleurl to fix clang-18 compile error ( error: no template named '__is_cpp17_contiguous_iterator'; did you mean '__libcpp_is_contiguous_iterator'?) #77

Open
maflcko opened this issue Sep 19, 2024 · 1 comment

Comments

@maflcko
Copy link

maflcko commented Sep 19, 2024

According to

quiche/WORKSPACE.bazel

Lines 47 to 51 in 4249f80

http_archive(
name = "com_google_googleurl",
sha256 = "a1bc96169d34dcc1406ffb750deef3bc8718bd1f9069a2878838e1bd905de989", # Last updated 2022-04-04
urls = ["https://storage.googleapis.com/quiche-envoy-integration/googleurl_9cdb1f4d1a365ebdbcbf179dadf7f8aa5ee802e7.tar.gz"],
)

the dependency was last updated in 2022.

However, in 2023 a patch was submitted in https://chromium.googlesource.com/chromium/src/+/9bfbbffdba73668fdb483e5a850911d2b64c35d7%5E%21/#F0 to work around a compile error.

My suggestion would be to bump the dependency.

Otherwise, compiling with clang-18 will fail with an error similar to:

ERROR: /root/.cache/bazel/_bazel_root/67f069a6e37e19c66574e49dfbd08b7c/external/com_google_googleurl/url/BUILD:12:11: Compiling url/url_parse_file.cc failed: (Exit 1): clang-18 failed: error executing command (from target @com_google_googleurl//url:url) 
  (cd /root/.cache/bazel/_bazel_root/67f069a6e37e19c66574e49dfbd08b7c/sandbox/linux-sandbox/205/execroot/com_google_quiche && \
  exec env - \
    CC=clang \
    CXX=clang++ \
    FUZZINTRO_OUTDIR=/src \
    PATH=/root/.cache/bazelisk/downloads/bazelbuild/bazel-6.2.1-linux-x86_64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/out \
    PWD=/proc/self/cwd \
  /usr/local/bin/clang-18 -U_FORTIFY_SOURCE -fstack-protector -Wall -Wthread-safety -Wself-assign -Wunused-but-set-parameter -Wno-free-nonheap-object -fcolor-diagnostics -fno-omit-frame-pointer '-std=c++0x' -MD -MF bazel-out/k8-fastbuild/bin/external/com_google_googleurl/url/_objs/url/url_parse_file.pic.d '-frandom-seed=bazel-out/k8-fastbuild/bin/external/com_google_googleurl/url/_objs/url/url_parse_file.pic.o' -fPIC '-DBAZEL_CURRENT_REPOSITORY="com_google_googleurl"' -iquote external/com_google_googleurl -iquote bazel-out/k8-fastbuild/bin/external/com_google_googleurl -iquote external/com_google_absl -iquote bazel-out/k8-fastbuild/bin/external/com_google_absl -Wno-narrowing -DFUZZTEST_COMPATIBILITY_MODE '-std=c++17' -fno-rtti -O1 -fno-omit-frame-pointer -gline-tables-only '-Wno-error=enum-constexpr-conversion' '-Wno-error=incompatible-function-pointer-types' '-Wno-error=int-conversion' '-Wno-error=deprecated-declarations' '-Wno-error=implicit-function-declaration' '-Wno-error=implicit-int' -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION '-fsanitize=address' -fsanitize-address-use-after-scope '-fsanitize=fuzzer-no-link' '-stdlib=libc++' '-DNDEBUG=1' '-std=c++17' -fno-strict-aliasing -no-canonical-prefixes -Wno-builtin-macro-redefined '-D__DATE__="redacted"' '-D__TIMESTAMP__="redacted"' '-D__TIME__="redacted"' -c external/com_google_googleurl/url/url_parse_file.cc -o bazel-out/k8-fastbuild/bin/external/com_google_googleurl/url/_objs/url/url_parse_file.pic.o)
# Configuration: 4b41b17b63765a985bda05258a5914b54725df95453dd8960b93ca722634cf73
# Execution platform: @local_config_platform//:host

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
In file included from external/com_google_googleurl/url/url_parse_file.cc:7:
In file included from external/com_google_googleurl/url/url_file.h:11:
In file included from external/com_google_googleurl/base/strings/string_util.h:22:
In file included from external/com_google_googleurl/base/containers/span.h:17:
In file included from external/com_google_googleurl/polyfills/base/check_op.h:9:
external/com_google_googleurl/base/template_util.h:141:7: warning: builtin __has_trivial_copy is deprecated; use __is_trivially_copyable instead [-Wdeprecated-builtins]
  141 |       __has_trivial_copy(T) && __has_trivial_destructor(T);
      |       ^
external/com_google_googleurl/base/template_util.h:141:32: warning: builtin __has_trivial_destructor is deprecated; use __is_trivially_destructible instead [-Wdeprecated-builtins]
  141 |       __has_trivial_copy(T) && __has_trivial_destructor(T);
      |                                ^
In file included from external/com_google_googleurl/url/url_parse_file.cc:7:
In file included from external/com_google_googleurl/url/url_file.h:11:
In file included from external/com_google_googleurl/base/strings/string_util.h:22:
In file included from external/com_google_googleurl/base/containers/span.h:19:
external/com_google_googleurl/base/containers/checked_iterators.h:241:8: error: no template named '__is_cpp17_contiguous_iterator'; did you mean '__libcpp_is_contiguous_iterator'?
  241 | struct __is_cpp17_contiguous_iterator<::gurl_base::CheckedContiguousIterator<T>>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |        __libcpp_is_contiguous_iterator
/usr/local/bin/../include/c++/v1/__iterator/iterator_traits.h:482:8: note: '__libcpp_is_contiguous_iterator' declared here
  482 | struct __libcpp_is_contiguous_iterator : false_type {};
      |        ^
2 warnings and 1 error generated.
@maflcko
Copy link
Author

maflcko commented Oct 2, 2024

For example, this would be needed for google/oss-fuzz#12094

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant