소스 검색

unix: use int8 for RawSockaddrUnix.Path on linux/riscv64

On linux/riscv64, char defaults to unsigned, so explicitly make
RawSockaddrUnix.Path signed.

Patch by Ryan O'Leary.

Updates golang/go#27532

Change-Id: If99a3953462ad98f61d8fafcda3ebb71b44e6018
Reviewed-on: https://go-review.googlesource.com/c/157900
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Tobias Klauser 6 년 전
부모
커밋
11f53e0313
2개의 변경된 파일3개의 추가작업 그리고 3개의 파일을 삭제
  1. 2 2
      unix/linux/types.go
  2. 1 1
      unix/ztypes_linux_riscv64.go

+ 2 - 2
unix/linux/types.go

@@ -230,8 +230,8 @@ struct sockaddr_rc {
 // copied from /usr/include/linux/un.h
 struct my_sockaddr_un {
 	sa_family_t sun_family;
-#if defined(__ARM_EABI__) || defined(__powerpc64__)
-	// on ARM char is by default unsigned
+#if defined(__ARM_EABI__) || defined(__powerpc64__) || defined(__riscv)
+	// on some platforms char is unsigned by default
 	signed char sun_path[108];
 #else
 	char sun_path[108];

+ 1 - 1
unix/ztypes_linux_riscv64.go

@@ -212,7 +212,7 @@ type RawSockaddrInet6 struct {
 
 type RawSockaddrUnix struct {
 	Family uint16
-	Path   [108]uint8
+	Path   [108]int8
 }
 
 type RawSockaddrLinklayer struct {