Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

runtime/race: race_linux_amd64.syso now depends on glibc 2.17 #53522

Closed
djedward opened this issue Jun 23, 2022 · 5 comments
Closed

runtime/race: race_linux_amd64.syso now depends on glibc 2.17 #53522

djedward opened this issue Jun 23, 2022 · 5 comments
Labels
WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.

Comments

@djedward
Copy link

What version of Go are you using (go version)?

$ go version
go version go1.18.3 linux/amd64

Does this issue reproduce with the latest release?

Yes -> 1.19beta1

What operating system and processor architecture are you using (go env)?

go env Output
$ go env
GOARCH="amd64"
GOBIN="/workspace/src/GoLang/build/bin"
GOCACHE="/workspace/src/GoLang/build/private/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GOPROXY=""
GORACE=""
GOROOT="/workspace/src/GoLang/build/lib"
GOTMPDIR=""
GOTOOLDIR="/workspace/src/GoLang/build/lib/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build226727772=/tmp/go-build -gno-record-gcc-switches" 

What did you do?

I was attempting to build go1.19beta1 on one of our older Linux distributions which has glibc 2.12. go1.18.3 builds work fine. It fails with:

##### Testing race detector
# runtime/race
runtime/race/race_linux_amd64.syso:gotsan.cpp:function __sanitizer::MonotonicNanoTime(): error: undefined reference to 'clock_gettime'
collect2: error: ld returned 1 exit status
FAIL    runtime/race
FAIL
# runtime/race
runtime/race/race_linux_amd64.syso:gotsan.cpp:function __sanitizer::MonotonicNanoTime(): error: undefined reference to 'clock_gettime'
collect2: error: ld returned 1 exit status
FAIL    flag
FAIL    net
FAIL    os
FAIL    os/exec
FAIL    encoding/gob
FAIL
# runtime/race
runtime/race/race_linux_amd64.syso:gotsan.cpp:function __sanitizer::MonotonicNanoTime(): error: undefined reference to 'clock_gettime'
collect2: error: ld returned 1 exit status
FAIL    flag
FAIL    os/exec
FAIL 

Grabbing the previous version of race_linux_amd64.syso (prior to commit d6a1ffd) appears to allow the build to proceed. It seems this may be a recurrence of #37485. It appears to have a dependency on glibc 2.17 now, where as before it was glibc 2.12.

What did you expect to see?

Successful build of 1.19beta1

What did you see instead?

Failed race detector tests

@ianlancetaylor
Copy link
Contributor

The current version of glibc is 2.35. glibc 2.17 was released in 2012, almost 10 years ago. I think this dependency is OK. We have to be able to move forward sometimes.

@ianlancetaylor ianlancetaylor added the WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. label Jun 23, 2022
@djedward
Copy link
Author

I can see wanting to move forward as completely reasonable and it isn't a show-stopper for us. Just saw what might be an unintended regression in 1.19beta1 (and didn't catch anything in release notes indicating drop of support).

Though it is probably worth mentioning that the Go Minimum Requirements still lists kernel 2.6.23 as supported, which predates even glibc 2.12.

@ianlancetaylor
Copy link
Contributor

Thanks for pointing that out. We actually lifted the minimum Linux version to 2.6.32 in #45964, but we never updated the wiki page. I just did that now.

Although 2.6.32 is still older than glibc 2.17.

And that said, Go still works with glibc 2.17, it's only the race detector that fails. Hopefully people still using these old glibc versions can at least have access to a newer glibc if they want to run the race detector.

@ianlancetaylor
Copy link
Contributor

I sent https://go.dev/cl/413876 to mention this in the release notes.

@gopherbot
Copy link

Change https://go.dev/cl/413876 mentions this issue: doc/go1.19: Linux race detector now requires glibc 2.17

howjmay pushed a commit to howjmay/go that referenced this issue Jun 24, 2022
Fixes golang#53522

Change-Id: Ibed838d358a733d26a6c3d89446d7fadb1012961
Reviewed-on: https://go-review.googlesource.com/c/go/+/413876
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
howjmay pushed a commit to howjmay/go that referenced this issue Jun 30, 2022
Fixes golang#53522

Change-Id: Ibed838d358a733d26a6c3d89446d7fadb1012961
Reviewed-on: https://go-review.googlesource.com/c/go/+/413876
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
jproberts pushed a commit to jproberts/go that referenced this issue Aug 10, 2022
Fixes golang#53522

Change-Id: Ibed838d358a733d26a6c3d89446d7fadb1012961
Reviewed-on: https://go-review.googlesource.com/c/go/+/413876
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.
Projects
None yet
Development

No branches or pull requests

3 participants