r2403 - in glibc-package/trunk/debian: . debhelper.in maint patches/all patches/any patches/arm patches/hppa patches/hurd-i386 patches/i386 patches/localedata patches/sparc
Author: schizo
Date: 2007-07-07 16:29:26 +0000 (Sat, 07 Jul 2007)
New Revision: 2403
Added:
glibc-package/trunk/debian/debhelper.in/nscd.lintian
glibc-package/trunk/debian/maint/
glibc-package/trunk/debian/maint/grab-testsuites.sh
glibc-package/trunk/debian/patches/any/submitted-fileops-and-signals.diff
glibc-package/trunk/debian/patches/arm/submitted-RTLD_SINGLE_THREAD_P.diff
glibc-package/trunk/debian/patches/hppa/local-linuxthreads.diff
glibc-package/trunk/debian/patches/hurd-i386/submitted-ioctl-unsigned-size_t.diff
glibc-package/trunk/debian/patches/localedata/fix-am_ET.diff
glibc-package/trunk/debian/patches/localedata/submitted-as_IN.diff
glibc-package/trunk/debian/patches/sparc/local-undefined-registers.diff
Modified:
glibc-package/trunk/debian/patches/all/local-ru_RU.diff
glibc-package/trunk/debian/patches/any/local-forward-backward-collation.diff
glibc-package/trunk/debian/patches/i386/local-biarch.diff
glibc-package/trunk/debian/patches/localedata/locale-de_CH.diff
glibc-package/trunk/debian/patches/localedata/locale-ku_TR.diff
glibc-package/trunk/debian/patches/localedata/locale-no_NO.diff
Log:
Merge commit 'glibc-2.6'
Added: glibc-package/trunk/debian/debhelper.in/nscd.lintian
===================================================================
--- glibc-package/trunk/debian/debhelper.in/nscd.lintian (rev 0)
+++ glibc-package/trunk/debian/debhelper.in/nscd.lintian 2007-07-07 16:29:26 UTC (rev 2403)
@@ -0,0 +1 @@
+nscd: non-standard-dir-in-var var/db/
Added: glibc-package/trunk/debian/maint/grab-testsuites.sh
===================================================================
--- glibc-package/trunk/debian/maint/grab-testsuites.sh (rev 0)
+++ glibc-package/trunk/debian/maint/grab-testsuites.sh 2007-07-07 16:29:26 UTC (rev 2403)
@@ -0,0 +1,34 @@
+#!/bin/sh -e
+#
+# This scripts pulls all the .debs in a debian mirror, and extracts testsuite failures, then sorts them.
+#
+# Copyright © 2007 Pierre Habouzit <madcoder@debian.org>
+#
+# This script is in the public domain.
+
+[ $# -eq 1 ] && cd "$1"
+
+(mkdir -p debs && cd debs && lftp -e "cd debian/pool/main/g/glibc/; mget -c libc6_*.deb; mget -c libc6.1_*.deb; exit" ftp.debian.org)
+
+to_gnu() {
+ dpkg-architecture -a"$1" -qDEB_HOST_GNU_TYPE 2>/dev/null
+}
+
+trap "rm -rf here" 0
+
+for i in debs/*.deb; do
+ arch="${i##*_}"
+ arch="${arch%.deb}"
+ version="${i#*_}"
+ version="${version%_*}"
+
+ dpkg -x "$i" here
+ for log in $(ls here/usr/share/doc/libc6*/log-test-`to_gnu "$arch"`-libc.gz 2>/dev/null); do
+ zgrep -e '(Error|Erreur)' "$log" | sed -e '{
+ s/^make[^:]*: \** *//g;
+ s~^\[.*libc/~~g;
+ s~\].*~~g;
+ }' | grep -v '^\[' | sort -u > "${arch}_${version}.testsuite"
+ done
+ rm -rf here
+done
Property changes on: glibc-package/trunk/debian/maint/grab-testsuites.sh
___________________________________________________________________
Name: svn:executable
+ *
Modified: glibc-package/trunk/debian/patches/all/local-ru_RU.diff
===================================================================
Property changes on: glibc-package/trunk/debian/patches/all/local-ru_RU.diff
___________________________________________________________________
Name: svn:executable
- *
Modified: glibc-package/trunk/debian/patches/any/local-forward-backward-collation.diff
===================================================================
Property changes on: glibc-package/trunk/debian/patches/any/local-forward-backward-collation.diff
___________________________________________________________________
Name: svn:executable
- *
Added: glibc-package/trunk/debian/patches/any/submitted-fileops-and-signals.diff
===================================================================
--- glibc-package/trunk/debian/patches/any/submitted-fileops-and-signals.diff (rev 0)
+++ glibc-package/trunk/debian/patches/any/submitted-fileops-and-signals.diff 2007-07-07 16:29:26 UTC (rev 2403)
@@ -0,0 +1,26 @@
+Index: glibc-2.6/libio/fileops.c
+===================================================================
+--- glibc-2.6.orig/libio/fileops.c
++++ glibc-2.6/libio/fileops.c
+@@ -517,10 +517,19 @@
+ fp->_cur_column = INTUSE(_IO_adjust_column) (fp->_cur_column - 1, data,
+ count) + 1;
+ _IO_setg (fp, fp->_IO_buf_base, fp->_IO_buf_base, fp->_IO_buf_base);
+- fp->_IO_write_base = fp->_IO_write_ptr = fp->_IO_buf_base;
+- fp->_IO_write_end = (fp->_mode <= 0
++ if (__builtin_expect (count == to_do, 1))
++ {
++ fp->_IO_write_base = fp->_IO_write_ptr = fp->_IO_buf_base;
++ fp->_IO_write_end = (fp->_mode <= 0
+ && (fp->_flags & (_IO_LINE_BUF+_IO_UNBUFFERED))
+ ? fp->_IO_buf_base : fp->_IO_buf_end);
++ }
++ else if (count > 0 && fp->_IO_write_base == data)
++ {
++ memmove (data, data+count,
++ fp->_IO_write_ptr - fp->_IO_write_base - count);
++ fp->_IO_write_ptr -= count;
++ }
+ return count;
+ }
+
Added: glibc-package/trunk/debian/patches/arm/submitted-RTLD_SINGLE_THREAD_P.diff
===================================================================
--- glibc-package/trunk/debian/patches/arm/submitted-RTLD_SINGLE_THREAD_P.diff (rev 0)
+++ glibc-package/trunk/debian/patches/arm/submitted-RTLD_SINGLE_THREAD_P.diff 2007-07-07 16:29:26 UTC (rev 2403)
@@ -0,0 +1,19 @@
+2007-05-25 Aurelien Jarno <aurelien@aurel32.net>
+
+ * sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
+ (RTLD_SINGLE_THREAD_P): Define.
+
+Index: ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
+===================================================================
+--- ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h.orig
++++ ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
+@@ -126,3 +126,9 @@
+ # define NO_CANCELLATION 1
+
+ #endif
++
++#ifndef __ASSEMBLER__
++# define RTLD_SINGLE_THREAD_P \
++ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
++ header.multiple_threads) == 0, 1)
++#endif
Added: glibc-package/trunk/debian/patches/hppa/local-linuxthreads.diff
===================================================================
--- glibc-package/trunk/debian/patches/hppa/local-linuxthreads.diff (rev 0)
+++ glibc-package/trunk/debian/patches/hppa/local-linuxthreads.diff 2007-07-07 16:29:26 UTC (rev 2403)
@@ -0,0 +1,318 @@
+Index: ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/lowlevellock.h
+===================================================================
+--- /dev/null
++++ ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/lowlevellock.h
+@@ -0,0 +1,298 @@
++/* Copyright (C) 2003, 2004, 2005 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 _LOWLEVELLOCK_H
++#define _LOWLEVELLOCK_H 1
++
++#include <time.h>
++#include <sys/param.h>
++#include <bits/pthreadtypes.h>
++#include <sysdep.h>
++#include <atomic.h>
++
++/* The hppa only has one atomic read and modify memory operation,
++ load and clear, so hppa uses a kernel helper routine to implement
++ compare_and_exchange. See atomic.h for the userspace calling
++ sequence. */
++
++#define FUTEX_WAIT 0
++#define FUTEX_WAKE 1
++#define FUTEX_REQUEUE 3
++#define FUTEX_CMP_REQUEUE 4
++#define FUTEX_WAKE_OP 5
++#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
++#define FUTEX_LOCK_PI 6
++#define FUTEX_UNLOCK_PI 7
++#define FUTEX_TRYLOCK_PI 8
++
++/* Initialize locks to zero. */
++#define LLL_MUTEX_LOCK_INITIALIZER (0)
++
++
++/* Type for lock object. */
++typedef int lll_lock_t;
++
++
++#define lll_futex_wait(futexp, val) \
++ ({ \
++ INTERNAL_SYSCALL_DECL (__err); \
++ long int __ret; \
++ __ret = INTERNAL_SYSCALL (futex, __err, 4, \
++ (futexp), FUTEX_WAIT, (val), 0); \
++ __ret; \
++ })
++
++#define lll_futex_timed_wait(futexp, val, timespec) \
++ ({ \
++ INTERNAL_SYSCALL_DECL (__err); \
++ long int __ret; \
++ __ret = INTERNAL_SYSCALL (futex, __err, 4, \
++ (futexp), FUTEX_WAIT, (val), (timespec)); \
++ __ret; \
++ })
++
++#define lll_futex_wake(futexp, nr) \
++ ({ \
++ INTERNAL_SYSCALL_DECL (__err); \
++ long int __ret; \
++ __ret = INTERNAL_SYSCALL (futex, __err, 4, \
++ (futexp), FUTEX_WAKE, (nr), 0); \
++ __ret; \
++ })
++
++#define lll_robust_mutex_dead(futexv) \
++ do \
++ { \
++ int *__futexp = &(futexv); \
++ atomic_or (__futexp, FUTEX_OWNER_DIED); \
++ lll_futex_wake (__futexp, 1); \
++ } \
++ while (0)
++
++/* Returns non-zero if error happened, zero if success. */
++#define lll_futex_requeue(futexp, nr_wake, nr_move, mutex, val) \
++ ({ \
++ INTERNAL_SYSCALL_DECL (__err); \
++ long int __ret; \
++ __ret = INTERNAL_SYSCALL (futex, __err, 6, \
++ (futexp), FUTEX_CMP_REQUEUE, (nr_wake), \
++ (nr_move), (mutex), (val)); \
++ __ret; \
++ })
++
++/* Returns non-zero if error happened, zero if success. */
++#define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2) \
++ ({ \
++ INTERNAL_SYSCALL_DECL (__err); \
++ long int __ret; \
++ __ret = INTERNAL_SYSCALL (futex, __err, 6, \
++ (futexp), FUTEX_WAKE_OP, (nr_wake), \
++ (nr_wake2), (futexp2), \
++ FUTEX_OP_CLEAR_WAKE_IF_GT_ONE); \
++ __ret; \
++ })
++
++static inline int __attribute__((always_inline))
++__lll_mutex_trylock(lll_lock_t *futex)
++{
++ return atomic_compare_and_exchange_val_acq (futex, 1, 0) != 0;
++}
++#define lll_mutex_trylock(lock) __lll_mutex_trylock (&(lock))
++
++static inline int __attribute__((always_inline))
++__lll_robust_mutex_trylock(int *futex, int id)
++{
++ return atomic_compare_and_exchange_val_acq (futex, id, 0) != 0;
++}
++#define lll_robust_mutex_trylock(lock, id) \
++ __lll_robust_mutex_trylock (&(lock), id)
++
++
++static inline int __attribute__((always_inline))
++__lll_mutex_cond_trylock(lll_lock_t *futex)
++{
++ return atomic_compare_and_exchange_val_acq (futex, 2, 0) != 0;
++}
++#define lll_mutex_cond_trylock(lock) __lll_mutex_cond_trylock (&(lock))
++
++
++extern void __lll_lock_wait (lll_lock_t *futex) attribute_hidden;
++
++static inline void __attribute__((always_inline))
++__lll_mutex_lock(lll_lock_t *futex)
++{
++ if (atomic_compare_and_exchange_bool_acq (futex, 1, 0) != 0)
++ __lll_lock_wait (futex);
++}
++#define lll_mutex_lock(futex) __lll_mutex_lock (&(futex))
++
++extern int __lll_robust_lock_wait (int *futex) attribute_hidden;
++
++static inline int __attribute__ ((always_inline))
++__lll_robust_mutex_lock (int *futex, int id)
++{
++ int result = 0;
++ if (atomic_compare_and_exchange_bool_acq (futex, id, 0) != 0)
++ result = __lll_robust_lock_wait (futex);
++ return result;
++}
++#define lll_robust_mutex_lock(futex, id) \
++ __lll_robust_mutex_lock (&(futex), id)
++
++static inline void __attribute__ ((always_inline))
++__lll_mutex_cond_lock (lll_lock_t *futex)
++{
++ if (atomic_compare_and_exchange_bool_acq (futex, 2, 0) != 0)
++ __lll_lock_wait (futex);
++}
++#define lll_mutex_cond_lock(futex) __lll_mutex_cond_lock (&(futex))
++
++
++#define lll_robust_mutex_cond_lock(futex, id) \
++ __lll_robust_mutex_lock (&(futex), (id) | FUTEX_WAITERS)
++
++
++extern int __lll_timedlock_wait (lll_lock_t *futex, const struct timespec *)
++ attribute_hidden;
++extern int __lll_robust_timedlock_wait (int *futex, const struct timespec *)
++ attribute_hidden;
++
++static inline int __attribute__ ((always_inline))
++__lll_mutex_timedlock (lll_lock_t *futex, const struct timespec *abstime)
++{
++ int result = 0;
++ if (atomic_compare_and_exchange_bool_acq (futex, 1, 0) != 0)
++ result = __lll_timedlock_wait (futex, abstime);
++ return result;
++}
++#define lll_mutex_timedlock(futex, abstime) \
++ __lll_mutex_timedlock (&(futex), abstime)
++
++static inline int __attribute__ ((always_inline))
++__lll_robust_mutex_timedlock (int *futex, const struct timespec *abstime,
++ int id)
++{
++ int result = 0;
++ if (atomic_compare_and_exchange_bool_acq (futex, id, 0) != 0)
++ result = __lll_robust_timedlock_wait (futex, abstime);
++ return result;
++}
++#define lll_robust_mutex_timedlock(futex, abstime, id) \
++ __lll_robust_mutex_timedlock (&(futex), abstime, id)
++
++
++static inline void __attribute__ ((always_inline))
++__lll_mutex_unlock (lll_lock_t *futex)
++{
++ int val = atomic_exchange_rel (futex, 0);
++ if (__builtin_expect (val > 1, 0))
++ lll_futex_wake (futex, 1);
++}
++#define lll_mutex_unlock(futex) __lll_mutex_unlock(&(futex))
++
++
++static inline void __attribute__ ((always_inline))
++__lll_robust_mutex_unlock (int *futex, int mask)
++{
++ int val = atomic_exchange_rel (futex, 0);
++ if (__builtin_expect (val & mask, 0))
++ lll_futex_wake (futex, 1);
++}
++#define lll_robust_mutex_unlock(futex) \
++ __lll_robust_mutex_unlock(&(futex), FUTEX_WAITERS)
++
++
++static inline void __attribute__ ((always_inline))
++__lll_mutex_unlock_force (lll_lock_t *futex)
++{
++ (void) atomic_exchange_rel (futex, 0);
++ lll_futex_wake (futex, 1);
++}
++#define lll_mutex_unlock_force(futex) __lll_mutex_unlock_force(&(futex))
++
++#define lll_mutex_islocked(futex) \
++ (futex != 0)
++
++/* Our internal lock implementation is identical to the binary-compatible
++ mutex implementation. */
++
++#define LLL_LOCK_INITIALIZER (0)
++#define LLL_LOCK_INITIALIZER_CONST (0)
++#define LLL_LOCK_INITIALIZER_LOCKED (1)
++
++
++#define THREAD_INIT_LOCK(PD, LOCK) \
++ (PD)->LOCK = LLL_LOCK_INITIALIZER
++
++extern int lll_unlock_wake_cb (lll_lock_t *__futex) attribute_hidden;
++
++/* The states of a lock are:
++ 0 - untaken
++ 1 - taken by one user
++ >1 - taken by more users */
++
++#define lll_trylock(lock) lll_mutex_trylock (lock)
++#define lll_lock(lock) lll_mutex_lock (lock)
++#define lll_unlock(lock) lll_mutex_unlock (lock)
++#define lll_islocked(lock) lll_mutex_islocked (lock)
++
++/* The kernel notifies a process which uses CLONE_CLEARTID via futex
++ wakeup when the clone terminates. The memory location contains the
++ thread ID while the clone is running and is reset to zero
++ afterwards. */
++#define lll_wait_tid(tid) \
++ do { \
++ __typeof (tid) __tid; \
++ while ((__tid = (tid)) != 0) \
++ lll_futex_wait (&(tid), __tid); \
++ } while (0)
++
++extern int __lll_timedwait_tid (int *, const struct timespec *)
++ attribute_hidden;
++
++#define lll_timedwait_tid(tid, abstime) \
++ ({ \
++ int __res = 0; \
++ if ((tid) != 0) \
++ __res = __lll_timedwait_tid (&(tid), (abstime)); \
++ __res; \
++ })
++
++
++/* Conditional variable handling. */
++
++extern void __lll_cond_wait (pthread_cond_t *cond)
++ attribute_hidden;
++extern int __lll_cond_timedwait (pthread_cond_t *cond,
++ const struct timespec *abstime)
++ attribute_hidden;
++extern void __lll_cond_wake (pthread_cond_t *cond)
++ attribute_hidden;
++extern void __lll_cond_broadcast (pthread_cond_t *cond)
++ attribute_hidden;
++
++#define lll_cond_wait(cond) \
++ __lll_cond_wait (cond)
++#define lll_cond_timedwait(cond, abstime) \
++ __lll_cond_timedwait (cond, abstime)
++#define lll_cond_wake(cond) \
++ __lll_cond_wake (cond)
++#define lll_cond_broadcast(cond) \
++ __lll_cond_broadcast (cond)
++
++#endif /* lowlevellock.h */
+Index: ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/sysdep-cancel.h
+===================================================================
+--- ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/sysdep-cancel.h.orig
++++ ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/sysdep-cancel.h
+@@ -236,3 +236,10 @@
+
+ #endif
+ /* !defined NOT_IN_libc || defined IS_IN_libpthread */
++
++#ifndef __ASSEMBLER__
++# define RTLD_SINGLE_THREAD_P \
++ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
++ p_multiple_threads) == 0, 1)
++#endif
++
Added: glibc-package/trunk/debian/patches/hurd-i386/submitted-ioctl-unsigned-size_t.diff
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/submitted-ioctl-unsigned-size_t.diff (rev 0)
+++ glibc-package/trunk/debian/patches/hurd-i386/submitted-ioctl-unsigned-size_t.diff 2007-07-07 16:29:26 UTC (rev 2403)
@@ -0,0 +1,13 @@
+Index: sysdeps/mach/hurd/bits/ioctls.h
+===================================================================
+--- sysdeps/mach/hurd/bits/ioctls.h 7 Jan 2006 23:29:39 -0000 1.8
++++ sysdeps/mach/hurd/bits/ioctls.h 1 Jul 2007 22:26:21 -0000
+@@ -112,6 +112,8 @@ enum __ioctl_datum { IOC_8, IOC_16, IOC_
+ #define _IOT__IOTBASE_int _IOT_SIMPLE (int)
+ #define _IOT__IOTBASE_char _IOT_SIMPLE (char)
+ #define _IOT__IOTBASE_short _IOT_SIMPLE (short)
++#define _IOT__IOTBASE_unsigned _IOT_SIMPLE (unsigned)
++#define _IOT__IOTBASE_size_t _IOT_SIMPLE (size_t)
+
+
+ /* Standard flavors of ioctls.
Modified: glibc-package/trunk/debian/patches/i386/local-biarch.diff
===================================================================
Property changes on: glibc-package/trunk/debian/patches/i386/local-biarch.diff
___________________________________________________________________
Name: svn:executable
- *
Added: glibc-package/trunk/debian/patches/localedata/fix-am_ET.diff
===================================================================
--- glibc-package/trunk/debian/patches/localedata/fix-am_ET.diff (rev 0)
+++ glibc-package/trunk/debian/patches/localedata/fix-am_ET.diff 2007-07-07 16:29:26 UTC (rev 2403)
@@ -0,0 +1,27 @@
+Index: glibc-2.6/localedata/locales/am_ET
+===================================================================
+--- glibc-2.6.orig/localedata/locales/am_ET
++++ glibc-2.6/localedata/locales/am_ET
+@@ -58,7 +58,7 @@
+ %
+ % The ETHIOPIC script declaration must come first.
+ %
+-script <ETHIOPIC>
++define USE_ETHIOPIC
+ %
+ % Copy the template from ISO/IEC 14651
+ %
+Index: glibc-2.6/localedata/locales/iso14651_t1_common
+===================================================================
+--- glibc-2.6.orig/localedata/locales/iso14651_t1_common
++++ glibc-2.6/localedata/locales/iso14651_t1_common
+@@ -50,6 +50,9 @@
+ # 2005-11-29, Pablo Saratxaga <pablo@mandriva.com>
+
+ # Déclaration des systèmes d'écriture / Declaration of scripts
++ifdef USE_ETHIOPIC
++script <ETHIOPIC>
++endif
+ script <SPECIAL>
+ script <LATIN>
+ script <TIFINAGH>
Modified: glibc-package/trunk/debian/patches/localedata/locale-de_CH.diff
===================================================================
Property changes on: glibc-package/trunk/debian/patches/localedata/locale-de_CH.diff
___________________________________________________________________
Name: svn:executable
- *
Modified: glibc-package/trunk/debian/patches/localedata/locale-ku_TR.diff
===================================================================
Property changes on: glibc-package/trunk/debian/patches/localedata/locale-ku_TR.diff
___________________________________________________________________
Name: svn:executable
- *
Modified: glibc-package/trunk/debian/patches/localedata/locale-no_NO.diff
===================================================================
Property changes on: glibc-package/trunk/debian/patches/localedata/locale-no_NO.diff
___________________________________________________________________
Name: svn:executable
- *
Added: glibc-package/trunk/debian/patches/localedata/submitted-as_IN.diff
===================================================================
--- glibc-package/trunk/debian/patches/localedata/submitted-as_IN.diff (rev 0)
+++ glibc-package/trunk/debian/patches/localedata/submitted-as_IN.diff 2007-07-07 16:29:26 UTC (rev 2403)
@@ -0,0 +1,15 @@
+http://sourceware.org/bugzilla/show_bug.cgi?id=4557
+
+Index: localedata/locales/as_IN
+===================================================================
+--- localedata/locales/as_IN.orig
++++ localedata/locales/as_IN
+@@ -596,7 +596,7 @@
+ <U09CC> <X689A>;<X0005>;<X0005>;IGNORE
+ <U09CD> <X689C>;<X0005>;<X0005>;IGNORE
+ <U09D7> <X689E>;<X0005>;<X0005>;IGNORE
+-<UNASSIGNED-09CE> "<XE2E9><X6B20>";<X0005>;"<X0005><X00C0>";IGNORE
++<U09CE> "<XE2E9><X6B20>";<X0005>;"<X0005><X00C0>";IGNORE
+ UNDEFINED IGNORE;IGNORE;IGNORE;%...
+
+ order_end
Added: glibc-package/trunk/debian/patches/sparc/local-undefined-registers.diff
===================================================================
--- glibc-package/trunk/debian/patches/sparc/local-undefined-registers.diff (rev 0)
+++ glibc-package/trunk/debian/patches/sparc/local-undefined-registers.diff 2007-07-07 16:29:26 UTC (rev 2403)
@@ -0,0 +1,18 @@
+2007-05-24 Aurelien Jarno <aurelien@aurel32.net>
+
+ * elf/Makefile: ignore global registers while looking for
+ undefined symbols.
+
+Index: elf/Makefile
+===================================================================
+--- elf/Makefile.orig
++++ elf/Makefile
+@@ -311,7 +311,7 @@
+ $(filter-out $(map-file),$^) $(load-map-file) \
+ -Wl,-soname=$(rtld-installed-name) -T $@.lds
+ rm -f $@.lds
+- nm -u $@ | cmp -s /dev/null -
++ objdump -T $@ | grep 'D. \*UND\*' | cmp -s /dev/null -
+
+ # interp.c exists just to get this string into the libraries.
+ CFLAGS-interp.c = -D'RUNTIME_LINKER="$(slibdir)/$(rtld-installed-name)"' \
Reply to: