[SERVER-28021] Scons should provide a way to disable ld.gold Created: 15/Feb/17  Updated: 06/Dec/17  Resolved: 04/Apr/17

Status: Closed
Project: Core Server
Component/s: Build
Affects Version/s: None
Fix Version/s: 3.5.6

Type: Bug Priority: Major - P3
Reporter: Mark Benvenuto Assignee: Andrew Morrow (Inactive)
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Platforms 2017-04-17
Participants:

 Description   

Scons defaults to always using ld.gold simply out of preference. There is no way to override this behavior when it does not work correctly.

Under MongoDB's Clang 3.9.1 on Ubuntu 16.04, we see the following false positive ODR violations. As a result, there is no way to compile MongoDB.

/usr/bin/ld.gold: warning: while linking build/opt/mongo/mongo: symbol 'void std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_M_construct<wchar_t*>(wchar_t*, wchar_t*, std::forward_iterator_tag)' defined in multiple places (possible ODR violation):
  /data/mci/10767912b47cac7c7dfef4a0de0e05c3/toolchain-builder/mongodbtoolchain/v2/bin/../lib/gcc/aarch64-mongodb-linux/5.4.0/../../../../include/c++/5.4.0/bits/basic_string.tcc:213 from build/opt/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.o
  /data/mci/cb120c363af202e275506d61985e2cd2/toolchain-builder/build-gcc-v2.sh-w9v/aarch64-mongodb-linux/libstdc++-v3/include/bits/basic_string.tcc:210 from /data/mci/10767912b47cac7c7dfef4a0de0e05c3/toolchain-builder/mongodbtoolchain/v2/bin/../lib/gcc/aarch64-mongodb-linux/5.4.0/libstdc++.a(wstring-inst.o)
/usr/bin/ld.gold: warning: while linking build/opt/mongo/mongo: symbol 'std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' defined in multiple places (possible ODR violation):
  /data/mci/10767912b47cac7c7dfef4a0de0e05c3/toolchain-builder/mongodbtoolchain/v2/bin/../lib/gcc/aarch64-mongodb-linux/5.4.0/../../../../include/c++/5.4.0/bits/basic_string.h:4785 from build/opt/third_party/boost-1.60.0/libs/regex/src/winstances.o
  /data/mci/cb120c363af202e275506d61985e2cd2/toolchain-builder/build-gcc-v2.sh-w9v/aarch64-mongodb-linux/libstdc++-v3/include/bits/basic_string.h:4783 from /data/mci/10767912b47cac7c7dfef4a0de0e05c3/toolchain-builder/mongodbtoolchain/v2/bin/../lib/gcc/aarch64-mongodb-linux/5.4.0/libstdc++.a(string-inst.o)
/usr/bin/ld.gold: warning: while linking build/opt/mongo/mongo: symbol 'void std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_M_construct<wchar_t const*>(wchar_t const*, wchar_t const*, std::forward_iterator_tag)' defined in multiple places (possible ODR violation):
  /data/mci/cb120c363af202e275506d61985e2cd2/toolchain-builder/build-gcc-v2.sh-w9v/aarch64-mongodb-linux/libstdc++-v3/include/bits/basic_string.tcc:210 from /data/mci/10767912b47cac7c7dfef4a0de0e05c3/toolchain-builder/mongodbtoolchain/v2/bin/../lib/gcc/aarch64-mongodb-linux/5.4.0/libstdc++.a(wstring-inst.o)
  /data/mci/10767912b47cac7c7dfef4a0de0e05c3/toolchain-builder/mongodbtoolchain/v2/bin/../lib/gcc/aarch64-mongodb-linux/5.4.0/../../../../include/c++/5.4.0/bits/basic_string.tcc:213 from build/opt/third_party/boost-1.60.0/libs/regex/src/wc_regex_traits.o



 Comments   
Comment by Githook User [ 04/Apr/17 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@mongodb.com'}

Message: SERVER-28021 Only prefer gold if not explicitly overridden
Branch: master
https://github.com/mongodb/mongo/commit/034d01df1ee4c8f56b2dc181e21abf6ac0a80ee0

Generated at Thu Feb 08 04:16:54 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.