]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: use private copy of ustat_t on Linux
authorTobias Klauser <tklauser@distanz.ch>
Mon, 25 Jun 2018 07:20:14 +0000 (09:20 +0200)
committerTobias Klauser <tobias.klauser@gmail.com>
Mon, 20 Aug 2018 08:01:43 +0000 (08:01 +0000)
Port CL 120295 from golang.org/x/sys/unix to the syscall package.

The ustat syscall has been deprecated on Linux for a long time and the
upcoming glibc 2.28 will remove ustat.h and it can no longer be used to
to generate the Ustat_t wrapper type. Since Linux still provides the
syscall, let's not break this functionality and add a private copy of
struct ustat so Ustat_t can still be generated.

Fixes golang/go#25990

Change-Id: I0dab2ba1cc76fbd21553b499f9256fd9d59ca409
Reviewed-on: https://go-review.googlesource.com/120563
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/syscall/types_linux.go

index 3c4c2f2cfd767cf0ab14756e26cb5329bb893113..ccc5c54f0bfd6f2a34139a839ef16f8aa72c7dbb 100644 (file)
@@ -53,7 +53,6 @@ package syscall
 #include <termios.h>
 #include <time.h>
 #include <unistd.h>
-#include <ustat.h>
 #include <utime.h>
 
 enum {
@@ -124,6 +123,15 @@ struct my_epoll_event {
        int32_t pad;
 };
 
+// ustat is deprecated and glibc 2.28 removed ustat.h. Provide the type here for
+// backwards compatibility. Copied from /usr/include/bits/ustat.h
+struct ustat {
+       __daddr_t f_tfree;
+       __ino_t f_tinode;
+       char f_fname[6];
+       char f_fpack[6];
+};
+
 */
 import "C"