Commit Graph

7 Commits

Author SHA1 Message Date
Keir Mierle
49caa10484 Fix macOS build by adding bloaty config
This fixes the macOS host build by adding a bloaty config. However, the
bloaty config isn't quite right; followup work will be needed to decide
if it makes sense to have Mach-O bloat reports.

Change-Id: I4148c85d73a1b8dbd02b1772688259dbe59e950e
2019-11-20 22:38:17 +00:00
Armando Montanez
68de071c7d Add pw_dumb_io with host backend
This change introduces the pw_dumb_io module, a module intended for
pigweed testing and bringup. pw_dumb_io includes a facade, and a backend
implementation using stdio (pw_dumb_io_stdio).

Change-Id: I5d9ca3c256c7e7c6d60cc07292aaead808a7f3dd
2019-11-16 00:14:15 +00:00
Alexei Frolov
e2016763a8
Add pw_bloat module
This change adds a size reporting module named pw_bloat. The module
uses Bloaty McBloatface to generate size report cards for binaries. It
provides a GN template which defines an action to perform a size diff
on a group of binary targets.

Example output:

                       simple_bloat
                       ────────────
┌────────────────┬──────────────┬────────┬───────┬───────┐
│      Label     │    Segment   │ Before │ Delta │ After │
├════════════════┼══════════════┼════════┼═══════┼═══════┤
│     Add a loop │ EXAMPLE CODE │    429 │   +32 │   461 │
│                │ EXAMPLE  RAM │    576 │    +8 │   584 │
├────────────────┼──────────────┼────────┼───────┼───────┤
│ Add a function │ EXAMPLE CODE │    429 │   +16 │   445 │
│                │ EXAMPLE  RAM │    576 │    +8 │   584 │
└────────────────┴──────────────┴────────┴───────┴───────┘

Change-Id: I14b3d383ec450bc6d017bf5d0111e266b0a3c368
2019-11-14 14:29:28 -08:00
Wyatt Hepler
09517ed9b8 Have targets set pw_unit_test_create_run_targets
- Move pw_unit_test_create_run_targets to pw_vars_default.gni so that
  targets can set it.
- Keep the default false, but set it to true for the host targets.

Change-Id: Ia1af584642d0dd4d16b801b2ee4a8bb1a78c286e
2019-11-14 12:45:18 -08:00
Wyatt Hepler
cca0daf7b1 Clang toolchain Linux support
- Update host_clang to work on Linux: switch to -Map and --gc-sections
  options
- Make pw_target_toolchain a build arg for Linux and macOS targets.
  Default to gcc on Linux, clang on macOS.
- Rename x86_linux_gcc to host_gcc.

Change-Id: I72eef9ba9398a331f6567b68ad404092186eb15b
2019-11-14 12:34:15 -08:00
Keir Mierle
586719197a pw_toolchain: Start host_clang toolchain
This adds a generic host_clang toolchain, targeting hosts running Mac and
Linux to start, and likely Windows later.

For now, on Mac the default toolchain is set to host_clang_og

Change-Id: Iea457c61586930d509439c6616574c9a74919433
2019-11-14 18:26:54 +00:00
Alexei Frolov
e899dcf4a3 Start build target config files
This change defines the build target system used by Pigweed, where the
build is configured using per-target globals imported from a target .gni
file. A single build arg specifying the path to the target file replaces
the previous args.

A default build variables file is provided in the Pigweed root. This
file defines and documents all of the build variables used by Pigweed.

A top-level targets directory is added to define the targets used by
Pigweed developers. Currently, only a "host" target is added, which
configures the build for a development system based on the host OS.

Change-Id: Ie62b8d41e5789bfe7fffe20462160142c79076c4
2019-11-14 00:34:25 +00:00