Roll third_party/llvm-libc/src/ 57ec00816..2025a0bcb (41 commits)

https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/57ec00816a5d..2025a0bcb00b

$ git log 57ec00816..2025a0bcb --date=short --no-merges --format='%ad %ae %s'
2026-05-18 jbailey [libc][NFC] Fix #endif comments in hdr/ proxy headers (#198313)
2026-05-18 jbailey [libc] Add POSIX regex stub implementation and build infrastructure (#196995)
2026-05-18 pavel [libc] Enable arpa/inet.h entrypoints in overlay mode (#198270)
2026-05-18 huberjn [libc] Demote compiler check error to a warning (#198033)
2026-05-18 pavel [libc] Disable newly added -Wfenv-access clang warning (#198303)
2026-05-18 jbailey [libc][ctype] fix macro guard collisions in locale-aware headers (#198279)
2026-05-18 pavel [libc] Introduce a typed syscall wrapper and use it in mmap (#197459)
2026-05-18 thakis [libc][math] Fix pow() subnormal base exponent computation (#198134)
2026-05-15 mikhail [libc] Make cpp::byte alias-safe (#194171)
2026-05-16 luca.barbato [libc] Fix install-libc to work with LLVM_LIBC_FULL_BUILD=OFF (#197366)
2026-05-15 lntue [libc] Add config option to use memory builtin functions. (#197977)
2026-05-15 michaelrj [libc] Reduce number of iterations in threading tests. (#198030)
2026-05-15 michaelrj [libc] Fix shadowing in printf (#197985)
2026-05-15 michaelrj [libc] implement ungetwc (#196162)
2026-05-15 michaelrj [libc] implement fgetwc (#196159)
2026-05-15 michaelrj [libc] implement getwc (#196163)
2026-05-15 michaelrj [libc] implement putwchar (#196166)
2026-05-15 jbailey [libc] Disable GCC 12 waccess passes to fix ICE in environ_internal (#197916)
2026-05-15 pavel [libc] Fix truncation warning/error in #197694 (#197889)
2026-05-15 pavel [libc] Add some checks to the mmap wrapper (#197694)
2026-05-14 lntue [libc] Fix LIBC_HAS_CONSTANT_EVALUATION macro and re-add LIBC_ENABLE_CONSTEXPR control. (#197774)
2026-05-14 125150223+Holo-xy [libc][hdrgen] Extend guard attribute support for types (#191663)
2026-05-14 jinsong.ji [libc][math] Fix UBSan errors from left-shifting negative values (#197747)
2026-05-14 jbailey [libc] Restore sysconf to default entrypoints (#197696)
2026-05-14 aidengrossman [libc] Include correct headers in type_traits (#197691)
2026-05-14 lntue [libc] Fix shared math for gcc-7 or older compatibility. (#197476)
2026-05-14 123718855+udaykiriti [libc] prefer *at syscalls in sys/stat wrappers (#195792)
2026-05-14 pavel [libc] Remove legacy SYS_socketcall fallbacks (#197189)
2026-05-14 simon.tatham [libc][math] Fix exp10m1f(-0) in SKIP_ACCURATE_PASS mode (#197650)
2026-05-14 pavel [libc] Implement getsockname and getpeername (#197196)
2026-05-14 pavel [libc] Implement the linux-specific memfd_create syscall wrapper (#197439)
2026-05-14 jbailey [libc] Remove sysconf from Scudo integration test entrypoints (#197639)
2026-05-14 pavel [libc] Fix for SYS_mmap2 offset computation (#197413)
2026-05-14 jbailey [libc] Add LLVM_LIBC_ENABLE_EXPERIMENTAL_ENTRYPOINTS CMake flag (#197537)
2026-05-14 ge.jin Fix libc building errors for SPIRV target (#197381)
2026-05-13 thakis [libc] Build with -Wshadow (#197516)
2026-05-13 yifanzhu [libc][mutex] add error checking support (#197035)
2026-05-13 lntue Reapply "[libc][NFC] Propagate LIBC_CONSTEXPR qualifier for those depending on bitt_cast." (#197462) (#197498)
2026-05-13 rupprecht Revert "Reland "[libc][NFC] Propagate LIBC_CONSTEXPR qualifier for those depending on bit_cast."" (#197492)
2026-05-13 60100307+bassiounix Reland "[libc][NFC] Propagate LIBC_CONSTEXPR qualifier for those depending on bit_cast." (#197479)
2026-05-13 60100307+bassiounix Revert "[libc][NFC] Propagate LIBC_CONSTEXPR qualifier for those depending on bitt_cast." (#197462)

Created with:
  roll-dep third_party/llvm-libc/src

Bug: 510499297
Change-Id: I1ed6307861cf070ec00ca8b056b077dfa2688c02
Reviewed-on: https://chromium-review.googlesource.com/c/v8/node-ci/+/7857289
Auto-Submit: Nico Weber <thakis@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
1 file changed
tree: 8af8f91245cf0fbd793ed61ea0db1fb71f76f87f
  1. build_overrides/
  2. gn/
  3. node_tests/
  4. testing/
  5. third_party/
  6. tools/
  7. .gitignore
  8. .gn
  9. BUILD.gn
  10. codereview.settings
  11. DEPS
  12. LICENSE
  13. Makefile
  14. README.md
README.md

Node.js built with GN

This project is a set of dependency and build configurations to build Node.js with GN.

Background

V8 was originally built with SCons. Following Chromium, it made the switch to GYP, completing around 2012. That was when Node.js started its success story. However, again following Chromium, V8 made the switch to GN, completing in 2016. So far, Node.js has hesitated in adopting GN. One of the reasons is its now established native modules ecosystem that relies on GYP for build configuration.

Electron, having both Chromium and Node.js as its dependencies, adopted GN. Many files in this repository have been derived from the Electron project, with appropriate changes to avoid the need for forking files, to implement a standalone build, or to fix test failures.

Some reading material:

Instructions

Checking out source

Get depot_tools first.

mkdir node-ci
cd node-ci
fetch node-ci

Alternatively, you can

mkdir node-ci
cd node-ci
git clone https://chromium.googlesource.com/v8/node-ci
gclient config https://chromium.googlesource.com/v8/node-ci --unmanaged

Build

cd node-ci
make deps
make node

Test

JOBS=4 make test

Advanced build configurations

For more advanced build options, check out tools/gn-gen.py --help.

Update dependencies

To update a dependency, e.g. V8 or Node.js, use gclient to update DEPS.

gclient setdep --var=v8_revision=<updated-git-hash>

To apply changes, e.g. for local testing, use git:

cd v8
git remote add local-v8 <path-to-v8-checkout>/.git
git fetch local-v8
git checkout local-v8/<your-branch>

Project priorities

  • Stay as slim as possible. By avoiding to fork files from dependencies, future maintenance becomes less a hassle.
  • Pull necessary sources as dependencies rather than checking in the sources.
  • Stay as up-to-date as possible. The point of this is to be able to build with newest versions of dependencies, including Node.js, V8, and ICU.
  • Simplicity. It should be easy to get up and running.

Not yet implemented

  • Support building on Windows. The current configurations have been tested for Linux and Mac.
  • Platform-specific OpenSSL build configurations. The current build only supports the slowest platform-independent configuration.

Explicit non-goals

  • To translate every configuration from the GYP build.
  • To support platforms not supported by Chromium.
  • To replace Node.js' test runner with the one used by V8.
  • To use GN to build native modules.

Advantages over upstream Node.js

  • Proper dependency management. Upgrading dependencies is just a small change in DEPS.
  • No need to port V8 changes to GYP.
  • Availability of sanitizers.
  • Ability to use GN features such as jumbo builds.
  • Toolchain to build is bundled as dependency.