[llvm-commits] [PATCH - lld] Fix build issue building lld against libstdc++ 4.7

Andy Gibbs andyg1001 at hotmail.co.uk
Fri Dec 21 14:55:49 PST 2012


Hi,

There is a build error building lld against libstdc++ 4.7 (certainly on 
linux), which the attached patch seeks to address.  It must have crept in at 
some point following r169487 (last working checkpoint in my repository 
clone), but I haven't tracked it down to an exact commit.  At the bottom of 
this post is a log of the error generated on my system.

The fix simply drops a (probably) extraneous "const" from the ArrayRef 
template parameter used to passing arguments to the driver.

Am I ok to commit this fix?

Cheers,
Andy


Details of build failure:

Scanning dependencies of target lld
[100%] Building CXX object tools/lld/tools/lld/CMakeFiles/lld.dir/lld.cpp.o
In file included from clang/source/tools/lld/tools/lld/lld.cpp:18:
In file included from clang/source/tools/lld/include/lld/Driver/Driver.h:23:
In file included from clang/source/include/llvm/Option/ArgList.h:13:
In file included from clang/source/include/llvm/ADT/SmallVector.h:20:
In file included from 
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/algorithm:62:
In file included from 
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/bits/stl_algo.h:67:
In file included from 
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/random:40:
In file included from 
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/string:42:
In file included from 
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/bits/allocator.h:48:
In file included from 
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/x86_64-linux-gnu/bits/c++allocator.h:34:
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/ext/new_allocator.h:83:7: 
error: class member cannot be redeclared
      address(const_reference __x) const _GLIBCXX_NOEXCEPT
      ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/bits/allocator.h:89:29: 
note: in instantiation of template class '__gnu_cxx::new_allocator<const 
char *const>' requested
      here
    class allocator: public __glibcxx_base_allocator<_Tp>
                            ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/x86_64-linux-gnu/bits/c++allocator.h:35:35: 
note: expanded from macro '__glibcxx_base_allocator'
#define __glibcxx_base_allocator  __gnu_cxx::new_allocator
                                  ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/bits/alloc_traits.h:89:24: 
note: in instantiation of template class 'std::allocator<const char *const>' 
requested here
      typedef typename _Alloc::value_type value_type;
                       ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/ext/alloc_traits.h:110:5: 
note: in instantiation of template class
      'std::allocator_traits<std::allocator<const char *const> >' requested 
here
  : std::allocator_traits<_Alloc>
    ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/bits/stl_vector.h:75:35: 
note: in instantiation of template class 
'__gnu_cxx::__alloc_traits<std::allocator<const char
      *const> >' requested here
      typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template
                                  ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/bits/stl_vector.h:208:30: 
note: in instantiation of template class 'std::_Vector_base<const char 
*const,
      std::allocator<const char *const> >' requested here
    class vector : protected _Vector_base<_Tp, _Alloc>
                             ^
clang/source/tools/lld/tools/lld/lld.cpp:126:7: note: in instantiation of 
template class 'std::vector<const char *const, std::allocator<const char
      *const> >' requested here
      llvm::ArrayRef<const char *const>(argv + 1, argv + argc));
      ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.7/../../../../include/c++/4.7/ext/new_allocator.h:79:7: 
note: previous declaration is here
      address(reference __x) const _GLIBCXX_NOEXCEPT
      ^
1 error generated.
 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix.diff
Type: application/octet-stream
Size: 1860 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121221/649a0d15/attachment.obj>


More information about the llvm-commits mailing list