Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jacobsa-fuse
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
jacobsa-fuse
Commits
dfa49f55
Commit
dfa49f55
authored
Dec 19, 2016
by
Aaron Jacobs
Browse files
Options
Browse Files
Download
Plain Diff
buffer: fix build issues on Go 1.8.
parents
641629d1
cea04881
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
56 additions
and
2 deletions
+56
-2
internal/buffer/out_message.go
internal/buffer/out_message.go
+16
-2
internal/buffer/runtime.go
internal/buffer/runtime.go
+2
-0
internal/buffer/runtime_go1.8.s
internal/buffer/runtime_go1.8.s
+37
-0
internal/buffer/runtime_other.s
internal/buffer/runtime_other.s
+1
-0
No files found.
internal/buffer/out_message.go
View file @
dfa49f55
...
...
@@ -55,8 +55,22 @@ func init() {
// Reset resets m so that it's ready to be used again. Afterward, the contents
// are solely a zeroed fusekernel.OutHeader struct.
func
(
m
*
OutMessage
)
Reset
()
{
m
.
payloadOffset
=
0
memclr
(
unsafe
.
Pointer
(
&
m
.
header
),
uintptr
(
OutMessageHeaderSize
))
// Ideally we'd like to write:
//
// m.payloadOffset = 0
// m.header = fusekernel.OutHeader{}
//
// But Go 1.8 beta 2 generates bad code for this
// (https://golang.org/issue/18370). Encourage it to generate the same code
// as Go 1.7.4 did.
if
unsafe
.
Offsetof
(
m
.
payload
)
!=
24
{
panic
(
"unexpected OutMessage layout"
)
}
a
:=
(
*
[
3
]
uint64
)(
unsafe
.
Pointer
(
m
))
a
[
0
]
=
0
a
[
1
]
=
0
a
[
2
]
=
0
}
// OutHeader returns a pointer to the header at the start of the message.
...
...
internal/buffer/runtime.go
View file @
dfa49f55
...
...
@@ -19,6 +19,8 @@ import "unsafe"
//go:noescape
// Zero the n bytes starting at p.
//
// REQUIRES: the region does not contain any Go pointers.
func
memclr
(
p
unsafe
.
Pointer
,
n
uintptr
)
//go:noescape
...
...
internal/buffer/runtime_go1.8.s
0 → 100644
View file @
dfa49f55
//
Copyright
2015
Google
Inc
.
All
Rights
Reserved
.
//
//
Licensed
under
the
Apache
License
,
Version
2
.0
(
the
"License"
)
;
//
you
may
not
use
this
file
except
in
compliance
with
the
License
.
//
You
may
obtain
a
copy
of
the
License
at
//
//
http
://
www.apache.org
/
licenses
/
LICENSE
-2.0
//
//
Unless
required
by
applicable
law
or
agreed
to
in
writing
,
software
//
distributed
under
the
License
is
distributed
on
an
"AS IS"
BASIS
,
//
WITHOUT
WARRANTIES
OR
CONDITIONS
OF
ANY
KIND
,
either
express
or
implied
.
//
See
the
License
for
the
specific
language
governing
permissions
and
//
limitations
under
the
License
.
//
+
build
amd64
arm64
ppc64
ppc64le
//
+
build
go1
.8
//
Assembly
code
isn
't subject to visibility restrictions, so we can jump
//
directly
into
package
runtime
.
//
//
Technique
copied
from
here
:
//
https
://
github.com
/
golang
/
go
/
blob
/
d8c6dac
/
src
/
os
/
signal
/
sig.s
#include "textflag.h"
#ifdef GOARCH_ppc64
#define JMP BR
#endif
#ifdef GOARCH_ppc64le
#define JMP BR
#endif
TEXT
·
memclr
(
SB
),
NOSPLIT
,$0-16
JMP
runtime
·
memclrNoHeapPointers
(
SB
)
TEXT
·
memmove
(
SB
),
NOSPLIT
,$0-24
JMP
runtime
·
memmove
(
SB
)
internal/buffer/runtime.s
→
internal/buffer/runtime
_other
.s
View file @
dfa49f55
...
...
@@ -13,6 +13,7 @@
//
limitations
under
the
License
.
//
+
build
amd64
arm64
ppc64
ppc64le
//
+
build
!
go1
.8
//
Assembly
code
isn
't subject to visibility restrictions, so we can jump
//
directly
into
package
runtime
.
...
...
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