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

bootstrap: "'p' exponent requires hexadecimal mantissa" warning emitted when bootstrapping Go 1.12 from tip (1.13) #33625

Open
cherrymui opened this issue Aug 13, 2019 · 0 comments

Comments

@cherrymui
Copy link
Contributor

commented Aug 13, 2019

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

tip (61bb56a)

Does this issue reproduce with the latest release?

No

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

darwin/amd64

What did you do?

Bootstrapping Go 1.12.7 from tip (~1.13)

$ git checkout go1.12.7
HEAD is now at 7f416b4f04 [release-branch.go1.12] go1.12.7
$ GOROOT_BOOTSTRAP=$HOME/src/go-tip ./make.bash 
Building Go cmd/dist using /Users/cherryyz/src/go-tip.
Building Go toolchain1 using /Users/cherryyz/src/go-tip.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
go_asm.h:584:33: 'p' exponent requires hexadecimal mantissa
go_asm.h:585:39: 'p' exponent requires hexadecimal mantissa
go_asm.h:584:33: 'p' exponent requires hexadecimal mantissa
go_asm.h:585:39: 'p' exponent requires hexadecimal mantissa
go_asm.h:584:33: 'p' exponent requires hexadecimal mantissa
go_asm.h:585:39: 'p' exponent requires hexadecimal mantissa
go_asm.h:584:33: 'p' exponent requires hexadecimal mantissa
go_asm.h:585:39: 'p' exponent requires hexadecimal mantissa
Building Go toolchain2 using go_bootstrap and Go toolchain1.
# runtime
go_asm.h:584:33: 'p' exponent requires hexadecimal mantissa
go_asm.h:585:39: 'p' exponent requires hexadecimal mantissa
# runtime
go_asm.h:584:33: 'p' exponent requires hexadecimal mantissa
go_asm.h:585:39: 'p' exponent requires hexadecimal mantissa
# runtime
go_asm.h:584:33: 'p' exponent requires hexadecimal mantissa
go_asm.h:585:39: 'p' exponent requires hexadecimal mantissa
# runtime
go_asm.h:584:33: 'p' exponent requires hexadecimal mantissa
go_asm.h:585:39: 'p' exponent requires hexadecimal mantissa
Building Go toolchain3 using go_bootstrap and Go toolchain2.
Building packages and commands for darwin/amd64.
---
Installed Go for darwin/amd64 in /Users/cherryyz/src/go-tmp
Installed commands in /Users/cherryyz/src/go-tmp/bin

What did you expect to see?

make.bash succeeded.

What did you see instead?

make.bash succeeded, with warnings 'p' exponent requires hexadecimal mantissa for go_asm.h.

The warning is printed only when using "toolchain1", which is Go 1.12 toolchain built by the bootstrap toolchain. In Go 1.13 we stop generating floating point constants in go_asm.h (https://go-review.googlesource.com/c/go/+/161904), but toolchain1 still does, as it is Go 1.12. Then this is fed into the toolchain1 cmd/asm, which is also Go 1.12 but its text/scanner package is from the bootstrap toolchain, which is Go 1.13 in this case, which emits the error.

Possible solutions:

  • don't do anything. I understand that bootstrapping Go 1.12 from a newer toolchain is a bit weird setting, which we probably could decide not to care. And it is only a warning.
  • change cmd/dist to use the target's copy of text/scanner when building toolchain1 (we already do this for e.g. math/big and debug/dwarf).

@jeremyfaller found this initially.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.