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

abseil-cpp: Add package #25565

Merged
merged 1 commit into from
Dec 19, 2024
Merged

Conversation

vidplace7
Copy link
Contributor

@vidplace7 vidplace7 commented Dec 16, 2024

Maintainer: me
Compile tested:

Description:
Adds new package abseil-cpp. This is a dependency for many Google C libraries / projects. Notably protobuf >= 22.x, but also: gRPC, tensorflow, and many others.

Pre-requisite in order to update the protobuf package.
https://protobuf.dev/support/migration/#abseil

@vidplace7
Copy link
Contributor Author

CC @BKPepe

@vidplace7 vidplace7 changed the title Add package: abseil-cpp abseil-cpp: Add package Dec 16, 2024
@vidplace7
Copy link
Contributor Author

vidplace7 commented Dec 16, 2024

PowerPC is not a supported platform for abseil-cpp, causing builds/CI to fail on these platforms.

[8/245] Building CXX object absl/base/CMakeFiles/base.dir/internal/unscaledcycleclock.cc.o
FAILED: absl/base/CMakeFiles/base.dir/internal/unscaledcycleclock.cc.o 
#error Must implement UnscaledCycleClock::Frequency()

Should probably append @!powerpc to the DEPENDS

EDIT: Addressed with patches from OpenEmbedded / Void Linux

@vidplace7 vidplace7 force-pushed the libabseil-cpp branch 2 times, most recently from b8ceb54 to 22349b2 Compare December 17, 2024 00:24
@vidplace7 vidplace7 marked this pull request as draft December 17, 2024 01:21
Signed-off-by: Austin Lane <[email protected]>
@vidplace7 vidplace7 marked this pull request as ready for review December 17, 2024 06:49
@commodo
Copy link
Contributor

commodo commented Dec 19, 2024

i just feel like randomly ranting here that C++ is a terrible language, mostly because people tend to write weirdly-complicated code (using template magic), and it eventually can need a ton of RAM just to compile things, which makes it's usage in the embedded space all the more weird (or seemingly out of place)

this PR however, is fine as-is :)

@commodo commodo merged commit bbc02fa into openwrt:master Dec 19, 2024
16 checks passed
@vidplace7
Copy link
Contributor Author

vidplace7 commented Dec 19, 2024

Per @vortexilation #25566 (comment) this addition breaks builds of the node package. I was able to reproduce this failure.

# make package/node/compile V=s
../deps/v8/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc:75:6: error: no declaration matches 'void absl::lts_20240722::container_internal::HashtablezInfo::PrepareForSampling(int64_t, size_t)'

Node implements a bundled abseil-cpp which appears to conflict with the shared abseil-cpp implemented in this package.

CC: @nxhack

@vortexilation
Copy link
Contributor

vortexilation commented Dec 19, 2024

@vidplace7
You need the patch from here (beginning).

About segmentation fault report in that issue, I don't encountered it anymore, please confirm.

You can confirm it with :

make package/node-yarn/host/{clean,compile} -j1 V=s 2>&1 | tee output.log

If it's ended as node-yarn installed then it doesn't segmentation anymore, before it was happened at the process of compiling node-yarn.

@vidplace7
Copy link
Contributor Author

https://github.com/nodejs/node/blob/v22.11.0/deps/v8/DEPS#L358-L361
https://chromium.googlesource.com/external/github.com/abseil/abseil-cpp/+/c0bec1a748..d802708117

@vortexilation NodeJS should probably continue to use it's own bundled abseil-cpp, as it is a "forked" chromium variant with additional google patches applied.

Instead of patching to include the shared absl, node should entirely ignore the abseil-cpp shared package installation.

@vortexilation
Copy link
Contributor

vortexilation commented Dec 19, 2024

@vidplace7
Around 2 weeks ago, I have reported it upstream but still no reply.

[EDIT]
Posted new patch. Please test it.

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