Scons should provide a way to disable ld.gold

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Done
    • Priority: Major - P3
    • 3.5.6
    • Affects Version/s: None
    • Component/s: Build
    • None
    • Fully Compatible
    • ALL
    • Platforms 2017-04-17
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      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
      

            Assignee:
            Andrew Morrow (Inactive)
            Reporter:
            Mark Benvenuto
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: