[oe-commits] org.oe.packaged-staging glibc: Sync with .dev

rpurdie commit openembedded-commits at lists.openembedded.org
Mon Oct 2 08:11:29 UTC 2006


glibc: Sync with .dev

Author: rpurdie at openembedded.org
Branch: org.openembedded.packaged-staging
Revision: 397db3df54500e41ea6b07cc3ac1f60a34488918
ViewMTN: http://monotone.openembedded.org/revision.psp?id=397db3df54500e41ea6b07cc3ac1f60a34488918
Files:
1
packages/glibc/glibc-2.4/fix-fchownat-20060808.patch
packages/glibc/glibc-2.4/no-z-defs.patch
packages/glibc/glibc-2.4/openat-bugzilla-fix-1220.patch
packages/glibc/glibc-2.4/zecke-sane-readelf.patch
packages/glibc/glibc-initial_2.4.bb
packages/glibc/glibc-package.bbclass
packages/glibc/glibc_2.4.bb
Diffs:

#
# mt diff -r8975c1a485074dfdd9c936169bbe14dcb23bd258 -r397db3df54500e41ea6b07cc3ac1f60a34488918
#
# 
# 
# add_file "packages/glibc/glibc-2.4/fix-fchownat-20060808.patch"
#  content [4e0aab74c42d93eadf380880d1469ccbf04ebcac]
# 
# add_file "packages/glibc/glibc-2.4/no-z-defs.patch"
#  content [9b30d42bbf7d8d90c67eb6ef9b238f1fca85c247]
# 
# add_file "packages/glibc/glibc-2.4/openat-bugzilla-fix-1220.patch"
#  content [b2b8e3594dde1bc21fdce286ff104a8173e04043]
# 
# add_file "packages/glibc/glibc-2.4/zecke-sane-readelf.patch"
#  content [1bf40ba5b96f9f1b55bfc59a01c270ca3d3ba229]
# 
# patch "packages/glibc/glibc-initial_2.4.bb"
#  from [36a2668bc6d16ccfb1004de3e9566b2e2a7e84e1]
#    to [e9daa1c8641e1740ceb8ac943207dc9328234ad2]
# 
# patch "packages/glibc/glibc-package.bbclass"
#  from [e73f58eabb555c96bc532b5077ad057d9c6cbb74]
#    to [29aebf7e8045124be6713edc0f886cb90828bd31]
# 
# patch "packages/glibc/glibc_2.4.bb"
#  from [af26aacc53ebacf3464268c16e6376d5763da586]
#    to [26887465503b99418cff06f282adafc690889c0d]
# 
============================================================
--- packages/glibc/glibc-2.4/fix-fchownat-20060808.patch	4e0aab74c42d93eadf380880d1469ccbf04ebcac
+++ packages/glibc/glibc-2.4/fix-fchownat-20060808.patch	4e0aab74c42d93eadf380880d1469ccbf04ebcac
@@ -0,0 +1,415 @@
+From libc-hacker-return-8994-listarch-libc-hacker=sources dot redhat dot com at sourceware dot org Tue Aug 08 11:49:18 2006
+Return-Path: <libc-hacker-return-8994-listarch-libc-hacker=sources dot redhat dot com at sourceware dot org>
+Delivered-To: listarch-libc-hacker at sources dot redhat dot com
+Received: (qmail 21223 invoked by alias); 8 Aug 2006 11:49:17 -0000
+Received: (qmail 21202 invoked by uid 22791); 8 Aug 2006 11:49:15 -0000
+X-Spam-Check-By: sourceware.org
+Received: from sunsite.ms.mff.cuni.cz (HELO sunsite.mff.cuni.cz) (195.113.15.26)
+    by sourceware dot org (qpsmtpd/0 dot 31) with ESMTP; Tue, 08 Aug 2006 11:49:13 +0000
+Received: from sunsite.mff.cuni.cz (sunsite.mff.cuni.cz [127.0.0.1])
+	by sunsite dot mff dot cuni dot cz (8 dot 13 dot 1/8 dot 13 dot 1) with ESMTP id k78Bn8f9003038;
+	Tue, 8 Aug 2006 13:49:08 +0200
+Received: (from jj at localhost)
+	by sunsite dot mff dot cuni dot cz (8 dot 13 dot 1/8 dot 13 dot 1/Submit) id k78Bn82P003037;
+	Tue, 8 Aug 2006 13:49:08 +0200
+Date: Tue, 8 Aug 2006 13:49:07 +0200
+From: Jakub Jelinek <jakub at redhat dot com>
+To: Ulrich Drepper <drepper at redhat dot com>
+Cc: Glibc hackers <libc-hacker at sources dot redhat dot com>
+Subject: [PATCH] Fix fchownat
+Message-ID: <20060808114907.GA4556 at sunsite.mff.cuni.cz>
+Reply-To: Jakub Jelinek <jakub at redhat dot com>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+User-Agent: Mutt/1.4.1i
+Mailing-List: contact libc-hacker-help at sourceware dot org; run by ezmlm
+Precedence: bulk
+List-Subscribe: <mailto:libc-hacker-subscribe at sourceware dot org>
+List-Archive: <http://sourceware.org/ml/libc-hacker/>
+List-Post: <mailto:libc-hacker at sourceware dot org>
+List-Help: <mailto:libc-hacker-help at sourceware dot org>, <http://sourceware dot org/ml/#faqs>
+Sender: libc-hacker-owner at sourceware dot org
+Delivered-To: mailing list libc-hacker at sourceware dot org
+
+Hi!
+
+Apparently fchownat was only changed to use the direct syscall if available
+in the generic linux version, not in the various arch specializations.
+
+2006-08-08  Jakub Jelinek  <jakub at redhat.com>
+
+	* sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c (fchownat): Use
+	fchownat syscall if available.
+	* sysdeps/unix/sysv/linux/powerpc/fchownat.c (fchownat): Likewise.
+	* sysdeps/unix/sysv/linux/sh/fchownat.c (fchownat): Likewise.
+	* sysdeps/unix/sysv/linux/i386/fchownat.c (fchownat): Likewise.
+
+--- libc/sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c.jj	2006-01-11 16:55:32.000000000 +0100
++++ libc/sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c	2006-08-08 11:11:23.000000000 +0200
+@@ -53,6 +53,24 @@ extern int __libc_missing_32bit_uids;
+ int
+ fchownat (int fd, const char *file, uid_t owner, gid_t group, int flag)
+ {
++  int result;
++
++#ifdef __NR_fchownat
++# ifndef __ASSUME_ATFCTS
++  if (__have_atfcts >= 0)
++# endif
++    {
++      result = INLINE_SYSCALL (fchownat, 5, fd, file, owner, group, flag);
++# ifndef __ASSUME_ATFCTS
++      if (result == -1 && errno == ENOSYS)
++	__have_atfcts = -1;
++      else
++# endif
++	return result;
++    }
++#endif
++
++#ifndef __ASSUME_ATFCTS
+   if (flag & ~AT_SYMLINK_NOFOLLOW)
+     {
+       __set_errno (EINVAL);
+@@ -79,16 +97,15 @@ fchownat (int fd, const char *file, uid_
+       file = buf;
+     }
+ 
+-  int result;
+   INTERNAL_SYSCALL_DECL (err);
+ 
+-#if __ASSUME_32BITUIDS > 0
++# if __ASSUME_32BITUIDS > 0
+   result = INTERNAL_SYSCALL (chown32, err, 3, CHECK_STRING (file), owner,
+ 			     group);
+-#else
++# else
+   static int __libc_old_chown;
+ 
+-# ifdef __NR_chown32
++#  ifdef __NR_chown32
+   if (__libc_missing_32bit_uids <= 0)
+     {
+       if (flag & AT_SYMLINK_NOFOLLOW)
+@@ -105,7 +122,7 @@ fchownat (int fd, const char *file, uid_
+ 
+       __libc_missing_32bit_uids = 1;
+     }
+-# endif /* __NR_chown32 */
++#  endif /* __NR_chown32 */
+   if (((owner + 1) > (uid_t) ((__kernel_uid_t) -1U))
+       || ((group + 1) > (gid_t) ((__kernel_gid_t) -1U)))
+     {
+@@ -128,7 +145,7 @@ fchownat (int fd, const char *file, uid_
+ 
+   result = INTERNAL_SYSCALL (lchown, err, 3, CHECK_STRING (file), owner,
+ 			     group);
+-#endif
++# endif
+ 
+   if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0))
+     {
+@@ -138,4 +155,5 @@ fchownat (int fd, const char *file, uid_
+     }
+ 
+   return result;
++#endif
+ }
+--- libc/sysdeps/unix/sysv/linux/powerpc/fchownat.c.jj	2005-11-11 20:43:35.000000000 +0100
++++ libc/sysdeps/unix/sysv/linux/powerpc/fchownat.c	2006-08-08 11:14:52.000000000 +0200
+@@ -37,6 +37,24 @@
+ int
+ fchownat (int fd, const char *file, uid_t owner, gid_t group, int flag)
+ {
++  int result;
++
++#ifdef __NR_fchownat
++# ifndef __ASSUME_ATFCTS
++  if (__have_atfcts >= 0)
++# endif
++    {
++      result = INLINE_SYSCALL (fchownat, 5, fd, file, owner, group, flag);
++# ifndef __ASSUME_ATFCTS
++      if (result == -1 && errno == ENOSYS)
++	__have_atfcts = -1;
++      else
++# endif
++	return result;
++    }
++#endif
++
++#ifndef __ASSUME_ATFCTS
+   if (flag & ~AT_SYMLINK_NOFOLLOW)
+     {
+       __set_errno (EINVAL);
+@@ -63,15 +81,14 @@ fchownat (int fd, const char *file, uid_
+       file = buf;
+     }
+ 
+-  int result;
+   INTERNAL_SYSCALL_DECL (err);
+ 
+-#if __ASSUME_LCHOWN_SYSCALL
++# if __ASSUME_LCHOWN_SYSCALL
+   if (flag & AT_SYMLINK_NOFOLLOW)
+     result = INTERNAL_SYSCALL (lchown, err, 3, file, owner, group);
+   else
+     result = INTERNAL_SYSCALL (chown, err, 3, file, owner, group);
+-#else
++# else
+   char link[PATH_MAX + 2];
+   char path[2 * PATH_MAX + 4];
+   int loopct;
+@@ -89,7 +106,7 @@ fchownat (int fd, const char *file, uid_
+       goto out;
+     }
+ 
+-# ifdef __NR_lchown
++#  ifdef __NR_lchown
+   if (flag & AT_SYMLINK_NOFOLLOW)
+     {
+       result = INTERNAL_SYSCALL (lchown, err, 3, __ptrvalue (file), owner,
+@@ -110,25 +127,25 @@ fchownat (int fd, const char *file, uid_
+ 	}
+       libc_old_chown = -1;
+     }
+-# else
++#  else
+   if (flag & AT_SYMLINK_NOFOLLOW)
+     {
+       result = INTERNAL_SYSCALL (chown, err, 3, __ptrvalue (file), owner,
+ 				 group);
+       goto out;
+     }
+-# endif
++#  endif
+ 
+   result = __readlink (file, link, PATH_MAX + 1);
+   if (result == -1)
+     {
+-# ifdef __NR_lchown
++#  ifdef __NR_lchown
+       result = INTERNAL_SYSCALL (lchown, err, 3, __ptrvalue (file), owner,
+ 				 group);
+-# else
++#  else
+       result = INTERNAL_SYSCALL (chown, err, 3, __ptrvalue (file), owner,
+ 				 group);
+-# endif
++#  endif
+       goto out;
+     }
+ 
+@@ -178,11 +195,11 @@ fchownat (int fd, const char *file, uid_
+ 
+       if (result == -1)
+ 	{
+-# ifdef __NR_lchown
++#  ifdef __NR_lchown
+ 	  result = INTERNAL_SYSCALL (lchown, err, 3, path, owner, group);
+-# else
++#  else
+ 	  result = INTERNAL_SYSCALL (chown, err, 3, path, owner, group);
+-# endif
++#  endif
+ 	  goto out;
+ 	}
+     }
+@@ -190,16 +207,17 @@ fchownat (int fd, const char *file, uid_
+   return -1;
+ 
+  out:
+-#endif
++# endif
+ 
+   if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0))
+     {
+-#if !__ASSUME_LCHOWN_SYSCALL
++# if !__ASSUME_LCHOWN_SYSCALL
+     fail:
+-#endif
++# endif
+       __atfct_seterrno (INTERNAL_SYSCALL_ERRNO (result, err), fd, buf);
+       result = -1;
+     }
+ 
+   return result;
++#endif
+ }
+--- libc/sysdeps/unix/sysv/linux/sh/fchownat.c.jj	2006-03-05 14:32:42.000000000 +0100
++++ libc/sysdeps/unix/sysv/linux/sh/fchownat.c	2006-08-08 11:19:28.000000000 +0200
+@@ -40,6 +40,24 @@ extern int __libc_missing_32bit_uids;
+ int
+ fchownat (int fd, const char *file, uid_t owner, gid_t group, int flag)
+ {
++  int result;
++
++#ifdef __NR_fchownat
++# ifndef __ASSUME_ATFCTS
++  if (__have_atfcts >= 0)
++# endif
++    {
++      result = INLINE_SYSCALL (fchownat, 5, fd, file, owner, group, flag);
++# ifndef __ASSUME_ATFCTS
++      if (result == -1 && errno == ENOSYS)
++	__have_atfcts = -1;
++      else
++# endif
++	return result;
++    }
++#endif
++
++#ifndef __ASSUME_ATFCTS
+   if (flag & ~AT_SYMLINK_NOFOLLOW)
+     {
+       __set_errno (EINVAL);
+@@ -66,18 +84,17 @@ fchownat (int fd, const char *file, uid_
+       file = buf;
+     }
+ 
+-  int result;
+   INTERNAL_SYSCALL_DECL (err);
+ 
+-#if __ASSUME_32BITUIDS > 0
++# if __ASSUME_32BITUIDS > 0
+   if (flag & AT_SYMLINK_NOFOLLOW)
+     result = INTERNAL_SYSCALL (lchown32, err, 3, CHECK_STRING (file), owner,
+ 			       group);
+   else
+     result = INTERNAL_SYSCALL (chown32, err, 3, CHECK_STRING (file), owner,
+ 			       group);
+-#else
+-# ifdef __NR_chown32
++# else
++#  ifdef __NR_chown32
+   if (__libc_missing_32bit_uids <= 0)
+     {
+       if (flag & AT_SYMLINK_NOFOLLOW)
+@@ -94,7 +111,7 @@ fchownat (int fd, const char *file, uid_
+ 
+       __libc_missing_32bit_uids = 1;
+     }
+-# endif /* __NR_chown32 */
++#  endif /* __NR_chown32 */
+ 
+   if (((owner + 1) > (gid_t) ((__kernel_uid_t) -1U))
+       || ((group + 1) > (gid_t) ((__kernel_gid_t) -1U)))
+@@ -109,7 +126,7 @@ fchownat (int fd, const char *file, uid_
+   else
+     result = INTERNAL_SYSCALL (chown, err, 3, CHECK_STRING (file), owner,
+ 			       group);
+-#endif
++# endif
+ 
+   if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0))
+     {
+@@ -119,4 +136,5 @@ fchownat (int fd, const char *file, uid_
+     }
+ 
+   return result;
++#endif
+ }
+--- libc/sysdeps/unix/sysv/linux/i386/fchownat.c.jj	2006-02-27 18:31:00.000000000 +0100
++++ libc/sysdeps/unix/sysv/linux/i386/fchownat.c	2006-08-08 11:20:49.000000000 +0200
+@@ -61,6 +61,24 @@ extern int __libc_missing_32bit_uids;
+ int
+ fchownat (int fd, const char *file, uid_t owner, gid_t group, int flag)
+ {
++  int result;
++
++#ifdef __NR_fchownat
++# ifndef __ASSUME_ATFCTS
++  if (__have_atfcts >= 0)
++# endif
++    {
++      result = INLINE_SYSCALL (fchownat, 5, fd, file, owner, group, flag);
++# ifndef __ASSUME_ATFCTS
++      if (result == -1 && errno == ENOSYS)
++	__have_atfcts = -1;
++      else
++# endif
++	return result;
++    }
++#endif
++
++#ifndef __ASSUME_ATFCTS
+   if (flag & ~AT_SYMLINK_NOFOLLOW)
+     {
+       __set_errno (EINVAL);
+@@ -87,14 +105,13 @@ fchownat (int fd, const char *file, uid_
+       file = buf;
+     }
+ 
+-  int result;
+   INTERNAL_SYSCALL_DECL (err);
+ 
+-#if defined __NR_lchown || __ASSUME_LCHOWN_SYSCALL > 0
+-# if __ASSUME_LCHOWN_SYSCALL == 0
++# if defined __NR_lchown || __ASSUME_LCHOWN_SYSCALL > 0
++#  if __ASSUME_LCHOWN_SYSCALL == 0
+   static int __libc_old_chown;
+ 
+-#  ifdef __NR_chown32
++#   ifdef __NR_chown32
+   if (__libc_missing_32bit_uids <= 0)
+     {
+       if (flag & AT_SYMLINK_NOFOLLOW)
+@@ -111,7 +128,7 @@ fchownat (int fd, const char *file, uid_
+ 
+       __libc_missing_32bit_uids = 1;
+     }
+-#  endif /* __NR_chown32 */
++#   endif /* __NR_chown32 */
+ 
+   if (((owner + 1) > (uid_t) ((__kernel_uid_t) -1U))
+       || ((group + 1) > (gid_t) ((__kernel_gid_t) -1U)))
+@@ -135,13 +152,13 @@ fchownat (int fd, const char *file, uid_
+ 
+   result = INTERNAL_SYSCALL (lchown, err, 3, CHECK_STRING (file), owner,
+ 			     group);
+-# elif __ASSUME_32BITUIDS
++#  elif __ASSUME_32BITUIDS
+   /* This implies __ASSUME_LCHOWN_SYSCALL.  */
+   result = INTERNAL_SYSCALL (chown32, err, 3, CHECK_STRING (file), owner,
+ 			     group);
+-# else
++#  else
+   /* !__ASSUME_32BITUIDS && ASSUME_LCHOWN_SYSCALL  */
+-#  ifdef __NR_chown32
++#   ifdef __NR_chown32
+   if (__libc_missing_32bit_uids <= 0)
+     {
+       result = INTERNAL_SYSCALL (chown32, err, 3, CHECK_STRING (file), owner,
+@@ -153,7 +170,7 @@ fchownat (int fd, const char *file, uid_
+ 
+       __libc_missing_32bit_uids = 1;
+     }
+-#  endif /* __NR_chown32 */
++#   endif /* __NR_chown32 */
+   if (((owner + 1) > (uid_t) ((__kernel_uid_t) -1U))
+       || ((group + 1) > (gid_t) ((__kernel_gid_t) -1U)))
+     {
+@@ -162,10 +179,10 @@ fchownat (int fd, const char *file, uid_
+     }
+ 
+   result = INTERNAL_SYSCALL (chown, err, 3, CHECK_STRING (file), owner, group);
+-# endif
+-#else
++#  endif
++# else
+   result = INTERNAL_SYSCALL (chown, err, 3, CHECK_STRING (file), owner, group);
+-#endif
++# endif
+ 
+   if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0))
+     goto fail;
+@@ -175,4 +192,5 @@ fchownat (int fd, const char *file, uid_
+  fail:
+   __atfct_seterrno (INTERNAL_SYSCALL_ERRNO (result, err), fd, buf);
+   return -1;
++#endif
+ }
+
+	Jakub
+
============================================================
--- packages/glibc/glibc-2.4/no-z-defs.patch	9b30d42bbf7d8d90c67eb6ef9b238f1fca85c247
+++ packages/glibc/glibc-2.4/no-z-defs.patch	9b30d42bbf7d8d90c67eb6ef9b238f1fca85c247
@@ -0,0 +1,9 @@
+Create a configparms file which disabled no-z-defs.
+This is required to build a working glibs for sh4,
+without there will be a lot linker errors during the build.
+
+diff -duNr libc.orig/configparms libc/configparms
+--- libc.orig/configparms	1970-01-01 10:00:00.000000000 +1000
++++ libc/configparms	2006-02-23 14:08:18.000000000 +1100
+@@ -0,0 +1 @@
++no-z-defs=yes
============================================================
--- packages/glibc/glibc-2.4/openat-bugzilla-fix-1220.patch	b2b8e3594dde1bc21fdce286ff104a8173e04043
+++ packages/glibc/glibc-2.4/openat-bugzilla-fix-1220.patch	b2b8e3594dde1bc21fdce286ff104a8173e04043
@@ -0,0 +1,37 @@
+--- glibc-2.4/sysdeps/unix/sysv/linux/openat.orig	2006-03-01 07:32:42.000000000 +0200
++++ glibc-2.4/sysdeps/unix/sysv/linux/openat.c	2006-04-30 19:15:52.000000000 +0300
+@@ -27,6 +27,9 @@
+ #include <sysdep-cancel.h>
+ #include <not-cancel.h>
+ 
++#if !defined OPENAT
++# define OPENAT openat
++#endif
+ 
+ #if !defined OPENAT && !defined __ASSUME_ATFCTS
+ # define OPENAT openat
+@@ -70,11 +73,7 @@ int __have_atfcts;
+ 
+ 
+ int
+-OPENAT_NOT_CANCEL (fd, file, oflag, mode)
+-     int fd;
+-     const char *file;
+-     int oflag;
+-     mode_t mode;
++OPENAT_NOT_CANCEL (int fd, const char *file, int oflag, mode_t mode)
+ {
+ 
+   /* We have to add the O_LARGEFILE flag for openat64.  */
+@@ -144,10 +143,7 @@ OPENAT_NOT_CANCEL (fd, file, oflag, mode
+    the directory associated with FD.  If OFLAG includes O_CREAT, a
+    third argument is the file protection.  */
+ int
+-__OPENAT (fd, file, oflag)
+-     int fd;
+-     const char *file;
+-     int oflag;
++__OPENAT (int fd, const char *file, int oflag, ...)
+ {
+   mode_t mode = 0;
+   if (oflag & O_CREAT)
============================================================
--- packages/glibc/glibc-2.4/zecke-sane-readelf.patch	1bf40ba5b96f9f1b55bfc59a01c270ca3d3ba229
+++ packages/glibc/glibc-2.4/zecke-sane-readelf.patch	1bf40ba5b96f9f1b55bfc59a01c270ca3d3ba229
@@ -0,0 +1,149 @@
+Index: glibc-2.4/configure
+===================================================================
+--- glibc-2.4.orig/configure	2006-03-06 12:18:56.000000000 +0100
++++ glibc-2.4/configure	2006-08-06 14:10:51.000000000 +0200
+@@ -5488,6 +5488,95 @@
+     fi
+   fi
+ 
++### XXXX copy and pasted
++# Check for readelf
++# Extract the first word of "$target_alias-readelf", so it can be a program name with args.
++set dummy $target_alias-readelf; ac_word=$2
++{ echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
++%s
>>> DIFF TRUNCATED @ 16K






More information about the Openembedded-commits mailing list