diff options
author | Dan Liew <dan@su-root.co.uk> | 2016-12-12 23:07:22 +0000 |
---|---|---|
committer | Dan Liew <dan@su-root.co.uk> | 2016-12-12 23:07:22 +0000 |
commit | 197d2f0df32a342d90013b7d1434cbae230e68dd (patch) | |
tree | d04291145c37c3110e389b76be70ea9be375eda6 /llvm/tools | |
parent | 88458c31e74ea6d32a2f438d7531814875f438dd (diff) | |
download | bcm5719-llvm-197d2f0df32a342d90013b7d1434cbae230e68dd.tar.gz bcm5719-llvm-197d2f0df32a342d90013b7d1434cbae230e68dd.zip |
[llvm-config] Fix bug where `--libfiles` and `--names` would produce
incorrect output when LLVM is built with `LLVM_BUILD_LLVM_DYLIB`.
`llvm-config` previously produced output like this
```
$ llvm-config --libfiles
/usr/lib/liblibLLVM-4.0svn.so.so
$ llvm-config --libnames
liblibLLVM-4.0svn.so.so
```
The library prefix and shared library extension were added to
the library name twice which was wrong.
I wanted to write a test cases for this but it looks like **all**
`llvm-config` tests were disabled by r260386 so I'll leave this for
now.
Subscribers: llvm-commits, tstellarAMD
Reviewers: beanz, DiamondLovesYou, axw
Differential Revision: https://reviews.llvm.org/D27393
llvm-svn: 289488
Diffstat (limited to 'llvm/tools')
-rw-r--r-- | llvm/tools/llvm-config/llvm-config.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp index c63733f9a8b..4b4a3ea97ab 100644 --- a/llvm/tools/llvm-config/llvm-config.cpp +++ b/llvm/tools/llvm-config/llvm-config.cpp @@ -432,7 +432,15 @@ int main(int argc, char **argv) { const bool Shared) { std::string LibFileName; if (Shared) { - LibFileName = (SharedPrefix + Lib + "." + SharedExt).str(); + if (Lib == DyLibName) { + // Treat the DyLibName specially. It is not a component library and + // already has the necessary prefix and suffix (e.g. `.so`) added so + // just return it unmodified. + assert(Lib.endswith(SharedExt) && "DyLib is missing suffix"); + LibFileName = Lib; + } else { + LibFileName = (SharedPrefix + Lib + "." + SharedExt).str(); + } } else { // default to static LibFileName = (StaticPrefix + Lib + "." + StaticExt).str(); |