| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
dynamic_lookup for dynamic libs. Style fixes. Patch by glider@google.com
llvm-svn: 145955
|
| |
|
|
|
|
| |
realignment, even with locals with alignment exceeding the ABI guarantee.
llvm-svn: 145909
|
| |
|
|
|
|
| |
backend options are gone.
llvm-svn: 145868
|
| |
|
|
| |
llvm-svn: 145823
|
| |
|
|
| |
llvm-svn: 145651
|
| |
|
|
|
|
|
|
|
| |
it to GNU assembler. In addition, change function getMipsArchFromCPU() so that
it can be reused in ConstructJob().
Patch by Simon Atanasyan.
llvm-svn: 145509
|
| |
|
|
|
|
| |
command (linux-only)
llvm-svn: 145467
|
| |
|
|
| |
llvm-svn: 145453
|
| |
|
|
|
|
|
|
|
|
|
|
| |
the driver.
clang/lib/Driver/Driver.cpp: Don't pass through negative exit status, or parent would be confused.
llvm::sys::Program::Wait(): Suppose 0x8000XXXX and 0xC000XXXX as abnormal exit code and pass it as negative value.
Win32 Exception Handler: Exit with ExceptionCode on an unhandle exception.
llvm-svn: 145389
|
| |
|
|
|
|
| |
PR11444/PR11445.
llvm-svn: 145321
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
semantics and defaults as the corresponding g++ arguments. The historical g++
argument -ftemplate-depth-N is kept for compatibility, but modern g++ versions
no longer document that option.
Add -cc1 argument -fconstexpr-depth N to implement the corresponding
functionality.
The -ftemplate-depth=N part of this fixes PR9890.
llvm-svn: 145045
|
| |
|
|
|
|
| |
Submitted by Andreas Tobler!
llvm-svn: 145041
|
| |
|
|
|
|
|
|
| |
output files that are valid regardless of whether the compilation
succeeded or failed (but not if we crash). Add depfiles to the
failure result file list.
llvm-svn: 145018
|
| |
|
|
|
|
|
| |
- With the current implementation of sys::Program this always printed "2".
- The command execution code will output the right number anyway (including the signal name).
llvm-svn: 144993
|
| |
|
|
| |
llvm-svn: 144869
|
| |
|
|
| |
llvm-svn: 144800
|
| |
|
|
|
|
|
|
|
| |
This is a partial revert of r143846. While cleaning up after a crash is
probably a good idea, we were also deleting .d files if the compilation failed
due to invalid input, which is not the desired behavior. The test is XFAIL'd
until the cleanup code can be reworked to do the right thing.
llvm-svn: 144590
|
| |
|
|
| |
llvm-svn: 144381
|
| |
|
|
|
|
| |
Atanasyan.
llvm-svn: 144358
|
| |
|
|
|
|
| |
diagnostics to a file.
llvm-svn: 144339
|
| |
|
|
|
|
|
|
|
|
|
|
| |
version of Ubuntu. It has a very broken multiarch configuration, and so
we need special logic to handle it correctly. Fixing and testing this
uncovered a few other trivial issues with the logic that are fixed as
well.
I added tests to cover this as it is hard to notice if you install
recent versions of the OS.
llvm-svn: 144165
|
| |
|
|
| |
llvm-svn: 144108
|
| |
|
|
|
|
|
|
|
|
|
|
| |
useful when using Clang as a system-compiler, but its harmless. When
using Clang as a cross-compiler, this can be very handy as quite a few
toolchains ship their libc headers here rather than under
'/usr/include'.
For reference, this is the beginning of my work to also make the Clang
driver more suitable as a cross-compiler.
llvm-svn: 144089
|
| |
|
|
| |
llvm-svn: 144002
|
| |
|
|
| |
llvm-svn: 144001
|
| |
|
|
| |
llvm-svn: 143962
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We don't actually need a separate flag for non-sysrooted paths as the
driver has to manage the sysroot anyways. The driver is not infrequently
adding paths to the header search based on their existence on the
filesystem. For that, it has to add the sysroot anyways, we should pass
it on down to CC1 already joined. More importantly, the driver cannot in
all cases distinguish between sysrooted paths and paths that are
relative to the Clang binary's installation directory. Essentially, we
always need to ignore the system root for these internal header search
options. It turns out in most of the places we were already providing
the system root in the driver, and then another one in CC1 so this fixes
several bugs.
llvm-svn: 143917
|
| |
|
|
|
|
|
| |
Test cases for this and all the rest of the port are still in the works,
but will wait for a fixed computer and post 3.0 merging...
llvm-svn: 143916
|
| |
|
|
|
|
| |
routines on the base toolchain class.
llvm-svn: 143900
|
| |
|
|
|
|
|
|
|
|
| |
toolchain. The logic is mostly generic already, and where possible
should be made more generic. Also, it has no impact other than to expose
a set of methods which each toolchain can then query to setup their
desired configuration. These should be available to toolchains beyond
just Linux.
llvm-svn: 143899
|
| |
|
|
|
|
| |
the same as a directory added further down in the new logic.
llvm-svn: 143897
|
| |
|
|
|
|
|
| |
looks for evidence of a multilib installation, and adds the appropriate
bits to the search paths.
llvm-svn: 143896
|
| |
|
|
|
|
| |
aren't guaranteed to live long enough otherwise.
llvm-svn: 143875
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
detection system that is providing the library paths and crt object
files.
This, modulo any bugs that need to be shaken out, resolves numerous bugs
with how we handle header paths. Here are a few that I know of:
- We no longer need to enumerate all GCC versions searched.
- OpenSUSE searched GCC versions in the wrong order.
- There were typos when selecting various patterns, etc.
- We aren't stating quite some many directories now.
- SysRoot didn't always work in a reasonable way.
I'm working on tests for this, but the tests are making me and Lit sad.
The real testing for this type of driver change is to try it out on
various distributions. I'll hit the common ones right away, and start
more thorough testing tomorrow after some sleep.
llvm-svn: 143874
|
| |
|
|
|
|
| |
path triples. Also order the 32-bit triples a bit more reasonably.
llvm-svn: 143873
|
| |
|
|
|
|
|
| |
the detected GCC installation. This allows us to expose another aspect
of what we detected: the GCC version. This will be used shortly.
llvm-svn: 143871
|
| |
|
|
|
|
| |
This will facilitate further use and recombinations of them.
llvm-svn: 143869
|
| |
|
|
|
|
|
|
| |
directories. This way we stop at the first multiarch directory found on
the system. This achieves the real intended result of pruning
non-existent directories.
llvm-svn: 143866
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a better way. The more I think about it the more worried I am that this
hammer is simply too large. We should only be reaching out to the
filesystem when doing interesting "detection" things, not gratuitously.
Original commit message:
Start pruning down the set of flags passed to CC1 for header search.
This cleans up the CC1 invocations, and reduces the overhead there.
We're still hammering the filesystem looking for the C++ standard
libraries though.
The only reservation I have about this policy is the case of virtualized
files inside of CC1, but it's not clear what the best way to solve that
is. The Driver consistently queries the actual filesystem to make its
decisions. Changing that would be a very large undertaking. It might be
worthwhile, but it's not an immediate goal.
llvm-svn: 143865
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This cleans up the CC1 invocations, and reduces the overhead there.
We're still hammering the filesystem looking for the C++ standard
libraries though.
The only reservation I have about this policy is the case of virtualized
files inside of CC1, but it's not clear what the best way to solve that
is. The Driver consistently queries the actual filesystem to make its
decisions. Changing that would be a very large undertaking. It might be
worthwhile, but it's not an immediate goal.
llvm-svn: 143864
|
| |
|
|
| |
llvm-svn: 143856
|
| |
|
|
|
|
| |
and prevent the diagnostic preprocessor run from writing a depfile.
llvm-svn: 143846
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
edge cases and have better behavior. Specifically, we should actually
prefer the general '4.6' version string over the '4.6.1' string, as
'4.6.2' should be able to replace it without breaking rpaths or any
other place that these paths have been embedded. Debian-based
distributions are already using a path structure with symlinks to
achieve in-place upgrades for patch versions. Now our parsing reflects
this and we select the shorter paths instead of the longer paths.
A separate issue was that we would not parse a leading patch version
number even in the presence of a suffix. The above change makes this
more problematic as it would cause a suffix being added to make us treat
the entire thing as patch-version-agnostic, which it isn't. This changes
the logic to distinguish between '4.4.x' and 4.4.1-x', and retain that
the latter has *some* patch number information. Currently, we always
bias toward the shorter and more canonical version strings. If it
becomes important we can add more Debian like rules to produce sequences
such as '4.4.1b' > '4.4.1' > '4.4.1-rc3' > '4.4.1-rc2' > '4.4.1-pre5',
but I'm very doubtful this will ever matter or be desirable.
I've made the tests for this logic a bit more interesting, and added
some specific tests for logic that is now different.
llvm-svn: 143841
|
| |
|
|
|
|
|
|
| |
variable to begin with... As I'm planning to add include root
information to this object, this would have caused confusion. It didn't
even *actually* hold the include root by the time we were done with it.
llvm-svn: 143840
|
| |
|
|
|
|
| |
Michael!
llvm-svn: 143839
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
toolchain instead of merely using it in the constructor. This will allow
us to query it when building include paths as well as the file search
paths built in the constructor. I've lifted as little of it as I could
into the header file.
Eventually this will likely sink down into some of the Generic
toolchains and be used on more platforms, but I'm starting on Linux so
I can work out all the APIs needed there, where it is easiest to test
and we have the most pressing need.
llvm-svn: 143838
|
| |
|
|
|
|
|
|
|
| |
headers. As llvm-gcc is dead, and I have no idea if this ever really
worked, I think it's time for it to go. More importantly, it makes it
harder to generalize the include search logic. If someone really wants
these to work, they can set the CPLUS_INCLUDE_PATH environment variable.
llvm-svn: 143836
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the first (and diff-noisiest) step to making Linux header searching
tremendously more principled and less brittle. Note that this step
should have essentially no functional impact. We still search the exact
same set of paths in the exact same order. The only change here is where
the code implementing such a search lives.
This has one obvious negative impact -- we now pass a ludicrous number
of flags to the CC1 layer. That should go away as I re-base this logic
on the logic to detect a GCC installation. I want to do this in two
phases so the bots can tell me if this step alone breaks something, and
so that the diffs of the refactoring make more sense.
llvm-svn: 143822
|
| |
|
|
| |
llvm-svn: 143816
|
| |
|
|
|
|
|
| |
obviously only used during compilation.
rdar://10386708
llvm-svn: 143813
|