r2637 - glibc-package/branches/glibc-2.7/debian/patches/hurd-i386
Author: mbanck
Date: 2007-10-30 17:51:13 +0000 (Tue, 30 Oct 2007)
New Revision: 2637
Modified:
glibc-package/branches/glibc-2.7/debian/patches/hurd-i386/local-tls-support.diff
Log:
Removed .orig/.rej hunks
Modified: glibc-package/branches/glibc-2.7/debian/patches/hurd-i386/local-tls-support.diff
===================================================================
--- glibc-package/branches/glibc-2.7/debian/patches/hurd-i386/local-tls-support.diff 2007-10-29 21:08:44 UTC (rev 2636)
+++ glibc-package/branches/glibc-2.7/debian/patches/hurd-i386/local-tls-support.diff 2007-10-30 17:51:13 UTC (rev 2637)
@@ -13,292 +13,6 @@
/* Set up the stack checker's canary. */
uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard ();
---- csu/libc-start.c.orig.orig
-+++ csu/libc-start.c.orig
-@@ -0,0 +1,253 @@
-+/* Copyright (C) 1998-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
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <stdlib.h>
-+#include <stdio.h>
-+#include <unistd.h>
-+#include <ldsodefs.h>
-+#include <bp-start.h>
-+#include <bp-sym.h>
-+
-+extern void __libc_init_first (int argc, char **argv, char **envp);
-+
-+extern int __libc_multiple_libcs;
-+
-+#include <tls.h>
-+#ifndef SHARED
-+# include <dl-osinfo.h>
-+extern void __pthread_initialize_minimal (void);
-+# ifndef THREAD_SET_STACK_GUARD
-+/* Only exported for architectures that don't store the stack guard canary
-+ in thread local area. */
-+uintptr_t __stack_chk_guard attribute_relro;
-+# endif
-+#endif
-+
-+#ifdef HAVE_PTR_NTHREADS
-+/* We need atomic operations. */
-+# include <atomic.h>
-+#endif
-+
-+
-+#ifdef LIBC_START_MAIN
-+# ifdef LIBC_START_DISABLE_INLINE
-+# define STATIC static
-+# else
-+# define STATIC static inline __attribute__ ((always_inline))
-+# endif
-+#else
-+# define STATIC
-+# define LIBC_START_MAIN BP_SYM (__libc_start_main)
-+#endif
-+
-+#ifdef MAIN_AUXVEC_ARG
-+/* main gets passed a pointer to the auxiliary. */
-+# define MAIN_AUXVEC_DECL , void *
-+# define MAIN_AUXVEC_PARAM , auxvec
-+#else
-+# define MAIN_AUXVEC_DECL
-+# define MAIN_AUXVEC_PARAM
-+#endif
-+
-+STATIC int LIBC_START_MAIN (int (*main) (int, char **, char **
-+ MAIN_AUXVEC_DECL),
-+ int argc,
-+ char *__unbounded *__unbounded ubp_av,
-+#ifdef LIBC_START_MAIN_AUXVEC_ARG
-+ ElfW(auxv_t) *__unbounded auxvec,
-+#endif
-+ __typeof (main) init,
-+ void (*fini) (void),
-+ void (*rtld_fini) (void),
-+ void *__unbounded stack_end)
-+ __attribute__ ((noreturn));
-+
-+
-+/* Note: the fini parameter is ignored here for shared library. It
-+ is registered with __cxa_atexit. This had the disadvantage that
-+ finalizers were called in more than one place. */
-+STATIC int
-+LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
-+ int argc, char *__unbounded *__unbounded ubp_av,
-+#ifdef LIBC_START_MAIN_AUXVEC_ARG
-+ ElfW(auxv_t) *__unbounded auxvec,
-+#endif
-+ __typeof (main) init,
-+ void (*fini) (void),
-+ void (*rtld_fini) (void), void *__unbounded stack_end)
-+{
-+#if __BOUNDED_POINTERS__
-+ char **argv;
-+#else
-+# define argv ubp_av
-+#endif
-+
-+ /* Result of the 'main' function. */
-+ int result;
-+
-+ __libc_multiple_libcs = &_dl_starting_up && !_dl_starting_up;
-+
-+#ifndef SHARED
-+ char *__unbounded *__unbounded ubp_ev = &ubp_av[argc + 1];
-+
-+ INIT_ARGV_and_ENVIRON;
-+
-+ /* Store the lowest stack address. This is done in ld.so if this is
-+ the code for the DSO. */
-+ __libc_stack_end = stack_end;
-+
-+# ifdef HAVE_AUX_VECTOR
-+ /* First process the auxiliary vector since we need to find the
-+ program header to locate an eventually present PT_TLS entry. */
-+# ifndef LIBC_START_MAIN_AUXVEC_ARG
-+ ElfW(auxv_t) *__unbounded auxvec;
-+ {
-+ char *__unbounded *__unbounded evp = ubp_ev;
-+ while (*evp++ != NULL)
-+ ;
-+ auxvec = (ElfW(auxv_t) *__unbounded) evp;
-+ }
-+# endif
-+ _dl_aux_init (auxvec);
-+# endif
-+# ifdef DL_SYSDEP_OSCHECK
-+ if (!__libc_multiple_libcs)
-+ {
-+ /* This needs to run to initiliaze _dl_osversion before TLS
-+ setup might check it. */
-+ DL_SYSDEP_OSCHECK (__libc_fatal);
-+ }
-+# endif
-+
-+ /* Initialize the thread library at least a bit since the libgcc
-+ functions are using thread functions if these are available and
-+ we need to setup errno. */
-+ __pthread_initialize_minimal ();
-+
-+ /* Set up the stack checker's canary. */
-+ uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard ();
-+# ifdef THREAD_SET_STACK_GUARD
-+ THREAD_SET_STACK_GUARD (stack_chk_guard);
-+# else
-+ __stack_chk_guard = stack_chk_guard;
-+# endif
-+#endif
-+
-+ /* Register the destructor of the dynamic linker if there is any. */
-+ if (__builtin_expect (rtld_fini != NULL, 1))
-+ __cxa_atexit ((void (*) (void *)) rtld_fini, NULL, NULL);
-+
-+#ifndef SHARED
-+ /* Call the initializer of the libc. This is only needed here if we
-+ are compiling for the static library in which case we haven't
-+ run the constructors in `_dl_start_user'. */
-+ __libc_init_first (argc, argv, __environ);
-+
-+ /* Register the destructor of the program, if any. */
-+ if (fini)
-+ __cxa_atexit ((void (*) (void *)) fini, NULL, NULL);
-+
-+ /* Some security at this point. Prevent starting a SUID binary where
-+ the standard file descriptors are not opened. We have to do this
-+ only for statically linked applications since otherwise the dynamic
-+ loader did the work already. */
-+ if (__builtin_expect (__libc_enable_secure, 0))
-+ __libc_check_standard_fds ();
-+#endif
-+
-+ /* Call the initializer of the program, if any. */
-+#ifdef SHARED
-+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_IMPCALLS, 0))
-+ GLRO(dl_debug_printf) ("\ninitialize program: %s\n\n", argv[0]);
-+#endif
-+ if (init)
-+ (*init) (argc, argv, __environ MAIN_AUXVEC_PARAM);
-+
-+#ifdef SHARED
-+ /* Auditing checkpoint: we have a new object. */
-+ if (__builtin_expect (GLRO(dl_naudit) > 0, 0))
-+ {
-+ struct audit_ifaces *afct = GLRO(dl_audit);
-+ struct link_map *head = GL(dl_ns)[LM_ID_BASE]._ns_loaded;
-+ for (unsigned int cnt = 0; cnt < GLRO(dl_naudit); ++cnt)
-+ {
-+ if (afct->preinit != NULL)
-+ afct->preinit (&head->l_audit[cnt].cookie);
-+
-+ afct = afct->next;
-+ }
-+ }
-+#endif
-+
-+#ifdef SHARED
-+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_IMPCALLS, 0))
-+ GLRO(dl_debug_printf) ("\ntransferring control: %s\n\n", argv[0]);
-+#endif
-+
-+#ifdef HAVE_CLEANUP_JMP_BUF
-+ /* Memory for the cancellation buffer. */
-+ struct pthread_unwind_buf unwind_buf;
-+
-+ int not_first_call;
-+ not_first_call = setjmp ((struct __jmp_buf_tag *) unwind_buf.cancel_jmp_buf);
-+ if (__builtin_expect (! not_first_call, 1))
-+ {
-+ struct pthread *self = THREAD_SELF;
-+
-+ /* Store old info. */
-+ unwind_buf.priv.data.prev = THREAD_GETMEM (self, cleanup_jmp_buf);
-+ unwind_buf.priv.data.cleanup = THREAD_GETMEM (self, cleanup);
-+
-+ /* Store the new cleanup handler info. */
-+ THREAD_SETMEM (self, cleanup_jmp_buf, &unwind_buf);
-+
-+ /* Run the program. */
-+ result = main (argc, argv, __environ MAIN_AUXVEC_PARAM);
-+ }
-+ else
-+ {
-+ /* Remove the thread-local data. */
-+# ifdef SHARED
-+ PTHFCT_CALL (ptr__nptl_deallocate_tsd, ());
-+# else
-+ extern void __nptl_deallocate_tsd (void) __attribute ((weak));
-+ __nptl_deallocate_tsd ();
-+# endif
-+
-+ /* One less thread. Decrement the counter. If it is zero we
-+ terminate the entire process. */
-+ result = 0;
-+# ifdef SHARED
-+ unsigned int *ptr = __libc_pthread_functions.ptr_nthreads;
-+ PTR_DEMANGLE (ptr);
-+# else
-+ extern unsigned int __nptl_nthreads __attribute ((weak));
-+ unsigned int *const ptr = &__nptl_nthreads;
-+# endif
-+
-+ if (! atomic_decrement_and_test (ptr))
-+ /* Not much left to do but to exit the thread, not the process. */
-+ __exit_thread (0);
-+ }
-+#else
-+ /* Nothing fancy, just call the function. */
-+ result = main (argc, argv, __environ MAIN_AUXVEC_PARAM);
-+#endif
-+
-+ exit (result);
-+}
---- csu/libc-start.c.rej.orig
-+++ csu/libc-start.c.rej
-@@ -0,0 +1,27 @@
-+***************
-+*** 134,144 ****
-+ }
-+ # endif
-+
-+ /* Initialize the thread library at least a bit since the libgcc
-+ functions are using thread functions if these are available and
-+ we need to setup errno. */
-+ __pthread_initialize_minimal ();
-+ #endif
-+
-+ # ifndef SHARED
-+ /* Set up the stack checker's canary. */
-+--- 134,146 ----
-+ }
-+ # endif
-+
-++ #ifndef __GNU__
-+ /* Initialize the thread library at least a bit since the libgcc
-+ functions are using thread functions if these are available and
-+ we need to setup errno. */
-+ __pthread_initialize_minimal ();
-+ #endif
-++ #endif
-+
-+ # ifndef SHARED
-+ /* Set up the stack checker's canary. */
--- hurd/hurdfault.c.orig
+++ hurd/hurdfault.c
@@ -206,6 +206,8 @@
@@ -341,114 +55,6 @@
+kern_return_t mach_setup_tls (thread_t thread);
#endif /* mach.h */
---- mach/mach.h.orig.orig
-+++ mach/mach.h.orig
-@@ -0,0 +1,105 @@
-+/* Standard header for all Mach programs.
-+ Copyright (C) 1993,94,96,97,2002 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
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#ifndef _MACH_H
-+
-+#define _MACH_H 1
-+
-+/* We must include this before using __need_FILE with <stdio.h> below. */
-+#include <features.h>
-+
-+
-+/* Get the basic types used by Mach. */
-+#include <mach/mach_types.h>
-+
-+/* This declares the basic variables and macros everything needs. */
-+#include <mach_init.h>
-+
-+/* This declares all the real system call functions. */
-+#include <mach/mach_traps.h>
-+
-+/* These are MiG-generated headers for the kernel interfaces commonly used. */
-+#include <mach/mach_interface.h> /* From <mach/mach.defs>. */
-+#include <mach/mach_port.h>
-+#include <mach/mach_host.h>
-+
-+/* For the kernel RPCs which have system call shortcut versions,
-+ the MiG-generated header in fact declares `CALL_rpc' rather than `CALL'.
-+ This file declares the simple `CALL' functions. */
-+#include <mach-shortcuts.h>
-+
-+
-+/* Receive RPC request messages on RCV_NAME and pass them to DEMUX, which
-+ decodes them and produces reply messages. MAX_SIZE is the maximum size
-+ (in bytes) of the request and reply buffers. */
-+extern mach_msg_return_t
-+__mach_msg_server (boolean_t (*__demux) (mach_msg_header_t *__request,
-+ mach_msg_header_t *__reply),
-+ mach_msg_size_t __max_size,
-+ mach_port_t __rcv_name),
-+mach_msg_server (boolean_t (*__demux) (mach_msg_header_t *__request,
-+ mach_msg_header_t *__reply),
-+ mach_msg_size_t __max_size,
-+ mach_port_t __rcv_name);
-+
-+/* Just like `mach_msg_server', but the OPTION and TIMEOUT parameters are
-+ passed on to `mach_msg'. */
-+extern mach_msg_return_t
-+__mach_msg_server_timeout (boolean_t (*__demux) (mach_msg_header_t *__request,
-+ mach_msg_header_t *__reply),
-+ mach_msg_size_t __max_size,
-+ mach_port_t __rcv_name,
-+ mach_msg_option_t __option,
-+ mach_msg_timeout_t __timeout),
-+mach_msg_server_timeout (boolean_t (*__demux) (mach_msg_header_t *__request,
-+ mach_msg_header_t *__reply),
-+ mach_msg_size_t __max_size,
-+ mach_port_t __rcv_name,
-+ mach_msg_option_t __option,
-+ mach_msg_timeout_t __timeout);
-+
-+
-+/* Deallocate all port rights and out-of-line memory in MSG. */
-+extern void
-+__mach_msg_destroy (mach_msg_header_t *msg),
-+mach_msg_destroy (mach_msg_header_t *msg);
-+
-+
-+#define __need_FILE
-+#include <stdio.h>
-+
-+/* Open a stream on a Mach device. */
-+extern FILE *mach_open_devstream (mach_port_t device_port, const char *mode);
-+
-+/* Give THREAD a stack and set it to run at PC when resumed.
-+ If *STACK_SIZE is nonzero, that size of stack is allocated.
-+ If *STACK_BASE is nonzero, that stack location is used.
-+ If STACK_BASE is not null it is filled in with the chosen stack base.
-+ If STACK_SIZE is not null it is filled in with the chosen stack size.
-+ Regardless, an extra page of red zone is allocated off the end; this
-+ is not included in *STACK_SIZE. */
-+kern_return_t __mach_setup_thread (task_t task, thread_t thread, void *pc,
-+ vm_address_t *stack_base,
-+ vm_size_t *stack_size);
-+kern_return_t mach_setup_thread (task_t task, thread_t thread, void *pc,
-+ vm_address_t *stack_base,
-+ vm_size_t *stack_size);
-+
-+
-+#endif /* mach.h */
--- mach/setup-thread.c.orig
+++ mach/setup-thread.c
@@ -20,6 +20,7 @@
Reply to: