aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.hpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-09-12 00:51:06 -0700
committerAndrew Kelley <andrew@ziglang.org>2020-09-12 00:51:06 -0700
commit03a23418ff13e6ff64cdeed3ef4b54f99c533d88 (patch)
tree90b53580d9f1fe74e8598f10dc86dfc490ee230e /src/codegen.hpp
parent8374be1a1c6cba12ec01d7a6301a8da0a00907f4 (diff)
downloadzig-03a23418ff13e6ff64cdeed3ef4b54f99c533d88.tar.gz
zig-03a23418ff13e6ff64cdeed3ef4b54f99c533d88.zip
stage2: linking with LLD and building glibc static CRT files
* implement --debug-cc and --debug-link * implement C source files having extra flags - TODO a way to pass them on the CLI * introduce the Directory abstraction which contains both an open file descriptor and a file path name. The former is preferred but the latter is needed when communicating paths over a command line (e.g. to Clang or LLD). * use the cache hash to choose an artifact directory - TODO: use separate cache hash instances for the zig module and each C object * Module: introduce the crt_files table for keeping track of built libc artifacts for linking. * Add the ability to build 4/6 of the glibc static CRT lib files. * The zig-cache directory is now passed as a parameter to Module. * Implement the CLI logic of -femit-bin and -femit-h - TODO: respect -fno-emit-bin - TODO: the emit .h feature * Add the -fvalgrind, -fstack-check, and --single-threaded CLI options. * Implement the logic for auto detecting whether to enable PIC, sanitize-C, stack-check, valgrind, and single-threaded. * Properly add PIC args (or not) to clang argv. * Implement renaming clang-compiled object files into their proper place within the cache artifact directory. - TODO: std lib needs a proper higher level abstraction for std.os.renameat. * Package is cleaned up to use the "Unmanaged" StringHashMap and use the new Directory abstraction. * Clean up zig lib directory detection to make proper use of directory handles. * Linker code invokes LLD. - TODO properly deal with the stdout and stderr that we get from it and expose diagnostics from the Module API that match the expected error message format. * Delete the bitrotted LLVM C ABI bindings. We'll resurrect just the functions we need as we introduce dependencies on them. So far it only has ZigLLDLink in it. * Remove dead timer code. * `zig env` now prints the path to the zig executable as well.
Diffstat (limited to 'src/codegen.hpp')
0 files changed, 0 insertions, 0 deletions