[SERVER-26324] Ubuntu 16.4 ppc64le builder is linking with ld.gold Created: 26/Sep/16  Updated: 30/Nov/16  Resolved: 30/Nov/16

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

Type: Bug Priority: Major - P3
Reporter: Andrew Morrow (Inactive) 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 2016-10-10, Platforms 2017-01-23
Participants:

 Description   

We don't build ld.gold as part of our toolchain build on non-x86 platforms (though, perhaps we should, but that is a separate issue). When we use our toolchain on RHEL, we do not use ld.gold, as expected:

https://evergreen.mongodb.com/task_log_raw/mongodb_mongo_master_enterprise_rhel_71_ppc64le_compile_f128617d2447f137e89e17f596acebf5c1bc744b_16_09_23_21_39_45/0?type=T#L773

However, on Ubuntu 16.04, even though our toolchain doesn't contain ld.gold, the system does have /usr/bin/ld.gold. Since our toolchain can find an ld.gold by the default search path, our probe for support for -fuse-ld=gold succeeds, and we end up using it.

We should either start building gold in our toolchain on all platforms so that we interpose on any available system ld.gold, or we should figure out how to suppress having our toolchain search the default search path for ld.gold, or we should suppress checking for -fuse-ld=gold support on platforms where we don't currently build gold in our toolchain.



 Comments   
Comment by Andrew Morrow (Inactive) [ 30/Nov/16 ]

jbreams - I think that is a fair argument. It would be better for us to always build gold on systems where gold is installed as part of the system linker so that we shadow it.

Comment by Jonathan Reams [ 26/Sep/16 ]

I'm not sure what to do here. I kind of disagree with the premise of this ticket. We aren't unexpectedly using gold, we're expecting to use gold no matter what, but we don't build it on all platforms because I couldn't get all its tests to pass on all platforms.

I would be for trying to build gold on ppc64le and s390x again - maybe its gotten better in gcc 5.4.

I don't think we should try to suppress using gold if its supported outside our toolchain.

Do we know that gold is causing problems? If we do, then maybe we should reconsider using it by default at all. Perhaps our toolchain should set ld -> ld.gold by default rather than having to explicitly ask for it?

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