On Wed, Dec 21, 2016 at 6:10 PM, Teresa Johnson <tejohnson at google.com> wrote:> Or maybe it is picking up a different libstdc++ from somewhere else on your > system? > Here's the check from the cmake file: > > # There doesn't seem to be an easy way to check the library version. Instead, > # we rely on the fact that std::set did not have the allocator constructor available > # until version 4.9 > check_cxx_source_compiles(" > #include <set> > std::set<int> s = std::set<int>(std::allocator<int>()); > int main() { return 0; }"I cannot make g++ 6.2.1 fail to build the test snippet with or without the archlinux-default/custom CXXFLAGS and LDFLAGS. Time to find the real error and what's happening.> LLDB_USING_LIBSTDCXX_4_9) > > So the version check isn't precise, but unless libstdc++ 6.2.1 doesn't have this > interface available, which seems unlikely, something else is going wrong.That seems risky to ignore then. I guess I'll postpone the rebuild until this can be resolved/explained. Also because ideally I want to do it that way, and it's a goal for a future default build config of llvm as discussed recently here, I'd prefer to build and then use the in-tree libc++. But it doesn't seem like -DLLVM_ENABLE_LIBCXX has that effect. Shouldn't it or if not why can't it? I would certainly welcome and find natural that the in-tree libc++ is used when LLVM_ENABLE_LIBCXX=ON. The need for a pre-built and installed libc++ is less practical.
On Thu, Dec 22, 2016 at 2:45 AM, Carsten Mattner <carstenmattner at gmail.com> wrote:> On Wed, Dec 21, 2016 at 6:10 PM, Teresa Johnson <tejohnson at google.com> > wrote: > > > Or maybe it is picking up a different libstdc++ from somewhere else on > your > > system? > > Here's the check from the cmake file: > > > > # There doesn't seem to be an easy way to check the library version. > Instead, > > # we rely on the fact that std::set did not have the allocator > constructor available > > # until version 4.9 > > check_cxx_source_compiles(" > > #include <set> > > std::set<int> s = std::set<int>(std::allocator<int>()); > > int main() { return 0; }" > > I cannot make g++ 6.2.1 fail to build the test snippet with > or without the archlinux-default/custom CXXFLAGS and LDFLAGS. > > Time to find the real error and what's happening. > > > LLDB_USING_LIBSTDCXX_4_9) > > > > So the version check isn't precise, but unless libstdc++ 6.2.1 doesn't > have this > > interface available, which seems unlikely, something else is going wrong. > > That seems risky to ignore then. I guess I'll postpone the rebuild until > this > can be resolved/explained. > > Also because ideally I want to do it that way, and it's a goal for a > future default > build config of llvm as discussed recently here, I'd prefer to build > and then use > the in-tree libc++. But it doesn't seem like -DLLVM_ENABLE_LIBCXX has that > effect. Shouldn't it or if not why can't it? I would certainly welcome > and find natural > that the in-tree libc++ is used when LLVM_ENABLE_LIBCXX=ON. The need for > a pre-built and installed libc++ is less practical. >I'm really not sure, and I don't build or use libc++ myself. I was hoping someone else would answer this part, so maybe fork it into a different thread about that specifically so that the question gets more visibility. Teresa -- Teresa Johnson | Software Engineer | tejohnson at google.com | 408-460-2413 <(408)%20460-2413> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161223/b3a7f076/attachment.html>
On Fri, Dec 23, 2016 at 5:20 PM, Teresa Johnson <tejohnson at google.com> wrote:> I'm really not sure, and I don't build or use libc++ myself. I was hoping > someone else would answer this part, so maybe fork it into a different thread > about that specifically so that the question gets more visibility.Will do if I don't forget about it. In the meantime, given no explanation for cmake warning about code that builds and works fine if done manually with the toolchain to be used, I'll try to build with the updates config and see how far it gets, since gold is not used now. I want to say I doubt it will work, but I'll be optimistic. Expect a build report sometime today or tomorrow......