1
0
mirror of https://github.com/golang/go synced 2024-11-12 07:40:23 -07:00

runtime: get randomness from AT_RANDOM AUXV on linux/mips64x

Fixes #15148.

Change-Id: If3b628f30521adeec1625689dbc98aaf4a9ec858
Reviewed-on: https://go-review.googlesource.com/22811
Reviewed-by: Keith Randall <khr@golang.org>
Run-TryBot: Minux Ma <minux@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Shenghou Ma 2016-05-06 00:53:42 -04:00 committed by Minux Ma
parent ef92857e27
commit 2e32efc44a
2 changed files with 12 additions and 1 deletions

View File

@ -9,6 +9,17 @@ package runtime
var randomNumber uint32 var randomNumber uint32
func archauxv(tag, val uintptr) {
switch tag {
case _AT_RANDOM:
// sysargs filled in startupRandomData, but that
// pointer may not be word aligned, so we must treat
// it as a byte array.
randomNumber = uint32(startupRandomData[4]) | uint32(startupRandomData[5])<<8 |
uint32(startupRandomData[6])<<16 | uint32(startupRandomData[7])<<24
}
}
//go:nosplit //go:nosplit
func cputicks() int64 { func cputicks() int64 {
// Currently cputicks() is used in blocking profiler and to seed fastrand1(). // Currently cputicks() is used in blocking profiler and to seed fastrand1().

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// +build !amd64,!arm,!arm64 // +build !amd64,!arm,!arm64,!mips64,!mips64le
package runtime package runtime