This is an archive of the discontinued LLVM Phabricator instance.

[ELF] Support GNU compressed sections
AbandonedPublic

Authored by phosek on Feb 13 2019, 1:18 PM.

Details

Summary

These are still being used by some tools, most notable Go, which
triggers an error in llgo tests anytime lld is being used as the
default linker for Clang.

This has been raised in https://github.com/golang/go/issues/27110

Diff Detail

Repository
rLLD LLVM Linker

Event Timeline

phosek created this revision.Feb 13 2019, 1:18 PM
ruiu added a comment.Feb 13 2019, 1:25 PM

I personally think that they should update their toolchain so that they can handle the standardized compressed debug section instead of a GNU-extension, or they should disable tests that depends on the GNU extension by examining if -compressed-debug-section=gnu is supported before running the tests. I particularly dislike the fact that the GNU extension uses .z as a prefix for a compressed section, which honestly seems ugly.

pcc added a subscriber: pcc.Feb 13 2019, 1:28 PM

The reason why Go tries to use this flag is because of a bug in Go which has now been fixed. I'd prefer that rather than implementing this feature just for the sake of a bug that has been fixed, affected developers should upgrade Go. To prevent the test from failing, we could arrange to disable the Go bindings test if lld is being used and the version of Go is too old.

In D58205#1397063, @pcc wrote:

The reason why Go tries to use this flag is because of a bug in Go which has now been fixed. I'd prefer that rather than implementing this feature just for the sake of a bug that has been fixed, affected developers should upgrade Go. To prevent the test from failing, we could arrange to disable the Go bindings test if lld is being used and the version of Go is too old.

Do you know when was it fixed? I'm using go1.11.4 and I'm still seeing the failure in Bindings/Go/go.test when running check-llvm.

pcc added a comment.Feb 13 2019, 2:13 PM
In D58205#1397063, @pcc wrote:

The reason why Go tries to use this flag is because of a bug in Go which has now been fixed. I'd prefer that rather than implementing this feature just for the sake of a bug that has been fixed, affected developers should upgrade Go. To prevent the test from failing, we could arrange to disable the Go bindings test if lld is being used and the version of Go is too old.

Do you know when was it fixed? I'm using go1.11.4 and I'm still seeing the failure in Bindings/Go/go.test when running check-llvm.

I think you might need go1.12rc1.

grimar added a subscriber: grimar.Feb 14 2019, 12:24 AM
phosek abandoned this revision.May 1 2019, 6:29 PM