Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-28021

Scons should provide a way to disable ld.gold

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major - P3 Major - P3
    • 3.5.6
    • None
    • Build
    • None
    • Fully Compatible
    • ALL
    • Platforms 2017-04-17

    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
      

      Attachments

        Activity

          People

            andrew.morrow@mongodb.com Andrew Morrow (Inactive)
            mark.benvenuto@mongodb.com Mark Benvenuto
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: