llvm-project/llvm
Alexandre Ganea a3036b3863 Re-Re-land: [CodeView] Add full repro to LF_BUILDINFO record
This patch adds the missing information to the LF_BUILDINFO record, which allows for rebuilding a .CPP without any external dependency but the .OBJ itself (other than the compiler).

Some external tools that we are using (Recode, Live++) are extracting the information to reproduce a build without any knowledge of the build system. The LF_BUILDINFO stores a full path to the compiler, the PWD (CWD at program startup), a relative or absolute path to the TU, and the full CC1 command line. The command line needs to be freestanding (not depend on any environment variables). In the same way, MSVC doesn't store the provided command-line, but an expanded version (somehow their equivalent of CC1) which is also freestanding.

For more information see PR36198 and D43002.

Differential Revision: https://reviews.llvm.org/D80833
2020-08-10 13:36:30 -04:00
..
benchmarks
bindings
cmake Revert "[CMake] Simplify CMake handling for zlib" 2020-08-08 17:08:23 -07:00
docs [llvm-symbolizer] Add back --version and add a -v alias 2020-08-10 08:21:43 -07:00
examples
include [BreakFalseDeps][X86] Move operand loop out of X86's getUndefRegClearance and put in the pass. 2020-08-10 10:32:29 -07:00
lib Re-Re-land: [CodeView] Add full repro to LF_BUILDINFO record 2020-08-10 13:36:30 -04:00
projects
resources
runtimes
test Re-Re-land: [CodeView] Add full repro to LF_BUILDINFO record 2020-08-10 13:36:30 -04:00
tools [llvm-symbolizer] Add back --version and add a -v alias 2020-08-10 08:21:43 -07:00
unittests [DebugInfo] Don't error for zero-length arange entries 2020-08-10 14:57:52 +01:00
utils [gn build] Port e2d61ae573 2020-08-10 15:55:00 +00:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.