libgo: update hurd support

Patch from Svante Signell.

Fixes PR go/98496

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/283692
This commit is contained in:
Ian Lance Taylor 2021-01-13 11:54:15 -08:00
parent 6106dfb9f7
commit 9ac3e2feb3
8 changed files with 21 additions and 15 deletions

View File

@ -1,4 +1,4 @@
255657dc8d61ab26121ca68f124412ef37599166
fd5396b1af389a55d1e3612702cfdad6755084e9
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View File

@ -881,7 +881,7 @@ GOBENCH =
CHECK = \
GC="$(GOC) $(GOCFLAGS) $($(subst /,_,$@)_GOCFLAGS) -L `${PWD_COMMAND}` -L `${PWD_COMMAND}`/.libs"; \
export GC; \
GOLIBS="$(extra_check_libs_$(subst .,_,$(subst /,_,$(@D)))) $(MATH_LIBS) $(NET_LIBS) $(LIBS)"; \
GOLIBS="$(extra_check_libs_$(subst .,_,$(subst /,_,$(@D)))) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS) $(LIBS)"; \
export GOLIBS; \
RUNTESTFLAGS="$(RUNTESTFLAGS)"; \
export RUNTESTFLAGS; \

View File

@ -1029,7 +1029,7 @@ GOBENCH =
CHECK = \
GC="$(GOC) $(GOCFLAGS) $($(subst /,_,$@)_GOCFLAGS) -L `${PWD_COMMAND}` -L `${PWD_COMMAND}`/.libs"; \
export GC; \
GOLIBS="$(extra_check_libs_$(subst .,_,$(subst /,_,$(@D)))) $(MATH_LIBS) $(NET_LIBS) $(LIBS)"; \
GOLIBS="$(extra_check_libs_$(subst .,_,$(subst /,_,$(@D)))) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS) $(LIBS)"; \
export GOLIBS; \
RUNTESTFLAGS="$(RUNTESTFLAGS)"; \
export RUNTESTFLAGS; \

View File

@ -9,3 +9,9 @@ package x509
var certFiles = []string{
"/etc/ssl/certs/ca-certificates.crt", // Debian/Ubuntu/Gentoo etc.
}
// Possible directories with certificate files; stop after successfully
// reading at least one file from a directory.
var certDirectories = []string{
"/etc/ssl/certs", // SLES10/SLES11, https://golang.org/issue/12139
}

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build freebsd linux netbsd openbsd solaris
// +build freebsd hurd linux netbsd openbsd solaris
package runtime

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
// +build aix darwin dragonfly freebsd hurd linux netbsd openbsd solaris
package runtime_test

View File

@ -27,19 +27,19 @@ func libc_malloc(uintptr) unsafe.Pointer
//go:noescape
//extern sem_init
func sem_init(sem *_sem_t, pshared int32, value uint32) int32
func sem_init(sem *semt, pshared int32, value uint32) int32
//go:noescape
//extern sem_wait
func sem_wait(sem *_sem_t) int32
func sem_wait(sem *semt) int32
//go:noescape
//extern sem_post
func sem_post(sem *_sem_t) int32
func sem_post(sem *semt) int32
//go:noescape
//extern sem_timedwait
func sem_timedwait(sem *_sem_t, timeout *timespec) int32
func sem_timedwait(sem *semt, timeout *timespec) int32
//go:noescape
//extern clock_gettime
@ -51,12 +51,12 @@ func semacreate(mp *m) {
return
}
var sem *_sem_t
var sem *semt
// Call libc's malloc rather than malloc. This will
// allocate space on the C heap. We can't call malloc
// here because it could cause a deadlock.
sem = (*_sem_t)(libc_malloc(unsafe.Sizeof(*sem)))
sem = (*semt)(libc_malloc(unsafe.Sizeof(*sem)))
if sem_init(sem, 0, 0) != 0 {
throw("sem_init")
}
@ -86,7 +86,7 @@ func semasleep(ns int64) int32 {
ts.tv_sec = timespec_sec_t(sec)
ts.tv_nsec = timespec_nsec_t(nsec)
if sem_timedwait((*_sem_t)(unsafe.Pointer(_m_.waitsema)), &ts) != 0 {
if sem_timedwait((*semt)(unsafe.Pointer(_m_.waitsema)), &ts) != 0 {
err := errno()
if err == _ETIMEDOUT || err == _EAGAIN || err == _EINTR {
return -1
@ -96,7 +96,7 @@ func semasleep(ns int64) int32 {
return 0
}
for {
r1 := sem_wait((*_sem_t)(unsafe.Pointer(_m_.waitsema)))
r1 := sem_wait((*semt)(unsafe.Pointer(_m_.waitsema)))
if r1 == 0 {
break
}
@ -110,7 +110,7 @@ func semasleep(ns int64) int32 {
//go:nosplit
func semawakeup(mp *m) {
if sem_post((*_sem_t)(unsafe.Pointer(mp.waitsema))) != 0 {
if sem_post((*semt)(unsafe.Pointer(mp.waitsema))) != 0 {
throw("sem_post")
}
}

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
// +build aix darwin dragonfly freebsd hurd linux netbsd openbsd solaris
#include <pthread.h>
#include "_cgo_export.h"