diff -uNrp glibc.old/dlfcn/Makefile glibc-2.3.2/dlfcn/Makefile --- glibc.old/dlfcn/Makefile 2003-02-25 19:46:32.000000000 -0500 +++ glibc-2.3.2/dlfcn/Makefile 2004-02-03 14:22:50.000000000 -0500 @@ -63,6 +63,8 @@ LDFLAGS-dl.so = -Wl,-dynamic-linker,$(sl test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(modules-names))) $(test-modules): $(objpfx)%.so: $(objpfx)%.os $(build-module) +# without following rule, test-modules don't get built when cross-compiling +tests: $(test-modules) $(objpfx)glrefmain: $(libdl) $(objpfx)glrefmain.out: $(objpfx)glrefmain \ diff -uNrp glibc.old/elf/dl-conflict.c glibc-2.3.2/elf/dl-conflict.c --- glibc.old/elf/dl-conflict.c 2002-10-17 13:05:51.000000000 -0400 +++ glibc-2.3.2/elf/dl-conflict.c 2004-02-03 14:22:50.000000000 -0500 @@ -33,6 +33,7 @@ void _dl_resolve_conflicts (struct link_map *l, ElfW(Rela) *conflict, ElfW(Rela) *conflictend) { +#ifndef _DL_HAVE_NO_ELF_MACHINE_RELA if (__builtin_expect (GL(dl_debug_mask) & DL_DEBUG_RELOC, 0)) _dl_printf ("\nconflict processing: %s\n", l->l_name[0] ? l->l_name : rtld_progname); @@ -64,4 +65,5 @@ _dl_resolve_conflicts (struct link_map * for (; conflict < conflictend; ++conflict) elf_machine_rela (l, conflict, NULL, NULL, (void *) conflict->r_offset); } +#endif } diff -uNrp glibc.old/elf/Makefile glibc-2.3.2/elf/Makefile --- glibc.old/elf/Makefile 2003-02-21 01:28:09.000000000 -0500 +++ glibc-2.3.2/elf/Makefile 2004-02-03 14:22:50.000000000 -0500 @@ -332,6 +332,9 @@ CPPFLAGS-.os += $(if $(filter $(@F),$(pa test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names)))) generated += $(addsuffix .so,$(strip $(modules-names))) +# without following rule, test-modules don't get built when cross-compiling +tests: $(test-modules) + ifeq (yes,$(build-shared)) ifeq ($(cross-compiling),no) tests: $(objpfx)tst-pathopt.out diff -uNrp glibc.old/elf/soinit.c glibc-2.3.2/elf/soinit.c --- glibc.old/elf/soinit.c 2001-11-15 18:09:20.000000000 -0500 +++ glibc-2.3.2/elf/soinit.c 2004-02-03 14:22:49.000000000 -0500 @@ -25,7 +25,7 @@ run_hooks (void (*const list[]) (void)) } #ifdef HAVE_DWARF2_UNWIND_INFO -static char __EH_FRAME_BEGIN__[] +const static char __EH_FRAME_BEGIN__[] __attribute__ ((section (".eh_frame"))) = { }; # ifdef HAVE_DWARF2_UNWIND_INFO_STATIC diff -uNrp glibc.old/include/libc-symbols.h glibc-2.3.2/include/libc-symbols.h --- glibc.old/include/libc-symbols.h 2003-01-03 18:21:03.000000000 -0500 +++ glibc-2.3.2/include/libc-symbols.h 2004-02-03 14:22:50.000000000 -0500 @@ -247,7 +247,7 @@ __attribute__ ((unused, section (".gnu.warning." #symbol __sec_comment))) \ = msg; # define libc_freeres_ptr(decl) \ - __make_section_unallocated ("__libc_freeres_ptrs, \"aw\", @nobits") \ + __make_section_unallocated ("__libc_freeres_ptrs, \"aw\", %nobits") \ decl __attribute__ ((section ("__libc_freeres_ptrs" __sec_comment))) # define __libc_freeres_fn_section \ __attribute__ ((section ("__libc_freeres_fn"))) diff -uNrp glibc.old/libio/swprintf.c glibc-2.3.2/libio/swprintf.c --- glibc.old/libio/swprintf.c 2001-07-07 15:21:03.000000000 -0400 +++ glibc-2.3.2/libio/swprintf.c 2004-02-03 14:22:51.000000000 -0500 @@ -1,4 +1,5 @@ -/* Copyright (C) 1991,1995,1997,1998,1999,2000 Free Software Foundation, Inc. +/* Copyright (C) 1991,1995,1997,1998,1999,2000,2003 + Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,10 +23,7 @@ /* Write formatted output into S, according to the format string FORMAT. */ /* VARARGS3 */ int -swprintf (s, n, format) - wchar_t *s; - size_t n; - const wchar_t *format; +swprintf (wchar_t *s, size_t n, const wchar_t *format, ...) { va_list arg; int done; diff -uNrp glibc.old/libio/swscanf.c glibc-2.3.2/libio/swscanf.c --- glibc.old/libio/swscanf.c 2001-07-07 15:21:03.000000000 -0400 +++ glibc-2.3.2/libio/swscanf.c 2004-02-03 14:22:51.000000000 -0500 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1995, 1996, 1998, 1999 Free Software Foundation, Inc. +/* Copyright (C) 1991,1995,1996,1998,1999,2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,9 +22,7 @@ /* Read formatted input from S, according to the format string FORMAT. */ /* VARARGS2 */ int -swscanf (s, format) - const wchar_t *s; - const wchar_t *format; +swscanf (const wchar_t *s, const wchar_t *format, ...) { va_list arg; int done; diff -uNrp glibc.old/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h --- glibc.old/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h 2003-01-12 04:13:57.000000000 -0500 +++ glibc-2.3.2/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h 2004-02-03 14:24:19.000000000 -0500 @@ -24,6 +24,17 @@ #if !defined NOT_IN_libc || defined IS_IN_libpthread +/* We push lr onto the stack, so we have to use ldmib instead of ldmia + to find the saved arguments. */ +# ifdef PIC +# undef DOARGS_5 +# undef DOARGS_6 +# undef DOARGS_7 +# define DOARGS_5 str r4, [sp, $-4]!; ldr r4, [sp, $8]; +# define DOARGS_6 mov ip, sp; stmfd sp!, {r4, r5}; ldmib ip, {r4, r5}; +# define DOARGS_7 mov ip, sp; stmfd sp!, {r4, r5, r6}; ldmib ip, {r4, r5, r6}; +# endif + # undef PSEUDO_RET # define PSEUDO_RET \ ldrcc pc, [sp], $4; \ @@ -34,7 +45,7 @@ # define PSEUDO(name, syscall_name, args) \ .section ".text"; \ PSEUDO_PROLOGUE; \ - ENTRY (name) \ + ENTRY (name); \ SINGLE_THREAD_P_INT; \ bne .Lpseudo_cancel; \ DO_CALL (syscall_name, args); \ @@ -110,7 +121,7 @@ extern int __local_multiple_threads attr ldr reg, 2b; \ 3: \ add ip, pc, ip; \ - ldr ip, [ip, lr]; \ + ldr ip, [ip, reg]; \ teq ip, #0; # define SINGLE_THREAD_P_INT \ str lr, [sp, $-4]!; \ diff -uNrp glibc.old/malloc/tst-calloc.c glibc-2.3.2/malloc/tst-calloc.c --- glibc.old/malloc/tst-calloc.c 2002-08-07 19:03:19.000000000 -0400 +++ glibc-2.3.2/malloc/tst-calloc.c 2004-02-03 14:22:50.000000000 -0500 @@ -25,9 +25,8 @@ #include -/* Number of samples per size. */ -#define N 50000 - +/* Number of samples per size. This is also the maximum memory consumption in kilobytes. */ +#define N 8000 static void fixed_test (int size) diff -uNrp glibc.old/resolv/Makefile glibc-2.3.2/resolv/Makefile --- glibc.old/resolv/Makefile 2003-02-25 18:40:08.000000000 -0500 +++ glibc-2.3.2/resolv/Makefile 2004-02-03 14:22:50.000000000 -0500 @@ -93,6 +93,8 @@ $(objpfx)tst-leaks: $(objpfx)libresolv.s tst-leaks-ENV = MALLOC_TRACE=$(objpfx)tst-leaks.mtrace $(objpfx)mtrace-tst-leaks: $(objpfx)tst-leaks.out $(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@ +ifeq (no,$(cross-compiling)) ifneq (no,$(PERL)) tests: $(objpfx)mtrace-tst-leaks endif +endif diff -uNrp glibc.old/stdio-common/sscanf.c glibc-2.3.2/stdio-common/sscanf.c --- glibc.old/stdio-common/sscanf.c 2002-08-10 14:09:08.000000000 -0400 +++ glibc-2.3.2/stdio-common/sscanf.c 2004-02-03 14:22:51.000000000 -0500 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,95,96,98,2002 Free Software Foundation, Inc. +/* Copyright (C) 1991,1995,1996,1998,2002,2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -27,9 +27,7 @@ /* Read formatted input from S, according to the format string FORMAT. */ /* VARARGS2 */ int -sscanf (s, format) - const char *s; - const char *format; +sscanf (const char *s, const char *format, ...) { va_list arg; int done; diff -uNrp glibc.old/string/bits/string2.h glibc-2.3.2/string/bits/string2.h --- glibc.old/string/bits/string2.h 2002-05-25 02:09:18.000000000 -0400 +++ glibc-2.3.2/string/bits/string2.h 2004-02-03 14:22:51.000000000 -0500 @@ -1,5 +1,5 @@ /* Machine-independant string function optimizations. - Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc. + Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -76,7 +76,7 @@ use unaligned memory accesses. */ # define __STRING2_COPY_TYPE(N) \ typedef struct { unsigned char __arr[N]; } \ - __STRING2_COPY_ARR##N __attribute__ ((packed)) + __attribute__ ((__packed__)) __STRING2_COPY_ARR##N __STRING2_COPY_TYPE (2); __STRING2_COPY_TYPE (3); __STRING2_COPY_TYPE (4); diff -uNrp glibc.old/sysdeps/arm/machine-gmon.h glibc-2.3.2/sysdeps/arm/machine-gmon.h --- glibc.old/sysdeps/arm/machine-gmon.h 2001-07-07 15:21:19.000000000 -0400 +++ glibc-2.3.2/sysdeps/arm/machine-gmon.h 2004-02-03 14:22:49.000000000 -0500 @@ -32,10 +32,8 @@ void _mcount (void); weak_alias (_mcount, mcount) #endif -static void mcount_internal (u_long frompc, u_long selfpc); - #define _MCOUNT_DECL(frompc, selfpc) \ -static void mcount_internal (u_long frompc, u_long selfpc) +void mcount_internal (u_long frompc, u_long selfpc) /* This macro/func MUST save r0, r1 because the compiler inserts blind calls to _mount(), ignoring the fact that _mcount may diff -uNrp glibc.old/sysdeps/gnu/errlist.awk glibc-2.3.2/sysdeps/gnu/errlist.awk --- glibc.old/sysdeps/gnu/errlist.awk 2002-08-28 19:39:22.000000000 -0400 +++ glibc-2.3.2/sysdeps/gnu/errlist.awk 2004-02-03 14:22:49.000000000 -0500 @@ -39,7 +39,7 @@ BEGIN { print "/* This file is generated from errno.texi by errlist.awk. */" print ""; - print "#include "; + print "#include "; print "#include "; print ""; print "#ifndef ERR_REMAP"; diff -uNrp glibc.old/sysdeps/gnu/errlist.c glibc-2.3.2/sysdeps/gnu/errlist.c --- glibc.old/sysdeps/gnu/errlist.c 2002-08-28 19:39:22.000000000 -0400 +++ glibc-2.3.2/sysdeps/gnu/errlist.c 2004-02-03 14:27:21.000000000 -0500 @@ -1,6 +1,6 @@ /* This file is generated from errno.texi by errlist.awk. */ -#include +#include #include #ifndef ERR_REMAP diff -uNrp glibc.old/sysdeps/mips/dl-machine.h glibc-2.3.2/sysdeps/mips/dl-machine.h --- glibc.old/sysdeps/mips/dl-machine.h 2003-02-12 04:42:22.000000000 -0500 +++ glibc-2.3.2/sysdeps/mips/dl-machine.h 2004-02-03 14:22:50.000000000 -0500 @@ -56,6 +56,10 @@ #define ELF_MACHINE_JMP_SLOT R_MIPS_REL32 #define elf_machine_type_class(type) ELF_RTYPE_CLASS_PLT +/* MIPS doesn't support RELA; see: + http://lists.debian.org/debian-mips/2002/debian-mips-200209/msg00020.html */ +#define _DL_HAVE_NO_ELF_MACHINE_RELA + /* Translate a processor specific dynamic tag to the index in l_info array. */ #define DT_MIPS(x) (DT_MIPS_##x - DT_LOPROC + DT_NUM) diff -uNrp glibc.old/sysdeps/mips/Makefile glibc-2.3.2/sysdeps/mips/Makefile --- glibc.old/sysdeps/mips/Makefile 2000-09-06 16:26:50.000000000 -0400 +++ glibc-2.3.2/sysdeps/mips/Makefile 2004-02-03 14:22:50.000000000 -0500 @@ -6,3 +6,11 @@ endif ifeq ($(subdir),setjmp) sysdep_routines += setjmp_aux endif + +ifeq ($(subdir),csu) +ifeq (yes,$(build-shared)) +# Compatibility +sysdep_routines += divdi3 +shared-only-routines += divdi3 +endif +endif diff -uNrp glibc.old/sysdeps/powerpc/nofpu/sim-full.c glibc-2.3.2/sysdeps/powerpc/nofpu/sim-full.c --- glibc.old/sysdeps/powerpc/nofpu/sim-full.c 2002-10-19 16:06:29.000000000 -0400 +++ glibc-2.3.2/sysdeps/powerpc/nofpu/sim-full.c 2004-02-03 14:22:50.000000000 -0500 @@ -23,12 +23,15 @@ #include "soft-supp.h" /* Global to store sticky exceptions. */ -int __sim_exceptions; +int __sim_exceptions __attribute__ ((nocommon)); +libc_hidden_data_def (__sim_exceptions); /* By default, no exceptions should trap. */ int __sim_disabled_exceptions = 0xffffffff; +libc_hidden_data_def (__sim_disabled_exceptions); -int __sim_round_mode; +int __sim_round_mode __attribute__ ((nocommon)); +libc_hidden_data_def (__sim_round_mode); void __simulate_exceptions (int x) diff -uNrp glibc.old/sysdeps/powerpc/nofpu/soft-supp.h glibc-2.3.2/sysdeps/powerpc/nofpu/soft-supp.h --- glibc.old/sysdeps/powerpc/nofpu/soft-supp.h 2002-10-19 16:06:29.000000000 -0400 +++ glibc-2.3.2/sysdeps/powerpc/nofpu/soft-supp.h 2004-02-03 14:22:50.000000000 -0500 @@ -27,7 +27,11 @@ typedef union } fenv_union_t; -extern int __sim_exceptions attribute_hidden; -extern int __sim_disabled_exceptions attribute_hidden; -extern int __sim_round_mode attribute_hidden; +extern int __sim_exceptions; +libc_hidden_proto (__sim_exceptions); +extern int __sim_disabled_exceptions; +libc_hidden_proto (__sim_disabled_exceptions); +extern int __sim_round_mode; +libc_hidden_proto (__sim_round_mode); + extern void __simulate_exceptions (int x) attribute_hidden; diff -uNrp glibc.old/sysdeps/powerpc/soft-fp/sfp-machine.h glibc-2.3.2/sysdeps/powerpc/soft-fp/sfp-machine.h --- glibc.old/sysdeps/powerpc/soft-fp/sfp-machine.h 2002-10-17 18:36:14.000000000 -0400 +++ glibc-2.3.2/sysdeps/powerpc/soft-fp/sfp-machine.h 2004-02-03 14:22:50.000000000 -0500 @@ -52,7 +52,11 @@ #define FP_HANDLE_EXCEPTIONS __simulate_exceptions (_fex) #define FP_ROUNDMODE __sim_round_mode -extern int __sim_exceptions attribute_hidden; -extern int __sim_disabled_exceptions attribute_hidden; -extern int __sim_round_mode attribute_hidden; +extern int __sim_exceptions; +libc_hidden_proto (__sim_exceptions); +extern int __sim_disabled_exceptions; +libc_hidden_proto (__sim_disabled_exceptions); +extern int __sim_round_mode; +libc_hidden_proto (__sim_round_mode); + extern void __simulate_exceptions (int x) attribute_hidden; diff -uNrp glibc.old/sysdeps/unix/sysv/linux/arm/ioperm.c glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c --- glibc.old/sysdeps/unix/sysv/linux/arm/ioperm.c 2003-02-20 17:22:24.000000000 -0500 +++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c 2004-02-03 14:22:49.000000000 -0500 @@ -47,6 +47,12 @@ #include #include +/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */ +#include +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23)) +#define CTL_BUS_ISA BUS_ISA /* and hope it's not the one from linux/input.h */ +#endif + #define PATH_ARM_SYSTYPE "/etc/arm_systype" #define PATH_CPUINFO "/proc/cpuinfo" @@ -80,7 +86,7 @@ static struct platform { * Initialize I/O system. There are several ways to get the information * we need. Each is tried in turn until one succeeds. * - * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*). This is the preferred method + * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*). This is the preferred method * but not all kernels support it. * * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE. @@ -100,8 +106,8 @@ init_iosys (void) { char systype[256]; int i, n; - static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE }; - static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT }; + static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE }; + static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT }; size_t len = sizeof(io.base); if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0) diff -uNrp glibc.old/sysdeps/unix/sysv/linux/arm/sysdep.h glibc-2.3.2/sysdeps/unix/sysv/linux/arm/sysdep.h --- glibc.old/sysdeps/unix/sysv/linux/arm/sysdep.h 2003-02-20 15:22:10.000000000 -0500 +++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/sysdep.h 2004-02-03 14:22:49.000000000 -0500 @@ -158,7 +158,7 @@ __local_syscall_error: \ asm volatile ("swi %1 @ syscall " #name \ : "=r" (_a1) \ : "i" (SYS_ify(name)) ASM_ARGS_##nr \ - : "a1", "memory"); \ + : "memory"); \ _sys_result = _a1; \ } \ (int) _sys_result; }) diff -uNrp glibc.old/sysdeps/unix/sysv/linux/kernel-features.h glibc-2.3.2/sysdeps/unix/sysv/linux/kernel-features.h --- glibc.old/sysdeps/unix/sysv/linux/kernel-features.h 2003-02-20 17:11:52.000000000 -0500 +++ glibc-2.3.2/sysdeps/unix/sysv/linux/kernel-features.h 2004-02-03 14:22:50.000000000 -0500 @@ -151,11 +151,20 @@ /* The changed st_ino field appeared in 2.4.0-test6. But we cannot distinguish this version from other 2.4.0 releases. Therefore play - save and assume it available is for 2.4.1 and up. */ -#if __LINUX_KERNEL_VERSION >= 132097 + save and assume it available is for 2.4.1 and up. However, SH is lame, + and still does not have a 64-bit inode field. */ +#if __LINUX_KERNEL_VERSION >= 132097 \ + && !defined __sh__ # define __ASSUME_ST_INO_64_BIT 1 #endif +/* SH kernels got stat64, mmap2, and truncate64 during 2.4.0-test. */ +#if __LINUX_KERNEL_VERSION >= 132096 && defined __sh__ +# define __ASSUME_TRUNCATE64_SYSCALL 1 +# define __ASSUME_MMAP2_SYSCALL 1 +# define __ASSUME_STAT64_SYSCALL 1 +#endif + /* To support locking of large files a new fcntl() syscall was introduced in 2.4.0-test7. We test for 2.4.1 for the earliest version we know the syscall is available. */ diff -uNrp glibc.old/sysdeps/unix/sysv/linux/mips/clone.S glibc-2.3.2/sysdeps/unix/sysv/linux/mips/clone.S --- glibc.old/sysdeps/unix/sysv/linux/mips/clone.S 2001-07-07 15:21:35.000000000 -0400 +++ glibc-2.3.2/sysdeps/unix/sysv/linux/mips/clone.S 2004-02-03 14:22:50.000000000 -0500 @@ -63,7 +63,7 @@ NESTED(__clone,4*SZREG,sp) syscall bnez a3,error - beqz v0,__thread_start + beqz v0,.Lthread_start /* Successful return from the parent */ addiu sp,32 @@ -85,6 +85,7 @@ error: debug info. */ ENTRY(__thread_start) +.Lthread_start: /* cp is already loaded. */ .cprestore 16 /* The stackframe has been created on entry of clone(). */ diff -uNrp glibc.old/sysdeps/unix/sysv/linux/mips/syscalls.list glibc-2.3.2/sysdeps/unix/sysv/linux/mips/syscalls.list --- glibc.old/sysdeps/unix/sysv/linux/mips/syscalls.list 2003-01-30 22:39:32.000000000 -0500 +++ glibc-2.3.2/sysdeps/unix/sysv/linux/mips/syscalls.list 2004-02-03 14:22:50.000000000 -0500 @@ -41,6 +41,7 @@ s_ustat ustat ustat i:ip __syscall_ust sys_mknod xmknod mknod i:sii __syscall_mknod # System calls with wrappers. +s_readahead EXTRA readahead i:iipi __syscall_readahead rt_sigaction - rt_sigaction i:ippi __syscall_rt_sigaction rt_sigpending - rt_sigpending i:pi __syscall_rt_sigpending rt_sigprocmask - rt_sigprocmask i:ippi __syscall_rt_sigprocmask diff -uNrp glibc.old/sysdeps/unix/sysv/linux/sys/epoll.h glibc-2.3.2/sysdeps/unix/sysv/linux/sys/epoll.h --- glibc.old/sysdeps/unix/sysv/linux/sys/epoll.h 2002-12-16 18:24:21.000000000 -0500 +++ glibc-2.3.2/sysdeps/unix/sysv/linux/sys/epoll.h 2004-02-03 14:22:49.000000000 -0500 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -19,6 +19,7 @@ #ifndef _SYS_EPOLL_H #define _SYS_EPOLL_H 1 +#include #include @@ -42,8 +43,10 @@ enum EPOLL_EVENTS #define EPOLLMSG EPOLLMSG EPOLLERR = 0x008, #define EPOLLERR EPOLLERR - EPOLLHUP = 0x010 + EPOLLHUP = 0x010, #define EPOLLHUP EPOLLHUP + EPOLLET = (1 << 31) +#define EPOLLET EPOLLET };