Update Linux build docs to remove GYP references.
This removes most references to the GYP build from files in docs starting with "linux_". Review URL: https://codereview.chromium.org/1877013002 Cr-Commit-Position: refs/heads/master@{#386526}
This commit is contained in:
@ -17,9 +17,8 @@ Here's an overview of the steps you'll run:
|
|||||||
|
|
||||||
1. **gclient**. A checkout involves pulling nearly 100 different SVN
|
1. **gclient**. A checkout involves pulling nearly 100 different SVN
|
||||||
repositories of code. This process is managed with a tool called `gclient`.
|
repositories of code. This process is managed with a tool called `gclient`.
|
||||||
1. **GN** / **gyp**. Cross-platform build configuration systems (GYP is the
|
1. **GN**. Cross-platform build configuration system. It generates ninja
|
||||||
older one, GN is the one being transitioned to). It generates ninja build
|
build files. Running `gn` is analogous to the `./configure` step seen in
|
||||||
files. Running `gn`/`gyp` is analogous to the `./configure` step seen in
|
|
||||||
most other software.
|
most other software.
|
||||||
1. **ninja**. The actual build itself uses `ninja`. A prebuilt binary is in
|
1. **ninja**. The actual build itself uses `ninja`. A prebuilt binary is in
|
||||||
`depot_tools` and should already be in your path if you followed the steps
|
`depot_tools` and should already be in your path if you followed the steps
|
||||||
@ -42,7 +41,7 @@ your checkout.
|
|||||||
|
|
||||||
## Compilation
|
## Compilation
|
||||||
|
|
||||||
The weird "`src/`" directory is an artifact of `gclient`. Start with:
|
The "`src/`" directory is an artifact of `gclient`. Start with:
|
||||||
|
|
||||||
$ cd src
|
$ cd src
|
||||||
|
|
||||||
@ -89,19 +88,13 @@ to see what ninja is actually doing.
|
|||||||
|
|
||||||
### Clean builds
|
### Clean builds
|
||||||
|
|
||||||
If you're using GN, you can clean the build directory (`out/Default` in this
|
You can clean the build directory (`out/Default` in this example):
|
||||||
example):
|
|
||||||
|
|
||||||
gn clean out/Default
|
gn clean out/Default
|
||||||
|
|
||||||
This will delete all files except a bootstrap ninja file necessary for
|
This will delete all files except a bootstrap ninja file necessary for
|
||||||
recreating the build.
|
recreating the build.
|
||||||
|
|
||||||
If you're using GYP, do:
|
|
||||||
|
|
||||||
rm -rf out
|
|
||||||
gclient runhooks
|
|
||||||
|
|
||||||
Ninja can also be used to clean a build with `ninja -C out/Debug -t clean` but
|
Ninja can also be used to clean a build with `ninja -C out/Debug -t clean` but
|
||||||
this will not be as complete as the above methods.
|
this will not be as complete as the above methods.
|
||||||
|
|
||||||
|
@ -156,17 +156,6 @@ Note 3: some of these packages might not be explicitly necessary as they come as
|
|||||||
dependencies, there is no harm in including them however.
|
dependencies, there is no harm in including them however.
|
||||||
***
|
***
|
||||||
|
|
||||||
*** note
|
|
||||||
Note 4: to build on 64 bit systems use, instead of
|
|
||||||
`GYP_DEFINES=target_arch=x64`, as mentioned in the general notes for building on
|
|
||||||
64 bit:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
export GYP_DEFINES="target_arch=x64"
|
|
||||||
gclient runhooks --force
|
|
||||||
```
|
|
||||||
***
|
|
||||||
|
|
||||||
#### Gentoo setup
|
#### Gentoo setup
|
||||||
|
|
||||||
emerge www-client/chromium
|
emerge www-client/chromium
|
||||||
|
@ -38,11 +38,6 @@ gn args:
|
|||||||
|
|
||||||
target_cpu = "arm"
|
target_cpu = "arm"
|
||||||
|
|
||||||
Or the following gyp settings:
|
|
||||||
|
|
||||||
GYP_CROSSCOMPILE=1
|
|
||||||
GYP_DEFINES="target_arch=arm"
|
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
### Automated Build and Testing
|
### Automated Build and Testing
|
||||||
|
@ -270,8 +270,8 @@ https://groups.google.com/a/chromium.org/forum/#!searchin/chromium-dev/gdb-add-i
|
|||||||
for more info.
|
for more info.
|
||||||
|
|
||||||
You can improve GDB load time significantly at the cost of link time by
|
You can improve GDB load time significantly at the cost of link time by
|
||||||
plitting symbols from the object files. In GN, set `use_debug_fission=false` in
|
splitting symbols from the object files. In GN, set `use_debug_fission=false` in
|
||||||
your "gn args". In GYP add `linux_use_debug_fission=0` to your `GYP_DEFINES`.
|
your "gn args".
|
||||||
|
|
||||||
## Core files
|
## Core files
|
||||||
|
|
||||||
@ -428,10 +428,9 @@ some instances in webkit that are ignorable. On systems with prelink and address
|
|||||||
space randomization (e.g. Fedora), you may also see valgrind errors in libstdc++
|
space randomization (e.g. Fedora), you may also see valgrind errors in libstdc++
|
||||||
on startup and in gnome-breakpad.
|
on startup and in gnome-breakpad.
|
||||||
|
|
||||||
Valgrind doesn't seem to play nice with tcmalloc. To disable tcmalloc run GYP
|
Valgrind doesn't seem to play nice with tcmalloc. To disable tcmalloc set the GN arg:
|
||||||
|
|
||||||
$ cd $CHROMIUM_ROOT/src
|
use_allocator="none"
|
||||||
$ build/gyp_chromium -Duse_allocator=none
|
|
||||||
|
|
||||||
and rebuild.
|
and rebuild.
|
||||||
|
|
||||||
|
@ -280,6 +280,10 @@ requires the Eclipse knows correct include paths and pre-processor definitions.
|
|||||||
After fighting with with a number of approaches, I've found the below to work
|
After fighting with with a number of approaches, I've found the below to work
|
||||||
best for me.
|
best for me.
|
||||||
|
|
||||||
|
*The instrcutions below are out-of-date since it references GYP. Please see
|
||||||
|
`gn help gen` for how to generate an Eclipse CDT file in GN. If you use
|
||||||
|
Eclipse and make it work, please update this documentation.*
|
||||||
|
|
||||||
1. From a shell in your src directory, run
|
1. From a shell in your src directory, run
|
||||||
`GYP_GENERATORS=ninja,eclipse build/gyp_chromium`
|
`GYP_GENERATORS=ninja,eclipse build/gyp_chromium`
|
||||||
1. This generates <project root>/out/Debug/eclipse-cdt-settings.xml which
|
1. This generates <project root>/out/Debug/eclipse-cdt-settings.xml which
|
||||||
|
@ -66,13 +66,8 @@ enormous (nearly 1gb in debug mode) files. If you dynamically link, you save a
|
|||||||
lot of time linking for a bit of time during startup, which is fine especially
|
lot of time linking for a bit of time during startup, which is fine especially
|
||||||
when you're in an edit/compile/test cycle.
|
when you're in an edit/compile/test cycle.
|
||||||
|
|
||||||
Run gyp with the `-Dcomponent=shared_library` flag to put it in this
|
Add the flag `is_component_build=true` in your build args (to edit build args
|
||||||
configuration. (Or set those flags via the `GYP_DEFINES` environment variable.)
|
run `gn args out/foo` where `out/foo` is your build directory).
|
||||||
|
|
||||||
e.g.
|
|
||||||
|
|
||||||
build/gyp_chromium -D component=shared_library
|
|
||||||
ninja -C out/Debug chrome
|
|
||||||
|
|
||||||
See the
|
See the
|
||||||
[component build page](http://www.chromium.org/developers/how-tos/component-build)
|
[component build page](http://www.chromium.org/developers/how-tos/component-build)
|
||||||
@ -103,17 +98,8 @@ If you're working on UI bits where you don't care to trace into WebKit you can
|
|||||||
cut down the size and slowness of debug builds significantly by building WebKit
|
cut down the size and slowness of debug builds significantly by building WebKit
|
||||||
without debug symbols.
|
without debug symbols.
|
||||||
|
|
||||||
Set the gyp variable `remove_webcore_debug_symbols=1`, either via the
|
Set the GN build arg `remove_webcore_debug_symbols=true` (to edit build args
|
||||||
`GYP_DEFINES` environment variable, the `-D` flag to gyp, or by adding the
|
run `gn args out/foo` where `out/foo` is your build directory).
|
||||||
following to `~/.gyp/include.gypi`:
|
|
||||||
|
|
||||||
```
|
|
||||||
{
|
|
||||||
'variables': {
|
|
||||||
'remove_webcore_debug_symbols': 1,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Tune ccache for multiple working directories
|
## Tune ccache for multiple working directories
|
||||||
|
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
# Linux `SUID` Sandbox
|
# Linux `SUID` Sandbox
|
||||||
|
|
||||||
|
*IMPORTANT NOTE: The Linux SUID sandbox is almost but not completely removed.
|
||||||
|
See https://bugs.chromium.org/p/chromium/issues/detail?id=598454
|
||||||
|
This page is mostly out-of-date.*
|
||||||
|
|
||||||
With [r20110](https://crrev.com/20110), Chromium on Linux can now sandbox its
|
With [r20110](https://crrev.com/20110), Chromium on Linux can now sandbox its
|
||||||
renderers using a `SUID` helper binary. This is one of
|
renderers using a `SUID` helper binary. This is one of
|
||||||
[our layer-1 sandboxing solutions](linux_sandboxing.md).
|
[our layer-1 sandboxing solutions](linux_sandboxing.md).
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
# Linux SUID Sandbox Development
|
# Linux SUID Sandbox Development
|
||||||
|
|
||||||
|
*IMPORTANT NOTE: The Linux SUID sandbox is almost but not completely removed.
|
||||||
|
See https://bugs.chromium.org/p/chromium/issues/detail?id=598454
|
||||||
|
This page is mostly out-of-date.*
|
||||||
|
|
||||||
For context see [LinuxSUIDSandbox](linux_suid_sandbox.md)
|
For context see [LinuxSUIDSandbox](linux_suid_sandbox.md)
|
||||||
|
|
||||||
We need a SUID helper binary to turn on the sandbox on Linux.
|
We need a SUID helper binary to turn on the sandbox on Linux.
|
||||||
|
Reference in New Issue
Block a user