diff --git a/ChangeLog.ia64 b/ChangeLog.ia64 index 456360e591..07dc47c0a6 100644 --- a/ChangeLog.ia64 +++ b/ChangeLog.ia64 @@ -1,3 +1,17 @@ +2012-04-27 Mike Frysinger + + * sysdeps/ia64/backtrace.c: Replace all contents with a single + include of sysdeps/x86_64/backtrace.c. + * sysdeps/unix/sysv/linux/ia64/nptl/fork.c: Change include path + prefix from ../ to sysdeps/unix/sysv/linux/, and "..." to <...>. + * sysdeps/unix/sysv/linux/ia64/nptl/timer_create.c, + sysdeps/unix/sysv/linux/ia64/nptl/timer_delete.c, + sysdeps/unix/sysv/linux/ia64/nptl/timer_getoverr.c, + sysdeps/unix/sysv/linux/ia64/nptl/timer_gettime.c, + sysdeps/unix/sysv/linux/ia64/nptl/timer_settime.c, + sysdeps/unix/sysv/linux/ia64/sysconf.c, + sysdeps/unix/sysv/linux/ia64/system.c: Likewise. + 2012-04-25 Mike Frysinger * sysdeps/unix/sysv/linux/ia64/nptl/bits/local_lim.h: Replace diff --git a/sysdeps/ia64/backtrace.c b/sysdeps/ia64/backtrace.c index 7c1f33ff0d..27ce597b39 100644 --- a/sysdeps/ia64/backtrace.c +++ b/sysdeps/ia64/backtrace.c @@ -1,132 +1 @@ -/* Return backtrace of current program state. - Copyright (C) 2003-2005, 2007, 2009, 2011 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jakub Jelinek , 2003. - - 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, see - . */ - -#include -#include -#include -#include -#include - -struct trace_arg -{ - void **array; - _Unwind_Word cfa; - int cnt; - int size; -}; - -#ifdef SHARED -static _Unwind_Reason_Code (*unwind_backtrace) (_Unwind_Trace_Fn, void *); -static _Unwind_Ptr (*unwind_getip) (struct _Unwind_Context *); -static _Unwind_Word (*unwind_getcfa) (struct _Unwind_Context *); -static void *libgcc_handle; - - -/* Dummy version in case libgcc_s does not contain the real code. */ -static _Unwind_Word -dummy_getcfa (struct _Unwind_Context *ctx __attribute__ ((unused))) -{ - return 0; -} - - -static void -init (void) -{ - libgcc_handle = __libc_dlopen ("libgcc_s.so.1"); - - if (libgcc_handle == NULL) - return; - - unwind_backtrace = __libc_dlsym (libgcc_handle, "_Unwind_Backtrace"); - unwind_getip = __libc_dlsym (libgcc_handle, "_Unwind_GetIP"); - if (unwind_getip == NULL) - unwind_backtrace = NULL; - unwind_getcfa = (__libc_dlsym (libgcc_handle, "_Unwind_GetCFA") - ?: dummy_getcfa); -} -#else -# define unwind_backtrace _Unwind_Backtrace -# define unwind_getip _Unwind_GetIP -# define unwind_getcfa _Unwind_GetCFA -#endif - -static _Unwind_Reason_Code -backtrace_helper (struct _Unwind_Context *ctx, void *a) -{ - struct trace_arg *arg = a; - - /* We are first called with address in the __backtrace function. - Skip it. */ - if (arg->cnt != -1) - { - arg->array[arg->cnt] = (void *) unwind_getip (ctx); - - /* Check whether we make any progress. */ - _Unwind_Word cfa = unwind_getcfa (ctx); - - if (arg->cnt > 0 && arg->array[arg->cnt - 1] == arg->array[arg->cnt] - && cfa == arg->cfa) - return _URC_END_OF_STACK; - arg->cfa = cfa; - } - if (++arg->cnt == arg->size) - return _URC_END_OF_STACK; - return _URC_NO_REASON; -} - -int -__backtrace (array, size) - void **array; - int size; -{ - struct trace_arg arg = { .array = array, .cfa = 0, .size = size, .cnt = -1 }; -#ifdef SHARED - __libc_once_define (static, once); - - __libc_once (once, init); - if (unwind_backtrace == NULL) - return 0; -#endif - - if (size >= 1) - unwind_backtrace (backtrace_helper, &arg); - - /* _Unwind_Backtrace on IA-64 seems to put NULL address above - _start. Fix it up here. */ - if (arg.cnt > 1 && arg.array[arg.cnt - 1] == NULL) - --arg.cnt; - return arg.cnt != -1 ? arg.cnt : 0; -} -weak_alias (__backtrace, backtrace) -libc_hidden_def (__backtrace) - - -#ifdef SHARED -/* Free all resources if necessary. */ -libc_freeres_fn (free_mem) -{ - unwind_backtrace = NULL; - if (libgcc_handle != NULL) - { - __libc_dlclose (libgcc_handle); - libgcc_handle = NULL; - } -} -#endif +#include diff --git a/sysdeps/unix/sysv/linux/ia64/nptl/fork.c b/sysdeps/unix/sysv/linux/ia64/nptl/fork.c index 6770dd24c9..9767d2a9dc 100644 --- a/sysdeps/unix/sysv/linux/ia64/nptl/fork.c +++ b/sysdeps/unix/sysv/linux/ia64/nptl/fork.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 Free Software Foundation, Inc. +/* Copyright (C) 2003-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek , 2003. @@ -27,4 +27,4 @@ CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \ NULL, 0, NULL, &THREAD_SELF->tid, NULL) -#include "../fork.c" +#include diff --git a/sysdeps/unix/sysv/linux/ia64/nptl/timer_create.c b/sysdeps/unix/sysv/linux/ia64/nptl/timer_create.c index 172223af3f..1ac4c6a6b0 100644 --- a/sysdeps/unix/sysv/linux/ia64/nptl/timer_create.c +++ b/sysdeps/unix/sysv/linux/ia64/nptl/timer_create.c @@ -1 +1 @@ -#include "../x86_64/timer_create.c" +#include diff --git a/sysdeps/unix/sysv/linux/ia64/nptl/timer_delete.c b/sysdeps/unix/sysv/linux/ia64/nptl/timer_delete.c index 537516e0aa..9bffef3488 100644 --- a/sysdeps/unix/sysv/linux/ia64/nptl/timer_delete.c +++ b/sysdeps/unix/sysv/linux/ia64/nptl/timer_delete.c @@ -1 +1 @@ -#include "../x86_64/timer_delete.c" +#include diff --git a/sysdeps/unix/sysv/linux/ia64/nptl/timer_getoverr.c b/sysdeps/unix/sysv/linux/ia64/nptl/timer_getoverr.c index 3f21a73c98..24533a0c31 100644 --- a/sysdeps/unix/sysv/linux/ia64/nptl/timer_getoverr.c +++ b/sysdeps/unix/sysv/linux/ia64/nptl/timer_getoverr.c @@ -1 +1 @@ -#include "../x86_64/timer_getoverr.c" +#include diff --git a/sysdeps/unix/sysv/linux/ia64/nptl/timer_gettime.c b/sysdeps/unix/sysv/linux/ia64/nptl/timer_gettime.c index a50143adc5..c1106695e7 100644 --- a/sysdeps/unix/sysv/linux/ia64/nptl/timer_gettime.c +++ b/sysdeps/unix/sysv/linux/ia64/nptl/timer_gettime.c @@ -1 +1 @@ -#include "../x86_64/timer_gettime.c" +#include diff --git a/sysdeps/unix/sysv/linux/ia64/nptl/timer_settime.c b/sysdeps/unix/sysv/linux/ia64/nptl/timer_settime.c index 37baeffacc..93d4ad9344 100644 --- a/sysdeps/unix/sysv/linux/ia64/nptl/timer_settime.c +++ b/sysdeps/unix/sysv/linux/ia64/nptl/timer_settime.c @@ -1 +1 @@ -#include "../x86_64/timer_settime.c" +#include diff --git a/sysdeps/unix/sysv/linux/ia64/sysconf.c b/sysdeps/unix/sysv/linux/ia64/sysconf.c index 2ff8324dc8..3cfb0a9cc5 100644 --- a/sysdeps/unix/sysv/linux/ia64/sysconf.c +++ b/sysdeps/unix/sysv/linux/ia64/sysconf.c @@ -1,5 +1,5 @@ /* Get file-specific information about a file. Linux/ia64 version. - Copyright (C) 2003, 2004, 2011 Free Software Foundation, Inc. + Copyright (C) 2003-2012 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,4 +27,4 @@ /* Now the generic Linux version. */ -#include "../sysconf.c" +#include diff --git a/sysdeps/unix/sysv/linux/ia64/system.c b/sysdeps/unix/sysv/linux/ia64/system.c index d029cdfc72..f02a99e9eb 100644 --- a/sysdeps/unix/sysv/linux/ia64/system.c +++ b/sysdeps/unix/sysv/linux/ia64/system.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003 Free Software Foundation, Inc. +/* Copyright (C) 2002-2012 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 @@ -31,4 +31,4 @@ &pid, NULL, NULL) #endif -#include "../system.c" +#include