Skip to content

Compilation error: GPR_ASSERT not found #659

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

Open
nikurt opened this issue May 16, 2025 · 4 comments · May be fixed by #660
Open

Compilation error: GPR_ASSERT not found #659

nikurt opened this issue May 16, 2025 · 4 comments · May be fixed by #660

Comments

@nikurt
Copy link

nikurt commented May 16, 2025

Describe the bug
When building the grpcio-sys crate (version 0.13.0+1.56.2-patched, as well as branch master at the latest commit 0b1798dc) with cargo build, the compilation fails due to undefined GPR_ASSERT macros in grpc_wrap.cc.

To Reproduce
Steps to reproduce the behavior:

  1. gh repo clone tikv/grpc-rs
  2. cd grpc-rs
  3. cargo build
  4. Observe the compilation failed

Expected behavior
The crate builds

System information

  • CPU architecture: x86_64
  • Distribution and kernel version: Arch Linux 6.14.6-arch1-1
  • SELinux on?: No
  • Any other system details we should know?:
    • cargo 1.86.0 (adf9b6ad1 2025-02-28)
    • gcc (GCC) 15.1.1 20250425

Additional context
The compilation error message:

  cargo:warning=grpc_wrap.cc:175:3: error: use of undeclared identifier 'GPR_ASSERT'
  cargo:warning=  175 |   GPR_ASSERT(array->count <= array->capacity);
  cargo:warning=      |   ^
  cargo:warning=grpc_wrap.cc:191:3: error: use of undeclared identifier 'GPR_ASSERT'
  cargo:warning=  191 |   GPR_ASSERT(index < array->count);
  cargo:warning=      |   ^
  cargo:warning=grpc_wrap.cc:198:3: error: use of undeclared identifier 'GPR_ASSERT'
  cargo:warning=  198 |   GPR_ASSERT(index < array->count);
  cargo:warning=      |   ^
  cargo:warning=grpc_wrap.cc:210:3: error: use of undeclared identifier 'GPR_ASSERT'
  cargo:warning=  210 |   GPR_ASSERT(array->count <= array->capacity);
  cargo:warning=      |   ^
  cargo:warning=grpc_wrap.cc:438:3: error: use of undeclared identifier 'GPR_ASSERT'
  cargo:warning=  438 |   GPR_ASSERT(args);
  cargo:warning=      |   ^
  cargo:warning=grpc_wrap.cc:439:3: error: use of undeclared identifier 'GPR_ASSERT'
  cargo:warning=  439 |   GPR_ASSERT(index < args->num_args);
  cargo:warning=      |   ^
  cargo:warning=grpc_wrap.cc:447:3: error: use of undeclared identifier 'GPR_ASSERT'
  cargo:warning=  447 |   GPR_ASSERT(args);
  cargo:warning=      |   ^
  cargo:warning=grpc_wrap.cc:448:3: error: use of undeclared identifier 'GPR_ASSERT'
  cargo:warning=  448 |   GPR_ASSERT(index < args->num_args);
  cargo:warning=      |   ^
  cargo:warning=grpc_wrap.cc:457:3: error: use of undeclared identifier 'GPR_ASSERT'
  cargo:warning=  457 |   GPR_ASSERT(args);
  cargo:warning=      |   ^
  cargo:warning=grpc_wrap.cc:458:3: error: use of undeclared identifier 'GPR_ASSERT'
  cargo:warning=  458 |   GPR_ASSERT(index < args->num_args);
  cargo:warning=      |   ^
  cargo:warning=10 errors generated.
@nikurt nikurt linked a pull request May 16, 2025 that will close this issue
@BusyJay
Copy link
Member

BusyJay commented May 17, 2025

Make sure you run cargo xtask submodule before building the project.

@nikurt
Copy link
Author

nikurt commented May 19, 2025

Tried cargo xtask submodule, same result. Please see the experiment results below.

steelspirit Mon 8:46:42 ~/code % gh repo clone tikv/grpc-rs grpc-rs-2
Cloning into 'grpc-rs-2'...
steelspirit Mon 8:46:52 ~/code % cd grpc-rs-2
steelspirit Mon 8:46:55 ~/code/grpc-rs-2 % cargo xtask submodule
    Updating crates.io index
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.57s
     Running `xtask/target/debug/xtask submodule`
Submodule 'grpc-sys/grpc' (https://github.com/pingcap/grpc.git) registered for path 'grpc-sys/grpc'
Cloning into '/home/nkurtov/code/grpc-rs-2/grpc-sys/grpc'...
Submodule path 'grpc-sys/grpc': checked out '815f12f3c31760603431eaf95d40a867f2fcf679'
Submodule 'third_party/cares/cares' (https://github.com/c-ares/c-ares.git) registered for path 'cares/cares'
Cloning into '/home/nkurtov/code/grpc-rs-2/grpc-sys/grpc/third_party/cares/cares'...
Submodule path 'cares/cares': checked out '6360e96b5cf8e5980c887ce58ef727e53d77243a'
Submodule 'third_party/abseil-cpp' (https://github.com/abseil/abseil-cpp.git) registered for path 'abseil-cpp'
Cloning into '/home/nkurtov/code/grpc-rs-2/grpc-sys/grpc/third_party/abseil-cpp'...
Submodule path 'abseil-cpp': checked out 'c2435f8342c2d0ed8101cb43adfd605fdc52dca2'
Submodule 'third_party/envoy-api' (https://github.com/envoyproxy/data-plane-api.git) registered for path 'envoy-api'
Cloning into '/home/nkurtov/code/grpc-rs-2/grpc-sys/grpc/third_party/envoy-api'...
Submodule path 'envoy-api': checked out '68d4315167352ffac71f149a43b8088397d3f33d'
Submodule 'third_party/googleapis' (https://github.com/googleapis/googleapis.git) registered for path 'googleapis'
Cloning into '/home/nkurtov/code/grpc-rs-2/grpc-sys/grpc/third_party/googleapis'...
Submodule path 'googleapis': checked out '2f9af297c84c55c8b871ba4495e01ade42476c92'
Submodule 'third_party/opencensus-proto' (https://github.com/census-instrumentation/opencensus-proto.git) registered for path 'opencensus-proto'
Cloning into '/home/nkurtov/code/grpc-rs-2/grpc-sys/grpc/third_party/opencensus-proto'...
Submodule path 'opencensus-proto': checked out '4aa53e15cbf1a47bc9087e6cfdca214c1eea4e89'
Submodule 'third_party/re2' (https://github.com/google/re2.git) registered for path 're2'
Cloning into '/home/nkurtov/code/grpc-rs-2/grpc-sys/grpc/third_party/re2'...
Submodule path 're2': checked out '0c5616df9c0aaa44c9440d87422012423d91c7d1'
Submodule 'third_party/xds' (https://github.com/cncf/xds.git) registered for path 'xds'
Cloning into '/home/nkurtov/code/grpc-rs-2/grpc-sys/grpc/third_party/xds'...
Submodule path 'xds': checked out 'e9ce68804cb4e64cab5a52e3c8baf840d4ff87b7'
HEAD is now at 815f12f3c3 Merge pull request #49 from tikv/update-to-1.56.0
steelspirit Mon 8:47:41 ~/code/grpc-rs-2 % cargo build
    Updating crates.io index
    ...
warning: [email protected]+1.56.2-patched: grpc_wrap.cc: In function 'void grpcwrap_metadata_array_add(grpc_metadata_array*, const char*, size_t, const char*, size_t)':
warning: [email protected]+1.56.2-patched: grpc_wrap.cc:175:3: error: 'GPR_ASSERT' was not declared in this scope
warning: [email protected]+1.56.2-patched:   175 |   GPR_ASSERT(array->count <= array->capacity);
warning: [email protected]+1.56.2-patched:       |   ^~~~~~~~~~
warning: [email protected]+1.56.2-patched: grpc_wrap.cc: In function 'const char* grpcwrap_metadata_array_get_key(const grpc_metadata_array*, size_t, size_t*)':
warning: [email protected]+1.56.2-patched: grpc_wrap.cc:191:3: error: 'GPR_ASSERT' was not declared in this scope
warning: [email protected]+1.56.2-patched:   191 |   GPR_ASSERT(index < array->count);
warning: [email protected]+1.56.2-patched:       |   ^~~~~~~~~~
warning: [email protected]+1.56.2-patched: grpc_wrap.cc: In function 'const char* grpcwrap_metadata_array_get_value(const grpc_metadata_array*, size_t, size_t*)':
warning: [email protected]+1.56.2-patched: grpc_wrap.cc:198:3: error: 'GPR_ASSERT' was not declared in this scope
warning: [email protected]+1.56.2-patched:   198 |   GPR_ASSERT(index < array->count);
warning: [email protected]+1.56.2-patched:       |   ^~~~~~~~~~
warning: [email protected]+1.56.2-patched: grpc_wrap.cc: In function 'void grpcwrap_metadata_array_shrink_to_fit(grpc_metadata_array*)':
warning: [email protected]+1.56.2-patched: grpc_wrap.cc:210:3: error: 'GPR_ASSERT' was not declared in this scope
warning: [email protected]+1.56.2-patched:   210 |   GPR_ASSERT(array->count <= array->capacity);
warning: [email protected]+1.56.2-patched:       |   ^~~~~~~~~~
warning: [email protected]+1.56.2-patched: grpc_wrap.cc: In function 'void grpcwrap_channel_args_set_string(grpc_channel_args*, size_t, const char*, const char*)':
warning: [email protected]+1.56.2-patched: grpc_wrap.cc:438:3: error: 'GPR_ASSERT' was not declared in this scope
warning: [email protected]+1.56.2-patched:   438 |   GPR_ASSERT(args);
warning: [email protected]+1.56.2-patched:       |   ^~~~~~~~~~
warning: [email protected]+1.56.2-patched: grpc_wrap.cc: In function 'void grpcwrap_channel_args_set_integer(grpc_channel_args*, size_t, const char*, int)':
warning: [email protected]+1.56.2-patched: grpc_wrap.cc:447:3: error: 'GPR_ASSERT' was not declared in this scope
warning: [email protected]+1.56.2-patched:   447 |   GPR_ASSERT(args);
warning: [email protected]+1.56.2-patched:       |   ^~~~~~~~~~
warning: [email protected]+1.56.2-patched: grpc_wrap.cc: In function 'void grpcwrap_channel_args_set_pointer_vtable(grpc_channel_args*, size_t, const char*, void*, const grpc_arg_pointer_vtable*)':
warning: [email protected]+1.56.2-patched: grpc_wrap.cc:457:3: error: 'GPR_ASSERT' was not declared in this scope
warning: [email protected]+1.56.2-patched:   457 |   GPR_ASSERT(args);
warning: [email protected]+1.56.2-patched:       |   ^~~~~~~~~~
error: failed to run custom build command for `grpcio-sys v0.13.0+1.56.2-patched (/home/nkurtov/code/grpc-rs-2/grpc-sys)`

Caused by:
  process didn't exit successfully: `/home/nkurtov/code/grpc-rs-2/target/debug/build/grpcio-sys-3225f00a4b9e9673/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-changed=grpc_wrap.cc
  cargo:rerun-if-changed=grpc
  cargo:rerun-if-env-changed=CARGO_CFG_TARGET_OS
  cargo:rerun-if-env-changed=GRPCIO_SYS_USE_PKG_CONFIG
  cargo:rerun-if-env-changed=GRPC_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=GRPC_STATIC
  cargo:rerun-if-env-changed=GRPC_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=SYSROOT
  cargo:rerun-if-env-changed=GRPC_STATIC
  cargo:rerun-if-env-changed=GRPC_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
  cargo:rustc-link-search=native=/usr/lib
  cargo:rustc-link-lib=grpc
  cargo:rustc-link-lib=absl_statusor
  cargo:rustc-link-lib=gpr
  cargo:rustc-link-lib=absl_random_distributions
  cargo:rustc-link-lib=absl_random_seed_sequences
  cargo:rustc-link-lib=absl_random_internal_pool_urbg
  cargo:rustc-link-lib=absl_random_internal_randen
  cargo:rustc-link-lib=absl_random_internal_randen_hwaes
  cargo:rustc-link-lib=absl_random_internal_randen_hwaes_impl
  cargo:rustc-link-lib=absl_random_internal_randen_slow
  cargo:rustc-link-lib=absl_random_internal_platform
  cargo:rustc-link-lib=absl_random_internal_seed_material
  cargo:rustc-link-lib=absl_random_seed_gen_exception
  cargo:rustc-link-lib=absl_status
  cargo:rustc-link-lib=absl_log_internal_check_op
  cargo:rustc-link-lib=absl_leak_check
  cargo:rustc-link-lib=absl_log_internal_conditions
  cargo:rustc-link-lib=absl_log_internal_message
  cargo:rustc-link-lib=absl_examine_stack
  cargo:rustc-link-lib=absl_log_internal_format
  cargo:rustc-link-lib=absl_log_internal_nullguard
  cargo:rustc-link-lib=absl_log_internal_structured_proto
  cargo:rustc-link-lib=absl_log_internal_proto
  cargo:rustc-link-lib=absl_log_internal_log_sink_set
  cargo:rustc-link-lib=absl_log_internal_globals
  cargo:rustc-link-lib=absl_log_globals
  cargo:rustc-link-lib=absl_log_sink
  cargo:rustc-link-lib=absl_log_entry
  cargo:rustc-link-lib=absl_strerror
  cargo:rustc-link-lib=absl_vlog_config_internal
  cargo:rustc-link-lib=absl_log_internal_fnmatch
  cargo:rustc-link-lib=absl_flags_internal
  cargo:rustc-link-lib=absl_flags_marshalling
  cargo:rustc-link-lib=absl_flags_reflection
  cargo:rustc-link-lib=absl_flags_private_handle_accessor
  cargo:rustc-link-lib=absl_flags_commandlineflag
  cargo:rustc-link-lib=absl_flags_commandlineflag_internal
  cargo:rustc-link-lib=absl_flags_config
  cargo:rustc-link-lib=absl_flags_program_name
  cargo:rustc-link-lib=absl_raw_hash_set
  cargo:rustc-link-lib=absl_cord
  cargo:rustc-link-lib=absl_cordz_info
  cargo:rustc-link-lib=absl_cord_internal
  cargo:rustc-link-lib=absl_cordz_functions
  cargo:rustc-link-lib=absl_cordz_handle
  cargo:rustc-link-lib=absl_crc_cord_state
  cargo:rustc-link-lib=absl_crc32c
  cargo:rustc-link-lib=absl_crc_internal
  cargo:rustc-link-lib=absl_crc_cpu_detect
  cargo:rustc-link-lib=absl_hashtablez_sampler
  cargo:rustc-link-lib=absl_exponential_biased
  cargo:rustc-link-lib=absl_hash
  cargo:rustc-link-lib=absl_city
  cargo:rustc-link-lib=absl_bad_variant_access
  cargo:rustc-link-lib=absl_low_level_hash
  cargo:rustc-link-lib=absl_bad_optional_access
  cargo:rustc-link-lib=absl_str_format_internal
  cargo:rustc-link-lib=absl_synchronization
  cargo:rustc-link-lib=absl_graphcycles_internal
  cargo:rustc-link-lib=absl_kernel_timeout_internal
  cargo:rustc-link-lib=absl_stacktrace
  cargo:rustc-link-lib=absl_symbolize
  cargo:rustc-link-lib=absl_debugging_internal
  cargo:rustc-link-lib=absl_demangle_internal
  cargo:rustc-link-lib=absl_demangle_rust
  cargo:rustc-link-lib=absl_decode_rust_punycode
  cargo:rustc-link-lib=absl_utf8_for_code_point
  cargo:rustc-link-lib=absl_malloc_internal
  cargo:rustc-link-lib=absl_time
  cargo:rustc-link-lib=absl_civil_time
  cargo:rustc-link-lib=absl_strings
  cargo:rustc-link-lib=absl_strings_internal
  cargo:rustc-link-lib=absl_string_view
  cargo:rustc-link-lib=absl_int128
  cargo:rustc-link-lib=absl_throw_delegate
  cargo:rustc-link-lib=absl_time_zone
  cargo:rustc-link-lib=absl_tracing_internal
  cargo:rustc-link-lib=absl_base
  cargo:rustc-link-lib=rt
  cargo:rustc-link-lib=absl_raw_logging_internal
  cargo:rustc-link-lib=absl_log_severity
  cargo:rustc-link-lib=absl_spinlock_wait
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=GRPC_STATIC
  cargo:rerun-if-env-changed=GRPC_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
  OUT_DIR = Some(/home/nkurtov/code/grpc-rs-2/target/debug/build/grpcio-sys-27d8dc8df354c5a7/out)
  OPT_LEVEL = Some(0)
  TARGET = Some(x86_64-unknown-linux-gnu)
  HOST = Some(x86_64-unknown-linux-gnu)
  cargo:rerun-if-env-changed=CXX_x86_64-unknown-linux-gnu
  CXX_x86_64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CXX_x86_64_unknown_linux_gnu
  CXX_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_CXX
  HOST_CXX = None
  cargo:rerun-if-env-changed=CXX
  CXX = None
  cargo:rerun-if-env-changed=CC_ENABLE_DEBUG_OUTPUT
  RUSTC_WRAPPER = None
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some(true)
  CARGO_CFG_TARGET_FEATURE = Some(fxsr,sse,sse2)
  cargo:rerun-if-env-changed=CXXFLAGS
  CXXFLAGS = None
  cargo:rerun-if-env-changed=HOST_CXXFLAGS
  HOST_CXXFLAGS = None
  cargo:rerun-if-env-changed=CXXFLAGS_x86_64_unknown_linux_gnu
  CXXFLAGS_x86_64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=CXXFLAGS_x86_64-unknown-linux-gnu
  CXXFLAGS_x86_64-unknown-linux-gnu = None
  CARGO_ENCODED_RUSTFLAGS = Some()
  cargo:warning=grpc_wrap.cc: In function 'void grpcwrap_metadata_array_add(grpc_metadata_array*, const char*, size_t, const char*, size_t)':
  cargo:warning=grpc_wrap.cc:175:3: error: 'GPR_ASSERT' was not declared in this scope
  cargo:warning=  175 |   GPR_ASSERT(array->count <= array->capacity);
  cargo:warning=      |   ^~~~~~~~~~
  cargo:warning=grpc_wrap.cc: In function 'const char* grpcwrap_metadata_array_get_key(const grpc_metadata_array*, size_t, size_t*)':
  cargo:warning=grpc_wrap.cc:191:3: error: 'GPR_ASSERT' was not declared in this scope
  cargo:warning=  191 |   GPR_ASSERT(index < array->count);
  cargo:warning=      |   ^~~~~~~~~~
  cargo:warning=grpc_wrap.cc: In function 'const char* grpcwrap_metadata_array_get_value(const grpc_metadata_array*, size_t, size_t*)':
  cargo:warning=grpc_wrap.cc:198:3: error: 'GPR_ASSERT' was not declared in this scope
  cargo:warning=  198 |   GPR_ASSERT(index < array->count);
  cargo:warning=      |   ^~~~~~~~~~
  cargo:warning=grpc_wrap.cc: In function 'void grpcwrap_metadata_array_shrink_to_fit(grpc_metadata_array*)':
  cargo:warning=grpc_wrap.cc:210:3: error: 'GPR_ASSERT' was not declared in this scope
  cargo:warning=  210 |   GPR_ASSERT(array->count <= array->capacity);
  cargo:warning=      |   ^~~~~~~~~~
  cargo:warning=grpc_wrap.cc: In function 'void grpcwrap_channel_args_set_string(grpc_channel_args*, size_t, const char*, const char*)':
  cargo:warning=grpc_wrap.cc:438:3: error: 'GPR_ASSERT' was not declared in this scope
  cargo:warning=  438 |   GPR_ASSERT(args);
  cargo:warning=      |   ^~~~~~~~~~
  cargo:warning=grpc_wrap.cc: In function 'void grpcwrap_channel_args_set_integer(grpc_channel_args*, size_t, const char*, int)':
  cargo:warning=grpc_wrap.cc:447:3: error: 'GPR_ASSERT' was not declared in this scope
  cargo:warning=  447 |   GPR_ASSERT(args);
  cargo:warning=      |   ^~~~~~~~~~
  cargo:warning=grpc_wrap.cc: In function 'void grpcwrap_channel_args_set_pointer_vtable(grpc_channel_args*, size_t, const char*, void*, const grpc_arg_pointer_vtable*)':
  cargo:warning=grpc_wrap.cc:457:3: error: 'GPR_ASSERT' was not declared in this scope
  cargo:warning=  457 |   GPR_ASSERT(args);
  cargo:warning=      |   ^~~~~~~~~~

  --- stderr


  error occurred in cc-rs: command did not execute successfully (status code exit status: 1): LC_ALL="C" "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-gdwarf-4" "-fno-omit-frame-pointer" "-m64" "-I" "/usr/include" "-Werror" "-Wall" "-Wextra" "-std=c++11" "-DGRPC_SYS_SECURE" "-o" "/home/nkurtov/code/grpc-rs-2/target/debug/build/grpcio-sys-27d8dc8df354c5a7/out/a1edd97dd51cd48d-grpc_wrap.o" "-c" "grpc_wrap.cc"


warning: build failed, waiting for other jobs to finish...

@BusyJay
Copy link
Member

BusyJay commented May 19, 2025

Tried provided steps and can't reproduced. GPR_ASSERT is removed in the latest grpc, but the grpc we used (grpc-sys/grpc) still have the macros defined. I guess there is a more latest version of gRPC on your system and get picked up by compiler.

@nikurt
Copy link
Author

nikurt commented May 19, 2025

Yes, I have to compile with GRPCIO_SYS_USE_PKG_CONFIG=1, otherwise I'm getting this error:

% cargo clean && cargo build
...
  [ 24%] Linking CXX static library libabsl_status.a
  [ 24%] Built target status

...

  In file included from /usr/include/c++/15.1.1/cassert:46,
                   from /home/nkurtov/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/grpcio-sys-0.13.0+1.56.2-patched/grpc/third_party/abseil-cpp/absl/container/internal/container_memory.h:18,
                   from /home/nkurtov/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/grpcio-sys-0.13.0+1.56.2-patched/grpc/third_party/abseil-cpp/absl/container/flat_hash_map.h:40,
                   from /home/nkurtov/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/grpcio-sys-0.13.0+1.56.2-patched/grpc/third_party/abseil-cpp/absl/flags/reflection.h:29,
                   from /home/nkurtov/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/grpcio-sys-0.13.0+1.56.2-patched/grpc/third_party/abseil-cpp/absl/flags/reflection.cc:16:
  /home/nkurtov/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/grpcio-sys-0.13.0+1.56.2-patched/grpc/third_party/abseil-cpp/absl/container/internal/container_memory.h: In function 'void* absl::lts_20230125::container_internal::Allocate(Alloc*, size_t)':
  /home/nkurtov/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/grpcio-sys-0.13.0+1.56.2-patched/grpc/third_party/abseil-cpp/absl/container/internal/container_memory.h:66:27: error: 'uintptr_t' does not name a type [-Wtemplate-body]
     66 |   assert(reinterpret_cast<uintptr_t>(p) % Alignment == 0 &&
        |                           ^~~~~~~~~
  /home/nkurtov/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/grpcio-sys-0.13.0+1.56.2-patched/grpc/third_party/abseil-cpp/absl/container/internal/container_memory.h:31:1: note: 'uintptr_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
     30 | #include "absl/utility/utility.h"
    +++ |+#include <cstdint>
     31 | 
  make[3]: *** [third_party/abseil-cpp/absl/flags/CMakeFiles/flags_reflection.dir/build.make:79: third_party/abseil-cpp/absl/flags/CMakeFiles/flags_reflection.dir/reflection.cc.o] Error 1
  make[2]: *** [CMakeFiles/Makefile2:4048: third_party/abseil-cpp/absl/flags/CMakeFiles/flags_reflection.dir/all] Error 2
  make[2]: *** Waiting for unfinished jobs....
  make[1]: *** [CMakeFiles/Makefile2:1417: CMakeFiles/grpc.dir/rule] Error 2
  make: *** [Makefile:267: grpc] Error 2

  thread 'main' panicked at /home/nkurtov/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cmake-0.1.54/src/lib.rs:1119:5:

  command did not execute successfully, got: exit status: 2

  build script failed, must exit now
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

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 a pull request may close this issue.

2 participants