libgo patch committed: Update HURD support for embedded mOS

Message ID CAOyqgcVPMPvYaQNzRrVonw187okjkJcJPHg+i124HN4R6gDDwg@mail.gmail.com
State New
Headers show
Series
  • libgo patch committed: Update HURD support for embedded mOS
Related show

Commit Message

Ian Lance Taylor Dec. 6, 2019, 7:37 p.m.
In the update to 1.13 the mOS field of an m was embedded rather than
named.  This patch updates the HURD support for that change.  This
should fix GCC PR 92842.  I built the code on x86_64-pc-linux-gnu, but
that doesn't actually test this.  Committed to mainline.

Ian

Patch

Index: gcc/go/gofrontend/MERGE
===================================================================
--- gcc/go/gofrontend/MERGE	(revision 279032)
+++ gcc/go/gofrontend/MERGE	(working copy)
@@ -1,4 +1,4 @@ 
-e32651d37e0c43bb7595ac94363b079610bed746
+f04751699e1a1ce98fe8bdbcce5a00f1be6a7d15
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
Index: libgo/go/runtime/os_hurd.go
===================================================================
--- libgo/go/runtime/os_hurd.go	(revision 278984)
+++ libgo/go/runtime/os_hurd.go	(working copy)
@@ -39,7 +39,7 @@  func sem_timedwait(sem *_sem_t, timeout
 
 //go:nosplit
 func semacreate(mp *m) {
-	if mp.mos.waitsema != 0 {
+	if mp.waitsema != 0 {
 		return
 	}
 
@@ -52,7 +52,7 @@  func semacreate(mp *m) {
 	if sem_init(sem, 0, 0) != 0 {
 		throw("sem_init")
 	}
-	mp.mos.waitsema = uintptr(unsafe.Pointer(sem))
+	mp.waitsema = uintptr(unsafe.Pointer(sem))
 }
 
 //go:nosplit
@@ -62,7 +62,7 @@  func semasleep(ns int64) int32 {
 		var ts timespec
 		ts.setNsec(ns)
 
-		if sem_timedwait((*_sem_t)(unsafe.Pointer(_m_.mos.waitsema)), &ts) != 0 {
+		if sem_timedwait((*_sem_t)(unsafe.Pointer(_m_.waitsema)), &ts) != 0 {
 			err := errno()
 			if err == _ETIMEDOUT || err == _EAGAIN || err == _EINTR {
 				return -1
@@ -72,7 +72,7 @@  func semasleep(ns int64) int32 {
 		return 0
 	}
 	for {
-		r1 := sem_wait((*_sem_t)(unsafe.Pointer(_m_.mos.waitsema)))
+		r1 := sem_wait((*_sem_t)(unsafe.Pointer(_m_.waitsema)))
 		if r1 == 0 {
 			break
 		}
@@ -86,7 +86,7 @@  func semasleep(ns int64) int32 {
 
 //go:nosplit
 func semawakeup(mp *m) {
-	if sem_post((*_sem_t)(unsafe.Pointer(mp.mos.waitsema))) != 0 {
+	if sem_post((*_sem_t)(unsafe.Pointer(mp.waitsema))) != 0 {
 		throw("sem_post")
 	}
 }