From 67525cb83217602994d2b75c4a07c9d92705079f Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Wed, 6 Mar 2013 16:35:19 +0100 Subject: [PATCH] Sync with Linux 3.8 --- ChangeLog | 38 ++++++++++++++++++++++++ ports/ChangeLog.alpha | 6 ++++ ports/ChangeLog.hppa | 6 ++++ ports/ChangeLog.ia64 | 5 ++++ ports/ChangeLog.mips | 4 +++ ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h | 3 ++ ports/sysdeps/unix/sysv/linux/alpha/bits/msq.h | 1 + ports/sysdeps/unix/sysv/linux/generic/bits/msq.h | 1 + ports/sysdeps/unix/sysv/linux/hppa/bits/mman.h | 3 ++ ports/sysdeps/unix/sysv/linux/hppa/bits/msq.h | 1 + ports/sysdeps/unix/sysv/linux/ia64/bits/msq.h | 6 ++-- ports/sysdeps/unix/sysv/linux/mips/bits/msq.h | 1 + sysdeps/unix/sysv/linux/bits/mman-linux.h | 3 ++ sysdeps/unix/sysv/linux/bits/msq.h | 1 + sysdeps/unix/sysv/linux/internal_statvfs.c | 6 ++++ sysdeps/unix/sysv/linux/linux_fsinfo.h | 7 +++++ sysdeps/unix/sysv/linux/pathconf.c | 6 ++++ sysdeps/unix/sysv/linux/powerpc/bits/msq.h | 1 + sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h | 3 +- sysdeps/unix/sysv/linux/s390/bits/msq.h | 1 + sysdeps/unix/sysv/linux/s390/sys/ptrace.h | 3 +- sysdeps/unix/sysv/linux/sparc/bits/msq.h | 1 + sysdeps/unix/sysv/linux/sparc/sys/ptrace.h | 3 +- sysdeps/unix/sysv/linux/sys/ptrace.h | 3 +- sysdeps/unix/sysv/linux/x86/bits/msq.h | 1 + 25 files changed, 108 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index cfda9f4..4d018e8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,41 @@ +2013-03-06 Andreas Jaeger + + * sysdeps/unix/sysv/linux/bits/mman-linux.h (MAP_HUGE_SHIFT): Define. + (MAP_HUGE_MASK): Define. + + * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h (PTRACE_O_EXIT_KILL): + Define. + (PTRACE_O_MASK): Adjust for PTRACE_O_EXITKILL. + * sysdeps/unix/sysv/linux/s390/sys/ptrace.h (PTRACE_O_EXIT_KILL): + Define. + (PTRACE_O_MASK): Adjust for PTRACE_O_EXITKILL. + * sysdeps/unix/sysv/linux/sys/ptrace.h (PTRACE_O_EXIT_KILL): + Define. + (PTRACE_O_MASK): Adjust for PTRACE_O_EXITKILL. + * sysdeps/unix/sysv/linux/sparc/sys/ptrace.h (PTRACE_O_EXITKILL): + Define. + (PTRACE_O_MASK): Adjust for PTRACE_O_EXITKILL. + + * sysdeps/unix/sysv/linux/x86/bits/msq.h (MSG_COPY): Likewise. + * sysdeps/unix/sysv/linux/generic/bits/msq.h (MSG_COPY): Define. + * sysdeps/unix/sysv/linux/powerpc/bits/msq.h (MSG_COPY): Likewise. + * sysdeps/unix/sysv/linux/bits/msq.h (MSG_COPY): Likewise. + * sysdeps/unix/sysv/linux/s390/bits/msq.h (MSG_COPY): Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/msq.h (MSG_COPY): Define. + + * sysdeps/unix/sysv/linux/pathconf.c (__statfs_filesize_max): + Handle f2fs. + + * sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags): + Handle f2fs and efivarfs. + + * sysdeps/unix/sysv/linux/pathconf.c (__statfs_link_max): Handle + f2fs. + + * sysdeps/unix/sysv/linux/linux_fsinfo.h (F2FS_SUPER_MAGIC): Add. + (EFIVARFS_MAGIC): Add. + (F2FS_LINK_MAX): Add. + 2013-03-06 Paul Pluzhnikov * stdio-common/vfprintf.c: Replace __builtin_expect with diff --git a/ports/ChangeLog.alpha b/ports/ChangeLog.alpha index 2814559..9a77d27 100644 --- a/ports/ChangeLog.alpha +++ b/ports/ChangeLog.alpha @@ -1,3 +1,9 @@ +2013-03-06 Andreas Jaeger + + * sysdeps/unix/sysv/linux/alpha/bits/mman.h (MAP_HUGE_MASK) + (MAP_HUGE_SHIFT): Define. + * sysdeps/unix/sysv/linux/alpha/bits/msq.h (MSG_COPY): Define. + 2013-02-19 Richard Henderson [BZ #14920] diff --git a/ports/ChangeLog.hppa b/ports/ChangeLog.hppa index 6314f12..0610c17 100644 --- a/ports/ChangeLog.hppa +++ b/ports/ChangeLog.hppa @@ -1,3 +1,9 @@ +2013-03-06 Andreas Jaeger + + * sysdeps/unix/sysv/linux/hppa/bits/msq.h (MSG_COPY): Define. + * ports/sysdeps/unix/sysv/linux/hppa/bits/mman.h (MAP_HUGE_MASK) + (MAP_HUGE_SHIFT): Define. + 2013-02-14 Carlos O'Donell * sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c diff --git a/ports/ChangeLog.ia64 b/ports/ChangeLog.ia64 index d9fda45..e183560 100644 --- a/ports/ChangeLog.ia64 +++ b/ports/ChangeLog.ia64 @@ -1,3 +1,8 @@ +2013-03-06 Andreas Jaeger + + * sysdeps/unix/sysv/linux/ia64/bits/msq.h (MSG_COPY): Define. + (MSG_EXCEPT): Make conditional on __USE_GNU. + 2013-02-18 Siddhesh Poyarekar * sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist: Add diff --git a/ports/ChangeLog.mips b/ports/ChangeLog.mips index 2518065..fe95254 100644 --- a/ports/ChangeLog.mips +++ b/ports/ChangeLog.mips @@ -1,3 +1,7 @@ +2013-03-06 Andreas Jaeger + + * sysdeps/unix/sysv/linux/mips/bits/msq.h (MSG_COPY): Define. + 2013-02-27 Chung-Lin Tang Maciej W. Rozycki Maxim Kuvyrkov diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h index 2238c2c..c51b05d 100644 --- a/ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h +++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h @@ -51,6 +51,9 @@ # define MAP_FILE 0 # define MAP_ANONYMOUS 0x10 /* Don't use a file. */ # define MAP_ANON MAP_ANONYMOUS +/* When MAP_HUGETLB is set bits [26:31] encode the log2 of the huge page size. */ +# define MAP_HUGE_SHIFT 26 +# define MAP_HUGE_MASK 0x3f #endif /* Not used by Linux, but here to make sure we don't clash with diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/msq.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/msq.h index 1b07465..8bb057b 100644 --- a/ports/sysdeps/unix/sysv/linux/alpha/bits/msq.h +++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/msq.h @@ -25,6 +25,7 @@ #define MSG_NOERROR 010000 /* no error if message is too big */ #ifdef __USE_GNU # define MSG_EXCEPT 020000 /* recv any msg except of specified type */ +# define MSG_COPY 040000 /* copy (not remove) all queue messages */ #endif /* Types used in the structure definition. */ diff --git a/ports/sysdeps/unix/sysv/linux/generic/bits/msq.h b/ports/sysdeps/unix/sysv/linux/generic/bits/msq.h index 87f37b4d..49cbf06 100644 --- a/ports/sysdeps/unix/sysv/linux/generic/bits/msq.h +++ b/ports/sysdeps/unix/sysv/linux/generic/bits/msq.h @@ -27,6 +27,7 @@ #define MSG_NOERROR 010000 /* no error if message is too big */ #ifdef __USE_GNU # define MSG_EXCEPT 020000 /* recv any msg except of specified type */ +# define MSG_COPY 040000 /* copy (not remove) all queue messages */ #endif /* Types used in the structure definition. */ diff --git a/ports/sysdeps/unix/sysv/linux/hppa/bits/mman.h b/ports/sysdeps/unix/sysv/linux/hppa/bits/mman.h index c216ddb..2835b0f 100644 --- a/ports/sysdeps/unix/sysv/linux/hppa/bits/mman.h +++ b/ports/sysdeps/unix/sysv/linux/hppa/bits/mman.h @@ -44,6 +44,9 @@ # define MAP_ANONYMOUS 0x10 /* Don't use a file */ # define MAP_ANON MAP_ANONYMOUS # define MAP_VARIABLE 0 +/* When MAP_HUGETLB is set bits [26:31] encode the log2 of the huge page size. */ +# define MAP_HUGE_SHIFT 26 +# define MAP_HUGE_MASK 0x3f #endif /* These are Linux-specific. */ diff --git a/ports/sysdeps/unix/sysv/linux/hppa/bits/msq.h b/ports/sysdeps/unix/sysv/linux/hppa/bits/msq.h index e56286b..ac35f51 100644 --- a/ports/sysdeps/unix/sysv/linux/hppa/bits/msq.h +++ b/ports/sysdeps/unix/sysv/linux/hppa/bits/msq.h @@ -26,6 +26,7 @@ #define MSG_NOERROR 010000 /* no error if message is too big */ #ifdef __USE_GNU # define MSG_EXCEPT 020000 /* recv any msg except of specified type */ +# define MSG_COPY 040000 /* copy (not remove) all queue messages */ #endif /* Types used in the structure definition. */ diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bits/msq.h b/ports/sysdeps/unix/sysv/linux/ia64/bits/msq.h index 68d3ed7..8519390 100644 --- a/ports/sysdeps/unix/sysv/linux/ia64/bits/msq.h +++ b/ports/sysdeps/unix/sysv/linux/ia64/bits/msq.h @@ -24,8 +24,10 @@ /* Define options for message queue functions. */ #define MSG_NOERROR 010000 /* no error if message is too big */ -#define MSG_EXCEPT 020000 /* recv any msg except of specified type */ - +#ifdef __USE_GNU +# define MSG_EXCEPT 020000 /* recv any msg except of specified type */ +# define MSG_COPY 040000 /* copy (not remove) all queue messages */ +#endif /* Structure of record for one message inside the kernel. The type `struct __msg' is opaque. */ diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/msq.h b/ports/sysdeps/unix/sysv/linux/mips/bits/msq.h index 8439069..e814bc7 100644 --- a/ports/sysdeps/unix/sysv/linux/mips/bits/msq.h +++ b/ports/sysdeps/unix/sysv/linux/mips/bits/msq.h @@ -25,6 +25,7 @@ #define MSG_NOERROR 010000 /* no error if message is too big */ #ifdef __USE_GNU # define MSG_EXCEPT 020000 /* recv any msg except of specified type */ +# define MSG_COPY 040000 /* copy (not remove) all queue messages */ #endif /* Types used in the structure definition. */ diff --git a/sysdeps/unix/sysv/linux/bits/mman-linux.h b/sysdeps/unix/sysv/linux/bits/mman-linux.h index 6c06069..27d2dc4 100644 --- a/sysdeps/unix/sysv/linux/bits/mman-linux.h +++ b/sysdeps/unix/sysv/linux/bits/mman-linux.h @@ -51,6 +51,9 @@ # define MAP_FILE 0 # define MAP_ANONYMOUS 0x20 /* Don't use a file. */ # define MAP_ANON MAP_ANONYMOUS +/* When MAP_HUGETLB is set bits [26:31] encode the log2 of the huge page size. */ +# define MAP_HUGE_SHIFT 26 +# define MAP_HUGE_MASK 0x3f #endif /* Flags to `msync'. */ diff --git a/sysdeps/unix/sysv/linux/bits/msq.h b/sysdeps/unix/sysv/linux/bits/msq.h index bd005fb..8f6eb8a 100644 --- a/sysdeps/unix/sysv/linux/bits/msq.h +++ b/sysdeps/unix/sysv/linux/bits/msq.h @@ -25,6 +25,7 @@ #define MSG_NOERROR 010000 /* no error if message is too big */ #ifdef __USE_GNU # define MSG_EXCEPT 020000 /* recv any msg except of specified type */ +# define MSG_COPY 040000 /* copy (not remove) all queue messages */ #endif /* Types used in the structure definition. */ diff --git a/sysdeps/unix/sysv/linux/internal_statvfs.c b/sysdeps/unix/sysv/linux/internal_statvfs.c index 4cd4f04..45a66b8 100644 --- a/sysdeps/unix/sysv/linux/internal_statvfs.c +++ b/sysdeps/unix/sysv/linux/internal_statvfs.c @@ -117,6 +117,12 @@ __statvfs_getflags (const char *name, int fstype, struct stat64 *st) case LUSTRE_SUPER_MAGIC: fsname = "lustre"; break; + case F2FS_SUPER_MAGIC: + fsname = "f2fs"; + break; + case EFIVARFS_MAGIC: + fsname = "efivarfs"; + break; } FILE *mtab = __setmntent ("/proc/mounts", "r"); diff --git a/sysdeps/unix/sysv/linux/linux_fsinfo.h b/sysdeps/unix/sysv/linux/linux_fsinfo.h index 1bcd9e2..2312b47 100644 --- a/sysdeps/unix/sysv/linux/linux_fsinfo.h +++ b/sysdeps/unix/sysv/linux/linux_fsinfo.h @@ -61,9 +61,15 @@ #define EFS_SUPER_MAGIC 0x414a53 #define EFS_MAGIC 0x072959 +/* Constants that identifies the `evivar' filesystem. */ +#define EFIVARFS_MAGIC 0xde5e81e4 + /* Constant that identifies the `ext2' and `ext3' filesystems. */ #define EXT2_SUPER_MAGIC 0xef53 +/* Constant that identifies the `f2fs' filesystem. */ +#define F2FS_SUPER_MAGIC 0xf2f52010 + /* Constant that identifies the `hpfs' filesystem. */ #define HPFS_SUPER_MAGIC 0xf995e849 @@ -153,6 +159,7 @@ #define COH_LINK_MAX 10000 #define EXT2_LINK_MAX 32000 #define EXT4_LINK_MAX 65000 +#define F2FS_LINK_MAX 32000 #define LUSTRE_LINK_MAX EXT4_LINK_MAX #define MINIX2_LINK_MAX 65530 #define MINIX_LINK_MAX 250 diff --git a/sysdeps/unix/sysv/linux/pathconf.c b/sysdeps/unix/sysv/linux/pathconf.c index e86925f..edc691e 100644 --- a/sysdeps/unix/sysv/linux/pathconf.c +++ b/sysdeps/unix/sysv/linux/pathconf.c @@ -168,6 +168,9 @@ __statfs_link_max (int result, const struct statfs *fsbuf, const char *file, the hard way. */ return distinguish_extX (fsbuf, file, fd); + case F2FS_SUPER_MAGIC: + return F2FS_LINK_MAX; + case MINIX_SUPER_MAGIC: case MINIX_SUPER_MAGIC2: return MINIX_LINK_MAX; @@ -221,6 +224,9 @@ __statfs_filesize_max (int result, const struct statfs *fsbuf) switch (fsbuf->f_type) { + case F2FS_SUPER_MAGIC: + return 256; + case BTRFS_SUPER_MAGIC: return 255; diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/msq.h b/sysdeps/unix/sysv/linux/powerpc/bits/msq.h index b9811c6..59147c2 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/msq.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/msq.h @@ -25,6 +25,7 @@ #define MSG_NOERROR 010000 /* no error if message is too big */ #ifdef __USE_GNU # define MSG_EXCEPT 020000 /* recv any msg except of specified type */ +# define MSG_COPY 040000 /* copy (not remove) all queue messages */ #endif /* Types used in the structure definition. */ diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h index dfda1c8..e6e916b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h +++ b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h @@ -136,7 +136,8 @@ enum __ptrace_setoptions PTRACE_O_TRACEVFORKDONE = 0x00000020, PTRACE_O_TRACEEXIT = 0x00000040, PTRACE_O_TRACESECCOMP = 0x00000080, - PTRACE_O_MASK = 0x000000ff + PTRACE_O_EXITKILL = 0x00100000, + PTRACE_O_MASK = 0x001000ff }; /* Wait extended result codes for the above trace options. */ diff --git a/sysdeps/unix/sysv/linux/s390/bits/msq.h b/sysdeps/unix/sysv/linux/s390/bits/msq.h index 5a1f6b2..a5eaf89 100644 --- a/sysdeps/unix/sysv/linux/s390/bits/msq.h +++ b/sysdeps/unix/sysv/linux/s390/bits/msq.h @@ -26,6 +26,7 @@ #define MSG_NOERROR 010000 /* no error if message is too big */ #ifdef __USE_GNU # define MSG_EXCEPT 020000 /* recv any msg except of specified type */ +# define MSG_COPY 040000 /* copy (not remove) all queue messages */ #endif /* Types used in the structure definition. */ diff --git a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h index b9062dc..ca2ebb9 100644 --- a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h +++ b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h @@ -175,7 +175,8 @@ enum __ptrace_setoptions PTRACE_O_TRACEVFORKDONE = 0x00000020, PTRACE_O_TRACEEXIT = 0x00000040, PTRACE_O_TRACESECCOMP = 0x00000080, - PTRACE_O_MASK = 0x000000ff + PTRACE_O_EXITKILL = 0x00100000, + PTRACE_O_MASK = 0x001000ff }; /* Wait extended result codes for the above trace options. */ diff --git a/sysdeps/unix/sysv/linux/sparc/bits/msq.h b/sysdeps/unix/sysv/linux/sparc/bits/msq.h index 84c4b85..0a01927 100644 --- a/sysdeps/unix/sysv/linux/sparc/bits/msq.h +++ b/sysdeps/unix/sysv/linux/sparc/bits/msq.h @@ -26,6 +26,7 @@ #define MSG_NOERROR 010000 /* no error if message is too big */ #ifdef __USE_GNU # define MSG_EXCEPT 020000 /* recv any msg except of specified type */ +# define MSG_COPY 040000 /* copy (not remove) all queue messages */ #endif /* Types used in the structure definition. */ diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h index bd6fd53..7ba8f5f 100644 --- a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h +++ b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h @@ -219,7 +219,8 @@ enum __ptrace_setoptions PTRACE_O_TRACEVFORKDONE = 0x00000020, PTRACE_O_TRACEEXIT = 0x00000040, PTRACE_O_TRACESECCOMP = 0x00000080, - PTRACE_O_MASK = 0x000000ff + PTRACE_O_EXITKILL = 0x00100000, + PTRACE_O_MASK = 0x001000ff }; /* Wait extended result codes for the above trace options. */ diff --git a/sysdeps/unix/sysv/linux/sys/ptrace.h b/sysdeps/unix/sysv/linux/sys/ptrace.h index d04fab5..08709bf 100644 --- a/sysdeps/unix/sysv/linux/sys/ptrace.h +++ b/sysdeps/unix/sysv/linux/sys/ptrace.h @@ -166,7 +166,8 @@ enum __ptrace_setoptions PTRACE_O_TRACEVFORKDONE = 0x00000020, PTRACE_O_TRACEEXIT = 0x00000040, PTRACE_O_TRACESECCOMP = 0x00000080, - PTRACE_O_MASK = 0x000000ff + PTRACE_O_EXITKILL = 0x00100000, + PTRACE_O_MASK = 0x001000ff }; /* Wait extended result codes for the above trace options. */ diff --git a/sysdeps/unix/sysv/linux/x86/bits/msq.h b/sysdeps/unix/sysv/linux/x86/bits/msq.h index ef5cc38..9355e46 100644 --- a/sysdeps/unix/sysv/linux/x86/bits/msq.h +++ b/sysdeps/unix/sysv/linux/x86/bits/msq.h @@ -25,6 +25,7 @@ #define MSG_NOERROR 010000 /* no error if message is too big */ #ifdef __USE_GNU # define MSG_EXCEPT 020000 /* recv any msg except of specified type */ +# define MSG_COPY 040000 /* copy (not remove) all queue messages */ #endif /* Types used in the structure definition. */ -- 2.7.4