Skip to content

Conversation

@martijneken
Copy link
Contributor

@martijneken martijneken commented Aug 1, 2024

Pick up this fix: abseil/abseil-cpp#1187

Bump to latest LTS version (past Envoy) to pick up another fix found in local fuzz tests:
#399 (comment)

Build issue seen on:

$ /usr/lib/llvm-16/bin/clang --version
Debian clang version 16.0.6 (26)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm-16/bin

Pick up this fix: abseil/abseil-cpp#1187

Bump past Envoy to pick up another fix found in fuzz tests:
proxy-wasm#399 (comment)

Signed-off-by: Martijn Stevenson <mstevenson@google.com>
@PiotrSikora
Copy link
Member

Build issue seen on:

$ /usr/lib/llvm-16/bin/clang --version
Debian clang version 16.0.6 (26)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm-16/bin

That's interesting, because it works fine on:

$ clang-16 --version
Debian clang version 16.0.6 (15~deb12u1)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

What's the invocation that's broken?

Note that abseil/abseil-cpp#1187 talks about GCC 13 and not Clang.

Signed-off-by: Martijn Stevenson <mstevenson@google.com>
@martijneken
Copy link
Contributor Author

What's the invocation that's broken?

$ bazelisk test --verbose_failures --define engine=null --config=clang -- //test/...
...
ERROR: /usr/local/google/home/mstevenson/.cache/bazel/_bazel_mstevenson/35e00757f2b858287fbaf6f5989ae0e8/external/com_google_absl/absl/strings/BUILD.bazel:1099:11: Compiling absl/strings/internal/str_format/float_conversion.cc fai
led: (Exit 1): clang failed: error executing command                                                                                                                                                                                  
  (cd /usr/local/google/home/mstevenson/.cache/bazel/_bazel_mstevenson/35e00757f2b858287fbaf6f5989ae0e8/sandbox/linux-sandbox/237/execroot/proxy_wasm_cpp_host && \                                                                   
  exec env - \                                                                                                                                                                                                                        
    BAZEL_COMPILER=clang \                                                                                                                                                                                                            
    CC=clang \                                                                                                                                                                                                                        
    CXX=clang++ \                                                                                                                                                                                                                     
    PATH=<...> \                        
    PWD=/proc/self/cwd \                                                                                                                                                                                                              
  /usr/lib/llvm-16/bin/clang -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-ST-5c2a6e57c052/bin/external/com_google_absl/absl/strings/_objs/str_format_internal/float_conversion.pic.d '-frandom-seed=bazel-out/k8-fastbuild-ST-5c2a6e57c052/bin/external/com_google_absl/absl/strings/_objs/str_format
_internal/float_conversion.pic.o' -fPIC -iquote external/com_google_absl -iquote bazel-out/k8-fastbuild-ST-5c2a6e57c052/bin/external/com_google_absl -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION '-std=c++17' -Wall -Wextra -Wcast-qual
 -Wconversion -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wfor-loop-analysis -Wformat-security -Wgnu-redeclared-enum -Winfinite-recursion -Winvalid-constexpr -Wliteral-conversion -Wmissing-declarations -Woverlength-string
s -Wpointer-arith -Wself-assign -Wshadow-all -Wstring-conversion -Wtautological-overlap-compare -Wundef -Wuninitialized -Wunreachable-code -Wunused-comparison -Wunused-local-typedefs -Wunused-result -Wvla -Wwrite-strings -Wno-floa
t-conversion -Wno-implicit-float-conversion -Wno-implicit-int-float-conversion -Wno-implicit-int-conversion -Wno-shorten-64-to-32 -Wno-sign-conversion -Wno-unknown-warning-option -DNOMINMAX -no-canonical-prefixes -Wno-builtin-macr
o-redefined '-D__DATE__="redacted"' '-D__TIMESTAMP__="redacted"' '-D__TIME__="redacted"' -c external/com_google_absl/absl/strings/internal/str_format/float_conversion.cc -o bazel-out/k8-fastbuild-ST-5c2a6e57c052/bin/external/com_g
oogle_absl/absl/strings/_objs/str_format_internal/float_conversion.pic.o)                                                                                                                                                             
# Configuration: f5c41261913aa58b27c39d480bafcec8c7dcbd34b432916aa8bb476b1c64edba                                                                                                                                                     
# Execution platform: @local_config_platform//:host                                                                                                                                                                                   
...
In file included from external/com_google_absl/absl/strings/internal/str_format/float_conversion.cc:15:
In file included from external/com_google_absl/absl/strings/internal/str_format/float_conversion.h:18:
external/com_google_absl/absl/strings/internal/str_format/extension.h:34:35: error: unknown type name 'uint8_t'
enum class FormatConversionChar : uint8_t;
                                  ^
external/com_google_absl/absl/strings/internal/str_format/extension.h:35:38: error: unknown type name 'uint64_t'
enum class FormatConversionCharSet : uint64_t;
                                     ^
external/com_google_absl/absl/strings/internal/str_format/extension.h:131:20: error: unknown type name 'uint8_t'
enum class Flags : uint8_t {
                   ^

Copy link
Member

@PiotrSikora PiotrSikora left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@PiotrSikora
Copy link
Member

$ bazelisk test --verbose_failures --define engine=null --config=clang -- //test/...
[...]
external/com_google_absl/absl/strings/internal/str_format/extension.h:131:20: error: unknown type name 'uint8_t'
enum class Flags : uint8_t {
                   ^

FWIW, it works here.

@martijneken
Copy link
Contributor Author

FWIW, it works here.

Any interest in pursuing hermetic Bazel toolchains? (toolchains_llvm, hermetic_cc_toolchain)

@PiotrSikora
Copy link
Member

Any interest in pursuing hermetic Bazel toolchains? (toolchains_llvm, hermetic_cc_toolchain)

Sure, I believe that @leonm1 signed up for that a while ago.

@martijneken martijneken merged commit b013a0d into proxy-wasm:main Aug 1, 2024
@martijneken martijneken deleted the bump-abseil branch August 1, 2024 16:16
johnlanni pushed a commit to higress-group/proxy-wasm-cpp-host that referenced this pull request Jan 26, 2026
… behavior (proxy-wasm#434) (#11)

* fix: CI branch name master -> main (proxy-wasm#398)

Signed-off-by: Martijn Stevenson <mstevenson@google.com>

* fix: Bump Abseil to fix Linux build issues (proxy-wasm#400)

Bump Abseil to fix Linux build issues

Pick up this fix: abseil/abseil-cpp#1187

Bump past Envoy to pick up another fix found in fuzz tests:
proxy-wasm#399 (comment)

Signed-off-by: Martijn Stevenson <mstevenson@google.com>

* fix: Update cargo-raze -> crate_universe (proxy-wasm#399)

- Updated platforms for crate_universe compatibility
- Supports upgrade to wasmsign2
- Includes workaround for Windows path length issue

Signed-off-by: Martijn Stevenson <mstevenson@google.com>

* fix: Move from unavailable macos-11 to macos-13 (proxy-wasm#401)

See: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources

This does not fix proxy-wasm#384, but does resurface those errors.

Signed-off-by: Martijn Stevenson <mstevenson@google.com>

* chore: bump Bazel from 5.2.0 to 6.5.0 (proxy-wasm#402)

Bump Bazel from 5.2.0 to 6.5.0

This breaks the s390x build which relied on an external Docker image. I made some strides in fixing s390x, but it's not yet working. Deferred to proxy-wasm#405.

Signed-off-by: Martijn Stevenson <mstevenson@google.com>

* chore: bump rules_python and rules_fuzzing (proxy-wasm#404)

Upgrade rules_python (0.34.0) and rules_fuzzing (0.5.2)

This requires extracting WORKSPACE phases into more phases:
- dependencies -- py_repositories() and toolchains
- dependencies_python() -- pip_parse module loading
- dependencies_import() -- python/fuzzing/other deps

The new structure roughly matches Envoy WORKSPACE:
- envoy_dependencies()
- envoy_dependencies_extra() -- not needed here
- envoy_python_dependencies()
- envoy_dependency_imports()

Signed-off-by: Martijn Stevenson <mstevenson@google.com>

* Update CI to use Ubuntu 22.04 / clang 14 (proxy-wasm#408)

Signed-off-by: Martijn Stevenson <mstevenson@google.com>

* Update rules_rust to v0.42.1 (with Rust v1.77.2). (proxy-wasm#410)

* Update rules_rust
* Update rust and vendor
* rust_oom -> rg_oom
* Change rust version

---------

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* Update wasmtime (v24.0.0) (proxy-wasm#406)

Removes Wasmtime + Windows CI because rules_rust has recently dropped Windows: https://github.com/bazelbuild/rules_rust/blob/main/docs/index.md#supported-platforms

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* fix: Upgrade deprecated artifact upload/download handlers (proxy-wasm#415)

Seen on proxy-wasm#380 CI:

Error: This request has been automatically failed because it uses a deprecated version of `actions/upload-artifact: v2`. Learn more: https://github.blog/changelog/2024-02-13-deprecation-notice-v1-and-v2-of-the-artifact-actions/

Signed-off-by: Martijn Stevenson <mstevenson@google.com>

* bump wamr to 2.1.1 and able to consume precompiled content (proxy-wasm#380)

- skip leading paddings in .aot section

Signed-off-by: liang.he@intel.com <liang.he@intel.com>

* compdb add the compdb support to the proxy_wasm_cpp_host (proxy-wasm#419)

* compdb add the compdb support to the proxy_wasm_cpp_host

Signed-off-by: wangbaiping <wbphub@gmail.com>

* Fix references to prefix_wasm_api (proxy-wasm#420)

Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

* feat(go-sdk): add wasi hostcalls used by the Go SDK (proxy-wasm#427)

The full Go sdk imports hostcalls not currently exported to the wasm
module, making the wasm module fail on instantiation. Per discussion
with the Go core maintainers, these functions do not need to be
implemented, but they must be present.

Signed-off-by: Matt Leon <mattleon@google.com>

* chore: workflow runner fixes (proxy-wasm#436)

Assorted changes to get workflows working again:

- Update format workflows to use ubuntu-22.04
- Update windows-2019 to windows-2022 and add a missing <string> include needed to
  build with that
- Enable manual triggering of workflows

Fixes proxy-wasm#435

---------

Signed-off-by: Michael Warres <mpw@google.com>

* feat: add knob to customise on{Request,Response}Headers StopIteration behavior (proxy-wasm#434)

Add protected ContextBase::allow_on_headers_stop_iteration_ field that can be used by host implementations to control whether or not ContextBase propagates FilterHeaderStatus::StopIteration returned by onRequestHeaders() or onResponseHeaders() without modification.

Follow-on envoyproxy/envoy#40213 adds an option in Envoy WasmFilter PluginConfig that sets the value of this field.

For details, see [Envoy Wasm / Proxy-Wasm support for FilterHeadersStatus::StopIteration](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?usp=sharing). This PR is one part of implementing [Option B: WasmFilter config knob](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?tab=t.0#bookmark=id.5wxldlapsp54).

Note that default behavior of proxy-wasm-cpp-host and ContextBase is unchanged.

---------

Signed-off-by: Michael Warres <mpw@google.com>

---------

Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: liang.he@intel.com <liang.he@intel.com>
Signed-off-by: wangbaiping <wbphub@gmail.com>
Signed-off-by: Matt Leon <mattleon@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
Co-authored-by: martijneken <mstevenson@google.com>
Co-authored-by: Keith Mattix II <keithmattix2@gmail.com>
Co-authored-by: Keith Mattix II <keithmattix@microsoft.com>
Co-authored-by: liang.he <liang.he@intel.com>
Co-authored-by: code <wbphub@gmail.com>
Co-authored-by: Matt Leon <ml@mattleon.com>
Co-authored-by: Michael Warres <mpw@google.com>
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

Successfully merging this pull request may close these issues.

3 participants