commit | fab2eb7b8aa6fe35035628d409ef1e75b8a489b4 | [log] [tgz] |
---|---|---|
author | Scott Graham <scottmg@chromium.org> | Thu Jun 28 09:14:53 2018 -0700 |
committer | Commit Bot <commit-bot@chromium.org> | Thu Jun 28 16:53:51 2018 +0000 |
tree | 74d1eb01ede0c3abcbd1b3d22bb4f187a9c5da52 | |
parent | 04983e551e8bafaecc25bb9b5080d5eff9c55215 [diff] |
Build linux binaries against sid sysroot Additionally, this requires building against libstdc++ because there's no libc++ in the sysroot and we aren't currently set up to build libc++ locally. Because this has broken ChromeOS, use libstdc++ for now and resolve libc++ build later, if necessary. Unfortunately this doesn't seem to have changed the readelf -d output, but hopefully it will help CrOS? I'm not sure. Before: [(0c5d936b...)] scottmg@around:/work/gn$ readelf -d out/gn Dynamic section at offset 0x222270 contains 31 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x0000000000000001 (NEEDED) Shared library: [ld-linux-x86-64.so.2] 0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0] 0x0000000000000001 (NEEDED) Shared library: [librt.so.1] 0x0000000000000001 (NEEDED) Shared library: [libatomic.so.1] After: [linux-sysroot] scottmg@around:/work/gn$ readelf -d out/gn Dynamic section at offset 0x25cc68 contains 31 entries: Tag Type Name/Value 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] 0x0000000000000001 (NEEDED) Shared library: [ld-linux-x86-64.so.2] 0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0] 0x0000000000000001 (NEEDED) Shared library: [librt.so.1] 0x0000000000000001 (NEEDED) Shared library: [libatomic.so.1] ... Bug: chromium:855791 Change-Id: I1fd8574cdfa5fd856e0fb27d734d15135a00b99a Reviewed-on: https://gn-review.googlesource.com/1900 Reviewed-by: Dirk Pranke <dpranke@chromium.org> Commit-Queue: Scott Graham <scottmg@chromium.org>
GN is a meta-build system that generates build files for Ninja.
git clone https://gn.googlesource.com/gn cd gn python build/gen.py ninja -C out
On Windows, it is expected that cl.exe
, link.exe
, and lib.exe
can be found in PATH
, so you'll want to run from a Visual Studio command prompt, or similar.
On Linux and Mac, the default compiler is clang++
, a recent version is expected to be found in PATH
. This can be overridden by setting CC
, CXX
, and AR
.
GN uses Gerrit for code review. The short version of how to patch is:
... edit code ... ninja -C out && out/gn_unittests
Then, to upload a change for review:
git commit git push origin HEAD:refs/for/master # This uploads for review.
When revising a change, use:
git commit --amend git push origin HEAD:refs/for/master
which will add the new changes to the existing code review, rather than creating a new one.
TODO: AUTHORS, CLA, etc.