Port absl config to gyp
targos opened this issue · comments
https://github.com/nodejs/node-v8/actions/runs/1256415634
In file included from ../deps/v8/src/base/platform/mutex.h:10,
from ../deps/v8/src/base/platform/condition-variable.h:10,
from ../deps/v8/src/libplatform/default-foreground-task-runner.h:13,
from ../deps/v8/src/libplatform/default-foreground-task-runner.cc:5:
../deps/v8/src/base/optional.h:8:10: fatal error: absl/types/optional.h: No such file or directory
8 | #include "absl/types/optional.h"
| ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
This is an external dep to V8 that we'll have to pull.
Main BUILD.gn: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+/refs/heads/main/BUILD.gn
I probably won't have time to work on this in the near future.
I disabled the canary update GitHub action. It won't work until this is done.
Is this likely to block V8 9.5 for Node.js 17?
No, this is blocking V8 9.6
I've opened node-core-utils PR to add abseil to the fetched V8 dependencies on V8 updates: nodejs/node-core-utils#565
https://github.com/nodejs/node-v8/actions/runs/1256415634
In file included from ../deps/v8/src/base/platform/mutex.h:10, from ../deps/v8/src/base/platform/condition-variable.h:10, from ../deps/v8/src/libplatform/default-foreground-task-runner.h:13, from ../deps/v8/src/libplatform/default-foreground-task-runner.cc:5: ../deps/v8/src/base/optional.h:8:10: fatal error: absl/types/optional.h: No such file or directory 8 | #include "absl/types/optional.h" | ^~~~~~~~~~~~~~~~~~~~~~~ compilation terminated.
FWIW this particular use was reverted in v8/v8@d67f060
https://github.com/nodejs/node-v8/actions/runs/1256415634
In file included from ../deps/v8/src/base/platform/mutex.h:10, from ../deps/v8/src/base/platform/condition-variable.h:10, from ../deps/v8/src/libplatform/default-foreground-task-runner.h:13, from ../deps/v8/src/libplatform/default-foreground-task-runner.cc:5: ../deps/v8/src/base/optional.h:8:10: fatal error: absl/types/optional.h: No such file or directory 8 | #include "absl/types/optional.h" | ^~~~~~~~~~~~~~~~~~~~~~~ compilation terminated.
FWIW this particular use was reverted in v8/v8@d67f060
Right. It re-enabled the job as it seems V8 doesn't use absl
anywhere after this revert.
Closing as this didn't show up again after almost a year.
It's back:
In file included from ../../deps/v8/src/objects/source-text-module.h:11:
../../deps/v8/src/zone/zone-containers.h:20:10: fatal error: 'absl/container/flat_hash_map.h' file not found
#include "absl/container/flat_hash_map.h"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
[1161/3998] CC obj/tools/icu/gen/icudata.icudt73_dat.o
ninja: build stopped: subcommand failed.
make: *** [node] Error 1
I disabled https://github.com/nodejs/node-v8/actions/workflows/update-canary.yml. No point running a daily workflow that's guaranteed to fail until we fix this.
I went very manual and added a static library build for v8_abseil with the dependency tree of flat_hash_map
and flat_hash_set
in 1b0759c. It's probably overkill and might break in the future if V8 starts depending on other headers, but it works 🤷🏻.