[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[commits] r1149 - in /branches/eglibc-2_5: libc/ libc/misc/ ports/ ports/sysdeps/mips/ ports/sysdeps/mips/elf/ ports/sysdeps/unix/sysv...
- To: commits@xxxxxxxxxx
- Subject: [commits] r1149 - in /branches/eglibc-2_5: libc/ libc/misc/ ports/ ports/sysdeps/mips/ ports/sysdeps/mips/elf/ ports/sysdeps/unix/sysv...
- From: joseph@xxxxxxxxxx
- Date: Tue, 09 Jan 2007 15:19:07 -0000
Author: joseph
Date: Tue Jan 9 07:19:07 2007
New Revision: 1149
Log:
libc:
Backport from trunk:
2006-12-14 Jakub Jelinek <jakub@xxxxxxxxxx>
* misc/tst-pselect.c (do_test): Fix sigblock argument.
2006-12-14 Ulrich Drepper <drepper@xxxxxxxxxx>
* misc/tst-pselect.c (do_test): Make sure the helper process is
terminating when the test is aborted.
ports:
Backport from trunk:
2007-01-08 Daniel Jacobowitz <dan@xxxxxxxxxxxxxxxx>
* sysdeps/mips/ldsodefs.h: Merge sysdeps/mips/elf/ldsodefs.h.
Correct multiple inclusion guard.
* sysdeps/mips/elf/ldsodefs.h: Delete file.
2007-01-04 Thiemo Seufer <ths@xxxxxxxxxxxx>
* sysdeps/unix/sysv/linux/mips/bits/msq.h (struct msqid_ds):
Update to match the kernel.
Removed:
branches/eglibc-2_5/ports/sysdeps/mips/elf/ldsodefs.h
Modified:
branches/eglibc-2_5/libc/ChangeLog.eglibc
branches/eglibc-2_5/libc/misc/tst-pselect.c
branches/eglibc-2_5/ports/ChangeLog.eglibc
branches/eglibc-2_5/ports/sysdeps/mips/ldsodefs.h
branches/eglibc-2_5/ports/sysdeps/unix/sysv/linux/mips/bits/msq.h
Modified: branches/eglibc-2_5/libc/ChangeLog.eglibc
==============================================================================
--- branches/eglibc-2_5/libc/ChangeLog.eglibc (original)
+++ branches/eglibc-2_5/libc/ChangeLog.eglibc Tue Jan 9 07:19:07 2007
@@ -1,3 +1,12 @@
+2007-01-09 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ Backport from trunk:
+ 2006-12-14 Jakub Jelinek <jakub@xxxxxxxxxx>
+ * misc/tst-pselect.c (do_test): Fix sigblock argument.
+ 2006-12-14 Ulrich Drepper <drepper@xxxxxxxxxx>
+ * misc/tst-pselect.c (do_test): Make sure the helper process is
+ terminating when the test is aborted.
+
2006-12-26 Jim Blandy <jimb@xxxxxxxxxxxxxxxx>
* option-groups.def, option-groups.defaults (OPTION_EGLIBC_LOCALES):
Modified: branches/eglibc-2_5/libc/misc/tst-pselect.c
==============================================================================
--- branches/eglibc-2_5/libc/misc/tst-pselect.c (original)
+++ branches/eglibc-2_5/libc/misc/tst-pselect.c Tue Jan 9 07:19:07 2007
@@ -29,7 +29,16 @@
return 1;
}
- if (sigblock (SIGUSR1) != 0)
+ sa.sa_handler = SIG_IGN;
+ sa.sa_flags = SA_NOCLDWAIT;
+
+ if (sigaction (SIGCHLD, &sa, NULL) != 0)
+ {
+ puts ("2nd sigaction failed");
+ return 1;
+ }
+
+ if (sigblock (sigmask (SIGUSR1)) != 0)
{
puts ("sigblock failed");
return 1;
@@ -52,6 +61,7 @@
struct timespec to = { .tv_sec = 0, .tv_nsec = 500000000 };
+ pid_t parent = getpid ();
pid_t p = fork ();
if (p == 0)
{
@@ -63,6 +73,9 @@
int e;
do
{
+ if (getppid () != parent)
+ exit (2);
+
errno = 0;
e = pselect (fds[0][0] + 1, &rfds, NULL, NULL, &to, &ss);
}
@@ -108,12 +121,6 @@
return 1;
}
- if (TEMP_FAILURE_RETRY (waitpid (p, NULL, 0)) != p)
- {
- puts ("waitpid failed");
- return 1;
- }
-
return 0;
}
Modified: branches/eglibc-2_5/ports/ChangeLog.eglibc
==============================================================================
--- branches/eglibc-2_5/ports/ChangeLog.eglibc (original)
+++ branches/eglibc-2_5/ports/ChangeLog.eglibc Tue Jan 9 07:19:07 2007
@@ -1,3 +1,14 @@
+2007-01-09 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ Backport from trunk:
+ 2007-01-08 Daniel Jacobowitz <dan@xxxxxxxxxxxxxxxx>
+ * sysdeps/mips/ldsodefs.h: Merge sysdeps/mips/elf/ldsodefs.h.
+ Correct multiple inclusion guard.
+ * sysdeps/mips/elf/ldsodefs.h: Delete file.
+ 2007-01-04 Thiemo Seufer <ths@xxxxxxxxxxxx>
+ * sysdeps/unix/sysv/linux/mips/bits/msq.h (struct msqid_ds):
+ Update to match the kernel.
+
2007-01-02 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
* sysdeps/powerpc/nofpu/fesetenv.c (__sim_exceptions,
Modified: branches/eglibc-2_5/ports/sysdeps/mips/ldsodefs.h
==============================================================================
--- branches/eglibc-2_5/ports/sysdeps/mips/ldsodefs.h (original)
+++ branches/eglibc-2_5/ports/sysdeps/mips/ldsodefs.h Tue Jan 9 07:19:07 2007
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2003, 2006, 2007 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
@@ -17,7 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
-#ifndef __LDSODEFS_H \
+#ifndef _MIPS_LDSODEFS_H
#define _MIPS_LDSODEFS_H 1
#include <elf.h>
@@ -61,6 +61,90 @@
struct La_mips_64_retval *, \
const char *);
+/* The MIPS ABI specifies that the dynamic section has to be read-only. */
+
+#define DL_RO_DYN_SECTION 1
+
#include_next <ldsodefs.h>
+/* The 64-bit MIPS ELF ABI uses an unusual reloc format. Each
+ relocation entry specifies up to three actual relocations, all at
+ the same address. The first relocation which required a symbol
+ uses the symbol in the r_sym field. The second relocation which
+ requires a symbol uses the symbol in the r_ssym field. If all
+ three relocations require a symbol, the third one uses a zero
+ value.
+
+ We define these structures in internal headers because we're not
+ sure we want to make them part of the ABI yet. Eventually, some of
+ this may move into elf/elf.h. */
+
+/* An entry in a 64 bit SHT_REL section. */
+
+typedef struct
+{
+ Elf32_Word r_sym; /* Symbol index */
+ unsigned char r_ssym; /* Special symbol for 2nd relocation */
+ unsigned char r_type3; /* 3rd relocation type */
+ unsigned char r_type2; /* 2nd relocation type */
+ unsigned char r_type1; /* 1st relocation type */
+} _Elf64_Mips_R_Info;
+
+typedef union
+{
+ Elf64_Xword r_info_number;
+ _Elf64_Mips_R_Info r_info_fields;
+} _Elf64_Mips_R_Info_union;
+
+typedef struct
+{
+ Elf64_Addr r_offset; /* Address */
+ _Elf64_Mips_R_Info_union r_info; /* Relocation type and symbol index */
+} Elf64_Mips_Rel;
+
+typedef struct
+{
+ Elf64_Addr r_offset; /* Address */
+ _Elf64_Mips_R_Info_union r_info; /* Relocation type and symbol index */
+ Elf64_Sxword r_addend; /* Addend */
+} Elf64_Mips_Rela;
+
+#define ELF64_MIPS_R_SYM(i) \
+ ((__extension__ (_Elf64_Mips_R_Info_union)(i)).r_info_fields.r_sym)
+#define ELF64_MIPS_R_TYPE(i) \
+ (((_Elf64_Mips_R_Info_union)(i)).r_info_fields.r_type1 \
+ | ((Elf32_Word)(__extension__ (_Elf64_Mips_R_Info_union)(i) \
+ ).r_info_fields.r_type2 << 8) \
+ | ((Elf32_Word)(__extension__ (_Elf64_Mips_R_Info_union)(i) \
+ ).r_info_fields.r_type3 << 16) \
+ | ((Elf32_Word)(__extension__ (_Elf64_Mips_R_Info_union)(i) \
+ ).r_info_fields.r_ssym << 24))
+#define ELF64_MIPS_R_INFO(sym, type) \
+ (__extension__ (_Elf64_Mips_R_Info_union) \
+ (__extension__ (_Elf64_Mips_R_Info) \
+ { (sym), ELF64_MIPS_R_SSYM (type), \
+ ELF64_MIPS_R_TYPE3 (type), \
+ ELF64_MIPS_R_TYPE2 (type), \
+ ELF64_MIPS_R_TYPE1 (type) \
+ }).r_info_number)
+/* These macros decompose the value returned by ELF64_MIPS_R_TYPE, and
+ compose it back into a value that it can be used as an argument to
+ ELF64_MIPS_R_INFO. */
+#define ELF64_MIPS_R_SSYM(i) (((i) >> 24) & 0xff)
+#define ELF64_MIPS_R_TYPE3(i) (((i) >> 16) & 0xff)
+#define ELF64_MIPS_R_TYPE2(i) (((i) >> 8) & 0xff)
+#define ELF64_MIPS_R_TYPE1(i) ((i) & 0xff)
+#define ELF64_MIPS_R_TYPEENC(type1, type2, type3, ssym) \
+ ((type1) \
+ | ((Elf32_Word)(type2) << 8) \
+ | ((Elf32_Word)(type3) << 16) \
+ | ((Elf32_Word)(ssym) << 24))
+
+#undef ELF64_R_SYM
+#define ELF64_R_SYM(i) ELF64_MIPS_R_SYM (i)
+#undef ELF64_R_TYPE
+#define ELF64_R_TYPE(i) ELF64_MIPS_R_TYPE (i)
+#undef ELF64_R_INFO
+#define ELF64_R_INFO(sym, type) ELF64_MIPS_R_INFO ((sym), (type))
+
#endif
Modified: branches/eglibc-2_5/ports/sysdeps/unix/sysv/linux/mips/bits/msq.h
==============================================================================
--- branches/eglibc-2_5/ports/sysdeps/unix/sysv/linux/mips/bits/msq.h (original)
+++ branches/eglibc-2_5/ports/sysdeps/unix/sysv/linux/mips/bits/msq.h Tue Jan 9 07:19:07 2007
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2007 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
@@ -38,16 +38,34 @@
struct msqid_ds
{
struct ipc_perm msg_perm; /* structure describing operation permission */
+#if __WORDSIZE == 32 && defined (__MIPSEB__)
+ unsigned long int __unused1;
+#endif
__time_t msg_stime; /* time of last msgsnd command */
+#if __WORDSIZE == 32 && defined (__MIPSEL__)
+ unsigned long int __unused1;
+#endif
+#if __WORDSIZE == 32 && defined (__MIPSEB__)
+ unsigned long int __unused2;
+#endif
__time_t msg_rtime; /* time of last msgrcv command */
+#if __WORDSIZE == 32 && defined (__MIPSEL__)
+ unsigned long int __unused2;
+#endif
+#if __WORDSIZE == 32 && defined (__MIPSEB__)
+ unsigned long int __unused3;
+#endif
__time_t msg_ctime; /* time of last change */
+#if __WORDSIZE == 32 && defined (__MIPSEL__)
+ unsigned long int __unused3;
+#endif
unsigned long int __msg_cbytes; /* current number of bytes on queue */
msgqnum_t msg_qnum; /* number of messages currently on queue */
msglen_t msg_qbytes; /* max number of bytes allowed on queue */
__pid_t msg_lspid; /* pid of last msgsnd() */
__pid_t msg_lrpid; /* pid of last msgrcv() */
- unsigned long int __unused1;
- unsigned long int __unused2;
+ unsigned long int __unused4;
+ unsigned long int __unused5;
};
#ifdef __USE_MISC