# stage2: more progress moving \`zig cc\` to stage2 · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/4056bb92e6d6ca3d2ab8f49b4ac83c01fb25bd11)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: 4056bb92e6d6ca3d2ab8f49b4ac83c01fb25bd11

Requested commit: 4056bb92e6d6ca3d2ab8f49b4ac83c01fb25bd11

Commit: 4056bb92e6d6ca3d2ab8f49b4ac83c01fb25bd11

Tree: 3992ca209d9759c7a041c1c9f58e8572081051da

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

```
stage2: more progress moving `zig cc` to stage2

 * std.cache_hash exposes Hasher type
 * std.cache_hash makes hasher_init a global const
 * std.cache_hash supports cloning so that clones can share the same
   open manifest dir handle as well as fork from shared hasher state
 * start to populate the cache_hash for stage2 builds
 * remove a footgun from std.cache_hash add function
 * get rid of std.Target.ObjectFormat.unknown
 * rework stage2 logic for resolving output artifact names by adding
   object_format as an optional parameter to std.zig.binNameAlloc
 * support -Denable-llvm in stage2 tests
 * Module supports the use case when there are no .zig files
 * introduce c_object_table and failed_c_objects to Module
 * propagate many new kinds of data from CLI into Module and into
   linker.Options
 * introduce -fLLVM, -fLLD, -fClang and their -fno- counterparts.
   closes #6251.
   - add logic for choosing when to use LLD or zig's self-hosted linker
 * stub code for implementing invoking Clang to build C objects
 * add -femit-h, -femit-h=foo, and -fno-emit-h CLI options

```

## Parents

- [472ee184862415d1f2651d81d248f3000032932d](https://git.cafe/gitcafe/zig/commit/472ee184862415d1f2651d81d248f3000032932d?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/4056bb92e6d6ca3d2ab8f49b4ac83c01fb25bd11?format=markdown)
