Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
20e96b48
Commit
20e96b48
authored
Jun 08, 2017
by
Ian Lance Taylor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
libgo: update to 1.8.3 release
Reviewed-on:
https://go-review.googlesource.com/45150
From-SVN: r249033
parent
34361776
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
93 additions
and
12 deletions
+93
-12
gcc/go/gofrontend/MERGE
+1
-1
libgo/MERGE
+1
-1
libgo/VERSION
+1
-1
libgo/go/cmd/go/build.go
+20
-0
libgo/go/crypto/elliptic/elliptic_test.go
+36
-0
libgo/go/database/sql/sql.go
+1
-1
libgo/go/database/sql/sql_test.go
+3
-2
libgo/go/net/http/h2_bundle.go
+15
-4
libgo/go/runtime/malloc.go
+13
-1
libgo/go/runtime/mbitmap.go
+1
-0
libgo/go/runtime/mgc.go
+1
-1
No files found.
gcc/go/gofrontend/MERGE
View file @
20e96b48
8
1d9f6d05c2bb92b2b3af02807713b6bed9bf053
8
2961ce59e8bb02598d963d2a05b3acca860d9dd
The first line of this file holds the git revision number of the last
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
merge done from the gofrontend repository.
libgo/MERGE
View file @
20e96b48
a4c18f063b6659079ca2848ca217a0587dabc001
352996a381701cfa0c16e8de29cbde8f3922182f
The first line of this file holds the git revision number of the
The first line of this file holds the git revision number of the
last merge done from the master library sources.
last merge done from the master library sources.
libgo/VERSION
View file @
20e96b48
go1.8.
1
go1.8.
3
libgo/go/cmd/go/build.go
View file @
20e96b48
...
@@ -3133,6 +3133,26 @@ func (b *builder) ccompile(p *Package, outfile string, flags []string, file stri
...
@@ -3133,6 +3133,26 @@ func (b *builder) ccompile(p *Package, outfile string, flags []string, file stri
desc
:=
p
.
ImportPath
desc
:=
p
.
ImportPath
output
,
err
:=
b
.
runOut
(
p
.
Dir
,
desc
,
nil
,
compiler
,
flags
,
"-o"
,
outfile
,
"-c"
,
file
)
output
,
err
:=
b
.
runOut
(
p
.
Dir
,
desc
,
nil
,
compiler
,
flags
,
"-o"
,
outfile
,
"-c"
,
file
)
if
len
(
output
)
>
0
{
if
len
(
output
)
>
0
{
// On FreeBSD 11, when we pass -g to clang 3.8 it
// invokes its internal assembler with -dwarf-version=2.
// When it sees .section .note.GNU-stack, it warns
// "DWARF2 only supports one section per compilation unit".
// This warning makes no sense, since the section is empty,
// but it confuses people.
// We work around the problem by detecting the warning
// and dropping -g and trying again.
if
bytes
.
Contains
(
output
,
[]
byte
(
"DWARF2 only supports one section per compilation unit"
))
{
newFlags
:=
make
([]
string
,
0
,
len
(
flags
))
for
_
,
f
:=
range
flags
{
if
!
strings
.
HasPrefix
(
f
,
"-g"
)
{
newFlags
=
append
(
newFlags
,
f
)
}
}
if
len
(
newFlags
)
<
len
(
flags
)
{
return
b
.
ccompile
(
p
,
outfile
,
newFlags
,
file
,
compiler
)
}
}
b
.
showOutput
(
p
.
Dir
,
desc
,
b
.
processOutput
(
output
))
b
.
showOutput
(
p
.
Dir
,
desc
,
b
.
processOutput
(
output
))
if
err
!=
nil
{
if
err
!=
nil
{
err
=
errPrintedOutput
err
=
errPrintedOutput
...
...
libgo/go/crypto/elliptic/elliptic_test.go
View file @
20e96b48
...
@@ -300,6 +300,29 @@ var p224BaseMultTests = []baseMultTest{
...
@@ -300,6 +300,29 @@ var p224BaseMultTests = []baseMultTest{
},
},
}
}
type
scalarMultTest
struct
{
k
string
xIn
,
yIn
string
xOut
,
yOut
string
}
var
p256MultTests
=
[]
scalarMultTest
{
{
"2a265f8bcbdcaf94d58519141e578124cb40d64a501fba9c11847b28965bc737"
,
"023819813ac969847059028ea88a1f30dfbcde03fc791d3a252c6b41211882ea"
,
"f93e4ae433cc12cf2a43fc0ef26400c0e125508224cdb649380f25479148a4ad"
,
"4d4de80f1534850d261075997e3049321a0864082d24a917863366c0724f5ae3"
,
"a22d2b7f7818a3563e0f7a76c9bf0921ac55e06e2e4d11795b233824b1db8cc0"
,
},
{
"313f72ff9fe811bf573176231b286a3bdb6f1b14e05c40146590727a71c3bccd"
,
"cc11887b2d66cbae8f4d306627192522932146b42f01d3c6f92bd5c8ba739b06"
,
"a2f08a029cd06b46183085bae9248b0ed15b70280c7ef13a457f5af382426031"
,
"831c3f6b5f762d2f461901577af41354ac5f228c2591f84f8a6e51e2e3f17991"
,
"93f90934cd0ef2c698cc471c60a93524e87ab31ca2412252337f364513e43684"
,
},
}
func
TestBaseMult
(
t
*
testing
.
T
)
{
func
TestBaseMult
(
t
*
testing
.
T
)
{
p224
:=
P224
()
p224
:=
P224
()
for
i
,
e
:=
range
p224BaseMultTests
{
for
i
,
e
:=
range
p224BaseMultTests
{
...
@@ -379,6 +402,19 @@ func TestP256Mult(t *testing.T) {
...
@@ -379,6 +402,19 @@ func TestP256Mult(t *testing.T) {
break
break
}
}
}
}
for
i
,
e
:=
range
p256MultTests
{
x
,
_
:=
new
(
big
.
Int
)
.
SetString
(
e
.
xIn
,
16
)
y
,
_
:=
new
(
big
.
Int
)
.
SetString
(
e
.
yIn
,
16
)
k
,
_
:=
new
(
big
.
Int
)
.
SetString
(
e
.
k
,
16
)
expectedX
,
_
:=
new
(
big
.
Int
)
.
SetString
(
e
.
xOut
,
16
)
expectedY
,
_
:=
new
(
big
.
Int
)
.
SetString
(
e
.
yOut
,
16
)
xx
,
yy
:=
p256
.
ScalarMult
(
x
,
y
,
k
.
Bytes
())
if
xx
.
Cmp
(
expectedX
)
!=
0
||
yy
.
Cmp
(
expectedY
)
!=
0
{
t
.
Errorf
(
"#%d: got (%x, %x), want (%x, %x)"
,
i
,
xx
,
yy
,
expectedX
,
expectedY
)
}
}
}
}
func
TestInfinity
(
t
*
testing
.
T
)
{
func
TestInfinity
(
t
*
testing
.
T
)
{
...
...
libgo/go/database/sql/sql.go
View file @
20e96b48
...
@@ -1955,12 +1955,12 @@ func (s *Stmt) QueryContext(ctx context.Context, args ...interface{}) (*Rows, er
...
@@ -1955,12 +1955,12 @@ func (s *Stmt) QueryContext(ctx context.Context, args ...interface{}) (*Rows, er
rowsi
:
rowsi
,
rowsi
:
rowsi
,
// releaseConn set below
// releaseConn set below
}
}
rows
.
initContextClose
(
ctx
)
s
.
db
.
addDep
(
s
,
rows
)
s
.
db
.
addDep
(
s
,
rows
)
rows
.
releaseConn
=
func
(
err
error
)
{
rows
.
releaseConn
=
func
(
err
error
)
{
releaseConn
(
err
)
releaseConn
(
err
)
s
.
db
.
removeDep
(
s
,
rows
)
s
.
db
.
removeDep
(
s
,
rows
)
}
}
rows
.
initContextClose
(
ctx
)
return
rows
,
nil
return
rows
,
nil
}
}
...
...
libgo/go/database/sql/sql_test.go
View file @
20e96b48
...
@@ -322,7 +322,7 @@ func TestQueryContext(t *testing.T) {
...
@@ -322,7 +322,7 @@ func TestQueryContext(t *testing.T) {
select
{
select
{
case
<-
ctx
.
Done
()
:
case
<-
ctx
.
Done
()
:
if
err
:=
ctx
.
Err
();
err
!=
context
.
Canceled
{
if
err
:=
ctx
.
Err
();
err
!=
context
.
Canceled
{
t
.
Fatalf
(
"context err = %v; want context.Canceled"
)
t
.
Fatalf
(
"context err = %v; want context.Canceled"
,
ctx
.
Err
()
)
}
}
default
:
default
:
t
.
Fatalf
(
"context err = nil; want context.Canceled"
)
t
.
Fatalf
(
"context err = nil; want context.Canceled"
)
...
@@ -413,7 +413,8 @@ func TestTxContextWait(t *testing.T) {
...
@@ -413,7 +413,8 @@ func TestTxContextWait(t *testing.T) {
db
:=
newTestDB
(
t
,
"people"
)
db
:=
newTestDB
(
t
,
"people"
)
defer
closeDB
(
t
,
db
)
defer
closeDB
(
t
,
db
)
ctx
,
_
:=
context
.
WithTimeout
(
context
.
Background
(),
time
.
Millisecond
*
15
)
ctx
,
cancel
:=
context
.
WithTimeout
(
context
.
Background
(),
time
.
Millisecond
*
15
)
defer
cancel
()
tx
,
err
:=
db
.
BeginTx
(
ctx
,
nil
)
tx
,
err
:=
db
.
BeginTx
(
ctx
,
nil
)
if
err
!=
nil
{
if
err
!=
nil
{
...
...
libgo/go/net/http/h2_bundle.go
View file @
20e96b48
// Code generated by golang.org/x/tools/cmd/bundle.
// Code generated by golang.org/x/tools/cmd/bundle.
DO NOT EDIT.
//go:generate bundle -o h2_bundle.go -prefix http2 -underscore golang.org/x/net/http2
//go:generate bundle -o h2_bundle.go -prefix http2 -underscore golang.org/x/net/http2
// Package http2 implements the HTTP/2 protocol.
// Package http2 implements the HTTP/2 protocol.
...
@@ -3536,9 +3536,13 @@ func (sc *http2serverConn) serve() {
...
@@ -3536,9 +3536,13 @@ func (sc *http2serverConn) serve() {
sc
.
idleTimerCh
=
sc
.
idleTimer
.
C
sc
.
idleTimerCh
=
sc
.
idleTimer
.
C
}
}
var
gracefulShutdownCh
<-
chan
struct
{}
var
gracefulShutdownCh
chan
struct
{}
if
sc
.
hs
!=
nil
{
if
sc
.
hs
!=
nil
{
gracefulShutdownCh
=
http2h1ServerShutdownChan
(
sc
.
hs
)
ch
:=
http2h1ServerShutdownChan
(
sc
.
hs
)
if
ch
!=
nil
{
gracefulShutdownCh
=
make
(
chan
struct
{})
go
sc
.
awaitGracefulShutdown
(
ch
,
gracefulShutdownCh
)
}
}
}
go
sc
.
readFrames
()
go
sc
.
readFrames
()
...
@@ -3587,6 +3591,14 @@ func (sc *http2serverConn) serve() {
...
@@ -3587,6 +3591,14 @@ func (sc *http2serverConn) serve() {
}
}
}
}
func
(
sc
*
http2serverConn
)
awaitGracefulShutdown
(
sharedCh
<-
chan
struct
{},
privateCh
chan
struct
{})
{
select
{
case
<-
sc
.
doneServing
:
case
<-
sharedCh
:
close
(
privateCh
)
}
}
// readPreface reads the ClientPreface greeting from the peer
// readPreface reads the ClientPreface greeting from the peer
// or returns an error on timeout or an invalid greeting.
// or returns an error on timeout or an invalid greeting.
func
(
sc
*
http2serverConn
)
readPreface
()
error
{
func
(
sc
*
http2serverConn
)
readPreface
()
error
{
...
@@ -6003,7 +6015,6 @@ func http2commaSeparatedTrailers(req *Request) (string, error) {
...
@@ -6003,7 +6015,6 @@ func http2commaSeparatedTrailers(req *Request) (string, error) {
}
}
if
len
(
keys
)
>
0
{
if
len
(
keys
)
>
0
{
sort
.
Strings
(
keys
)
sort
.
Strings
(
keys
)
return
strings
.
Join
(
keys
,
","
),
nil
return
strings
.
Join
(
keys
,
","
),
nil
}
}
return
""
,
nil
return
""
,
nil
...
...
libgo/go/runtime/malloc.go
View file @
20e96b48
...
@@ -412,10 +412,12 @@ func (h *mheap) sysAlloc(n uintptr) unsafe.Pointer {
...
@@ -412,10 +412,12 @@ func (h *mheap) sysAlloc(n uintptr) unsafe.Pointer {
if
p
==
0
{
if
p
==
0
{
return
nil
return
nil
}
}
// p can be just about anywhere in the address
// space, including before arena_end.
if
p
==
h
.
arena_end
{
if
p
==
h
.
arena_end
{
h
.
arena_end
=
new_end
h
.
arena_end
=
new_end
h
.
arena_reserved
=
reserved
h
.
arena_reserved
=
reserved
}
else
if
h
.
arena_
start
<=
p
&&
p
+
p_size
-
h
.
arena_start
-
1
<=
_MaxArena32
{
}
else
if
h
.
arena_
end
<
p
&&
p
+
p_size
-
h
.
arena_start
-
1
<=
_MaxArena32
{
// Keep everything page-aligned.
// Keep everything page-aligned.
// Our pages are bigger than hardware pages.
// Our pages are bigger than hardware pages.
h
.
arena_end
=
p
+
p_size
h
.
arena_end
=
p
+
p_size
...
@@ -425,6 +427,16 @@ func (h *mheap) sysAlloc(n uintptr) unsafe.Pointer {
...
@@ -425,6 +427,16 @@ func (h *mheap) sysAlloc(n uintptr) unsafe.Pointer {
h
.
arena_used
=
used
h
.
arena_used
=
used
h
.
arena_reserved
=
reserved
h
.
arena_reserved
=
reserved
}
else
{
}
else
{
// We got a mapping, but it's not
// linear with our current arena, so
// we can't use it.
//
// TODO: Make it possible to allocate
// from this. We can't decrease
// arena_used, but we could introduce
// a new variable for the current
// allocation position.
// We haven't added this allocation to
// We haven't added this allocation to
// the stats, so subtract it from a
// the stats, so subtract it from a
// fake stat (but avoid underflow).
// fake stat (but avoid underflow).
...
...
libgo/go/runtime/mbitmap.go
View file @
20e96b48
...
@@ -374,6 +374,7 @@ func heapBitsForAddr(addr uintptr) heapBits {
...
@@ -374,6 +374,7 @@ func heapBitsForAddr(addr uintptr) heapBits {
// heapBitsForSpan returns the heapBits for the span base address base.
// heapBitsForSpan returns the heapBits for the span base address base.
func
heapBitsForSpan
(
base
uintptr
)
(
hbits
heapBits
)
{
func
heapBitsForSpan
(
base
uintptr
)
(
hbits
heapBits
)
{
if
base
<
mheap_
.
arena_start
||
base
>=
mheap_
.
arena_used
{
if
base
<
mheap_
.
arena_start
||
base
>=
mheap_
.
arena_used
{
print
(
"runtime: base "
,
hex
(
base
),
" not in range ["
,
hex
(
mheap_
.
arena_start
),
","
,
hex
(
mheap_
.
arena_used
),
")
\n
"
)
throw
(
"heapBitsForSpan: base out of range"
)
throw
(
"heapBitsForSpan: base out of range"
)
}
}
return
heapBitsForAddr
(
base
)
return
heapBitsForAddr
(
base
)
...
...
libgo/go/runtime/mgc.go
View file @
20e96b48
...
@@ -1908,7 +1908,7 @@ func gchelper() {
...
@@ -1908,7 +1908,7 @@ func gchelper() {
traceGCScanDone
()
traceGCScanDone
()
}
}
nproc
:=
work
.
nproc
// work.nproc can change right after we increment work.ndone
nproc
:=
atomic
.
Load
(
&
work
.
nproc
)
// work.nproc can change right after we increment work.ndone
if
atomic
.
Xadd
(
&
work
.
ndone
,
+
1
)
==
nproc
-
1
{
if
atomic
.
Xadd
(
&
work
.
ndone
,
+
1
)
==
nproc
-
1
{
notewakeup
(
&
work
.
alldone
)
notewakeup
(
&
work
.
alldone
)
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment