Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/components/common-go/nsenter/nsenter_gccgo.go
2500 views
1
//
2
// Copyright The runc authors.
3
//
4
// Licensed under the Apache License, Version 2.0 (the "License");
5
// you may not use this file except in compliance with the License.
6
// You may obtain a copy of the License at
7
//
8
// http://www.apache.org/licenses/LICENSE-2.0
9
//
10
// Unless required by applicable law or agreed to in writing, software
11
// distributed under the License is distributed on an "AS IS" BASIS,
12
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
// See the License for the specific language governing permissions and
14
// limitations under the License.
15
16
//go:build linux && gccgo
17
// +build linux,gccgo
18
19
package nsenter
20
21
/*
22
#cgo CFLAGS: -Wall
23
extern void nsexec();
24
void __attribute__((constructor)) init(void) {
25
nsexec();
26
}
27
*/
28
import "C"
29
30
// AlwaysFalse is here to stay false
31
// (and be exported so the compiler doesn't optimize out its reference)
32
var AlwaysFalse bool
33
34
func init() {
35
if AlwaysFalse {
36
// by referencing this C init() in a noop test, it will ensure the compiler
37
// links in the C function.
38
// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65134
39
C.init()
40
}
41
}
42
43