commit a51dfad3e27180878f55d6dc5d0e40f2afeb6672f19de7f8387aab09f657ce9d Author: Adrian Schröter Date: Fri Feb 20 07:46:43 2009 +0000 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..f37d7ce --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,17 @@ +glibc + arch i586 block! + targettype x86 +/etc/ld.so.conf + targettype x86 "/lib/ld-linux.so.2 -> /lib/ld-linux.so.2" + targettype x86 obsoletes "baselibs-x86" + targettype ia32 +/etc/ld.so.conf + targettype ia32 "/lib/ld-linux.so.2 -> /lib/ld-linux.so.2" + prereq -glibc-x86 +glibc-locale + arch i586 block! + +/usr/lib(64)?/gconv/gconv-modules + targettype x86 -/usr/lib(64)?/gconv/gconv-modules +glibc-devel + arch i586 block! + +^/usr/include/gnu/stubs-.*\.h$ +glibc-profile + arch i586 block! diff --git a/bindresvport.blacklist b/bindresvport.blacklist new file mode 100644 index 0000000..ae64c70 --- /dev/null +++ b/bindresvport.blacklist @@ -0,0 +1,12 @@ +# +# This file contains a list of port numbers between 600 and 1024, +# which should not be used by bindresvport. bindresvport is mostly +# called by RPC services. This mostly solves the problem, that a +# RPC service uses a well known port of another service. +# +631 # cups +636 # ldaps +774 # rpasswd +921 # lwresd +993 # imaps +995 # pops diff --git a/check-build.sh b/check-build.sh new file mode 100644 index 0000000..cc01226 --- /dev/null +++ b/check-build.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# Copyright (c) 2003, 2004 SuSE Linux AG, Germany. All rights reserved. +# +# Authors: Thorsten Kukuk +# +# this script use the following variable(s): +# +# - $BUILD_BASENAME +# + +if [ `nice` -gt '9' ] ; then + echo "Don't modify nice for building glibc!" + exit 1 +fi + +# get kernel version +OFS="$IFS" ; IFS=".-" ; version=(`uname -r`) ; IFS="$OIFS" +if test ${version[0]} -lt 2 -o ${version[1]} -lt 6 -o ${version[2]} -lt 11 ; then + echo "FATAL: kernel too old, need kernel >= 2.6.11 for this package" 1>&2 + exit 1 +fi + + +exit 0 + diff --git a/crypt_blowfish-1.0.diff b/crypt_blowfish-1.0.diff new file mode 100644 index 0000000..32e5be7 --- /dev/null +++ b/crypt_blowfish-1.0.diff @@ -0,0 +1,1330 @@ +diff -ruN crypt-/crypt_blowfish.c crypt/crypt_blowfish.c +--- crypt-/crypt_blowfish.c 1970-01-01 01:00:00.000000000 +0100 ++++ crypt/crypt_blowfish.c 2006-09-20 20:56:59.000000000 +0200 +@@ -0,0 +1,743 @@ ++/* ++ * This code comes from John the Ripper password cracker, with reentrant ++ * and crypt(3) interfaces added, but optimizations specific to password ++ * cracking removed. ++ * ++ * Written by Solar Designer in 1998-2002 and ++ * placed in the public domain. ++ * ++ * There's absolutely no warranty. ++ * ++ * It is my intent that you should be able to use this on your system, ++ * as a part of a software package, or anywhere else to improve security, ++ * ensure compatibility, or for any other purpose. I would appreciate ++ * it if you give credit where it is due and keep your modifications in ++ * the public domain as well, but I don't require that in order to let ++ * you place this code and any modifications you make under a license ++ * of your choice. ++ * ++ * This implementation is compatible with OpenBSD bcrypt.c (version 2a) ++ * by Niels Provos , and uses some of his ++ * ideas. The password hashing algorithm was designed by David Mazieres ++ * . ++ * ++ * There's a paper on the algorithm that explains its design decisions: ++ * ++ * http://www.usenix.org/events/usenix99/provos.html ++ * ++ * Some of the tricks in BF_ROUND might be inspired by Eric Young's ++ * Blowfish library (I can't be sure if I would think of something if I ++ * hadn't seen his code). ++ */ ++ ++#include ++ ++#include ++#ifndef __set_errno ++#define __set_errno(val) errno = (val) ++#endif ++ ++#undef __CONST ++#ifdef __GNUC__ ++#define __CONST __const ++#else ++#define __CONST ++#endif ++ ++#ifdef __i386__ ++#define BF_ASM 1 ++#define BF_SCALE 1 ++#elif defined(__alpha__) || defined(__hppa__) ++#define BF_ASM 0 ++#define BF_SCALE 1 ++#else ++#define BF_ASM 0 ++#define BF_SCALE 0 ++#endif ++ ++typedef unsigned int BF_word; ++ ++/* Number of Blowfish rounds, this is also hardcoded into a few places */ ++#define BF_N 16 ++ ++typedef BF_word BF_key[BF_N + 2]; ++ ++typedef struct { ++ BF_word S[4][0x100]; ++ BF_key P; ++} BF_ctx; ++ ++/* ++ * Magic IV for 64 Blowfish encryptions that we do at the end. ++ * The string is "OrpheanBeholderScryDoubt" on big-endian. ++ */ ++static BF_word BF_magic_w[6] = { ++ 0x4F727068, 0x65616E42, 0x65686F6C, ++ 0x64657253, 0x63727944, 0x6F756274 ++}; ++ ++/* ++ * P-box and S-box tables initialized with digits of Pi. ++ */ ++static BF_ctx BF_init_state = { ++ { ++ { ++ 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, ++ 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99, ++ 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, ++ 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, ++ 0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee, ++ 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, ++ 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, ++ 0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e, ++ 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60, ++ 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, ++ 0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce, ++ 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a, ++ 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, ++ 0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677, ++ 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, ++ 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, ++ 0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88, ++ 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239, ++ 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, ++ 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0, ++ 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, ++ 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, ++ 0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88, ++ 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe, ++ 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, ++ 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d, ++ 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b, ++ 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, ++ 0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba, ++ 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463, ++ 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, ++ 0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09, ++ 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3, ++ 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, ++ 0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279, ++ 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, ++ 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, ++ 0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82, ++ 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db, ++ 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, ++ 0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0, ++ 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, ++ 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, ++ 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8, ++ 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, ++ 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, ++ 0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7, ++ 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c, ++ 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, ++ 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1, ++ 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, ++ 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, ++ 0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477, ++ 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf, ++ 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, ++ 0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af, ++ 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa, ++ 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, ++ 0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41, ++ 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, ++ 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, ++ 0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915, ++ 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, ++ 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a ++ }, { ++ 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, ++ 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266, ++ 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, ++ 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, ++ 0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6, ++ 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, ++ 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, ++ 0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1, ++ 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737, ++ 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, ++ 0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff, ++ 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, ++ 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, ++ 0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7, ++ 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41, ++ 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, ++ 0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf, ++ 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af, ++ 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, ++ 0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87, ++ 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c, ++ 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, ++ 0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16, ++ 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd, ++ 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, ++ 0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509, ++ 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, ++ 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, ++ 0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f, ++ 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a, ++ 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, ++ 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960, ++ 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66, ++ 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, ++ 0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802, ++ 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84, ++ 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, ++ 0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf, ++ 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14, ++ 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, ++ 0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50, ++ 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, ++ 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, ++ 0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281, ++ 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99, ++ 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, ++ 0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128, ++ 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, ++ 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, ++ 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0, ++ 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, ++ 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, ++ 0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3, ++ 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285, ++ 0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, ++ 0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061, ++ 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, ++ 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, ++ 0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735, ++ 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc, ++ 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, ++ 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340, ++ 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20, ++ 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7 ++ }, { ++ 0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, ++ 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068, ++ 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, ++ 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, ++ 0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45, ++ 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504, ++ 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, ++ 0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb, ++ 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee, ++ 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, ++ 0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42, ++ 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b, ++ 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, ++ 0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb, ++ 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527, ++ 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, ++ 0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33, ++ 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, ++ 0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, ++ 0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc, ++ 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17, ++ 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, ++ 0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b, ++ 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115, ++ 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, ++ 0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728, ++ 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, ++ 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, ++ 0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37, ++ 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d, ++ 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, ++ 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b, ++ 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, ++ 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, ++ 0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d, ++ 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c, ++ 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, ++ 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9, ++ 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a, ++ 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, ++ 0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d, ++ 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc, ++ 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, ++ 0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61, ++ 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2, ++ 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, ++ 0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2, ++ 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, ++ 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, ++ 0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633, ++ 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10, ++ 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, ++ 0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52, ++ 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027, ++ 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, ++ 0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62, ++ 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, ++ 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, ++ 0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24, ++ 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc, ++ 0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, ++ 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c, ++ 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, ++ 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0 ++ }, { ++ 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, ++ 0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe, ++ 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, ++ 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, ++ 0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8, ++ 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6, ++ 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, ++ 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22, ++ 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, ++ 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, ++ 0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9, ++ 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59, ++ 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, ++ 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51, ++ 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, ++ 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, ++ 0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b, ++ 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28, ++ 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, ++ 0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd, ++ 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a, ++ 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, ++ 0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb, ++ 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, ++ 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, ++ 0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32, ++ 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680, ++ 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, ++ 0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae, ++ 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, ++ 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, ++ 0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47, ++ 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, ++ 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, ++ 0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84, ++ 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048, ++ 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, ++ 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd, ++ 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, ++ 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, ++ 0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38, ++ 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f, ++ 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, ++ 0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525, ++ 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1, ++ 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, ++ 0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964, ++ 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e, ++ 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, ++ 0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d, ++ 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f, ++ 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, ++ 0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02, ++ 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, ++ 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, ++ 0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a, ++ 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6, ++ 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, ++ 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, ++ 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060, ++ 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, ++ 0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9, ++ 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, ++ 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6 ++ } ++ }, { ++ 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, ++ 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89, ++ 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, ++ 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, ++ 0x9216d5d9, 0x8979fb1b ++ } ++}; ++ ++static unsigned char BF_itoa64[64 + 1] = ++ "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; ++ ++static unsigned char BF_atoi64[0x60] = { ++ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 1, ++ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 64, 64, 64, 64, 64, ++ 64, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, ++ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 64, 64, 64, 64, 64, ++ 64, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, ++ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 64, 64, 64, 64, 64 ++}; ++ ++/* ++ * This may be optimized out if built with function inlining and no BF_ASM. ++ */ ++static void clean(void *data, int size) ++{ ++#if BF_ASM ++ extern void _BF_clean(void *data); ++#endif ++ memset(data, 0, size); ++#if BF_ASM ++ _BF_clean(data); ++#endif ++} ++ ++#define BF_safe_atoi64(dst, src) \ ++{ \ ++ tmp = (unsigned char)(src); \ ++ if ((unsigned int)(tmp -= 0x20) >= 0x60) return -1; \ ++ tmp = BF_atoi64[tmp]; \ ++ if (tmp > 63) return -1; \ ++ (dst) = tmp; \ ++} ++ ++static int BF_decode(BF_word *dst, __CONST char *src, int size) ++{ ++ unsigned char *dptr = (unsigned char *)dst; ++ unsigned char *end = dptr + size; ++ unsigned char *sptr = (unsigned char *)src; ++ unsigned int tmp, c1, c2, c3, c4; ++ ++ do { ++ BF_safe_atoi64(c1, *sptr++); ++ BF_safe_atoi64(c2, *sptr++); ++ *dptr++ = (c1 << 2) | ((c2 & 0x30) >> 4); ++ if (dptr >= end) break; ++ ++ BF_safe_atoi64(c3, *sptr++); ++ *dptr++ = ((c2 & 0x0F) << 4) | ((c3 & 0x3C) >> 2); ++ if (dptr >= end) break; ++ ++ BF_safe_atoi64(c4, *sptr++); ++ *dptr++ = ((c3 & 0x03) << 6) | c4; ++ } while (dptr < end); ++ ++ return 0; ++} ++ ++static void BF_encode(char *dst, __CONST BF_word *src, int size) ++{ ++ unsigned char *sptr = (unsigned char *)src; ++ unsigned char *end = sptr + size; ++ unsigned char *dptr = (unsigned char *)dst; ++ unsigned int c1, c2; ++ ++ do { ++ c1 = *sptr++; ++ *dptr++ = BF_itoa64[c1 >> 2]; ++ c1 = (c1 & 0x03) << 4; ++ if (sptr >= end) { ++ *dptr++ = BF_itoa64[c1]; ++ break; ++ } ++ ++ c2 = *sptr++; ++ c1 |= c2 >> 4; ++ *dptr++ = BF_itoa64[c1]; ++ c1 = (c2 & 0x0f) << 2; ++ if (sptr >= end) { ++ *dptr++ = BF_itoa64[c1]; ++ break; ++ } ++ ++ c2 = *sptr++; ++ c1 |= c2 >> 6; ++ *dptr++ = BF_itoa64[c1]; ++ *dptr++ = BF_itoa64[c2 & 0x3f]; ++ } while (sptr < end); ++} ++ ++static void BF_swap(BF_word *x, int count) ++{ ++ static int endianness_check = 1; ++ char *is_little_endian = (char *)&endianness_check; ++ BF_word tmp; ++ ++ if (*is_little_endian) ++ do { ++ tmp = *x; ++ tmp = (tmp << 16) | (tmp >> 16); ++ *x++ = ((tmp & 0x00FF00FF) << 8) | ((tmp >> 8) & 0x00FF00FF); ++ } while (--count); ++} ++ ++#if BF_SCALE ++/* Architectures which can shift addresses left by 2 bits with no extra cost */ ++#define BF_ROUND(L, R, N) \ ++ tmp1 = L & 0xFF; \ ++ tmp2 = L >> 8; \ ++ tmp2 &= 0xFF; \ ++ tmp3 = L >> 16; \ ++ tmp3 &= 0xFF; \ ++ tmp4 = L >> 24; \ ++ tmp1 = data.ctx.S[3][tmp1]; \ ++ tmp2 = data.ctx.S[2][tmp2]; \ ++ tmp3 = data.ctx.S[1][tmp3]; \ ++ tmp3 += data.ctx.S[0][tmp4]; \ ++ tmp3 ^= tmp2; \ ++ R ^= data.ctx.P[N + 1]; \ ++ tmp3 += tmp1; \ ++ R ^= tmp3; ++#else ++/* Architectures with no complicated addressing modes supported */ ++#define BF_INDEX(S, i) \ ++ (*((BF_word *)(((unsigned char *)S) + (i)))) ++#define BF_ROUND(L, R, N) \ ++ tmp1 = L & 0xFF; \ ++ tmp1 <<= 2; \ ++ tmp2 = L >> 6; \ ++ tmp2 &= 0x3FC; \ ++ tmp3 = L >> 14; \ ++ tmp3 &= 0x3FC; \ ++ tmp4 = L >> 22; \ ++ tmp4 &= 0x3FC; \ ++ tmp1 = BF_INDEX(data.ctx.S[3], tmp1); \ ++ tmp2 = BF_INDEX(data.ctx.S[2], tmp2); \ ++ tmp3 = BF_INDEX(data.ctx.S[1], tmp3); \ ++ tmp3 += BF_INDEX(data.ctx.S[0], tmp4); \ ++ tmp3 ^= tmp2; \ ++ R ^= data.ctx.P[N + 1]; \ ++ tmp3 += tmp1; \ ++ R ^= tmp3; ++#endif ++ ++/* ++ * Encrypt one block, BF_N is hardcoded here. ++ */ ++#define BF_ENCRYPT \ ++ L ^= data.ctx.P[0]; \ ++ BF_ROUND(L, R, 0); \ ++ BF_ROUND(R, L, 1); \ ++ BF_ROUND(L, R, 2); \ ++ BF_ROUND(R, L, 3); \ ++ BF_ROUND(L, R, 4); \ ++ BF_ROUND(R, L, 5); \ ++ BF_ROUND(L, R, 6); \ ++ BF_ROUND(R, L, 7); \ ++ BF_ROUND(L, R, 8); \ ++ BF_ROUND(R, L, 9); \ ++ BF_ROUND(L, R, 10); \ ++ BF_ROUND(R, L, 11); \ ++ BF_ROUND(L, R, 12); \ ++ BF_ROUND(R, L, 13); \ ++ BF_ROUND(L, R, 14); \ ++ BF_ROUND(R, L, 15); \ ++ tmp4 = R; \ ++ R = L; \ ++ L = tmp4 ^ data.ctx.P[BF_N + 1]; ++ ++#if BF_ASM ++#define BF_body() \ ++ _BF_body_r(&data.ctx); ++#else ++#define BF_body() \ ++ L = R = 0; \ ++ ptr = data.ctx.P; \ ++ do { \ ++ ptr += 2; \ ++ BF_ENCRYPT; \ ++ *(ptr - 2) = L; \ ++ *(ptr - 1) = R; \ ++ } while (ptr < &data.ctx.P[BF_N + 2]); \ ++\ ++ ptr = data.ctx.S[0]; \ ++ do { \ ++ ptr += 2; \ ++ BF_ENCRYPT; \ ++ *(ptr - 2) = L; \ ++ *(ptr - 1) = R; \ ++ } while (ptr < &data.ctx.S[3][0xFF]); ++#endif ++ ++static void BF_set_key(__CONST char *key, BF_key expanded, BF_key initial) ++{ ++ __CONST char *ptr = key; ++ int i, j; ++ BF_word tmp; ++ ++ for (i = 0; i < BF_N + 2; i++) { ++ tmp = 0; ++ for (j = 0; j < 4; j++) { ++ tmp <<= 8; ++ tmp |= *ptr; ++ ++ if (!*ptr) ptr = key; else ptr++; ++ } ++ ++ expanded[i] = tmp; ++ initial[i] = BF_init_state.P[i] ^ tmp; ++ } ++} ++ ++char *_crypt_blowfish_rn(__CONST char *key, __CONST char *setting, ++ char *output, int size) ++{ ++#if BF_ASM ++ extern void _BF_body_r(BF_ctx *ctx); ++#endif ++ struct { ++ BF_ctx ctx; ++ BF_key expanded_key; ++ union { ++ BF_word salt[4]; ++ BF_word output[6]; ++ } binary; ++ } data; ++ BF_word L, R; ++ BF_word tmp1, tmp2, tmp3, tmp4; ++ BF_word *ptr; ++ BF_word count; ++ int i; ++ ++ if (size < 7 + 22 + 31 + 1) { ++ __set_errno(ERANGE); ++ return NULL; ++ } ++ ++ if (setting[0] != '$' || ++ setting[1] != '2' || ++ setting[2] != 'a' || ++ setting[3] != '$' || ++ setting[4] < '0' || setting[4] > '3' || ++ setting[5] < '0' || setting[5] > '9' || ++ setting[6] != '$') { ++ __set_errno(EINVAL); ++ return NULL; ++ } ++ ++ count = (BF_word)1 << ((setting[4] - '0') * 10 + (setting[5] - '0')); ++ if (count < 16 || BF_decode(data.binary.salt, &setting[7], 16)) { ++ clean(data.binary.salt, sizeof(data.binary.salt)); ++ __set_errno(EINVAL); ++ return NULL; ++ } ++ BF_swap(data.binary.salt, 4); ++ ++ BF_set_key(key, data.expanded_key, data.ctx.P); ++ ++ memcpy(data.ctx.S, BF_init_state.S, sizeof(data.ctx.S)); ++ ++ L = R = 0; ++ for (i = 0; i < BF_N + 2; i += 2) { ++ L ^= data.binary.salt[i & 2]; ++ R ^= data.binary.salt[(i & 2) + 1]; ++ BF_ENCRYPT; ++ data.ctx.P[i] = L; ++ data.ctx.P[i + 1] = R; ++ } ++ ++ ptr = data.ctx.S[0]; ++ do { ++ ptr += 4; ++ L ^= data.binary.salt[(BF_N + 2) & 3]; ++ R ^= data.binary.salt[(BF_N + 3) & 3]; ++ BF_ENCRYPT; ++ *(ptr - 4) = L; ++ *(ptr - 3) = R; ++ ++ L ^= data.binary.salt[(BF_N + 4) & 3]; ++ R ^= data.binary.salt[(BF_N + 5) & 3]; ++ BF_ENCRYPT; ++ *(ptr - 2) = L; ++ *(ptr - 1) = R; ++ } while (ptr < &data.ctx.S[3][0xFF]); ++ ++ do { ++ data.ctx.P[0] ^= data.expanded_key[0]; ++ data.ctx.P[1] ^= data.expanded_key[1]; ++ data.ctx.P[2] ^= data.expanded_key[2]; ++ data.ctx.P[3] ^= data.expanded_key[3]; ++ data.ctx.P[4] ^= data.expanded_key[4]; ++ data.ctx.P[5] ^= data.expanded_key[5]; ++ data.ctx.P[6] ^= data.expanded_key[6]; ++ data.ctx.P[7] ^= data.expanded_key[7]; ++ data.ctx.P[8] ^= data.expanded_key[8]; ++ data.ctx.P[9] ^= data.expanded_key[9]; ++ data.ctx.P[10] ^= data.expanded_key[10]; ++ data.ctx.P[11] ^= data.expanded_key[11]; ++ data.ctx.P[12] ^= data.expanded_key[12]; ++ data.ctx.P[13] ^= data.expanded_key[13]; ++ data.ctx.P[14] ^= data.expanded_key[14]; ++ data.ctx.P[15] ^= data.expanded_key[15]; ++ data.ctx.P[16] ^= data.expanded_key[16]; ++ data.ctx.P[17] ^= data.expanded_key[17]; ++ ++ BF_body(); ++ ++ tmp1 = data.binary.salt[0]; ++ tmp2 = data.binary.salt[1]; ++ tmp3 = data.binary.salt[2]; ++ tmp4 = data.binary.salt[3]; ++ data.ctx.P[0] ^= tmp1; ++ data.ctx.P[1] ^= tmp2; ++ data.ctx.P[2] ^= tmp3; ++ data.ctx.P[3] ^= tmp4; ++ data.ctx.P[4] ^= tmp1; ++ data.ctx.P[5] ^= tmp2; ++ data.ctx.P[6] ^= tmp3; ++ data.ctx.P[7] ^= tmp4; ++ data.ctx.P[8] ^= tmp1; ++ data.ctx.P[9] ^= tmp2; ++ data.ctx.P[10] ^= tmp3; ++ data.ctx.P[11] ^= tmp4; ++ data.ctx.P[12] ^= tmp1; ++ data.ctx.P[13] ^= tmp2; ++ data.ctx.P[14] ^= tmp3; ++ data.ctx.P[15] ^= tmp4; ++ data.ctx.P[16] ^= tmp1; ++ data.ctx.P[17] ^= tmp2; ++ ++ BF_body(); ++ } while (--count); ++ ++ for (i = 0; i < 6; i += 2) { ++ L = BF_magic_w[i]; ++ R = BF_magic_w[i + 1]; ++ ++ count = 64; ++ do { ++ BF_ENCRYPT; ++ } while (--count); ++ ++ data.binary.output[i] = L; ++ data.binary.output[i + 1] = R; ++ } ++ ++ memcpy(output, setting, 7 + 22 - 1); ++ output[7 + 22 - 1] = BF_itoa64[(int) ++ BF_atoi64[(int)setting[7 + 22 - 1] - 0x20] & 0x30]; ++ ++/* This has to be bug-compatible with the original implementation, so ++ * only encode 23 of the 24 bytes. :-) */ ++ BF_swap(data.binary.output, 6); ++ BF_encode(&output[7 + 22], data.binary.output, 23); ++ output[7 + 22 + 31] = '\0'; ++ ++/* Overwrite the most obvious sensitive data we have on the stack. Note ++ * that this does not guarantee there's no sensitive data left on the ++ * stack and/or in registers; I'm not aware of portable code that does. */ ++ clean(&data, sizeof(data)); ++ ++ return output; ++} ++ ++char *_crypt_gensalt_blowfish_rn(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size) ++{ ++ if (size < 16 || output_size < 7 + 22 + 1 || ++ (count && (count < 4 || count > 31))) { ++ if (output_size > 0) output[0] = '\0'; ++ __set_errno((output_size < 7 + 22 + 1) ? ERANGE : EINVAL); ++ return NULL; ++ } ++ ++ if (!count) count = 5; ++ ++ output[0] = '$'; ++ output[1] = '2'; ++ output[2] = 'a'; ++ output[3] = '$'; ++ output[4] = '0' + count / 10; ++ output[5] = '0' + count % 10; ++ output[6] = '$'; ++ ++ BF_encode(&output[7], (BF_word *)input, 16); ++ output[7 + 22] = '\0'; ++ ++ return output; ++} +diff -ruN crypt-/crypt_gensalt.c crypt/crypt_gensalt.c +--- crypt-/crypt_gensalt.c 1970-01-01 01:00:00.000000000 +0100 ++++ crypt/crypt_gensalt.c 2006-09-20 20:56:59.000000000 +0200 +@@ -0,0 +1,111 @@ ++/* ++ * Written by Solar Designer and placed in the public domain. ++ * See crypt_blowfish.c for more information. ++ * ++ * This file contains salt generation functions for the traditional and ++ * other common crypt(3) algorithms, except for bcrypt which is defined ++ * entirely in crypt_blowfish.c. ++ */ ++ ++#include ++ ++#include ++#ifndef __set_errno ++#define __set_errno(val) errno = (val) ++#endif ++ ++#undef __CONST ++#ifdef __GNUC__ ++#define __CONST __const ++#else ++#define __CONST ++#endif ++ ++unsigned char _crypt_itoa64[64 + 1] = ++ "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; ++ ++char *_crypt_gensalt_traditional_rn(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size) ++{ ++ if (size < 2 || output_size < 2 + 1 || (count && count != 25)) { ++ if (output_size > 0) output[0] = '\0'; ++ __set_errno((output_size < 2 + 1) ? ERANGE : EINVAL); ++ return NULL; ++ } ++ ++ output[0] = _crypt_itoa64[(unsigned int)input[0] & 0x3f]; ++ output[1] = _crypt_itoa64[(unsigned int)input[1] & 0x3f]; ++ output[2] = '\0'; ++ ++ return output; ++} ++ ++char *_crypt_gensalt_extended_rn(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size) ++{ ++ unsigned long value; ++ ++/* Even iteration counts make it easier to detect weak DES keys from a look ++ * at the hash, so they should be avoided */ ++ if (size < 3 || output_size < 1 + 4 + 4 + 1 || ++ (count && (count > 0xffffff || !(count & 1)))) { ++ if (output_size > 0) output[0] = '\0'; ++ __set_errno((output_size < 1 + 4 + 4 + 1) ? ERANGE : EINVAL); ++ return NULL; ++ } ++ ++ if (!count) count = 725; ++ ++ output[0] = '_'; ++ output[1] = _crypt_itoa64[count & 0x3f]; ++ output[2] = _crypt_itoa64[(count >> 6) & 0x3f]; ++ output[3] = _crypt_itoa64[(count >> 12) & 0x3f]; ++ output[4] = _crypt_itoa64[(count >> 18) & 0x3f]; ++ value = (unsigned long)(unsigned char)input[0] | ++ ((unsigned long)(unsigned char)input[1] << 8) | ++ ((unsigned long)(unsigned char)input[2] << 16); ++ output[5] = _crypt_itoa64[value & 0x3f]; ++ output[6] = _crypt_itoa64[(value >> 6) & 0x3f]; ++ output[7] = _crypt_itoa64[(value >> 12) & 0x3f]; ++ output[8] = _crypt_itoa64[(value >> 18) & 0x3f]; ++ output[9] = '\0'; ++ ++ return output; ++} ++ ++char *_crypt_gensalt_md5_rn(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size) ++{ ++ unsigned long value; ++ ++ if (size < 3 || output_size < 3 + 4 + 1 || (count && count != 1000)) { ++ if (output_size > 0) output[0] = '\0'; ++ __set_errno((output_size < 3 + 4 + 1) ? ERANGE : EINVAL); ++ return NULL; ++ } ++ ++ output[0] = '$'; ++ output[1] = '1'; ++ output[2] = '$'; ++ value = (unsigned long)(unsigned char)input[0] | ++ ((unsigned long)(unsigned char)input[1] << 8) | ++ ((unsigned long)(unsigned char)input[2] << 16); ++ output[3] = _crypt_itoa64[value & 0x3f]; ++ output[4] = _crypt_itoa64[(value >> 6) & 0x3f]; ++ output[5] = _crypt_itoa64[(value >> 12) & 0x3f]; ++ output[6] = _crypt_itoa64[(value >> 18) & 0x3f]; ++ output[7] = '\0'; ++ ++ if (size >= 6 && output_size >= 3 + 4 + 4 + 1) { ++ value = (unsigned long)(unsigned char)input[3] | ++ ((unsigned long)(unsigned char)input[4] << 8) | ++ ((unsigned long)(unsigned char)input[5] << 16); ++ output[7] = _crypt_itoa64[value & 0x3f]; ++ output[8] = _crypt_itoa64[(value >> 6) & 0x3f]; ++ output[9] = _crypt_itoa64[(value >> 12) & 0x3f]; ++ output[10] = _crypt_itoa64[(value >> 18) & 0x3f]; ++ output[11] = '\0'; ++ } ++ ++ return output; ++} +diff -ruN crypt-/ow-crypt.h crypt/ow-crypt.h +--- crypt-/ow-crypt.h 1970-01-01 01:00:00.000000000 +0100 ++++ crypt/ow-crypt.h 2006-09-20 20:56:59.000000000 +0200 +@@ -0,0 +1,34 @@ ++/* ++ * Written by Solar Designer and placed in the public domain. ++ * See crypt_blowfish.c for more information. ++ */ ++ ++#ifndef _OW_CRYPT_H ++#define _OW_CRYPT_H ++ ++#undef __CONST ++#ifdef __GNUC__ ++#define __CONST __const ++#else ++#define __CONST ++#endif ++ ++#ifndef __SKIP_GNU ++extern char *crypt(__CONST char *key, __CONST char *setting); ++extern char *crypt_r(__CONST char *key, __CONST char *setting, void *data); ++#endif ++ ++#ifndef __SKIP_OW ++extern char *crypt_rn(__CONST char *key, __CONST char *setting, ++ void *data, int size); ++extern char *crypt_ra(__CONST char *key, __CONST char *setting, ++ void **data, int *size); ++extern char *crypt_gensalt(__CONST char *prefix, unsigned long count, ++ __CONST char *input, int size); ++extern char *crypt_gensalt_rn(__CONST char *prefix, unsigned long count, ++ __CONST char *input, int size, char *output, int output_size); ++extern char *crypt_gensalt_ra(__CONST char *prefix, unsigned long count, ++ __CONST char *input, int size); ++#endif ++ ++#endif +diff -ruN crypt-/wrapper.c crypt/wrapper.c +--- crypt-/wrapper.c 1970-01-01 01:00:00.000000000 +0100 ++++ crypt/wrapper.c 2006-09-20 20:56:59.000000000 +0200 +@@ -0,0 +1,426 @@ ++/* ++ * Written by Solar Designer and placed in the public domain. ++ * See crypt_blowfish.c for more information. ++ */ ++ ++#include ++#include ++ ++#include ++#ifndef __set_errno ++#define __set_errno(val) errno = (val) ++#endif ++ ++#ifdef TEST ++#include ++#include ++#include ++#include ++#include ++#ifdef TEST_THREADS ++#include ++#endif ++#endif ++ ++#define CRYPT_OUTPUT_SIZE (7 + 22 + 31 + 1) ++#define CRYPT_GENSALT_OUTPUT_SIZE (7 + 22 + 1) ++ ++#if defined(__GLIBC__) && defined(_LIBC) ++#define __SKIP_GNU ++#endif ++#include "ow-crypt.h" ++ ++extern char *_crypt_blowfish_rn(__CONST char *key, __CONST char *setting, ++ char *output, int size); ++extern char *_crypt_gensalt_blowfish_rn(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size); ++ ++extern unsigned char _crypt_itoa64[]; ++extern char *_crypt_gensalt_traditional_rn(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size); ++extern char *_crypt_gensalt_extended_rn(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size); ++extern char *_crypt_gensalt_md5_rn(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size); ++ ++#if defined(__GLIBC__) && defined(_LIBC) ++/* crypt.h from glibc-crypt-2.1 will define struct crypt_data for us */ ++#include "crypt.h" ++extern char *__md5_crypt_r(const char *key, const char *salt, ++ char *buffer, int buflen); ++/* crypt-entry.c needs to be patched to define __des_crypt_r rather than ++ * __crypt_r, and not define crypt_r and crypt at all */ ++extern char *__des_crypt_r(const char *key, const char *salt, ++ struct crypt_data *data); ++extern struct crypt_data _ufc_foobar; ++#endif ++ ++static int _crypt_data_alloc(void **data, int *size, int need) ++{ ++ void *updated; ++ ++ if (*data && *size >= need) return 0; ++ ++ updated = realloc(*data, need); ++ ++ if (!updated) { ++#ifndef __GLIBC__ ++ /* realloc(3) on glibc sets errno, so we don't need to bother */ ++ __set_errno(ENOMEM); ++#endif ++ return -1; ++ } ++ ++#if defined(__GLIBC__) && defined(_LIBC) ++ if (need >= sizeof(struct crypt_data)) ++ ((struct crypt_data *)updated)->initialized = 0; ++#endif ++ ++ *data = updated; ++ *size = need; ++ ++ return 0; ++} ++ ++static char *_crypt_retval_magic(char *retval, __CONST char *setting, ++ char *output) ++{ ++ if (retval) return retval; ++ ++ output[0] = '*'; ++ output[1] = '0'; ++ output[2] = '\0'; ++ ++ if (setting[0] == '*' && setting[1] == '0') ++ output[1] = '1'; ++ ++ return output; ++} ++ ++#if defined(__GLIBC__) && defined(_LIBC) ++/* ++ * Applications may re-use the same instance of struct crypt_data without ++ * resetting the initialized field in order to let crypt_r() skip some of ++ * its initialization code. Thus, it is important that our multiple hashing ++ * algorithms either don't conflict with each other in their use of the ++ * data area or reset the initialized field themselves whenever required. ++ * Currently, the hashing algorithms simply have no conflicts: the first ++ * field of struct crypt_data is the 128-byte large DES key schedule which ++ * __des_crypt_r() calculates each time it is called while the two other ++ * hashing algorithms use less than 128 bytes of the data area. ++ */ ++ ++char *__crypt_rn(__const char *key, __const char *setting, ++ void *data, int size) ++{ ++ if (setting[0] == '$' && setting[1] == '2') ++ return _crypt_blowfish_rn(key, setting, (char *)data, size); ++ if (setting[0] == '$' && setting[1] == '1') ++ return __md5_crypt_r(key, setting, (char *)data, size); ++ if (setting[0] == '$' || setting[0] == '_') { ++ __set_errno(EINVAL); ++ return NULL; ++ } ++ if (size >= sizeof(struct crypt_data)) ++ return __des_crypt_r(key, setting, (struct crypt_data *)data); ++ __set_errno(ERANGE); ++ return NULL; ++} ++ ++char *__crypt_ra(__const char *key, __const char *setting, ++ void **data, int *size) ++{ ++ if (setting[0] == '$' && setting[1] == '2') { ++ if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) ++ return NULL; ++ return _crypt_blowfish_rn(key, setting, (char *)*data, *size); ++ } ++ if (setting[0] == '$' && setting[1] == '1') { ++ if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) ++ return NULL; ++ return __md5_crypt_r(key, setting, (char *)*data, *size); ++ } ++ if (setting[0] == '$' || setting[0] == '_') { ++ __set_errno(EINVAL); ++ return NULL; ++ } ++ if (_crypt_data_alloc(data, size, sizeof(struct crypt_data))) ++ return NULL; ++ return __des_crypt_r(key, setting, (struct crypt_data *)*data); ++} ++ ++char *__crypt_r(__const char *key, __const char *setting, ++ struct crypt_data *data) ++{ ++ return _crypt_retval_magic( ++ __crypt_rn(key, setting, data, sizeof(*data)), ++ setting, (char *)data); ++} ++ ++char *__crypt(__const char *key, __const char *setting) ++{ ++ return _crypt_retval_magic( ++ __crypt_rn(key, setting, &_ufc_foobar, sizeof(_ufc_foobar)), ++ setting, (char *)&_ufc_foobar); ++} ++#else ++char *crypt_rn(__CONST char *key, __CONST char *setting, void *data, int size) ++{ ++ return _crypt_blowfish_rn(key, setting, (char *)data, size); ++} ++ ++char *crypt_ra(__CONST char *key, __CONST char *setting, ++ void **data, int *size) ++{ ++ if (_crypt_data_alloc(data, size, CRYPT_OUTPUT_SIZE)) ++ return NULL; ++ return _crypt_blowfish_rn(key, setting, (char *)*data, *size); ++} ++ ++char *crypt_r(__CONST char *key, __CONST char *setting, void *data) ++{ ++ return _crypt_retval_magic( ++ crypt_rn(key, setting, data, CRYPT_OUTPUT_SIZE), ++ setting, (char *)data); ++} ++ ++char *crypt(__CONST char *key, __CONST char *setting) ++{ ++ static char output[CRYPT_OUTPUT_SIZE]; ++ ++ return _crypt_retval_magic( ++ crypt_rn(key, setting, output, sizeof(output)), ++ setting, output); ++} ++ ++#define __crypt_gensalt_rn crypt_gensalt_rn ++#define __crypt_gensalt_ra crypt_gensalt_ra ++#define __crypt_gensalt crypt_gensalt ++#endif ++ ++char *__crypt_gensalt_rn(__CONST char *prefix, unsigned long count, ++ __CONST char *input, int size, char *output, int output_size) ++{ ++ char *(*use)(unsigned long count, ++ __CONST char *input, int size, char *output, int output_size); ++ ++ /* This may be supported on some platforms in the future */ ++ if (!input) { ++ __set_errno(EINVAL); ++ return NULL; ++ } ++ ++ if (!strncmp(prefix, "$2a$", 4)) ++ use = _crypt_gensalt_blowfish_rn; ++ else ++ if (!strncmp(prefix, "$1$", 3)) ++ use = _crypt_gensalt_md5_rn; ++ else ++ if (prefix[0] == '_') ++ use = _crypt_gensalt_extended_rn; ++ else ++ if (!prefix[0] || ++ (prefix[0] && prefix[1] && ++ memchr(_crypt_itoa64, prefix[0], 64) && ++ memchr(_crypt_itoa64, prefix[1], 64))) ++ use = _crypt_gensalt_traditional_rn; ++ else { ++ __set_errno(EINVAL); ++ return NULL; ++ } ++ ++ return use(count, input, size, output, output_size); ++} ++ ++char *__crypt_gensalt_ra(__CONST char *prefix, unsigned long count, ++ __CONST char *input, int size) ++{ ++ char output[CRYPT_GENSALT_OUTPUT_SIZE]; ++ char *retval; ++ ++ retval = __crypt_gensalt_rn(prefix, count, ++ input, size, output, sizeof(output)); ++ ++ if (retval) { ++ retval = strdup(retval); ++#ifndef __GLIBC__ ++ /* strdup(3) on glibc sets errno, so we don't need to bother */ ++ if (!retval) ++ __set_errno(ENOMEM); ++#endif ++ } ++ ++ return retval; ++} ++ ++char *__crypt_gensalt(__CONST char *prefix, unsigned long count, ++ __CONST char *input, int size) ++{ ++ static char output[CRYPT_GENSALT_OUTPUT_SIZE]; ++ ++ return __crypt_gensalt_rn(prefix, count, ++ input, size, output, sizeof(output)); ++} ++ ++#if defined(__GLIBC__) && defined(_LIBC) ++weak_alias(__crypt_rn, crypt_rn) ++weak_alias(__crypt_ra, crypt_ra) ++weak_alias(__crypt_r, crypt_r) ++weak_alias(__crypt, crypt) ++weak_alias(__crypt_gensalt_rn, crypt_gensalt_rn) ++weak_alias(__crypt_gensalt_ra, crypt_gensalt_ra) ++weak_alias(__crypt_gensalt, crypt_gensalt) ++#endif ++ ++#ifdef TEST ++static struct { ++ char *hash; ++ char *pw; ++} tests[] = { ++ {"$2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW", ++ "U*U"}, ++ {"$2a$05$CCCCCCCCCCCCCCCCCCCCC.VGOzA784oUp/Z0DY336zx7pLYAy0lwK", ++ "U*U*"}, ++ {"$2a$05$XXXXXXXXXXXXXXXXXXXXXOAcXxm9kjPGEMsLznoKqmqw7tc8WCx4a", ++ "U*U*U"}, ++ {"$2a$05$CCCCCCCCCCCCCCCCCCCCC.7uG0VCzI2bS7j6ymqJi9CdcdxiRTWNy", ++ ""}, ++ {"$2a$05$abcdefghijklmnopqrstuu5s2v8.iXieOjg/.AySBTTZIIVFJeBui", ++ "0123456789abcdefghijklmnopqrstuvwxyz" ++ "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"}, ++ {NULL, NULL} ++}; ++ ++#define which tests[0] ++ ++static volatile sig_atomic_t running; ++ ++static void handle_timer(int signum) ++{ ++ running = 0; ++} ++ ++static void *run(void *arg) ++{ ++ unsigned long count = 0; ++ int i = 0; ++ void *data = NULL; ++ int size = 0x12345678; ++ ++ do { ++ if (strcmp(crypt_ra(tests[i].pw, tests[i].hash, &data, &size), ++ tests[i].hash)) { ++ printf("%d: FAILED (crypt_ra/%d/%lu)\n", ++ (char *)arg - (char *)0, i, count); ++ free(data); ++ return NULL; ++ } ++ if (!tests[++i].hash) i = 0; ++ count++; ++ } while (running); ++ ++ free(data); ++ return count + (char *)0; ++} ++ ++int main(void) ++{ ++ struct itimerval it; ++ struct tms buf; ++ clock_t start_real, start_virtual, end_real, end_virtual; ++ unsigned long count; ++ void *data; ++ int size; ++ char *setting1, *setting2; ++ int i; ++#ifdef TEST_THREADS ++ pthread_t t[TEST_THREADS]; ++ void *t_retval; ++#endif ++ ++ for (i = 0; tests[i].hash; i++) ++ if (strcmp(crypt(tests[i].pw, tests[i].hash), tests[i].hash)) { ++ printf("FAILED (crypt/%d)\n", i); ++ return 1; ++ } ++ ++ data = NULL; ++ size = 0x12345678; ++ for (i = 0; tests[i].hash; i++) ++ if (strcmp(crypt_ra(tests[i].pw, tests[i].hash, &data, &size), ++ tests[i].hash)) { ++ printf("FAILED (crypt_ra/%d)\n", i); ++ return 1; ++ } ++ ++ setting1 = crypt_gensalt(which.hash, 12, data, size); ++ if (!setting1 || strncmp(setting1, "$2a$12$", 7)) { ++ puts("FAILED (crypt_gensalt)\n"); ++ return 1; ++ } ++ ++ setting2 = crypt_gensalt_ra(setting1, 12, data, size); ++ if (strcmp(setting1, setting2)) { ++ puts("FAILED (crypt_gensalt_ra/1)\n"); ++ return 1; ++ } ++ ++ (*(char *)data)++; ++ setting1 = crypt_gensalt_ra(setting2, 12, data, size); ++ if (!strcmp(setting1, setting2)) { ++ puts("FAILED (crypt_gensalt_ra/2)\n"); ++ return 1; ++ } ++ ++ free(setting1); ++ free(setting2); ++ free(data); ++ ++ running = 1; ++ signal(SIGALRM, handle_timer); ++ ++ memset(&it, 0, sizeof(it)); ++ it.it_value.tv_sec = 5; ++ setitimer(ITIMER_REAL, &it, NULL); ++ ++ start_real = times(&buf); ++ start_virtual = buf.tms_utime + buf.tms_stime; ++ ++ count = (char *)run((char *)0) - (char *)0; ++ ++ end_real = times(&buf); ++ end_virtual = buf.tms_utime + buf.tms_stime; ++ if (end_virtual == start_virtual) end_virtual++; ++ ++ printf("%.1f c/s real, %.1f c/s virtual\n", ++ (float)count * CLK_TCK / (end_real - start_real), ++ (float)count * CLK_TCK / (end_virtual - start_virtual)); ++ ++#ifdef TEST_THREADS ++ running = 1; ++ it.it_value.tv_sec = 60; ++ setitimer(ITIMER_REAL, &it, NULL); ++ start_real = times(&buf); ++ ++ for (i = 0; i < TEST_THREADS; i++) ++ if (pthread_create(&t[i], NULL, run, i + (char *)0)) { ++ perror("pthread_create"); ++ return 1; ++ } ++ ++ for (i = 0; i < TEST_THREADS; i++) { ++ if (pthread_join(t[i], &t_retval)) { ++ perror("pthread_join"); ++ continue; ++ } ++ if (!t_retval) continue; ++ count = (char *)t_retval - (char *)0; ++ end_real = times(&buf); ++ printf("%d: %.1f c/s real\n", i, ++ (float)count * CLK_TCK / (end_real - start_real)); ++ } ++#endif ++ ++ return 0; ++} ++#endif diff --git a/crypt_blowfish-glibc-2.3.diff b/crypt_blowfish-glibc-2.3.diff new file mode 100644 index 0000000..a8abbcd --- /dev/null +++ b/crypt_blowfish-glibc-2.3.diff @@ -0,0 +1,106 @@ +--- crypt/crypt-entry.c 2001-07-06 09:37:47.000000000 +0200 ++++ crypt/crypt-entry.c 2003-10-01 11:23:27.000000000 +0200 +@@ -70,7 +70,7 @@ + */ + + char * +-__crypt_r (key, salt, data) ++__des_crypt_r (key, salt, data) + const char *key; + const char *salt; + struct crypt_data * __restrict data; +@@ -115,6 +115,7 @@ + _ufc_output_conversion_r (res[0], res[1], salt, data); + return data->crypt_3_buf; + } ++#if 0 + weak_alias (__crypt_r, crypt_r) + + char * +@@ -147,3 +148,4 @@ + return crypt (key, salt); + } + #endif ++#endif +--- crypt/crypt-private.h 2001-07-06 09:37:47.000000000 +0200 ++++ crypt/crypt-private.h 2003-10-01 11:23:27.000000000 +0200 +@@ -55,6 +55,8 @@ + /* crypt-entry.c */ + extern char *__crypt_r (__const char *__key, __const char *__salt, + struct crypt_data * __restrict __data); ++extern char *__des_crypt_r (__const char *__key, __const char *__salt, ++ struct crypt_data * __restrict __data); + extern char *fcrypt (__const char *key, __const char *salt); + + #endif /* crypt-private.h */ +--- crypt/Makefile~ 2007-11-06 05:27:13.635014000 +0100 ++++ crypt/Makefile 2007-11-06 05:27:27.500142000 +0100 +@@ -27,7 +27,8 @@ + extra-libs-others := $(extra-libs) + + libcrypt-routines := crypt-entry md5-crypt md5 sha256-crypt sha256 \ +- sha512-crypt sha512 crypt crypt_util ++ sha512-crypt sha512 crypt crypt_util \ ++ crypt_blowfish crypt_gensalt wrapper + + tests := cert md5test md5c-test sha256test sha256c-test sha512test sha512c-test + +--- crypt/ow-crypt.h 2001-05-01 13:14:31.000000000 +0200 ++++ crypt/ow-crypt.h 2003-10-01 11:23:27.000000000 +0200 +@@ -13,12 +13,6 @@ + #define __CONST + #endif + +-#ifndef __SKIP_GNU +-extern char *crypt(__CONST char *key, __CONST char *setting); +-extern char *crypt_r(__CONST char *key, __CONST char *setting, void *data); +-#endif +- +-#ifndef __SKIP_OW + extern char *crypt_rn(__CONST char *key, __CONST char *setting, + void *data, int size); + extern char *crypt_ra(__CONST char *key, __CONST char *setting, +@@ -29,6 +23,5 @@ + __CONST char *input, int size, char *output, int output_size); + extern char *crypt_gensalt_ra(__CONST char *prefix, unsigned long count, + __CONST char *input, int size); +-#endif + + #endif +--- crypt/wrapper.c 2002-11-08 01:26:31.000000000 +0100 ++++ crypt/wrapper.c 2003-10-01 11:59:03.000000000 +0200 +@@ -45,12 +45,11 @@ + #if defined(__GLIBC__) && defined(_LIBC) + /* crypt.h from glibc-crypt-2.1 will define struct crypt_data for us */ + #include "crypt.h" ++#include "ufc-crypt.h" ++#include "crypt-private.h" ++ + extern char *__md5_crypt_r(const char *key, const char *salt, + char *buffer, int buflen); +-/* crypt-entry.c needs to be patched to define __des_crypt_r rather than +- * __crypt_r, and not define crypt_r and crypt at all */ +-extern char *__des_crypt_r(const char *key, const char *salt, +- struct crypt_data *data); + extern struct crypt_data _ufc_foobar; + #endif + +@@ -266,6 +264,7 @@ + weak_alias(__crypt_ra, crypt_ra) + weak_alias(__crypt_r, crypt_r) + weak_alias(__crypt, crypt) ++weak_alias(__crypt, fcrypt) + weak_alias(__crypt_gensalt_rn, crypt_gensalt_rn) + weak_alias(__crypt_gensalt_ra, crypt_gensalt_ra) + weak_alias(__crypt_gensalt, crypt_gensalt) +--- crypt/crypt_blowfish.c ++++ crypt/crypt_blowfish.c 2005/04/28 10:59:24 +@@ -45,7 +45,7 @@ + #endif + + #ifdef __i386__ +-#define BF_ASM 1 ++#define BF_ASM 0 + #define BF_SCALE 1 + #elif defined(__alpha__) || defined(__hppa__) + #define BF_ASM 0 diff --git a/ctype_b.c b/ctype_b.c new file mode 100644 index 0000000..91a5b50 --- /dev/null +++ b/ctype_b.c @@ -0,0 +1,196 @@ +/* + * ctype_b.c + * + * This file has been added to compensate buggy object files + * using __ctype_b, __ctype_tolower and __ctype_toupper. + * + * This file only allows the linking of this buggy object files, + * there is no gurantee, that it will work correct. Linking of + * object files is only possible with the same glibc as they are + * compiled with. + * + * Compile this file with -fPIC and add it to the link stage of + * your application. + * + */ + +#include + +#define CTYPE_EXTERN_INLINE /* Define real functions for accessors. */ +#include + +static const char _nl_C_LC_CTYPE_class[768] = + /* 0x80 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x86 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x8c */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x92 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x98 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x9e */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xa4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xaa */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xb0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xb6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xbc */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xc2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xc8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xce */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xd4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xda */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xe0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xe6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xec */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xf2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xf8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xfe */ "\000\000" "\000\000" "\002\000" "\002\000" "\002\000" "\002\000" + /* 0x04 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\003\040" + /* 0x0a */ "\002\040" "\002\040" "\002\040" "\002\040" "\002\000" "\002\000" + /* 0x10 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" + /* 0x16 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" + /* 0x1c */ "\002\000" "\002\000" "\002\000" "\002\000" "\001\140" "\004\300" + /* 0x22 */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" + /* 0x28 */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" + /* 0x2e */ "\004\300" "\004\300" "\010\330" "\010\330" "\010\330" "\010\330" + /* 0x34 */ "\010\330" "\010\330" "\010\330" "\010\330" "\010\330" "\010\330" + /* 0x3a */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" + /* 0x40 */ "\004\300" "\010\325" "\010\325" "\010\325" "\010\325" "\010\325" + /* 0x46 */ "\010\325" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" + /* 0x4c */ "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" + /* 0x52 */ "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" + /* 0x58 */ "\010\305" "\010\305" "\010\305" "\004\300" "\004\300" "\004\300" + /* 0x5e */ "\004\300" "\004\300" "\004\300" "\010\326" "\010\326" "\010\326" + /* 0x64 */ "\010\326" "\010\326" "\010\326" "\010\306" "\010\306" "\010\306" + /* 0x6a */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" + /* 0x70 */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" + /* 0x76 */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\004\300" + /* 0x7c */ "\004\300" "\004\300" "\004\300" "\002\000" "\000\000" "\000\000" + /* 0x82 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x88 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x8e */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x94 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0x9a */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xa0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xa6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xac */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xb2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xb8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xbe */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xc4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xca */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xd0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xd6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xdc */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xe2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xe8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xee */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xf4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" + /* 0xfa */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" +; + +static const uint32_t _nl_C_LC_CTYPE_toupper[384] = +{ + /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xffffffff, + /* 0x00 */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + /* 0x08 */ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + /* 0x10 */ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + /* 0x18 */ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + /* 0x20 */ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + /* 0x28 */ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + /* 0x30 */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + /* 0x38 */ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + /* 0x40 */ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + /* 0x48 */ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + /* 0x50 */ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + /* 0x58 */ 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + /* 0x60 */ 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + /* 0x68 */ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + /* 0x70 */ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + /* 0x78 */ 0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff +}; + +static const uint32_t _nl_C_LC_CTYPE_tolower[384] = +{ + /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xffffffff, + /* 0x00 */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + /* 0x08 */ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + /* 0x10 */ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + /* 0x18 */ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + /* 0x20 */ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + /* 0x28 */ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + /* 0x30 */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + /* 0x38 */ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + /* 0x40 */ 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + /* 0x48 */ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + /* 0x50 */ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + /* 0x58 */ 0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + /* 0x60 */ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + /* 0x68 */ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + /* 0x70 */ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + /* 0x78 */ 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, + /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, + /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, + /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, + /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff +}; + +#define b(t,x,o) (((const t *) _nl_C_LC_CTYPE_##x) + o) +const unsigned short int *__ctype_b = b (unsigned short int, class, 128); +const __int32_t *__ctype_tolower = b (__int32_t, tolower, 128); +const __int32_t *__ctype_toupper = b (__int32_t, toupper, 128); diff --git a/getaddrinfo-ipv6-sanity.diff b/getaddrinfo-ipv6-sanity.diff new file mode 100644 index 0000000..5b5ad8b --- /dev/null +++ b/getaddrinfo-ipv6-sanity.diff @@ -0,0 +1,33 @@ +References: bnc#361697 + +Index: sysdeps/posix/getaddrinfo.c +=================================================================== +--- sysdeps/posix/getaddrinfo.c.orig ++++ sysdeps/posix/getaddrinfo.c +@@ -269,7 +269,7 @@ extern service_user *__nss_hosts_databas + static int + gaih_inet (const char *name, const struct gaih_service *service, + const struct addrinfo *req, struct addrinfo **pai, +- unsigned int *naddrs) ++ unsigned int *naddrs, bool usable_ipv6) + { + const struct gaih_typeproto *tp = gaih_inet_typeproto; + struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv; +@@ -762,7 +762,7 @@ gaih_inet (const char *name, const struc + if (fct != NULL) + { + if (req->ai_family == AF_INET6 +- || req->ai_family == AF_UNSPEC) ++ || (req->ai_family == AF_UNSPEC && usable_ipv6)) + { + gethosts (AF_INET6, struct in6_addr); + no_inet6_data = no_data; +@@ -2151,7 +2151,7 @@ getaddrinfo (const char *name, const cha + if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET + || hints->ai_family == AF_INET6) + { +- last_i = gaih_inet (name, pservice, hints, end, &naddrs); ++ last_i = gaih_inet (name, pservice, hints, end, &naddrs, seen_ipv6); + if (last_i != 0) + { + freeaddrinfo (p); diff --git a/glibc-2.10-dns-fixpack.diff b/glibc-2.10-dns-fixpack.diff new file mode 100644 index 0000000..88318d6 --- /dev/null +++ b/glibc-2.10-dns-fixpack.diff @@ -0,0 +1,169 @@ +2008-11-26 Ulrich Drepper + + * sysdeps/posix/getaddrinfo.c (getaddrinfo): Only restrict search + to IPv4 or IPv6 if an interface has been found. + +--- sysdeps/posix/getaddrinfo.c 30 Jul 2008 19:14:22 -0000 1.136 ++++ sysdeps/posix/getaddrinfo.c 3 Dec 2008 07:04:10 -0000 1.139 +@@ -2108,7 +2110,7 @@ getaddrinfo (const char *name, const cha + { + /* If we haven't seen both IPv4 and IPv6 interfaces we can + narrow down the search. */ +- if (! seen_ipv4 || ! seen_ipv6) ++ if ((! seen_ipv4 || ! seen_ipv6) && (seen_ipv4 || seen_ipv6)) + { + local_hints = *hints; + local_hints.ai_family = seen_ipv4 ? PF_INET : PF_INET6; + + +2008-12-02 Ulrich Drepper + + * sysdeps/posix/getaddrinfo.c (gaih_inet): In case we use + gethostbyname4_r, we don't have a separate IPv6 status, so copy + the no_data variable. + +--- sysdeps/posix/getaddrinfo.c 30 Jul 2008 19:14:22 -0000 1.136 ++++ sysdeps/posix/getaddrinfo.c 3 Dec 2008 07:04:10 -0000 1.139 +@@ -733,6 +733,8 @@ gaih_inet (const char *name, const struc + tmpbuflen, 2 * tmpbuflen); + } + ++ no_inet6_data = no_data; ++ + if (status == NSS_STATUS_SUCCESS) + { + if ((req->ai_flags & AI_CANONNAME) != 0 && canon == NULL) + + +2008-12-02 Ulrich Drepper + + * resolv/res_init.c (__res_vinit): Initialize nscount to zero. + + * resolv/res_init.c (__res_vinit): Fill in IPv4 name server + information at the correct index. + +2008-12-07 Ulrich Drepper + + * resolv/res_init.c (__res_vinit): Always assign to statp->nscount + after reading name server list. + +--- resolv/res_init.c 7 Apr 2008 17:20:25 -0000 1.47 ++++ resolv/res_init.c 8 Dec 2008 03:59:05 -0000 1.50 +@@ -183,7 +183,7 @@ __res_vinit(res_state statp, int preinit + #endif + statp->nsaddr.sin_family = AF_INET; + statp->nsaddr.sin_port = htons(NAMESERVER_PORT); +- statp->nscount = 1; ++ statp->nscount = 0; + statp->ndots = 1; + statp->pfcode = 0; + statp->_vcsock = -1; +@@ -314,9 +314,9 @@ __res_vinit(res_state statp, int preinit + cp++; + if ((*cp != '\0') && (*cp != '\n') + && __inet_aton(cp, &a)) { +- statp->nsaddr_list[nserv].sin_addr = a; +- statp->nsaddr_list[nserv].sin_family = AF_INET; +- statp->nsaddr_list[nserv].sin_port = ++ statp->nsaddr_list[nservall].sin_addr = a; ++ statp->nsaddr_list[nservall].sin_family = AF_INET; ++ statp->nsaddr_list[nservall].sin_port = + htons(NAMESERVER_PORT); + nserv++; + #ifdef _LIBC +@@ -420,8 +420,7 @@ __res_vinit(res_state statp, int preinit + continue; + } + } +- if (nserv > 1) +- statp->nscount = nserv; ++ statp->nscount = nserv; + #ifdef _LIBC + if (nservall - nserv > 0) { + statp->_u._ext.nscount6 = nservall - nserv; + + +2008-12-02 Ulrich Drepper + + * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname3_r): Recognize + ESRCH return value. + (_nss_dns_gethostbyname4_r): Likewise. + +--- resolv/nss_dns/dns-host.c 12 Nov 2008 07:52:20 -0000 1.54 ++++ resolv/nss_dns/dns-host.c 3 Dec 2008 07:09:26 -0000 1.55 +@@ -198,8 +198,14 @@ _nss_dns_gethostbyname3_r (const char *n + 1024, &host_buffer.ptr, NULL, NULL, NULL); + if (n < 0) + { +- status = (errno == ECONNREFUSED +- ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND); ++ if (errno == ESRCH) ++ { ++ status = NSS_STATUS_TRYAGAIN; ++ h_errno = TRY_AGAIN; ++ } ++ else ++ status = (errno == ECONNREFUSED ++ ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND); + *h_errnop = h_errno; + if (h_errno == TRY_AGAIN) + *errnop = EAGAIN; +@@ -304,8 +310,14 @@ _nss_dns_gethostbyname4_r (const char *n + &ans2p, &nans2p, &resplen2); + if (n < 0) + { +- status = (errno == ECONNREFUSED +- ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND); ++ if (errno == ESRCH) ++ { ++ status = NSS_STATUS_TRYAGAIN; ++ h_errno = TRY_AGAIN; ++ } ++ else ++ status = (errno == ECONNREFUSED ++ ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND); + *herrnop = h_errno; + if (h_errno == TRY_AGAIN) + *errnop = EAGAIN; + + +2008-12-29 Ulrich Drepper + + * resolv/res_init.c (__res_vinit): Count all servers in statp->nscount. + +diff -u -r1.50 -r1.51 +--- resolv/res_init.c 2008/12/08 03:59:05 1.50 ++++ resolv/res_init.c 2008/12/29 19:53:31 1.51 +@@ -420,7 +420,7 @@ + continue; + } + } +- statp->nscount = nserv; ++ statp->nscount = nservall; + #ifdef _LIBC + if (nservall - nserv > 0) { + statp->_u._ext.nscount6 = nservall - nserv; + + +2009-01-16 Petr Baudis + + * resolv/res_libc (__res_maybe_init): Call __res_vinit() + even if we currently have zero nscount. + +diff --git a/resolv/res_libc.c b/resolv/res_libc.c +index 8af57f7..810fbc8 100644 +--- resolv/res_libc.c ++++ resolv/res_libc.c +@@ -96,10 +96,9 @@ __res_maybe_init (res_state resp, int preinit) + { + if (resp->options & RES_INIT) { + if (__res_initstamp != resp->_u._ext.initstamp) { +- if (resp->nscount > 0) { ++ if (resp->nscount > 0) + __res_iclose (resp, true); +- return __res_vinit (resp, 1); +- } ++ return __res_vinit (resp, 1); + } + return 0; + } else if (preinit) { diff --git a/glibc-2.10-dns-no-gethostbyname4.diff b/glibc-2.10-dns-no-gethostbyname4.diff new file mode 100644 index 0000000..30f37a6 --- /dev/null +++ b/glibc-2.10-dns-no-gethostbyname4.diff @@ -0,0 +1,26 @@ +The gethostbyname4() lookup method is problematic since it fires out both +the A and AAAA DNS queries in parallel and over the same socket. This +should work in theory, but it turns out that many cheap DSL modems and +similar devices have buggy DNS servers - if the AAAA query arrives too +quickly after the A query, the server will generate only a single reply +with the A query id but returning an error for the AAAA query; we get +stuck waiting for the second reply. + +For gethostbyname4() users affected, disabling IPv6 in the system might +work around the issue, unfortunately it only helps with applications +using AI_ADDRCONFIG (e.g. Firefox); some (notably e.g. Pidgin) neglect +to do that. + +Real fix should be using separate ports for the A and AAAA queries. + +--- resolv/Versions 2008-08-02 10:26:09.000000000 +0200 ++++ resolv/Versions 2008-12-08 12:51:53.000000000 +0100 +@@ -102,7 +102,7 @@ libnss_dns { + _nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r; + _nss_dns_getnetbyname_r; _nss_dns_getcanonname_r; + _nss_dns_gethostbyaddr2_r; +- _nss_dns_gethostbyname4_r; ++# _nss_dns_gethostbyname4_r; + } + } + diff --git a/glibc-2.10-locale-tuesday.diff b/glibc-2.10-locale-tuesday.diff new file mode 100644 index 0000000..4795094 --- /dev/null +++ b/glibc-2.10-locale-tuesday.diff @@ -0,0 +1,26 @@ +diff --git a/localedata/locales/csb_PL b/localedata/locales/csb_PL +index 663fd6c..93c9ae2 100644 +--- localedata/locales/csb_PL ++++ localedata/locales/csb_PL +@@ -184,7 +184,7 @@ t_fmt_ampm "" + date_fmt "/ + / + " +-week 7;19971201;4 ++week 7;19971130;4 + first_weekday 2 + first_workday 2 + END LC_TIME +diff --git a/localedata/locales/en_GB b/localedata/locales/en_GB +index fe58f1f..6a81d6d 100644 +--- localedata/locales/en_GB ++++ localedata/locales/en_GB +@@ -121,7 +121,7 @@ t_fmt_ampm "" + date_fmt "/ + / + " +-week 7;19971201;4 ++week 7;19971130;4 + first_weekday 2 + first_workday 2 + END LC_TIME diff --git a/glibc-2.10-nis-hosts.diff b/glibc-2.10-nis-hosts.diff new file mode 100644 index 0000000..b421637 --- /dev/null +++ b/glibc-2.10-nis-hosts.diff @@ -0,0 +1,84 @@ +=================================================================== +RCS file: /cvs/glibc/libc/nis/nss_nis/nis-hosts.c,v +retrieving revision 1.29 +retrieving revision 1.31 +diff -u -r1.29 -r1.31 +--- nis/nss_nis/nis-hosts.c 2008/05/10 23:23:25 1.29 ++++ nis/nss_nis/nis-hosts.c 2008/12/07 17:06:43 1.31 +@@ -485,24 +485,6 @@ + return retval; + } + +- struct parser_data data; +- struct hostent host; +- int parse_res = parse_line (result, &host, &data, buflen, errnop, AF_UNSPEC, +- 0); +- if (__builtin_expect (parse_res < 1, 0)) +- { +- if (parse_res == -1) +- { +- *herrnop = NETDB_INTERNAL; +- return NSS_STATUS_TRYAGAIN; +- } +- else +- { +- *herrnop = HOST_NOT_FOUND; +- return NSS_STATUS_NOTFOUND; +- } +- } +- + if (*pat == NULL) + { + uintptr_t pad = (-(uintptr_t) buffer +@@ -524,16 +506,47 @@ + buflen -= sizeof (struct gaih_addrtuple); + } + +- (*pat)->next = NULL; +- size_t h_name_len = strlen (host.h_name); +- if (h_name_len >= buflen) ++ uintptr_t pad = -(uintptr_t) buffer % __alignof__ (struct parser_data); ++ buffer += pad; ++ ++ struct parser_data *data = (void *) buffer; ++ ++ if (__builtin_expect (buflen < sizeof *data + 1 + pad, 0)) + goto erange; +- (*pat)->name = memcpy (buffer, host.h_name, h_name_len + 1); ++ buflen -= pad; ++ ++ struct hostent host; ++ int parse_res = parse_line (result, &host, data, buflen, errnop, AF_UNSPEC, ++ 0); ++ if (__builtin_expect (parse_res < 1, 0)) ++ { ++ if (parse_res == -1) ++ { ++ *herrnop = NETDB_INTERNAL; ++ return NSS_STATUS_TRYAGAIN; ++ } ++ else ++ { ++ *herrnop = HOST_NOT_FOUND; ++ return NSS_STATUS_NOTFOUND; ++ } ++ } ++ ++ (*pat)->next = NULL; + (*pat)->family = host.h_addrtype; + memcpy ((*pat)->addr, host.h_addr_list[0], host.h_length); + (*pat)->scopeid = 0; + assert (host.h_addr_list[1] == NULL); + ++ /* Undo the alignment for parser_data. */ ++ buffer -= pad; ++ buflen += pad; ++ ++ size_t h_name_len = strlen (host.h_name) + 1; ++ if (h_name_len >= buflen) ++ goto erange; ++ (*pat)->name = memcpy (buffer, host.h_name, h_name_len); ++ + free (result); + + return NSS_STATUS_SUCCESS; diff --git a/glibc-2.10-nscd-gc-dataofs.diff b/glibc-2.10-nscd-gc-dataofs.diff new file mode 100644 index 0000000..6ac0b70 --- /dev/null +++ b/glibc-2.10-nscd-gc-dataofs.diff @@ -0,0 +1,15 @@ +http://sourceware.org/bugzilla/show_bug.cgi?id=9741 + +diff --git a/nscd/mem.c b/nscd/mem.c +index e821729..1f7215e 100644 +--- nscd/mem.c ++++ nscd/mem.c +@@ -163,7 +163,7 @@ gc (struct database_dyn *db) + else + { + he = xmalloc (memory_needed); +- he_data = &he[db->head->nentries * sizeof (struct hashentry *)]; ++ he_data = &he[db->head->nentries]; + he_use_malloc = true; + } + diff --git a/glibc-2.10-nscd-meminflight.diff b/glibc-2.10-nscd-meminflight.diff new file mode 100644 index 0000000..b224e62 --- /dev/null +++ b/glibc-2.10-nscd-meminflight.diff @@ -0,0 +1,86 @@ +--- nscd/mem.c~ 2008-11-23 12:59:15.000000000 +0100 ++++ nscd/mem.c 2008-11-23 13:52:01.000000000 +0100 +@@ -392,6 +392,7 @@ + moves = moves->next = new_move; + } + ++ ref_t off_alloc_start = off_alloc; + /* The following loop will prepare to move this much data. */ + off_free += off_allocend - off_alloc; + +@@ -410,23 +411,60 @@ + else + { +- assert (next_data < &he_data[db->head->nentries]); +- assert ((*next_data)->packet == off_alloc); + +- struct datahead *dh = (struct datahead *) (db->data + off_alloc); +- do +- { +- assert ((*next_data)->key >= (*next_data)->packet); +- assert ((*next_data)->key + (*next_data)->len +- <= (*next_data)->packet + dh->allocsize); +- +- (*next_data)->packet -= disp; +- (*next_data)->key -= disp; +- ++next_data; ++ if (next_data < &he_data[db->head->nentries] && (*next_data)->packet == off_alloc) ++ { ++ struct datahead *dh = (struct datahead *) (db->data + off_alloc); ++ do ++ { ++ assert ((*next_data)->key >= (*next_data)->packet); ++ assert ((*next_data)->key + (*next_data)->len ++ <= (*next_data)->packet + dh->allocsize); ++ ++ (*next_data)->packet -= disp; ++ (*next_data)->key -= disp; ++ ++next_data; ++ } ++ while (next_data < &he_data[db->head->nentries] ++ && (*next_data)->packet == off_alloc); ++ ++ off_alloc += (dh->allocsize + BLOCK_ALIGN_M1) & ~BLOCK_ALIGN_M1; + } +- while (next_data < &he_data[db->head->nentries] +- && (*next_data)->packet == off_alloc); ++ else ++ { ++ /* This is not yet a hashed element but an in-flight ++ * mempool allocation. We cannot displace it, so we ++ * reset the shake-down at this point; typically, ++ * the in-flight allocations will be at the top of ++ * the pool, thus nothing will be above it and we will ++ * shake it down in the next gc run. In theory, we can ++ * grow the pool indefinitely if we always hit gc at ++ * the point we have an in-flight allocation, but ++ * that does not seem to be a realistic scenario. */ ++ nscd_ssize_t blocklen = 0; ++ struct mem_in_flight *mrunp = mem_in_flight_list; ++ ++ /* See the first mem_in_flight_list loop above ++ * for correctness considerations. */ ++ /* Typically, we have only tiny number of in_flight ++ * records so we don't need to bother pre-sorting ++ * the list. */ ++ while (!blocklen && mrunp != NULL) ++ { ++ for (enum in_flight idx = IDX_result_data; ++ idx < IDX_last && mrunp->block[idx].dbidx == db - dbs; ++idx) ++ if (mrunp->block[idx].blockoff == off_alloc) ++ blocklen = mrunp->block[idx].blocklen; ++ ++ mrunp = mrunp->next; ++ } ++ assert(blocklen > 0); ++ ++ moves->size = off_alloc - off_alloc_start; ++ off_free = off_allocend; ++ disp = 0; + +- off_alloc += (dh->allocsize + BLOCK_ALIGN_M1) & ~BLOCK_ALIGN_M1; ++ off_alloc += blocklen; ++ } + } + } + assert (off_alloc == off_allocend); diff --git a/glibc-2.10-nscd-nostack.diff b/glibc-2.10-nscd-nostack.diff new file mode 100644 index 0000000..27fb9aa --- /dev/null +++ b/glibc-2.10-nscd-nostack.diff @@ -0,0 +1,16 @@ +--- nscd/nscd.h~ 2009-01-21 02:14:55.875774000 +0100 ++++ nscd/nscd.h 2009-01-21 02:15:58.519066000 +0100 +@@ -60,7 +60,12 @@ + + /* Maximum size of stack frames we allow the thread to use. We use + 80% of the thread stack size. */ +-#define MAX_STACK_USE ((8 * NSCD_THREAD_STACKSIZE) / 10) ++// #define MAX_STACK_USE ((8 * NSCD_THREAD_STACKSIZE) / 10) ++/* alloca() calls use extra space on stack that we cannot reliably ++ account for, the optimization effect is not that big and they are ++ prone to hard-to-debug crashes. In short, they are much more trouble ++ than they are worth. */ ++#define MAX_STACK_USE 0 + + + /* Structure describing dynamic part of one database. */ diff --git a/glibc-2.10-nscd-prunerace.diff b/glibc-2.10-nscd-prunerace.diff new file mode 100644 index 0000000..6df9c79 --- /dev/null +++ b/glibc-2.10-nscd-prunerace.diff @@ -0,0 +1,88 @@ +diff --git a/nscd/connections.c b/nscd/connections.c +index e3a6738..597e1a7 100644 +--- nscd/connections.c ++++ nscd/connections.c +@@ -109,6 +109,7 @@ struct database_dyn dbs[lastdb] = + [pwddb] = { + .lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, + .prune_lock = PTHREAD_MUTEX_INITIALIZER, ++ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER, + .enabled = 0, + .check_file = 1, + .persistent = 0, +@@ -129,6 +130,7 @@ struct database_dyn dbs[lastdb] = + [grpdb] = { + .lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, + .prune_lock = PTHREAD_MUTEX_INITIALIZER, ++ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER, + .enabled = 0, + .check_file = 1, + .persistent = 0, +@@ -149,6 +151,7 @@ struct database_dyn dbs[lastdb] = + [hstdb] = { + .lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, + .prune_lock = PTHREAD_MUTEX_INITIALIZER, ++ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER, + .enabled = 0, + .check_file = 1, + .persistent = 0, +@@ -169,6 +172,7 @@ struct database_dyn dbs[lastdb] = + [servdb] = { + .lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, + .prune_lock = PTHREAD_MUTEX_INITIALIZER, ++ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER, + .enabled = 0, + .check_file = 1, + .persistent = 0, +@@ -975,9 +979,9 @@ invalidate_cache (char *key, int fd) + + if (dbs[number].enabled) + { +- pthread_mutex_lock (&dbs[number].prune_lock); ++ pthread_mutex_lock (&dbs[number].prune_run_lock); + prune_cache (&dbs[number], LONG_MAX, fd); +- pthread_mutex_unlock (&dbs[number].prune_lock); ++ pthread_mutex_unlock (&dbs[number].prune_run_lock); + } + else + { +@@ -1492,6 +1496,7 @@ nscd_run_prune (void *p) + dbs[my_number].wakeup_time = now + CACHE_PRUNE_INTERVAL + my_number; + + pthread_mutex_t *prune_lock = &dbs[my_number].prune_lock; ++ pthread_mutex_t *prune_run_lock = &dbs[my_number].prune_run_lock; + pthread_cond_t *prune_cond = &dbs[my_number].prune_cond; + + pthread_mutex_lock (prune_lock); +@@ -1523,7 +1528,10 @@ nscd_run_prune (void *p) + time_t prune_now = dbs[my_number].clear_cache ? LONG_MAX : now; + dbs[my_number].clear_cache = 0; + ++ /* prune_cache() must be run with prune_lock off since ++ cache_add() needs to take the lock. */ + pthread_mutex_unlock (prune_lock); ++ pthread_mutex_lock (prune_run_lock); + + next_wait = prune_cache (&dbs[my_number], prune_now, -1); + +@@ -1538,6 +1546,7 @@ nscd_run_prune (void *p) + dbs[my_number].head->timestamp = now; + } + ++ pthread_mutex_unlock (prune_run_lock); + pthread_mutex_lock (prune_lock); + + /* Make it known when we will wake up again. */ +diff --git a/nscd/nscd.h b/nscd/nscd.h +index 5c77dd3..a828f3e 100644 +--- nscd/nscd.h ++++ nscd/nscd.h +@@ -68,7 +68,7 @@ struct database_dyn + { + pthread_rwlock_t lock; + pthread_cond_t prune_cond; +- pthread_mutex_t prune_lock; ++ pthread_mutex_t prune_lock, prune_run_lock; + time_t wakeup_time; + + int enabled; diff --git a/glibc-2.10-ppc32-setcontext-fp.diff b/glibc-2.10-ppc32-setcontext-fp.diff new file mode 100644 index 0000000..cbadcff --- /dev/null +++ b/glibc-2.10-ppc32-setcontext-fp.diff @@ -0,0 +1,29 @@ +20090108 Ryan S. Arnold + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S + (__CONTEXT_FUNC_NAME): Fix mtfsf to use fp31 instead of fp0. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S + (__CONTEXT_FUNC_NAME): Fix mtfsf to use fp31 instead of fp0. + +--- sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S 2009-01-08 10:01:44.000000000 -0600 ++++ sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S 2009-01-08 16:54:10.000000000 -0600 +@@ -202,7 +202,7 @@ + lfd fp0,_UC_FREGS+(0*8)(r31) + # ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ +- mtfsf 0xff,fp0,1,0 ++ mtfsf 0xff,fp31,1,0 + # else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r7,PPC_FEATURE_HAS_DFP +--- sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S 2009-01-08 10:01:44.000000000 -0600 ++++ sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S 2009-01-08 16:54:17.000000000 -0600 +@@ -428,7 +428,7 @@ + lfd fp0,_UC_FREGS+(0*8)(r31) + # ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ +- mtfsf 0xff,fp0,1,0 ++ mtfsf 0xff,fp31,1,0 + # else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r7,PPC_FEATURE_HAS_DFP diff --git a/glibc-2.10-unsetenv.diff b/glibc-2.10-unsetenv.diff new file mode 100644 index 0000000..bede175 --- /dev/null +++ b/glibc-2.10-unsetenv.diff @@ -0,0 +1,69 @@ +2008-12-01 Ulrich Drepper + + * stdlib/setenv.c (unsetenv): Don't search environment if it does + not exist. + * stdlib/Makefile (tests): Add tst-unsetenv1. + * stdlib/tst-unsetenv1.c: New file. + +--- stdlib/Makefile 8 Mar 2008 21:31:19 -0000 1.122 ++++ stdlib/Makefile 2 Dec 2008 02:27:21 -0000 1.123 +@@ -69,7 +69,7 @@ tests := tst-strtol tst-strtod testmb t + test-a64l tst-qsort tst-system testmb2 bug-strtod2 \ + tst-atof1 tst-atof2 tst-strtod2 tst-strtod3 tst-rand48-2 \ + tst-makecontext tst-strtod4 tst-strtod5 tst-qsort2 \ +- tst-makecontext2 tst-strtod6 ++ tst-makecontext2 tst-strtod6 tst-unsetenv1 + + include ../Makeconfig + +--- stdlib/setenv.c 14 Dec 2005 10:44:05 -0000 1.1 ++++ stdlib/setenv.c 2 Dec 2008 01:39:44 -0000 1.2 +@@ -292,19 +292,20 @@ unsetenv (name) + LOCK; + + ep = __environ; +- while (*ep != NULL) +- if (!strncmp (*ep, name, len) && (*ep)[len] == '=') +- { +- /* Found it. Remove this pointer by moving later ones back. */ +- char **dp = ep; +- +- do +- dp[0] = dp[1]; +- while (*dp++); +- /* Continue the loop in case NAME appears again. */ +- } +- else +- ++ep; ++ if (ep != NULL) ++ while (*ep != NULL) ++ if (!strncmp (*ep, name, len) && (*ep)[len] == '=') ++ { ++ /* Found it. Remove this pointer by moving later ones back. */ ++ char **dp = ep; ++ ++ do ++ dp[0] = dp[1]; ++ while (*dp++); ++ /* Continue the loop in case NAME appears again. */ ++ } ++ else ++ ++ep; + + UNLOCK; + +--- stdlib/tst-unsetenv1.c 1 Jan 1970 00:00:00 -0000 ++++ stdlib/tst-unsetenv1.c 2 Dec 2008 02:27:12 -0000 1.1 +@@ -0,0 +1,12 @@ ++#include ++ ++static int ++do_test (void) ++{ ++ clearenv (); ++ unsetenv ("FOO"); ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" diff --git a/glibc-2.2-sunrpc.diff b/glibc-2.2-sunrpc.diff new file mode 100644 index 0000000..523f0b4 --- /dev/null +++ b/glibc-2.2-sunrpc.diff @@ -0,0 +1,76 @@ +diff -urN glibc-2.2.4/sunrpc/clnt_udp.c glibc-2.2.4.new/sunrpc/clnt_udp.c +--- sunrpc/clnt_udp.c Tue Aug 24 11:34:36 2004 ++++ sunrpc/clnt_udp.c Tue Aug 24 11:35:19 2004 +@@ -272,6 +272,7 @@ + XDR *xdrs; + int outlen = 0; + int inlen; ++ int pollresult; + socklen_t fromlen; + struct pollfd fd; + int milliseconds = (cu->cu_wait.tv_sec * 1000) + +@@ -342,37 +343,36 @@ + anyup = 0; + for (;;) + { +- switch (__poll (&fd, 1, milliseconds)) ++ switch (pollresult = __poll (&fd, 1, milliseconds)) + { +- + case 0: +- if (anyup == 0) +- { +- anyup = is_network_up (cu->cu_sock); +- if (!anyup) +- return (cu->cu_error.re_status = RPC_CANTRECV); +- } +- +- time_waited.tv_sec += cu->cu_wait.tv_sec; +- time_waited.tv_usec += cu->cu_wait.tv_usec; +- while (time_waited.tv_usec >= 1000000) +- { +- time_waited.tv_sec++; +- time_waited.tv_usec -= 1000000; +- } +- if ((time_waited.tv_sec < timeout.tv_sec) || +- ((time_waited.tv_sec == timeout.tv_sec) && +- (time_waited.tv_usec < timeout.tv_usec))) +- goto send_again; +- return (cu->cu_error.re_status = RPC_TIMEDOUT); +- +- /* +- * buggy in other cases because time_waited is not being +- * updated. +- */ + case -1: +- if (errno == EINTR) +- continue; ++ if (pollresult == 0 || errno == EINTR) { ++ if (anyup == 0) ++ { ++ anyup = is_network_up (cu->cu_sock); ++ if (!anyup) ++ return (cu->cu_error.re_status = RPC_CANTRECV); ++ } ++ ++ time_waited.tv_sec += cu->cu_wait.tv_sec; ++ time_waited.tv_usec += cu->cu_wait.tv_usec; ++ while (time_waited.tv_usec >= 1000000) ++ { ++ time_waited.tv_sec++; ++ time_waited.tv_usec -= 1000000; ++ } ++ if ((time_waited.tv_sec < timeout.tv_sec) || ++ ((time_waited.tv_sec == timeout.tv_sec) && ++ (time_waited.tv_usec < timeout.tv_usec))) ++ if (pollresult == 0) ++ goto send_again; ++ else ++ continue; ++ return (cu->cu_error.re_status = RPC_TIMEDOUT); ++ } ++ ++ /* errno != EINTR */ + cu->cu_error.re_errno = errno; + return (cu->cu_error.re_status = RPC_CANTRECV); + } diff --git a/glibc-2.3-SuSE.diff b/glibc-2.3-SuSE.diff new file mode 100644 index 0000000..01107dc --- /dev/null +++ b/glibc-2.3-SuSE.diff @@ -0,0 +1,37 @@ +--- io/Makefile ++++ io/Makefile 2003/02/24 12:15:52 +@@ -56,7 +56,7 @@ + + others := pwd + test-srcs := ftwtest +-tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \ ++tests := test-utime test-stat test-stat2 tst-getcwd \ + tst-fcntl bug-ftw1 bug-ftw2 bug-ftw3 bug-ftw4 tst-statvfs \ + tst-openat tst-unlinkat tst-fstatat tst-futimesat \ + distribute := ftwtest-sh +--- libio/stdio.h 23 Apr 2003 10:13:22 -0000 1.1.1.14 ++++ libio/stdio.h 23 Apr 2003 10:27:07 -0000 1.10 +@@ -142,10 +142,12 @@ typedef _G_fpos64_t fpos64_t; + extern struct _IO_FILE *stdin; /* Standard input stream. */ + extern struct _IO_FILE *stdout; /* Standard output stream. */ + extern struct _IO_FILE *stderr; /* Standard error output stream. */ ++#ifdef __STDC__ + /* C89/C99 say they're macros. Make them happy. */ + #define stdin stdin + #define stdout stdout + #define stderr stderr ++#endif + + __BEGIN_NAMESPACE_STD + /* Remove file FILENAME. */ +--- stdio-common/Makefile ++++ stdio-common/Makefile 2005/12/05 11:13:59 +@@ -48,7 +48,7 @@ + temptest tst-fileno test-fwrite tst-ungetc tst-ferror \ + xbug errnobug \ + bug1 bug2 bug3 bug4 bug5 bug6 bug7 bug8 bug9 bug10 bug11 bug12 bug13 \ +- tfformat tiformat tllformat tstdiomisc tst-printfsz tst-wc-printf \ ++ tfformat tiformat tllformat tst-printfsz tst-wc-printf \ + scanf1 scanf2 scanf3 scanf4 scanf5 scanf7 scanf8 scanf9 scanf10 \ + scanf11 scanf12 tst-tmpnam tst-cookie tst-obprintf tst-sscanf \ + tst-swprintf tst-fseek tst-fmemopen test-vfprintf tst-gets \ diff --git a/glibc-2.3-regcomp.diff b/glibc-2.3-regcomp.diff new file mode 100644 index 0000000..eaa62e2 --- /dev/null +++ b/glibc-2.3-regcomp.diff @@ -0,0 +1,11 @@ +--- posix/regcomp.c 2003-11-26 08:54:28.000000000 +0100 ++++ posix/regcomp.c 2003-11-27 11:41:00.000000000 +0100 +@@ -2191,6 +2191,8 @@ + else if (syntax & RE_CONTEXT_INDEP_OPS) + { + fetch_token (token, regexp, syntax); ++ if (token->type == OP_CLOSE_SUBEXP || token->type == OP_ALT) ++ return NULL; + return parse_expression (regexp, preg, token, syntax, nest, err); + } + /* else fall through */ diff --git a/glibc-2.3.1.localedef.diff b/glibc-2.3.1.localedef.diff new file mode 100644 index 0000000..a4dca05 --- /dev/null +++ b/glibc-2.3.1.localedef.diff @@ -0,0 +1,68 @@ +------------------------------------------------------------------- +Mon Oct 21 17:20:04 CEST 2002 - schwab@suse.de + +- Fix alignment in locale-archive. + +--- locale/programs/locarchive.c 2002-10-18 11:14:16.000000000 +0200 ++++ locale/programs/locarchive.c 2002-10-21 13:28:27.000000000 +0200 +@@ -72,6 +72,9 @@ static const char *locnames[] = + #define INITIAL_NUM_SUMS 2000 + + ++#define ALIGN(offset, alignment) \ ++ (((offset) + (alignment) - 1) & -(alignment)) ++ + static void + create_archive (const char *archivefname, struct locarhandle *ah) + { +@@ -90,8 +93,9 @@ create_archive (const char *archivefname + + /* Create the initial content of the archive. */ + head.magic = AR_MAGIC; + head.serial = 0; +- head.namehash_offset = sizeof (struct locarhead); ++ head.namehash_offset = ALIGN (sizeof (struct locarhead), ++ __alignof__ (struct namehashent)); + head.namehash_used = 0; + head.namehash_size = next_prime (INITIAL_NUM_NAMES); + +@@ -99,12 +103,15 @@ create_archive (const char *archivefname + head.string_used = 0; + head.string_size = INITIAL_SIZE_STRINGS; + +- head.locrectab_offset = head.string_offset + head.string_size; ++ head.locrectab_offset = ALIGN (head.string_offset + head.string_size, ++ __alignof__ (struct locrecent)); + head.locrectab_used = 0; + head.locrectab_size = INITIAL_NUM_LOCREC; + +- head.sumhash_offset = (head.locrectab_offset +- + head.locrectab_size * sizeof (struct locrecent)); ++ head.sumhash_offset = ALIGN (head.locrectab_offset ++ + (head.locrectab_size ++ * sizeof (struct locrecent)), ++ __alignof__ (struct sumhashent)); + head.sumhash_used = 0; + head.sumhash_size = next_prime (INITIAL_NUM_SUMS); + +@@ -274,13 +281,16 @@ enlarge_archive (struct locarhandle *ah, + * sizeof (struct namehashent))); + newhead.string_size = MAX (2 * newhead.string_used, newhead.string_size); + +- newhead.locrectab_offset = newhead.string_offset + newhead.string_size; ++ newhead.locrectab_offset = ALIGN (newhead.string_offset ++ + newhead.string_size, ++ __alignof__ (struct locrecent)); + newhead.locrectab_size = MAX (2 * newhead.locrectab_used, + newhead.locrectab_size); + +- newhead.sumhash_offset = (newhead.locrectab_offset +- + (newhead.locrectab_size +- * sizeof (struct locrecent))); ++ newhead.sumhash_offset = ALIGN (newhead.locrectab_offset ++ + (newhead.locrectab_size ++ * sizeof (struct locrecent)), ++ __alignof__ (struct sumhashent)); + newhead.sumhash_size = MAX (next_prime (2 * newhead.sumhash_used), + newhead.sumhash_size); + diff --git a/glibc-2.3.2-revert_tcsetattr.diff b/glibc-2.3.2-revert_tcsetattr.diff new file mode 100644 index 0000000..f660306 --- /dev/null +++ b/glibc-2.3.2-revert_tcsetattr.diff @@ -0,0 +1,53 @@ +Index: sysdeps/unix/sysv/linux/tcsetattr.c +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/tcsetattr.c,v +retrieving revision 1.14 +retrieving revision 1.13 +diff -u -r1.14 -r1.13 +--- sysdeps/unix/sysv/linux/tcsetattr.c 21 Feb 2003 00:09:04 -0000 1.14 ++++ sysdeps/unix/sysv/linux/tcsetattr.c 17 Feb 2003 19:48:44 -0000 1.13 +@@ -56,6 +56,7 @@ + { + struct __kernel_termios k_termios; + unsigned long int cmd; ++ int retval; + + switch (optional_actions) + { +@@ -87,6 +88,35 @@ + memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0], + __KERNEL_NCCS * sizeof (cc_t)); + +- return INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios); ++ retval = INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios); ++ ++ if (retval == 0 && cmd == TCSETS) ++ { ++ /* The Linux kernel has a bug which silently ignore the invalid ++ c_cflag on pty. We have to check it here. */ ++ int save = errno; ++ retval = INLINE_SYSCALL (ioctl, 3, fd, TCGETS, &k_termios); ++ if (retval) ++ { ++ /* We cannot verify if the setting is ok. We don't return ++ an error (?). */ ++ __set_errno (save); ++ retval = 0; ++ } ++ else if ((termios_p->c_cflag & (PARENB | CREAD)) ++ != (k_termios.c_cflag & (PARENB | CREAD)) ++ || ((termios_p->c_cflag & CSIZE) ++ && ((termios_p->c_cflag & CSIZE) ++ != (k_termios.c_cflag & CSIZE)))) ++ { ++ /* It looks like the Linux kernel silently changed the ++ PARENB/CREAD/CSIZE bits in c_cflag. Report it as an ++ error. */ ++ __set_errno (EINVAL); ++ retval = -1; ++ } ++ } ++ ++ return retval; + } + libc_hidden_def (tcsetattr) diff --git a/glibc-2.3.2.no_archive.diff b/glibc-2.3.2.no_archive.diff new file mode 100644 index 0000000..52f4e69 --- /dev/null +++ b/glibc-2.3.2.no_archive.diff @@ -0,0 +1,43 @@ +------------------------------------------------------------------- +Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de + +- Make --no-archive default for localedef + +--- locale/programs/localedef.c ++++ locale/programs/localedef.c 2003/06/04 11:03:28 +@@ -83,7 +83,7 @@ + static struct localedef_t *locales; + + /* If true don't add locale data to archive. */ +-bool no_archive; ++bool no_archive = true; + + /* If true add named locales to archive. */ + static bool add_to_archive; +@@ -114,6 +114,7 @@ + #define OPT_REPLACE 307 + #define OPT_DELETE_FROM_ARCHIVE 308 + #define OPT_LIST_ARCHIVE 309 ++#define OPT_ARCHIVE 310 + + /* Definitions of arguments for argp functions. */ + static const struct argp_option options[] = +@@ -135,6 +136,8 @@ + N_("Suppress warnings and information messages") }, + { "verbose", 'v', NULL, 0, N_("Print more messages") }, + { NULL, 0, NULL, 0, N_("Archive control:") }, ++ { "archive", OPT_ARCHIVE, NULL, 0, ++ N_("Add new data to archive") }, + { "no-archive", OPT_NO_ARCHIVE, NULL, 0, + N_("Don't add new data to archive") }, + { "add-to-archive", OPT_ADD_TO_ARCHIVE, NULL, 0, +@@ -315,6 +318,9 @@ + case OPT_PREFIX: + output_prefix = arg; + break; ++ case OPT_ARCHIVE: ++ no_archive = false; ++ break; + case OPT_NO_ARCHIVE: + no_archive = true; + break; diff --git a/glibc-2.3.3-amd64-s_ceil.diff b/glibc-2.3.3-amd64-s_ceil.diff new file mode 100644 index 0000000..36f8b0d --- /dev/null +++ b/glibc-2.3.3-amd64-s_ceil.diff @@ -0,0 +1,38 @@ + +This fixes ceil (x) for -1.0 < x < 0. + +--- sysdeps/x86_64/fpu/s_ceil.c 2003-11-26 15:25:50.000000000 +0100 ++++ sysdeps/x86_64/fpu/s_ceil.c 2003-11-27 13:57:35.000000000 +0100 +@@ -34,7 +34,11 @@ + /* x is +zero or -zero; return the same zero */ + return x; + else if (xneg) /* x < 0.0 */ +- return 0.0; ++ { ++ /* Return zero with the sign of x */ ++ PUT_BITS_DP64(SIGNBIT_DP64, x); ++ return x; ++ } + else + return 1.0; + } +--- sysdeps/x86_64/fpu/s_ceilf.c 2003-11-26 15:25:50.000000000 +0100 ++++ sysdeps/x86_64/fpu/s_ceilf.c 2003-11-27 13:57:35.000000000 +0100 +@@ -34,7 +34,11 @@ + /* x is +zero or -zero; return the same zero */ + return x; + else if (xneg) /* x < 0.0 */ +- return 0.0F; ++ { ++ /* Return zero with the sign of x */ ++ PUT_BITS_SP32(SIGNBIT_SP32, x); ++ return x; ++ } + else + return 1.0F; + } + +-- + Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj + SuSE Linux AG, Deutschherrnstr. 15-19, 90429 Nürnberg, Germany + GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126 diff --git a/glibc-2.3.3-amd64-string.diff b/glibc-2.3.3-amd64-string.diff new file mode 100644 index 0000000..03b513b --- /dev/null +++ b/glibc-2.3.3-amd64-string.diff @@ -0,0 +1,2744 @@ +============================================================ +Index: sysdeps/x86_64/strlen.S +=================================================================== +--- sysdeps/x86_64/strlen.S.orig ++++ sysdeps/x86_64/strlen.S +@@ -1,139 +1,405 @@ +-/* strlen(str) -- determine the length of the string STR. +- Copyright (C) 2002, 2003 Free Software Foundation, Inc. +- Based on i486 version contributed by Ulrich Drepper . +- 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 +-#include "asm-syntax.h" +-#include "bp-sym.h" +-#include "bp-asm.h" +- +- +- .text +-ENTRY (strlen) +- movq %rdi, %rcx /* Duplicate source pointer. */ +- andl $7, %ecx /* mask alignment bits */ +- movq %rdi, %rax /* duplicate destination. */ +- jz 1f /* aligned => start loop */ +- +- neg %ecx /* We need to align to 8 bytes. */ +- addl $8,%ecx +- /* Search the first bytes directly. */ +-0: cmpb $0x0,(%rax) /* is byte NUL? */ +- je 2f /* yes => return */ +- incq %rax /* increment pointer */ +- decl %ecx +- jnz 0b +- +-1: movq $0xfefefefefefefeff,%r8 /* Save magic. */ +- +- .p2align 4 /* Align loop. */ +-4: /* Main Loop is unrolled 4 times. */ +- /* First unroll. */ +- movq (%rax), %rcx /* get double word (= 8 bytes) in question */ +- addq $8,%rax /* adjust pointer for next word */ +- movq %r8, %rdx /* magic value */ +- addq %rcx, %rdx /* add the magic value to the word. We get +- carry bits reported for each byte which +- is *not* 0 */ +- jnc 3f /* highest byte is NUL => return pointer */ +- xorq %rcx, %rdx /* (word+magic)^word */ +- orq %r8, %rdx /* set all non-carry bits */ +- incq %rdx /* add 1: if one carry bit was *not* set +- the addition will not result in 0. */ +- jnz 3f /* found NUL => return pointer */ +- +- /* Second unroll. */ +- movq (%rax), %rcx /* get double word (= 8 bytes) in question */ +- addq $8,%rax /* adjust pointer for next word */ +- movq %r8, %rdx /* magic value */ +- addq %rcx, %rdx /* add the magic value to the word. We get +- carry bits reported for each byte which +- is *not* 0 */ +- jnc 3f /* highest byte is NUL => return pointer */ +- xorq %rcx, %rdx /* (word+magic)^word */ +- orq %r8, %rdx /* set all non-carry bits */ +- incq %rdx /* add 1: if one carry bit was *not* set +- the addition will not result in 0. */ +- jnz 3f /* found NUL => return pointer */ +- +- /* Third unroll. */ +- movq (%rax), %rcx /* get double word (= 8 bytes) in question */ +- addq $8,%rax /* adjust pointer for next word */ +- movq %r8, %rdx /* magic value */ +- addq %rcx, %rdx /* add the magic value to the word. We get +- carry bits reported for each byte which +- is *not* 0 */ +- jnc 3f /* highest byte is NUL => return pointer */ +- xorq %rcx, %rdx /* (word+magic)^word */ +- orq %r8, %rdx /* set all non-carry bits */ +- incq %rdx /* add 1: if one carry bit was *not* set +- the addition will not result in 0. */ +- jnz 3f /* found NUL => return pointer */ +- +- /* Fourth unroll. */ +- movq (%rax), %rcx /* get double word (= 8 bytes) in question */ +- addq $8,%rax /* adjust pointer for next word */ +- movq %r8, %rdx /* magic value */ +- addq %rcx, %rdx /* add the magic value to the word. We get +- carry bits reported for each byte which +- is *not* 0 */ +- jnc 3f /* highest byte is NUL => return pointer */ +- xorq %rcx, %rdx /* (word+magic)^word */ +- orq %r8, %rdx /* set all non-carry bits */ +- incq %rdx /* add 1: if one carry bit was *not* set +- the addition will not result in 0. */ +- jz 4b /* no NUL found => continue loop */ +- +- .p2align 4 /* Align, it's a jump target. */ +-3: subq $8,%rax /* correct pointer increment. */ +- +- testb %cl, %cl /* is first byte NUL? */ +- jz 2f /* yes => return */ +- incq %rax /* increment pointer */ +- +- testb %ch, %ch /* is second byte NUL? */ +- jz 2f /* yes => return */ +- incq %rax /* increment pointer */ +- +- testl $0x00ff0000, %ecx /* is third byte NUL? */ +- jz 2f /* yes => return pointer */ +- incq %rax /* increment pointer */ +- +- testl $0xff000000, %ecx /* is fourth byte NUL? */ +- jz 2f /* yes => return pointer */ +- incq %rax /* increment pointer */ +- +- shrq $32, %rcx /* look at other half. */ +- +- testb %cl, %cl /* is first byte NUL? */ +- jz 2f /* yes => return */ +- incq %rax /* increment pointer */ +- +- testb %ch, %ch /* is second byte NUL? */ +- jz 2f /* yes => return */ +- incq %rax /* increment pointer */ +- +- testl $0xff0000, %ecx /* is third byte NUL? */ +- jz 2f /* yes => return pointer */ +- incq %rax /* increment pointer */ +-2: +- subq %rdi, %rax /* compute difference to string start */ +- ret ++# $Header: /K8_Projects/Glibc/amd64strlen.S 3 10/06/03 11:00 Emenezes $ ++ ++# (c) 2002 Advanced Micro Devices, Inc. ++# YOUR USE OF THIS CODE IS SUBJECT TO THE TERMS ++# AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC ++# LICENSE FOUND IN THE "README" FILE THAT IS ++# INCLUDED WITH THIS FILE ++ ++#include "sysdep.h" ++#include ++ ++#ifdef PIC ++ .globl _rtld_local_ro ++ .hidden _rtld_local_ro ++ .set _rtld_local_ro,_rtld_global_ro ++#endif ++ .text ++ ++ENTRY (strlen) # (const char *s) ++ ++ mov %rdi, %rsi ++ neg %rdi ++ ++L(strlenaligntry): ++ mov %rsi , %r8 ++ and $7, %r8d ++ jz L(strlenalignafter) ++ ++L(strlenalign): # 8-byte align ++ sub $8, %r8 ++ ++ .p2align 4 ++ ++L(strlenalignloop): ++ cmpb $0, (%rsi) ++ je L(exit) ++ ++ inc %rsi ++ inc %r8 ++ jnz L(strlenalignloop) ++ ++ .p2align 4 ++ ++L(strlenalignafter): ++ ++L(strlen56try): ++ ++L(strlen56): # 56-byte ++ mov (%rsi), %rax ++ mov $0xfefefefefefefeff, %rcx ++ ++L(strlen56loop): ++ mov %rcx, %r8 ++ add %rax, %r8 ++ jnc L(strlentail) ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ inc %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ lea 8 (%rsi), %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ jnc L(strlentail) ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ inc %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ lea 8 (%rsi), %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ jnc L(strlentail) ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ inc %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ lea 8 (%rsi), %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ jnc L(strlentail) ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ inc %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ lea 8 (%rsi), %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ jnc L(strlentail) ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ inc %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ lea 8 (%rsi), %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ jnc L(strlentail) ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ inc %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ lea 8 (%rsi), %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ jnc L(strlentail) ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ inc %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ lea 8 (%rsi), %rsi ++ ++L(strlen56after): ++ ++L(strlen32): # 32-byte ++# mov $0xfefefefefefefeff, %rcx ++# mov (%rsi), %rax ++ ++#ifdef PIC ++ mov _rtld_local_ro@GOTPCREL(%rip), %r8 ++ mov RTLD_GLOBAL_DL_CACHE1SIZE(%r8), %r9 ++#else ++ mov _dl_cache1size, %r9 ++#endif ++ ++ .p2align 4 ++ ++L(strlen32loop): ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ sub $32, %r9 ++ ++ mov 8 (%rsi), %rax ++ lea 8 (%rsi), %rsi ++ ++ jbe L(strlen32loop) ++ ++L(strlen32after): ++ ++L(strlenpretry): ++ ++L(strlenpre): # 64-byte prefetch ++# mov $0xfefefefefefefeff, %rcx ++# mov (%rsi), %rax ++ ++ .p2align 4 ++ ++L(strlenpreloop): ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %rdx, %rdx ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %rdx, %r8 ++ jnz L(strlentail) ++ ++ prefetcht0 512 (%rsi) ++ ++ mov 8 (%rsi), %rax ++ add $8, %rsi ++ ++ jmp L(strlenpreloop) ++ ++ .p2align 4 ++ ++L(strlenpreafter): ++ ++L(strlentailtry): ++ ++L(strlentail): # 4-byte tail ++ ++L(strlentailloop): ++ test %al, %al ++ jz L(exit) ++ ++ inc %rsi ++ ++ test %ah, %ah ++ jz L(exit) ++ ++ inc %rsi ++ ++ test $0x00ff0000, %eax ++ jz L(exit) ++ ++ inc %rsi ++ ++ test $0xff000000, %eax ++ jz L(exit) ++ ++ inc %rsi ++ ++ shr $32, %rax ++ jmp L(strlentailloop) ++ ++L(strlentailafter): ++ ++ .p2align 4 ++ ++L(exit): ++ lea (%rdi, %rsi), %rax ++ ret ++ + END (strlen) + libc_hidden_builtin_def (strlen) +Index: sysdeps/x86_64/dl-machine.h +=================================================================== +--- sysdeps/x86_64/dl-machine.h.orig ++++ sysdeps/x86_64/dl-machine.h +@@ -219,6 +219,40 @@ dl_platform_init (void) + if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0') + /* Avoid an empty string which would disturb us. */ + GLRO(dl_platform) = NULL; ++ ++ long int t1, t2; ++ t1 = 0; ++ t2 = 0; ++ ++ asm ( ++ "mov $0x80000000, %%eax # get highest level of support\n\t" ++ "cpuid\n\t" ++ "cmp $0x80000006, %%eax # check for support of cache info\n\t" ++ "jb 1f\n\t" ++ "mov $0x80000005, %%eax # get L1 info\n\t" ++ "cpuid\n\t" ++ "shr $24, %%ecx\n\t" ++ "shl $10, %%ecx\n\t" ++ "mov %%rcx, %0\n\t" ++ "mov $0x80000006, %%eax # get L2 info\n\t" ++ "cpuid\n\t" ++ "shr $16, %%ecx\n\t" ++ "shl $10, %%ecx\n\t" ++ "mov %%rcx, %1\n\t" ++ "1:\n\t" ++ :"=r" (t1), "=r" (t2) :: "%rbx", "%rax", "%rcx", "%rdx" ++ ); ++ ++ if (t1) ++ { ++ GLRO(dl_cache1size) = t1; ++ GLRO(dl_cache1sizehalf) = t1 / 2; ++ } ++ if (t2) ++ { ++ GLRO(dl_cache2size) = t2; ++ GLRO(dl_cache2sizehalf) = t2 / 2; ++ } + } + + static inline Elf64_Addr +Index: sysdeps/x86_64/Makefile +=================================================================== +--- sysdeps/x86_64/Makefile.orig ++++ sysdeps/x86_64/Makefile +@@ -4,6 +4,9 @@ long-double-fcts = yes + ifeq ($(subdir),csu) + sysdep_routines += hp-timing + elide-routines.os += hp-timing ++ ++# get offset to rtld_global._dl_* ++gen-as-const-headers += rtld-global-offsets.sym + endif + + ifeq ($(subdir),gmon) +Index: sysdeps/x86_64/strcpy.S +=================================================================== +--- sysdeps/x86_64/strcpy.S.orig ++++ sysdeps/x86_64/strcpy.S +@@ -1,159 +1,833 @@ +-/* strcpy/stpcpy implementation for x86-64. +- Copyright (C) 2002 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Andreas Jaeger , 2002. +- +- 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 +-#include "asm-syntax.h" +-#include "bp-sym.h" +-#include "bp-asm.h" ++# $Header: /K8_Projects/Glibc/amd64strcpy.S 7 2/12/04 19:06 Emenezes $ + +-#ifndef USE_AS_STPCPY ++# (c) 2002 Advanced Micro Devices, Inc. ++# YOUR USE OF THIS CODE IS SUBJECT TO THE TERMS ++# AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC ++# LICENSE FOUND IN THE "README" FILE THAT IS ++# INCLUDED WITH THIS FILE ++ ++#include "sysdep.h" ++#include ++ ++ /* XXX: strncpy is broken, just use this for strcpy for now. */ ++#ifdef PIC ++ .globl _rtld_local_ro ++ .hidden _rtld_local_ro ++ .set _rtld_local_ro,_rtld_global_ro ++#endif ++#ifndef STRCPY + # define STRCPY strcpy + #endif ++#define LABEL(s) L(strcpy##s) ++ ++ .text ++ ++ENTRY (STRCPY) # (char *, const char *) ++ ++#ifdef USE_AS_STRNCPY // (char *, const char *, size_t) ++ test %rdx, %rdx # (char *, const char *, size_t) ++ mov %rdx, %r11 ++ jz LABEL(exitn) # early exit ++#endif ++ ++ xor %edx, %edx ++ ++LABEL(aligntry): ++ mov %rsi, %r8 # align by source ++ and $7, %r8 ++ jz LABEL(alignafter) ++ ++LABEL(align): # 8-byte align ++ sub $8, %r8 + +- .text +-ENTRY (BP_SYM (STRCPY)) +- movq %rsi, %rcx /* Source register. */ +- andl $7, %ecx /* mask alignment bits */ +- movq %rdi, %rdx /* Duplicate destination pointer. */ +- +- jz 5f /* aligned => start loop */ +- +- neg %ecx /* We need to align to 8 bytes. */ +- addl $8,%ecx +- /* Search the first bytes directly. */ +-0: +- movb (%rsi), %al /* Fetch a byte */ +- testb %al, %al /* Is it NUL? */ +- movb %al, (%rdx) /* Store it */ +- jz 4f /* If it was NUL, done! */ +- incq %rsi +- incq %rdx +- decl %ecx +- jnz 0b +- +-5: +- movq $0xfefefefefefefeff,%r8 +- +- /* Now the sources is aligned. Unfortunatly we cannot force +- to have both source and destination aligned, so ignore the +- alignment of the destination. */ + .p2align 4 +-1: +- /* 1st unroll. */ +- movq (%rsi), %rax /* Read double word (8 bytes). */ +- addq $8, %rsi /* Adjust pointer for next word. */ +- movq %rax, %r9 /* Save a copy for NUL finding. */ +- addq %r8, %r9 /* add the magic value to the word. We get +- carry bits reported for each byte which +- is *not* 0 */ +- jnc 3f /* highest byte is NUL => return pointer */ +- xorq %rax, %r9 /* (word+magic)^word */ +- orq %r8, %r9 /* set all non-carry bits */ +- incq %r9 /* add 1: if one carry bit was *not* set +- the addition will not result in 0. */ +- +- jnz 3f /* found NUL => return pointer */ +- +- movq %rax, (%rdx) /* Write value to destination. */ +- addq $8, %rdx /* Adjust pointer. */ +- +- /* 2nd unroll. */ +- movq (%rsi), %rax /* Read double word (8 bytes). */ +- addq $8, %rsi /* Adjust pointer for next word. */ +- movq %rax, %r9 /* Save a copy for NUL finding. */ +- addq %r8, %r9 /* add the magic value to the word. We get +- carry bits reported for each byte which +- is *not* 0 */ +- jnc 3f /* highest byte is NUL => return pointer */ +- xorq %rax, %r9 /* (word+magic)^word */ +- orq %r8, %r9 /* set all non-carry bits */ +- incq %r9 /* add 1: if one carry bit was *not* set +- the addition will not result in 0. */ +- +- jnz 3f /* found NUL => return pointer */ +- +- movq %rax, (%rdx) /* Write value to destination. */ +- addq $8, %rdx /* Adjust pointer. */ +- +- /* 3rd unroll. */ +- movq (%rsi), %rax /* Read double word (8 bytes). */ +- addq $8, %rsi /* Adjust pointer for next word. */ +- movq %rax, %r9 /* Save a copy for NUL finding. */ +- addq %r8, %r9 /* add the magic value to the word. We get +- carry bits reported for each byte which +- is *not* 0 */ +- jnc 3f /* highest byte is NUL => return pointer */ +- xorq %rax, %r9 /* (word+magic)^word */ +- orq %r8, %r9 /* set all non-carry bits */ +- incq %r9 /* add 1: if one carry bit was *not* set +- the addition will not result in 0. */ +- +- jnz 3f /* found NUL => return pointer */ +- +- movq %rax, (%rdx) /* Write value to destination. */ +- addq $8, %rdx /* Adjust pointer. */ +- +- /* 4th unroll. */ +- movq (%rsi), %rax /* Read double word (8 bytes). */ +- addq $8, %rsi /* Adjust pointer for next word. */ +- movq %rax, %r9 /* Save a copy for NUL finding. */ +- addq %r8, %r9 /* add the magic value to the word. We get +- carry bits reported for each byte which +- is *not* 0 */ +- jnc 3f /* highest byte is NUL => return pointer */ +- xorq %rax, %r9 /* (word+magic)^word */ +- orq %r8, %r9 /* set all non-carry bits */ +- incq %r9 /* add 1: if one carry bit was *not* set +- the addition will not result in 0. */ +- +- jnz 3f /* found NUL => return pointer */ +- +- movq %rax, (%rdx) /* Write value to destination. */ +- addq $8, %rdx /* Adjust pointer. */ +- jmp 1b /* Next iteration. */ + +- /* Do the last few bytes. %rax contains the value to write. +- The loop is unrolled twice. */ ++LABEL(alignloop): ++#ifdef USE_AS_STRNCPY ++ dec %r11 ++ jl LABEL(exitn) ++#endif ++ ++ mov (%rsi, %rdx), %al # check if same character ++ test %al, %al # check if character a NUL ++ mov %al, (%rdi, %rdx) ++ jz LABEL(exit) ++ ++ inc %edx ++ inc %r8 ++ jnz LABEL(alignloop) ++ + .p2align 4 ++ ++LABEL(alignafter): ++ ++LABEL(8try): ++ mov $0xfefefefefefefeff, %rcx ++ ++LABEL(8): # 8-byte ++ mov (%rsi, %rdx), %rax ++ ++LABEL(8loop): ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++LABEL(8after): ++ ++LABEL(64try): ++#ifdef PIC ++ mov _rtld_local_ro@GOTPCREL(%rip), %r8 ++ mov RTLD_GLOBAL_DL_CACHE1SIZEHALF(%r8), %r9 ++#else ++ mov _dl_cache1sizehalf, %r9 ++#endif ++ ++ ++LABEL(64): # 64-byte ++ ++ .p2align 4 ++ ++LABEL(64loop): ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ cmp %r9, %rdx ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ lea 8 (%rdx), %rdx ++ ++ jbe LABEL(64loop) ++ ++LABEL(64after): ++ ++LABEL(pretry): ++#ifdef PIC ++ mov _rtld_local_ro@GOTPCREL(%rip), %r8 ++ mov RTLD_GLOBAL_DL_CACHE2SIZEHALF(%r8), %r9 ++#else ++ mov _dl_cache2sizehalf, %r9 ++#endif ++ ++LABEL(pre): # 64-byte prefetch ++ ++ .p2align 4 ++ ++LABEL(preloop): ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ mov %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %edx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(tail) ++ ++ cmp %r9, %rdx ++ ++ mov %rax, (%rdi, %rdx) ++ prefetcht0 512 + 8 (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ prefetcht0 512 + 8 (%rsi, %rdx) ++ lea 8 (%rdx), %rdx ++ ++ jb LABEL(preloop) ++ ++ .p2align 4 ++ ++LABEL(preafter): ++ ++LABEL(NTtry): ++ sfence ++ ++LABEL(NT): # 64-byte NT ++ ++ .p2align 4 ++ ++LABEL(NTloop): ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(NTtail) ++ ++ movnti %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %rdx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(NTtail) ++ ++ movnti %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %rdx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(NTtail) ++ ++ movnti %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %rdx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(NTtail) ++ ++ movnti %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %rdx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(NTtail) ++ ++ movnti %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %rdx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(NTtail) ++ ++ movnti %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %rdx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(NTtail) ++ ++ movnti %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ add $8, %rdx ++ ++#ifdef USE_AS_STRNCPY ++ sub $8, %r11 ++ jl LABEL(tail) ++#endif ++ ++ mov %rcx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ xor %rax, %r8 ++ or %rcx, %r8 ++ sub %r10, %r8 ++ jnz LABEL(NTtail) ++ ++ movnti %rax, (%rdi, %rdx) ++ mov 8 (%rsi, %rdx), %rax ++ prefetchnta 768 + 8 (%rsi, %rdx) ++ add $8, %rdx ++ ++ jmp LABEL(NTloop) ++ ++ .p2align 4 ++ ++LABEL(NTtail): ++ sfence ++ ++ .p2align 4 ++ ++LABEL(NTafter): ++ ++LABEL(tailtry): ++ ++LABEL(tail): # 1-byte tail ++#ifdef USE_AS_STRNCPY ++ add $8, %r11 ++#endif ++ ++ .p2align 4 ++ ++LABEL(tailloop): ++#ifdef USE_AS_STRNCPY ++ dec %r11 ++ jl LABEL(exitn) ++#endif ++ ++ test %al, %al ++ mov %al, (%rdi, %rdx) ++ jz LABEL(exit) ++ ++ inc %rdx ++ ++#ifdef USE_AS_STRNCPY ++ dec %r11 ++ jl LABEL(exitn) ++ ++ mov %ah, %al ++#endif ++ ++ test %ah, %ah ++ mov %ah, (%rdi, %rdx) ++ jz LABEL(exit) ++ ++ inc %rdx ++ ++#ifdef USE_AS_STRNCPY ++ dec %r11 ++ jl LABEL(exitn) ++#endif ++ ++ shr $16, %rax ++ ++ test %al, %al ++ mov %al, (%rdi, %rdx) ++ jz LABEL(exit) ++ ++ inc %rdx ++ ++#ifdef USE_AS_STRNCPY ++ dec %r11 ++ jl LABEL(exitn) ++ ++ mov %ah, %al ++#endif ++ ++ test %ah, %ah ++ mov %ah, (%rdi, %rdx) ++ jz LABEL(exit) ++ ++ shr $16, %rax ++ inc %rdx ++ ++ jmp LABEL(tailloop) ++ ++ .p2align 4 ++ ++LABEL(tailafter): ++ ++LABEL(exit): ++#ifdef USE_AS_STRNCPY ++ test %r11, %r11 ++ mov %r11, %rcx ++ ++#ifdef USE_AS_STPCPY ++ lea (%rdi, %rdx), %r8 ++#else ++ mov %rdi, %r8 ++#endif ++ ++ jz 2f ++ ++ xor %eax, %eax # bzero () would do too, but usually there are only a handfull of bytes left ++ shr $3, %rcx ++ lea 1 (%rdi, %rdx), %rdi ++ jz 1f ++ ++ rep stosq ++ ++1: ++ mov %r11d, %ecx ++ and $7, %ecx ++ jz 2f ++ ++ .p2align 4,, 3 ++ + 3: +- /* Note that stpcpy needs to return with the value of the NUL +- byte. */ +- movb %al, (%rdx) /* 1st byte. */ +- testb %al, %al /* Is it NUL. */ +- jz 4f /* yes, finish. */ +- incq %rdx /* Increment destination. */ +- movb %ah, (%rdx) /* 2nd byte. */ +- testb %ah, %ah /* Is it NUL?. */ +- jz 4f /* yes, finish. */ +- incq %rdx /* Increment destination. */ +- shrq $16, %rax /* Shift... */ +- jmp 3b /* and look at next two bytes in %rax. */ ++ dec %ecx ++ mov %al, (%rdi, %rcx) ++ jnz 3b ++ ++ .p2align 4,, 3 ++ ++2: ++ mov %r8, %rax ++ ret ++ ++#endif ++ ++ .p2align 4 + +-4: ++LABEL(exitn): + #ifdef USE_AS_STPCPY +- movq %rdx, %rax /* Destination is return value. */ ++ lea (%rdi, %rdx), %rax + #else +- movq %rdi, %rax /* Source is return value. */ ++ mov %rdi, %rax + #endif +- retq +-END (BP_SYM (STRCPY)) +-#ifndef USE_AS_STPCPY +-libc_hidden_builtin_def (strcpy) ++ ++ ret ++ ++END (STRCPY) ++#if !defined USE_AS_STPCPY && !defined USE_AS_STRNCPY ++libc_hidden_builtin_def (STRCPY) + #endif +Index: sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c +=================================================================== +--- sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c.orig ++++ sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c +@@ -1,5 +1,5 @@ + #ifdef IS_IN_ldconfig + # include + #else +-# include ++# include + #endif +Index: sysdeps/x86_64/dl-procinfo.c +=================================================================== +--- /dev/null ++++ sysdeps/x86_64/dl-procinfo.c +@@ -0,0 +1,108 @@ ++/* Data for x86-64 version of processor capability information. ++ Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Andreas Jaeger , 2004. ++ ++ 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. */ ++ ++/* This information must be kept in sync with the _DL_HWCAP_COUNT and ++ _DL_PLATFORM_COUNT definitions in procinfo.h. ++ ++ If anything should be added here check whether the size of each string ++ is still ok with the given array size. ++ ++ All the #ifdefs in the definitions ar equite irritating but ++ necessary if we want to avoid duplicating the information. There ++ are three different modes: ++ ++ - PROCINFO_DECL is defined. This means we are only interested in ++ declarations. ++ ++ - PROCINFO_DECL is not defined: ++ ++ + if SHARED is defined the file is included in an array ++ initializer. The .element = { ... } syntax is needed. ++ ++ + if SHARED is not defined a normal array initialization is ++ needed. ++ */ ++ ++#ifndef PROCINFO_CLASS ++#define PROCINFO_CLASS ++#endif ++ ++ /* _dl_cache1size: size of L1 cache */ ++#if !defined PROCINFO_DECL && defined SHARED ++ ._dl_cache1size ++#else ++PROCINFO_CLASS long int _dl_cache1size ++#endif ++#ifndef PROCINFO_DECL ++= 1024 * 64 ++#endif ++#if !defined SHARED || defined PROCINFO_DECL ++; ++#else ++, ++#endif ++ ++ /* _dl_cache1sizehalf: 1/2 size of L1 cache */ ++#if !defined PROCINFO_DECL && defined SHARED ++ ._dl_cache1sizehalf ++#else ++PROCINFO_CLASS long int _dl_cache1sizehalf ++#endif ++#ifndef PROCINFO_DECL ++= 1024 * 64 / 2 ++#endif ++#if !defined SHARED || defined PROCINFO_DECL ++; ++#else ++, ++#endif ++ ++ /* _dl_cache2size: size of L2 cache */ ++#if !defined PROCINFO_DECL && defined SHARED ++ ._dl_cache2size ++#else ++PROCINFO_CLASS long int _dl_cache2size ++#endif ++#ifndef PROCINFO_DECL ++= 1024 * 1024 ++#endif ++#if !defined SHARED || defined PROCINFO_DECL ++; ++#else ++, ++#endif ++ ++ /* _dl_cache2size: 1/2 size of L2 cache */ ++#if !defined PROCINFO_DECL && defined SHARED ++ ._dl_cache2sizehalf ++#else ++PROCINFO_CLASS long int _dl_cache2sizehalf ++#endif ++#ifndef PROCINFO_DECL ++= 1024 * 1024 / 2 ++#endif ++#if !defined SHARED || defined PROCINFO_DECL ++; ++#else ++, ++#endif ++ ++#undef PROCINFO_DECL ++#undef PROCINFO_CLASS +Index: sysdeps/x86_64/elf/rtld-global-offsets.sym +=================================================================== +--- /dev/null ++++ sysdeps/x86_64/elf/rtld-global-offsets.sym +@@ -0,0 +1,10 @@ ++#define SHARED 1 ++ ++#include ++ ++#define rtdl_global_offsetof(mem) offsetof (struct rtld_global_ro, mem) ++ ++RTLD_GLOBAL_DL_CACHE1SIZE rtdl_global_offsetof (_dl_cache1size) ++RTLD_GLOBAL_DL_CACHE1SIZEHALF rtdl_global_offsetof (_dl_cache1sizehalf) ++RTLD_GLOBAL_DL_CACHE2SIZE rtdl_global_offsetof (_dl_cache2size) ++RTLD_GLOBAL_DL_CACHE2SIZEHALF rtdl_global_offsetof (_dl_cache2sizehalf) +Index: sysdeps/x86_64/memcmp.S +=================================================================== +--- /dev/null ++++ sysdeps/x86_64/memcmp.S +@@ -0,0 +1,442 @@ ++# $Header: /K8_Projects/Glibc/amd64memcmp.S 4 10/06/03 10:57 Emenezes $ ++ ++# (c) 2002 Advanced Micro Devices, Inc. ++# YOUR USE OF THIS CODE IS SUBJECT TO THE TERMS ++# AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC ++# LICENSE FOUND IN THE "README" FILE THAT IS ++# INCLUDED WITH THIS FILE ++ ++#include "sysdep.h" ++#include ++ ++#ifdef PIC ++ .globl _rtld_local_ro ++ .hidden _rtld_local_ro ++ .set _rtld_local_ro,_rtld_global_ro ++#endif ++ ++ .text ++ ++ENTRY (memcmp) # (const void *, const void*, size_t) ++ ++L(memcmptry1): ++ cmp $8, %rdx ++ jae L(memcmp1after) ++ ++L(memcmp1): # 1-byte ++ test %rdx, %rdx ++ mov $0, %eax ++ jz L(memcmpexit) ++ ++L(memcmp1loop): ++ movzbl (%rdi), %eax ++ movzbl (%rsi), %ecx ++ sub %ecx, %eax ++ jnz L(memcmpexit) ++ ++ dec %rdx ++ ++ lea 1 (%rdi), %rdi ++ lea 1 (%rsi), %rsi ++ ++ jnz L(memcmp1loop) ++ ++L(memcmpexit): ++ rep ++ ret ++ ++ .p2align 4 ++ ++L(memcmp1after): ++ ++L(memcmp8try): ++ cmp $32, %rdx ++ jae L(memcmp8after) ++ ++L(memcmp8): # 8-byte ++ mov %edx, %ecx ++ shr $3, %ecx ++ jz L(memcmp1) ++ ++ .p2align 4 ++ ++L(memcmp8loop): ++ mov (%rsi), %rax ++ cmp (%rdi), %rax ++ jne L(memcmp1) ++ ++ sub $8, %rdx ++ dec %ecx ++ ++ lea 8 (%rsi), %rsi ++ lea 8 (%rdi), %rdi ++ ++ jnz L(memcmp8loop) ++ ++L(memcmp8skip): ++ and $7, %edx ++ jnz L(memcmp1) ++ ++ xor %eax, %eax ++ ret ++ ++ .p2align 4 ++ ++L(memcmp8after): ++ ++L(memcmp32try): ++ cmp $2048, %rdx ++ ja L(memcmp32after) ++ ++L(memcmp32): # 32-byte ++ mov %edx, %ecx ++ shr $5, %ecx ++ jz L(memcmp8) ++ ++ .p2align 4 ++ ++L(memcmp32loop): ++ mov (%rsi), %rax ++ mov 8 (%rsi), %r8 ++ mov 16 (%rsi), %r9 ++ mov 24 (%rsi), %r10 ++ sub (%rdi), %rax ++ sub 8 (%rdi), %r8 ++ sub 16 (%rdi), %r9 ++ sub 24 (%rdi), %r10 ++ ++ or %rax, %r8 ++ or %r9, %r10 ++ or %r8, %r10 ++ jnz L(memcmp8) ++ ++ sub $32, %rdx ++ dec %ecx ++ ++ lea 32 (%rsi), %rsi ++ lea 32 (%rdi), %rdi ++ ++ jnz L(memcmp32loop) ++ ++L(memcmp32skip): ++ and $31, %edx ++ jnz L(memcmp8) ++ ++ xor %eax, %eax ++ ret ++ ++ .p2align 4 ++ ++L(memcmp32after): ++ ++#ifdef PIC ++ mov _rtld_local_ro@GOTPCREL(%rip), %r8 ++ mov RTLD_GLOBAL_DL_CACHE1SIZEHALF(%r8), %r9 ++#else ++ mov _dl_cache1sizehalf, %r9 ++#endif ++ prefetcht0 (%r9) ++ ++ ++.alignsrctry: ++ mov %esi, %r8d # align by source ++ ++ and $7, %r8d ++ jz .alignsrcafter # not unaligned ++ ++.alignsrc: # align ++ lea -8 (%r8, %rdx), %rdx ++ sub $8, %r8d ++ ++# .p2align 4 ++ ++.alignsrcloop: ++ movzbl (%rdi), %eax ++ movzbl (%rsi), %ecx ++ sub %ecx, %eax ++ jnz L(memcmpexit) ++ ++ inc %r8d ++ ++ lea 1 (%rdi), %rdi ++ lea 1 (%rsi), %rsi ++ ++ jnz .alignsrcloop ++ ++ .p2align 4 ++ ++.alignsrcafter: ++ ++ ++L(memcmp64try): ++#ifdef PIC ++ mov _rtld_local_ro@GOTPCREL(%rip), %r8 ++ mov RTLD_GLOBAL_DL_CACHE1SIZEHALF(%r8), %rcx ++#else ++ mov _dl_cache1sizehalf, %rcx ++#endif ++ cmp %rdx, %rcx ++ cmova %rdx, %rcx ++ ++L(memcmp64): # 64-byte ++ shr $6, %rcx ++ jz L(memcmp32) ++ ++ .p2align 4 ++ ++L(memcmp64loop): ++ mov (%rsi), %rax ++ mov 8 (%rsi), %r8 ++ sub (%rdi), %rax ++ sub 8 (%rdi), %r8 ++ or %r8, %rax ++ ++ mov 16 (%rsi), %r9 ++ mov 24 (%rsi), %r10 ++ sub 16 (%rdi), %r9 ++ sub 24 (%rdi), %r10 ++ or %r10, %r9 ++ ++ or %r9, %rax ++ jnz L(memcmp32) ++ ++ mov 32 (%rsi), %rax ++ mov 40 (%rsi), %r8 ++ sub 32 (%rdi), %rax ++ sub 40 (%rdi), %r8 ++ or %r8, %rax ++ ++ mov 48 (%rsi), %r9 ++ mov 56 (%rsi), %r10 ++ sub 48 (%rdi), %r9 ++ sub 56 (%rdi), %r10 ++ or %r10, %r9 ++ ++ or %r9, %rax ++ jnz L(memcmp32) ++ ++ lea 64 (%rsi), %rsi ++ lea 64 (%rdi), %rdi ++ ++ sub $64, %rdx ++ dec %rcx ++ jnz L(memcmp64loop) ++ ++# .p2align 4 ++ ++L(memcmp64skip): ++ cmp $2048, %rdx ++ ja L(memcmp64after) ++ ++ test %edx, %edx ++ jnz L(memcmp32) ++ ++ xor %eax, %eax ++ ret ++ ++ .p2align 4 ++ ++L(memcmp64after): ++ ++L(memcmppretry): ++ ++L(memcmppre): # 64-byte prefetching ++#ifdef PIC ++ mov _rtld_local_ro@GOTPCREL(%rip), %r8 ++ mov RTLD_GLOBAL_DL_CACHE2SIZEHALF(%r8), %rcx ++#else ++ mov _dl_cache2sizehalf, %rcx ++#endif ++ cmp %rdx, %rcx ++ cmova %rdx, %rcx ++ ++ shr $6, %rcx ++ jz L(memcmppreskip) ++ ++ prefetcht0 512 (%rsi) ++ prefetcht0 512 (%rdi) ++ ++ mov (%rsi), %rax ++ mov 8 (%rsi), %r9 ++ mov 16 (%rsi), %r10 ++ mov 24 (%rsi), %r11 ++ sub (%rdi), %rax ++ sub 8 (%rdi), %r9 ++ sub 16 (%rdi), %r10 ++ sub 24 (%rdi), %r11 ++ ++ or %r9, %rax ++ or %r11, %r10 ++ or %r10, %rax ++ jnz L(memcmp32) ++ ++ mov 32 (%rsi), %rax ++ mov 40 (%rsi), %r9 ++ mov 48 (%rsi), %r10 ++ mov 56 (%rsi), %r11 ++ sub 32 (%rdi), %rax ++ sub 40 (%rdi), %r9 ++ sub 48 (%rdi), %r10 ++ sub 56 (%rdi), %r11 ++ ++ or %r9, %rax ++ or %r11, %r10 ++ or %r10, %rax ++ jnz L(memcmp32) ++ ++ lea 64 (%rsi), %rsi ++ lea 64 (%rdi), %rdi ++ ++ sub $64, %rdx ++ dec %rcx ++ ++ .p2align 4 ++ ++L(memcmppreloop): ++ prefetcht0 512 (%rsi) ++ prefetcht0 512 (%rdi) ++ ++ mov (%rsi), %rax ++ mov 8 (%rsi), %r9 ++ mov 16 (%rsi), %r10 ++ mov 24 (%rsi), %r11 ++ sub (%rdi), %rax ++ sub 8 (%rdi), %r9 ++ sub 16 (%rdi), %r10 ++ sub 24 (%rdi), %r11 ++ ++ or %r9, %rax ++ or %r11, %r10 ++ or %r10, %rax ++ jnz L(memcmp32) ++ ++ mov 32 (%rsi), %rax ++ mov 40 (%rsi), %r9 ++ mov 48 (%rsi), %r10 ++ mov 56 (%rsi), %r11 ++ sub 32 (%rdi), %rax ++ sub 40 (%rdi), %r9 ++ sub 48 (%rdi), %r10 ++ sub 56 (%rdi), %r11 ++ ++ or %r9, %rax ++ or %r11, %r10 ++ or %r10, %rax ++ jnz L(memcmp32) ++ ++ lea 64 (%rsi), %rsi ++ lea 64 (%rdi), %rdi ++ ++ sub $64, %rdx ++ dec %rcx ++ jnz L(memcmppreloop) ++ ++# .p2align 4 ++ ++L(memcmppreskip): ++ cmp $2048, %rdx ++ ja L(memcmppreafter) ++ ++ test %edx, %edx ++ jnz L(memcmp32) ++ ++ xor %eax, %eax ++ ret ++ ++ .p2align 4 ++ ++L(memcmppreafter): ++ ++L(memcmp128try): ++ ++L(memcmp128): # 128-byte ++ mov %rdx, %rcx ++ shr $7, %rcx ++ jz L(memcmp128skip) ++ ++ .p2align 4 ++ ++L(memcmp128loop): ++ prefetcht0 512 (%rsi) ++ prefetcht0 512 (%rdi) ++ ++ mov (%rsi), %rax ++ mov 8 (%rsi), %r8 ++ sub (%rdi), %rax ++ sub 8 (%rdi), %r8 ++ mov 16 (%rsi), %r9 ++ mov 24 (%rsi), %r10 ++ sub 16 (%rdi), %r9 ++ sub 24 (%rdi), %r10 ++ ++ or %r8, %rax ++ or %r9, %r10 ++ or %r10, %rax ++ ++ mov 32 (%rsi), %r8 ++ mov 40 (%rsi), %r9 ++ sub 32 (%rdi), %r8 ++ sub 40 (%rdi), %r9 ++ mov 48 (%rsi), %r10 ++ mov 56 (%rsi), %r11 ++ sub 48 (%rdi), %r10 ++ sub 56 (%rdi), %r11 ++ ++ or %r9, %r8 ++ or %r11, %r10 ++ or %r10, %r8 ++ ++ or %r8, %rax ++ jnz L(memcmp32) ++ ++ prefetcht0 576 (%rsi) ++ prefetcht0 576 (%rdi) ++ ++ mov 64 (%rsi), %rax ++ mov 72 (%rsi), %r8 ++ sub 64 (%rdi), %rax ++ sub 72 (%rdi), %r8 ++ mov 80 (%rsi), %r9 ++ mov 88 (%rsi), %r10 ++ sub 80 (%rdi), %r9 ++ sub 88 (%rdi), %r10 ++ ++ or %r8, %rax ++ or %r9, %r10 ++ or %r10, %rax ++ ++ mov 96 (%rsi), %r8 ++ mov 104 (%rsi), %r9 ++ sub 96 (%rdi), %r8 ++ sub 104 (%rdi), %r9 ++ mov 112 (%rsi), %r10 ++ mov 120 (%rsi), %r11 ++ sub 112 (%rdi), %r10 ++ sub 120 (%rdi), %r11 ++ ++ or %r9, %r8 ++ or %r11, %r10 ++ or %r10, %r8 ++ ++ or %r8, %rax ++ jnz L(memcmp32) ++ ++ sub $128, %rdx ++ dec %rcx ++ ++ lea 128 (%rsi), %rsi ++ lea 128 (%rdi), %rdi ++ ++ jnz L(memcmp128loop) ++ ++L(memcmp128skip): ++ and $127, %edx ++ jnz L(memcmp32) ++ ++ xor %eax, %eax ++ ret ++ ++END (memcmp) ++ ++#undef bcmp ++weak_alias (memcmp, bcmp) +Index: sysdeps/x86_64/strncmp.S +=================================================================== +--- /dev/null ++++ sysdeps/x86_64/strncmp.S +@@ -0,0 +1,15 @@ ++# $Header: /K8_Projects/Glibc/amd64strncpy.S 1 8/29/03 16:37 Emenezes $ ++ ++# (c) 2002 Advanced Micro Devices, Inc. ++# YOUR USE OF THIS CODE IS SUBJECT TO THE TERMS ++# AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC ++# LICENSE FOUND IN THE "README" FILE THAT IS ++# INCLUDED WITH THIS FILE ++ ++#define USE_AS_STRNCMP ++#define strcmp strncmp ++ ++#include "strcmp.S" ++ ++weak_alias (strncmp, __strncmp) ++libc_hidden_builtin_def (strncmp) +Index: sysdeps/x86_64/strcmp.S +=================================================================== +--- sysdeps/x86_64/strcmp.S.orig ++++ sysdeps/x86_64/strcmp.S +@@ -1,45 +1,487 @@ +-/* Highly optimized version for x86-64. +- Copyright (C) 1999, 2000, 2002, 2003, 2005 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Based on i686 version contributed by Ulrich Drepper +- , 1999. +- +- 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 +-#include "asm-syntax.h" +-#include "bp-sym.h" +-#include "bp-asm.h" ++# $Header: /K8_Projects/Glibc/amd64strcmp.S 10 2/10/04 11:48 Emenezes $ ++ ++# (c) 2002 Advanced Micro Devices, Inc. ++# YOUR USE OF THIS CODE IS SUBJECT TO THE TERMS ++# AND CONDITIONS OF THE GNU LESSER GENERAL PUBLIC ++# LICENSE FOUND IN THE "README" FILE THAT IS ++# INCLUDED WITH THIS FILE ++ ++#include "sysdep.h" ++ ++#define LABEL(s) L##s + + .text +-ENTRY (BP_SYM (strcmp)) +-L(oop): movb (%rdi), %al +- cmpb (%rsi), %al +- jne L(neq) +- incq %rdi +- incq %rsi +- testb %al, %al +- jnz L(oop) +- +- xorl %eax, %eax +- ret +- +-L(neq): movl $1, %eax +- movl $-1, %ecx +- cmovbl %ecx, %eax +- ret +-END (BP_SYM (strcmp)) ++ ++ENTRY (strcmp) # (const char *, const char *) ++ ++ xor %ecx, %ecx ++ ++#ifdef USE_AS_STRNCMP // (const char *, const char *, size_t) ++ mov %r14, -8 (%rsp) ++ mov %rdx, %r14 ++ ++ test %rdx, %rdx ++ mov %edx, %eax ++ jz .LABEL(exitz) ++#endif ++ ++.LABEL(aligntry): ++ mov %rsi, %r8 # align by "source" ++ and $8 - 1, %r8 # between 0 and 8 characters compared ++ jz .LABEL(alignafter) ++ ++.LABEL(align): ++ sub $8, %r8 ++ ++ .p2align 4 ++ ++.LABEL(alignloop): ++ mov (%rsi, %rcx), %al ++ mov (%rdi, %rcx), %dl ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .LABEL(exitafter) ++#endif ++ ++ cmp %dl, %al # check if same character ++ jne .LABEL(exitafter) ++ test %al, %al # check if character a NUL ++ jz .LABEL(exitafter) ++ ++ inc %ecx ++ ++ inc %r8 ++ jnz .LABEL(alignloop) ++ ++ .p2align 4 ++ ++.LABEL(alignafter): ++ ++ mov %r15, -32 (%rsp) ++ mov %rbp, -24 (%rsp) ++ mov %rbx, -16 (%rsp) ++ ++.LABEL(pagealigntry): # page align by "destination" ++ mov $4096, %r15d # page size is 4096 ++ lea (%rdi, %rcx), %ebp ++ and $4095, %ebp # page mask ++ sub %r15d, %ebp ++ ++.LABEL(64): # 64-byte ++ mov $0xfefefefefefefeff, %rbx # magic number ++ ++ .p2align 4 ++ ++.LABEL(64loop): ++ add $64, %ebp # check if "destination" crosses a page unevenly ++ jle .LABEL(64gobble) ++ ++ sub %r15d, %ebp ++ lea 64 (%rcx), %r8 ++ ++ .p2align 4 ++ ++.LABEL(64nibble): ++ mov (%rsi, %rcx), %al ++ mov (%rdi, %rcx), %dl ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .exit ++#endif ++ ++ cmp %dl, %al # check if same character ++ jne .exit ++ test %al, %al # check if character a NUL ++ jz .exit ++ ++ inc %ecx ++ ++ cmp %ecx, %r8d ++ ja .LABEL(64nibble) ++ ++ .p2align 4 ++ ++.LABEL(64gobble): ++ mov (%rsi, %rcx), %rax ++ mov (%rdi, %rcx), %rdx ++ ++#ifdef USE_AS_STRNCMP ++ sub $8, %r14 ++ jl .LABEL(tail) ++#endif ++ ++ mov %rbx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ mov %rbx, %r9 ++ add %rdx, %r9 ++ sbb %r11, %r11 ++ ++ xor %rax, %r8 ++ or %rbx, %r8 ++ sub %r10, %r8 ++ jnz .LABEL(tail) ++ ++ xor %rdx, %r9 ++ or %rbx, %r9 ++ sub %r11, %r9 ++ jnz .LABEL(tail) ++ ++ cmp %rdx, %rax ++ jne .LABEL(tail) ++ ++ mov 8 (%rsi, %rcx), %rax ++ mov 8 (%rdi, %rcx), %rdx ++ add $8, %ecx ++ ++#ifdef USE_AS_STRNCMP ++ sub $8, %r14 ++ jl .LABEL(tail) ++#endif ++ ++ mov %rbx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ mov %rbx, %r9 ++ add %rdx, %r9 ++ sbb %r11, %r11 ++ ++ xor %rax, %r8 ++ or %rbx, %r8 ++ sub %r10, %r8 ++ jnz .LABEL(tail) ++ ++ xor %rdx, %r9 ++ or %rbx, %r9 ++ sub %r11, %r9 ++ jnz .LABEL(tail) ++ ++ cmp %rdx, %rax ++ jne .LABEL(tail) ++ ++ mov 8 (%rsi, %rcx), %rax ++ mov 8 (%rdi, %rcx), %rdx ++ add $8, %ecx ++ ++#ifdef USE_AS_STRNCMP ++ sub $8, %r14 ++ jl .LABEL(tail) ++#endif ++ ++ mov %rbx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ mov %rbx, %r9 ++ add %rdx, %r9 ++ sbb %r11, %r11 ++ ++ xor %rax, %r8 ++ or %rbx, %r8 ++ sub %r10, %r8 ++ jnz .LABEL(tail) ++ ++ xor %rdx, %r9 ++ or %rbx, %r9 ++ sub %r11, %r9 ++ jnz .LABEL(tail) ++ ++ cmp %rdx, %rax ++ jne .LABEL(tail) ++ ++ mov 8 (%rsi, %rcx), %rax ++ mov 8 (%rdi, %rcx), %rdx ++ add $8, %ecx ++ ++#ifdef USE_AS_STRNCMP ++ sub $8, %r14 ++ jl .LABEL(tail) ++#endif ++ ++ mov %rbx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ mov %rbx, %r9 ++ add %rdx, %r9 ++ sbb %r11, %r11 ++ ++ xor %rax, %r8 ++ or %rbx, %r8 ++ sub %r10, %r8 ++ jnz .LABEL(tail) ++ ++ xor %rdx, %r9 ++ or %rbx, %r9 ++ sub %r11, %r9 ++ jnz .LABEL(tail) ++ ++ cmp %rdx, %rax ++ jne .LABEL(tail) ++ ++ mov 8 (%rsi, %rcx), %rax ++ mov 8 (%rdi, %rcx), %rdx ++ add $8, %ecx ++ ++#ifdef USE_AS_STRNCMP ++ sub $8, %r14 ++ jl .LABEL(tail) ++#endif ++ ++ mov %rbx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ mov %rbx, %r9 ++ add %rdx, %r9 ++ sbb %r11, %r11 ++ ++ xor %rax, %r8 ++ or %rbx, %r8 ++ sub %r10, %r8 ++ jnz .LABEL(tail) ++ ++ xor %rdx, %r9 ++ or %rbx, %r9 ++ sub %r11, %r9 ++ jnz .LABEL(tail) ++ ++ cmp %rdx, %rax ++ jne .LABEL(tail) ++ ++ mov 8 (%rsi, %rcx), %rax ++ mov 8 (%rdi, %rcx), %rdx ++ add $8, %ecx ++ ++#ifdef USE_AS_STRNCMP ++ sub $8, %r14 ++ jl .LABEL(tail) ++#endif ++ ++ mov %rbx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ mov %rbx, %r9 ++ add %rdx, %r9 ++ sbb %r11, %r11 ++ ++ xor %rax, %r8 ++ or %rbx, %r8 ++ sub %r10, %r8 ++ jnz .LABEL(tail) ++ ++ xor %rdx, %r9 ++ or %rbx, %r9 ++ sub %r11, %r9 ++ jnz .LABEL(tail) ++ ++ cmp %rdx, %rax ++ jne .LABEL(tail) ++ ++ mov 8 (%rsi, %rcx), %rax ++ mov 8 (%rdi, %rcx), %rdx ++ add $8, %ecx ++ ++#ifdef USE_AS_STRNCMP ++ sub $8, %r14 ++ jl .LABEL(tail) ++#endif ++ ++ mov %rbx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ mov %rbx, %r9 ++ add %rdx, %r9 ++ sbb %r11, %r11 ++ ++ xor %rax, %r8 ++ or %rbx, %r8 ++ sub %r10, %r8 ++ jnz .LABEL(tail) ++ ++ xor %rdx, %r9 ++ or %rbx, %r9 ++ sub %r11, %r9 ++ jnz .LABEL(tail) ++ ++ cmp %rdx, %rax ++ jne .LABEL(tail) ++ ++ mov 8 (%rsi, %rcx), %rax ++ mov 8 (%rdi, %rcx), %rdx ++ add $8, %ecx ++ ++#ifdef USE_AS_STRNCMP ++ sub $8, %r14 ++ jl .LABEL(tail) ++#endif ++ ++ mov %rbx, %r8 ++ add %rax, %r8 ++ sbb %r10, %r10 ++ ++ mov %rbx, %r9 ++ add %rdx, %r9 ++ sbb %r11, %r11 ++ ++ xor %rax, %r8 ++ or %rbx, %r8 ++ sub %r10, %r8 ++ jnz .LABEL(tail) ++ ++ xor %rdx, %r9 ++ or %rbx, %r9 ++ sub %r11, %r9 ++ jnz .LABEL(tail) ++ ++ cmp %rdx, %rax ++ jne .LABEL(tail) ++ ++ add $8, %ecx ++ ++ jmp .LABEL(64loop) ++ ++.LABEL(64after): ++ ++.LABEL(tailtry): ++# mov (%rsi, %rcx), %rax ++# mov (%rdi, %rcx), %rdx ++# add $8, %rcx ++ ++.LABEL(tail): # byte tail ++#ifdef USE_AS_STRNCMP ++ add $7, %r14 ++#endif ++ ++ cmp %dl, %al # check if same character ++ jne .exit ++ test %al, %al # check if character a NUL ++ jz .exit ++ ++ shr $8, %rax ++ shr $8, %rdx ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .exit ++#endif ++ ++ cmp %dl, %al ++ jne .exit ++ test %al, %al ++ jz .exit ++ ++ shr $8, %rax ++ shr $8, %rdx ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .exit ++#endif ++ ++ cmp %dl, %al ++ jne .exit ++ test %al, %al ++ jz .exit ++ ++ shr $8, %rax ++ shr $8, %rdx ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .exit ++#endif ++ ++ cmp %dl, %al ++ jne .exit ++ test %al, %al ++ jz .exit ++ ++ shr $8, %rax ++ shr $8, %rdx ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .exit ++#endif ++ ++ cmp %dl, %al ++ jne .exit ++ test %al, %al ++ jz .exit ++ ++ shr $8, %eax ++ shr $8, %edx ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .exit ++#endif ++ ++ cmp %dl, %al ++ jne .exit ++ test %al, %al ++ jz .exit ++ ++ shr $8, %eax ++ shr $8, %edx ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .exit ++#endif ++ ++ cmp %dl, %al ++ jne .exit ++ test %al, %al ++ jz .exit ++ ++ shr $8, %eax ++ shr $8, %edx ++ ++#ifdef USE_AS_STRNCMP ++ dec %r14 ++ jl .exit ++#endif ++ ++ cmp %dl, %al ++ jne .exit ++# test %al, %al ++# jz .exit ++ ++ .p2align 4,, 15 ++ ++.LABEL(tailafter): ++ ++.exit: ++ mov -32 (%rsp), %r15 ++ mov -24 (%rsp), %rbp ++ mov -16 (%rsp), %rbx ++ ++ .p2align 4,, 3 ++ ++.LABEL(exitafter): ++#ifdef USE_AS_STRNCMP ++ test %r14, %r14 ++ cmovl %edx, %eax ++#endif ++ ++ movzx %al, %eax ++ movzx %dl, %edx ++ sub %eax, %edx ++ xchg %edx, %eax ++ ++#ifdef USE_AS_STRNCMP ++.LABEL(exitz): ++ mov -8 (%rsp), %r14 ++#endif ++ ret ++ ++END (strcmp) + libc_hidden_builtin_def (strcmp) +Index: sysdeps/x86_64/memcpy.S +=================================================================== +--- sysdeps/x86_64/memcpy.S.orig ++++ sysdeps/x86_64/memcpy.S +@@ -39,7 +39,7 @@ + + .text + +-#if defined PIC && !defined NOT_IN_libc ++#if defined PIC && !defined NOT_IN_libc && !defined USE_AS_BCOPY + ENTRY (__memcpy_chk) + + cmpq %rdx, %rcx diff --git a/glibc-2.3.3-execstack.diff b/glibc-2.3.3-execstack.diff new file mode 100644 index 0000000..16436db --- /dev/null +++ b/glibc-2.3.3-execstack.diff @@ -0,0 +1,45 @@ +--- locale/programs/3level.h ++++ locale/programs/3level.h 2004/09/26 06:58:48 +@@ -204,6 +204,42 @@ + } + } + } ++ ++/* GCC ATM seems to do a poor job with pointers to nested functions passed ++ to inlined functions. Help it a little bit with this hack. */ ++#define wchead_table_iterate(tp, fn) \ ++do \ ++ { \ ++ struct wchead_table *t = (tp); \ ++ uint32_t index1; \ ++ for (index1 = 0; index1 < t->level1_size; index1++) \ ++ { \ ++ uint32_t lookup1 = t->level1[index1]; \ ++ if (lookup1 != ((uint32_t) ~0)) \ ++ { \ ++ uint32_t lookup1_shifted = lookup1 << t->q; \ ++ uint32_t index2; \ ++ for (index2 = 0; index2 < (1 << t->q); index2++) \ ++ { \ ++ uint32_t lookup2 = t->level2[index2 + lookup1_shifted]; \ ++ if (lookup2 != ((uint32_t) ~0)) \ ++ { \ ++ uint32_t lookup2_shifted = lookup2 << t->p; \ ++ uint32_t index3; \ ++ for (index3 = 0; index3 < (1 << t->p); index3++) \ ++ { \ ++ struct element_t *lookup3 \ ++ = t->level3[index3 + lookup2_shifted]; \ ++ if (lookup3 != NULL) \ ++ fn ((((index1 << t->q) + index2) << t->p) + index3, \ ++ lookup3); \ ++ } \ ++ } \ ++ } \ ++ } \ ++ } \ ++ } while (0) ++ + #endif + + #ifndef NO_FINALIZE diff --git a/glibc-2.3.3-nscd-db-path.diff b/glibc-2.3.3-nscd-db-path.diff new file mode 100644 index 0000000..4ce88be --- /dev/null +++ b/glibc-2.3.3-nscd-db-path.diff @@ -0,0 +1,21 @@ +2004-12-09 Thorsten Kukuk + + * nscd/nscd.h: Move persistent storage back to /var/run/nscd + +--- nscd/nscd.h ++++ nscd/nscd.h 2004/12/09 13:17:35 +@@ -87,10 +87,10 @@ + + + /* Paths of the file for the persistent storage. */ +-#define _PATH_NSCD_PASSWD_DB "/var/db/nscd/passwd" +-#define _PATH_NSCD_GROUP_DB "/var/db/nscd/group" +-#define _PATH_NSCD_HOSTS_DB "/var/db/nscd/hosts" +-#define _PATH_NSCD_SERVICES_DB "/var/db/nscd/services" ++#define _PATH_NSCD_PASSWD_DB "/var/run/nscd/passwd" ++#define _PATH_NSCD_GROUP_DB "/var/run/nscd/group" ++#define _PATH_NSCD_HOSTS_DB "/var/run/nscd/hosts" ++#define _PATH_NSCD_SERVICES_DB "/var/run/nscd/services" + + /* Path used when not using persistent storage. */ + #define _PATH_NSCD_XYZ_DB_TMP "/var/run/nscd/dbXXXXXX" diff --git a/glibc-2.3.4-gb18030-big5hkscs.diff.bz2 b/glibc-2.3.4-gb18030-big5hkscs.diff.bz2 new file mode 100644 index 0000000..818e0b9 --- /dev/null +++ b/glibc-2.3.4-gb18030-big5hkscs.diff.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:901fe715360fd55d2d83ceab113bacca58a2b9cba3673d80b184760976236ffd +size 1036487 diff --git a/glibc-2.3.5-nscd-zeronegtimeout.diff b/glibc-2.3.5-nscd-zeronegtimeout.diff new file mode 100644 index 0000000..744c1b7 --- /dev/null +++ b/glibc-2.3.5-nscd-zeronegtimeout.diff @@ -0,0 +1,111 @@ +Index: nscd/aicache.c +=================================================================== +--- nscd/aicache.c.orig ++++ nscd/aicache.c +@@ -515,10 +515,15 @@ next_nip: + if (fd != -1) + TEMP_FAILURE_RETRY (send (fd, ¬found, total, MSG_NOSIGNAL)); + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- IDX_result_data); + /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ if (db->negtimeout == 0) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ dataset = NULL; ++ } ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, IDX_result_data)) == NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +Index: nscd/grpcache.c +=================================================================== +--- nscd/grpcache.c.orig ++++ nscd/grpcache.c +@@ -113,10 +113,14 @@ cache_addgr (struct database_dyn *db, in + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- IDX_result_data); + /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ if (db->negtimeout == 0) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, IDX_result_data)) == NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +Index: nscd/hstcache.c +=================================================================== +--- nscd/hstcache.c.orig ++++ nscd/hstcache.c +@@ -119,10 +119,14 @@ cache_addhst (struct database_dyn *db, i + MSG_NOSIGNAL)) != total) + all_written = false; + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- IDX_result_data); + /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ if (db->negtimeout == 0) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, IDX_result_data)) == NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +Index: nscd/initgrcache.c +=================================================================== +--- nscd/initgrcache.c.orig ++++ nscd/initgrcache.c +@@ -197,10 +197,14 @@ addinitgroupsX (struct database_dyn *db, + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- IDX_result_data); + /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ if (db->negtimeout == 0) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, IDX_result_data)) == NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +Index: nscd/pwdcache.c +=================================================================== +--- nscd/pwdcache.c.orig ++++ nscd/pwdcache.c +@@ -120,10 +120,14 @@ cache_addpw (struct database_dyn *db, in + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- IDX_result_data); + /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ if (db->negtimeout == 0) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, IDX_result_data)) == NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; diff --git a/glibc-2.3.90-bindresvport.blacklist.diff b/glibc-2.3.90-bindresvport.blacklist.diff new file mode 100644 index 0000000..3e8a581 --- /dev/null +++ b/glibc-2.3.90-bindresvport.blacklist.diff @@ -0,0 +1,150 @@ +--- sunrpc/bindrsvprt.c ++++ sunrpc/bindrsvprt.c 2005/11/23 13:36:23 +@@ -30,28 +30,108 @@ + * Copyright (c) 1987 by Sun Microsystems, Inc. + */ + ++#include ++#include + #include ++#include + #include + #include + #include + #include + #include + ++#define STARTPORT 600 ++#define LOWPORT 512 ++#define ENDPORT (IPPORT_RESERVED - 1) ++#define NPORTS (ENDPORT - STARTPORT + 1) ++ ++/* ++ * Read the file /etc/rpc.blacklisted, so that we don't bind ++ * to this ports. ++ */ ++ ++static int blacklist_read; ++static int *list; ++static int list_size = 0; ++ ++static void ++load_blacklist (void) ++{ ++ FILE *fp; ++ char *buf = NULL; ++ size_t buflen = 0; ++ int size = 0, ptr = 0; ++ ++ blacklist_read = 1; ++ ++ fp = fopen ("/etc/bindresvport.blacklist", "r"); ++ if (NULL == fp) ++ return; ++ ++ while (!feof (fp)) ++ { ++ unsigned long port; ++ char *tmp, *cp; ++ ssize_t n = __getline (&buf, &buflen, fp); ++ if (n < 1) ++ break; ++ ++ cp = buf; ++ tmp = strchr (cp, '#'); /* remove comments */ ++ if (tmp) ++ *tmp = '\0'; ++ while (isspace ((int)*cp)) /* remove spaces and tabs */ ++ ++cp; ++ if (*cp == '\0') /* ignore empty lines */ ++ continue; ++ if (cp[strlen (cp) - 1] == '\n') ++ cp[strlen (cp) - 1] = '\0'; ++ ++ port = strtoul (cp, &tmp, 0); ++ while (isspace(*tmp)) ++ ++tmp; ++ if (*tmp != '\0' || (port == ULONG_MAX && errno == ERANGE)) ++ continue; ++ ++ /* Don't bother with out-of-range ports */ ++ if (port < LOWPORT || port > ENDPORT) ++ continue; ++ ++ if (ptr >= size) ++ { ++ size += 10; ++ list = realloc (list, size * sizeof (int)); ++ if (list == NULL) ++ { ++ free (buf); ++ return; ++ } ++ } ++ ++ list[ptr++] = port; ++ } ++ ++ fclose (fp); ++ ++ if (buf) ++ free (buf); ++ ++ list_size = ptr; ++} ++ + /* + * Bind a socket to a privileged IP port + */ + int + bindresvport (int sd, struct sockaddr_in *sin) + { ++ static short startport = STARTPORT; + static short port; + struct sockaddr_in myaddr; + int i; + +-#define STARTPORT 600 +-#define LOWPORT 512 +-#define ENDPORT (IPPORT_RESERVED - 1) +-#define NPORTS (ENDPORT - STARTPORT + 1) +- static short startport = STARTPORT; ++ if (!blacklist_read) ++ load_blacklist (); + + if (sin == (struct sockaddr_in *) 0) + { +@@ -70,6 +148,7 @@ + port = (__getpid () % NPORTS) + STARTPORT; + } + ++ __set_errno (EADDRINUSE); + /* Initialize to make gcc happy. */ + int res = -1; + +@@ -78,12 +157,22 @@ + again: + for (i = 0; i < nports; ++i) + { +- sin->sin_port = htons (port++); +- if (port > endport) +- port = startport; ++ int j; ++ ++ sin->sin_port = htons (port); ++ ++ /* Check, if this port is not blacklisted. */ ++ for (j = 0; j < list_size; j++) ++ if (port == list[j]) ++ goto try_next_port; ++ + res = __bind (sd, sin, sizeof (struct sockaddr_in)); + if (res >= 0 || errno != EADDRINUSE) + break; ++ ++try_next_port: ++ if (++port > endport) ++ port = startport; + } + + if (i == nports && startport != LOWPORT) diff --git a/glibc-2.3.90-fnmatch.diff b/glibc-2.3.90-fnmatch.diff new file mode 100644 index 0000000..8ada08b --- /dev/null +++ b/glibc-2.3.90-fnmatch.diff @@ -0,0 +1,58 @@ +When fnmatch detects an invalid multibyte character it should fall back to +single byte matching, so that "*" has a chance to match such a string. + +Andreas. + +2005-04-12 Andreas Schwab + + * posix/fnmatch.c (fnmatch): If conversion to wide character + fails fall back to single byte matching. + +Index: posix/fnmatch.c +=================================================================== +--- posix/fnmatch.c.orig 2007-05-18 10:40:34.000000000 +0200 ++++ posix/fnmatch.c 2007-05-18 13:21:47.199478000 +0200 +@@ -327,6 +327,7 @@ + # if HANDLE_MULTIBYTE + if (__builtin_expect (MB_CUR_MAX, 1) != 1) + { ++ const char *orig_pattern = pattern; + mbstate_t ps; + size_t n; + const char *p; +@@ -378,10 +379,8 @@ + wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t)); + n = mbsrtowcs (wstring, &p, n + 1, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- /* Something wrong. +- XXX Do we have to set `errno' to something which mbsrtows hasn't +- already done? */ +- return -1; ++ /* Something wrong. Fall back to single byte matching. */ ++ goto try_singlebyte; + if (p) + memset (&ps, '\0', sizeof (ps)); + } +@@ -389,10 +388,8 @@ + { + n = mbsrtowcs (NULL, &string, 0, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- /* Something wrong. +- XXX Do we have to set `errno' to something which mbsrtows hasn't +- already done? */ +- return -1; ++ /* Something wrong. Fall back to single byte matching. */ ++ goto try_singlebyte; + wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t)); + assert (mbsinit (&ps)); + (void) mbsrtowcs (wstring, &string, n + 1, &ps); +@@ -400,6 +397,9 @@ + + return internal_fnwmatch (wpattern, wstring, wstring + n, + flags & FNM_PERIOD, flags, NULL); ++ ++ try_singlebyte: ++ pattern = orig_pattern; + } + # endif /* mbstate_t and mbsrtowcs or _LIBC. */ + diff --git a/glibc-2.3.90-langpackdir.diff b/glibc-2.3.90-langpackdir.diff new file mode 100644 index 0000000..6231d5a --- /dev/null +++ b/glibc-2.3.90-langpackdir.diff @@ -0,0 +1,62 @@ +Index: intl/loadmsgcat.c +=================================================================== +RCS file: /cvs/glibc/libc/intl/loadmsgcat.c,v +retrieving revision 1.57 +diff -u -p -r1.57 loadmsgcat.c +--- intl/loadmsgcat.c 28 Jul 2007 20:34:43 -0000 1.57 ++++ intl/loadmsgcat.c 31 Aug 2007 15:36:40 -0000 +@@ -806,8 +806,52 @@ _nl_load_domain (domain_file, domainbind + if (domain_file->filename == NULL) + goto out; + +- /* Try to open the addressed file. */ +- fd = open (domain_file->filename, O_RDONLY); ++ /* Replace /locale/ with /usr/share/locale-langpack/ */ ++ const char *langpackdir = "/usr/share/locale-langpack/"; ++ char *filename_langpack = malloc (strlen (domain_file->filename) + ++ strlen (langpackdir)); ++ if (filename_langpack != NULL) ++ { ++ char *p = strstr (domain_file->filename, "/locale/"); ++ if (p != NULL) ++ { ++ strcpy (filename_langpack, langpackdir); ++ strcpy (&filename_langpack[strlen (langpackdir)], ++ (p+8)); ++ if ((fd = open (filename_langpack, O_RDONLY)) == -1) ++ fd = open (domain_file->filename, O_RDONLY); ++ } ++ else ++ /* Try to open the addressed file. */ ++ fd = open (domain_file->filename, O_RDONLY); ++ ++ free (filename_langpack); ++ } ++ else ++ /* Try to open the addressed file. */ ++ fd = open (domain_file->filename, O_RDONLY); ++ ++ if (fd == -1) ++ { ++ /* Use the fallback directory. */ ++ const char *bundle_dir = "/usr/share/locale-bundle/"; ++ char *filename_bundle = malloc (strlen (domain_file->filename) + ++ strlen (bundle_dir)); ++ if (filename_bundle != NULL) ++ { ++ char *p = strstr (domain_file->filename, "/locale/"); ++ if (p != NULL) ++ { ++ strcpy (filename_bundle, bundle_dir); ++ strcpy (&filename_bundle[strlen (bundle_dir)], ++ (p+8)); ++ fd = open (filename_bundle, O_RDONLY); ++ } ++ ++ free (filename_bundle); ++ } ++ } ++ + if (fd == -1) + goto out; + diff --git a/glibc-2.3.90-ld.so-madvise.diff b/glibc-2.3.90-ld.so-madvise.diff new file mode 100644 index 0000000..9f661e9 --- /dev/null +++ b/glibc-2.3.90-ld.so-madvise.diff @@ -0,0 +1,76 @@ +Index: elf/dl-load.c +=================================================================== +--- elf/dl-load.c.orig ++++ elf/dl-load.c +@@ -1219,6 +1219,9 @@ cannot allocate TLS data structures for + goto call_lose_errno; + } + ++ if (GLRO(dl_madvise)) ++ posix_fadvise (fd, c->mapoff, maplength, POSIX_FADV_WILLNEED); ++ + l->l_map_end = l->l_map_start + maplength; + l->l_addr = l->l_map_start - c->mapstart; + +Index: elf/dl-support.c +=================================================================== +--- elf/dl-support.c.orig ++++ elf/dl-support.c +@@ -41,6 +41,7 @@ size_t _dl_platformlen; + + int _dl_debug_mask; + int _dl_lazy; ++int _dl_madvise; + ElfW(Addr) _dl_use_load_bias = -2; + int _dl_dynamic_weak; + +@@ -240,6 +241,8 @@ _dl_non_dynamic_init (void) + + _dl_lazy = *(getenv ("LD_BIND_NOW") ?: "") == '\0'; + ++ _dl_madvise = *(getenv ("LD_NOMADVISE") ?: "") == '\0'; ++ + _dl_bind_not = *(getenv ("LD_BIND_NOT") ?: "") != '\0'; + + _dl_dynamic_weak = *(getenv ("LD_DYNAMIC_WEAK") ?: "") == '\0'; +Index: elf/rtld.c +=================================================================== +--- elf/rtld.c.orig ++++ elf/rtld.c +@@ -152,6 +152,7 @@ struct rtld_global_ro _rtld_global_ro at + ._dl_lazy = 1, + ._dl_fpu_control = _FPU_DEFAULT, + ._dl_pointer_guard = 1, ++ ._dl_madvise = 1, + + /* Function pointers. */ + ._dl_debug_printf = _dl_debug_printf, +@@ -2619,6 +2620,14 @@ process_envvars (enum mode *modep) + break; + + case 9: ++ /* Test whether we should not advise the kernel ++ about memory usage. */ ++ if (memcmp (envline, "NOMADVISE", 9) == 0) ++ { ++ GLRO(dl_madvise) = envline[10] == '\0'; ++ break; ++ } ++ + /* Test whether we want to see the content of the auxiliary + array passed up from the kernel. */ + if (!INTUSE(__libc_enable_secure) +Index: sysdeps/generic/ldsodefs.h +=================================================================== +--- sysdeps/generic/ldsodefs.h.orig ++++ sysdeps/generic/ldsodefs.h +@@ -567,6 +567,9 @@ struct rtld_global_ro + /* Do we do lazy relocations? */ + EXTERN int _dl_lazy; + ++ /* Should we advise kernel about memory usage? */ ++ EXTERN int _dl_madvise; ++ + /* Nonzero if runtime lookups should not update the .got/.plt. */ + EXTERN int _dl_bind_not; + diff --git a/glibc-2.3.90-noversion.diff b/glibc-2.3.90-noversion.diff new file mode 100644 index 0000000..f4cedd4 --- /dev/null +++ b/glibc-2.3.90-noversion.diff @@ -0,0 +1,56 @@ +--- elf/rtld.c ++++ elf/rtld.c 2005/04/12 10:05:38 +@@ -1672,6 +1672,53 @@ + } + } + ++#if defined(__i386__) ++ /* ++ * Modifications by Red Hat Software ++ * ++ * Deal with the broken binaries from the non-versioned ages of glibc. ++ * If a binary does not have version information enabled, we assume that ++ * it is a glibc 2.0 binary and we load a compatibility library to try to ++ * overcome binary incompatibilities. ++ * Blame: gafton@redhat.com ++ */ ++#define LIB_NOVERSION "/lib/obsolete/noversion/libNoVersion.so.1" ++ ++ if (__builtin_expect (main_map->l_info[DT_NUM + DT_THISPROCNUM ++ + DT_VERSIONTAGIDX (DT_VERNEED)] ++ == NULL, 0) ++ && (main_map->l_info[DT_DEBUG] ++ || !(GLRO(dl_debug_mask) & DL_DEBUG_PRELINK))) ++ { ++ struct stat test_st; ++ int test_fd; ++ int can_load; ++ ++ HP_TIMING_NOW (start); ++ ++ can_load = 1; ++ test_fd = __open (LIB_NOVERSION, O_RDONLY); ++ if (test_fd < 0) { ++ can_load = 0; ++ } else { ++ if (__fxstat (_STAT_VER, test_fd, &test_st) < 0 || test_st.st_size == 0) { ++ can_load = 0; ++ } ++ } ++ ++ if (test_fd >= 0) /* open did no fail.. */ ++ __close(test_fd); /* avoid fd leaks */ ++ ++ if (can_load != 0) ++ npreloads += do_preload (LIB_NOVERSION, main_map, ++ "nonversioned binary"); ++ ++ HP_TIMING_NOW (stop); ++ HP_TIMING_DIFF (diff, start, stop); ++ HP_TIMING_ACCUM_NT (load_time, diff); ++ } ++#endif ++ + if (__builtin_expect (*first_preload != NULL, 0)) + { + /* Set up PRELOADS with a vector of the preloaded libraries. */ diff --git a/glibc-2.3.locales.diff.bz2 b/glibc-2.3.locales.diff.bz2 new file mode 100644 index 0000000..710a1d4 --- /dev/null +++ b/glibc-2.3.locales.diff.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b02688b3e712aac40c8ef77b2ef2e2996abe86350d1827458571ba2cbeeed08 +size 330830 diff --git a/glibc-2.4-china.diff b/glibc-2.4-china.diff new file mode 100644 index 0000000..ef7f0c9 --- /dev/null +++ b/glibc-2.4-china.diff @@ -0,0 +1,29 @@ +--- localedata/locales/zh_TW ++++ localedata/locales/zh_TW 2006/04/24 09:55:16 +@@ -1,7 +1,7 @@ + comment_char % + escape_char / + % +-% Chinese language locale for Taiwan R.O.C. ++% Chinese language locale for Taiwan + % charmap: BIG5-CP950 + % + % Original Author: +@@ -17,7 +17,7 @@ + % Reference: http://wwwold.dkuug.dk/JTC1/SC22/WG20/docs/n690.pdf + + LC_IDENTIFICATION +-title "Chinese locale for Taiwan R.O.C." ++title "Chinese locale for Taiwan" + source "" + address "" + contact "" +@@ -25,7 +25,7 @@ + tel "" + fax "" + language "Chinese" +-territory "Taiwan R.O.C." ++territory "Taiwan" + revision "0.2" + date "2000-08-02" + % diff --git a/glibc-2.4.90-mdns-resolver.diff b/glibc-2.4.90-mdns-resolver.diff new file mode 100644 index 0000000..106d9b5 --- /dev/null +++ b/glibc-2.4.90-mdns-resolver.diff @@ -0,0 +1,456 @@ +--- resolv/res_hconf.c ++++ resolv/res_hconf.c 2006/06/06 16:08:34 +@@ -58,6 +58,7 @@ + #define ENV_TRIM_ADD "RESOLV_ADD_TRIM_DOMAINS" + #define ENV_MULTI "RESOLV_MULTI" + #define ENV_REORDER "RESOLV_REORDER" ++#define ENV_MDNS "RESOLV_MDNS" + + enum parse_cbs + { +@@ -80,7 +81,8 @@ + {"multi", CB_arg_bool, HCONF_FLAG_MULTI}, + {"nospoof", CB_arg_bool, HCONF_FLAG_SPOOF}, + {"spoofalert", CB_arg_bool, HCONF_FLAG_SPOOFALERT}, +- {"reorder", CB_arg_bool, HCONF_FLAG_REORDER} ++ {"reorder", CB_arg_bool, HCONF_FLAG_REORDER}, ++ {"mdns", CB_arg_bool, HCONF_FLAG_MDNS} + }; + + /* Structure containing the state. */ +@@ -304,6 +306,9 @@ + + memset (&_res_hconf, '\0', sizeof (_res_hconf)); + ++ /* Default for mdns is "on". */ ++ _res_hconf.flags |= HCONF_FLAG_MDNS; ++ + hconf_name = getenv (ENV_HOSTCONF); + if (hconf_name == NULL) + hconf_name = _PATH_HOSTCONF; +@@ -346,6 +351,10 @@ + arg_trimdomain_list (ENV_TRIM_OVERR, 1, envval); + } + ++ envval = getenv (ENV_MDNS); ++ if (envval) ++ arg_bool (ENV_MDNS, 1, envval, HCONF_FLAG_MDNS); ++ + _res_hconf.initialized = 1; + } + +--- resolv/res_hconf.h ++++ resolv/res_hconf.h 2006/06/06 16:06:46 +@@ -37,6 +37,7 @@ + # define HCONF_FLAG_SPOOFALERT (1 << 2) /* syslog warning of spoofed */ + # define HCONF_FLAG_REORDER (1 << 3) /* list best address first */ + # define HCONF_FLAG_MULTI (1 << 4) /* see comments for gethtbyname() */ ++# define HCONF_FLAG_MDNS (1 << 5) /* Disable MDNS support */ + }; + extern struct hconf _res_hconf; + +--- resolv/res_query.c ++++ resolv/res_query.c 2006/06/06 16:06:46 +@@ -83,6 +83,8 @@ + #include + #include + ++#include "res_hconf.h" ++ + /* Options. Leave them on. */ + /* #undef DEBUG */ + +@@ -286,6 +288,13 @@ + *domain && !done; + domain++) { + ++ if ((_res_hconf.flags & HCONF_FLAG_MDNS) != 0) { ++ /* don't add "local" domain if query contains a dot */ ++ if (dots && (!__strcasecmp(*domain, "local") || ++ !__strcasecmp(*domain, "local."))) ++ continue; ++ } ++ + if (domain[0][0] == '\0' || + (domain[0][0] == '.' && domain[0][1] == '\0')) + root_on_list++; +--- resolv/res_send.c ++++ resolv/res_send.c 2006/06/06 16:06:46 +@@ -85,6 +85,9 @@ + #include + #include + #include ++#if defined(_LIBC) && defined(linux) ++#include ++#endif + + #include + #include +@@ -96,6 +99,8 @@ + #include + #include + ++#include "res_hconf.h" ++ + #if PACKETSZ > 65536 + #define MAXPACKET PACKETSZ + #else +@@ -180,6 +185,9 @@ + static int send_dg(res_state, const u_char *, int, + u_char **, int *, int *, int, + int *, int *, u_char **); ++static int send_dg_mdns(res_state, const u_char *, int, ++ u_char **, int *, int *, struct sockaddr_in6 *, ++ int *, int *, u_char **); + #ifdef DEBUG + static void Aerror(const res_state, FILE *, const char *, int, + const struct sockaddr *); +@@ -337,6 +345,35 @@ + u_char *ans, int anssiz, u_char **ansp) + { + int gotsomewhere, terrno, try, v_circuit, resplen, ns, n; ++ int usemdns; ++ HEADER *qhp = (HEADER *) buf; ++ ++ usemdns = 0; ++ if ((_res_hconf.flags & HCONF_FLAG_MDNS) != 0 && ++ qhp->qr == 0 && qhp->opcode == QUERY && qhp->qdcount == htons(1)) { ++ /* got one simple query */ ++ const u_char *bp, *be; ++ be = buf + buflen; ++ for (bp = buf + NS_HFIXEDSZ; bp < be; ) ++ if ((*bp & NS_CMPRSFLGS) != 0) ++ break; ++ else if (*bp) { ++ if (*bp == 5 && !strncasecmp(bp, "\005local\000", 7)) { ++ usemdns = 1; ++ break; ++ } ++ if (*bp == 3 && !strncasecmp(bp, "\003254\003169\007in-addr\004arpa\000", 22)) { ++ usemdns = 1; ++ break; ++ } ++ if (*bp == 1 && !strncasecmp(bp, "\0010\0018\001e\001f\003ip6\004arpa\000", 18)) { ++ usemdns = 2; ++ break; ++ } ++ bp += *bp + 1; ++ } else ++ break; ++ } + + if (statp->nscount == 0) { + __set_errno (ESRCH); +@@ -470,9 +507,24 @@ + * Send request, RETRY times, or until successful. + */ + for (try = 0; try < statp->retry; try++) { +- for (ns = 0; ns < MAXNS; ns++) ++ for (ns = 0; ns < (usemdns ? 1 : MAXNS); ns++) + { + struct sockaddr_in6 *nsap = EXT(statp).nsaddrs[ns]; ++ if (usemdns == 1) { ++ static struct sockaddr_in mdns4; ++ mdns4.sin_family = AF_INET; ++ mdns4.sin_port = htons(5353); ++ mdns4.sin_addr.s_addr = htonl(0xe00000fb); ++ nsap = (struct sockaddr_in6 *)&mdns4; ++ } ++ if (usemdns == 2) { ++ static struct sockaddr_in6 mdns6; ++ mdns6.sin6_family = AF_INET6; ++ mdns6.sin6_port = htons(5353); ++ mdns6.sin6_addr.s6_addr32[0] = htonl(0xff020000); ++ mdns6.sin6_addr.s6_addr32[3] = htonl(0x000000fb); ++ nsap = &mdns6; ++ } + + if (nsap == NULL) + goto next_ns; +@@ -530,8 +582,11 @@ + resplen = n; + } else { + /* Use datagrams. */ +- n = send_dg(statp, buf, buflen, &ans, &anssiz, &terrno, +- ns, &v_circuit, &gotsomewhere, ansp); ++ if (usemdns) ++ n = send_dg_mdns(statp, buf, buflen, &ans, &anssiz, &terrno, nsap, &v_circuit, &gotsomewhere, ansp); ++ else ++ n = send_dg(statp, buf, buflen, &ans, &anssiz, &terrno, ++ ns, &v_circuit, &gotsomewhere, ansp); + if (n < 0) + return (-1); + if (n == 0) +@@ -598,8 +653,15 @@ + if (!v_circuit) { + if (!gotsomewhere) + __set_errno (ECONNREFUSED); /* no nameservers found */ +- else ++ else if (!usemdns) { + __set_errno (ETIMEDOUT); /* no answer obtained */ ++ } else { ++ /* treat timeout as host not found */ ++ HEADER *anhp = (HEADER *) ans; ++ memset(ans, 0, HFIXEDSZ); ++ anhp->rcode = NXDOMAIN; ++ return HFIXEDSZ; ++ } + } else + __set_errno (terrno); + return (-1); +@@ -1045,6 +1107,255 @@ + } + } + ++static int ++send_dg_mdns(res_state statp, ++ const u_char *buf, int buflen, u_char **ansp, int *anssizp, ++ int *terrno, struct sockaddr_in6 *nsap, int *v_circuit, int *gotsomewhere, u_char **anscp) ++{ ++ const HEADER *hp = (HEADER *) buf; ++ u_char *ans = *ansp; ++ int anssiz = *anssizp; ++ HEADER *anhp = (HEADER *) ans; ++ struct timespec now, timeout, finish; ++ struct pollfd pfd[32]; ++ int ptimeout; ++ int fromlen, resplen, seconds, n, s; ++ int on = 1; ++ struct msghdr mhdr; ++ struct iovec iov; ++ u_char cmsgbuf[CMSG_SPACE(sizeof(int))]; ++ struct cmsghdr *cmsg; ++ int ttl; ++ struct ifconf ifconf; ++ struct ifreq ifreq[64]; ++ int ifreqn; ++ int i, j; ++ int ifidx[32], ifidxn; ++ struct ip_mreqn mreqn; ++ ++ s = socket(nsap->sin6_family == AF_INET ? PF_INET : PF_INET6, SOCK_DGRAM, 0); ++ if (s < 0) { ++ *terrno = errno; ++ Perror(statp, stderr, "socket(dg)", errno); ++ return (-1); ++ } ++ ifconf.ifc_len = sizeof(ifreq); ++ ifconf.ifc_req = ifreq; ++ ifidxn = 0; ++ if (ioctl(s, SIOCGIFCONF, &ifconf) == 0) { ++ ifreqn = ifconf.ifc_len / sizeof(*ifreq); ++ for (i = 0 ; i < ifreqn; i++) { ++ if (ioctl(s, SIOCGIFFLAGS, ifreq + i)) ++ continue; ++ if (!(ifreq[i].ifr_flags & IFF_MULTICAST)) ++ continue; ++ if (ioctl(s, SIOCGIFINDEX, ifreq + i)) ++ continue; ++ for (j = 0; j < ifidxn; j++) ++ if (ifidx[j] == ifreq[i].ifr_ifindex) ++ break; ++ if (j < ifidxn) ++ continue; ++ ifidx[ifidxn++] = ifreq[i].ifr_ifindex; ++ if (ifidxn == sizeof(ifidx)/sizeof(*ifidx)) ++ break; ++ } ++ } ++ j = 0; ++ for (i = 0; i < (ifidxn ? ifidxn : 1); i++) { ++ if (i) { ++ s = socket(nsap->sin6_family == AF_INET ? PF_INET : PF_INET6, SOCK_DGRAM, 0); ++ if (!s) ++ continue; ++ } ++ if (setsockopt(s, SOL_IP, IP_RECVTTL, &on, sizeof(on))) { ++ *terrno = errno; ++ Perror(statp, stderr, "IP_RECVTTL(dg)", errno); ++ close(s); ++ continue; ++ } ++ if (ifidxn) { ++ memset(&mreqn, 0, sizeof(mreqn)); ++ mreqn.imr_ifindex = ifidx[i]; ++ if (setsockopt(s, SOL_IP, IP_MULTICAST_IF, &mreqn, sizeof(mreqn))) { ++ *terrno = errno; ++ Perror(statp, stderr, "IP_MULTICAST_IF", errno); ++ close(s); ++ continue; ++ } ++ } ++ if (sendto(s, (char*)buf, buflen, 0, ++ (struct sockaddr *)nsap, sizeof *nsap) != buflen) { ++ Aerror(statp, stderr, "sendto", errno, *(struct sockaddr_in *)nsap); ++ close(s); ++ continue; ++ } ++ pfd[j].fd = s; ++ pfd[j].events = POLLIN; ++ j++; ++ } ++ /* ++ * Wait for reply. ++ */ ++ seconds = statp->retrans; ++ if (seconds <= 0) ++ seconds = 1; ++ evNowTime(&now); ++ evConsTime(&timeout, seconds, 0); ++ evAddTime(&finish, &now, &timeout); ++ wait: ++ if (j == 0) { ++ return (0); ++ } ++ ++ /* Convert struct timespec in milliseconds. */ ++ ptimeout = timeout.tv_sec * 1000 + timeout.tv_nsec / 1000000; ++ n = __poll (pfd, j, ptimeout); ++ if (n == 0) { ++ Dprint(statp->options & RES_DEBUG, (stdout, ";; timeout\n")); ++ *gotsomewhere = 1; ++ for (i = 0; i < j; i++) ++ close(pfd[i].fd); ++ return (0); ++ } ++ if (n < 0) { ++ if (errno == EINTR) { ++ evNowTime(&now); ++ if (evCmpTime(finish, now) > 0) { ++ evSubTime(&timeout, &finish, &now); ++ goto wait; ++ } ++ } ++ Perror(statp, stderr, "select", errno); ++ for (i = 0; i < j; i++) ++ close(pfd[i].fd); ++ res_nclose(statp); ++ return (0); ++ } ++ for (i = 0; i < j - 1; i++) ++ if (pfd[i].revents == POLLIN) ++ break; ++ s = pfd[i].fd; ++ __set_errno (0); ++ fromlen = sizeof(struct sockaddr_in6); ++ if (anssiz < MAXPACKET ++ && anscp ++ && (ioctl (s, FIONREAD, &resplen) < 0 ++ || anssiz < resplen)) { ++ ans = malloc (MAXPACKET); ++ if (ans == NULL) ++ ans = *ansp; ++ else { ++ anssiz = MAXPACKET; ++ *anssizp = MAXPACKET; ++ *ansp = ans; ++ *anscp = ans; ++ anhp = (HEADER *) ans; ++ } ++ } ++ iov.iov_base = ans; ++ iov.iov_len = anssiz; ++ mhdr.msg_name = 0; ++ mhdr.msg_namelen = 0; ++ mhdr.msg_iov = &iov; ++ mhdr.msg_iovlen = 1; ++ mhdr.msg_control = cmsgbuf; ++ mhdr.msg_controllen = sizeof(cmsgbuf); ++ mhdr.msg_flags = 0; ++ resplen = recvmsg(s, &mhdr, 0); ++ if (resplen <= 0) { ++ if (errno == EAGAIN) ++ goto wait; ++ Perror(statp, stderr, "recvfrom", errno); ++wait2: ++ close(s); ++ if (i < j - 1) ++ memmove(pfd + i, pfd + i + 1, sizeof(*pfd) * (j - i - 1)); ++ j--; ++ goto wait; ++ } ++ cmsg = CMSG_FIRSTHDR(&mhdr); ++ for (cmsg = CMSG_FIRSTHDR(&mhdr); cmsg; CMSG_NXTHDR(&mhdr, cmsg)) ++ if (cmsg->cmsg_level == SOL_IP && cmsg->cmsg_type == IP_TTL) ++ break; ++ if (!cmsg) { ++ Dprint(statp->options & RES_DEBUG, ++ (stdout, ";; no TTL found\n")); ++ goto wait2; ++ } ++ ttl = *(int *)CMSG_DATA(cmsg); ++ if (ttl != 255) { ++ Dprint(statp->options & RES_DEBUG, ++ (stdout, ";; answer with bad TTL: %d \n", ttl)); ++ goto wait; ++ } ++ *gotsomewhere = 1; ++ if (resplen < HFIXEDSZ) { ++ /* ++ * Undersized message. ++ */ ++ Dprint(statp->options & RES_DEBUG, ++ (stdout, ";; undersized: %d\n", ++ resplen)); ++ *terrno = EMSGSIZE; ++ goto wait; ++ } ++ if (hp->id != anhp->id) { ++ /* ++ * response from old query, ignore it. ++ * XXX - potential security hazard could ++ * be detected here. ++ */ ++ DprintQ((statp->options & RES_DEBUG) || ++ (statp->pfcode & RES_PRF_REPLY), ++ (stdout, ";; old answer:\n"), ++ ans, (resplen > anssiz) ? anssiz : resplen); ++ goto wait; ++ } ++ if (!(statp->options & RES_INSECURE2) && ++ !res_queriesmatch(buf, buf + buflen, ++ ans, ans + anssiz)) { ++ /* ++ * response contains wrong query? ignore it. ++ * XXX - potential security hazard could ++ * be detected here. ++ */ ++ DprintQ((statp->options & RES_DEBUG) || ++ (statp->pfcode & RES_PRF_REPLY), ++ (stdout, ";; wrong query name:\n"), ++ ans, (resplen > anssiz) ? anssiz : resplen); ++ goto wait; ++ } ++ if (anhp->rcode == SERVFAIL || ++ anhp->rcode == NOTIMP || ++ anhp->rcode == REFUSED) { ++ DprintQ(statp->options & RES_DEBUG, ++ (stdout, "server rejected query:\n"), ++ ans, (resplen > anssiz) ? anssiz : resplen); ++ goto wait; ++ } ++ for (i = 0; i < j; i++) ++ close(pfd[i].fd); ++#if 0 ++ if (!(statp->options & RES_IGNTC) && anhp->tc) { ++ /* ++ * To get the rest of answer, ++ * use TCP with same server. ++ */ ++ Dprint(statp->options & RES_DEBUG, ++ (stdout, ";; truncated answer\n")); ++ *v_circuit = 1; ++ res_nclose(statp); ++ return (1); ++ } ++#endif ++ /* ++ * All is well, or the error is fatal. Signal that the ++ * next nameserver ought not be tried. ++ */ ++ return (resplen); ++} ++ + #ifdef DEBUG + static void + Aerror(const res_state statp, FILE *file, const char *string, int error, diff --git a/glibc-2.4.90-no_NO.diff b/glibc-2.4.90-no_NO.diff new file mode 100644 index 0000000..ddac96a --- /dev/null +++ b/glibc-2.4.90-no_NO.diff @@ -0,0 +1,94 @@ +--- intl/locale.alias ++++ intl/locale.alias 2006/06/03 15:26:29 +@@ -58,8 +58,6 @@ + korean.euc ko_KR.eucKR + ko_KR ko_KR.eucKR + lithuanian lt_LT.ISO-8859-13 +-no_NO nb_NO.ISO-8859-1 +-no_NO.ISO-8859-1 nb_NO.ISO-8859-1 + norwegian nb_NO.ISO-8859-1 + nynorsk nn_NO.ISO-8859-1 + polish pl_PL.ISO-8859-2 +--- localedata/locales/no_NO ++++ localedata/locales/no_NO 2006/06/03 15:26:29 +@@ -0,0 +1,69 @@ ++escape_char / ++comment_char % ++ ++% Norwegian language locale for Norway ++% Source: Norsk Standardiseringsforbund ++% Address: University Library, ++% Drammensveien 41, N-9242 Oslo, Norge ++% Contact: Kolbjoern Aamboe ++% Tel: +47 - 22859109 ++% Fax: +47 - 22434497 ++% Email: kolbjorn.aambo@usit.uio.no ++% Language: no ++% Territory: NO ++% Revision: 4.3 ++% Date: 1996-10-15 ++% Application: general ++% Users: general ++% Repertoiremap: mnemonic.ds ++% Charset: ISO-8859-1 ++% Distribution and use is free, also ++% for commercial purposes. ++ ++LC_IDENTIFICATION ++copy "nb_NO" ++END LC_IDENTIFICATION ++ ++LC_COLLATE ++copy "nb_NO" ++END LC_COLLATE ++ ++LC_CTYPE ++copy "nb_NO" ++END LC_CTYPE ++ ++LC_MONETARY ++copy "nb_NO" ++END LC_MONETARY ++ ++LC_NUMERIC ++copy "nb_NO" ++END LC_NUMERIC ++ ++LC_TIME ++copy "nb_NO" ++END LC_TIME ++ ++LC_MESSAGES ++copy "nb_NO" ++END LC_MESSAGES ++ ++LC_PAPER ++copy "nb_NO" ++END LC_PAPER ++ ++LC_TELEPHONE ++copy "nb_NO" ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++copy "nb_NO" ++END LC_MEASUREMENT ++ ++LC_NAME ++copy "nb_NO" ++END LC_NAME ++ ++LC_ADDRESS ++copy "nb_NO" ++END LC_ADDRESS +--- localedata/SUPPORTED ++++ localedata/SUPPORTED 2006/06/03 15:27:01 +@@ -274,6 +274,8 @@ + nl_NL@euro/ISO-8859-15 \ + nn_NO.UTF-8/UTF-8 \ + nn_NO/ISO-8859-1 \ ++no_NO.UTF-8/UTF-8 \ ++no_NO/ISO-8859-1 \ + nr_ZA/UTF-8 \ + nso_ZA/UTF-8 \ + oc_FR.UTF-8/UTF-8 \ diff --git a/glibc-2.4.90-nscd.diff b/glibc-2.4.90-nscd.diff new file mode 100644 index 0000000..115e684 --- /dev/null +++ b/glibc-2.4.90-nscd.diff @@ -0,0 +1,141 @@ +Index: nscd/cache.c +=================================================================== +--- nscd/cache.c.orig ++++ nscd/cache.c +@@ -277,28 +277,31 @@ prune_cache (struct database_dyn *table, + if (table->inotify_descr < 0 && table->check_file && now != LONG_MAX) + { + struct stat64 st; ++ time_t mtime; + +- if (stat64 (table->filename, &st) < 0) ++ mtime = stat64 (table->filename, &st) ? LONG_MAX : st.st_mtime; ++ if (mtime != table->file_mtime) + { +- char buf[128]; +- /* We cannot stat() the file, disable file checking if the +- file does not exist. */ +- dbg_log (_("cannot stat() file `%s': %s"), +- table->filename, strerror_r (errno, buf, sizeof (buf))); +- if (errno == ENOENT) +- table->check_file = 0; ++ /* The file changed. Invalidate all entries. */ ++ now = LONG_MAX; ++ table->file_mtime = mtime; + } +- else ++ if (*table->filename2) + { +- if (st.st_mtime != table->file_mtime) ++ mtime = stat64 (table->filename2, &st) ? LONG_MAX : st.st_mtime; ++ if (mtime != table->file_mtime2) + { + /* The file changed. Invalidate all entries. */ + now = LONG_MAX; +- table->file_mtime = st.st_mtime; ++ table->file_mtime2 = mtime; + } + } + } + ++ /* now == 0 means just check for changed files */ ++ if (now == (time_t)0) ++ return; ++ + /* We run through the table and find values which are not valid anymore. + + Note that for the initial step, finding the entries to be removed, +Index: nscd/connections.c +=================================================================== +--- nscd/connections.c.orig ++++ nscd/connections.c +@@ -118,6 +118,7 @@ struct database_dyn dbs[lastdb] = + .suggested_module = DEFAULT_SUGGESTED_MODULE, + .reset_res = 0, + .filename = "/etc/passwd", ++ .filename2 = "", + .db_filename = _PATH_NSCD_PASSWD_DB, + .disabled_iov = &pwd_iov_disabled, + .postimeout = 3600, +@@ -138,6 +139,7 @@ struct database_dyn dbs[lastdb] = + .suggested_module = DEFAULT_SUGGESTED_MODULE, + .reset_res = 0, + .filename = "/etc/group", ++ .filename2 = "", + .db_filename = _PATH_NSCD_GROUP_DB, + .disabled_iov = &grp_iov_disabled, + .postimeout = 3600, +@@ -158,6 +160,7 @@ struct database_dyn dbs[lastdb] = + .suggested_module = DEFAULT_SUGGESTED_MODULE, + .reset_res = 1, + .filename = "/etc/hosts", ++ .filename2 = "/etc/resolv.conf", + .db_filename = _PATH_NSCD_HOSTS_DB, + .disabled_iov = &hst_iov_disabled, + .postimeout = 3600, +@@ -852,15 +855,9 @@ cannot set socket to close on exec: %s; + /* We need the modification date of the file. */ + struct stat64 st; + +- if (stat64 (dbs[cnt].filename, &st) < 0) +- { +- /* We cannot stat() the file, disable file checking. */ +- dbg_log (_("cannot stat() file `%s': %s"), +- dbs[cnt].filename, strerror (errno)); +- dbs[cnt].check_file = 0; +- } +- else +- dbs[cnt].file_mtime = st.st_mtime; ++ dbs[cnt].file_mtime = stat64 (dbs[cnt].filename, &st) ? LONG_MAX : st.st_mtime; ++ if (*dbs[cnt].filename2) ++ dbs[cnt].file_mtime2 = stat64 (dbs[cnt].filename2, &st) ? LONG_MAX : st.st_mtime; + } + } + +Index: nscd/nscd.conf +=================================================================== +--- nscd/nscd.conf.orig ++++ nscd/nscd.conf +@@ -61,11 +61,11 @@ + auto-propagate group yes + + enable-cache hosts yes +- positive-time-to-live hosts 3600 +- negative-time-to-live hosts 20 ++ positive-time-to-live hosts 600 ++ negative-time-to-live hosts 0 + suggested-size hosts 211 + check-files hosts yes +- persistent hosts yes ++ persistent hosts no + shared hosts yes + max-db-size hosts 33554432 + +Index: nscd/nscd.h +=================================================================== +--- nscd/nscd.h.orig ++++ nscd/nscd.h +@@ -80,8 +80,10 @@ struct database_dyn + int propagate; + int reset_res; + const char filename[16]; ++ const char filename2[17]; + const char *db_filename; + time_t file_mtime; ++ time_t file_mtime2; + size_t suggested_module; + size_t max_db_size; + +Index: nscd/nscd_stat.c +=================================================================== +--- nscd/nscd_stat.c.orig ++++ nscd/nscd_stat.c +@@ -302,7 +302,7 @@ receive_print_stats (void) + data.dbs[i].maxnsearched, + data.dbs[i].rdlockdelayed, + data.dbs[i].wrlockdelayed, +- data.dbs[i].addfailed, check_file, dbnames[i]); ++ data.dbs[i].addfailed, check_file, (strcmp(dbnames[i], "hosts") ? dbnames[i] : "{hosts,resolv.conf}")); + } + + if (selinux_enabled) diff --git a/glibc-2.4.90-revert-only-euro.diff b/glibc-2.4.90-revert-only-euro.diff new file mode 100644 index 0000000..2cddb1a --- /dev/null +++ b/glibc-2.4.90-revert-only-euro.diff @@ -0,0 +1,93 @@ +--- locale/iso-4217.def ++++ locale/iso-4217.def 2006/06/03 15:19:50 +@@ -8,6 +8,7 @@ + * + * !!! The list has to be sorted !!! + */ ++DEFINE_INT_CURR("ADP") /* Andorran Peseta -> EUR */ + DEFINE_INT_CURR("AED") /* United Arab Emirates Dirham */ + DEFINE_INT_CURR("AFN") /* Afghanistan Afgani */ + DEFINE_INT_CURR("ALL") /* Albanian Lek */ +@@ -15,12 +16,14 @@ + DEFINE_INT_CURR("ANG") /* Netherlands Antilles */ + DEFINE_INT_CURR("AOA") /* Angolan Kwanza */ + DEFINE_INT_CURR("ARS") /* Argentine Peso */ ++DEFINE_INT_CURR("ATS") /* Austrian Schilling -> EUR */ + DEFINE_INT_CURR("AUD") /* Australian Dollar */ + DEFINE_INT_CURR("AWG") /* Aruba Guilder */ + DEFINE_INT_CURR("AZM") /* Azerbaijan Manat */ + DEFINE_INT_CURR("BAM") /* Bosnian and Herzegovina Convertible Mark */ + DEFINE_INT_CURR("BBD") /* Barbados Dollar */ + DEFINE_INT_CURR("BDT") /* Bangladesh Taka */ ++DEFINE_INT_CURR("BEF") /* Belgian Franc -> EUR */ + DEFINE_INT_CURR("BGN") /* Bulgarian Lev */ + DEFINE_INT_CURR("BHD") /* Bahraini Dinar */ + DEFINE_INT_CURR("BIF") /* Burundi Franc */ +@@ -45,6 +48,7 @@ + DEFINE_INT_CURR("CVE") /* Cape Verde Escudo */ + DEFINE_INT_CURR("CYP") /* Cypriot Pound */ + DEFINE_INT_CURR("CZK") /* Czech Koruna */ ++DEFINE_INT_CURR("DEM") /* German Mark -> EUR */ + DEFINE_INT_CURR("DJF") /* Djibouti Franc */ + DEFINE_INT_CURR("DKK") /* Danish Krone (Faroe Islands, Greenland) */ + DEFINE_INT_CURR("DOP") /* Dominican Republic */ +@@ -52,16 +56,20 @@ + DEFINE_INT_CURR("EEK") /* Estonian Kroon */ + DEFINE_INT_CURR("EGP") /* Egyptian Pound */ + DEFINE_INT_CURR("ERN") /* Eritrean Nakfa */ ++DEFINE_INT_CURR("ESP") /* Spanish Peseta -> EUR */ + DEFINE_INT_CURR("ETB") /* Ethiopian Birr */ + DEFINE_INT_CURR("EUR") /* European Union Euro */ ++DEFINE_INT_CURR("FIM") /* Finnish Markka -> EUR */ + DEFINE_INT_CURR("FJD") /* Fiji Dollar */ + DEFINE_INT_CURR("FKP") /* Falkland Islands Pound (Malvinas) */ ++DEFINE_INT_CURR("FRF") /* French Franc -> EUR */ + DEFINE_INT_CURR("GBP") /* British Pound */ + DEFINE_INT_CURR("GEL") /* Georgia Lari */ + DEFINE_INT_CURR("GHC") /* Ghana Cedi */ + DEFINE_INT_CURR("GIP") /* Gibraltar Pound */ + DEFINE_INT_CURR("GMD") /* Gambian Dalasi */ + DEFINE_INT_CURR("GNF") /* Guinea Franc */ ++DEFINE_INT_CURR("GRD") /* Greek Drachma -> EUR */ + DEFINE_INT_CURR("GTQ") /* Guatemala Quetzal */ + DEFINE_INT_CURR("GYD") /* Guyana Dollar */ + DEFINE_INT_CURR("HKD") /* Hong Kong Dollar */ +@@ -70,12 +78,14 @@ + DEFINE_INT_CURR("HTG") /* Haiti Gourde */ + DEFINE_INT_CURR("HUF") /* Hungarian Forint */ + DEFINE_INT_CURR("IDR") /* Indonesia Rupiah */ ++DEFINE_INT_CURR("IEP") /* Irish Pound -> EUR */ + DEFINE_INT_CURR("ILS") /* Israeli Shekel */ + DEFINE_INT_CURR("IMP") /* Isle of Man Pounds */ + DEFINE_INT_CURR("INR") /* Indian Rupee (Bhutan) */ + DEFINE_INT_CURR("IQD") /* Iraqi Dinar */ + DEFINE_INT_CURR("IRR") /* Iranian Rial */ + DEFINE_INT_CURR("ISK") /* Iceland Krona */ ++DEFINE_INT_CURR("ITL") /* Italian Lira -> EUR */ + DEFINE_INT_CURR("JEP") /* Jersey Pound */ + DEFINE_INT_CURR("JMD") /* Jamaican Dollar */ + DEFINE_INT_CURR("JOD") /* Jordanian Dinar */ +@@ -95,6 +105,7 @@ + DEFINE_INT_CURR("LRD") /* Liberian Dollar */ + DEFINE_INT_CURR("LSL") /* Lesotho Maloti */ + DEFINE_INT_CURR("LTL") /* Lithuanian Litas */ ++DEFINE_INT_CURR("LUF") /* Luxembourg Franc -> EUR */ + DEFINE_INT_CURR("LVL") /* Latvia Lat */ + DEFINE_INT_CURR("LYD") /* Libyan Arab Jamahiriya Dinar */ + DEFINE_INT_CURR("MAD") /* Moroccan Dirham */ +@@ -115,6 +126,7 @@ + DEFINE_INT_CURR("NAD") /* Namibia Dollar */ + DEFINE_INT_CURR("NGN") /* Nigeria Naira */ + DEFINE_INT_CURR("NIO") /* Nicaragua Cordoba Oro */ ++DEFINE_INT_CURR("NLG") /* Netherlands Guilder -> EUR */ + DEFINE_INT_CURR("NOK") /* Norwegian Krone */ + DEFINE_INT_CURR("NPR") /* Nepalese Rupee */ + DEFINE_INT_CURR("NZD") /* New Zealand Dollar */ +@@ -125,6 +137,7 @@ + DEFINE_INT_CURR("PHP") /* Philippines Peso */ + DEFINE_INT_CURR("PKR") /* Pakistan Rupee */ + DEFINE_INT_CURR("PLN") /* Polish Zloty */ ++DEFINE_INT_CURR("PTE") /* Portugese Escudo -> EUR */ + DEFINE_INT_CURR("PYG") /* Paraguay Guarani */ + DEFINE_INT_CURR("QAR") /* Qatar Rial */ + DEFINE_INT_CURR("ROL") /* Romanian Leu */ diff --git a/glibc-2.5-ppc-llrintl.diff b/glibc-2.5-ppc-llrintl.diff new file mode 100644 index 0000000..08fc47f --- /dev/null +++ b/glibc-2.5-ppc-llrintl.diff @@ -0,0 +1,18 @@ +diff -urN dummy-cpu/powerpc-cpu-v0.05/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S libc25/powerpc-cpu/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S +--- powerpc-cpu-v0.05/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S 2006-04-06 10:50:35.000000000 -0500 ++++ powerpc-cpu/sysdeps/powerpc/powerpc32/powerpc64/fpu/s_llrint.S 2007-03-14 14:55:19.113013712 -0500 +@@ -18,6 +18,7 @@ + 02110-1301 USA. */ + + #include ++#include + + /* long long int[r3, r4] __llrint (double x[fp1]) */ + ENTRY (__llrint) +@@ -41,3 +42,6 @@ + strong_alias (__llrint, __llrintl) + weak_alias (__llrint, llrintl) + #endif ++#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1) ++compat_symbol (libm, __llrint, llrintl, GLIBC_2_1) ++#endif diff --git a/glibc-2.6-configure.diff b/glibc-2.6-configure.diff new file mode 100644 index 0000000..906b29e --- /dev/null +++ b/glibc-2.6-configure.diff @@ -0,0 +1,50 @@ +Index: configure.in +=================================================================== +RCS file: /cvs/glibc/libc/configure.in,v +retrieving revision 1.469 +diff -u -a -p -u -p -a -r1.469 configure.in +--- configure.in 20 Mar 2007 12:11:23 -0000 1.469 ++++ configure.in 13 Jul 2007 13:40:20 -0000 +@@ -1278,7 +1278,7 @@ EOF + fi + fi + fi +- rm -f conftest.[cs] ++ rm -f conftest* + ]) + if test $libc_cv_visibility_attribute != yes; then + AC_MSG_ERROR(compiler support for visibility attribute is required) +@@ -1294,7 +1294,7 @@ EOF + int bar (int x) { return x; } + EOF + libc_cv_broken_visibility_attribute=yes +- if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then ++ if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s >&AS_MESSAGE_LOG_FD); then + changequote(,)dnl + if grep '\.hidden[ _]foo' conftest.s >/dev/null; then + changequote([,])dnl +Index: configure +=================================================================== +RCS file: /cvs/glibc/libc/configure,v +retrieving revision 1.459 +diff -u -a -p -u -p -a -r1.459 configure +--- configure 20 Mar 2007 12:11:23 -0000 1.459 ++++ configure 13 Jul 2007 13:41:41 -0000 +@@ -5371,7 +5371,7 @@ EOF + fi + fi + fi +- rm -f conftest.cs ++ rm -f conftest* + + fi + echo "$as_me:$LINENO: result: $libc_cv_visibility_attribute" >&5 +@@ -5395,7 +5395,7 @@ else + int bar (int x) { return x; } + EOF + libc_cv_broken_visibility_attribute=yes +- if { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s1>&5' ++ if { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s >&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? diff --git a/glibc-2.8-clone.diff b/glibc-2.8-clone.diff new file mode 100644 index 0000000..ed8f017 --- /dev/null +++ b/glibc-2.8-clone.diff @@ -0,0 +1,50 @@ +Index: sysdeps/unix/sysv/linux/x86_64/clone.S +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/x86_64/clone.S,v +retrieving revision 1.7 +diff -u -r1.7 clone.S +--- sysdeps/unix/sysv/linux/x86_64/clone.S 3 Dec 2006 23:12:36 -0000 1.7 ++++ sysdeps/unix/sysv/linux/x86_64/clone.S 25 Jun 2008 11:26:15 -0000 +@@ -89,9 +89,6 @@ + ret + + L(thread_start): +- cfi_startproc; +- /* Clearing frame pointer is insufficient, use CFI. */ +- cfi_undefined (rip); + /* Clear the frame pointer. The ABI suggests this be done, to mark + the outermost frame obviously. */ + xorl %ebp, %ebp +@@ -116,7 +113,6 @@ + /* Call exit with return value from function call. */ + movq %rax, %rdi + call HIDDEN_JUMPTARGET (_exit) +- cfi_endproc; + + cfi_startproc; + PSEUDO_END (BP_SYM (__clone)) +Index: sysdeps/unix/sysv/linux/i386/clone.S +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/i386/clone.S,v +retrieving revision 1.27 +diff -u -r1.27 clone.S +--- sysdeps/unix/sysv/linux/i386/clone.S 3 Dec 2006 23:12:36 -0000 1.27 ++++ sysdeps/unix/sysv/linux/i386/clone.S 25 Jun 2008 11:26:16 -0000 +@@ -120,9 +120,6 @@ + ret + + L(thread_start): +- cfi_startproc; +- /* Clearing frame pointer is insufficient, use CFI. */ +- cfi_undefined (eip); + /* Note: %esi is zero. */ + movl %esi,%ebp /* terminate the stack frame */ + #ifdef RESET_PID +@@ -155,7 +152,6 @@ + jmp L(haspid) + .previous + #endif +- cfi_endproc; + + cfi_startproc + PSEUDO_END (BP_SYM (__clone)) diff --git a/glibc-2.8-dlosinfo.diff b/glibc-2.8-dlosinfo.diff new file mode 100644 index 0000000..de6c06b --- /dev/null +++ b/glibc-2.8-dlosinfo.diff @@ -0,0 +1,14 @@ +Compilation fix + +diff --git a/sysdeps/unix/sysv/linux/dl-osinfo.h b/sysdeps/unix/sysv/linux/dl-osinfo.h +index b13b6cf..8d22a69 100644 +--- sysdeps/unix/sysv/linux/dl-osinfo.h ++++ sysdeps/unix/sysv/linux/dl-osinfo.h +@@ -17,6 +17,7 @@ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + ++#include + #include + #include + #include diff --git a/glibc-2.8-getconf.diff b/glibc-2.8-getconf.diff new file mode 100644 index 0000000..a75a57e --- /dev/null +++ b/glibc-2.8-getconf.diff @@ -0,0 +1,14 @@ +This is required for too noisy rpmlint. + +--- posix/Makefile~ 2007-11-21 05:40:26.234633000 +0100 ++++ posix/Makefile 2007-11-21 05:41:02.043775000 +0100 +@@ -296,8 +296,7 @@ + $(addprefix $(..)./scripts/mkinstalldirs ,\ + $(filter-out $(wildcard $@),$@)) + while read spec; do \ +- ln -f $< $@/$$spec.new || $(INSTALL_PROGRAM) $< $@/$$spec.new; \ +- mv -f $@/$$spec.new $@/$$spec; \ ++ ln -s ../../bin/getconf $@/$$spec; \ + done < $(objpfx)getconf.speclist + + $(objpfx)getconf.speclist: $(objpfx)getconf diff --git a/glibc-2.8-revert-nscleanup.diff b/glibc-2.8-revert-nscleanup.diff new file mode 100644 index 0000000..1f6c319 --- /dev/null +++ b/glibc-2.8-revert-nscleanup.diff @@ -0,0 +1,824 @@ +diff --git a/inet/netinet/in.h b/inet/netinet/in.h +index e3446a9..1366198 100644 +--- inet/netinet/in.h ++++ inet/netinet/in.h +@@ -195,17 +195,13 @@ struct in6_addr + { + union + { +- uint8_t __u6_addr8[16]; +-#if defined __USE_MISC || defined __USE_GNU +- uint16_t __u6_addr16[8]; +- uint32_t __u6_addr32[4]; +-#endif +- } __in6_u; +-#define s6_addr __in6_u.__u6_addr8 +-#if defined __USE_MISC || defined __USE_GNU +-# define s6_addr16 __in6_u.__u6_addr16 +-# define s6_addr32 __in6_u.__u6_addr32 +-#endif ++ uint8_t u6_addr8[16]; ++ uint16_t u6_addr16[8]; ++ uint32_t u6_addr32[4]; ++ } in6_u; ++#define s6_addr in6_u.u6_addr8 ++#define s6_addr16 in6_u.u6_addr16 ++#define s6_addr32 in6_u.u6_addr32 + }; + + extern const struct in6_addr in6addr_any; /* :: */ +@@ -242,7 +238,6 @@ struct sockaddr_in6 + }; + + +-#if defined __USE_MISC || defined __USE_GNU + /* IPv4 multicast request. */ + struct ip_mreq + { +@@ -264,8 +259,6 @@ struct ip_mreq_source + /* IP address of interface. */ + struct in_addr imr_sourceaddr; + }; +-#endif +- + + /* Likewise, for IPv6. */ + struct ipv6_mreq +@@ -278,7 +271,6 @@ struct ipv6_mreq + }; + + +-#if defined __USE_MISC || defined __USE_GNU + /* Multicast group request. */ + struct group_req + { +@@ -345,7 +337,6 @@ struct group_filter + - sizeof (struct sockaddr_storage) \ + + ((numsrc) \ + * sizeof (struct sockaddr_storage))) +-#endif + + + /* Get system-specific definitions. */ +@@ -431,14 +422,12 @@ extern uint16_t htons (uint16_t __hostshort) + && (((__const uint32_t *) (a))[2] == ((__const uint32_t *) (b))[2]) \ + && (((__const uint32_t *) (a))[3] == ((__const uint32_t *) (b))[3])) + +-#if defined __USE_MISC || defined __USE_GNU + /* Bind socket to a privileged IP port. */ + extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __THROW; + + /* The IPv6 version of this function. */ + extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in) + __THROW; +-#endif + + + #define IN6_IS_ADDR_MC_NODELOCAL(a) \ +@@ -461,8 +450,6 @@ extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in) + (IN6_IS_ADDR_MULTICAST(a) \ + && ((((__const uint8_t *) (a))[1] & 0xf) == 0xe)) + +- +-#ifdef __USE_GNU + /* IPv6 packet information. */ + struct in6_pktinfo + { +@@ -478,6 +465,7 @@ struct ip6_mtuinfo + }; + + ++#ifdef __USE_GNU + /* Obsolete hop-by-hop and Destination Options Processing (RFC 2292). */ + extern int inet6_option_space (int __nbytes) + __THROW __attribute_deprecated__; +diff --git a/posix/regex.h b/posix/regex.h +index 2132772..a058e3f 100644 +--- posix/regex.h ++++ posix/regex.h +@@ -43,21 +43,20 @@ typedef unsigned long int active_reg_t; + add or remove a bit, only one other definition need change. */ + typedef unsigned long int reg_syntax_t; + +-#ifdef __USE_GNU + /* If this bit is not set, then \ inside a bracket expression is literal. + If set, then such a \ quotes the following character. */ +-# define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1) ++#define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1) + + /* If this bit is not set, then + and ? are operators, and \+ and \? are + literals. + If set, then \+ and \? are operators and + and ? are literals. */ +-# define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1) ++#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1) + + /* If this bit is set, then character classes are supported. They are: + [:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:], + [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:]. + If not set, then character classes are not supported. */ +-# define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1) ++#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1) + + /* If this bit is set, then ^ and $ are always anchors (outside bracket + expressions, of course). +@@ -71,7 +70,7 @@ typedef unsigned long int reg_syntax_t; + POSIX draft 11.2 says that * etc. in leading positions is undefined. + We already implemented a previous draft which made those constructs + invalid, though, so we haven't changed the code back. */ +-# define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1) ++#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1) + + /* If this bit is set, then special characters are always special + regardless of where they are in the pattern. +@@ -79,71 +78,71 @@ typedef unsigned long int reg_syntax_t; + some contexts; otherwise they are ordinary. Specifically, + * + ? and intervals are only special when not after the beginning, + open-group, or alternation operator. */ +-# define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1) ++#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1) + + /* If this bit is set, then *, +, ?, and { cannot be first in an re or + immediately after an alternation or begin-group operator. */ +-# define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1) ++#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1) + + /* If this bit is set, then . matches newline. + If not set, then it doesn't. */ +-# define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1) ++#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1) + + /* If this bit is set, then . doesn't match NUL. + If not set, then it does. */ +-# define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1) ++#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1) + + /* If this bit is set, nonmatching lists [^...] do not match newline. + If not set, they do. */ +-# define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1) ++#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1) + + /* If this bit is set, either \{...\} or {...} defines an + interval, depending on RE_NO_BK_BRACES. + If not set, \{, \}, {, and } are literals. */ +-# define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) ++#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) + + /* If this bit is set, +, ? and | aren't recognized as operators. + If not set, they are. */ +-# define RE_LIMITED_OPS (RE_INTERVALS << 1) ++#define RE_LIMITED_OPS (RE_INTERVALS << 1) + + /* If this bit is set, newline is an alternation operator. + If not set, newline is literal. */ +-# define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1) ++#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1) + + /* If this bit is set, then `{...}' defines an interval, and \{ and \} + are literals. + If not set, then `\{...\}' defines an interval. */ +-# define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1) ++#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1) + + /* If this bit is set, (...) defines a group, and \( and \) are literals. + If not set, \(...\) defines a group, and ( and ) are literals. */ +-# define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1) ++#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1) + + /* If this bit is set, then \ matches . + If not set, then \ is a back-reference. */ +-# define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1) ++#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1) + + /* If this bit is set, then | is an alternation operator, and \| is literal. + If not set, then \| is an alternation operator, and | is literal. */ +-# define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1) ++#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1) + + /* If this bit is set, then an ending range point collating higher + than the starting range point, as in [z-a], is invalid. + If not set, then when ending range point collates higher than the + starting range point, the range is ignored. */ +-# define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1) ++#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1) + + /* If this bit is set, then an unmatched ) is ordinary. + If not set, then an unmatched ) is invalid. */ +-# define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1) ++#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1) + + /* If this bit is set, succeed as soon as we match the whole pattern, + without further backtracking. */ +-# define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1) ++#define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1) + + /* If this bit is set, do not process the GNU regex operators. + If not set, then the GNU regex operators are recognized. */ +-# define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) ++#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) + + /* If this bit is set, turn on internal regex debugging. + If not set, and debugging was on, turn it off. +@@ -151,30 +150,29 @@ typedef unsigned long int reg_syntax_t; + We define this bit always, so that all that's needed to turn on + debugging is to recompile regex.c; the calling code can always have + this bit set, and it won't affect anything in the normal case. */ +-# define RE_DEBUG (RE_NO_GNU_OPS << 1) ++#define RE_DEBUG (RE_NO_GNU_OPS << 1) + + /* If this bit is set, a syntactically invalid interval is treated as + a string of ordinary characters. For example, the ERE 'a{1' is + treated as 'a\{1'. */ +-# define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) ++#define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) + + /* If this bit is set, then ignore case when matching. + If not set, then case is significant. */ +-# define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) ++#define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) + + /* This bit is used internally like RE_CONTEXT_INDEP_ANCHORS but only + for ^, because it is difficult to scan the regex backwards to find + whether ^ should be special. */ +-# define RE_CARET_ANCHORS_HERE (RE_ICASE << 1) ++#define RE_CARET_ANCHORS_HERE (RE_ICASE << 1) + + /* If this bit is set, then \{ cannot be first in an bre or + immediately after an alternation or begin-group operator. */ +-# define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1) ++#define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1) + + /* If this bit is set, then no_sub will be set to 1 during + re_compile_pattern. */ +-# define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1) +-#endif ++#define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1) + + /* This global variable defines the particular regexp syntax to use (for + some interfaces). When a regexp is compiled, the syntax used is +@@ -182,7 +180,6 @@ typedef unsigned long int reg_syntax_t; + already-compiled regexps. */ + extern reg_syntax_t re_syntax_options; + +-#ifdef __USE_GNU + /* Define combinations of the above bits for the standard possibilities. + (The [[[ comments delimit what gets put into the Texinfo file, so + don't delete them!) */ +@@ -257,12 +254,11 @@ extern reg_syntax_t re_syntax_options; + /* Maximum number of duplicates an interval can allow. Some systems + (erroneously) define this in other header files, but we want our + value, so remove any previous define. */ +-# ifdef RE_DUP_MAX +-# undef RE_DUP_MAX +-# endif +-/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */ +-# define RE_DUP_MAX (0x7fff) ++#ifdef RE_DUP_MAX ++# undef RE_DUP_MAX + #endif ++/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */ ++#define RE_DUP_MAX (0x7fff) + + + /* POSIX `cflags' bits (i.e., information for `regcomp'). */ +@@ -341,16 +337,7 @@ typedef enum + private to the regex routines. */ + + #ifndef RE_TRANSLATE_TYPE +-# define __RE_TRANSLATE_TYPE unsigned char * +-# ifdef __USE_GNU +-# define RE_TRANSLATE_TYPE __RE_TRANSLATE_TYPE +-# endif +-#endif +- +-#ifdef __USE_GNU +-# define __REPB_PREFIX(name) name +-#else +-# define __REPB_PREFIX(name) __##name ++# define RE_TRANSLATE_TYPE unsigned char * + #endif + + struct re_pattern_buffer +@@ -358,27 +345,27 @@ struct re_pattern_buffer + /* Space that holds the compiled pattern. It is declared as + `unsigned char *' because its elements are sometimes used as + array indexes. */ +- unsigned char *__REPB_PREFIX(buffer); ++ unsigned char *buffer; + + /* Number of bytes to which `buffer' points. */ +- unsigned long int __REPB_PREFIX(allocated); ++ unsigned long int allocated; + + /* Number of bytes actually used in `buffer'. */ +- unsigned long int __REPB_PREFIX(used); ++ unsigned long int used; + + /* Syntax setting with which the pattern was compiled. */ +- reg_syntax_t __REPB_PREFIX(syntax); ++ reg_syntax_t syntax; + + /* Pointer to a fastmap, if any, otherwise zero. re_search uses the + fastmap, if there is one, to skip over impossible starting points + for matches. */ +- char *__REPB_PREFIX(fastmap); ++ char *fastmap; + + /* Either a translate table to apply to all characters before + comparing them, or zero for no translation. The translation is + applied to a pattern when it is compiled and to a string when it + is matched. */ +- __RE_TRANSLATE_TYPE __REPB_PREFIX(translate); ++ RE_TRANSLATE_TYPE translate; + + /* Number of subexpressions found by the compiler. */ + size_t re_nsub; +@@ -387,36 +374,34 @@ struct re_pattern_buffer + Well, in truth it's used only in `re_search_2', to see whether or + not we should use the fastmap, so we don't set this absolutely + perfectly; see `re_compile_fastmap' (the `duplicate' case). */ +- unsigned __REPB_PREFIX(can_be_null) : 1; ++ unsigned can_be_null : 1; + + /* If REGS_UNALLOCATED, allocate space in the `regs' structure + for `max (RE_NREGS, re_nsub + 1)' groups. + If REGS_REALLOCATE, reallocate space if necessary. + If REGS_FIXED, use what's there. */ +-#ifdef __USE_GNU +-# define REGS_UNALLOCATED 0 +-# define REGS_REALLOCATE 1 +-# define REGS_FIXED 2 +-#endif +- unsigned __REPB_PREFIX(regs_allocated) : 2; ++#define REGS_UNALLOCATED 0 ++#define REGS_REALLOCATE 1 ++#define REGS_FIXED 2 ++ unsigned regs_allocated : 2; + + /* Set to zero when `regex_compile' compiles a pattern; set to one + by `re_compile_fastmap' if it updates the fastmap. */ +- unsigned __REPB_PREFIX(fastmap_accurate) : 1; ++ unsigned fastmap_accurate : 1; + + /* If set, `re_match_2' does not return information about + subexpressions. */ +- unsigned __REPB_PREFIX(no_sub) : 1; ++ unsigned no_sub : 1; + + /* If set, a beginning-of-line anchor doesn't match at the beginning + of the string. */ +- unsigned __REPB_PREFIX(not_bol) : 1; ++ unsigned not_bol : 1; + + /* Similarly for an end-of-line anchor. */ +- unsigned __REPB_PREFIX(not_eol) : 1; ++ unsigned not_eol : 1; + + /* If true, an anchor at a newline matches. */ +- unsigned __REPB_PREFIX(newline_anchor) : 1; ++ unsigned newline_anchor : 1; + }; + + typedef struct re_pattern_buffer regex_t; +@@ -425,7 +410,6 @@ typedef struct re_pattern_buffer regex_t; + typedef int regoff_t; + + +-#ifdef __USE_GNU + /* This is the structure we store register match data in. See + regex.texinfo for a full description of what registers match. */ + struct re_registers +@@ -439,9 +423,8 @@ struct re_registers + /* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer, + `re_match_2' returns information about at least this many registers + the first time a `regs' structure is passed. */ +-# ifndef RE_NREGS +-# define RE_NREGS 30 +-# endif ++#ifndef RE_NREGS ++# define RE_NREGS 30 + #endif + + +@@ -456,7 +439,6 @@ typedef struct + + /* Declarations for routines. */ + +-#ifdef __USE_GNU + /* Sets the current default syntax to SYNTAX, and return the old syntax. + You can also simply assign to the `re_syntax_options' variable. */ + extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax); +@@ -521,9 +503,8 @@ extern void re_set_registers (struct re_pattern_buffer *__buffer, + struct re_registers *__regs, + unsigned int __num_regs, + regoff_t *__starts, regoff_t *__ends); +-#endif /* Use GNU */ + +-#if defined _REGEX_RE_COMP || (defined _LIBC && defined __USE_BSD) ++#if defined _REGEX_RE_COMP || defined _LIBC + # ifndef _CRAY + /* 4.2 bsd compatibility. */ + extern char *re_comp (const char *); +diff --git a/resolv/netdb.h b/resolv/netdb.h +index a260c48..7c5c9c9 100644 +--- resolv/netdb.h ++++ resolv/netdb.h +@@ -62,6 +62,8 @@ extern int *__h_errno_location (void) __THROW __attribute__ ((__const__)); + + + /* Possible values left in `h_errno'. */ ++#define NETDB_INTERNAL -1 /* See errno. */ ++#define NETDB_SUCCESS 0 /* No problem. */ + #define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found. */ + #define TRY_AGAIN 2 /* Non-Authoritative Host not found, + or SERVERFAIL. */ +@@ -69,11 +71,7 @@ extern int *__h_errno_location (void) __THROW __attribute__ ((__const__)); + NOTIMP. */ + #define NO_DATA 4 /* Valid name, no data record of requested + type. */ +-#if defined __USE_MISC || defined __USE_GNU +-# define NETDB_INTERNAL -1 /* See errno. */ +-# define NETDB_SUCCESS 0 /* No problem. */ +-# define NO_ADDRESS NO_DATA /* No address, look for MX record. */ +-#endif ++#define NO_ADDRESS NO_DATA /* No address, look for MX record. */ + + #ifdef __USE_XOPEN2K + /* Highest reserved Internet port number. */ +@@ -85,14 +83,13 @@ extern int *__h_errno_location (void) __THROW __attribute__ ((__const__)); + # define SCOPE_DELIMITER '%' + #endif + +-#if defined __USE_MISC || defined __USE_GNU + /* Print error indicated by `h_errno' variable on standard error. STR + if non-null is printed before the error string. */ + extern void herror (__const char *__str) __THROW; + + /* Return string associated with error ERR_NUM. */ + extern __const char *hstrerror (int __err_num) __THROW; +-#endif ++ + + + /* Description of data base entry for a single host. */ +@@ -103,9 +100,7 @@ struct hostent + int h_addrtype; /* Host address type. */ + int h_length; /* Length of address. */ + char **h_addr_list; /* List of addresses from name server. */ +-#if defined __USE_MISC || defined __USE_GNU +-# define h_addr h_addr_list[0] /* Address, for backward compatibility.*/ +-#endif ++#define h_addr h_addr_list[0] /* Address, for backward compatibility. */ + }; + + /* Open host data base files and mark them as staying open even after +@@ -595,15 +590,15 @@ struct gaicb + # define EAI_NONAME -2 /* NAME or SERVICE is unknown. */ + # define EAI_AGAIN -3 /* Temporary failure in name resolution. */ + # define EAI_FAIL -4 /* Non-recoverable failure in name res. */ ++# define EAI_NODATA -5 /* No address associated with NAME. */ + # define EAI_FAMILY -6 /* `ai_family' not supported. */ + # define EAI_SOCKTYPE -7 /* `ai_socktype' not supported. */ + # define EAI_SERVICE -8 /* SERVICE not supported for `ai_socktype'. */ ++# define EAI_ADDRFAMILY -9 /* Address family for NAME not supported. */ + # define EAI_MEMORY -10 /* Memory allocation failure. */ + # define EAI_SYSTEM -11 /* System error returned in `errno'. */ + # define EAI_OVERFLOW -12 /* Argument buffer overflow. */ + # ifdef __USE_GNU +-# define EAI_NODATA -5 /* No address associated with NAME. */ +-# define EAI_ADDRFAMILY -9 /* Address family for NAME not supported. */ + # define EAI_INPROGRESS -100 /* Processing request in progress. */ + # define EAI_CANCELED -101 /* Request canceled. */ + # define EAI_NOTCANCELED -102 /* Request not canceled. */ +@@ -612,10 +607,8 @@ struct gaicb + # define EAI_IDN_ENCODE -105 /* IDN encoding failed. */ + # endif + +-# ifdef __USE_MISC +-# define NI_MAXHOST 1025 +-# define NI_MAXSERV 32 +-# endif ++# define NI_MAXHOST 1025 ++# define NI_MAXSERV 32 + + # define NI_NUMERICHOST 1 /* Don't try to look up hostname. */ + # define NI_NUMERICSERV 2 /* Don't convert port number to name. */ +diff --git a/sysdeps/unix/sysv/linux/bits/in.h b/sysdeps/unix/sysv/linux/bits/in.h +index 433c033..6880a2e 100644 +--- sysdeps/unix/sysv/linux/bits/in.h ++++ sysdeps/unix/sysv/linux/bits/in.h +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1991-1999, 2000, 2004, 2008 Free Software Foundation, Inc. ++/* Copyright (C) 1991-1999, 2000, 2004 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 +@@ -43,18 +43,16 @@ + #define IP_ADD_SOURCE_MEMBERSHIP 39 /* ip_mreq_source: join source group */ + #define IP_DROP_SOURCE_MEMBERSHIP 40 /* ip_mreq_source: leave source group */ + #define IP_MSFILTER 41 +-#if defined __USE_MISC || defined __USE_GNU +-# define MCAST_JOIN_GROUP 42 /* group_req: join any-source group */ +-# define MCAST_BLOCK_SOURCE 43 /* group_source_req: block from given group */ +-# define MCAST_UNBLOCK_SOURCE 44 /* group_source_req: unblock from given group*/ +-# define MCAST_LEAVE_GROUP 45 /* group_req: leave any-source group */ +-# define MCAST_JOIN_SOURCE_GROUP 46 /* group_source_req: join source-spec gr */ +-# define MCAST_LEAVE_SOURCE_GROUP 47 /* group_source_req: leave source-spec gr*/ +-# define MCAST_MSFILTER 48 +- +-# define MCAST_EXCLUDE 0 +-# define MCAST_INCLUDE 1 +-#endif ++#define MCAST_JOIN_GROUP 42 /* group_req: join any-source group */ ++#define MCAST_BLOCK_SOURCE 43 /* group_source_req: block from given group */ ++#define MCAST_UNBLOCK_SOURCE 44 /* group_source_req: unblock from given group*/ ++#define MCAST_LEAVE_GROUP 45 /* group_req: leave any-source group */ ++#define MCAST_JOIN_SOURCE_GROUP 46 /* group_source_req: join source-spec gr */ ++#define MCAST_LEAVE_SOURCE_GROUP 47 /* group_source_req: leave source-spec gr*/ ++#define MCAST_MSFILTER 48 ++ ++#define MCAST_EXCLUDE 0 ++#define MCAST_INCLUDE 1 + + #define IP_ROUTER_ALERT 5 /* bool */ + #define IP_PKTINFO 8 /* bool */ +@@ -78,7 +76,6 @@ + #define IP_DEFAULT_MULTICAST_LOOP 1 + #define IP_MAX_MEMBERSHIPS 20 + +-#if defined __USE_MISC || defined __USE_GNU + /* Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS. + The `ip_dst' field is used for the first-hop gateway when using a + source route (this gets put into the header proper). */ +@@ -103,7 +100,6 @@ struct in_pktinfo + struct in_addr ipi_spec_dst; /* Routing destination address */ + struct in_addr ipi_addr; /* Header destination address */ + }; +-#endif + + /* Options for use with `getsockopt' and `setsockopt' at the IPv6 level. + The first word in the comment at the right is the data type used; +diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h +index ceb6013..11bb607 100644 +--- sysdeps/unix/sysv/linux/bits/socket.h ++++ sysdeps/unix/sysv/linux/bits/socket.h +@@ -26,8 +26,10 @@ + #endif + + #define __need_size_t ++#define __need_NULL + #include + ++#include + #include + + /* Type for length arguments in socket calls. */ +@@ -154,7 +156,11 @@ struct sockaddr + + /* Structure large enough to hold any socket address (with the historical + exception of AF_UNIX). We reserve 128 bytes. */ +-#define __ss_aligntype unsigned long int ++#if ULONG_MAX > 0xffffffff ++# define __ss_aligntype __uint64_t ++#else ++# define __ss_aligntype __uint32_t ++#endif + #define _SS_SIZE 128 + #define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_aligntype))) + +@@ -257,7 +263,7 @@ struct cmsghdr + #define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg) + #define CMSG_FIRSTHDR(mhdr) \ + ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \ +- ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0) ++ ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL) + #define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \ + & (size_t) ~(sizeof (size_t) - 1)) + #define CMSG_SPACE(len) (CMSG_ALIGN (len) \ +@@ -301,74 +307,18 @@ enum + #endif + }; + +-#ifdef __USE_GNU + /* User visible structure for SCM_CREDENTIALS message */ ++ + struct ucred + { + pid_t pid; /* PID of sending process. */ + uid_t uid; /* UID of sending process. */ + gid_t gid; /* GID of sending process. */ + }; +-#endif +- +-/* Ugly workaround for unclean kernel headers. */ +-#if !defined __USE_MISC && !defined __USE_GNU +-# ifndef FIOGETOWN +-# define __SYS_SOCKET_H_undef_FIOGETOWN +-# endif +-# ifndef FIOSETOWN +-# define __SYS_SOCKET_H_undef_FIOSETOWN +-# endif +-# ifndef SIOCATMARK +-# define __SYS_SOCKET_H_undef_SIOCATMARK +-# endif +-# ifndef SIOCGPGRP +-# define __SYS_SOCKET_H_undef_SIOCGPGRP +-# endif +-# ifndef SIOCGSTAMP +-# define __SYS_SOCKET_H_undef_SIOCGSTAMP +-# endif +-# ifndef SIOCGSTAMPNS +-# define __SYS_SOCKET_H_undef_SIOCGSTAMPNS +-# endif +-# ifndef SIOCSPGRP +-# define __SYS_SOCKET_H_undef_SIOCSPGRP +-# endif +-#endif + + /* Get socket manipulation related informations from kernel headers. */ + #include + +-#if !defined __USE_MISC && !defined __USE_GNU +-# ifdef __SYS_SOCKET_H_undef_FIOGETOWN +-# undef __SYS_SOCKET_H_undef_FIOGETOWN +-# undef FIOGETOWN +-# endif +-# ifdef __SYS_SOCKET_H_undef_FIOSETOWN +-# undef __SYS_SOCKET_H_undef_FIOSETOWN +-# undef FIOSETOWN +-# endif +-# ifdef __SYS_SOCKET_H_undef_SIOCATMARK +-# undef __SYS_SOCKET_H_undef_SIOCATMARK +-# undef SIOCATMARK +-# endif +-# ifdef __SYS_SOCKET_H_undef_SIOCGPGRP +-# undef __SYS_SOCKET_H_undef_SIOCGPGRP +-# undef SIOCGPGRP +-# endif +-# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMP +-# undef __SYS_SOCKET_H_undef_SIOCGSTAMP +-# undef SIOCGSTAMP +-# endif +-# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMPNS +-# undef __SYS_SOCKET_H_undef_SIOCGSTAMPNS +-# undef SIOCGSTAMPNS +-# endif +-# ifdef __SYS_SOCKET_H_undef_SIOCSPGRP +-# undef __SYS_SOCKET_H_undef_SIOCSPGRP +-# undef SIOCSPGRP +-# endif +-#endif + + /* Structure used to manipulate the SO_LINGER option. */ + struct linger +diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/stat.h b/sysdeps/unix/sysv/linux/x86_64/bits/stat.h +index 286c1a2..add2c8e 100644 +--- sysdeps/unix/sysv/linux/x86_64/bits/stat.h ++++ sysdeps/unix/sysv/linux/x86_64/bits/stat.h +@@ -61,7 +61,7 @@ struct stat + __uid_t st_uid; /* User ID of the file's owner. */ + __gid_t st_gid; /* Group ID of the file's group.*/ + #if __WORDSIZE == 64 +- int __pad0; ++ int pad0; + #endif + __dev_t st_rdev; /* Device number, if device. */ + #if __WORDSIZE == 32 +@@ -129,7 +129,7 @@ struct stat64 + __uid_t st_uid; /* User ID of the file's owner. */ + __gid_t st_gid; /* Group ID of the file's group.*/ + #if __WORDSIZE == 64 +- int __pad0; ++ int pad0; + __dev_t st_rdev; /* Device number, if device. */ + __off_t st_size; /* Size of file, in bytes. */ + #else +diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c +index 9a27efd..c911345 100644 +--- sysdeps/posix/getaddrinfo.c ++++ sysdeps/posix/getaddrinfo.c +@@ -1105,22 +1105,22 @@ static const struct prefixentry *labels; + static const struct prefixentry default_labels[] = + { + /* See RFC 3484 for the details. */ +- { { .__in6_u +- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 } } +- }, 128, 0 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 16, 2 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 96, 3 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } } +- }, 96, 4 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 } } }, ++ 128, 0 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 16, 2 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 96, 3 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } } }, ++ 96, 4 }, + /* The next two entries differ from RFC 3484. We need to treat + IPv6 site-local addresses special because they are never NATed, + unlike site-locale IPv4 addresses. If this would not happen, on +@@ -1128,23 +1128,23 @@ static const struct prefixentry default_labels[] = + sorting would prefer the IPv6 site-local addresses, causing + unnecessary delays when trying to connect to a global IPv6 address + through a site-local IPv6 address. */ +- { { .__in6_u +- = { .__u6_addr8 = { 0xfe, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 10, 5 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 7, 6 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0xfe, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 10, 5 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 7, 6 }, + /* Additional rule for Teredo tunnels. */ +- { { .__in6_u +- = { .__u6_addr8 = { 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 32, 7 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 0, 1 } ++ { { .in6_u ++ = { .u6_addr8 = { 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 32, 7 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 0, 1 } + }; + + +@@ -1155,26 +1155,26 @@ static const struct prefixentry *precedence; + static const struct prefixentry default_precedence[] = + { + /* See RFC 3484 for the details. */ +- { { .__in6_u +- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 } } +- }, 128, 50 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 16, 30 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 96, 20 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } } +- }, 96, 10 }, +- { { .__in6_u +- = { .__u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } +- }, 0, 40 } ++ { { .in6_u ++ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 } } }, ++ 128, 50 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 16, 30 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 96, 20 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 } } }, ++ 96, 10 }, ++ { { .in6_u ++ = { .u6_addr8 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }, ++ 0, 40 } + }; + + diff --git a/glibc-2.9-2008111711.tar.bz2 b/glibc-2.9-2008111711.tar.bz2 new file mode 100644 index 0000000..4d0f2fc --- /dev/null +++ b/glibc-2.9-2008111711.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adabcdd26bd71d7cb15bfc2fbb3efc29ad9d166a2a3f25bed097e14489264de8 +size 15308055 diff --git a/glibc-compiled-binaries.diff b/glibc-compiled-binaries.diff new file mode 100644 index 0000000..95fee92 --- /dev/null +++ b/glibc-compiled-binaries.diff @@ -0,0 +1,129 @@ +--- + config.make.in | 1 + + configure | 16 +++++++++++++++- + configure.in | 1 + + posix/Makefile | 2 +- + sunrpc/Makefile | 2 +- + timezone/Makefile | 2 +- + 6 files changed, 20 insertions(+), 4 deletions(-) + +--- config.make.in ++++ config.make.in +@@ -90,6 +90,7 @@ add-ons = @add_ons@ + add-on-subdirs = @add_on_subdirs@ + sysdeps-add-ons = @sysdeps_add_ons@ + cross-compiling = @cross_compiling@ ++compiled-binaries-can-run-on-buildhost = @compiled_binaries_can_run_on_buildhost@ + force-install = @force_install@ + + # Build tools. +--- configure ++++ configure +@@ -567,6 +567,7 @@ ac_clean_files= + ac_config_libobj_dir=. + LIBOBJS= + cross_compiling=no ++compiled_binaries_can_run_on_buildhost=yes + subdirs= + MFLAGS= + MAKEFLAGS= +@@ -687,6 +688,7 @@ ac_ct_CC + OBJEXT + BUILD_CC + cross_compiling ++compiled_binaries_can_run_on_buildhost + CPP + CXX + CXXFLAGS +@@ -1180,6 +1182,13 @@ do + { (exit 1); exit 1; }; } + done + ++# Check whether --enable-runbinaries was given. ++if test "${enable_runbinaries+set}" = set; then ++ enableval=$enable_runbinaries; compiled_binaries_can_run_on_buildhost=$enableval ++else ++ compiled_binaries_can_run_on_buildhost=yes ++fi ++ + # There might be people who depend on the old broken behavior: `$host' + # used to hold the argument of --host etc. + # FIXME: To remove some day. +@@ -1195,6 +1204,7 @@ if test "x$host_alias" != x; then + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes ++ compiled_binaries_can_run_on_buildhost=no + fi + fi + +@@ -1381,6 +1391,9 @@ Optional Features: + VERSION + --enable-all-warnings enable all useful warnings gcc can issue + ++ --enable-runbinaries the compiled binaries should run on the buildhost because ++ it happens to have a compatible cpu ++ + Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) +@@ -9212,6 +9225,7 @@ ac_ct_CC!$ac_ct_CC$ac_delim + OBJEXT!$OBJEXT$ac_delim + BUILD_CC!$BUILD_CC$ac_delim + cross_compiling!$cross_compiling$ac_delim ++compiled_binaries_can_run_on_buildhost!$compiled_binaries_can_run_on_buildhost$ac_delim + CPP!$CPP$ac_delim + CXX!$CXX$ac_delim + CXXFLAGS!$CXXFLAGS$ac_delim +@@ -9240,7 +9254,7 @@ PERL!$PERL$ac_delim + INSTALL_INFO!$INSTALL_INFO$ac_delim + _ACEOF + +- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then ++ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 98; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +--- configure.in ++++ configure.in +@@ -835,6 +835,7 @@ if test $host != $build; then + AC_CHECK_PROGS(BUILD_CC, gcc cc) + fi + AC_SUBST(cross_compiling) ++AC_SUBST(compiled_binaries_can_run_on_buildhost) + AC_PROG_CPP + # We need the C++ compiler only for testing. + AC_PROG_CXX +--- posix/Makefile ++++ posix/Makefile +@@ -301,7 +301,7 @@ $(inst_libexecdir)/getconf: $(inst_bindi + done < $(objpfx)getconf.speclist + + $(objpfx)getconf.speclist: $(objpfx)getconf +-ifeq (no,$(cross-compiling)) ++ifeq (yes,$(compiled-binaries-can-run-on-buildhost)) + LC_ALL=C GETCONF_DIR=/dev/null \ + $(run-program-prefix) $< _POSIX_V6_WIDTH_RESTRICTED_ENVS > $@.new + else +--- sunrpc/Makefile ++++ sunrpc/Makefile +@@ -98,7 +98,7 @@ otherlibs += $(nssobjdir)/libnss_files.a + $(resolvobjdir)/libresolv.a + endif + +-ifeq (no,$(cross-compiling)) ++ifeq (yes,$(compiled-binaries-can-run-on-buildhost)) + # We can only build this library if we can run the rpcgen we build. + headers += $(rpcsvc:%.x=rpcsvc/%.h) + extra-libs := librpcsvc +--- timezone/Makefile ++++ timezone/Makefile +@@ -69,7 +69,7 @@ installed-posixrules-file := $(firstword + $(addprefix $(inst_zonedir)/, \ + $(posixrules-file))) + +-ifeq ($(cross-compiling),no) ++ifeq (yes,$(compiled-binaries-can-run-on-buildhost)) + # Don't try to install the zoneinfo files since we can't run zic. + install-others = $(addprefix $(inst_zonedir)/,$(zonenames) \ + $(zonenames:%=posix/%) \ diff --git a/glibc-cpusetsize.diff b/glibc-cpusetsize.diff new file mode 100644 index 0000000..0829942 --- /dev/null +++ b/glibc-cpusetsize.diff @@ -0,0 +1,26 @@ +Index: glibc-2.4/bits/sched.h +=================================================================== +--- bits/sched.h 2007-08-22 08:02:57.124247019 -0500 ++++ bits/sched.h 2007-08-22 08:03:36.149061686 -0500 +@@ -38,7 +38,7 @@ struct sched_param + #if defined _SCHED_H && !defined __cpu_set_t_defined + # define __cpu_set_t_defined + /* Size definition for CPU sets. */ +-# define __CPU_SETSIZE 1024 ++# define __CPU_SETSIZE 4096 + # define __NCPUBITS (8 * sizeof (__cpu_mask)) + + /* Type for array elements in 'cpu_set'. */ +Index: glibc-2.4/sysdeps/unix/sysv/linux/bits/sched.h +=================================================================== +--- sysdeps/unix/sysv/linux/bits/sched.h 2006-02-08 13:09:06.000000000 -0600 ++++ sysdeps/unix/sysv/linux/bits/sched.h 2007-08-22 08:04:00.988126075 -0500 +@@ -97,7 +97,7 @@ struct __sched_param + #if defined _SCHED_H && !defined __cpu_set_t_defined + # define __cpu_set_t_defined + /* Size definition for CPU sets. */ +-# define __CPU_SETSIZE 1024 ++# define __CPU_SETSIZE 4096 + # define __NCPUBITS (8 * sizeof (__cpu_mask)) + + /* Type for array elements in 'cpu_set_t'. */ diff --git a/glibc-fix-nscd.diff b/glibc-fix-nscd.diff new file mode 100644 index 0000000..d639f5a --- /dev/null +++ b/glibc-fix-nscd.diff @@ -0,0 +1,49 @@ +diff -urp nscd.mm/cache.c nscd/cache.c +--- nscd.mm/cache.c 2008-10-13 13:09:35.120009000 +0000 ++++ nscd/cache.c 2008-10-13 15:11:17.629844982 +0000 +@@ -300,7 +300,7 @@ prune_cache (struct database_dyn *table, + + /* now == 0 means just check for changed files */ + if (now == (time_t)0) +- return; ++ return 0; + + /* We run through the table and find values which are not valid anymore. + +diff -urp nscd.mm/connections.c nscd/connections.c +--- nscd.mm/connections.c 2008-10-13 13:09:35.120009000 +0000 ++++ nscd/connections.c 2008-10-13 14:55:22.417018210 +0000 +@@ -1816,22 +1816,5 @@ main_loop_poll (void) + /* We have a new incoming connection. Accept the connection. */ + int fd; + +-#ifndef __ASSUME_PACCEPT +- fd = -1; +- if (have_paccept >= 0) +-#endif +- { +-#if 0 +- fd = TEMP_FAILURE_RETRY (paccept (sock, NULL, NULL, NULL, +- SOCK_NONBLOCK)); +-#ifndef __ASSUME_PACCEPT +- if (have_paccept == 0) +- have_paccept = fd != -1 || errno != ENOSYS ? 1 : -1; +-#endif +-#endif +- } +-#ifndef __ASSUME_PACCEPT +- if (have_paccept < 0) +- fd = TEMP_FAILURE_RETRY (accept (sock, NULL, NULL)); +-#endif ++ fd = TEMP_FAILURE_RETRY (accept (sock, NULL, NULL)); + + /* Use the descriptor if we have not reached the limit. */ + if (fd >= 0) +--- sysdeps/unix/sysv/linux/kernel-features.h.mm 2008-08-25 13:02:49.000000000 +0000 ++++ sysdeps/unix/sysv/linux/kernel-features.h 2008-10-13 14:27:31.357847116 +0000 +@@ -509,5 +509,4 @@ + # define __ASSUME_SOCK_CLOEXEC 1 + # define __ASSUME_IN_NONBLOCK 1 + # define __ASSUME_PIPE2 1 +-# define __ASSUME_PACCEPT 1 + #endif diff --git a/glibc-getgroups-fortify.diff b/glibc-getgroups-fortify.diff new file mode 100644 index 0000000..554c859 --- /dev/null +++ b/glibc-getgroups-fortify.diff @@ -0,0 +1,14 @@ +Index: glibc/posix/bits/unistd.h +=================================================================== +--- posix/bits/unistd.h 2007-10-16 14:58:46.000000000 +0200 ++++ posix/bits/unistd.h 2008-09-18 11:38:25.000000000 +0200 +@@ -270,7 +270,8 @@ __NTH (getgroups (int __size, __gid_t __ + if (!__builtin_constant_p (__size)) + return __getgroups_chk (__size, __list, __bos (__list)); + +- if (__size * sizeof (__gid_t) > __bos (__list)) ++ if (__size > 0 ++ && __size * sizeof (__gid_t) > __bos (__list)) + return __getgroups_chk_warn (__size, __list, __bos (__list)); + } + return __getgroups_alias (__size, __list); diff --git a/glibc-ldscript.diff b/glibc-ldscript.diff new file mode 100644 index 0000000..2134050 --- /dev/null +++ b/glibc-ldscript.diff @@ -0,0 +1,11 @@ +--- elf/Makefile 03 Nov 2008 15:06:11 +0100 1.330 ++++ elf/Makefile 21 Jan 2009 19:25:29 +0100 +@@ -304,7 +304,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld + $(LDFLAGS-rtld) -Wl,-z,defs -Wl,--verbose 2>&1 | \ + LC_ALL=C \ + sed -e '/^=========/,/^=========/!d;/^=========/d' \ +- -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \ ++ -e 's/\. = .* + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \ + > $@.lds + $(LINK.o) -nostdlib -nostartfiles -shared -o $@ \ + $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now)) \ diff --git a/glibc-mtfsf.diff b/glibc-mtfsf.diff new file mode 100644 index 0000000..a2cdb1f --- /dev/null +++ b/glibc-mtfsf.diff @@ -0,0 +1,159 @@ +--- sysdeps/powerpc/fpu/fenv_libc.h.~1.5.~ 2008-11-17 10:44:10.000000000 +0100 ++++ sysdeps/powerpc/fpu/fenv_libc.h 2009-01-22 14:23:37.000000000 +0100 +@@ -39,7 +39,7 @@ libm_hidden_proto (__fe_nomask_env) + do { \ + double d = (env); \ + if(GLRO(dl_hwcap) & PPC_FEATURE_HAS_DFP) \ +- asm volatile ("mtfsf 0xff,%0,1,0" : : "f" (d)); \ ++ asm volatile (".machine push; .machine power6; mtfsf 0xff,%0,1,0; .machine pop" : : "f" (d)); \ + else \ + asm volatile ("mtfsf 0xff,%0" : : "f" (d)); \ + } while(0) +@@ -53,7 +53,7 @@ libm_hidden_proto (__fe_nomask_env) + #define relax_fenv_state() \ + do { \ + if(GLRO(dl_hwcap) & PPC_FEATURE_HAS_DFP) \ +- asm ("mtfsfi 7,0,1"); \ ++ asm (".machine push; .machine power6; mtfsfi 7,0,1; .machine pop"); \ + asm ("mtfsfi 7,0"); \ + } while(0) + +--- sysdeps/powerpc/fpu/tst-setcontext-fpscr.c.~1.1.~ 2008-11-17 02:34:02.000000000 +0100 ++++ sysdeps/powerpc/fpu/tst-setcontext-fpscr.c 2009-01-22 14:24:33.000000000 +0100 +@@ -109,7 +109,7 @@ typedef unsigned int si_fpscr_t __attrib + tmp __attribute__ ((__aligned__(8))); \ + tmp.fpscr = __fpscr; \ + /* Set the entire 64-bit FPSCR. */ \ +- __asm__ ("lfd%U0 0,%0; mtfsf 255,0,1,0" : : "m" (tmp.d) : "fr0"); \ ++ __asm__ ("lfd%U0 0,%0; .machine push; .machine power6; mtfsf 255,0,1,0; .machine pop" : : "m" (tmp.d) : "fr0"); \ + } + + # define _GET_SI_FPSCR(__fpscr) ({ \ +--- sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S.~1.4.~ 2008-11-17 10:44:18.000000000 +0100 ++++ sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S 2009-01-22 15:42:24.000000000 +0100 +@@ -202,13 +202,19 @@ ENTRY(__CONTEXT_FUNC_NAME) + lfd fp0,_UC_FREGS+(0*8)(r31) + # ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp31,1,0 ++ .machine pop + # else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r7,PPC_FEATURE_HAS_DFP + beq 7f + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp31,1,0 ++ .machine pop + b 8f + /* Continue to operate on the FPSCR as if it were 32-bits. */ + 7: mtfsf 0xff,fp31 +--- sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S.~1.3.~ 2008-11-17 10:44:18.000000000 +0100 ++++ sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S 2009-01-22 15:42:37.000000000 +0100 +@@ -428,13 +428,19 @@ ENTRY(__CONTEXT_FUNC_NAME) + lfd fp0,_UC_FREGS+(0*8)(r31) + # ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp31,1,0 ++ .machine pop + # else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r7,PPC_FEATURE_HAS_DFP + beq 7f + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp31,1,0 ++ .machine pop + b 8f + /* Continue to operate on the FPSCR as if it were 32-bits. */ + 7: mtfsf 0xff,fp31 +--- sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S.~1.14.~ 2008-11-17 10:44:18.000000000 +0100 ++++ sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S 2009-01-22 15:43:05.000000000 +0100 +@@ -84,13 +84,19 @@ ENTRY(__novec_setcontext) + + # ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp0,1,0 ++ .machine pop + # else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r5,PPC_FEATURE_HAS_DFP + beq 5f + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp0,1,0 ++ .machine pop + b 6f + /* Continue to operate on the FPSCR as if it were 32-bits. */ + 5: +@@ -372,13 +378,19 @@ L(has_no_vec): + + # ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp0,1,0 ++ .machine pop + # else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r5,PPC_FEATURE_HAS_DFP + beq 7f + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp0,1,0 ++ .machine pop + b 8f + /* Continue to operate on the FPSCR as if it were 32-bits. */ + 7: +--- sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S.~1.17.~ 2008-11-17 10:44:18.000000000 +0100 ++++ sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S 2009-01-22 15:43:26.000000000 +0100 +@@ -178,13 +178,19 @@ ENTRY(__novec_swapcontext) + lfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r31) + # ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp0,1,0 ++ .machine pop + # else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r8,PPC_FEATURE_HAS_DFP + beq 5f + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp0,1,0 ++ .machine pop + b 6f + /* Continue to operate on the FPSCR as if it were 32-bits. */ + 5: +@@ -670,13 +676,19 @@ L(has_no_vec2): + lfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r31) + # ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp0,1,0 ++ .machine pop + # else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r8,PPC_FEATURE_HAS_DFP + beq 7f + /* Use the extended four-operand version of the mtfsf insn. */ ++ .machine push ++ .machine power6 + mtfsf 0xff,fp0,1,0 ++ .machine pop + b 8f + /* Continue to operate on the FPSCR as if it were 32-bits. */ + 7: diff --git a/glibc-no-unwind-tables.diff b/glibc-no-unwind-tables.diff new file mode 100644 index 0000000..7962e55 --- /dev/null +++ b/glibc-no-unwind-tables.diff @@ -0,0 +1,39 @@ +initfini.c is compiled to assembly and further processed and split, +we can't have unwind tables therein. + +Index: csu/Makefile +=================================================================== +--- csu/Makefile.orig ++++ csu/Makefile +@@ -93,7 +93,7 @@ omit-deps += $(crtstuff) + $(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h + $(compile.S) -g0 $(ASFLAGS-.os) -o $@ + +-CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) ++CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) -fno-unwind-tables -fno-asynchronous-unwind-tables + + vpath initfini.c $(sysdirs) + +Index: nptl/Makefile +=================================================================== +--- nptl/Makefile.orig ++++ nptl/Makefile +@@ -339,7 +339,7 @@ endif + extra-objs += $(crti-objs) $(crtn-objs) + omit-deps += crti crtn + +-CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) ++CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) -fno-unwind-tables -fno-asynchronous-unwind-tables + endif + + CFLAGS-flockfile.c = -D_IO_MTSAFE_IO +Index: nptl/sysdeps/unix/sysv/linux/x86_64/Makefile +=================================================================== +--- nptl/sysdeps/unix/sysv/linux/x86_64/Makefile.orig ++++ nptl/sysdeps/unix/sysv/linux/x86_64/Makefile +@@ -1,4 +1,4 @@ + ifeq ($(subdir),nptl) + CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions \ +- -fno-asynchronous-unwind-tables $(fno-unit-at-a-time) ++ -fno-unwind-tables -fno-asynchronous-unwind-tables $(fno-unit-at-a-time) + endif diff --git a/glibc-nptl-2.4-nofixsyscallnr.diff b/glibc-nptl-2.4-nofixsyscallnr.diff new file mode 100644 index 0000000..3b20885 --- /dev/null +++ b/glibc-nptl-2.4-nofixsyscallnr.diff @@ -0,0 +1,18 @@ +--- nptl/pthreadP.h ++++ nptl/pthreadP.h 2006/04/07 09:38:46 +@@ -510,15 +510,4 @@ + # define PTHREAD_STATIC_FN_REQUIRE(name) __asm (".globl " #name); + #endif + +- +-#ifndef __NR_set_robust_list +-/* XXX For the time being... Once we can rely on the kernel headers +- having the definition remove these lines. */ +-# if defined __i386__ +-# define __NR_set_robust_list 311 +-# elif defined __x86_64__ +-# define __NR_set_robust_list 273 +-# endif +-#endif +- + #endif /* pthreadP.h */ diff --git a/glibc-nptl-2.9-2008111711.tar.bz2 b/glibc-nptl-2.9-2008111711.tar.bz2 new file mode 100644 index 0000000..c45a964 --- /dev/null +++ b/glibc-nptl-2.9-2008111711.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfe11b1779ec269e02d4951c7364581ec5113ea3b17eed20341e5cf4cf57ff10 +size 330166 diff --git a/glibc-nss-deepbind.diff b/glibc-nss-deepbind.diff new file mode 100644 index 0000000..eae0472 --- /dev/null +++ b/glibc-nss-deepbind.diff @@ -0,0 +1,22 @@ +Use DEEPBIND to load the nss modules. Helps thunderbird (linked against its +own version of the ldap libs) when using nss_ldap (linked against system +libldap) leading to crashes due to incompatibilities. + +See https://bugzilla.novell.com/show_bug.cgi?id=157078 and +http://sourceware.org/bugzilla/show_bug.cgi?id=6610 + +Index: nss/nsswitch.c +=================================================================== +--- nss/nsswitch.c.orig ++++ nss/nsswitch.c +@@ -358,7 +358,9 @@ __nss_lookup_function (service_user *ni, + ".so"), + __nss_shlib_revision); + +- ni->library->lib_handle = __libc_dlopen (shlib_name); ++ ni->library->lib_handle ++ = __libc_dlopen_mode (shlib_name, ++ RTLD_LAZY | __RTLD_DLOPEN | RTLD_DEEPBIND); + if (ni->library->lib_handle == NULL) + { + /* Failed to load the library. */ diff --git a/glibc-selinux.diff b/glibc-selinux.diff new file mode 100644 index 0000000..c7e22b7 --- /dev/null +++ b/glibc-selinux.diff @@ -0,0 +1,22 @@ +--- Makerules ++++ Makerules +@@ -349,7 +349,7 @@ + endif # sysd-sorted-done + + # Generate .dT files as we compile. +-compile-mkdep-flags = -MD -MP -MF $@.dt -MT $@ ++compile-mkdep-flags = -MD -MP -MF $@.dt -MT $@ -I/usr/include + compile-command.S = $(compile.S) $(OUTPUT_OPTION) $(compile-mkdep-flags) + compile-command.s = $(COMPILE.s) $< $(OUTPUT_OPTION) $(compile-mkdep-flags) + compile-command.c = $(compile.c) $(OUTPUT_OPTION) $(compile-mkdep-flags) +--- nscd/Makefile ++++ nscd/Makefile +@@ -124,6 +124,8 @@ + CFLAGS-getsrvbypt_r.c += $(nscd-cflags) + CFLAGS-res_hconf.c += $(nscd-cflags) + ++LDFLAGS = -lselinux ++ + ifeq (yesyes,$(have-fpie)$(build-shared)) + relro-LDFLAGS += -Wl,-z,now + diff --git a/glibc-suse-note.diff b/glibc-suse-note.diff new file mode 100644 index 0000000..b039ddd --- /dev/null +++ b/glibc-suse-note.diff @@ -0,0 +1,127 @@ + +This patch creates a SuSE .note section with version number 10.2 + +================================================================================ +Index: Makerules +=================================================================== +--- Makerules.orig ++++ Makerules +@@ -489,6 +489,7 @@ $(common-objpfx)shlib.lds: $(common-objp + -e '/^=========/,/^=========/!d;/^=========/d' \ + $(if $(filter yes,$(have-hash-style)), \ + -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \ ++ -e 's/^.*\.gnu\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } .note.SuSE : { *(.note.SuSE) } &/' \ + -e '/^[ ]*\.hash[ ]*:.*$$/{h;d;}' \ + -e '/DATA_SEGMENT_ALIGN/{H;g}' \ + , \ +@@ -514,7 +515,7 @@ common-generated += shlib.lds + + define build-shlib + $(build-shlib-helper) -o $@ -T $(common-objpfx)shlib.lds \ +- $(csu-objpfx)abi-note.o $(build-shlib-objlist) ++ $(csu-objpfx)abi-note.o $(csu-objpfx)suse-note.o $(build-shlib-objlist) + endef + else + ifneq (,$(findstring aix,$(config-os))) +@@ -556,7 +557,7 @@ ifeq (yes,$(elf)) + # not for shared objects + define build-module + $(build-module-helper) -o $@ -T $(common-objpfx)shlib.lds \ +- $(csu-objpfx)abi-note.o $(build-module-objlist) ++ $(csu-objpfx)abi-note.o $(csu-objpfx)suse-note.o $(build-module-objlist) + endef + define build-module-asneeded + $(build-module-helper) -o $@ -T $(common-objpfx)shlib.lds \ +Index: csu/Makefile +=================================================================== +--- csu/Makefile.orig ++++ csu/Makefile +@@ -125,7 +125,7 @@ $(objpfx)defs.h: $(objpfx)initfini.s + endif + + ifeq (yes,$(elf)) +-extra-objs += abi-note.o init.o ++extra-objs += abi-note.o suse-note.o init.o + asm-CPPFLAGS += -I$(objpfx). + endif + +@@ -143,12 +143,15 @@ ifeq (yes,$(elf)) + # We link the ELF startfile along with a SHT_NOTE section indicating + # the kernel ABI the binaries linked with this library will require. + $(objpfx)$(start-installed-name): $(objpfx)start.o $(objpfx)abi-note.o \ ++ $(objpfx)suse-note.o \ + $(objpfx)init.o + $(link-relocatable) + $(objpfx)S$(start-installed-name): $(objpfx)start.os $(objpfx)abi-note.o \ ++ $(objpfx)suse-note.o \ + $(objpfx)init.o + $(link-relocatable) + $(objpfx)b$(start-installed-name): $(objpfx)start.ob $(objpfx)abi-note.ob \ ++ $(objpfx)suse-note.ob \ + $(objpfx)init.ob + $(link-relocatable) + else +Index: csu/suse-note.S +=================================================================== +--- /dev/null ++++ csu/suse-note.S +@@ -0,0 +1,59 @@ ++/* Special .init and .fini section support. ++ Copyright (C) 1997, 2001, 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. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ 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. */ ++ ++/* Look in abi-note.S for the definition of an ELF note section. */ ++ ++#include ++ ++#define PROD_TYPE_BOX 0 ++#define PROD_TYPE_SLES 1 ++ ++#define NOTE_VERSION 1 ++#define PROD_TYPE PROD_TYPE_BOX ++#define PROD_MAJOR 10 ++#define PROD_MINOR 2 ++ ++/* The linker (GNU ld 2.8 and later) recognizes an allocated section whose ++ name begins with `.note' and creates a PT_NOTE program header entry ++ pointing at it. */ ++ ++ .section ".note.SuSE", "a" ++ .p2align 2 ++ .long 1f - 0f /* name length */ ++ .long 3f - 2f /* data length */ ++ .long 0x45537553 /* note type ("SuSE" in little endian) */ ++0: .asciz "SuSE" /* vendor name */ ++1: ++ .p2align 2 ++2: /* Data */ ++ .byte NOTE_VERSION /* Version of following data */ ++ .byte PROD_TYPE /* product type (box, sles, nld, whatever) */ ++ .byte PROD_MAJOR /* product version */ ++ .byte PROD_MINOR /* product minor version */ ++3: ++ .p2align 2 /* pad out section */ diff --git a/glibc-version.diff b/glibc-version.diff new file mode 100644 index 0000000..6f9945f --- /dev/null +++ b/glibc-version.diff @@ -0,0 +1,27 @@ +--- csu/version.c ++++ csu/version.c 2003/06/25 07:01:44 +@@ -24,11 +24,12 @@ + static const char __libc_version[] = VERSION; + + static const char banner[] = +-"GNU C Library "RELEASE" release version "VERSION", by Roland McGrath et al.\n\ ++"GNU C Library "RELEASE" release version "VERSION" ("CVSDATE"), by Roland McGrath et al.\n\ + Copyright (C) 2008 Free Software Foundation, Inc.\n\ + This is free software; see the source for copying conditions.\n\ + There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ + PARTICULAR PURPOSE.\n\ ++Configured for "CONFHOST".\n\ + Compiled by GNU CC version "__VERSION__".\n" + #include "version-info.h" + #ifdef GLIBC_OLDEST_ABI +@@ -37,6 +38,9 @@ + #ifdef USE_TLS + "Thread-local storage support included.\n" + #endif ++#ifdef FLOATING_STACKS ++"pthread library is compiled with floating stack support enabled.\n" ++#endif + "For bug reporting instructions, please see:\n\ + .\n"; + + diff --git a/glibc.changes b/glibc.changes new file mode 100644 index 0000000..a80652d --- /dev/null +++ b/glibc.changes @@ -0,0 +1,4822 @@ +------------------------------------------------------------------- +Wed Feb 18 16:18:19 CET 2009 - adrian@suse.de + +- Build i686 glibc src rpm as nosrc to get both versions on the + media [bnc#474338] + +------------------------------------------------------------------- +Thu Jan 22 14:10:25 CET 2009 - schwab@suse.de + +- Fix use of mtfsf insn. + +------------------------------------------------------------------- +Wed Jan 21 20:26:05 CET 2009 - schwab@suse.de + +- Fix ldscript mangling. + +------------------------------------------------------------------- +Wed Jan 21 01:18:59 CET 2009 - pbaudis@suse.cz + +- Re-enable the DNS fixpack, add real fix for bnc#441947 +- nscd: Fix gc he_data overflow and turn of alloca usage [bnc#387202] +- Normalize the patch queue +- Increate CPU_SETSIZE from 1024 to 4096 - for large SGI machines + and compatibility with SLE10SP2 [bnc#464667] + +------------------------------------------------------------------- +Fri Jan 16 22:33:21 CET 2009 - pbaudis@suse.cz + +- Disable the DNS fixpack from CVS, breaks nscd resolving [bnc#441947] + +------------------------------------------------------------------- +Fri Jan 9 13:12:21 CET 2009 - pbaudis@suse.cz + +- Fix unsetenv() crashing after clearenv() +- Backport various DNS-related fixes from CVS +- Disable parallel A-AAAA queries - revert to the glibc-2.9 behaviour + of sending the queries sequentially [bnc#442572] +- Fix fp register protection on power6 setcontext() [bnc#464738] + +------------------------------------------------------------------- +Mon Dec 8 01:25:57 CET 2008 - pbaudis@suse.cz + +- Fix crash when parsing NIS hosts file [bnc#448702] + +------------------------------------------------------------------- +Thu Dec 4 04:07:11 CET 2008 - pbaudis@suse.cz + +- Fix nscd gc-cacheadd and prune-invalidate races [bnc#446233] +- Remove obsolete and disabled nscd patch +- Fix /etc/bindresvport.blacklist parsing [bnc#439146] +- Fix en_GB and csb_PL locales having weeks start on Tuesdays [bnc#449186] + +------------------------------------------------------------------- +Sun Nov 23 14:55:40 CET 2008 - pbaudis@suse.cz + +- clean up patch filenames + +------------------------------------------------------------------- +Fri Nov 21 14:04:16 CET 2008 - olh@suse.de + +- fix check-build.sh to actually allow building on ppc* again + +------------------------------------------------------------------- +Fri Nov 21 13:36:05 CET 2008 - olh@suse.de + +- do not run compiled binaries with cputuned libraries [bnc#445911] + the buildhost only generates them, but must not execute them + +------------------------------------------------------------------- +Mon Nov 17 14:34:45 CET 2008 - pbaudis@suse.cz + +- Update to glibc-2.9 final + +------------------------------------------------------------------- +Thu Nov 6 18:25:09 CET 2008 - jjolly@suse.de + +- Added patch to fix s390x 64bit stack frame problem + +------------------------------------------------------------------- +Fri Oct 31 19:51:08 CET 2008 - matz@suse.de + +- Fix atomics on s390/s390x, leading to failures in pthread mutexes. + +------------------------------------------------------------------- +Tue Oct 28 18:08:32 CET 2008 - schwab@suse.de + +- Restore alignment patch. + +------------------------------------------------------------------- +Tue Oct 28 09:45:22 CET 2008 - olh@suse.de + +- symlink power5/power5+ to power4 on ppc32 + +------------------------------------------------------------------- +Thu Oct 23 22:20:28 CEST 2008 - ro@suse.de + +- only do obsoletes for XXbit packages on ppc, not on x86 + +------------------------------------------------------------------- +Wed Oct 23 13:46:25 CEST 2008 - matz@suse.de + +- Deactivate unwind tables for initfini.c. + +------------------------------------------------------------------- +Thu Oct 23 10:56:50 CEST 2008 - olh@suse.de + +- obsolete glibc{,-devel,-locale,-profile} -XXbit packages [bnc#437293] +- update last change to handle empty rpmspec defines + +------------------------------------------------------------------- +Tue Oct 21 09:54:06 CEST 2008 - olh@suse.de + +- update glibc_post_upgrade to handle power7 and ppc-cell-be +- remove libs unconditionally on powerpc to handle libs in + subdirectories for which we do not ship optimized versions [bnc#437209] + +------------------------------------------------------------------- +Thu Oct 16 14:42:59 CEST 2008 - olh@suse.de + +- enable cpu-tuned libraries for power4, power6 and ppc-cell-be + on ppc32 [fate#304000,bnc#408808] + +------------------------------------------------------------------- +Mon Oct 13 14:51:11 CEST 2008 - matz@suse.de + +- Update to trunk from 20081013, no longer export paccept, + obsoletes some patches (lowlevellock and res_send). + Fix overflow in nscd patch. + +------------------------------------------------------------------- +Mon Oct 13 00:03:18 CEST 2008 - dmueller@suse.de + +- also strip .comment.SUSE.OPTs from the static libs +- add missing-include-build-fix.diff + +------------------------------------------------------------------- +Tue Oct 7 09:44:20 CEST 2008 - schwab@suse.de + +- Fix alignment in resolver. + +------------------------------------------------------------------- +Tue Sep 30 09:41:01 CEST 2008 - olh@suse.de + +- symlink tuned libs because rpmlint is unable to handle hardlinks + +------------------------------------------------------------------- +Wed Sep 29 11:01:41 CEST 2008 - olh@suse.de + +- enable cpu-tuned libraries for power6 and ppc-cell-be [fate#304000,bnc#408808] +- remove -mtune G4/RS64 from CFLAGS on ppc/ppc64 + +------------------------------------------------------------------- +Thu Sep 18 11:39:53 CEST 2008 - rguenther@suse.de + +- Change .comment.SuSE.OPTs to .comment.SUSE.OPTs. Also strip from + crti.o and crtn.o. +- Adjust getgroups fortify check. [bnc#426958] + +------------------------------------------------------------------- +Thu Sep 18 10:19:51 CEST 2008 - schwab@suse.de + +- Fix alignment in resolver. + +------------------------------------------------------------------- +Mon Sep 15 11:55:18 CEST 2008 - adrian@suse.de + +- do not run glibc_post_upgrade in XEN builds + +------------------------------------------------------------------- +Sat Sep 13 21:49:44 CEST 2008 - rguenther@suse.de + +- strip .note.gnu.build-id from crt1.o. + +------------------------------------------------------------------- +Sat Sep 13 10:20:47 CEST 2008 - dmueller@suse.de + +- only strip comment from crt1.o + +------------------------------------------------------------------- +Fri Sep 12 17:49:39 CEST 2008 - mls@suse.de + +- block baselibs generation for i586 (use i686 instead) + +------------------------------------------------------------------- +Fri Sep 12 17:34:06 CEST 2008 - dmueller@suse.de + +- strip suse opts comments from crt.o (fate #300498) + +------------------------------------------------------------------- +Mon Sep 8 13:38:36 CEST 2008 - rguenther@suse.de + +- Add a patch to fix wrong asm constraints in the i386 lowlevel + futex lock implementation. + +------------------------------------------------------------------- +Thu Sep 4 19:46:22 CEST 2008 - matz@suse.de + +- Update to current trunk snapshot (2008-09-04), makes s390 build. + +------------------------------------------------------------------- +Wed Aug 27 16:12:01 CEST 2008 - matz@suse.de + +- Add a patch to use RTLD_DEEPBIND to load nss modules. [bnc #157078] + +------------------------------------------------------------------- +Mon Aug 25 15:09:37 CEST 2008 - matz@suse.de + +- Update to current trunk snapshot (2008-08-25). + +------------------------------------------------------------------- +Fri Aug 22 17:18:23 CEST 2008 - prusnak@suse.cz + +- enabled SELinux support [Fate#303662] + +------------------------------------------------------------------- +Fri Aug 15 10:37:10 CEST 2008 - aj@suse.de + +- Fix nscd init script for new checks. +- package empty ld.so.cache. + +------------------------------------------------------------------- +Fri Jul 25 08:16:40 CEST 2008 - aj@suse.de + +- Add directory /var/cache/ldconfig to filelist. + +------------------------------------------------------------------- +Wed Jun 25 15:38:25 CEST 2008 - pbaudis@suse.cz + +- Fix strptime() %EY era support [bnc#355887] + +------------------------------------------------------------------- +Wed Jun 25 13:30:42 CEST 2008 - rguenther@suse.de +- Add patch to fix unwinding through clone for x86_64 and i386. + [bnc#290807, bnc#403464] + +------------------------------------------------------------------- +Fri May 30 23:57:54 CEST 2008 - schwab@suse.de + +- Fix ppc atomic ops. + +------------------------------------------------------------------- +Fri Apr 25 13:30:50 CEST 2008 - pbaudis@suse.cz + +- Update to glibc-2.8 CVS branch as of 2008042513 (post-glibc-2.8): + * Faster sqrt and sqrtf implemention for some PPC variants. + +------------------------------------------------------------------- +Thu Apr 10 23:57:44 CEST 2008 - pbaudis@suse.cz + +- Build fix after the revert + +------------------------------------------------------------------- +Thu Apr 10 23:05:17 CEST 2008 - pbaudis@suse.cz + +- Temporarily revert a namespace leakage cleanup in glibc-2.8 since + it causes a lot of build failures + +------------------------------------------------------------------- +Thu Apr 10 16:29:34 CEST 2008 - pbaudis@suse.cz + +- Update to CVS HEAD as of 2008041002 (almost glibc-2.8): + * New locales: bo_CN, bo_IN. + + * New encoding: HP-ROMAN9, HP-GREEK8, HP-THAI8, HP-TURKISH8. + + * Sorting rules for some Indian languages (Devanagari and Gujarati). + Implemented by Pravin Satpute. + + * IPV6 addresses in /etc/resolv.conf can now have a scope ID + + * nscd caches now all timeouts for DNS entries + Implemented by Ulrich Drepper. + + * nscd is more efficient and wakes up less often. + Implemented by Ulrich Drepper. + + * More checking functions: asprintf, dprintf, obstack_printf, vasprintf, + vdprintf, and obstack_vprintf. + Implemented by Jakub Jelinek. + + * Faster memset for x86-64. + Implemented by Harsha Jagasia and H.J. Lu. + + * Faster memcpy on x86. + Implemented by Ulrich Drepper. + + * ARG_MAX is not anymore constant on Linux. Use sysconf(_SC_ARG_MAX). + Implemented by Ulrich Drepper. + +- memset() implementation from AMD replaced by new upstream + implementation + +- Enable stackguard randomization + +------------------------------------------------------------------- +Thu Apr 10 12:54:45 CEST 2008 - ro@suse.de + +- added baselibs.conf file to build xxbit packages + for multilib support + +------------------------------------------------------------------- +Thu Mar 13 13:48:49 CET 2008 - dmueller@suse.de + +- don't try to use ipv6 in getaddrinfo() unconditionally (bnc#361697) + +------------------------------------------------------------------- +Sat Jan 26 13:19:41 CET 2008 - aj@suse.de + +- Add fixes from 2.8 branch for string.h and headers. The string.h + changes should fix sysvinit compilation. +- Fix some rpmlint warnings: + * Add versioned provides and obsoletes. + * Use %check section. + +------------------------------------------------------------------- +Fri Jan 18 14:03:43 CET 2008 - schwab@suse.de + +- Fix use of fnstsw. + +------------------------------------------------------------------- +Wed Nov 21 05:35:36 CET 2007 - pbaudis@suse.cz + +- Update to CVS branch glibc_2.7 as of today +- Remove the ::1 hack again +- Fix nscd race condition between mempool_alloc() and gc() [#288910] +- Fix nscd stack overflow in gc() when the number of cache entries + gets too large [#288910] +- Fix sunrpc udp client [#257745] +- Fix initgroups() crash in nss_compat [#310544] + +------------------------------------------------------------------- +Thu Sep 27 15:46:30 CEST 2007 - matz@suse.de + +- Remove broken x86_64 bcopy function. [#328486] + +------------------------------------------------------------------- +Sun Sep 16 14:04:30 CEST 2007 - aj@suse.de + +- Install gai.conf on all archs. + +------------------------------------------------------------------- +Thu Sep 13 17:20:58 CEST 2007 - pbaudis@suse.cz + +- Install the default gai.conf to /etc instead of docdir +- Do not return ::1 /etc/hosts records for 127.0.0.1 queries [#288879] + +------------------------------------------------------------------- +Wed Sep 5 03:07:39 CEST 2007 - pbaudis@suse.cz + +- Fix pthread_mutex_unlock() internal lock handling for incorrectly + written applications +- Fix nscd assertion failure when opening persistent db failed [#288910] + +------------------------------------------------------------------- +Mon Sep 3 20:10:39 CEST 2007 - mls@suse.de + +- fix typos in mdns patch [#206247], [#256690] + +------------------------------------------------------------------- +Fri Aug 31 17:38:02 CEST 2007 - aj@suse.de + +- Add /usr/share/locale-bundle/ as fallback directory for usage + with bundle-lang packages (see bug #302270). + +------------------------------------------------------------------- +Tue Aug 21 22:31:54 CEST 2007 - pbaudis@suse.cz + +- Reintroduce errorneously omitted AMD64 optimizations + (and fix them to compile again) + +------------------------------------------------------------------- +Thu Aug 16 09:47:53 CEST 2007 - aj@suse.de + +- Fix static linking (#233835). +- Silence rpmlint for profile package. +- Add Short-Description to nscd init script. + +------------------------------------------------------------------- +Mon Aug 13 19:09:31 CEST 2007 - aj@suse.de + +- Backport: + * Update kernel-features.h. + * Fix sched_getcpu error path on x86-64. + * Use upstreamed version of ldconfig cache speed ups. + +------------------------------------------------------------------- +Fri Aug 3 15:46:35 CEST 2007 - pbaudis@suse.cz + +- Remove the dynamic linker support for direct bindings (-Bdirect); + according to Michael Meeks, the performance improvement is too small +- Split timezone package to a separate physical package +- Update glibc to version 2.6.1 + +------------------------------------------------------------------- +Fri Jul 27 11:32:54 CEST 2007 - aj@suse.de + +- Use fdupes to reduce timezone data size. + +------------------------------------------------------------------- +Fri Jul 13 18:27:49 CEST 2007 - schwab@suse.de + +- Update to head of glibc-2.6 branch. +- Fix update on ppc. + +------------------------------------------------------------------- +Thu Jun 28 14:59:55 CEST 2007 - matz@suse.de + +- Add a provide for "rtld(GNU_HASH)". + +------------------------------------------------------------------- +Sun Jun 17 12:30:26 CEST 2007 - schwab@suse.de + +- Fix section selection in crt objects. + +------------------------------------------------------------------- +Thu Jun 7 02:43:29 CEST 2007 - pbaudis@suse.cz + +- Backport fix for crashing printf() of some invalid ldouble values + +------------------------------------------------------------------- +Wed May 30 04:40:25 CEST 2007 - pbaudis@suse.cz + +- Added few fixes from 2.6 CVS before 2.6.1 gets released + +------------------------------------------------------------------- +Fri May 18 23:14:42 CEST 2007 - pbaudis@suse.cz + +- Update glibc to version 2.6 +- Update tzdata to version 2007f + +------------------------------------------------------------------- +Fri May 4 11:24:53 CEST 2007 - schwab@suse.de + +- Update build checks. + +------------------------------------------------------------------- +Fri Apr 20 13:13:52 CEST 2007 - dmueller@suse.de + +- only keep symtab for libpthread* + +------------------------------------------------------------------- +Thu Apr 19 23:22:35 CEST 2007 - pbaudis@suse.cz + +- Fix strtod() exponent limit calculations [#230909] +- Fix random nscd crashes under very heavy passwd/group queries + load [#192391] +- Add some enums from CVS to sys/personality.h [#253710] +- Fix pthread_atfork()-induced hangs in threaded programs [#256237] +- Fix llrintl() on ppc64 [#241183] +- Fix makecontext() segfault [#249780] +- Fix potential dladdr() breakage [#241464] +- Fix some races in client programs with nscd garbage collection [#252138] + +------------------------------------------------------------------- +Fri Mar 30 02:54:06 CEST 2007 - pbaudis@suse.cz + +- Update localtime during timezone update [#239888] + +------------------------------------------------------------------- +Sun Mar 25 10:00:59 CEST 2007 - olh@suse.de + +- temporary disable powerpc cputuned libs to reduce turnaround time + +------------------------------------------------------------------- +Fri Feb 9 15:03:50 CET 2007 - pbaudis@suse.cz + +- Update to the latest upstream timezone data [#231833] + +------------------------------------------------------------------- +Fri Feb 2 11:42:51 CET 2007 - schwab@suse.de + +- Remove -ffortify. + +------------------------------------------------------------------- +Thu Feb 1 13:43:54 CET 2007 - schwab@suse.de + +- Remove -fstack-protector. + +------------------------------------------------------------------- +Mon Jan 29 16:13:09 CET 2007 - sbrabec@suse.cz + +- Removed references to /opt/gnome. + +------------------------------------------------------------------- +Thu Jan 25 21:14:58 CET 2007 - olh@suse.de + +- link power4 to ppc970, link power6 to power6x +- Update the powerpc cpu-tuned environment to v0.05 + +------------------------------------------------------------------- +Mon Jan 22 14:43:40 CET 2007 - schwab@suse.de + +- Update ppc build check. + +------------------------------------------------------------------- +Fri Nov 24 12:45:26 CET 2006 - pbaudis@suse.cz + +- Fix for Brazilian and Wester Australia timezone DSTs [#213375,#223196] + +------------------------------------------------------------------- +Thu Nov 16 21:59:06 CET 2006 - pbaudis@suse.cz + +- Disable power6 optimization for 10.2, not all pieces are there + [#219962] + +------------------------------------------------------------------- +Wed Oct 25 22:23:48 CEST 2006 - pbaudis@suse.cz + +- Change ld.so madvise() call to posix_fadvise() +- Fix mallopt(M_MXFAST,0) behaviour [#198760] +- Update the powerpc cpu-tuned environment to v0.04 [#215117] + +------------------------------------------------------------------- +Sun Oct 22 21:59:49 CEST 2006 - pbaudis@suse.cz + +- Update the powerpc cpu-tuned environment to v0.03 [#212549] +- Improve glibc powerpc optimization [#212548,#212580,#214282] + +------------------------------------------------------------------- +Tue Oct 17 21:03:54 CEST 2006 - mls@suse.de + +- add ldconfig-old-cache patch to speed up ldconfig + +------------------------------------------------------------------- +Sat Oct 14 12:23:53 CEST 2006 - olh@suse.de + +- dont use uninitialized (and wrong) variable in glibc-2.4.90-bdirect.diff + [#212470] + +------------------------------------------------------------------- +Thu Oct 12 02:33:58 CEST 2006 - pbaudis@suse.cz + +- Update to the latest 2.5 CVS +- More friendly -Bdirect behaviour in case of missing libraries +- Fix 2.4.90-nscd patch wrt. new gcc + +------------------------------------------------------------------- +Mon Oct 2 13:37:26 CEST 2006 - aj@suse.de + +- Fix warnings in testsuite (patch from CVS). + +------------------------------------------------------------------- +Fri Sep 29 22:06:43 CEST 2006 - pbaudis@suse.cz + +- Update to 2.5 CVS - official release (only minimal changes in CVS + since the last update) +- Fix a thinko in the -Bdirect patch + +------------------------------------------------------------------- +Fri Sep 29 19:51:24 CEST 2006 - dmueller@suse.de + +- fix devel requires + +------------------------------------------------------------------- +Fri Sep 29 04:27:40 CEST 2006 - pbaudis@suse.cz + +- Make the dynamic linker support direct bindings (Michael Meeks' + Solaris-like -Bdirect with minor changes by me) +- Split the kernel headers to a new package (linux-kernel-headers) + +------------------------------------------------------------------- +Wed Sep 27 14:59:32 CEST 2006 - schwab@suse.de + +- Fix broken assertion [#208189]. + +------------------------------------------------------------------- +Tue Sep 26 18:10:38 CEST 2006 - pbaudis@suse.cz + +- Fix mistake when removing some patches + +------------------------------------------------------------------- +Mon Sep 25 21:15:15 CEST 2006 - pbaudis@suse.cz + +- Update to current CVS + +------------------------------------------------------------------- +Sat Sep 23 04:36:58 CEST 2006 - pbaudis@suse.cz + +- Fix 64bit-cleanliness gcc warnings + +------------------------------------------------------------------- +Thu Sep 21 23:52:13 CEST 2006 - pbaudis@suse.cz + +- Add /usr/lib{,64}/Xaw3d to /etc/ld.so.conf (by schwab@suse.de, + from original STABLE) [#205169] +- Fix chown() instead of lchown() called in fchownat() emulation + [#201751] +- Fix glob() overflowing stack when producing massive number of + matches [#190458] +- Update to current CVS + +------------------------------------------------------------------- +Wed Sep 20 23:48:20 CEST 2006 - pbaudis@suse.cz + +- Fix cut'n'paste error in a last-minute change + +------------------------------------------------------------------- +Wed Sep 20 22:07:59 CEST 2006 - pbaudis@suse.cz + +- Update to current CVS +- Fix powerpc-cpu tarball extension +- Move crypt-blowfish to a patch so that quilt works on the tree + +------------------------------------------------------------------- +Sat Sep 2 19:01:21 CEST 2006 - schwab@suse.de + +- Use asm-powerpc for ppc and ppc64. +- Fix chroot check in glibc_post_upgrade. + +------------------------------------------------------------------- +Mon Aug 28 01:24:24 CEST 2006 - pbaudis@suse.cz + +- Update to current CVS, should fix false positive heap overflow + trigger from malloc() causing gcc to hang [#201724] + +------------------------------------------------------------------- +Wed Aug 23 23:56:35 CEST 2006 - pbaudis@suse.cz + +- Update the powerpc cpu-tuned environment to v0.02 [#199274] +- Update to current CVS +- Drop pthread_mutexattr_getprioceiling() out of range fix + +------------------------------------------------------------------- +Thu Aug 10 20:10:04 CEST 2006 - pbaudis@suse.cz + +Ported from STABLE: +- Remove libc5 reference from /etc/ld.so.conf, shlibs5 is no longer + supported [#181947] +- Fix name of a dummy ia64 header from offsets.h to asm-offsets.h + [#191394] + +------------------------------------------------------------------- +Sun Jul 30 23:33:04 CEST 2006 - pbaudis@suse.cz + +- Update to current CVS snapshot (highlight: support for .gnu.hash + fast linking support) + +------------------------------------------------------------------- +Wed Jul 12 03:15:08 CEST 2006 - pbaudis@suse.cz + +- pthread_mutexattr_getprioceiling() was returning prioceiling out + of range [#182782] + +------------------------------------------------------------------- +Wed Jul 12 02:39:22 CEST 2006 - pbaudis@suse.cz + +- Fix the HTML documentation missing an index [#190585] + +------------------------------------------------------------------- +Sat Jun 24 18:32:42 CEST 2006 - kukuk@suse.de + +- Update to current CVS snapshot +- Update to kernel-headers 2.6.17 +- Remove HZ define (sysconf(_SC_CLK_TCK) instead) + +------------------------------------------------------------------- +Tue Jun 13 11:49:43 CEST 2006 - kukuk@suse.de + +- Update to current CVS snapshot + +------------------------------------------------------------------- +Tue May 2 14:10:41 CEST 2006 - pbaudis@suse.cz + +- Fix bad memset() size in NTPL code [#159184] + +------------------------------------------------------------------- +Tue May 2 10:42:55 CEST 2006 - kukuk@suse.de + +- asm-powerpc/page.h: Don't move #ifdef __KERNEL__ [#171010] +- bits/mman.h: Fix value of MADV_REMOVE [#170734] + +------------------------------------------------------------------- +Mon Apr 24 12:04:12 CEST 2006 - kukuk@suse.de + +- Fix china timezone mess [#163674] +- Don't include linux/stddef.h [#167964] + +------------------------------------------------------------------- +Tue Apr 18 14:38:57 CEST 2006 - schwab@suse.de + +- Sanitize . + +------------------------------------------------------------------- +Thu Apr 13 13:34:07 CEST 2006 - kukuk@suse.de + +- Add /usr/include/linux/taskstats.h [#141936] + +------------------------------------------------------------------- +Tue Apr 11 12:20:57 CEST 2006 - kukuk@suse.de + +- nptl/init.c (sigcancel_handler): Compare with correct PID even + if the thread is in the middle of a fork call. + (sighandler_setxid): Likewise. + +------------------------------------------------------------------- +Sun Apr 9 16:27:20 CEST 2006 - ihno@suse.de + +- S390 fix for startupcode. Part of it was not PIC. + +------------------------------------------------------------------- +Fri Apr 7 13:42:20 CEST 2006 - kukuk@suse.de + +- Don't hardcode syscall numbers at our own + +------------------------------------------------------------------- +Tue Apr 4 22:10:47 CEST 2006 - schwab@suse.de + +- Fix readlink declaration. + +------------------------------------------------------------------- +Mon Apr 3 13:40:54 CEST 2006 - kukuk@suse.de + +- Update from CVS: + - nscd bug fixes + - Match return value of readlink to what POSIX says + - Fix NIS+ checks for NULL pointer + +------------------------------------------------------------------- +Sun Apr 2 20:53:17 CEST 2006 - dmueller@suse.de + +- Fix clients crash if nscd is unresponsive (glibc-#2501) +- Fix fd leak in nscd daemon (glibc-#2498) + +------------------------------------------------------------------- +Sat Apr 1 21:48:54 CEST 2006 - schwab@suse.de + +- Fix on ppc64. + +------------------------------------------------------------------- +Fri Mar 31 15:50:25 CEST 2006 - schwab@suse.de + +- Extend last change also to ppc64. + +------------------------------------------------------------------- +Sun Mar 26 21:08:58 CEST 2006 - schwab@suse.de + +- Terminate FDE before clone syscall. + +------------------------------------------------------------------- +Fri Mar 24 14:58:29 CET 2006 - ro@suse.de + +- kernel-headers: asm-powerpc: define PAGE_MASK in page.h + +------------------------------------------------------------------- +Mon Mar 20 13:57:27 CET 2006 - kukuk@suse.de + +- Update to final 2.6.16 kernel headers +- Update to current CVS: + - Don't use TLS before setting it up. + - Fix rounding of long doubles on ppc64. + - Correct usage of cfi_offset on ppc/ppc64. + - Fix memory leak in dlopen. + +------------------------------------------------------------------- +Tue Mar 14 17:08:27 CET 2006 - schwab@suse.de + +- Update fnmatch patch. + +------------------------------------------------------------------- +Fri Mar 10 13:36:38 CET 2006 - kukuk@suse.de + +- Disable unshare() syscall (request of kernel developer) + +------------------------------------------------------------------- +Fri Mar 10 08:30:53 CET 2006 - kukuk@suse.de + +- Don't include linux/interrupt.h from linux/rtc.h +- Revert last change to linux/input.h, disable struct +- Update to current CVS (nptl/ia64 fix) + +------------------------------------------------------------------- +Thu Mar 9 07:58:20 CET 2006 - kukuk@suse.de + +- Fix linux/input.h for userspace inclusion + +------------------------------------------------------------------- +Wed Mar 8 22:06:11 CET 2006 - kukuk@suse.de + +- Update kernel headers to 2.6.16-rc5 + +------------------------------------------------------------------- +Mon Mar 6 13:41:08 CET 2006 - kukuk@suse.de + +- Update to 2.4 CVS + - official release + - Fix free on ppc [#155374] + - Various sysconf() fixes + +------------------------------------------------------------------- +Sat Mar 4 18:12:36 CET 2006 - kukuk@suse.de + +- Update to CVS + - ldconfig/prelink fixes + +------------------------------------------------------------------- +Fri Mar 3 17:32:56 CET 2006 - aj@suse.de + +- Do not leave hyphens in defines in create_biarch_asm.sh (Bug 154998). + +------------------------------------------------------------------- +Fri Mar 3 10:58:02 CET 2006 - kukuk@suse.de + +- Update to CVS + - Fix ftw test suite failures + - Fix alignment of malloc for long double + +------------------------------------------------------------------- +Thu Mar 2 09:56:59 CET 2006 - kukuk@suse.de + +- Update to 2.3.91 CVS + - Fix 6arg syscall on s390x + - memccpy fix on IA64 + +------------------------------------------------------------------- +Wed Mar 1 08:54:53 CET 2006 - kukuk@suse.de + +- Update to CVS + - New linkat interface + - Update from tzdata2006b + - Define MADV_DONTFORK and MADV_DOFORK. + - Add robust mutex to NPTL + +------------------------------------------------------------------- +Thu Feb 23 15:26:29 CET 2006 - kukuk@suse.de + +- Reenable power optimized code again [#142839] + +------------------------------------------------------------------- +Sun Feb 12 09:45:39 CET 2006 - kukuk@suse.de + +- Disable power optimized code + +------------------------------------------------------------------- +Thu Feb 9 10:50:12 CET 2006 - kukuk@suse.de + +- Update to CVS + - Add unshare prototype + - Add memory barrier on i386/NPTL + +------------------------------------------------------------------- +Wed Feb 8 10:50:07 CET 2006 - kukuk@suse.de + +- Remove glibc-2.4-ppc-dl-procinfo-20060111.diff [#142839] + +------------------------------------------------------------------- +Mon Feb 6 16:58:50 CET 2006 - kukuk@suse.de + +- Update to current CVS +- Fix alternate locale search path patch [#147685] + +------------------------------------------------------------------- +Thu Feb 2 12:13:19 CET 2006 - kukuk@suse.de + +- Update to current CVS + +------------------------------------------------------------------- +Mon Jan 30 16:10:35 CET 2006 - schwab@suse.de + +- Fix the fix. + +------------------------------------------------------------------- +Sat Jan 28 18:42:08 CET 2006 - kukuk@suse.de + +- Fix seg.fault in __atfct_seterrno if called from futimesat() +- Apply patches for CPU-Tuned Environment on Power [#142839] + +------------------------------------------------------------------- +Fri Jan 27 12:10:55 CET 2006 - kukuk@suse.de + +- Cleanup ld.so.conf + +------------------------------------------------------------------- +Thu Jan 26 08:53:33 CET 2006 - kukuk@suse.de + +- Add alternate directory for translations [#144073] + +------------------------------------------------------------------- +Thu Jan 26 00:41:37 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Mon Jan 23 17:44:50 CET 2006 - kukuk@suse.de + +- Update to CVS +- Fix build_locales + +------------------------------------------------------------------- +Sat Jan 21 10:24:02 CET 2006 - kukuk@suse.de + +- Update to CVS +- Fix inclusion of sys/poll.h with _GNU_SOURCE defined + +------------------------------------------------------------------- +Fri Jan 20 15:02:35 CET 2006 - kukuk@suse.de + +- Update to CVS + +------------------------------------------------------------------- +Sun Jan 15 08:28:26 CET 2006 - kukuk@suse.de + +- Update to CVS (fix long double configure check) + +------------------------------------------------------------------- +Sun Jan 15 01:59:54 CET 2006 - schwab@suse.de + +- Readd , , . + +------------------------------------------------------------------- +Sun Jan 15 01:08:22 CET 2006 - schwab@suse.de + +- Readd . + +------------------------------------------------------------------- +Sat Jan 14 22:33:32 CET 2006 - kukuk@suse.de + +- Update to current CVS (long double support) + +------------------------------------------------------------------- +Fri Jan 13 09:17:17 CET 2006 - aj@suse.de + +- Fix x86-64 w_exp to not use extra plt. + +------------------------------------------------------------------- +Thu Jan 12 22:39:01 CET 2006 - kukuk@suse.de + +- Fix asm-s390/setup.h for userspace inclusion +- nsswitch.conf: Add nis to netgroup and automount entry +- Fix sys/procfs.h for ppc64 + +------------------------------------------------------------------- +Mon Jan 9 23:20:14 CET 2006 - kukuk@suse.de + +- Update to current CVS (fix for pthread.h with -std=c99) +- Define PAGE_SIZE on POWER +- Don't include linux/sched.h in asm-power/elf.h + +------------------------------------------------------------------- +Sun Jan 8 17:58:11 CET 2006 - kukuk@suse.de + +- Fix linux/acct.h for userland inclusion + +------------------------------------------------------------------- +Sun Jan 8 11:48:58 CET 2006 - kukuk@suse.de + +- Update to current CVS +- Remove CHILD_MAX from kernel-headers +- Copy subdirectories of asm-power, too. +- Remove da_DK@euro (does not exist) + +------------------------------------------------------------------- +Sat Jan 7 10:02:43 CET 2006 - kukuk@suse.de + +- Fix ext2 kernel headers +- Update to current CVS + +------------------------------------------------------------------- +Fri Jan 6 12:28:10 CET 2006 - kukuk@suse.de + +- Update to kernel headers 2.6.15 + +------------------------------------------------------------------- +Fri Jan 6 00:58:28 CET 2006 - kukuk@suse.de + +- Update crypt_blowfish to version 1.0 +- Update to current CVS +- Adjust nscd patches + +------------------------------------------------------------------- +Tue Jan 3 17:19:36 CET 2006 - aj@suse.de + +- Update to current CVS to fix pthread.h on 64-bit systems for C++. + +------------------------------------------------------------------- +Tue Jan 3 06:04:26 CET 2006 - aj@suse.de + +- Enable string patch again. +- Update to current CVS. + +------------------------------------------------------------------- +Wed Dec 21 15:11:14 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Fix ldconfig + +------------------------------------------------------------------- +Sat Dec 17 09:49:18 CET 2005 - kukuk@suse.de + +- Remove /usr/lib/zoneinfo +- Add /etc/localtime to filelist +- Update to current CVS +- Fix glibc #1978: statvfs does not know about current filesystems +- Fix wrong error return code of time() on x86 +- Remove nscd_nischeck +- Remove audit from nfb +- Remove LinuxThreads + +------------------------------------------------------------------- +Wed Dec 14 18:00:59 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Remove nscd_nischeck +- Remove audit from nfb + +------------------------------------------------------------------- +Mon Dec 5 12:07:05 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Disable SELinux + +------------------------------------------------------------------- +Thu Nov 24 15:54:27 CET 2005 - kukuk@suse.de + +- Remove obsolete patches: + - glibc-2.3.asprintf-error_handling.diff + - glibc-2.3.90-missing-string_h.diff + +------------------------------------------------------------------- +Wed Nov 23 17:20:10 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Don't install in parallel + +------------------------------------------------------------------- +Fri Nov 18 13:42:43 CET 2005 - kukuk@suse.de + +- Update to current CVS to fix compiling with new binutils + +------------------------------------------------------------------- +Wed Nov 16 18:33:57 CET 2005 - kukuk@suse.de + +- Update to current CVS + +------------------------------------------------------------------- +Sat Nov 5 14:44:07 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Disable linuxthreads on POWER and Itanium +- Fix kernel-headers for userland inclusion + +------------------------------------------------------------------- +Wed Nov 2 17:12:36 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Update to kernel-headers 2.6.14 + +------------------------------------------------------------------- +Tue Oct 18 17:37:08 CEST 2005 - kukuk@suse.de + +- Update to current CVS + +------------------------------------------------------------------- +Sat Oct 1 23:00:04 CEST 2005 - schwab@suse.de + +- Update libm ULPs. +- Fix limit in getcwd. + +------------------------------------------------------------------- +Thu Sep 15 16:13:50 CEST 2005 - kukuk@suse.de + +- Update to current CVS +- Update to final 2.6.13 kernel headers +- Adjust bindresvport.blacklist patch to check already ports >= 512 + +------------------------------------------------------------------- +Fri Aug 26 16:41:56 CEST 2005 - kukuk@suse.de + +- Update to current CVS +- init.d/nscd: Remove -S support (was removed from nscd) + +------------------------------------------------------------------- +Fri Aug 19 18:28:24 CEST 2005 - schwab@suse.de + +- Fix comment. + +------------------------------------------------------------------- +Fri Aug 19 17:36:24 CEST 2005 - matz@suse.de + +- Change .note.SuSE format [#105825]. + +------------------------------------------------------------------- +Fri Aug 19 17:13:21 CEST 2005 - kukuk@suse.de + +- Update to current CVS +- Move all obsolete libraries into own subpackage and document + them as obsolete + +------------------------------------------------------------------- +Fri Aug 5 10:32:38 CEST 2005 - schwab@suse.de + +- -mno-tls-direct-seg-refs is x86-only + +------------------------------------------------------------------- +Tue Aug 2 14:54:01 CEST 2005 - kukuk@suse.de + +- Update to 2.3.x CVS branch +- Compile with -mno-tls-direct-seg-refs + +------------------------------------------------------------------- +Fri Jul 29 11:12:02 CEST 2005 - kukuk@suse.de + +- Update to current CVS head + +------------------------------------------------------------------- +Wed Jul 27 23:13:04 CEST 2005 - schwab@suse.de + +- Update libm ULPs for ia64. +- Add linuxthreads stack guard support for ia64. + +------------------------------------------------------------------- +Sat Jul 23 10:05:16 CEST 2005 - kukuk@suse.de + +- Update to current CVS head (adds bits/wchar2.h) +- Move LinuxThreads version to obsolete/linuxthreads + +------------------------------------------------------------------- +Thu Jul 21 15:04:31 CEST 2005 - kukuk@suse.de + +- Update to current CVS head + +------------------------------------------------------------------- +Fri Jul 15 15:45:35 CEST 2005 - schwab@suse.de + +- Fix file list. + +------------------------------------------------------------------- +Fri Jul 15 12:09:08 CEST 2005 - aj@suse.de + +- Fix amd64 string routines and math routines. + +------------------------------------------------------------------- +Fri Jul 15 08:45:27 CEST 2005 - kukuk@suse.de + +- Use old LinuxThreads only for runtime and remove static version + and headers +- Update to current CVS head +- Remove own texi2html + +------------------------------------------------------------------- +Mon Jul 11 11:00:47 CEST 2005 - kukuk@suse.de + +- Install generic stdio-lock.h header file + +------------------------------------------------------------------- +Sat Jul 9 18:46:46 CEST 2005 - kukuk@suse.de + +- Temporary disable AMD64 string optimization + +------------------------------------------------------------------- +Wed Jul 6 09:58:39 CEST 2005 - kukuk@suse.de + +- Build and install ja_JP.SHIFT_JISX0213 locale [Bug #84030] + +------------------------------------------------------------------- +Mon Jul 4 20:41:47 CEST 2005 - kukuk@suse.de + +- nss_compat: Preserve original return value [Bug #95033] +- Cleanup old Obsoletes/Requires + +------------------------------------------------------------------- +Mon Jun 27 13:49:38 CEST 2005 - kukuk@suse.de + +- Update to current gilbc CVS snapshot + +------------------------------------------------------------------- +Thu Jun 23 23:25:42 CEST 2005 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Adjust nscd patch +- Enable SELinux/audit support for nscd +- Update .note.SuSE version + +------------------------------------------------------------------- +Mon Jun 20 12:35:20 CEST 2005 - kukuk@suse.de + +- Update to final 2.6.12 kernel headers +- Update to current glibc CVS snapshot + +------------------------------------------------------------------- +Thu Jun 16 17:03:43 CEST 2005 - kukuk@suse.de + +- Update linux/audit.h header +- Update to current CVS snapshot + +------------------------------------------------------------------- +Mon Jun 13 14:48:53 CEST 2005 - kukuk@suse.de + +- Don't terminate strings twice in nis/netgroup code. +- netinet/if_tr.h: don't include kernel headers. + +------------------------------------------------------------------- +Wed Jun 8 16:26:21 CEST 2005 - kukuk@suse.de + +- Update to kernel-headers 2.6.12-rc6 +- Fix build on s390 and s390x + +------------------------------------------------------------------- +Wed Jun 8 12:08:49 CEST 2005 - matz@suse.de + +- Don't strip .symtab from libpthread.so.0 (and other libs). + Fixes debugging of threaded programs (#81253). + +------------------------------------------------------------------- +Mon Jun 6 18:47:22 CEST 2005 - kukuk@suse.de + +- Update to current CVS head +- Update to kernel-headers 2.6.12-rc5 + +------------------------------------------------------------------- +Thu May 26 20:07:11 CEST 2005 - schwab@suse.de + +- No longer build loadlocale.c with -fno-unit-at-a-time. + +------------------------------------------------------------------- +Tue May 24 11:09:00 CEST 2005 - kukuk@suse.de + +- Update to current CVS head, obsoletes: + - glibc-2.3.90-libm.diff + - glibc-2.3.90-i386-sysdep.diff + - warn.diff + - dl-osinfo.diff + Adjusted: + - glibc-2.3.90-bindresvport.blacklist.diff + +------------------------------------------------------------------- +Sun May 22 01:53:44 CEST 2005 - schwab@suse.de + +- Fix missing include. + +------------------------------------------------------------------- +Tue May 17 23:46:19 CEST 2005 - schwab@suse.de + +- Fix warning. + +------------------------------------------------------------------- +Fri Apr 29 15:11:22 CEST 2005 - kukuk@suse.de + +- Update to latest CVS snapshost + +------------------------------------------------------------------- +Sat Apr 23 17:05:58 CEST 2005 - kukuk@suse.de + +- Fix all the archs using wrong FLAGS + +------------------------------------------------------------------- +Sat Apr 23 08:02:31 CEST 2005 - kukuk@suse.de + +- Remove -D_FORTIFY_SOURCE from RPM_OPT_FLAGS + +------------------------------------------------------------------- +Fri Apr 22 13:05:40 CEST 2005 - kukuk@suse.de + +- Update to current CVS + +------------------------------------------------------------------- +Fri Apr 22 12:45:26 CEST 2005 - kukuk@suse.de + +- Check if nice value does not conflict with test suite + +------------------------------------------------------------------- +Tue Apr 19 13:54:03 CEST 2005 - mls@suse.de + +- resolv: trigger re-read of /etc/resolv.conf for all threads if + a change is detected +- nscd: support a negative timeout of zero, used by hosts cache + +------------------------------------------------------------------- +Mon Apr 18 17:31:23 CEST 2005 - meissner@suse.de + +- Enable fortify possibility even for GCC 4.0, we apply + the necessary patch to the SUSE GCC 4.0. + +------------------------------------------------------------------- +Sat Apr 16 12:16:13 CEST 2005 - aj@suse.de + +- Apply amd64 string diff again. + +------------------------------------------------------------------- +Tue Apr 12 11:35:46 CEST 2005 - kukuk@suse.de + +- Update kernel-headers to 2.6.10 +- Update to current CVS snapshot + +------------------------------------------------------------------- +Wed Apr 6 18:33:32 CEST 2005 - schwab@suse.de + +- Cleanup neededforbuild. + +------------------------------------------------------------------- +Tue Apr 5 22:02:25 CEST 2005 - aj@suse.de + +- Add gettext-devel to neededforbuild. + +------------------------------------------------------------------- +Tue Apr 5 16:45:06 CEST 2005 - aj@suse.de + +- Do not build on xen machines. +- Adjust libm ULPs for PowerPC. + +------------------------------------------------------------------- +Fri Apr 1 14:20:45 CEST 2005 - kukuk@suse.de + +- Update to current CVS snapshot + +------------------------------------------------------------------- +Tue Mar 29 10:57:40 CEST 2005 - kukuk@suse.de + +- Update to current CVS snapshot +- Fix compiler warnings on ix86 + +------------------------------------------------------------------- +Mon Mar 28 17:27:44 CEST 2005 - kukuk@suse.de + +- Update to current CVS snapshot +- Disable Noversion Patch on i386 temporary + +------------------------------------------------------------------- +Fri Mar 18 14:33:22 CET 2005 - ro@suse.de + +- check-build.sh: require 2.6.11 on x86,x86_64 for build + +------------------------------------------------------------------- +Thu Mar 17 13:57:22 CET 2005 - mls@suse.de + +- nscd: enable hosts cache +- nscd: also watch /etc/resolv.conf +- nscd: check files every 3 seconds +- nscd: deal correctly with missing files + +------------------------------------------------------------------- +Tue Mar 15 15:50:12 CET 2005 - kukuk@suse.de + +- Update to current CVS snapshot. + +------------------------------------------------------------------- +Sat Feb 12 02:49:56 CET 2005 - schwab@suse.de + +- Remove const from __pthread_internal_tsd_address. + +------------------------------------------------------------------- +Fri Feb 11 15:44:31 CET 2005 - schwab@suse.de + +- Update to current CVS. +- Link glibc_post_upgrade against new libc. +- Fix build error with gcc4. + +------------------------------------------------------------------- +Wed Feb 9 10:40:29 CET 2005 - kukuk@suse.de + +- Update to current CVS +- Fix bindresvport blacklist handling. +- Increase buffer in tst-cancel17 to match new kernel buffer size + [#50277] +- Enable LinuxThreads again +- Remove ia64-audit patch (is upstream) + +------------------------------------------------------------------- +Mon Feb 7 13:15:58 CET 2005 - aj@suse.de + +- Add patch to allow compilation with gcc4. + +------------------------------------------------------------------- +Mon Jan 31 16:33:47 CET 2005 - schwab@suse.de + +- Readd support for LD_AUDIT on ia64. + +------------------------------------------------------------------- +Mon Jan 31 14:32:01 CET 2005 - kukuk@suse.de + +- Add memory clobber to string inline assemblies on s390 [#50284]. + +------------------------------------------------------------------- +Mon Jan 31 12:55:59 CET 2005 - kukuk@suse.de + +- Fix filelist on i686 if we build NPTL only version + +------------------------------------------------------------------- +Mon Jan 31 09:17:33 CET 2005 - aj@suse.de + +- Generate new ULPs file for i386 needed by GCC 4. + +------------------------------------------------------------------- +Sun Jan 30 12:43:56 CET 2005 - kukuk@suse.de + +- Include own copy of texi2html +- Add glibc_pst_upgrade program (based on version from FC3) +- Update to current CVS + +------------------------------------------------------------------- +Thu Jan 27 23:28:57 CET 2005 - kukuk@suse.de + +- Re-add patch for timezone/zic.c (got lost with last merge) + +------------------------------------------------------------------- +Wed Jan 26 11:34:36 CET 2005 - kukuk@suse.de + +- Update timezone data to 2005c release (fixes zdump crash on + 64bit architectures) + +------------------------------------------------------------------- +Sat Jan 22 15:45:25 CET 2005 - schwab@suse.de + +- Add basic (incomplete) support for LD_AUDIT on ia64. + +------------------------------------------------------------------- +Fri Jan 21 11:00:08 CET 2005 - kukuk@suse.de + +- Enable patch for [Bug #49833] +- Allow to build NPTL only glibc +- Update to CVS from Jan 16, 2005, containing: +- Fix execlp argument in SunRPC code [glibc #681] +- Fix errno return values for futimes [glibc #633] +- Update FPU function on PPC/PPC64 [Bug #49764] + +------------------------------------------------------------------- +Mon Jan 17 10:40:24 CET 2005 - aj@suse.de + +- Enable amd64 string patch again after fixing failing hunks. +- Handle missing cpuid better for amd64 string functions. [#49803] + +------------------------------------------------------------------- +Sat Jan 15 16:05:36 CET 2005 - aj@suse.de + +- Fix amd64 string patch to use correct datatype. + +------------------------------------------------------------------- +Fri Jan 14 14:06:43 CET 2005 - kukuk@suse.de + +- Fix memory corruption in getgrouplist function [Bug #49833] + +------------------------------------------------------------------- +Tue Jan 11 11:01:26 CET 2005 - kukuk@suse.de + +- Enable all LinuxThreads tests again +- Finalize getconf -a patch (make it compatible with Solaris) +- Rewrite getconf manual page and mention new option +- Merge GB18030 patches into one. + +------------------------------------------------------------------- +Thu Dec 30 10:57:40 CET 2004 - kukuk@suse.de + +- Merge kernel-headers.remove-SO_BSDCOMPAT.diff with + kernel-headers.SuSE.diff +- Revert nscd paths on old SuSE Linux distributions + +------------------------------------------------------------------- +Wed Dec 29 22:33:00 CET 2004 - kukuk@suse.de + +- Update to glibc 2.3.90 CVS branch +- Remove alarm-round.patch (merged upstream) + +------------------------------------------------------------------- +Thu Dec 9 14:19:05 CET 2004 - kukuk@suse.de + +- Update to current CVS +- Move nscd persistent database files back to /var/run/nscd + +------------------------------------------------------------------- +Mon Dec 6 15:43:08 CET 2004 - kukuk@suse.de + +- Update to current CVS +- Fix more kernel headers for userland inclusion + +------------------------------------------------------------------- +Fri Nov 26 14:33:20 CET 2004 - ro@suse.de + +- kernel-headers.diff: define __force in compiler.h + +------------------------------------------------------------------- +Thu Nov 25 17:52:39 CET 2004 - schwab@suse.de + +- Add Intel libm update. + +------------------------------------------------------------------- +Thu Nov 25 12:08:17 CET 2004 - kukuk@suse.de + +- Update to current glibc CVS +- Update kernel headers to 2.6.9 + +------------------------------------------------------------------- +Thu Nov 18 15:11:32 CET 2004 - kukuk@suse.de + +- Update to current glibc CVS + +------------------------------------------------------------------- +Mon Nov 15 14:11:27 CET 2004 - kukuk@suse.de + +- Update to current glibc CVS + +------------------------------------------------------------------- +Mon Nov 8 10:50:27 CET 2004 - kukuk@suse.de + +- Blacklist port 921 (lwresd) for usage by bindresvport() +- Update to current glibc CVS +- Add /var/run/nscd/* files as ghost entries + +------------------------------------------------------------------- +Mon Oct 18 13:54:04 CEST 2004 - aj@suse.de + +- Don't use special fdim functions for x86-64 since those give + wrong results for fdim (inf,inf). +- Fix ppc64 rebuild issue with ppc32 system [#47325]. + +------------------------------------------------------------------- +Wed Oct 13 14:06:55 CEST 2004 - kukuk@suse.de + +- Fix symlink librt.so -> tls/librt.so.1 +- Backout last glob changes +- Disable nptl as default for linking + +------------------------------------------------------------------- +Tue Oct 12 21:12:15 CEST 2004 - kukuk@suse.de + +- Install kernel-headers after merging linuxthreads/NPTL headers + +------------------------------------------------------------------- +Tue Oct 12 09:36:48 CEST 2004 - kukuk@suse.de + +- Update to current CVS snapshot + +------------------------------------------------------------------- +Mon Oct 11 15:11:03 CEST 2004 - kukuk@suse.de + +- Make NPTL default for linking + +------------------------------------------------------------------- +Fri Oct 1 13:34:49 CEST 2004 - kukuk@suse.de + +- Update to current CVS snapshot +- Add workaround for linuxthreads/without-__threads bug +- Remove KDE/ldconfig workaround +- Set SuSE ABI note to 9.3 + +------------------------------------------------------------------- +Sun Sep 26 16:56:19 CEST 2004 - kukuk@suse.de + +- Add lib/nptl/librt.so symlink to tls/librt.so.1 +- Update to current CVS + +------------------------------------------------------------------- +Sat Sep 25 13:43:09 CEST 2004 - kukuk@suse.de + +- Implement mq support for rtkaio and enable it again + +------------------------------------------------------------------- +Fri Sep 24 15:37:08 CEST 2004 - kukuk@suse.de + +- Add zh_SG.UTF-8 [Bug #46024] + +------------------------------------------------------------------- +Thu Sep 23 16:22:33 CEST 2004 - kukuk@suse.de + +- Sync sys/mount.h and linux/fs.h + +------------------------------------------------------------------- +Wed Sep 22 15:33:10 CEST 2004 - kukuk@suse.de + +- Make mdns support configurable in /etc/host.conf + +------------------------------------------------------------------- +Mon Sep 20 17:58:13 CEST 2004 - kukuk@suse.de + +- Fix invalidating of nscd caches and getaddrinfo() + +------------------------------------------------------------------- +Fri Sep 17 07:13:01 CEST 2004 - kukuk@suse.de + +- Update to current CVS (nscd and glob.h fixes) + +------------------------------------------------------------------- +Thu Sep 16 16:37:45 CEST 2004 - kukuk@suse.de + +- Fix getaddrinfo/nscd support + +------------------------------------------------------------------- +Wed Sep 15 14:11:29 CEST 2004 - kukuk@suse.de + +- Update to current CVS, remove merged patches + +------------------------------------------------------------------- +Sun Sep 12 09:06:31 CEST 2004 - kukuk@suse.de + +- Update to CVS: Fix nscd crash if one service is disabled +- glob.h: Add workaround for invalid prototypes +- nss_compat: Check that buffer is larger than 0 bytes + +------------------------------------------------------------------- +Sat Sep 11 00:50:47 CEST 2004 - kukuk@suse.de + +- Update to CVS: Fix cdefs.h for C++ usage + +------------------------------------------------------------------- +Fri Sep 10 14:31:47 CEST 2004 - kukuk@suse.de + +- Add lwres to hosts search order in nsswitch.conf +- Update to current CVS +- Use new nscd paths for socket/pid file +- Enable NPTL on i586 +- Add --print-all option to getconf + +------------------------------------------------------------------- +Thu Sep 2 11:13:48 CEST 2004 - kukuk@suse.de + +- Fix NPTL header files on x86-64 for 32bit compilation +- Apply various fixes from CVS +- Remove pre-Install for -devel package (no longer necessary) + +------------------------------------------------------------------- +Wed Aug 25 16:16:32 CEST 2004 - kukuk@suse.de + +- Don't compile in eval.c + +------------------------------------------------------------------- +Mon Aug 23 10:20:09 CEST 2004 - kukuk@suse.de + +- Update to current CVS: + - Use CVS version for last fix. + - Add malloc sanity checks for double free. + +------------------------------------------------------------------- +Sat Aug 21 00:06:58 CEST 2004 - schwab@suse.de + +- Fix cancellable syscalls in librt w/ linuxthreads. + +------------------------------------------------------------------- +Fri Aug 20 20:40:38 CEST 2004 - kukuk@suse.de + +- Update to current CVS [#43993] + +------------------------------------------------------------------- +Thu Aug 19 13:56:15 CEST 2004 - schwab@suse.de + +- Better fix for asm-ia64/gcc_intrin.h. + +------------------------------------------------------------------- +Wed Aug 18 14:53:47 CEST 2004 - kukuk@suse.de + +- Update to current CVS +- Workaround linux/ixjuser.h problem not including compiler.h +- Workaround linux/capi.h problem not including compiler.h + +------------------------------------------------------------------- +Tue Aug 17 18:32:29 CEST 2004 - schwab@suse.de + +- Fix asm-ia64/gcc_intrin.h. + +------------------------------------------------------------------- +Tue Aug 17 12:13:41 CEST 2004 - kukuk@suse.de + +- Workaround broken linux/crc-ccitt.h for usage from glibc [#43884] + +------------------------------------------------------------------- +Mon Aug 16 11:51:37 CEST 2004 - kukuk@suse.de + +- Update to current CVS version and update to + kernel-headers 2.6.8.1 to fix NPTL deadlock problems +- Disable linuxthreads/tst-clock1, does not work on i586 and lower + +------------------------------------------------------------------- +Fri Aug 13 14:45:31 CEST 2004 - kukuk@suse.de + +- Update to current CVS version +- Cleanup/adjust all patches + +------------------------------------------------------------------- +Thu Jun 17 12:12:31 CEST 2004 - kukuk@suse.de + +- Fix sched_setaffinity return/errno code in error case [#42124] + +------------------------------------------------------------------- +Wed Jun 16 07:45:07 CEST 2004 - meissner@suse.de + +- Updated altivec set/get/swapcontext patch to fix + more problems on altivec capable machines [#42039]. +- glibc is also able to build on -pmac64 kernels. + +------------------------------------------------------------------- +Mon Jun 14 20:12:00 CEST 2004 - kukuk@suse.de + +- Add fixes from CVS: + - sysconf return value fixes + - nscd host caching deadlock + - backtrace for s390/s390x/ia64 static linked binaries + +------------------------------------------------------------------- +Mon Jun 14 18:54:05 CEST 2004 - kukuk@suse.de + +- Increase listen backlog in RPC code [#41955] + +------------------------------------------------------------------- +Wed Jun 9 16:21:30 CEST 2004 - meissner@suse.de + +- Fixed typos in powerpc* *context functions to not destroy the r19 + register and save the v19 register correctly. [#41790] + +------------------------------------------------------------------- +Sat Jun 5 08:40:29 CEST 2004 - aj@suse.de + +- Fix makecontext with more than 6 arguments on x86-64 [#40546]. + +------------------------------------------------------------------- +Mon May 24 18:04:38 CEST 2004 - kukuk@suse.de + +- Update to kernel-headers 2.6.6 +- Update to current glibc CVS +- Disable rtkaio temporary + +------------------------------------------------------------------- +Sun May 23 21:44:19 CEST 2004 - kukuk@suse.de + +- Fix pthread_cond_wait on not ix86 and x86-64 architectures + +------------------------------------------------------------------- +Thu May 20 14:11:47 CEST 2004 - kukuk@suse.de + +- Add PPC64 kernel header file fixes [#40831,#40870] + +------------------------------------------------------------------- +Wed May 19 16:18:37 CEST 2004 - kukuk@suse.de + +- Add additional NPTL fixes from CVS + +------------------------------------------------------------------- +Tue May 18 10:52:27 CEST 2004 - schwab@suse.de + +- Fix mapping of DSOs with holes. + +------------------------------------------------------------------- +Fri May 14 13:50:37 CEST 2004 - schwab@suse.de + +- Fix rounding in alarm [#40552]. + +------------------------------------------------------------------- +Wed May 12 11:43:38 CEST 2004 - schwab@suse.de + +- Fix uninitialized array in regexp compiler [#40009]. + +------------------------------------------------------------------- +Tue May 11 11:45:08 CEST 2004 - kukuk@suse.de + +- Apply lot of fixes from current CVS +- Fix alignment of stack for makecontext on x86-64 [Bug #39413] +- Make XTABS identical to TABDLY on PPC + +------------------------------------------------------------------- +Wed May 5 13:50:51 CEST 2004 - kukuk@suse.de + +- Add some header fixes to match POSIX + +------------------------------------------------------------------- +Tue May 4 11:27:15 CEST 2004 - meissner@suse.de + +- Fix INLINE_SYSCALL on ppc and ppc64 (see #38399) + +------------------------------------------------------------------- +Mon May 3 13:42:12 CEST 2004 - kukuk@suse.de + +- Port --mlock option for ld.so from UL1 [Bug #39569] + +------------------------------------------------------------------- +Tue Apr 20 11:23:55 CEST 2004 - kukuk@suse.de + +- Add execstack fix for s390 + +------------------------------------------------------------------- +Mon Apr 19 13:11:27 CEST 2004 - kukuk@suse.de + +- Update to current CVS version (fix problems with new binutils + and gcc) + +------------------------------------------------------------------- +Mon Apr 19 08:29:42 CEST 2004 - kukuk@suse.de + +- Add pthread_getattr_np and syslog fixes from CVS +- Update gb18030 and big5hkscs gconv modules [Bug #39080] + +------------------------------------------------------------------- +Sat Apr 17 17:42:48 CEST 2004 - schwab@suse.de + +- Pacify autobuild. + +------------------------------------------------------------------- +Thu Apr 15 10:07:19 CEST 2004 - kukuk@suse.de + +- Add /etc/ld.so.conf.d/*.conf to /etc/ld.so.conf +- Disable FUTEX_REQUEUE support in NPTL library [Bug #38882] + +------------------------------------------------------------------- +Thu Apr 15 00:37:28 CEST 2004 - schwab@suse.de + +- Remove /usr/i386-linux from ld.so.conf, + +------------------------------------------------------------------- +Wed Apr 14 11:49:05 CEST 2004 - kukuk@suse.de + +- Fix linux/compiler.h for glibc inclusion +- Really fix ffsl on s390x + +------------------------------------------------------------------- +Sat Apr 10 00:42:04 CEST 2004 - schwab@suse.de + +- Fix syntax error in memcmp. + +------------------------------------------------------------------- +Fri Apr 9 16:22:31 CEST 2004 - kukuk@suse.de + +- Update from CVS: linuxthread debug fixes +- Fix INLINE_SYSCALL on x86-64 and ia64 (fixes #38399) +- Fix ffsl weak alias on s390x +- Update to 2.6.5 kernel headers + +------------------------------------------------------------------- +Thu Apr 8 00:24:46 CEST 2004 - meissner@suse.de + +- forward umount to umount2 on ppc64 because umount syscall + does not exist + +------------------------------------------------------------------- +Mon Apr 5 14:40:18 CEST 2004 - kukuk@suse.de + +- Sync with current CVS (which is nearly identical with most of + our latest patches) + +------------------------------------------------------------------- +Fri Apr 2 14:18:11 CEST 2004 - kukuk@suse.de + +- Make fstatvfs64 working on 32bit architectures +- Add fwrite LFS fix from aj +- Add powerpc fixes from CVS +- Fix wrong errno code for shm_unlink [Bug #38013] + +------------------------------------------------------------------- +Wed Mar 31 09:31:56 CEST 2004 - kukuk@suse.de + +- Add three fixes from CVS: + - Call __nptl_deallocate_tsd for main thread, too + - setgroups: optimizations for huge number of groups + - initgroups: Limit the initial allocation to 64 entries + +------------------------------------------------------------------- +Tue Mar 30 17:36:18 CEST 2004 - kukuk@suse.de + +- Add IUTF8 to bits/termios.h [Bug #34725] +- *affinitiy.c: Prepend GLIBC_ to version names + +------------------------------------------------------------------- +Sat Mar 27 09:52:53 CET 2004 - kukuk@suse.de + +- Fix wrong return value of getXXbyYY_r in case key was not + found [Bug #37181] +- Fix typo in dl-open +- Don't set errno in NSS NIS module if group was not found + +------------------------------------------------------------------- +Fri Mar 26 12:39:27 CET 2004 - aj@suse.de + +- Add pow10/pow10f aliases for AMD64. + +------------------------------------------------------------------- +Thu Mar 25 16:42:57 CET 2004 - kukuk@suse.de + +- Update to latest CVS snapshot + +------------------------------------------------------------------- +Sat Mar 20 07:49:49 CET 2004 - aj@suse.de + +- Fix further problems with sched_[sg]etaffinity calls. + +------------------------------------------------------------------- +Fri Mar 19 19:57:35 CET 2004 - aj@suse.de + +- Fix sched_setaffinity compile problem. + +------------------------------------------------------------------- +Fri Mar 19 19:44:32 CET 2004 - kukuk@suse.de + +- Remove conflict with special aaa_base version (rpm will handle + this with file conflict) + +------------------------------------------------------------------- +Fri Mar 19 15:43:19 CET 2004 - kukuk@suse.de + +- Add SuSE abi note +- Add madvise patch +- Update to current CVS + +------------------------------------------------------------------- +Wed Mar 17 13:59:14 CET 2004 - kukuk@suse.de + +- Use official NPTL version fix +- Add LD_DEBUG=statistic for x86-64 +- Fix two JB_SIZE redefinitions on PPC +- Add two fixes for execstack + +------------------------------------------------------------------- +Mon Mar 15 08:11:33 CET 2004 - kukuk@suse.de + +- Require kernel 2.6.4 for glibc/NPTL +- Remove siginfo_t/si_band patch (needs to be fixed in kernel) +- Update linuxthreads_db and nptl_db +- Add libidn fixes from CVS + +------------------------------------------------------------------- +Sat Mar 13 19:53:58 CET 2004 - kukuk@suse.de + +- Adjust filelist (remove libcidn.a and libcidn_p.a) + +------------------------------------------------------------------- +Sat Mar 13 16:01:42 CET 2004 - kukuk@suse.de + +- Update to current CVS (merge of patches) +- Fix siginfo_t/si_band [Bug #34330] + +------------------------------------------------------------------- +Thu Mar 11 18:35:05 CET 2004 - mls@suse.de + +- Add mdns support to resolver library + +------------------------------------------------------------------- +Thu Mar 11 16:01:43 CET 2004 - kukuk@suse.de + +- Update kernel headers to 2.6.4 +- Update to current glibc CVS + +------------------------------------------------------------------- +Wed Mar 10 15:44:25 CET 2004 - bg@suse.de + +- Update hppa patches. + +------------------------------------------------------------------- +Mon Mar 8 15:19:01 CET 2004 - kukuk@suse.de + +- Fix vDSO on IA64 + +------------------------------------------------------------------- +Mon Mar 8 13:25:48 CET 2004 - kukuk@suse.de + +- Update from glibc CVS: + - Add libidn + - Lot of dynamic loader changes + +------------------------------------------------------------------- +Thu Mar 4 10:50:09 CET 2004 - kukuk@suse.de + +- Update from glibc CVS: + - Fix posix_fadvise vs. posix_fadvise64 + +------------------------------------------------------------------- +Tue Mar 2 16:51:44 CET 2004 - kukuk@suse.de + +- Fix PPC kernel header files +- Update from glibc CVS + - NPTL fixes + - nscd fixes + +------------------------------------------------------------------- +Tue Mar 2 12:11:38 CET 2004 - schwab@suse.de + +- Fix ppc32 to always use stat64 syscall. + +------------------------------------------------------------------- +Sat Feb 28 17:30:17 CET 2004 - kukuk@suse.de + +- Update from glibc CVS: + - Fix compiler warnings + - NPTL: Don't use CLONE_STOPPED + - Revert vDSO changes + +------------------------------------------------------------------- +Fri Feb 27 10:05:48 CET 2004 - kukuk@suse.de + +- Update from glibc CVS: + - Real NGROUP_MAX fix + - Lot of NPTL fixes + - clock_settime fix +- Add no_NO back (required by OpenI18N spec and [Bug #34745]) + +------------------------------------------------------------------- +Thu Feb 26 14:52:07 CET 2004 - kukuk@suse.de + +- Workaround broken NGROUP_MAX function + +------------------------------------------------------------------- +Thu Feb 26 12:10:37 CET 2004 - kukuk@suse.de + +- Add insserv PreRequires for nscd +- Update from CVS: NPTL and getaddrinfo memory leak fixes, + Get NGROUP_MAX from /proc filesystem + +------------------------------------------------------------------- +Sat Feb 21 06:22:23 CET 2004 - kukuk@suse.de + +- Update from CVS: IA64 relo fix, lot of PPC fixes +- Fix linux/mod_devicetable.h for userland inclusion +- Enable NPTL on Alpha + +------------------------------------------------------------------- +Fri Feb 20 01:08:26 CET 2004 - schwab@suse.de + +- Fix pthread_barrier_wait. + +------------------------------------------------------------------- +Thu Feb 19 09:46:46 CET 2004 - kukuk@suse.de + +- Update from CVS: More NPTL fixes +- nscd.init: Cleanups + +------------------------------------------------------------------- +Wed Feb 18 15:49:09 CET 2004 - kukuk@suse.de + +- Kernel Headers: Fix asm-ppc/unaliged.h, asm-ppc/types.h and + asm-ppc/bitops.h for userland inclusion. + +------------------------------------------------------------------- +Wed Feb 18 11:24:35 CET 2004 - bg@suse.de + +- Update hppa patches for current glibc +- Add workaround for ICE in hppa + +------------------------------------------------------------------- +Tue Feb 17 13:54:28 CET 2004 - kukuk@suse.de + +- Update from CVS: + - PPC nptl compatiblity fix + - NSCD patches merged + - ld.so.preload: Igreno missing files + - getaddrinfo: Fix problem with IPv6 addresses + +------------------------------------------------------------------- +Tue Feb 17 11:42:59 CET 2004 - aj@suse.de + +- Fix string optimizations init code on AMD64. + +------------------------------------------------------------------- +Sat Feb 14 07:10:42 CET 2004 - kukuk@suse.de + +- Update from CVS (for NPTL fixes and new PPC longjmp) +- Fix nscd deadlock with kernel 2.6 [Bug #34507] + +------------------------------------------------------------------- +Fri Feb 13 14:19:25 CET 2004 - aj@suse.de + +- Add more string/memory optimizations for AMD64. + +------------------------------------------------------------------- +Thu Feb 12 17:07:08 CET 2004 - kukuk@suse.de + +- Fix regex bug with invalid UTF-8 strings + +------------------------------------------------------------------- +Thu Feb 12 16:31:51 CET 2004 - aj@suse.de + +- Add more string optimizations for AMD64. + +------------------------------------------------------------------- +Wed Feb 11 16:14:53 CET 2004 - kukuk@suse.de + +- Update to current CVS snapshot +- Fix _IOC_TYPECHECK on s390/s390x/parisc +- Compile rtkaio only with NPTL +- Remove glibcbug (was dropped since glibc uses bugzilla now) +- Disable parallel build on s390x + +------------------------------------------------------------------- +Tue Feb 10 15:38:37 CET 2004 - schwab@suse.de + +- Work around invalid use of kernel headers in some packages. + +------------------------------------------------------------------- +Fri Feb 6 19:57:04 CET 2004 - kukuk@suse.de + +- Add kernel stat fix for PPC +- Add fix for off-by-one error in regex code + +------------------------------------------------------------------- +Thu Feb 5 18:04:45 CET 2004 - kukuk@suse.de + +- Update kernel header files to 2.6.2 + +------------------------------------------------------------------- +Tue Feb 3 17:14:38 CET 2004 - bg@suse.de + +- Update hppa patch + +------------------------------------------------------------------- +Tue Feb 3 16:24:47 CET 2004 - kukuk@suse.de + +- Fix ypclnt speedup patch +- Update to current CVS snapshot + +------------------------------------------------------------------- +Mon Jan 26 13:44:39 CET 2004 - kukuk@suse.de + +- Update to current CVS snapshot + +------------------------------------------------------------------- +Wed Jan 21 10:23:42 CET 2004 - aj@suse.de + +- Do not run in parallel on s390. + +------------------------------------------------------------------- +Mon Jan 19 15:49:51 CET 2004 - ro@suse.de + +- really fix linux/percpu.h to compile in userland + +------------------------------------------------------------------- +Fri Jan 16 11:14:49 CET 2004 - kukuk@suse.de + +- Update version.h to 2.6.1 +- Fix linux/percpu.h to compile in userland +- Update to current CVS snapshot +- Revert nscd path changes + +------------------------------------------------------------------- +Wed Jan 14 12:06:13 CET 2004 - kukuk@suse.de + +- Update to Kernel Headers 2.6.1 +- Update to current CVS snapshot +- Don't ignore make check on IA64 any longer + +------------------------------------------------------------------- +Sat Jan 10 01:56:48 CET 2004 - schwab@suse.de + +- Locale no_NO has been renamed to nb_NO. + +------------------------------------------------------------------- +Fri Jan 9 14:09:01 CET 2004 - kukuk@suse.de + +- Temporary ignore make check on IA64 and PPC + (known kernel/compiler bugs) + +------------------------------------------------------------------- +Fri Jan 9 00:36:51 CET 2004 - stepan@suse.de + +- fix v4l2 headers + +------------------------------------------------------------------- +Wed Jan 7 13:09:26 CET 2004 - kukuk@suse.de + +- Update to glibc CVS from 20040107 +- Remove manual pages which are now part of man-pages + +------------------------------------------------------------------- +Thu Dec 18 13:41:37 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031218 +- Update ot final 2.6.0 kernel headers +- Fix syntax error in spec file +- Update HPPA patch + +------------------------------------------------------------------- +Mon Dec 15 19:19:08 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031215 + +------------------------------------------------------------------- +Fri Dec 12 10:19:52 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031212 +- disable rtkaio (does not work with kernel 2.6 yet) + +------------------------------------------------------------------- +Fri Dec 5 10:00:28 CET 2003 - kukuk@suse.de + +- Update to glibc 2.3.3 CVS +- Make an extra sub package for nscd + +------------------------------------------------------------------- +Thu Nov 27 13:08:32 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031127 +- Add nsswitch.conf (moved from aaa_base) +- Add ld.so.conf (moved from aaa_base) [Bug #33277] +- Fix ceil on AMD64 + +------------------------------------------------------------------- +Fri Nov 21 14:40:29 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031121 +- Obsolete epoll (glibc-devel contains now this header files) + +------------------------------------------------------------------- +Wed Nov 19 15:54:58 CET 2003 - kukuk@suse.de + +- Add patch so that ld.so supports linuxthreads and nptl +- PPC64 requires kernel 2.4.21 +- Update to glibc CVS from 20031119 + +------------------------------------------------------------------- +Fri Nov 14 14:05:38 CET 2003 - bg@suse.de + +- Add hppa patches for current glibc. + +------------------------------------------------------------------- +Fri Nov 14 13:32:06 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031114 +- Remove PPC64 symbol version patch + +------------------------------------------------------------------- +Thu Nov 13 12:10:15 CET 2003 - schwab@suse.de + +- Fix last change covering libNoVersion. + +------------------------------------------------------------------- +Mon Nov 10 16:52:09 CET 2003 - schwab@suse.de + +- Specfile cleanup. + +------------------------------------------------------------------- +Thu Nov 6 14:10:17 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031106 + +------------------------------------------------------------------- +Wed Nov 5 15:26:06 CET 2003 - uli@suse.de + +- added a number of ARM fixes (glibc-2.3.2-armformat.patch, + glibc-armisa.patch, glibc-sjlj.patch) + +------------------------------------------------------------------- +Mon Oct 27 21:13:09 CET 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031027 +- kernel headers: update to 2.6.0-test9 +- nptl: Use -fno-unit-at-a-time on AMD64, too + +------------------------------------------------------------------- +Thu Oct 23 13:34:25 CEST 2003 - kukuk@suse.de + +- Update to current CVS version + +------------------------------------------------------------------- +Wed Oct 22 19:01:37 CEST 2003 - kukuk@suse.de + +- nptl: Fix prototype in configure script +- nptl: Use -fno-unit-at-a-time +- locale: Add nb_NO + +------------------------------------------------------------------- +Fri Oct 17 16:56:58 CEST 2003 - kukuk@suse.de + +- Increase timeout for make check on overloaded architectures + +------------------------------------------------------------------- +Thu Oct 16 18:19:13 CEST 2003 - kukuk@suse.de + +- Fix building as normal user + +------------------------------------------------------------------- +Wed Oct 15 16:31:32 CEST 2003 - kukuk@suse.de + +- Fix putpwent/putgrent +- Make build as normal user + +------------------------------------------------------------------- +Tue Oct 14 21:13:25 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031014 + +------------------------------------------------------------------- +Tue Oct 14 13:26:06 CEST 2003 - aj@suse.de + +- Fix w_acosf for AMD64. + +------------------------------------------------------------------- +Tue Oct 14 10:49:36 CEST 2003 - kukuk@suse.de + +- Fix asm-sparc/kbio.h to compile kbdrate/X11 + +------------------------------------------------------------------- +Mon Oct 13 12:11:53 CEST 2003 - kukuk@suse.de + +- Update to kernel header files from 2.6.0-test7 + +------------------------------------------------------------------- +Fri Oct 10 17:11:01 CEST 2003 - schwab@suse.de + +- Fix misnamed syscalls. + +------------------------------------------------------------------- +Tue Oct 7 21:13:09 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031007 + +------------------------------------------------------------------- +Fri Oct 3 09:12:38 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20031003 +- Fix kernel ioctl header files for PPC/PPC64 +- Removed dl-reloc.c fix, merged upstream + +------------------------------------------------------------------- +Wed Oct 1 16:49:19 CEST 2003 - kukuk@suse.de + +- Update to glibc cvs from 20031001 +- Remove sysmacros.h fix, merged upstream +- Add dl-reloc.c fix for compiler warnings + +------------------------------------------------------------------- +Mon Sep 29 11:49:19 CEST 2003 - kukuk@suse.de + +- Update kernel-headers to 2.6.0-test6 +- Fix sysmacros.h to compile with -ansi + +------------------------------------------------------------------- +Sat Sep 27 20:58:07 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20030927 +- Remove SO_BSDCOMPAT (obsoleted by kernel) +- Make _IOC_TYPECHECK useable for userland programs + +------------------------------------------------------------------- +Fri Sep 26 10:01:15 CEST 2003 - kukuk@suse.de + +- Remove obsolete patches +- Update to crypt_blowfish 0.4.5 + +------------------------------------------------------------------- +Fri Sep 26 08:51:10 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20030926 +- Update to nptl 0.60 + +------------------------------------------------------------------- +Sat Sep 20 21:13:04 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20030920 +- Update to nptl 0.59 + +------------------------------------------------------------------- +Wed Sep 17 12:13:35 CEST 2003 - kukuk@suse.de + +- Disable TLS for i586 glibc [Bug #31034] + +------------------------------------------------------------------- +Tue Sep 16 15:38:19 CEST 2003 - kukuk@suse.de + +- Remove db1.85 + +------------------------------------------------------------------- +Mon Sep 15 21:30:51 CEST 2003 - kukuk@suse.de + +- Update to glibc CVS from 20030915 + +------------------------------------------------------------------- +Mon Sep 15 18:43:19 CEST 2003 - kukuk@suse.de + +- Update to kernel 2.6.0-test5 header files + +------------------------------------------------------------------- +Sat Sep 13 07:01:40 CEST 2003 - kukuk@suse.de + +- Add librtkaio, a librt using kernel aio + +------------------------------------------------------------------- +Thu Sep 11 16:59:49 CEST 2003 - kukuk@suse.de + +- Update to current CVS +- Remove patches which are merged in CVS +- Update to nptl-0.58 +- Remove _POSIX_VERSION hack + +------------------------------------------------------------------- +Thu Sep 11 16:59:49 CEST 2003 - kukuk@suse.de + +- version.h: Fix comment how to compile kernel modules + +------------------------------------------------------------------- +Wed Sep 10 19:27:05 CEST 2003 - aj@suse.de + +- Install en_US.ISO-8859-15 under this name [#30373]. + +------------------------------------------------------------------- +Tue Sep 9 14:22:02 CEST 2003 - aj@suse.de + +- Fix last patch. + +------------------------------------------------------------------- +Mon Sep 8 18:20:56 CEST 2003 - aj@suse.de + +- Fix setting up of user signal handler in linuxthreads on x86_64. + +------------------------------------------------------------------- +Fri Sep 5 13:44:13 CEST 2003 - kukuk@suse.de + +- Add dl-tls.c to fix out of memory with static TLS errors + +------------------------------------------------------------------- +Wed Sep 3 21:03:13 CEST 2003 - kukuk@suse.de + +- Update glibc-linuxthreads +- Set _POSIX_VERSION back to 199209 + +------------------------------------------------------------------- +Mon Sep 1 18:23:49 CEST 2003 - kukuk@suse.de + +- Fix typo in nss_compat patch + +------------------------------------------------------------------- +Mon Sep 1 09:13:14 CEST 2003 - kukuk@suse.de + +- Add opendir fix for usage with NPTL +- Fix getspnam/getspent in nss_compat [Bug #29689] +- Set _POSIX2_VERSION back to 199209 + +------------------------------------------------------------------- +Wed Aug 27 15:22:40 CEST 2003 - kukuk@suse.de + +- Update to current CVS version + +------------------------------------------------------------------- +Mon Aug 25 09:35:41 CEST 2003 - kukuk@suse.de + +- Update to current CVS version + +------------------------------------------------------------------- +Mon Aug 18 21:17:25 CEST 2003 - aj@suse.de + +- increase stack size for linuxthreads/set-context. + +------------------------------------------------------------------ +Mon Aug 18 13:23:00 CEST 2003 - aj@suse.de + +- Fix mathinline.h for i386 to compile under C++ without warnings. + +------------------------------------------------------------------- +Sun Aug 17 09:59:25 CEST 2003 - ro@suse.de + +- kernel-headers.dif: don't include device.h from videodev.h + +------------------------------------------------------------------- +Fri Aug 15 10:39:49 CEST 2003 - kukuk@suse.de + +- Update to current cvs (fixes assert usage in C++ source code) + +------------------------------------------------------------------- +Thu Aug 14 10:34:27 CEST 2003 - kukuk@suse.de + +- Initialize fp->_mode for glibc 2.0 compatibility [Bug #28386] +- On i686, include glibc with and without floating stack enabled +- Update to current cvs +- Update to nptl 0.56 + +------------------------------------------------------------------- +Thu Jul 31 16:57:36 CEST 2003 - kukuk@suse.de + +- Reenable new quota.h + +------------------------------------------------------------------- +Wed Jul 30 09:59:21 CEST 2003 - kukuk@suse.de + +- Update to current cvs +- Update kernel headers to 2.6.0-test2 +- Disable sys/quota.h update +- Enable TLS on AMD64 again + +------------------------------------------------------------------- +Mon Jul 28 17:18:33 CEST 2003 - kukuk@suse.de + +- Update to current cvs +- Disable TLS on AMD64 temporary +- Update sys/quota.h to match new kernel implementation + +------------------------------------------------------------------- +Fri Jul 25 10:14:44 CEST 2003 - kukuk@suse.de + +- Update to current cvs +- Update kernel headers to 2.6.0-test1 +- Update to nptl 0.55 +- Change minimal symbol version on PPC64 back to 2.2.5 + +------------------------------------------------------------------- +Wed Jul 23 18:13:40 CEST 2003 - meissner@suse.de + +- Fixed systemcall clobber lists for asm-ppc/unistd.h (by just + merging over the asm-ppc64 things). + +------------------------------------------------------------------- +Wed Jul 23 12:59:04 CEST 2003 - aj@suse.de + +- Handle in ldconfig konqueror.so and other similar KDE hacks that fail without + rpath. +- Fix bugs exposed by unit-at-a-time option. + +------------------------------------------------------------------- +Fri Jul 18 07:27:47 CEST 2003 - aj@suse.de + +- Fix compilation with unit-at-a-time enabled compiler. +- Enlarge stack for tst-setcontext test. + +------------------------------------------------------------------- +Mon Jun 30 13:09:25 CEST 2003 - kukuk@suse.de + +- Update to current CVS (includes if_arp.h and nss_compat changes) +- Update to nptl 0.50 +- Kernel header fixes for userland inclusion + +------------------------------------------------------------------- +Wed Jun 25 09:34:17 CEST 2003 - kukuk@suse.de + +- Update to current CVS +- Add target host and CVS checkout to glibc version printout +- Adjust fnmatch fix +- Update kernel headers to 2.5.73 + +------------------------------------------------------------------- +Tue Jun 24 23:09:11 CEST 2003 - kukuk@suse.de + +- Fix typos in syscalls.list on Alpha + +------------------------------------------------------------------- +Mon Jun 23 10:53:41 CEST 2003 - kukuk@suse.de + +- fix typo in linuxthreads on SPARC +- Update to current CVS +- Update to nptl 0.48 + +------------------------------------------------------------------- +Thu Jun 19 11:10:55 CEST 2003 - kukuk@suse.de + +- Disable nss_compat patch again + +------------------------------------------------------------------- +Wed Jun 18 10:51:07 CEST 2003 - kukuk@suse.de + +- Fix reading of locale.alias file +- Update to current CVS snapshot +- Update to nptl 0.47 +- Some kernel header file fixes for PPC64/IA64 +- Update nss_compat patch + +------------------------------------------------------------------- +Thu Jun 12 23:42:09 CEST 2003 - kukuk@suse.de + +- Update to current CVS snapshot +- Finish patch for printing linker warning + +------------------------------------------------------------------- +Wed Jun 11 11:45:42 CEST 2003 - kukuk@suse.de + +- Update to nptl 0.45 +- Update to current CVS snapshot +- Add patch to print linker warning, if a static binary calls + functions using NSS + +------------------------------------------------------------------- +Tue Jun 10 16:46:47 CEST 2003 - kukuk@suse.de + +- Use %find_lang macro and cleanup glibc-locale filelist + +------------------------------------------------------------------- +Thu Jun 5 17:28:36 CEST 2003 - kukuk@suse.de + +- Complete mathinline.h fixes + +------------------------------------------------------------------- +Thu Jun 5 10:10:02 CEST 2003 - kukuk@suse.de + +- linux/compiler.h: Define all inline variants to __inline__ + +------------------------------------------------------------------- +Wed Jun 4 14:29:07 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Update to nptl 0.43 +- More kernel header fixes +- Make --no-archive default for localedef + +------------------------------------------------------------------- +Tue May 27 14:09:31 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Update to nptl 0.40 +- Disable nss_compat patch +- Update to kernel headers from 2.5.70 + +------------------------------------------------------------------- +Fri May 23 10:50:37 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Add patches to make nss_compat work with every service + +------------------------------------------------------------------- +Mon May 19 10:57:13 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Add patch for better binary compatibility (errno, h_errno) + +------------------------------------------------------------------- +Fri May 16 09:32:39 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Update to nptl 0.39 +- Add URL tag +- asm-i386/byteorder.h: fix asm vs. __asm__ + +------------------------------------------------------------------- +Wed May 14 22:31:52 CEST 2003 - schwab@suse.de + +- Fix missing syscall numbers on ia64. + +------------------------------------------------------------------- +Wed May 14 08:59:09 CEST 2003 - kukuk@suse.de + +- More kernel headers fixes for i386, ia64, ppc and s390 + +------------------------------------------------------------------- +Mon May 12 16:49:51 CEST 2003 - kukuk@suse.de + +- Update to current glibc CVS snapshot +- Fix lot of more kernel headers +- Adjust netinet/igmp.h patch +- Copy linux/version.h in place before compiling glibc + +------------------------------------------------------------------- +Fri May 9 13:25:08 CEST 2003 - kukuk@suse.de + +- Fix bits/stdio.h +- Fix lot of kernel headers to work in userspace +- Fix netinet/igmp.h +- Enable TLS on PPC + +------------------------------------------------------------------- +Wed May 7 10:58:25 CEST 2003 - kukuk@suse.de + +- Update CVS snapshot +- Enable TLS on IA64 +- Update to nptl 0.37 +- Update kernel-headers to 2.5.69 + +------------------------------------------------------------------- +Thu Apr 24 12:20:23 CEST 2003 - ro@suse.de + +- fix install_info --delete call and move from preun to postun + +------------------------------------------------------------------- +Fri Apr 11 06:32:25 CEST 2003 - aj@suse.de + +- Do not build locales in parallel. + +------------------------------------------------------------------- +Tue Apr 8 16:12:36 CEST 2003 - kukuk@suse.de + +- Disable TLS for PPC + +------------------------------------------------------------------- +Mon Apr 7 14:16:03 CEST 2003 - kukuk@suse.de + +- Update CVS snapshot + +------------------------------------------------------------------- +Sat Apr 5 09:55:15 CEST 2003 - kukuk@suse.de + +- Disable TLS for ia64 +- Update to nptl 0.34 +- Update to CVS snapshot + +------------------------------------------------------------------- +Fri Apr 4 16:23:39 CEST 2003 - kukuk@suse.de + +- Remove libNoVersion from filelist on alpha +- Add nptl docu + +------------------------------------------------------------------- +Fri Apr 4 10:23:35 CEST 2003 - kukuk@suse.de + +- Update to nptl 0.33 +- Run ldconfig after installation +- Update to CVS snapshot + +------------------------------------------------------------------- +Sat Mar 29 17:47:56 CET 2003 - kukuk@suse.de + +- Update to CVS snapshot +- Add USAGI patches for kernel-headers +- Add nptl on i686 +- Enable --with-tls +- Implement NI_NUMSERICSCOPE for getnameinfo +- Implement AI_V4MAPPED/AI_ALL for getaddrinfo +- Implement AI_ADDRCONFIG for getaddrinfo +- Add USAGI patch for kernel headers + +------------------------------------------------------------------- +Mon Mar 24 21:46:45 CET 2003 - schwab@suse.de + +- Sanitize . + +------------------------------------------------------------------- +Mon Mar 17 08:45:27 CET 2003 - aj@suse.de + +- Fix tst-aio7 testcase and enable it again. +- Enable %fs for x86-64. +- Install en_US.ISO-8859-15 for libstdc++. +- Fix bits/syscalls.h for x86-64. + +------------------------------------------------------------------- +Thu Mar 13 10:36:24 CET 2003 - kukuk@suse.de + +- Revert tcgetattr change [Bug #25173/#25174] + +------------------------------------------------------------------- +Tue Mar 4 15:15:33 CET 2003 - aj@suse.de + +- Fix lround/lrint functions. + +------------------------------------------------------------------- +Sat Mar 1 07:24:22 CET 2003 - aj@suse.de + +- Update to 2.3.2 release. + +------------------------------------------------------------------- +Wed Feb 26 21:45:36 CET 2003 - kukuk@suse.de + +- Update to current cvs snapshot (fixes OOo and mysql problems) + +------------------------------------------------------------------- +Mon Feb 24 17:52:02 CET 2003 - kukuk@suse.de + +- Disable aio7 test on s390(x), too. + +------------------------------------------------------------------- +Mon Feb 24 14:19:20 CET 2003 - kukuk@suse.de + +- Update to current cvs snapshot (post 2.3.2-pre1) +- Remove glibc-2.3-ppc32-textrel.patch, is included in CVS +- Remove libc23-ppc64-cvshead20021210.patch + +------------------------------------------------------------------- +Thu Feb 20 16:19:21 CET 2003 - kukuk@suse.de + +- Update to current cvs snapshot +- Remove glibc-2.3-ppc64-vfork-20030214.patch, seems to be + included already. + +------------------------------------------------------------------- +Wed Feb 19 11:45:35 CET 2003 - olh@suse.de + +- add glibc-2.3-ppc32-textrel.patch + glibc-2.3-ppc64-vfork-20030214.patch + +------------------------------------------------------------------- +Fri Feb 14 14:51:11 CET 2003 - kukuk@suse.de + +- Extend getent to print all IP addresses of one host + +------------------------------------------------------------------- +Thu Feb 13 18:34:50 CET 2003 - kukuk@suse.de + +- Update to current snapshot + +------------------------------------------------------------------- +Wed Feb 12 11:50:54 CET 2003 - kukuk@suse.de + +- Update to current snapshot (contains official fix for #23513) + +------------------------------------------------------------------- +Tue Feb 11 15:28:16 CET 2003 - kukuk@suse.de + +- Update to current snapshot +- Fix corruption of internal data in gethostbyname2 [Bug #23513] + +------------------------------------------------------------------- +Sun Feb 9 12:20:55 CET 2003 - aj@suse.de + +- Fix cancellation of system calls on x86-64. + +------------------------------------------------------------------- +Sat Feb 8 10:43:02 CET 2003 - kukuk@suse.de + +- Fix wrong logic in dynamic resolv.conf patch + +------------------------------------------------------------------- +Fri Feb 7 17:35:12 CET 2003 - kukuk@suse.de + +- Fix access of _res symbol in multithreaded programs +- Add "dynamic resolv.conf" patch to libnss_dns, too. +- Remove obsolete db2 manual pages +- Update to current snapshot (fixes [Bug #23363]) + +------------------------------------------------------------------- +Thu Feb 6 18:06:36 CET 2003 - kukuk@suse.de + +- Update to current snapshot +- Use install-info for info pages + +------------------------------------------------------------------- +Tue Feb 4 20:12:51 CET 2003 - schwab@suse.de + +- Fix regexp parsing. + +------------------------------------------------------------------- +Mon Feb 3 14:44:21 CET 2003 - meissner@suse.de + +- Merged a unistd.h gcc3.3 compliance patch from Franz Sirl for + ppc and ppc64 kernel headers. + +------------------------------------------------------------------- +Fri Jan 31 22:12:03 CET 2003 - schwab@suse.de + +- Fix building on s390[x]. + +------------------------------------------------------------------- +Fri Jan 31 15:20:00 CET 2003 - kukuk@suse.de + +- Update to current glibc cvs + +------------------------------------------------------------------- +Thu Jan 30 16:05:32 CET 2003 - aj@suse.de + +- Fix one build problem on sparc. +- Fix asm-x86_64/mtrr.h. + +------------------------------------------------------------------- +Wed Jan 29 12:57:23 CET 2003 - kukuk@suse.de + +- Update to current glibc cvs +- Fix libm-ulps for x86-64 and ia64 + +------------------------------------------------------------------- +Thu Jan 23 16:47:33 CET 2003 - schwab@suse.de + +- Fix use of DT_FINI_ARRAY. +- Temporarily disable tst-aio7 test on ia64. + +------------------------------------------------------------------- +Tue Jan 14 22:41:33 CET 2003 - schwab@suse.de + +- Fix ia64 for non-tls build. + +------------------------------------------------------------------- +Tue Jan 14 21:51:24 CET 2003 - aj@suse.de + +- Package libpthread_nonshared.a. + +------------------------------------------------------------------- +Mon Jan 13 10:29:36 CET 2003 - kukuk@suse.de + +- Add fixed version of x86-64-linuxthreads-disable-fs.diff +- Readd parts of libm-x86-64.diff +- Update to current cvs snapshot +- Add fix for errno compatibility +- Add s390(x) vfork fixes + +------------------------------------------------------------------- +Sun Jan 12 19:16:13 CET 2003 - kukuk@suse.de + +- Update to current cvs snapshot + +------------------------------------------------------------------- +Fri Jan 3 19:09:36 CET 2003 - bg@suse.de + +- removed obsolete patch for hppa + +------------------------------------------------------------------- +Fri Dec 20 23:15:48 CET 2002 - kukuk@suse.de + +- Update to current cvs snapshot +- Obsoletes glibc-2.3-setjmp-ppc64.diff +- Obsoletes build-alpha.diff +- Obsoletes libm-x86-64.diff +- Disable activate-spinlocks.diff temporary +- Disable x86-64-linuxthreads-disable-fs.diff (breaks compilation) + +------------------------------------------------------------------- +Tue Dec 17 16:01:13 CET 2002 - olh@suse.de + +- remove glibc-2.2.5-ppc64-bits-socket_h.diff + add glibc-2.3-setjmp-ppc64.diff + add libc23-ppc64-cvshead20021210.patch + dont run configure in subshell, it can fail and rpm cant catch it + +------------------------------------------------------------------- +Fri Dec 13 20:01:30 CET 2002 - schwab@suse.de + +- Add more ia64 syscalls. + +------------------------------------------------------------------- +Fri Dec 6 22:06:41 CET 2002 - olh@suse.de + +- build also the locals parallel + do not fail with parallel calculation on lowmem systems + +------------------------------------------------------------------- +Tue Dec 3 11:16:30 CET 2002 - aj@suse.de + +- Build parallel on x86-64. +- Activate fast spinlocks in malloc for x86 and x86-64. +- Integrate new math library from AMD for x86-64. + +------------------------------------------------------------------- +Fri Nov 29 11:08:03 CET 2002 - bg@suse.de + +- Fix build on hppa. + +------------------------------------------------------------------- +Thu Nov 28 21:31:09 CET 2002 - aj@suse.de + +- Fix build on alpha. + +------------------------------------------------------------------- +Thu Nov 28 15:45:09 CET 2002 - aj@suse.de + +- Update to CVS version from 2002-11-28. +- Do not use %fs for threads for now on x86-64. +- Fix fnmatch bug with multibyte strings. + +------------------------------------------------------------------- +Tue Nov 12 12:41:17 CET 2002 - bg@suse.de + +- Updated hppa patches + +------------------------------------------------------------------- +Thu Nov 7 14:00:04 CET 2002 - kukuk@suse.de + +- getaddrinfo(): get host information for AF_INET and AF_INET6 only + from the same service [Bug #21237] + +------------------------------------------------------------------- +Thu Nov 7 12:11:29 CET 2002 - bg@suse.de + +- Fix build of linuxthreads for hppa + +------------------------------------------------------------------- +Tue Nov 5 16:31:11 CET 2002 - bg@suse.de + +- Use current kernel-headers for parisc +- Add support for hppa + +------------------------------------------------------------------- +Tue Nov 5 15:29:32 CET 2002 - kukuk@suse.de + +- Update to current CVS snapshot + +------------------------------------------------------------------- +Tue Oct 22 16:21:34 CEST 2002 - schwab@suse.de + +- Fix ia64 syscall numbers. + +------------------------------------------------------------------- +Mon Oct 21 17:20:04 CEST 2002 - schwab@suse.de + +- Fix alignment in locale-archive. + +------------------------------------------------------------------- +Mon Oct 21 17:16:51 CEST 2002 - kukuk@suse.de + +- Update to glibc 2.3.1 cvs 20021021 +- Remove nss_dns6 patch + +------------------------------------------------------------------- +Tue Oct 15 14:58:34 CEST 2002 - kukuk@suse.de + +- Update to glibc 2.3.1 cvs 20021015 + +------------------------------------------------------------------- +Wed Oct 2 14:06:31 CEST 2002 - kukuk@suse.de + +- Update to glibc 2.3 cvs 20021002 +- Update crypt_blowfish to 0.4.4 (manual page fix, hppa fix) + +------------------------------------------------------------------- +Wed Sep 25 11:43:08 CEST 2002 - mls@suse.de + +- build with -finline-limit=2000 on mips/armv4l + +------------------------------------------------------------------- +Tue Sep 17 14:54:26 CEST 2002 - schwab@suse.de + +- Add new ia64 syscall numbers. + +------------------------------------------------------------------- +Mon Sep 16 17:24:01 CEST 2002 - meissner@suse.de + +- Added AIO syscall numbers for ppc/ppc64, so libaio does not need them. +- Aligned powerpc bits/sem.h to be the same as the other 64bit + archs, keeping the 32bit layout. +- Added the faster ppc32 memset.S from glibc HEAD on request of IBM. + +------------------------------------------------------------------- +Thu Sep 12 15:56:07 CEST 2002 - meissner@suse.de + +- ppc/ppc64: added more biarch things to the SystemV IPC headers + which are needed to get 64bit ipc / IPC_STAT to work. + +------------------------------------------------------------------- +Mon Sep 9 18:52:53 CEST 2002 - bk@suse.de + +- s390x-biarch: use correct wordsize.h(move to main 32/64 directory) +- s390x: requires 64-bit kernel + +------------------------------------------------------------------- +Mon Sep 9 15:40:23 CEST 2002 - kukuk@suse.de + +- Increase minimum value of MAXPACKET in libnss_dns, too + +------------------------------------------------------------------- +Mon Sep 9 14:31:04 CEST 2002 - uli@suse.de + +- all architectures are created equal, but some are more equal + than others; increased DB_FILE_ID_LEN in DB2 to 24 on x86-64, + ia64, s390x and ppc64 to fit 64 bit __ino_t type + +------------------------------------------------------------------- +Fri Sep 6 17:26:53 MEST 2002 - mls@suse.de + +- fix squeeze bug in db-1.85: set dirty flag after page modification + +------------------------------------------------------------------- +Fri Sep 6 15:44:17 CEST 2002 - kukuk@suse.de + +- Increase minimum value of MAXPACKET + +------------------------------------------------------------------- +Mon Sep 2 10:38:40 CEST 2002 - kukuk@suse.de + +- Fix asm header files for sparc/sparc64 + +------------------------------------------------------------------- +Fri Aug 30 13:18:51 CEST 2002 - aj@suse.de + +- Revert linuxthreads for x86-64 for now. + +------------------------------------------------------------------- +Wed Aug 28 16:15:18 CEST 2002 - aj@suse.de + +- Add optimized math routines for x86-64. + +------------------------------------------------------------------- +Tue Aug 27 15:52:49 CEST 2002 - olh@suse.de + +- BuildFlags="$(echo $RPM_OPT_FLAGS | sed 's#-mminimal-toc##')" + +------------------------------------------------------------------- +Mon Aug 26 21:56:22 CEST 2002 - olh@suse.de + +- add ppc64_glibc_2.2.5_sunrpc-fix.patch + * sysdeps/unix/sysv/linux/powerpc/bits/socket.h: New file that adds + __powerpc64__ specific fields and adjust size/alignment for 64-bit. + +------------------------------------------------------------------- +Fri Aug 23 17:04:38 CEST 2002 - aj@suse.de + +- Use floating stacks for x86-64. +- Add LICENSE file. +- Fix profiling code on x86-64. +- Add strcspn, strpbrk and strspn optimizations for x86-64. +- Fix makecontext for x86-64. + +------------------------------------------------------------------- +Thu Aug 15 08:59:16 CEST 2002 - aj@suse.de + +- Use biarch headers already for building so that bits/syscalls.h is + build correctly. +- Fix bits/syscalls.h for x86-64. +- Remove *xattr patches. + +------------------------------------------------------------------- +Thu Aug 8 16:59:27 CEST 2002 - kukuk@suse.de + +- Update to current cvs (calloc variable overflow fixed) +- Apply fix for calloc fix +- Add *xattr system calls and error number + +------------------------------------------------------------------- +Tue Aug 6 12:45:06 CEST 2002 - kukuk@suse.de + +- Update to current cvs (IPv6 fixes) + +------------------------------------------------------------------- +Mon Aug 5 12:29:59 CEST 2002 - aj@suse.de + +- Implement *context functions for x86-64. + +------------------------------------------------------------------- +Sat Aug 3 16:01:07 CEST 2002 - kukuk@suse.de + +- Update kernel-headers to version 2.4.19 +- Add PreRequires "filesystem". + +------------------------------------------------------------------- +Thu Aug 1 18:23:37 CEST 2002 - bk@suse.de + +- added s390-may2002.diff with some chunks from may2002 drop +- give make check a second chance on s390(x), but fail if not(race) + +------------------------------------------------------------------- +Tue Jul 30 11:40:41 CEST 2002 - kukuk@suse.de + +- sunrpc/xdr_array.c: Check for variable overflow +- Ignore failed make check on s390(x) + +------------------------------------------------------------------- +Tue Jul 30 08:31:24 CEST 2002 - aj@suse.de + +- Add optimisations for x86-64. + +------------------------------------------------------------------- +Mon Jul 29 09:38:04 CEST 2002 - kukuk@suse.de + +- Don't allocate/free category name in setlocale() unnecessarily + (for IBM Java [Bug #17065]). + +------------------------------------------------------------------- +Tue Jul 23 13:36:31 CEST 2002 - kukuk@suse.de + +- Update to current glibc cvs (pread/pwrite fixes) +- Remove extra de.po, is in official tarball now. + +------------------------------------------------------------------- +Sat Jul 20 07:14:26 CEST 2002 - aj@suse.de + +- Fix profiling for x86-64. + +------------------------------------------------------------------- +Fri Jul 19 16:26:26 CEST 2002 - meissner@suse.de + +- Fixed the PPC64 patch, several superflous files removed. +- Reenabled make check for ppc64. + +------------------------------------------------------------------- +Wed Jul 17 14:13:58 CEST 2002 - kukuk@suse.de + +- Update to current glibc cvs +- Fix kernel headers for s390/s390x +- Move some binaries/shell scripts and manual pages to the + correct subpackage + +------------------------------------------------------------------- +Tue Jul 16 14:51:48 CEST 2002 - meissner@suse.de + +- Merged latest PowerPC patch from IBM. + * Lots of ppc64 related fixes. + * Start of biarch support. + * Changed struct stat in 64bit ABI. + +------------------------------------------------------------------- +Fri Jul 12 18:29:17 CEST 2002 - aj@suse.de + +- Add biarch patch for s390 and s390x. + +------------------------------------------------------------------- +Mon Jul 8 10:45:49 CEST 2002 - aj@suse.de + +- Add some optimized x86-64 math routines and a fixed lgammal + implementation. +- Testsuite on x86-64 should pass now. +- Run ldconfig in postinstall. +- Fix memleak in catgets. + +------------------------------------------------------------------- +Sat Jul 6 13:38:48 CEST 2002 - kukuk@suse.de + +- Fix typo in create_biarch_asm.sh (asm-sparc path) + +------------------------------------------------------------------- +Thu Jul 4 21:59:43 CEST 2002 - kukuk@suse.de + +- Fix typo in manpages/Makefile +- Fix filelist (on some archs ld-linux.so.2 was missing) + +------------------------------------------------------------------- +Thu Jul 4 10:02:46 CEST 2002 - kukuk@suse.de + +- Revert mktime patch (check for year < 70) +- Replace ifarch i386 with ix86 +- Add patch for arm +- Include pt_chown again + +------------------------------------------------------------------- +Wed Jul 3 16:05:05 CEST 2002 - kukuk@suse.de + +- Add more new manual pages +- Fix spec file (renaming of ld-*, creating of include/asm header + files) +- Update to current CVS version +- Fix kernel-headers for x86-64 (don't overwrite patched version) +- Rename Equador -> Ecuador [Bug #16648] +- Add hint about security problem of host caching with nscd to + config file. + +------------------------------------------------------------------- +Tue Jun 25 14:29:14 CEST 2002 - aj@suse.de + +- Fix dl-machine.h for x86-64 to compile with new binutils. +- Fix mtrr.h header for x86-64. +- Do not package pt_chown. + +------------------------------------------------------------------- +Tue Jun 18 14:28:40 CEST 2002 - sf@suse.de + +- reverted changes from Tue Jun 11 10:04:55 CEST 2002 + (took the kernel-headers from before, readded patch9) +- add new archive with kernel-headers for x86_64 +- add autofs patch + +------------------------------------------------------------------- +Mon Jun 17 17:12:39 CEST 2002 - bk@suse.de + +- remove s390* from the list of archs that ignore check fail + +------------------------------------------------------------------- +Thu Jun 13 20:38:00 CEST 2002 - uli@suse.de + +- fixed typos in spec + +------------------------------------------------------------------- +Thu Jun 13 13:35:43 CEST 2002 - schwab@suse.de + +- Fix ssize_t and __ipc_pid_t for ppc64. + +------------------------------------------------------------------- +Wed Jun 12 09:47:12 CEST 2002 - uli@suse.de + +- fix errlist.c for ARM as well + +------------------------------------------------------------------- +Tue Jun 11 10:04:55 CEST 2002 - sf@suse.de + +- made new kernel-header archive from kernel-source +- added asm-ppc64 to kernel-headers +- removed patch9 as it is obsoleted by the new kernel-headers + +------------------------------------------------------------------- +Fri Jun 7 14:29:30 CEST 2002 - olh@suse.de + +- update asm-ppc64/ioctls.h, missing TIOCGDEV + +------------------------------------------------------------------- +Thu Jun 6 17:57:41 CEST 2002 - olh@suse.de + +- fix glibc-ppc64 patch + +------------------------------------------------------------------- +Thu Jun 6 15:09:16 CEST 2002 - olh@suse.de + +- update ppc64_glibc_ldconfig.diff + +------------------------------------------------------------------- +Thu Jun 6 10:09:24 CEST 2002 - ke@suse.de + +- Update de.po from + http://www.iro.umontreal.ca/contrib/po/teams/PO/de/libc-2.2.5.de.po. +- Use only translated entries to make the testsuite happy; call + msgattrib on de.po and hu.po [# 16438]. + +------------------------------------------------------------------- +Mon Jun 3 09:58:54 CEST 2002 - aj@suse.de + +- Clean up generation of asm includes for bi-arch systems. +- Enable profiling for x86-64. + +------------------------------------------------------------------- +Mon Jun 3 08:52:38 CEST 2002 - kukuk@suse.de + +- Add fix for weak declaration "_old_sys_nerr" +- Remove already disabled alpha patch +- Update to current CVS + +------------------------------------------------------------------- +Sat Jun 1 10:54:41 CEST 2002 - olh@suse.de + +- fix stat for real, wrong size for st_nlink + +------------------------------------------------------------------- +Wed May 29 18:24:57 CEST 2002 - olh@suse.de + +- add ppc64_glibc_2.2.5-types.diff, fixes stat() + +------------------------------------------------------------------- +Wed May 29 10:38:34 CEST 2002 - olh@suse.de + +- add ppc64_glibc_ldconfig.diff for elf32/elf64 coexistance + +------------------------------------------------------------------- +Thu May 23 08:32:00 MEST 2002 - aj@suse.de + +- Rename __thread to fix problems with GCC 3.2. + +------------------------------------------------------------------- +Mon May 20 11:37:42 CEST 2002 - olh@suse.de + +- add ppc64 kernel headers + add create_ppc_asm.sh + update ppc64 patch, use /lib64/ld64.so.1 + move generic syscalls.list to ppc64/32 + set/getrlimit GLIBC2.0 is ppc32 only + use parallel make on ppc and ppc64 + do not chroot as user + cleanup nested ifarch for dynamic linker + +------------------------------------------------------------------- +Wed May 15 10:25:45 CEST 2002 - aj@suse.de + +- Fix building of linuxthreads with current GCC. + +------------------------------------------------------------------- +Mon May 13 10:04:37 CEST 2002 - olh@suse.de + +- fix ppc64 RTLDLIST ld64.so rewrite + +------------------------------------------------------------------- +Sat May 11 02:09:06 CEST 2002 - schwab@suse.de + +- Add div/mod compatibility functions for ia64. + +------------------------------------------------------------------- +Fri May 10 13:56:59 CEST 2002 - olh@suse.de + +- add ppc64 support + +------------------------------------------------------------------- +Thu May 9 10:06:19 CEST 2002 - aj@suse.de + +- Add sys/io.h for x86-64. + +------------------------------------------------------------------- +Mon May 6 18:12:51 CEST 2002 - ihno@suse.de + +- corrected memory calculation for parallel build + +------------------------------------------------------------------- +Fri May 3 16:28:23 CEST 2002 - kukuk@suse.de + +- Add fix to compile math.h on SPARC with g++ + +------------------------------------------------------------------- +Thu May 2 11:29:29 CEST 2002 - kukuk@suse.de + +- Update to current CVS 2.2 branch +- Add x86-64 fix for crti.o and /usr/lib64 with libpthread + +------------------------------------------------------------------- +Fri Apr 26 16:51:48 CEST 2002 - kukuk@suse.de + +- define sqrtl alias for PowerPC + +------------------------------------------------------------------- +Mon Apr 22 07:56:00 CEST 2002 - aj@suse.de + +- Fix vfork for x86-64. +- Fix handling of ld.so.cache for x86-64. + +------------------------------------------------------------------- +Thu Apr 18 09:16:58 CEST 2002 - aj@suse.de + +- Allow testsuite to fail for x86-64. +- Add ULPs for x86-64. + +------------------------------------------------------------------- +Wed Apr 17 16:36:51 CEST 2002 - kukuk@suse.de + +- Update to current snapshot (mktime and dl fixes) +- Update hu.po +- Do not build a profiled glibc for x86-64 + +------------------------------------------------------------------- +Fri Apr 12 10:33:31 CEST 2002 - kukuk@suse.de + +- Update to current snapshot (fix SPARC compile) +- Revert do-lookup.h patch on Alpha (does not work here) + +------------------------------------------------------------------- +Wed Apr 10 15:09:33 CEST 2002 - aj@suse.de + +- Fix linuxthreads for x86-64. + +------------------------------------------------------------------- +Wed Apr 10 13:02:48 CEST 2002 - aj@suse.de + +- Add x86-64.diff to fix glob64. + +------------------------------------------------------------------- +Wed Apr 10 10:26:22 CEST 2002 - kukuk@suse.de + +- Update kernel-headers to 2.4.19pre4 (with x86-64 support) +- Update glibc to current cvs snapshot +- Allow old currencies (before EUR) + +------------------------------------------------------------------- +Tue Apr 2 15:58:49 CEST 2002 - aj@suse.de + +- Update ULPs. + +------------------------------------------------------------------- +Thu Mar 21 16:18:58 CET 2002 - kukuk@suse.de + +- Create html pages after installation of info pages [Bug #15283] + +------------------------------------------------------------------- +Tue Mar 12 16:09:51 CET 2002 - kukuk@suse.de + +- Add db1 fix if blocksize is not ^2 + +------------------------------------------------------------------- +Sat Mar 2 18:18:15 CET 2002 - kukuk@suse.de + +- Add fix for format string bug + +------------------------------------------------------------------- +Sat Mar 2 10:44:31 CET 2002 - kukuk@suse.de + +- Fix return value of nice wrapper + +------------------------------------------------------------------- +Fri Mar 1 14:33:09 CET 2002 - kukuk@suse.de + +- Add fix for corrupt ut_line +- Add fix for current gcc 3.1 +- Add patch for nice return values + +------------------------------------------------------------------- +Thu Feb 28 14:53:42 CET 2002 - kukuk@suse.de + +- Add fix for rtime, swscanf and ia64 + +------------------------------------------------------------------- +Mon Feb 18 13:22:05 CET 2002 - kukuk@suse.de + +- When a dlopened module references a weak symbol from another + dlopened module (loaded with RTLD_GLOBAL) no dependency was + generated for this fact, so the second module was unloaded even + if the first one was still around. + +------------------------------------------------------------------- +Sun Feb 17 10:51:53 CET 2002 - kukuk@suse.de + +- Add pthread/signal bugfix [Bug #13280] +- Fix directory file list (don't include /usr/include) + +------------------------------------------------------------------- +Thu Feb 14 19:46:04 CET 2002 - kukuk@suse.de + +- Use defattr in spec file to avoid problems with not existing + UIDs and rpm. + +------------------------------------------------------------------- +Thu Feb 14 13:22:13 CET 2002 - aj@suse.de + +- Update ULPs for GCC 3.1. + +------------------------------------------------------------------- +Wed Feb 13 16:03:20 CET 2002 - kukuk@suse.de + +- Apply db1 patch from mls@suse.de to fix rpm problems + +------------------------------------------------------------------- +Tue Feb 12 02:01:42 CET 2002 - ro@suse.de + +- fix owner/group for kernel headers + +------------------------------------------------------------------- +Mon Feb 11 15:17:18 CET 2002 - kukuk@suse.de + +- Add another solution for the glob problem + +------------------------------------------------------------------- +Thu Feb 7 16:20:49 CET 2002 - kukuk@suse.de + +- Add fix for glob (glob should not call globfree) +- Add fix for innetgr + +------------------------------------------------------------------- +Wed Feb 6 22:01:29 CET 2002 - kukuk@suse.de + +- Use correct BuildRoot + +------------------------------------------------------------------- +Wed Feb 6 16:40:49 CET 2002 - kukuk@suse.de + +- Update hu.po + +------------------------------------------------------------------- +Wed Feb 6 15:36:56 CET 2002 - kukuk@suse.de + +- Set LC_CTYPE for error messages in localedef [Bug #12878] + +------------------------------------------------------------------- +Mon Feb 4 14:26:48 CET 2002 - kukuk@suse.de + +- Add fixes from CVS: dynamic loader, readv and writev seg.fault + and various architecture fixes for alpha and mips +- Don't compile with -g on Alpha +- Add fix for possible endless loop fix + +------------------------------------------------------------------- +Fri Feb 1 15:58:41 CET 2002 - bk@suse.de + +- merged s390x lib64 patch and spec file changes + +------------------------------------------------------------------- +Wed Jan 23 15:39:02 CET 2002 - kukuk@suse.de + +- Split glibc into glibc and glibc-locale +- Create more UTF8 locale + +------------------------------------------------------------------- +Mon Jan 21 10:45:19 CET 2002 - kukuk@suse.de + +- Update to official glibc 2.2.5 + +------------------------------------------------------------------- +Wed Jan 16 18:29:33 CET 2002 - kukuk@suse.de + +- Remove /var/adm/setup/setup.timeconfig + +------------------------------------------------------------------- +Wed Jan 16 17:22:52 CET 2002 - kukuk@suse.de + +- Apply S390 fix + +------------------------------------------------------------------- +Wed Jan 9 15:33:49 CET 2002 - kukuk@suse.de + +- Update to glibc 2.2.5pre1 + +------------------------------------------------------------------- +Tue Jan 8 18:41:29 CET 2002 - egmont@suselinux.hu + +- Added partial Hungarian translation + +------------------------------------------------------------------- +Tue Jan 8 13:52:51 CET 2002 - kukuk@suse.de + +- Add patch to pass math tests with gcc 3.x +- Update to current CVS version + +------------------------------------------------------------------- +Thu Jan 3 18:05:48 CET 2002 - kukuk@suse.de + +- Update kernel header files to 2.4.17 + +------------------------------------------------------------------- +Tue Jan 1 10:55:34 CET 2002 - kukuk@suse.de + +- Update current CVS version, add final fixes for LSB test suite + +------------------------------------------------------------------- +Tue Dec 18 15:27:42 CET 2001 - poeml@suse.de + +- Install ja_JP.SJIS locale. + +------------------------------------------------------------------- +Sat Dec 15 15:27:12 CET 2001 - schwab@suse.de + +- Fix missing declaration of md5_uintptr. + +------------------------------------------------------------------- +Fri Dec 14 10:11:17 CET 2001 - kukuk@suse.de + +- Update to correct CVS branch + +------------------------------------------------------------------- +Thu Dec 13 14:50:25 CET 2001 - kukuk@suse.de + +- Update to current CVS +- Increase PATH_MAX to 4096 (including the leading zero) +- Clear pointer if asprintf fails +- pthread_key_delete should not contact thread manager before it + is created. + +------------------------------------------------------------------- +Tue Dec 11 22:35:07 CET 2001 - kukuk@suse.de + +- Fix prelink patch + +------------------------------------------------------------------- +Tue Dec 11 18:53:12 CET 2001 - kukuk@suse.de + +- Add fixes for LSB.os test suite (ftw, grantpt and ftok) +- Update to current CVS +- Add prelink patch + +------------------------------------------------------------------- +Fri Dec 7 19:16:30 CET 2001 - kukuk@suse.de + +- Merge with current CVS +- Add blowfish crypt + +------------------------------------------------------------------- +Fri Nov 23 11:55:14 CET 2001 - uli@suse.de + +- added armv4l arch to spec +- added arm kernel headers +- added trivial fix for dl-machine.h from CVS (see arm.dif) + +------------------------------------------------------------------- +Thu Nov 15 10:29:33 CET 2001 - adrian@suse.de + +- add mips architecture to spec file +- apply further mips fixes for ld +- activate %clean again + +------------------------------------------------------------------- +Sun Nov 11 12:12:03 CET 2001 - kukuk@suse.de + +- Fix lost permissions of shell script on SPARC + +------------------------------------------------------------------- +Thu Nov 8 18:40:33 CET 2001 - kukuk@suse.de + +- Add 32bit UID fixes + +------------------------------------------------------------------- +Thu Nov 8 11:47:21 CET 2001 - kukuk@suse.de + +- More fixes for asm-ia64 header files + +------------------------------------------------------------------- +Thu Nov 8 10:50:13 CET 2001 - kukuk@suse.de + +- Fix asm-i386/processor.h (don't align struct) +- Fix asm-ia64/bitops.h (define CMPXCHG_BUGCHECK) +- Correct version number in version.h + +------------------------------------------------------------------- +Wed Nov 7 14:07:21 CET 2001 - uli@suse.de + +- fixed sys/io.h, sysmacros.h for icc + +------------------------------------------------------------------- +Tue Nov 6 16:53:04 CET 2001 - kukuk@suse.de + +- Update kernel-headers to 2.4.14 + +------------------------------------------------------------------- +Thu Nov 1 11:34:56 CET 2001 - kukuk@suse.de + +- Use again old rules to generate html files + +------------------------------------------------------------------- +Sun Oct 21 22:55:24 CEST 2001 - schwab@suse.de + +- Fix inttypes.h for C++. + +------------------------------------------------------------------- +Fri Oct 19 13:31:53 CEST 2001 - aj@suse.de + +- Fix typo in inttypes.h that presents compilation by non-GCC compilers. + +------------------------------------------------------------------- +Tue Oct 16 10:56:52 CEST 2001 - aj@suse.de + +- Update elf.h to include x86-64 defines since those are needed + by some other tools. + +------------------------------------------------------------------- +Fri Sep 28 15:59:19 CEST 2001 - schwab@suse.de + +- Readd patch from 2001-09-10 with corrections. +- Add compatibility patch for GCC 3. This allows to build glibc + with GCC 3. +- Require that make check succeeds on ia64. + +------------------------------------------------------------------- +Thu Sep 13 15:58:31 CEST 2001 - aj@suse.de + +- Add a better version of the threads-fork patch that fixes some + more places where interrupts can occur and does this a bit cleaner. + +------------------------------------------------------------------- +Tue Sep 11 13:50:37 CEST 2001 - aj@suse.de + +- Remove patch from 2001-09-10 since it breaks the dynamic linker. + +------------------------------------------------------------------- +Tue Sep 11 10:51:11 CEST 2001 - aj@suse.de + +- Fix bug in linuxthreads where manager and threads could + get out of synch due to an interrupted read call. + +------------------------------------------------------------------- +Mon Sep 10 18:20:32 CEST 2001 - schwab@suse.de + +- Fix handling of dependent dynamic objects for dlopen/dlclose. + +------------------------------------------------------------------- +Sat Sep 8 21:02:38 CEST 2001 - kukuk@suse.de + +- Don't create gconv cache (else iconv --list seg.faults) + +------------------------------------------------------------------- +Tue Aug 28 13:39:37 MEST 2001 - aj@suse.de + +- Improve dynamic linker to relocate dynamic objects faster. This + implies a small cache for symbol lookups and handling the ld -z combreloc + feature if binaries are linked this way. + +------------------------------------------------------------------- +Fri Aug 24 14:26:33 CEST 2001 - kukuk@suse.de + +- Add fix for handling of %l[] in vfscanf +- ldconfig removes stale links now +- Remove susehelp config files, now in susehelp itself + +------------------------------------------------------------------- +Wed Aug 22 15:26:06 CEST 2001 - aj@suse.de + +- Update s390 patch from IBM. + +------------------------------------------------------------------- +Fri Aug 17 14:11:16 CEST 2001 - kukuk@suse.de + +- Adjust dns6 patch for 2.2.4 +- Fix spec file (include lost libnss_dns6.so) +- Fix versionnumber in version.h [Bug #9759] +- Update kernel-header to 2.4.9 + +------------------------------------------------------------------- +Thu Aug 16 09:32:39 MEST 2001 - aj@suse.de + +- Update to 2.2.4 final. Add s390-ucontext patch. + +------------------------------------------------------------------- +Fri Aug 10 12:04:14 CEST 2001 - aj@suse.de + +- Update to current glibc version. Do not use the hardlink program + for compatification since localedef will do this itself now. + Create gconv cache. + +------------------------------------------------------------------- +Wed Aug 1 15:31:50 CEST 2001 - aj@suse.de + +- Add patch for zic to create copy of the timezone instead + of a symbolic link so that the file exists even if /usr is not + mounted. + Use i486 instead of i386 as default architecture for i386. + +------------------------------------------------------------------- +Sat Jul 28 08:36:27 CEST 2001 - kukuk@suse.de + +- Fix problem with linux/spinlock.h + +------------------------------------------------------------------- +Fri Jul 27 09:30:01 CEST 2001 - kukuk@suse.de + +- Update kernel-header files to 2.4.7 + +------------------------------------------------------------------- +Thu Jul 26 14:04:15 CEST 2001 - froh@suse.de + +- add fix for failing tst-setcontext on s390 + +------------------------------------------------------------------- +Wed Jul 25 09:29:38 CEST 2001 - aj@suse.de + +- Add patch to fix loading of dynamic libs in static programs for PPC. + +------------------------------------------------------------------- +Fri Jul 20 13:44:30 CEST 2001 - kukuk@suse.de + +- Update to current CVS snapshot +- Disable tst-regex and test-lfs + +------------------------------------------------------------------- +Fri Jul 6 15:26:54 CEST 2001 - kukuk@suse.de + +- Add da_DK@euro and da_DK.UTF-8 + +------------------------------------------------------------------- +Thu Jul 5 14:34:02 CEST 2001 - kukuk@suse.de + +- Update to current CVS snapshot +- Remove obsolete cvs patch +- Fix DNS/IPv6 patch +- Hardlink equal locale files + +------------------------------------------------------------------- +Fri Jun 22 15:59:21 CEST 2001 - olh@suse.de + +- add glibc-2.2.3-ppc_dlmachine.diff to fix binutils make check + +------------------------------------------------------------------- +Tue Jun 19 06:41:03 EDT 2001 - bk@suse.de + +- added s390x support to spec file + +------------------------------------------------------------------- +Tue Jun 19 10:27:38 CEST 2001 - aj@suse.de + +- Fix profiling on PowerPC. + +------------------------------------------------------------------- +Fri Jun 15 17:58:22 CEST 2001 - schwab@suse.de + +- Fixup asm-ia64/atomic.h for user-space inclusion. + +------------------------------------------------------------------- +Tue Jun 12 11:14:08 CEST 2001 - aj@suse.de + +- Fix testsuite for sparc. + +------------------------------------------------------------------- +Mon Jun 11 13:56:16 CEST 2001 - aj@suse.de + +- Fix testsuite for powerpc and S390, build again on alpha. + +------------------------------------------------------------------- +Tue May 22 15:43:24 CEST 2001 - kukuk@suse.de + +- Update to current CVS snapshot +- Rmove support for PF_LOCAL from getaddrinfo [Bug #8469] + +------------------------------------------------------------------- +Sun May 13 15:19:42 CEST 2001 - kukuk@suse.de + +- Don't use absolute paths in pre-install-section + +------------------------------------------------------------------- +Fri May 4 19:20:10 CEST 2001 - kukuk@suse.de + +- Add special version.h which fails on compiling kernel modules + +------------------------------------------------------------------- +Sat Apr 28 18:32:51 CEST 2001 - kukuk@suse.de + +- Update to glibc 2.2.3, kernel-headers-2.4.4 + +------------------------------------------------------------------- +Tue Apr 24 16:04:32 CEST 2001 - schwab@suse.de + +- Fix feenableexcept on ia64. + +------------------------------------------------------------------- +Tue Apr 24 15:48:34 CEST 2001 - aj@suse.de + +- Install some more UTF-8 locales, fix tr_TR locale. + +------------------------------------------------------------------- +Thu Apr 12 17:42:08 CEST 2001 - kukuk@suse.de + +- Include our own texi2html + +------------------------------------------------------------------- +Wed Apr 11 18:50:12 CEST 2001 - kukuk@suse.de + +- Add fixes from SuSE kernel header files +- Add patch to reload /etc/resolv.conf if there was changes +- Add glibc.conf for susehelp (glibc-html pages) + +------------------------------------------------------------------- +Mon Apr 9 17:39:18 CEST 2001 - schwab@suse.de + +- Fix ld.so for kernel 2.4.3 on ia64. + +------------------------------------------------------------------- +Thu Apr 5 17:39:44 CEST 2001 - kukuk@suse.de + +- Add more fixes from CVS + +------------------------------------------------------------------- +Tue Apr 3 15:40:58 CEST 2001 - kukuk@suse.de + +- Fix isdn header files from kernel-headers + +------------------------------------------------------------------- +Fri Mar 30 18:40:09 CEST 2001 - kukuk@suse.de + +- Update kernel header files to 2.4.3 + +------------------------------------------------------------------- +Fri Mar 30 17:22:54 CEST 2001 - kukuk@suse.de + +- Merge s390 patches +- Fix rcmd_af() (allow PF_UNSPEC) + +------------------------------------------------------------------- +Fri Mar 30 08:52:32 CEST 2001 - aj@suse.de + +- Add some small fixes, fix spec file for removal of man-pages. + +------------------------------------------------------------------- +Thu Mar 29 18:16:09 CEST 2001 - kukuk@suse.de + +- Don't provide kernel_headers any longer +- Remove some man-pages which are now official in the man-pages + package + +------------------------------------------------------------------- +Thu Mar 29 08:33:19 CEST 2001 - aj@suse.de + +- Fix shmfs recognition. + +------------------------------------------------------------------- +Thu Mar 29 01:18:52 CEST 2001 - ro@suse.de + +- added db-splitmask fix from mls (hopefully work around bug in db1) + +------------------------------------------------------------------- +Wed Mar 28 09:02:54 CEST 2001 - aj@suse.de + +- Fix s390 to not generate wrong relocations, work around compiler + error. + +------------------------------------------------------------------- +Wed Mar 21 14:46:25 CET 2001 - kukuk@suse.de + +- glibc-devel obsoletes and provides linclude + +------------------------------------------------------------------- +Tue Mar 20 12:38:28 CET 2001 - kukuk@suse.de + +- Add strtok and other fixes from CVS +- Add yp_all fix + +------------------------------------------------------------------- +Tue Mar 13 13:57:16 CET 2001 - kukuk@suse.de + +- Add more s390 string.h fixes + +------------------------------------------------------------------- +Mon Mar 12 10:05:30 CET 2001 - aj@suse.de + +- Add fixes for s390, don't run testsuite on s390 for now. + +------------------------------------------------------------------- +Fri Mar 9 17:05:27 CET 2001 - kukuk@suse.de + +- Fix linux/init.h header file + +------------------------------------------------------------------- +Fri Mar 9 16:01:15 CET 2001 - aj@suse.de + +- Handle new EM_S390 value. + +------------------------------------------------------------------- +Fri Mar 9 15:33:55 CET 2001 - kukuk@suse.de + +- kernel-heaer fixes to build on Alpha + +------------------------------------------------------------------- +Thu Mar 8 16:02:45 CET 2001 - ro@suse.de + +- update kernel-headers to 2.4.2 + +------------------------------------------------------------------- +Thu Mar 8 12:53:56 CET 2001 - ro@suse.de + +- kernel-header fixes to build on s390 + +------------------------------------------------------------------- +Thu Feb 22 11:22:08 CET 2001 - schwab@suse.de + +- More kernel header fixes for IA64. + +------------------------------------------------------------------- +Tue Feb 20 11:18:53 CET 2001 - kukuk@suse.de + +- Remove optimisation not supported on all plattforms + +------------------------------------------------------------------- +Mon Feb 19 09:48:02 CET 2001 - kukuk@suse.de + +- Fix Optimization of glibc build +- Add Optimization for alphaev6 and sparcv9 + +------------------------------------------------------------------- +Sat Feb 17 17:19:40 CET 2001 - kukuk@suse.de + +- Update to glibc 2.2.2 from CVS + +------------------------------------------------------------------- +Thu Feb 15 16:51:12 CET 2001 - kukuk@suse.de + +- kernel header fixes for SPARC and IA64 + +------------------------------------------------------------------- +Tue Feb 13 14:19:43 CET 2001 - kukuk@suse.de + +- Make optimization for i686 work +- Add manual page for ldd + +------------------------------------------------------------------- +Mon Feb 12 16:05:23 CET 2001 - kukuk@suse.de + +- Fix more kernel headers + +------------------------------------------------------------------- +Thu Feb 8 16:34:27 CET 2001 - kukuk@suse.de + +- Fix more kernel-headers + +------------------------------------------------------------------- +Wed Feb 7 17:17:03 CET 2001 - kukuk@suse.de + +- Delete links in pre install section for glibc-devel + +------------------------------------------------------------------- +Wed Feb 7 01:08:26 CET 2001 - kukuk@suse.de + +- Fix kernel-header includes + +------------------------------------------------------------------- +Tue Feb 6 09:29:04 CET 2001 - kukuk@suse.de + +- Fix creating of /usr/include/asm on SPARC +- Add more CVS patches + +------------------------------------------------------------------- +Mon Feb 5 18:58:08 CET 2001 - kukuk@suse.de + +- Add some patches from CVS +- Include our own kernel header files + +------------------------------------------------------------------- +Mon Jan 22 18:47:24 CET 2001 - aj@suse.de + +- Add elf patch to fix problems on ia64 and ppc with _dl_pagesize. + +------------------------------------------------------------------- +Mon Jan 22 10:26:42 CET 2001 - aj@suse.de + +- Fix mmap64 on powerpc. + +------------------------------------------------------------------- +Tue Jan 16 08:42:33 CET 2001 - aj@suse.de + +- Fix sunrpc-udp.diff, add mman.h fix for powerpc. + +------------------------------------------------------------------- +Wed Jan 10 14:49:30 CET 2001 - aj@suse.de + +- Add sunrpc-udp.diff to fix UDP timeouts with Linux 2.4 kernel. + +------------------------------------------------------------------- +Tue Jan 9 09:01:41 CET 2001 - aj@suse.de + +- Add glibc-2.2.secure.diff to close some security holes. + +------------------------------------------------------------------- +Wed Jan 3 15:26:45 CET 2001 - schwab@suse.de + +- Fix strtol and friends on 64 bit platforms. +- Use 8192 as default pagesize on ia64. +- Scan AUX vector also in statically linked programs. + +------------------------------------------------------------------- +Wed Jan 3 15:20:45 CET 2001 - aj@suse.de + +- Build some UTF-8 locales using a patch from Markus Kuhn. + +------------------------------------------------------------------- +Wed Dec 13 15:52:13 CET 2000 - aj@suse.de + +- Add compatibility patch for IPv6 and Linux 2.2. + +------------------------------------------------------------------- +Wed Dec 13 15:48:56 CET 2000 - schwab@suse.de + +- Update ia64 patch. + +------------------------------------------------------------------- +Sat Dec 9 13:30:23 CET 2000 - kukuk@suse.de + +- Fix resolver bug + +------------------------------------------------------------------- +Fri Dec 1 13:16:07 CET 2000 - kukuk@suse.de + +- Add bug fixes for setlocale and strncat +- strip gconv modules + +------------------------------------------------------------------- +Fri Nov 24 07:43:08 CET 2000 - kukuk@suse.de + +- Fix typo in spec file + +------------------------------------------------------------------- +Thu Nov 23 23:22:36 CET 2000 - kukuk@suse.de + +- Add hack for POWER3 + +------------------------------------------------------------------- +Wed Nov 22 13:03:19 CET 2000 - kukuk@suse.de + +- Add strncat bugfix for S/390 + +------------------------------------------------------------------- +Tue Nov 21 10:53:31 CET 2000 - kukuk@suse.de + +- Don't bulid 32bit compat packages + +------------------------------------------------------------------- +Mon Nov 20 15:46:44 CET 2000 - schwab@suse.de + +- Remove use of getpagesize syscall on ia64. +- Follow DT_INIT/DT_FINI change in compiler. + +------------------------------------------------------------------- +Sun Nov 19 22:43:40 CET 2000 - kukuk@suse.de + +- Minor specfile fixes + +------------------------------------------------------------------- +Thu Nov 16 17:38:47 CET 2000 - kukuk@suse.de + +- Add lot of more bug fixes + +------------------------------------------------------------------- +Tue Nov 14 16:52:59 CET 2000 - kukuk@suse.de + +- Add bugfix for static linked binaries/ld.so.cache from aj@suse.de + +------------------------------------------------------------------- +Mon Nov 13 14:52:05 CET 2000 - aj@suse.de + +- Fix noversion.diff and spec file. + +------------------------------------------------------------------- +Sat Nov 11 08:40:42 CET 2000 - kukuk@suse.de + +- Fix nssv1 on PowerPC +- no libNoVersion on SPARC + +------------------------------------------------------------------- +Fri Nov 10 21:47:16 CET 2000 - kukuk@suse.de + +- Disable make check on PowerPC and Alpha + +------------------------------------------------------------------- +Fri Nov 10 17:09:57 CET 2000 - kukuk@suse.de + +- Update to final glibc 2.2 + +------------------------------------------------------------------- +Fri Nov 3 10:44:46 CET 2000 - kukuk@suse.de + +- Update to glibc-2.2-20001103 (glibc-2.1.97) +- Don't install libNoVersion on PowerPC +- Rename nssv1 -> glibc-nssv1 +- Rename libd -> glibc-profile, move libg.a to libc +- Rename libcinfo -> glibc-info +- Rename libchtml -> glibc-html +- Rename localedb -> glibc-i18ndata +- Rename libc -> glibc-devel +- Rename shlibs -> glibc + +------------------------------------------------------------------- +Sat Oct 28 09:10:07 CEST 2000 - kukuk@suse.de + +- Update to glibc-2.2-20001028 +- Enable more checks + +------------------------------------------------------------------- +Fri Oct 27 15:39:17 CEST 2000 - aj@suse.de + +- Fix NoVersion patch + +------------------------------------------------------------------- +Wed Oct 25 16:47:22 CEST 2000 - kukuk@suse.de + +- Update to glibc-2.2-20001025 + +------------------------------------------------------------------- +Sun Oct 22 16:31:32 CEST 2000 - kukuk@suse.de + +- Update to glibc 2.2-20001021 +- Update glibc-db to 2.1.95 +- Update ia64 patch + +------------------------------------------------------------------- +Fri Oct 20 15:54:24 CEST 2000 - kukuk@suse.de + +- Update to glibc 2.2-20001020 +- Add s390 spec file changes + +------------------------------------------------------------------- +Tue Oct 10 13:46:03 CEST 2000 - schwab@suse.de + +- Update to glibc 2.2-20001009. +- Fix TRAMPOLINE_TEMPLATE for ia64. + +------------------------------------------------------------------- +Sun Oct 1 17:08:32 CEST 2000 - schwab@suse.de + +- Export more ia64 specific symbols. + +------------------------------------------------------------------- +Tue Sep 26 12:14:37 CEST 2000 - kukuk@suse.de + +- Update to glibc 2.2-20000926 + +------------------------------------------------------------------- +Mon Sep 25 14:02:07 CEST 2000 - kukuk@suse.de + +- Update to glibc 2.2-20000925 snapshot + +------------------------------------------------------------------- +Thu Sep 14 11:43:51 CEST 2000 - schwab@suse.de + +- Update ia64 patch. + +------------------------------------------------------------------- +Fri Sep 8 19:44:17 CEST 2000 - bk@suse.de + +- added glibc-2.1.3-db2-s390.tar.gz from developerworks (db2 fix) + +------------------------------------------------------------------- +Wed Sep 6 09:44:36 CEST 2000 - fober@suse.de + +- merge s390-7.0 with STABLE: + - upgraded to glibc-linuxthreads-2.1.3.1-s390.diff from 2.1.3 + - added new changes from IBM s390 codedrop + - removed glibc-dlopen-2.1.3-s390.diff which is + incorporated in glibc-linuxthreads-2.1.3.1-s390.diff now + +------------------------------------------------------------------- +Tue Sep 5 18:19:46 CEST 2000 - kukuk@suse.de + +- Add glibc-2.1.security.dif + +------------------------------------------------------------------- +Fri Sep 1 11:14:25 CEST 2000 - olh@suse.de + +- add glibc-2.1-ppc_lfs.dif, enables (hopefully) lfs on ppc + +------------------------------------------------------------------- +Wed Aug 30 16:16:04 CEST 2000 - olh@suse.de + +- remove sysdeps/powerpc/memset.S on ppc for POWER3 + +------------------------------------------------------------------- +Mon Aug 28 17:12:41 CEST 2000 - olh@suse.de + +- add glibc-2.1.sgi_fam.dif +- remove sysdeps/rs6000/memcopy.h on ppc for POWER3 + +------------------------------------------------------------------- +Mon Aug 21 19:56:06 CEST 2000 - garloff@suse.de + +- Fix race on cond_wait WRT owner of mutex (from olh@suse.de) + +------------------------------------------------------------------- +Tue Jul 25 08:41:48 CEST 2000 - kukuk@suse.de + +- Add mmap fix for PowerPC + +------------------------------------------------------------------- +Tue Jul 11 10:02:41 CEST 2000 - kukuk@suse.de + +- Remove "mutex is owned by current thread" bugfix for IBMs jdk + +------------------------------------------------------------------- +Mon Jun 26 16:47:54 CEST 2000 - schwab@suse.de + +- Update ia64 patch. + +------------------------------------------------------------------- +Tue Jun 20 15:33:43 CEST 2000 - kukuk@suse.de + +- Move html docu in extra package +- Update ia64 patch + +------------------------------------------------------------------- +Wed May 31 14:35:00 CEST 2000 - kukuk@suse.de + +- Remove LICENSE file, it's the same as COPYING.LIB +- Add libc docu as html + +------------------------------------------------------------------- +Sun May 28 14:44:42 CEST 2000 - kukuk@suse.de + +- Fix ldconfig on PPC and IA64 + +------------------------------------------------------------------- +Sat May 27 15:25:13 CEST 2000 - kukuk@suse.de + +- Merge new ldconfig fixes + +------------------------------------------------------------------- +Fri May 26 18:16:52 CEST 2000 - kukuk@suse.de + +- Update ia64 patch + +------------------------------------------------------------------- +Fri May 26 11:07:39 CEST 2000 - kukuk@suse.de + +- Fix (f)truncate64 and xdr_uint8_t + +------------------------------------------------------------------- +Wed May 24 22:23:12 CEST 2000 - kukuk@suse.de + +- Fix ldconfig.8 manual page + +------------------------------------------------------------------- +Thu May 18 17:53:09 CEST 2000 - bk@suse.de + +- added s390 dlopen fix + +------------------------------------------------------------------- +Tue May 16 16:48:13 CEST 2000 - bk@suse.de + +- updated s390 patches to match IBM_codedrop_2000_05_15 + +------------------------------------------------------------------- +Fri May 12 15:47:08 CEST 2000 - kukuk@suse.de + +- Fix netinet/in.h IPv6 compare + +------------------------------------------------------------------- +Fri May 12 14:47:15 CEST 2000 - schwab@suse.de + +- Update ia64 patches. + +------------------------------------------------------------------- +Fri May 12 14:22:11 CEST 2000 - kukuk@suse.de + +- Don't apply LFS patch + +------------------------------------------------------------------- +Tue May 9 22:21:23 CEST 2000 - kukuk@suse.de + +- Add LFS patches + +------------------------------------------------------------------- +Mon May 8 11:59:48 CEST 2000 - kukuk@suse.de + +- Add lot of bug fixes from CVS + +------------------------------------------------------------------- +Tue Apr 25 14:20:43 CEST 2000 - kukuk@suse.de + +- Fix nscd/getgrnam bug + +------------------------------------------------------------------- +Thu Apr 20 16:38:26 CEST 2000 - kukuk@suse.de + +- Remove /var/mail -> /var/spool/mail patch +- Update nscd.conf.5 manual page + +------------------------------------------------------------------- +Wed Apr 12 16:18:55 CEST 2000 - kukuk@suse.de + +- Add nscd patch from Chris Wing + +------------------------------------------------------------------- +Wed Apr 12 15:52:55 CEST 2000 - kukuk@suse.de + +- Add ldconfig fix from aj@suse.de + +------------------------------------------------------------------- +Wed Apr 12 11:33:02 CEST 2000 - schwab@suse.de + +- More ia64 patches. +- Use libc.so.0, libm.so.0, ld-linux-ia64.so.1 on ia64. + +------------------------------------------------------------------- +Mon Apr 10 17:55:46 CEST 2000 - kukuk@suse.de + +- Support asm-sparc64 and asm-sparc on SPARC + +------------------------------------------------------------------- +Mon Apr 10 15:46:35 CEST 2000 - kukuk@suse.de + +- Create /etc/ld.so.cache always with permissions 0644 +- Update ia64 patches + +------------------------------------------------------------------- +Thu Apr 6 11:27:20 CEST 2000 - schwab@suse.de + +- Fix dynamic linker bug in ia64. +- Add ia64 spinlocks for db2. + +------------------------------------------------------------------- +Tue Apr 4 16:16:21 CEST 2000 - schwab@suse.de + +- New IA64 patches. +- Fix ldconfig -p. + +------------------------------------------------------------------- +Mon Apr 3 14:42:03 MEST 2000 - bk@suse.de + +- s390 team added s390 patches + +------------------------------------------------------------------- +Wed Mar 22 12:10:02 CET 2000 - kukuk@suse.de + +- Fix last SPARC patch + +------------------------------------------------------------------- +Tue Mar 21 17:48:01 CET 2000 - kukuk@suse.de + +- Add SPARC patches +- Add IA64 patches + +------------------------------------------------------------------- +Wed Mar 15 14:35:47 CET 2000 - kukuk@suse.de + +- Remove personality call (problematic on Alpha) +- Fix typo in localeconv +- alpha/ioperm.c> Add entry for "Nautilus". + +------------------------------------------------------------------- +Tue Mar 7 18:17:07 CET 2000 - kukuk@suse.de + +- Add locale SIGSEGV fix +- Fix getdate bug + +------------------------------------------------------------------- +Fri Feb 25 10:53:47 CET 2000 - kukuk@suse.de + +- Update to final glibc 2.1.3 + fix for bigendian machines + +------------------------------------------------------------------- +Thu Feb 24 16:12:39 CET 2000 - kukuk@suse.de + +- Update to current glibc cvs snapshot +- Add libnss_dns6.so.2, which makes IPv4 and IPv6 lookups. + Old libnss_dns.so.2 will only make IPv4 lookups. + +------------------------------------------------------------------- +Tue Feb 22 16:40:35 CET 2000 - kukuk@suse.de + +- Update to current glibc cvs snapshot (2.1.3pre4) + +------------------------------------------------------------------- +Sat Feb 5 14:40:33 CET 2000 - kukuk@suse.de + +- Add missing defines for SPARC bits/termios.h + +------------------------------------------------------------------- +Thu Feb 3 18:25:12 CET 2000 - kukuk@suse.de + +- Add regex patch from Andreas Schwab + +------------------------------------------------------------------- +Wed Feb 2 11:37:52 CET 2000 - kukuk@suse.de + +- Add ldconfig fix +- Update to current glibc cvs snapshot +- Fix sys/io.h on Intel (C++) + +------------------------------------------------------------------- +Mon Jan 24 17:01:13 CET 2000 - kukuk@suse.de + +- Fix duplicate setrlimit + +------------------------------------------------------------------- +Mon Jan 24 12:01:27 CET 2000 - kukuk@suse.de + +- Update to current glibc cvs snapshot + +------------------------------------------------------------------- +Wed Jan 19 15:53:18 CET 2000 - kukuk@suse.de + +- Update to current glibc cvs snapshot + +------------------------------------------------------------------- +Sat Jan 15 01:31:16 CET 2000 - ro@suse.de + +-fixed ppc db2-patch + +------------------------------------------------------------------- +Fri Jan 14 16:54:26 CET 2000 - kukuk@suse.de + +- Add patches for Intel and PPC + +------------------------------------------------------------------- +Fri Jan 14 00:27:03 CET 2000 - kukuk@suse.de + +- Add patch for SPARC + +------------------------------------------------------------------- +Thu Jan 13 15:23:54 CET 2000 - kukuk@suse.de + +- Move info pages to /usr/share/info + +------------------------------------------------------------------- +Mon Jan 10 14:49:14 CET 2000 - kukuk@suse.de + +- Add ipv6 patches for getent + +------------------------------------------------------------------- +Mon Jan 10 11:23:57 CET 2000 - kukuk@suse.de + +- Move manual pages for applications and config files into + shlibs package +- Update to current glibc 2.1.3 snapshot + +------------------------------------------------------------------- +Fri Dec 17 17:06:45 MET 1999 - kukuk@suse.de + +- Add new ldconfig patches +- Add aio patch +- Add fix for bits/string2.h + +------------------------------------------------------------------- +Wed Dec 15 16:37:02 MET 1999 - kukuk@suse.de + +- add ldconfig.8 + +------------------------------------------------------------------- +Wed Dec 15 10:00:53 MET 1999 - kukuk@suse.de + +- Update to current glibc 2.1.3 snapshot +- Fix get/setrlimit problems + +------------------------------------------------------------------- +Thu Dec 9 20:00:16 MET 1999 - kukuk@suse.de + +- Update to current glibc 2.1.3 snapshot +- Add new ldconfig + +------------------------------------------------------------------- +Sun Dec 5 11:50:42 MET 1999 - kukuk@suse.de + +- Disable make check for SPARC (kernel bug) +- Add setrlimit patches +- Update to current glibc 2.1.3 snapshot + +------------------------------------------------------------------- +Fri Nov 26 12:09:07 MET 1999 - kukuk@suse.de + +- Update to current glibc 2.1.3 snapshot. + +------------------------------------------------------------------- +Tue Oct 26 13:54:55 MEST 1999 - kukuk@suse.de + +- Add fix for correct accounting of needed bytes (gethnamaddr.c) +- Remove not exported, public names from internal md5 functions + +------------------------------------------------------------------- +Mon Oct 25 19:03:56 MEST 1999 - kukuk@suse.de + +- Add fix for missing nexttowardl aliase + +------------------------------------------------------------------- +Tue Oct 19 09:56:47 MEST 1999 - kukuk@suse.de + +- Add security fix for iruserok + +------------------------------------------------------------------- +Sat Oct 16 16:29:44 MEST 1999 - kukuk@suse.de + +- Build libNoVersion.so.1 on every platform + +------------------------------------------------------------------- +Mon Oct 11 19:19:00 MEST 1999 - kukuk@suse.de + +- Add linuxthreads/signals.c fix from Andreas Schwab +- Remove dangling symlink (Bug #544) +- Add more bug fixes + +------------------------------------------------------------------- +Fri Oct 8 22:07:24 MEST 1999 - kukuk@suse.de + +- Add timezone update + +------------------------------------------------------------------- +Fri Oct 8 17:42:22 MEST 1999 - kukuk@suse.de + +- Add NIS+ shadow parser fix + +------------------------------------------------------------------- +Thu Oct 7 11:46:27 MEST 1999 - kukuk@suse.de + +- Update to official glibc 2.1.2, add important fixes +- Update nscd, add manual pages for it + +------------------------------------------------------------------- +Mon Sep 20 18:14:13 CEST 1999 - ro@suse.de + +- libc: added requires kernel_headers + +------------------------------------------------------------------- +Mon Sep 13 17:23:57 CEST 1999 - bs@suse.de + +- ran old prepare_spec on spec file to switch to new prepare_spec. + +------------------------------------------------------------------- +Mon Sep 6 10:25:03 MEST 1999 - kukuk@suse.de + +- Update to current glibc 2.1.2 cvs snapshot +- Remove use auf automake in spec file + +------------------------------------------------------------------- +Fri Sep 3 14:35:42 MEST 1999 - kukuk@suse.de + +- Update to current glibc 2.1.2 cvs snapshot +- Use RPM macros for configure + +------------------------------------------------------------------- +Wed Aug 25 17:07:09 MEST 1999 - kukuk@suse.de + +- Update to current glibc 2.1.2 cvs snapshot + +------------------------------------------------------------------- +Thu Aug 19 15:20:26 MEST 1999 - kukuk@suse.de + +- Add PowerPC patches from Uli Hecht +- Cleanup of SPEC file +- Create a profiling version + +------------------------------------------------------------------- +Sat Aug 14 19:58:45 MEST 1999 - kukuk@suse.de + +- disable nscd hosts caching by default +- Apply patch from HJL for broken gethostbyname_r in libnss_dns + +------------------------------------------------------------------- +Fri Jul 16 17:01:51 MEST 1999 - kukuk@suse.de + +- Add header fix for autoconf/g++ +- Move pt_chown and gconv modules from libc to shlibs + +------------------------------------------------------------------- +Wed Jul 14 16:05:14 MEST 1999 - kukuk@suse.de + +- Remove /etc/localtime from filelist + +------------------------------------------------------------------- +Mon Jul 12 09:54:43 MEST 1999 - kukuk@suse.de + +- Add more bug fixes from cvs +- Add ld.so bug fix from Andreas Schwab + +------------------------------------------------------------------- +Thu Jul 8 17:25:43 MEST 1999 - kukuk@suse.de + +- configure for i386-unknown-linux + +------------------------------------------------------------------- +Wed Jul 7 12:28:43 MEST 1999 - kukuk@suse.de + +- Remove alpha patch, it's now in glibc 2.1.2 cvs +- Add more bug fixes from cvs +- Remove malloc patch (breaks StarOffice) + +------------------------------------------------------------------- +Tue Jul 6 18:08:26 MEST 1999 - kukuk@suse.de + +- Add openpty patch from Andreas Schwab + (openpty now works if /dev/pts is not mounted) + +------------------------------------------------------------------- +Fri Jul 2 12:04:47 MEST 1999 - kukuk@suse.de + +- Remove warning von zic about symlinks. + +------------------------------------------------------------------- +Mon Jun 28 19:49:44 MEST 1999 - kukuk@suse.de + +- Remove ndbm links, now in gdbm + +------------------------------------------------------------------- +Fri Jun 25 16:16:20 MEST 1999 - kukuk@suse.de + +- Add a lot of more fixes +- Add nscd fixes and enable nscd on alpha + +------------------------------------------------------------------- +Mon Jun 14 09:17:26 MEST 1999 - kukuk@suse.de + +- Add nss_dns and fget* fixes. +- Add nscd patches for NIS+ + +------------------------------------------------------------------- +Thu Jun 10 10:04:11 MEST 1999 - kukuk@suse.de + +- Fix daemon() for MT programs +- Add libio fixes + +------------------------------------------------------------------- +Fri May 28 08:53:20 MEST 1999 - kukuk@suse.de + +- Add fix for docu +- Disable nscd for alpha again + +------------------------------------------------------------------- +Wed May 26 09:42:54 MEST 1999 - kukuk@suse.de + +- Update to version 2.1.1 + +------------------------------------------------------------------- +Mon May 17 16:49:35 MEST 1999 - kukuk@suse.de + +- Update to snapshot from 16.5.1999 +- Add manpages +- Add __setfpucw to libNoVersion (intel) +- Add COPYING and COPYING.LIB + +------------------------------------------------------------------- +Fri May 7 18:57:20 MEST 1999 - kukuk@suse.de + +- Update to snapshot from 6.5.1999 +- Add NoVersion patches from RedHat for miscompiled glibc 2.0 apps +- Add patch for Alpha RX164 +- Add workaround for nscd on Alpha + +------------------------------------------------------------------- +Wed Apr 28 17:48:51 MEST 1999 - kukuk@suse.de + +- Remove latest fnmatch patches from Uli Drepper + +------------------------------------------------------------------- +Tue Apr 27 11:48:46 MEST 1999 - kukuk@suse.de + +- update to cvs version of Apr 26 1999 +- fix pmap_set/pmap_unset for DHCP clients +- Rename libdb1.so.2[.1] to libdb.so.2[.1] since we don't create + the symbolic links. + +------------------------------------------------------------------- +Tue Apr 20 13:57:07 MEST 1999 - kukuk@suse.de + +- update to cvs version of Apr 20 1999 +- remove sunrpc.diff +- fix nssv1 package +- only include nscd on intel +- install /etc/nscd.conf + +------------------------------------------------------------------- +Mon Apr 12 09:52:58 MEST 1999 - kukuk@suse.de + +- update to cvs version of Apr 11 1999 +- Fix paths in paths.h +- install linuxthreads man pages and documentation +- Add sunrpc patch for Alpha and security fixes +- added links for el_GR and ru_RU.KOI8-R in usr/share/locale + +------------------------------------------------------------------- +Wed Mar 31 13:21:02 MEST 1999 - bs@suse.de + +- don't use lx_hack for build + +------------------------------------------------------------------- +Tue Mar 16 08:33:57 MET 1999 - ro@suse.de + +- libc.texinfo: changed to build with stable texinfo version + +------------------------------------------------------------------- +Mon Mar 15 23:49:51 MET 1999 - ro@suse.de + +- update to 2.1.1 (cvs of Mar 15 1999) +- update nssv1 to 2.0.2 + +------------------------------------------------------------------- +Sat Feb 20 19:29:32 MET 1999 - ro@suse.de + +- fixed specfile (lddlibc4 not built on alpha) + +------------------------------------------------------------------- +Sat Feb 20 18:41:22 MET 1999 - ro@suse.de + +- fixed specfile ... + +------------------------------------------------------------------- +Sat Feb 20 18:31:30 MET 1999 - ro@suse.de + +- added automake to neededforbuild + +------------------------------------------------------------------- +Sat Feb 20 18:15:44 MET 1999 - ro@suse.de + +- added nss-v1 modules (to keep old rpm happy with file owners) + +------------------------------------------------------------------- +Fri Feb 19 14:35:38 MET 1999 - ro@suse.de + +- update to cvs-version of 1999/02/18 + +------------------------------------------------------------------- +Fri Sep 25 18:58:28 MEST 1998 - ro@suse.de + +- fixed specfile + +------------------------------------------------------------------- +Fri Sep 25 12:15:13 MEST 1998 - ro@suse.de + +- update: use cvs-version of 980925 + edited db/Makefile to ignore messed up target-dependency + +------------------------------------------------------------------- +Mon Sep 21 19:43:16 MEST 1998 - ro@suse.de + +- update: use cvs-version of 980921 + +------------------------------------------------------------------- +Mon Sep 14 14:28:21 MEST 1998 - ro@suse.de + +- update: use today's cvs-version + +------------------------------------------------------------------- +Wed Sep 2 16:56:04 MEST 1998 - ro@suse.de + +- build for 586 since egcs generates code for 686 that does NOT run + on 586 !!! (eg strtok) + +------------------------------------------------------------------- +Sat Aug 22 00:43:48 MEST 1998 - ro@suse.de + +- updated to cvs-version 20.8.98 + added gettext as neededforbuild (so configure shuts up) + glibc-linuxthreads is contained in main archive now + +------------------------------------------------------------------- +Tue Jun 16 18:41:51 MEST 1998 - ro@suse.de + +- added symlink usr/include/X11 + +------------------------------------------------------------------- +Thu May 28 11:36:49 MEST 1998 - ro@suse.de + +- added symlinks to linux include files + +------------------------------------------------------------------- +Thu May 28 10:58:09 MEST 1998 - bs@suse.de + +- moved ".so" Links to package libc. + +------------------------------------------------------------------- +Wed May 27 16:26:15 MEST 1998 - bs@suse.de + +- changed version do `date` + +------------------------------------------------------------------- +Wed May 27 12:16:14 MEST 1998 - ro@suse.de + +- created specfile to build libc, shlibs, libd, libcinfo + localedb, timezone, + +- former libc renamed to libc5. diff --git a/glibc.rpmlintrc b/glibc.rpmlintrc new file mode 100644 index 0000000..b88848e --- /dev/null +++ b/glibc.rpmlintrc @@ -0,0 +1 @@ +addFilter(".*glibc-profile.* devel-file-in-non-devel-package.*/usr/lib.*/lib.*_p.a") diff --git a/glibc.spec b/glibc.spec new file mode 100644 index 0000000..39d8d14 --- /dev/null +++ b/glibc.spec @@ -0,0 +1,3400 @@ +# +# spec file for package glibc (Version 2.9) +# +# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild + + +Name: glibc +BuildRequires: gcc-c++ libstdc++-devel +BuildRequires: libselinux-devel +%define build_locales 1 +%define run_testsuite 0 +%define disable_assert 0 +%define enable_stackguard_randomization 1 +%ifarch ppc ppc64 +%define optimize_power 1 +%else +%define optimize_power 0 +%endif +%define powerpc_optimize_base_cpu_power4 0 +%if %{optimize_power} +%define powerpc_optimize_cpu_power4 1 +%ifarch ppc64 +%define powerpc_optimize_base_cpu_power4 1 +%define powerpc_optimize_cpu_power4 0 +%endif +%ifarch ppc +%define powerpc_optimize_cpu_power5 1 +%else +%define powerpc_optimize_cpu_power5 0 +%endif +%define powerpc_optimize_cpu_power5_compile 0 +%define powerpc_optimize_cpu_power6 1 +%define powerpc_optimize_cpu_power7 0 +%define powerpc_optimize_cpu_cell 1 +%else +%define powerpc_optimize_cpu_power4 0 +%define powerpc_optimize_cpu_power5 0 +%define powerpc_optimize_cpu_power6 0 +%define powerpc_optimize_cpu_power7 0 +%define powerpc_optimize_cpu_cell 0 +# optimize_power +%endif +License: BSD 3-Clause; GPL v2 or later; LGPL v2.1 or later +Summary: Standard Shared Libraries (from the GNU C Library) +Group: System/Libraries +Obsoletes: ngpt <= 2.2.2 ngpt-devel <= 2.2.2 +Provides: ntpt = 2.2.2 ngpt-devel = 2.2.2 +# bug437293 +%ifarch ppc64 +Obsoletes: glibc-64bit +%endif +%ifarch ppc +Obsoletes: glibc-32bit +%endif +Provides: rtld(GNU_HASH) +AutoReqProv: on +Version: 2.9 +Release: 12 +%define snapshot_date 2008111711 +Url: http://www.gnu.org/software/libc/libc.html +PreReq: filesystem +BuildRoot: %{_tmppath}/%{name}-%{version}-build +Source: glibc-%{version}-%{snapshot_date}.tar.bz2 +Source1: glibc-nptl-%{version}-%{snapshot_date}.tar.bz2 +Source3: noversion.tar.bz2 +Source4: manpages.tar.bz2 +Source8: nsswitch.conf +Source9: nscd.init +Source10: bindresvport.blacklist +Source11: ctype_b.c +Source12: glibc_post_upgrade.c +Source14: powerpc-cpu.tar.bz2 +Source15: glibc.rpmlintrc +%if %_target_cpu == "i686" +# We need to avoid to have only the srv rpm from i686 on the media, +# since it does not work on other architectures. +NoSource: 0 +%endif +# +Patch0: glibc-2.3-SuSE.diff +Patch1: glibc-2.3.90-noversion.diff +Patch2: glibc-2.3.90-fnmatch.diff +Patch3: resolv.dynamic.diff +Patch4: glibc-2.3.locales.diff.bz2 +Patch5: crypt_blowfish-glibc-2.3.diff +Patch6: glibc-version.diff +Patch7: glibc-2.4.90-revert-only-euro.diff +Patch8: glibc-2.3-regcomp.diff +Patch9: glibc-2.3.2-revert_tcsetattr.diff +Patch10: glibc-2.3.1.localedef.diff +Patch11: glibc-2.3.2.no_archive.diff +Patch12: glibc-2.3.3-amd64-string.diff +Patch13: libm-x86-64.diff.bz2 +Patch14: glibc-2.3.90-bindresvport.blacklist.diff +Patch15: glibc-suse-note.diff +Patch16: glibc-2.4.90-no_NO.diff +Patch17: glibc-2.3.90-ld.so-madvise.diff +Patch18: glibc-2.3.3-amd64-s_ceil.diff +Patch19: glibc-2.4.90-mdns-resolver.diff +Patch20: glibc-2.3.3-execstack.diff +Patch21: glibc-2.4-china.diff +Patch22: glibc-2.3.4-gb18030-big5hkscs.diff.bz2 +Patch23: glibc-2.4.90-nscd.diff +Patch24: glibc-2.3.3-nscd-db-path.diff +Patch25: glibc-2.3.5-nscd-zeronegtimeout.diff +Patch26: glibc-2.3.90-langpackdir.diff +Patch27: glibc-nptl-2.4-nofixsyscallnr.diff +Patch28: crypt_blowfish-1.0.diff +Patch29: glibc-2.5-ppc-llrintl.diff +Patch30: glibc-2.6-configure.diff +Patch31: glibc-2.2-sunrpc.diff +Patch32: glibc-2.8-getconf.diff +Patch33: glibc-2.8-dlosinfo.diff +Patch34: getaddrinfo-ipv6-sanity.diff +Patch35: glibc-2.8-revert-nscleanup.diff +Patch36: ppc-atomic.diff +Patch37: glibc-2.8-clone.diff +Patch38: glibc-nss-deepbind.diff +Patch39: glibc-fix-nscd.diff +Patch40: glibc-compiled-binaries.diff +Patch41: glibc-selinux.diff +Patch42: glibc-getgroups-fortify.diff +Patch43: missing-include-build-fix.diff +Patch44: glibc-no-unwind-tables.diff +Patch45: glibc-2.10-nscd-meminflight.diff +Patch46: glibc-2.10-nscd-prunerace.diff +Patch47: glibc-2.10-locale-tuesday.diff +Patch48: glibc-2.10-nis-hosts.diff +Patch49: glibc-2.10-unsetenv.diff +Patch50: glibc-2.10-dns-fixpack.diff +Patch51: glibc-2.10-dns-no-gethostbyname4.diff +Patch52: glibc-2.10-ppc32-setcontext-fp.diff +Patch53: glibc-2.10-nscd-gc-dataofs.diff +Patch54: glibc-2.10-nscd-nostack.diff +Patch55: glibc-cpusetsize.diff +Patch56: glibc-ldscript.diff +Patch57: glibc-mtfsf.diff + +%description +The GNU C Library provides the most important standard libraries used +by nearly all programs: the standard C library, the standard math +library, and the POSIX thread library. A system is not functional +without these libraries. + + + +%package info +License: GPL v2 or later +Summary: Info Files for the GNU C Library +Group: Documentation/Other +PreReq: %{install_info_prereq} +AutoReqProv: on + +%description info +This package contains the documentation for the GNU C library stored as +info files. Due to a lack of resources, this documentation is not +complete and is partially out of date. + + + +%package html +License: GPL v2 or later; LGPL v2.1 or later +Summary: HTML Documentation for the GNU C Library +Group: Documentation/HTML +AutoReqProv: on + +%description html +This package contains the HTML documentation for the GNU C library. Due +to a lack of resources, this documentation is not complete and is +partially out of date. + + + +%package i18ndata +License: LGPL v2.1 or later +Summary: Database Sources for 'locale' +Group: System/Libraries +AutoReqProv: on + +%description i18ndata +This package contains the data needed to build the locale data files to +use the internationalization features of the GNU libc. It is normally +not necessary to install this packages, the data files are already +created. + + + +%package locale +License: GPL v2 or later; LGPL v2.1 or later +Summary: Locale Data for Localized Programs +Group: System/Libraries +Requires: glibc = %{version} +AutoReqProv: on +# bug437293 +%ifarch ppc64 +Obsoletes: glibc-locale-64bit +%endif +%ifarch ppc +Obsoletes: glibc-locale-32bit +%endif + +%description locale +Locale data for the internationalisation features of the GNU C library. + + + +%package -n nscd +License: LGPL v2.1 or later +Summary: Name Service Caching Daemon +Group: System/Daemons +Provides: glibc:/usr/sbin/nscd aaa_base:/etc/init.d/nscd +PreReq: %insserv_prereq + +%description -n nscd +Nscd caches name service lookups and can dramatically improve +performance with NIS, NIS+, and LDAP. + + + +%package profile +License: LGPL v2.1 or later +Summary: Libc Profiling and Debugging Versions +Group: Development/Libraries/C and C++ +Requires: glibc = %{version} +# bug437293 +%ifarch ppc64 +Obsoletes: glibc-profile-64bit +%endif +%ifarch ppc +Obsoletes: glibc-profile-32bit +%endif +AutoReqProv: on + +%description profile +This package contains special versions of the GNU C library which are +necessary for profiling and debugging. + + + +%package devel +License: BSD 3-Clause; GPL v2 or later; LGPL v2.1 or later +Summary: Include Files and Libraries Mandatory for Development +Group: Development/Libraries/C and C++ +Obsoletes: epoll = 1.0 +Provides: epoll <= 1.0 +# bug437293 +%ifarch ppc64 +Obsoletes: glibc-devel-64bit +%endif +%ifarch ppc +Obsoletes: glibc-devel-32bit +%endif +PreReq: /bin/rm +Requires: glibc = %{version}, linux-kernel-headers +AutoReqProv: on + +%description devel +These libraries are needed to develop programs which use the standard C +library. + + + +%package obsolete +License: BSD 3-Clause; GPL v2 or later; LGPL v2.1 or later +Summary: Obsolete Shared Libraries from the GNU C Library +Group: System/Libraries +Requires: glibc = %{version} +AutoReqProv: on + +%description obsolete +This package provides some old libraries from the GNU C Library which +are no longer supported. Additional it provides a compatibility library +for old binaries linked against glibc 2.0. + +Install this package if you need one of this libraries to get old +binaries working, but since this libraries are not supported and there +is no gurantee that they work for you, you should try to get newer +versions of your software. + + + +%prep +%setup -n glibc-%{version} -q -a 1 -a 3 -a 4 -a 14 +%patch +# libNoVersion part is only active on ix86 +%patch1 +%patch2 +%patch3 +%patch4 +%patch6 +%patch7 +%patch8 +%patch9 +%patch10 +%patch11 +%patch12 +# strncmp is broken, let's delete it for now this way +rm sysdeps/x86_64/strncmp.S +%patch13 -E +# We have s_sincos.c in patch13, remove duplicate +rm sysdeps/x86_64/fpu/s_sincos.S +%patch14 +%patch15 +%patch16 +%patch17 +%patch18 +#We have nss-mdns, why should we need this patch? +#%patch19 +%patch20 +%patch21 +%patch22 +%patch23 +%patch24 +%patch25 +%patch26 +%patch27 +%patch28 +%patch29 +%patch30 +%patch31 +%patch32 +%patch33 +%patch34 +%patch35 +%patch36 +%patch37 +%patch38 +%patch39 +%patch40 +%patch41 +%patch42 +%patch43 +%patch44 +%patch45 +%patch46 +%patch47 +%patch48 +%patch49 +%patch50 +%patch51 +%patch52 +%patch53 +%patch54 +%patch55 +%patch56 +%patch57 +%patch5 +# +# Inconsistency detected by ld.so: dl-close.c: 719: _dl_close: Assertion `map->l_init_called' failed! +# +# Glibc 2.8 introduced the HP_TIMING element to the rtld_global_ro struct # definition. +# If the base is built without power4 the loader won't have this element in +# the struct whereas the power4/5/6/... libc will, so there will be a disconnect +# between the size of the rtld_global_ro struct between the two and dl_close +# ends up getting called incorrectly when it's actually attempting to call a +# resolver function. This is because the GLRO() macro simply attempts to +# compute an offset and gets the wrong one. +# Building the base glibc with --with-cpu=power4 solves this problem. +# But: ppc32 can not default to -mcpu=power4 because it would emit instructions +# which are not available on G3, G4 etc. +# +# We simply remove the power4 files, and build the base glibc for a generic powerpc cpu +# Additional cputuned libs can now be used on powerpc32 +# +rm -fv sysdeps/powerpc/powerpc32/power4/hp-timing.c sysdeps/powerpc/powerpc32/power4/hp-timing.h +find . -name configure | xargs touch + +%build +if [ -x /bin/uname.bin ]; then + /bin/uname.bin -a +else + uname -a +fi +uptime || : +ulimit -a +nice +# Adjust glibc version.h +echo "#define CONFHOST \"%{_target_cpu}-suse-linux\"" >> version.h +echo "#define CVSDATE \"`date -r ChangeLog +%Y%m%d`\"" >> version.h +# +# Default CFLAGS and Compiler +# +BuildFlags="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE -fno-strict-aliasing" +BuildFlags="$(echo $BuildFlags | sed -e 's#-fstack-protector##' -e 's#-ffortify=[0-9]*##')" +BuildCC="gcc" +BuildCCplus="g++" +add_ons=",libidn" +PARALLEL="%{?jobs:-j%jobs}" +# +#now overwrite for some architectures +# +%ifarch sparc64 +BuildFlags="-O2 -mcpu=ultrasparc -mvis -fcall-used-g6" +BuildCC="gcc -m64" +BuildCCplus="$BuildCCplus -m64" +%endif +%ifarch sparc +BuildFlags="$BuildFlags -fcall-used-g6" +BuildCC="gcc -m32" +BuildCCplus="$BuildCCplus -m32" +%endif +%ifarch sparcv9 +BuildFlags="$BuildFlags -mcpu=ultrasparc -fcall-used-g6" +BuildCC="gcc -m32" +BuildCCplus="$BuildCCplus -m32" +%endif +%ifarch alphaev6 +BuildFlags="-mcpu=ev6" +%endif +%ifarch ppc ppc64 +BuildFlags="$(echo $BuildFlags | sed 's#-mminimal-toc##')" +%endif +%ifarch ppc64 +BuildCC="$BuildCC -m64" +BuildCCplus="$BuildCCplus -m64" +%endif +%ifarch hppa +BuildFlags="$BuildFlags -mpa-risc-1-1 -fstrict-aliasing" +%endif +%ifarch %ix86 x86_64 +BuildFlags="$BuildFlags -mno-tls-direct-seg-refs" +%endif +# Add flags for all plattforms except AXP +%ifnarch alpha +BuildFlags="$BuildFlags -g" +%endif +%if %{disable_assert} +BuildFlags="$BuildFlags -DNDEBUG=1" +%endif +%ifarch %ix86 +add_ons=$add_ons,noversion +%endif +configure_and_build_glibc() { + local cflags="$1" + local addons="$2" + shift 2 + CFLAGS="$cflags" CC="$BuildCC" CXX="$BuildCCplus" ../configure \ + --prefix=%{_prefix} \ + --libexecdir=%{_libdir} --infodir=%{_infodir} \ + --enable-add-ons=nptl$addons --without-cvs --enable-profile \ + "$@" \ +%if %{enable_stackguard_randomization} + --enable-stackguard-randomization \ +%endif + --build=%{_target_cpu}-suse-linux \ + --with-tls --with-__thread --enable-kernel=2.6.4 +make $PARALLEL +} +# +# Build nptl +# +mkdir cc-nptl +cd cc-nptl +configure_and_build_glibc "$BuildFlags" \ +%if %{powerpc_optimize_base_cpu_power4} +"$add_ons,powerpc-cpu" --with-cpu=power4 +%else +"$add_ons" +%endif +cd .. +%if %{optimize_power} +# +# Build POWER optimized +# +for pcpu in \ +%if %{powerpc_optimize_cpu_power4} +power4 \ +%endif +%if %{powerpc_optimize_cpu_power5} +%if %{powerpc_optimize_cpu_power5_compile} +power5 \ +%endif +%endif +%if %{powerpc_optimize_cpu_power6} +power6 \ +%endif +%if %{powerpc_optimize_cpu_power7} +power7 \ +%endif +; do +mkdir cc-$pcpu +cd cc-$pcpu +configure_and_build_glibc "$BuildFlags -mcpu=$pcpu" "$add_ons,powerpc-cpu" --with-cpu=$pcpu --disable-runbinaries +cd .. +done +%if %{powerpc_optimize_cpu_cell} +mkdir cc-ppc-cell-be +cd cc-ppc-cell-be +configure_and_build_glibc "$BuildFlags -mcpu=cell" "$add_ons" --disable-runbinaries +cd .. +%endif +# optimize_power +%endif +# +# Build html documentation +# +make -C cc-nptl html +# +# Build glibc_post_upgrade binary +# +$BuildCC -static -Os -g $RPM_SOURCE_DIR/glibc_post_upgrade.c -o glibc_post_upgrade \ + -Lcc-nptl -Bcc-nptl/csu \ + '-DREMOVE_TLS_DIRS' \ +%ifarch ppc ppc64 +%if !%{powerpc_optimize_cpu_power4} + '-DREMOVE_PPC_OPTIMIZE_POWER4' \ +%endif +%if !%{powerpc_optimize_cpu_power5} + '-DREMOVE_PPC_OPTIMIZE_POWER5' \ +%endif +%if !%{powerpc_optimize_cpu_power6} + '-DREMOVE_PPC_OPTIMIZE_POWER6' \ +%endif +%if !%{powerpc_optimize_cpu_power7} + '-DREMOVE_PPC_OPTIMIZE_POWER7' \ +%endif +%if !%{powerpc_optimize_cpu_cell} + '-DREMOVE_PPC_OPTIMIZE_CELL' \ +%endif +%endif + '-DLIBDIR="/%{_lib}"' '-DGCONV_MODULES_DIR="%{_prefix}/%{_lib}/gconv"' + +%check +%if %{run_testsuite} +# Increase timeout +export TIMEOUTFACTOR=16 +%ifarch alpha %ix86 ppc ppc64 ia64 s390 s390x x86_64 +# ix86: tst-cputimer? fails +# ia64: tst-timer4 fails +# ppc64: tst-pselect, ftwtest fails +# s390,s390x: tst-timer* fails + make -C cc-nptl -k check || echo make check failed +%else + make -C cc-nptl check +%endif +%endif +make -C cc-nptl check-abi || echo check-abi failed + +%install +# We don't want to strip the .symtab from our libraries in find-debuginfo.sh, +# at least not from libpthread.so.* because it is used by libthread_db to find +# some non-exported symbols in order to detect if threading support +# should be enabled. These symbols are _not_ exported, and we can't easily +# export them retroactively without changing the ABI. So we have to +# continue to "export" them via .symtab, instead of .dynsym :-( +export STRIP_KEEP_SYMTAB=libpthread* +# Make sure we will create the gconv-modules.cache +mkdir -p $RPM_BUILD_ROOT%{_libdir}/gconv +touch $RPM_BUILD_ROOT%{_libdir}/gconv/gconv-modules.cache +# Do not install in parallel, timezone Makefile will fail +make install_root=$RPM_BUILD_ROOT install -C cc-nptl +%if %{optimize_power} +# run ldconfig to create the library symlinks +# do not use the new ldconfig from the build directory because +# it may contain instructions not suitable for the cpu on the builhost +my_ldconfig=/sbin/ldconfig +# +for pcpu in \ +%if %{powerpc_optimize_cpu_power4} +power4 \ +%endif +%if %{powerpc_optimize_cpu_power5} +%if %{powerpc_optimize_cpu_power5_compile} +power5 \ +%endif +%endif +%if %{powerpc_optimize_cpu_power6} +power6 \ +%endif +%if %{powerpc_optimize_cpu_power7} +power7 \ +%endif +%if %{powerpc_optimize_cpu_cell} +ppc-cell-be \ +%endif +; do + make install_root=${RPM_BUILD_ROOT}/$pcpu install -C cc-$pcpu + mkdir -p $RPM_BUILD_ROOT/%{_lib}/$pcpu + for i in libc-%{version} libm-%{version} libpthread-%{version} libthread_db-1.0 librt-%{version} + do + mv $RPM_BUILD_ROOT/$pcpu/%{_lib}/$i.so $RPM_BUILD_ROOT/%{_lib}/$pcpu + done + $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/$pcpu/ + rm -rf $RPM_BUILD_ROOT/$pcpu +done +%if %{powerpc_optimize_cpu_power4} +# ppc970 is compatible with power4, unless compiled with altivec support +# doing a symlink doesnt work, ldconfig follows them and accepts only the first real dir +if test -d $RPM_BUILD_ROOT/%{_lib}/power4 +then + mkdir -p $RPM_BUILD_ROOT/%{_lib}/ppc970 + for i in $RPM_BUILD_ROOT/%{_lib}/power4/*.so ; do + b=`basename $i` + ln -vs ../power4/$b \ + $RPM_BUILD_ROOT/%{_lib}/ppc970/$b + done + $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/ppc970/ +fi +%endif +%if %{powerpc_optimize_cpu_power5} +# power5+ is compatible with power5 (adds only a few floating point instructions) +# doing a symlink doesnt work, ldconfig follows them and accepts only the first real dir +# symlink to power4 directory, which is built only on ppc32 +%if %{powerpc_optimize_cpu_power5_compile} +if test -d $RPM_BUILD_ROOT/%{_lib}/power5 +then + mkdir -p $RPM_BUILD_ROOT/%{_lib}/power5+ + for i in $RPM_BUILD_ROOT/%{_lib}/power5/*.so ; do + b=`basename $i` + ln -vs ../power5/$b \ + $RPM_BUILD_ROOT/%{_lib}/power5+/$b + done + $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/power5+/ +fi +%else +if test -d $RPM_BUILD_ROOT/%{_lib}/power4 +then + mkdir -p $RPM_BUILD_ROOT/%{_lib}/power5 + mkdir -p $RPM_BUILD_ROOT/%{_lib}/power5+ + for i in $RPM_BUILD_ROOT/%{_lib}/power4/*.so ; do + b=`basename $i` + ln -vs ../power4/$b \ + $RPM_BUILD_ROOT/%{_lib}/power5/$b + ln -vs ../power4/$b \ + $RPM_BUILD_ROOT/%{_lib}/power5+/$b + done + $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/power5/ + $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/power5+/ +fi +%endif +%endif +%if %{powerpc_optimize_cpu_power6} +# power6 is compatible with power6x +# doing a symlink doesnt work, ldconfig follows them and accepts only the first real dir +if test -d $RPM_BUILD_ROOT/%{_lib}/power6 +then + mkdir -p $RPM_BUILD_ROOT/%{_lib}/power6x + for i in $RPM_BUILD_ROOT/%{_lib}/power6/*.so ; do + b=`basename $i` + ln -vs ../power6/$b \ + $RPM_BUILD_ROOT/%{_lib}/power6x/$b + done + $my_ldconfig -n $RPM_BUILD_ROOT/%{_lib}/power6x/ +fi +%endif +# optimize_power +%endif +%if %{build_locales} +# Do not install locales in parallel! +cd cc-nptl +make install_root=$RPM_BUILD_ROOT install-locales -C ../localedata objdir=`pwd` +cd .. +%endif +#create file list for glibc-locale package +%{find_lang} libc +cd manpages; make install_root=$RPM_BUILD_ROOT install; cd .. +export RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT/%{_lib}/obsolete +# +# NPTL is not usable outside of glibc, so include +# the generic one (RH#162634) +# +cp -av bits/stdio-lock.h $RPM_BUILD_ROOT%{_prefix}/include/bits/stdio-lock.h +%ifarch s390x +# +# s390x is different ... +# +mkdir $RPM_BUILD_ROOT/lib +ln -sf ../%{_lib}/ld-%{version}.so $RPM_BUILD_ROOT/lib/ld64.so.1 +%endif +# +# Install glibc_post_upgrade tool +# +install -m 0700 glibc_post_upgrade $RPM_BUILD_ROOT%{_sbindir} +# +# Install the mapv4v6* header files +# +mkdir -p $RPM_BUILD_ROOT/usr/include/resolv +install -m 0644 resolv/mapv4v6addr.h $RPM_BUILD_ROOT/usr/include/resolv/ +install -m 0644 resolv/mapv4v6hostent.h $RPM_BUILD_ROOT/usr/include/resolv/ +# +# glibc documentation in HTML +# +mkdir -p $RPM_BUILD_ROOT/usr/share/doc/glibc +cp -p manual/libc/*.html $RPM_BUILD_ROOT/usr/share/doc/glibc +# +# Install nscd tools +# +mkdir -p $RPM_BUILD_ROOT/etc/init.d +cp nscd/nscd.conf $RPM_BUILD_ROOT/etc +install -m 755 $RPM_SOURCE_DIR/nscd.init $RPM_BUILD_ROOT/etc/init.d/nscd +ln -sf /etc/init.d/nscd $RPM_BUILD_ROOT/usr/sbin/rcnscd +mkdir -p $RPM_BUILD_ROOT/var/run/nscd +touch $RPM_BUILD_ROOT/var/run/nscd/{passwd,group,hosts} +touch $RPM_BUILD_ROOT/var/run/nscd/{socket,nscd.pid} +# Install bindresvport.blacklist +install -m 644 $RPM_SOURCE_DIR/bindresvport.blacklist $RPM_BUILD_ROOT/etc +# +# Create ld.so.conf +# +cat > $RPM_BUILD_ROOT/etc/ld.so.conf <. +* Thu Apr 13 2006 kukuk@suse.de +- Add /usr/include/linux/taskstats.h [#141936] +* Tue Apr 11 2006 kukuk@suse.de +- nptl/init.c (sigcancel_handler): Compare with correct PID even + if the thread is in the middle of a fork call. + (sighandler_setxid): Likewise. +* Sun Apr 09 2006 ihno@suse.de +- S390 fix for startupcode. Part of it was not PIC. +* Fri Apr 07 2006 kukuk@suse.de +- Don't hardcode syscall numbers at our own +* Tue Apr 04 2006 schwab@suse.de +- Fix readlink declaration. +* Mon Apr 03 2006 kukuk@suse.de +- Update from CVS: + - nscd bug fixes + - Match return value of readlink to what POSIX says + - Fix NIS+ checks for NULL pointer +* Sun Apr 02 2006 dmueller@suse.de +- Fix clients crash if nscd is unresponsive (glibc-#2501) +- Fix fd leak in nscd daemon (glibc-#2498) +* Sat Apr 01 2006 schwab@suse.de +- Fix on ppc64. +* Fri Mar 31 2006 schwab@suse.de +- Extend last change also to ppc64. +* Sun Mar 26 2006 schwab@suse.de +- Terminate FDE before clone syscall. +* Fri Mar 24 2006 ro@suse.de +- kernel-headers: asm-powerpc: define PAGE_MASK in page.h +* Mon Mar 20 2006 kukuk@suse.de +- Update to final 2.6.16 kernel headers +- Update to current CVS: + - Don't use TLS before setting it up. + - Fix rounding of long doubles on ppc64. + - Correct usage of cfi_offset on ppc/ppc64. + - Fix memory leak in dlopen. +* Tue Mar 14 2006 schwab@suse.de +- Update fnmatch patch. +* Fri Mar 10 2006 kukuk@suse.de +- Disable unshare() syscall (request of kernel developer) +* Fri Mar 10 2006 kukuk@suse.de +- Don't include linux/interrupt.h from linux/rtc.h +- Revert last change to linux/input.h, disable struct +- Update to current CVS (nptl/ia64 fix) +* Thu Mar 09 2006 kukuk@suse.de +- Fix linux/input.h for userspace inclusion +* Wed Mar 08 2006 kukuk@suse.de +- Update kernel headers to 2.6.16-rc5 +* Mon Mar 06 2006 kukuk@suse.de +- Update to 2.4 CVS + - official release + - Fix free on ppc [#155374] + - Various sysconf() fixes +* Sat Mar 04 2006 kukuk@suse.de +- Update to CVS + - ldconfig/prelink fixes +* Fri Mar 03 2006 aj@suse.de +- Do not leave hyphens in defines in create_biarch_asm.sh (Bug 154998). +* Fri Mar 03 2006 kukuk@suse.de +- Update to CVS + - Fix ftw test suite failures + - Fix alignment of malloc for long double +* Thu Mar 02 2006 kukuk@suse.de +- Update to 2.3.91 CVS + - Fix 6arg syscall on s390x + - memccpy fix on IA64 +* Wed Mar 01 2006 kukuk@suse.de +- Update to CVS + - New linkat interface + - Update from tzdata2006b + - Define MADV_DONTFORK and MADV_DOFORK. + - Add robust mutex to NPTL +* Thu Feb 23 2006 kukuk@suse.de +- Reenable power optimized code again [#142839] +* Sun Feb 12 2006 kukuk@suse.de +- Disable power optimized code +* Thu Feb 09 2006 kukuk@suse.de +- Update to CVS + - Add unshare prototype + - Add memory barrier on i386/NPTL +* Wed Feb 08 2006 kukuk@suse.de +- Remove glibc-2.4-ppc-dl-procinfo-20060111.diff [#142839] +* Mon Feb 06 2006 kukuk@suse.de +- Update to current CVS +- Fix alternate locale search path patch [#147685] +* Thu Feb 02 2006 kukuk@suse.de +- Update to current CVS +* Mon Jan 30 2006 schwab@suse.de +- Fix the fix. +* Sat Jan 28 2006 kukuk@suse.de +- Fix seg.fault in __atfct_seterrno if called from futimesat() +- Apply patches for CPU-Tuned Environment on Power [#142839] +* Fri Jan 27 2006 kukuk@suse.de +- Cleanup ld.so.conf +* Thu Jan 26 2006 kukuk@suse.de +- Add alternate directory for translations [#144073] +* Thu Jan 26 2006 mls@suse.de +- converted neededforbuild to BuildRequires +* Mon Jan 23 2006 kukuk@suse.de +- Update to CVS +- Fix build_locales +* Sat Jan 21 2006 kukuk@suse.de +- Update to CVS +- Fix inclusion of sys/poll.h with _GNU_SOURCE defined +* Fri Jan 20 2006 kukuk@suse.de +- Update to CVS +* Sun Jan 15 2006 kukuk@suse.de +- Update to CVS (fix long double configure check) +* Sun Jan 15 2006 schwab@suse.de +- Readd , , . +* Sun Jan 15 2006 schwab@suse.de +- Readd . +* Sat Jan 14 2006 kukuk@suse.de +- Update to current CVS (long double support) +* Fri Jan 13 2006 aj@suse.de +- Fix x86-64 w_exp to not use extra plt. +* Thu Jan 12 2006 kukuk@suse.de +- Fix asm-s390/setup.h for userspace inclusion +- nsswitch.conf: Add nis to netgroup and automount entry +- Fix sys/procfs.h for ppc64 +* Mon Jan 09 2006 kukuk@suse.de +- Update to current CVS (fix for pthread.h with -std=c99) +- Define PAGE_SIZE on POWER +- Don't include linux/sched.h in asm-power/elf.h +* Sun Jan 08 2006 kukuk@suse.de +- Fix linux/acct.h for userland inclusion +* Sun Jan 08 2006 kukuk@suse.de +- Update to current CVS +- Remove CHILD_MAX from kernel-headers +- Copy subdirectories of asm-power, too. +- Remove da_DK@euro (does not exist) +* Sat Jan 07 2006 kukuk@suse.de +- Fix ext2 kernel headers +- Update to current CVS +* Fri Jan 06 2006 kukuk@suse.de +- Update to kernel headers 2.6.15 +* Fri Jan 06 2006 kukuk@suse.de +- Update crypt_blowfish to version 1.0 +- Update to current CVS +- Adjust nscd patches +* Tue Jan 03 2006 aj@suse.de +- Update to current CVS to fix pthread.h on 64-bit systems for C++. +* Tue Jan 03 2006 aj@suse.de +- Enable string patch again. +- Update to current CVS. +* Wed Dec 21 2005 kukuk@suse.de +- Update to current CVS +- Fix ldconfig +* Sat Dec 17 2005 kukuk@suse.de +- Remove /usr/lib/zoneinfo +- Add /etc/localtime to filelist +- Update to current CVS +- Fix glibc #1978: statvfs does not know about current filesystems +- Fix wrong error return code of time() on x86 +- Remove nscd_nischeck +- Remove audit from nfb +- Remove LinuxThreads +* Wed Dec 14 2005 kukuk@suse.de +- Update to current CVS +- Remove nscd_nischeck +- Remove audit from nfb +* Mon Dec 05 2005 kukuk@suse.de +- Update to current CVS +- Disable SELinux +* Thu Nov 24 2005 kukuk@suse.de +- Remove obsolete patches: + - glibc-2.3.asprintf-error_handling.diff + - glibc-2.3.90-missing-string_h.diff +* Wed Nov 23 2005 kukuk@suse.de +- Update to current CVS +- Don't install in parallel +* Fri Nov 18 2005 kukuk@suse.de +- Update to current CVS to fix compiling with new binutils +* Wed Nov 16 2005 kukuk@suse.de +- Update to current CVS +* Sat Nov 05 2005 kukuk@suse.de +- Update to current CVS +- Disable linuxthreads on POWER and Itanium +- Fix kernel-headers for userland inclusion +* Wed Nov 02 2005 kukuk@suse.de +- Update to current CVS +- Update to kernel-headers 2.6.14 +* Tue Oct 18 2005 kukuk@suse.de +- Update to current CVS +* Sat Oct 01 2005 schwab@suse.de +- Update libm ULPs. +- Fix limit in getcwd. +* Thu Sep 15 2005 kukuk@suse.de +- Update to current CVS +- Update to final 2.6.13 kernel headers +- Adjust bindresvport.blacklist patch to check already ports >= 512 +* Fri Aug 26 2005 kukuk@suse.de +- Update to current CVS +- init.d/nscd: Remove -S support (was removed from nscd) +* Fri Aug 19 2005 schwab@suse.de +- Fix comment. +* Fri Aug 19 2005 matz@suse.de +- Change .note.SuSE format [#105825]. +* Fri Aug 19 2005 kukuk@suse.de +- Update to current CVS +- Move all obsolete libraries into own subpackage and document + them as obsolete +* Fri Aug 05 2005 schwab@suse.de +- -mno-tls-direct-seg-refs is x86-only +* Tue Aug 02 2005 kukuk@suse.de +- Update to 2.3.x CVS branch +- Compile with -mno-tls-direct-seg-refs +* Fri Jul 29 2005 kukuk@suse.de +- Update to current CVS head +* Wed Jul 27 2005 schwab@suse.de +- Update libm ULPs for ia64. +- Add linuxthreads stack guard support for ia64. +* Sat Jul 23 2005 kukuk@suse.de +- Update to current CVS head (adds bits/wchar2.h) +- Move LinuxThreads version to obsolete/linuxthreads +* Thu Jul 21 2005 kukuk@suse.de +- Update to current CVS head +* Fri Jul 15 2005 schwab@suse.de +- Fix file list. +* Fri Jul 15 2005 aj@suse.de +- Fix amd64 string routines and math routines. +* Fri Jul 15 2005 kukuk@suse.de +- Use old LinuxThreads only for runtime and remove static version + and headers +- Update to current CVS head +- Remove own texi2html +* Mon Jul 11 2005 kukuk@suse.de +- Install generic stdio-lock.h header file +* Sat Jul 09 2005 kukuk@suse.de +- Temporary disable AMD64 string optimization +* Wed Jul 06 2005 kukuk@suse.de +- Build and install ja_JP.SHIFT_JISX0213 locale [Bug #84030] +* Mon Jul 04 2005 kukuk@suse.de +- nss_compat: Preserve original return value [Bug #95033] +- Cleanup old Obsoletes/Requires +* Mon Jun 27 2005 kukuk@suse.de +- Update to current gilbc CVS snapshot +* Thu Jun 23 2005 kukuk@suse.de +- Update to current glibc CVS snapshot +- Adjust nscd patch +- Enable SELinux/audit support for nscd +- Update .note.SuSE version +* Mon Jun 20 2005 kukuk@suse.de +- Update to final 2.6.12 kernel headers +- Update to current glibc CVS snapshot +* Thu Jun 16 2005 kukuk@suse.de +- Update linux/audit.h header +- Update to current CVS snapshot +* Mon Jun 13 2005 kukuk@suse.de +- Don't terminate strings twice in nis/netgroup code. +- netinet/if_tr.h: don't include kernel headers. +* Wed Jun 08 2005 kukuk@suse.de +- Update to kernel-headers 2.6.12-rc6 +- Fix build on s390 and s390x +* Wed Jun 08 2005 matz@suse.de +- Don't strip .symtab from libpthread.so.0 (and other libs). + Fixes debugging of threaded programs (#81253). +* Mon Jun 06 2005 kukuk@suse.de +- Update to current CVS head +- Update to kernel-headers 2.6.12-rc5 +* Thu May 26 2005 schwab@suse.de +- No longer build loadlocale.c with -fno-unit-at-a-time. +* Tue May 24 2005 kukuk@suse.de +- Update to current CVS head, obsoletes: + - glibc-2.3.90-libm.diff + - glibc-2.3.90-i386-sysdep.diff + - warn.diff + - dl-osinfo.diff + Adjusted: + - glibc-2.3.90-bindresvport.blacklist.diff +* Sun May 22 2005 schwab@suse.de +- Fix missing include. +* Tue May 17 2005 schwab@suse.de +- Fix warning. +* Fri Apr 29 2005 kukuk@suse.de +- Update to latest CVS snapshost +* Sat Apr 23 2005 kukuk@suse.de +- Fix all the archs using wrong FLAGS +* Sat Apr 23 2005 kukuk@suse.de +- Remove -D_FORTIFY_SOURCE from RPM_OPT_FLAGS +* Fri Apr 22 2005 kukuk@suse.de +- Update to current CVS +* Fri Apr 22 2005 kukuk@suse.de +- Check if nice value does not conflict with test suite +* Tue Apr 19 2005 mls@suse.de +- resolv: trigger re-read of /etc/resolv.conf for all threads if + a change is detected +- nscd: support a negative timeout of zero, used by hosts cache +* Mon Apr 18 2005 meissner@suse.de +- Enable fortify possibility even for GCC 4.0, we apply + the necessary patch to the SUSE GCC 4.0. +* Sat Apr 16 2005 aj@suse.de +- Apply amd64 string diff again. +* Tue Apr 12 2005 kukuk@suse.de +- Update kernel-headers to 2.6.10 +- Update to current CVS snapshot +* Wed Apr 06 2005 schwab@suse.de +- Cleanup neededforbuild. +* Tue Apr 05 2005 aj@suse.de +- Add gettext-devel to neededforbuild. +* Tue Apr 05 2005 aj@suse.de +- Do not build on xen machines. +- Adjust libm ULPs for PowerPC. +* Fri Apr 01 2005 kukuk@suse.de +- Update to current CVS snapshot +* Tue Mar 29 2005 kukuk@suse.de +- Update to current CVS snapshot +- Fix compiler warnings on ix86 +* Mon Mar 28 2005 kukuk@suse.de +- Update to current CVS snapshot +- Disable Noversion Patch on i386 temporary +* Fri Mar 18 2005 ro@suse.de +- check-build.sh: require 2.6.11 on x86,x86_64 for build +* Thu Mar 17 2005 mls@suse.de +- nscd: enable hosts cache +- nscd: also watch /etc/resolv.conf +- nscd: check files every 3 seconds +- nscd: deal correctly with missing files +* Tue Mar 15 2005 kukuk@suse.de +- Update to current CVS snapshot. +* Sat Feb 12 2005 schwab@suse.de +- Remove const from __pthread_internal_tsd_address. +* Fri Feb 11 2005 schwab@suse.de +- Update to current CVS. +- Link glibc_post_upgrade against new libc. +- Fix build error with gcc4. +* Wed Feb 09 2005 kukuk@suse.de +- Update to current CVS +- Fix bindresvport blacklist handling. +- Increase buffer in tst-cancel17 to match new kernel buffer size + [#50277] +- Enable LinuxThreads again +- Remove ia64-audit patch (is upstream) +* Mon Feb 07 2005 aj@suse.de +- Add patch to allow compilation with gcc4. +* Mon Jan 31 2005 schwab@suse.de +- Readd support for LD_AUDIT on ia64. +* Mon Jan 31 2005 kukuk@suse.de +- Add memory clobber to string inline assemblies on s390 [#50284]. +* Mon Jan 31 2005 kukuk@suse.de +- Fix filelist on i686 if we build NPTL only version +* Mon Jan 31 2005 aj@suse.de +- Generate new ULPs file for i386 needed by GCC 4. +* Sun Jan 30 2005 kukuk@suse.de +- Include own copy of texi2html +- Add glibc_pst_upgrade program (based on version from FC3) +- Update to current CVS +* Thu Jan 27 2005 kukuk@suse.de +- Re-add patch for timezone/zic.c (got lost with last merge) +* Wed Jan 26 2005 kukuk@suse.de +- Update timezone data to 2005c release (fixes zdump crash on + 64bit architectures) +* Sat Jan 22 2005 schwab@suse.de +- Add basic (incomplete) support for LD_AUDIT on ia64. +* Fri Jan 21 2005 kukuk@suse.de +- Enable patch for [Bug #49833] +- Allow to build NPTL only glibc +- Update to CVS from Jan 16, 2005, containing: +- Fix execlp argument in SunRPC code [glibc #681] +- Fix errno return values for futimes [glibc #633] +- Update FPU function on PPC/PPC64 [Bug #49764] +* Mon Jan 17 2005 aj@suse.de +- Enable amd64 string patch again after fixing failing hunks. +- Handle missing cpuid better for amd64 string functions. [#49803] +* Sat Jan 15 2005 aj@suse.de +- Fix amd64 string patch to use correct datatype. +* Fri Jan 14 2005 kukuk@suse.de +- Fix memory corruption in getgrouplist function [Bug #49833] +* Tue Jan 11 2005 kukuk@suse.de +- Enable all LinuxThreads tests again +- Finalize getconf -a patch (make it compatible with Solaris) +- Rewrite getconf manual page and mention new option +- Merge GB18030 patches into one. +* Thu Dec 30 2004 kukuk@suse.de +- Merge kernel-headers.remove-SO_BSDCOMPAT.diff with + kernel-headers.SuSE.diff +- Revert nscd paths on old SuSE Linux distributions +* Wed Dec 29 2004 kukuk@suse.de +- Update to glibc 2.3.90 CVS branch +- Remove alarm-round.patch (merged upstream) +* Thu Dec 09 2004 kukuk@suse.de +- Update to current CVS +- Move nscd persistent database files back to /var/run/nscd +* Mon Dec 06 2004 kukuk@suse.de +- Update to current CVS +- Fix more kernel headers for userland inclusion +* Fri Nov 26 2004 ro@suse.de +- kernel-headers.diff: define __force in compiler.h +* Thu Nov 25 2004 schwab@suse.de +- Add Intel libm update. +* Thu Nov 25 2004 kukuk@suse.de +- Update to current glibc CVS +- Update kernel headers to 2.6.9 +* Thu Nov 18 2004 kukuk@suse.de +- Update to current glibc CVS +* Mon Nov 15 2004 kukuk@suse.de +- Update to current glibc CVS +* Mon Nov 08 2004 kukuk@suse.de +- Blacklist port 921 (lwresd) for usage by bindresvport() +- Update to current glibc CVS +- Add /var/run/nscd/* files as ghost entries +* Mon Oct 18 2004 aj@suse.de +- Don't use special fdim functions for x86-64 since those give + wrong results for fdim (inf,inf). +- Fix ppc64 rebuild issue with ppc32 system [#47325]. +* Wed Oct 13 2004 kukuk@suse.de +- Fix symlink librt.so -> tls/librt.so.1 +- Backout last glob changes +- Disable nptl as default for linking +* Tue Oct 12 2004 kukuk@suse.de +- Install kernel-headers after merging linuxthreads/NPTL headers +* Tue Oct 12 2004 kukuk@suse.de +- Update to current CVS snapshot +* Mon Oct 11 2004 kukuk@suse.de +- Make NPTL default for linking +* Fri Oct 01 2004 kukuk@suse.de +- Update to current CVS snapshot +- Add workaround for linuxthreads/without-__threads bug +- Remove KDE/ldconfig workaround +- Set SuSE ABI note to 9.3 +* Sun Sep 26 2004 kukuk@suse.de +- Add lib/nptl/librt.so symlink to tls/librt.so.1 +- Update to current CVS +* Sat Sep 25 2004 kukuk@suse.de +- Implement mq support for rtkaio and enable it again +* Fri Sep 24 2004 kukuk@suse.de +- Add zh_SG.UTF-8 [Bug #46024] +* Thu Sep 23 2004 kukuk@suse.de +- Sync sys/mount.h and linux/fs.h +* Wed Sep 22 2004 kukuk@suse.de +- Make mdns support configurable in /etc/host.conf +* Mon Sep 20 2004 kukuk@suse.de +- Fix invalidating of nscd caches and getaddrinfo() +* Fri Sep 17 2004 kukuk@suse.de +- Update to current CVS (nscd and glob.h fixes) +* Thu Sep 16 2004 kukuk@suse.de +- Fix getaddrinfo/nscd support +* Wed Sep 15 2004 kukuk@suse.de +- Update to current CVS, remove merged patches +* Sun Sep 12 2004 kukuk@suse.de +- Update to CVS: Fix nscd crash if one service is disabled +- glob.h: Add workaround for invalid prototypes +- nss_compat: Check that buffer is larger than 0 bytes +* Fri Sep 10 2004 kukuk@suse.de +- Update to CVS: Fix cdefs.h for C++ usage +* Fri Sep 10 2004 kukuk@suse.de +- Add lwres to hosts search order in nsswitch.conf +- Update to current CVS +- Use new nscd paths for socket/pid file +- Enable NPTL on i586 +- Add --print-all option to getconf +* Thu Sep 02 2004 kukuk@suse.de +- Fix NPTL header files on x86-64 for 32bit compilation +- Apply various fixes from CVS +- Remove pre-Install for -devel package (no longer necessary) +* Wed Aug 25 2004 kukuk@suse.de +- Don't compile in eval.c +* Mon Aug 23 2004 kukuk@suse.de +- Update to current CVS: + - Use CVS version for last fix. + - Add malloc sanity checks for double free. +* Fri Aug 20 2004 schwab@suse.de +- Fix cancellable syscalls in librt w/ linuxthreads. +* Fri Aug 20 2004 kukuk@suse.de +- Update to current CVS [#43993] +* Thu Aug 19 2004 schwab@suse.de +- Better fix for asm-ia64/gcc_intrin.h. +* Wed Aug 18 2004 kukuk@suse.de +- Update to current CVS +- Workaround linux/ixjuser.h problem not including compiler.h +- Workaround linux/capi.h problem not including compiler.h +* Tue Aug 17 2004 schwab@suse.de +- Fix asm-ia64/gcc_intrin.h. +* Tue Aug 17 2004 kukuk@suse.de +- Workaround broken linux/crc-ccitt.h for usage from glibc [#43884] +* Mon Aug 16 2004 kukuk@suse.de +- Update to current CVS version and update to + kernel-headers 2.6.8.1 to fix NPTL deadlock problems +- Disable linuxthreads/tst-clock1, does not work on i586 and lower +* Fri Aug 13 2004 kukuk@suse.de +- Update to current CVS version +- Cleanup/adjust all patches +* Thu Jun 17 2004 kukuk@suse.de +- Fix sched_setaffinity return/errno code in error case [#42124] +* Wed Jun 16 2004 meissner@suse.de +- Updated altivec set/get/swapcontext patch to fix + more problems on altivec capable machines [#42039]. +- glibc is also able to build on -pmac64 kernels. +* Mon Jun 14 2004 kukuk@suse.de +- Add fixes from CVS: + - sysconf return value fixes + - nscd host caching deadlock + - backtrace for s390/s390x/ia64 static linked binaries +* Mon Jun 14 2004 kukuk@suse.de +- Increase listen backlog in RPC code [#41955] +* Wed Jun 09 2004 meissner@suse.de +- Fixed typos in powerpc* *context functions to not destroy the r19 + register and save the v19 register correctly. [#41790] +* Sat Jun 05 2004 aj@suse.de +- Fix makecontext with more than 6 arguments on x86-64 [#40546]. +* Mon May 24 2004 kukuk@suse.de +- Update to kernel-headers 2.6.6 +- Update to current glibc CVS +- Disable rtkaio temporary +* Sun May 23 2004 kukuk@suse.de +- Fix pthread_cond_wait on not ix86 and x86-64 architectures +* Thu May 20 2004 kukuk@suse.de +- Add PPC64 kernel header file fixes [#40831,#40870] +* Wed May 19 2004 kukuk@suse.de +- Add additional NPTL fixes from CVS +* Tue May 18 2004 schwab@suse.de +- Fix mapping of DSOs with holes. +* Fri May 14 2004 schwab@suse.de +- Fix rounding in alarm [#40552]. +* Wed May 12 2004 schwab@suse.de +- Fix uninitialized array in regexp compiler [#40009]. +* Tue May 11 2004 kukuk@suse.de +- Apply lot of fixes from current CVS +- Fix alignment of stack for makecontext on x86-64 [Bug #39413] +- Make XTABS identical to TABDLY on PPC +* Wed May 05 2004 kukuk@suse.de +- Add some header fixes to match POSIX +* Tue May 04 2004 meissner@suse.de +- Fix INLINE_SYSCALL on ppc and ppc64 (see #38399) +* Mon May 03 2004 kukuk@suse.de +- Port --mlock option for ld.so from UL1 [Bug #39569] +* Tue Apr 20 2004 kukuk@suse.de +- Add execstack fix for s390 +* Mon Apr 19 2004 kukuk@suse.de +- Update to current CVS version (fix problems with new binutils + and gcc) +* Mon Apr 19 2004 kukuk@suse.de +- Add pthread_getattr_np and syslog fixes from CVS +- Update gb18030 and big5hkscs gconv modules [Bug #39080] +* Sat Apr 17 2004 schwab@suse.de +- Pacify autobuild. +* Thu Apr 15 2004 kukuk@suse.de +- Add /etc/ld.so.conf.d/*.conf to /etc/ld.so.conf +- Disable FUTEX_REQUEUE support in NPTL library [Bug #38882] +* Wed Apr 14 2004 schwab@suse.de +- Remove /usr/i386-linux from ld.so.conf, +* Wed Apr 14 2004 kukuk@suse.de +- Fix linux/compiler.h for glibc inclusion +- Really fix ffsl on s390x +* Fri Apr 09 2004 schwab@suse.de +- Fix syntax error in memcmp. +* Fri Apr 09 2004 kukuk@suse.de +- Update from CVS: linuxthread debug fixes +- Fix INLINE_SYSCALL on x86-64 and ia64 (fixes #38399) +- Fix ffsl weak alias on s390x +- Update to 2.6.5 kernel headers +* Wed Apr 07 2004 meissner@suse.de +- forward umount to umount2 on ppc64 because umount syscall + does not exist +* Mon Apr 05 2004 kukuk@suse.de +- Sync with current CVS (which is nearly identical with most of + our latest patches) +* Fri Apr 02 2004 kukuk@suse.de +- Make fstatvfs64 working on 32bit architectures +- Add fwrite LFS fix from aj +- Add powerpc fixes from CVS +- Fix wrong errno code for shm_unlink [Bug #38013] +* Wed Mar 31 2004 kukuk@suse.de +- Add three fixes from CVS: + - Call __nptl_deallocate_tsd for main thread, too + - setgroups: optimizations for huge number of groups + - initgroups: Limit the initial allocation to 64 entries +* Tue Mar 30 2004 kukuk@suse.de +- Add IUTF8 to bits/termios.h [Bug #34725] +- *affinitiy.c: Prepend GLIBC_ to version names +* Sat Mar 27 2004 kukuk@suse.de +- Fix wrong return value of getXXbyYY_r in case key was not + found [Bug #37181] +- Fix typo in dl-open +- Don't set errno in NSS NIS module if group was not found +* Fri Mar 26 2004 aj@suse.de +- Add pow10/pow10f aliases for AMD64. +* Thu Mar 25 2004 kukuk@suse.de +- Update to latest CVS snapshot +* Sat Mar 20 2004 aj@suse.de +- Fix further problems with sched_[sg]etaffinity calls. +* Fri Mar 19 2004 aj@suse.de +- Fix sched_setaffinity compile problem. +* Fri Mar 19 2004 kukuk@suse.de +- Remove conflict with special aaa_base version (rpm will handle + this with file conflict) +* Fri Mar 19 2004 kukuk@suse.de +- Add SuSE abi note +- Add madvise patch +- Update to current CVS +* Wed Mar 17 2004 kukuk@suse.de +- Use official NPTL version fix +- Add LD_DEBUG=statistic for x86-64 +- Fix two JB_SIZE redefinitions on PPC +- Add two fixes for execstack +* Mon Mar 15 2004 kukuk@suse.de +- Require kernel 2.6.4 for glibc/NPTL +- Remove siginfo_t/si_band patch (needs to be fixed in kernel) +- Update linuxthreads_db and nptl_db +- Add libidn fixes from CVS +* Sat Mar 13 2004 kukuk@suse.de +- Adjust filelist (remove libcidn.a and libcidn_p.a) +* Sat Mar 13 2004 kukuk@suse.de +- Update to current CVS (merge of patches) +- Fix siginfo_t/si_band [Bug #34330] +* Thu Mar 11 2004 mls@suse.de +- Add mdns support to resolver library +* Thu Mar 11 2004 kukuk@suse.de +- Update kernel headers to 2.6.4 +- Update to current glibc CVS +* Wed Mar 10 2004 bg@suse.de +- Update hppa patches. +* Mon Mar 08 2004 kukuk@suse.de +- Fix vDSO on IA64 +* Mon Mar 08 2004 kukuk@suse.de +- Update from glibc CVS: + - Add libidn + - Lot of dynamic loader changes +* Thu Mar 04 2004 kukuk@suse.de +- Update from glibc CVS: + - Fix posix_fadvise vs. posix_fadvise64 +* Tue Mar 02 2004 kukuk@suse.de +- Fix PPC kernel header files +- Update from glibc CVS + - NPTL fixes + - nscd fixes +* Tue Mar 02 2004 schwab@suse.de +- Fix ppc32 to always use stat64 syscall. +* Sat Feb 28 2004 kukuk@suse.de +- Update from glibc CVS: + - Fix compiler warnings + - NPTL: Don't use CLONE_STOPPED + - Revert vDSO changes +* Fri Feb 27 2004 kukuk@suse.de +- Update from glibc CVS: + - Real NGROUP_MAX fix + - Lot of NPTL fixes + - clock_settime fix +- Add no_NO back (required by OpenI18N spec and [Bug #34745]) +* Thu Feb 26 2004 kukuk@suse.de +- Workaround broken NGROUP_MAX function +* Thu Feb 26 2004 kukuk@suse.de +- Add insserv PreRequires for nscd +- Update from CVS: NPTL and getaddrinfo memory leak fixes, + Get NGROUP_MAX from /proc filesystem +* Sat Feb 21 2004 kukuk@suse.de +- Update from CVS: IA64 relo fix, lot of PPC fixes +- Fix linux/mod_devicetable.h for userland inclusion +- Enable NPTL on Alpha +* Fri Feb 20 2004 schwab@suse.de +- Fix pthread_barrier_wait. +* Thu Feb 19 2004 kukuk@suse.de +- Update from CVS: More NPTL fixes +- nscd.init: Cleanups +* Wed Feb 18 2004 kukuk@suse.de +- Kernel Headers: Fix asm-ppc/unaliged.h, asm-ppc/types.h and + asm-ppc/bitops.h for userland inclusion. +* Wed Feb 18 2004 bg@suse.de +- Update hppa patches for current glibc +- Add workaround for ICE in hppa +* Tue Feb 17 2004 kukuk@suse.de +- Update from CVS: + - PPC nptl compatiblity fix + - NSCD patches merged + - ld.so.preload: Igreno missing files + - getaddrinfo: Fix problem with IPv6 addresses +* Tue Feb 17 2004 aj@suse.de +- Fix string optimizations init code on AMD64. +* Sat Feb 14 2004 kukuk@suse.de +- Update from CVS (for NPTL fixes and new PPC longjmp) +- Fix nscd deadlock with kernel 2.6 [Bug #34507] +* Fri Feb 13 2004 aj@suse.de +- Add more string/memory optimizations for AMD64. +* Thu Feb 12 2004 kukuk@suse.de +- Fix regex bug with invalid UTF-8 strings +* Thu Feb 12 2004 aj@suse.de +- Add more string optimizations for AMD64. +* Wed Feb 11 2004 kukuk@suse.de +- Update to current CVS snapshot +- Fix _IOC_TYPECHECK on s390/s390x/parisc +- Compile rtkaio only with NPTL +- Remove glibcbug (was dropped since glibc uses bugzilla now) +- Disable parallel build on s390x +* Tue Feb 10 2004 schwab@suse.de +- Work around invalid use of kernel headers in some packages. +* Fri Feb 06 2004 kukuk@suse.de +- Add kernel stat fix for PPC +- Add fix for off-by-one error in regex code +* Thu Feb 05 2004 kukuk@suse.de +- Update kernel header files to 2.6.2 +* Tue Feb 03 2004 bg@suse.de +- Update hppa patch +* Tue Feb 03 2004 kukuk@suse.de +- Fix ypclnt speedup patch +- Update to current CVS snapshot +* Mon Jan 26 2004 kukuk@suse.de +- Update to current CVS snapshot +* Wed Jan 21 2004 aj@suse.de +- Do not run in parallel on s390. +* Mon Jan 19 2004 ro@suse.de +- really fix linux/percpu.h to compile in userland +* Fri Jan 16 2004 kukuk@suse.de +- Update version.h to 2.6.1 +- Fix linux/percpu.h to compile in userland +- Update to current CVS snapshot +- Revert nscd path changes +* Wed Jan 14 2004 kukuk@suse.de +- Update to Kernel Headers 2.6.1 +- Update to current CVS snapshot +- Don't ignore make check on IA64 any longer +* Sat Jan 10 2004 schwab@suse.de +- Locale no_NO has been renamed to nb_NO. +* Fri Jan 09 2004 kukuk@suse.de +- Temporary ignore make check on IA64 and PPC + (known kernel/compiler bugs) +* Fri Jan 09 2004 stepan@suse.de +- fix v4l2 headers +* Wed Jan 07 2004 kukuk@suse.de +- Update to glibc CVS from 20040107 +- Remove manual pages which are now part of man-pages +* Thu Dec 18 2003 kukuk@suse.de +- Update to glibc CVS from 20031218 +- Update ot final 2.6.0 kernel headers +- Fix syntax error in spec file +- Update HPPA patch +* Mon Dec 15 2003 kukuk@suse.de +- Update to glibc CVS from 20031215 +* Fri Dec 12 2003 kukuk@suse.de +- Update to glibc CVS from 20031212 +- disable rtkaio (does not work with kernel 2.6 yet) +* Fri Dec 05 2003 kukuk@suse.de +- Update to glibc 2.3.3 CVS +- Make an extra sub package for nscd +* Thu Nov 27 2003 kukuk@suse.de +- Update to glibc CVS from 20031127 +- Add nsswitch.conf (moved from aaa_base) +- Add ld.so.conf (moved from aaa_base) [Bug #33277] +- Fix ceil on AMD64 +* Fri Nov 21 2003 kukuk@suse.de +- Update to glibc CVS from 20031121 +- Obsolete epoll (glibc-devel contains now this header files) +* Wed Nov 19 2003 kukuk@suse.de +- Add patch so that ld.so supports linuxthreads and nptl +- PPC64 requires kernel 2.4.21 +- Update to glibc CVS from 20031119 +* Fri Nov 14 2003 bg@suse.de +- Add hppa patches for current glibc. +* Fri Nov 14 2003 kukuk@suse.de +- Update to glibc CVS from 20031114 +- Remove PPC64 symbol version patch +* Thu Nov 13 2003 schwab@suse.de +- Fix last change covering libNoVersion. +* Mon Nov 10 2003 schwab@suse.de +- Specfile cleanup. +* Thu Nov 06 2003 kukuk@suse.de +- Update to glibc CVS from 20031106 +* Wed Nov 05 2003 uli@suse.de +- added a number of ARM fixes (glibc-2.3.2-armformat.patch, + glibc-armisa.patch, glibc-sjlj.patch) +* Mon Oct 27 2003 kukuk@suse.de +- Update to glibc CVS from 20031027 +- kernel headers: update to 2.6.0-test9 +- nptl: Use -fno-unit-at-a-time on AMD64, too +* Thu Oct 23 2003 kukuk@suse.de +- Update to current CVS version +* Wed Oct 22 2003 kukuk@suse.de +- nptl: Fix prototype in configure script +- nptl: Use -fno-unit-at-a-time +- locale: Add nb_NO +* Fri Oct 17 2003 kukuk@suse.de +- Increase timeout for make check on overloaded architectures +* Thu Oct 16 2003 kukuk@suse.de +- Fix building as normal user +* Wed Oct 15 2003 kukuk@suse.de +- Fix putpwent/putgrent +- Make build as normal user +* Tue Oct 14 2003 kukuk@suse.de +- Update to glibc CVS from 20031014 +* Tue Oct 14 2003 aj@suse.de +- Fix w_acosf for AMD64. +* Tue Oct 14 2003 kukuk@suse.de +- Fix asm-sparc/kbio.h to compile kbdrate/X11 +* Mon Oct 13 2003 kukuk@suse.de +- Update to kernel header files from 2.6.0-test7 +* Fri Oct 10 2003 schwab@suse.de +- Fix misnamed syscalls. +* Tue Oct 07 2003 kukuk@suse.de +- Update to glibc CVS from 20031007 +* Fri Oct 03 2003 kukuk@suse.de +- Update to glibc CVS from 20031003 +- Fix kernel ioctl header files for PPC/PPC64 +- Removed dl-reloc.c fix, merged upstream +* Wed Oct 01 2003 kukuk@suse.de +- Update to glibc cvs from 20031001 +- Remove sysmacros.h fix, merged upstream +- Add dl-reloc.c fix for compiler warnings +* Mon Sep 29 2003 kukuk@suse.de +- Update kernel-headers to 2.6.0-test6 +- Fix sysmacros.h to compile with -ansi +* Sat Sep 27 2003 kukuk@suse.de +- Update to glibc CVS from 20030927 +- Remove SO_BSDCOMPAT (obsoleted by kernel) +- Make _IOC_TYPECHECK useable for userland programs +* Fri Sep 26 2003 kukuk@suse.de +- Remove obsolete patches +- Update to crypt_blowfish 0.4.5 +* Fri Sep 26 2003 kukuk@suse.de +- Update to glibc CVS from 20030926 +- Update to nptl 0.60 +* Sat Sep 20 2003 kukuk@suse.de +- Update to glibc CVS from 20030920 +- Update to nptl 0.59 +* Wed Sep 17 2003 kukuk@suse.de +- Disable TLS for i586 glibc [Bug #31034] +* Tue Sep 16 2003 kukuk@suse.de +- Remove db1.85 +* Mon Sep 15 2003 kukuk@suse.de +- Update to glibc CVS from 20030915 +* Mon Sep 15 2003 kukuk@suse.de +- Update to kernel 2.6.0-test5 header files +* Sat Sep 13 2003 kukuk@suse.de +- Add librtkaio, a librt using kernel aio +* Thu Sep 11 2003 kukuk@suse.de +- Update to current CVS +- Remove patches which are merged in CVS +- Update to nptl-0.58 +- Remove _POSIX_VERSION hack +- version.h: Fix comment how to compile kernel modules +* Wed Sep 10 2003 aj@suse.de +- Install en_US.ISO-8859-15 under this name [#30373]. +* Tue Sep 09 2003 aj@suse.de +- Fix last patch. +* Mon Sep 08 2003 aj@suse.de +- Fix setting up of user signal handler in linuxthreads on x86_64. +* Fri Sep 05 2003 kukuk@suse.de +- Add dl-tls.c to fix out of memory with static TLS errors +* Wed Sep 03 2003 kukuk@suse.de +- Update glibc-linuxthreads +- Set _POSIX_VERSION back to 199209 +* Mon Sep 01 2003 kukuk@suse.de +- Fix typo in nss_compat patch +* Mon Sep 01 2003 kukuk@suse.de +- Add opendir fix for usage with NPTL +- Fix getspnam/getspent in nss_compat [Bug #29689] +- Set _POSIX2_VERSION back to 199209 +* Wed Aug 27 2003 kukuk@suse.de +- Update to current CVS version +* Mon Aug 25 2003 kukuk@suse.de +- Update to current CVS version +* Mon Aug 18 2003 aj@suse.de +- increase stack size for linuxthreads/set-context. +* Mon Aug 18 2003 aj@suse.de +- Fix mathinline.h for i386 to compile under C++ without warnings. +* Sun Aug 17 2003 ro@suse.de +- kernel-headers.dif: don't include device.h from videodev.h +* Fri Aug 15 2003 kukuk@suse.de +- Update to current cvs (fixes assert usage in C++ source code) +* Thu Aug 14 2003 kukuk@suse.de +- Initialize fp->_mode for glibc 2.0 compatibility [Bug #28386] +- On i686, include glibc with and without floating stack enabled +- Update to current cvs +- Update to nptl 0.56 +* Thu Jul 31 2003 kukuk@suse.de +- Reenable new quota.h +* Wed Jul 30 2003 kukuk@suse.de +- Update to current cvs +- Update kernel headers to 2.6.0-test2 +- Disable sys/quota.h update +- Enable TLS on AMD64 again +* Mon Jul 28 2003 kukuk@suse.de +- Update to current cvs +- Disable TLS on AMD64 temporary +- Update sys/quota.h to match new kernel implementation +* Fri Jul 25 2003 kukuk@suse.de +- Update to current cvs +- Update kernel headers to 2.6.0-test1 +- Update to nptl 0.55 +- Change minimal symbol version on PPC64 back to 2.2.5 +* Wed Jul 23 2003 meissner@suse.de +- Fixed systemcall clobber lists for asm-ppc/unistd.h (by just + merging over the asm-ppc64 things). +* Wed Jul 23 2003 aj@suse.de +- Handle in ldconfig konqueror.so and other similar KDE hacks that fail without + rpath. +- Fix bugs exposed by unit-at-a-time option. +* Fri Jul 18 2003 aj@suse.de +- Fix compilation with unit-at-a-time enabled compiler. +- Enlarge stack for tst-setcontext test. +* Mon Jun 30 2003 kukuk@suse.de +- Update to current CVS (includes if_arp.h and nss_compat changes) +- Update to nptl 0.50 +- Kernel header fixes for userland inclusion +* Wed Jun 25 2003 kukuk@suse.de +- Update to current CVS +- Add target host and CVS checkout to glibc version printout +- Adjust fnmatch fix +- Update kernel headers to 2.5.73 +* Tue Jun 24 2003 kukuk@suse.de +- Fix typos in syscalls.list on Alpha +* Mon Jun 23 2003 kukuk@suse.de +- fix typo in linuxthreads on SPARC +- Update to current CVS +- Update to nptl 0.48 +* Thu Jun 19 2003 kukuk@suse.de +- Disable nss_compat patch again +* Wed Jun 18 2003 kukuk@suse.de +- Fix reading of locale.alias file +- Update to current CVS snapshot +- Update to nptl 0.47 +- Some kernel header file fixes for PPC64/IA64 +- Update nss_compat patch +* Thu Jun 12 2003 kukuk@suse.de +- Update to current CVS snapshot +- Finish patch for printing linker warning +* Wed Jun 11 2003 kukuk@suse.de +- Update to nptl 0.45 +- Update to current CVS snapshot +- Add patch to print linker warning, if a static binary calls + functions using NSS +* Tue Jun 10 2003 kukuk@suse.de +- Use %%find_lang macro and cleanup glibc-locale filelist +* Thu Jun 05 2003 kukuk@suse.de +- Complete mathinline.h fixes +* Thu Jun 05 2003 kukuk@suse.de +- linux/compiler.h: Define all inline variants to __inline__ +* Wed Jun 04 2003 kukuk@suse.de +- Update to current glibc CVS snapshot +- Update to nptl 0.43 +- More kernel header fixes +- Make --no-archive default for localedef +* Tue May 27 2003 kukuk@suse.de +- Update to current glibc CVS snapshot +- Update to nptl 0.40 +- Disable nss_compat patch +- Update to kernel headers from 2.5.70 +* Fri May 23 2003 kukuk@suse.de +- Update to current glibc CVS snapshot +- Add patches to make nss_compat work with every service +* Mon May 19 2003 kukuk@suse.de +- Update to current glibc CVS snapshot +- Add patch for better binary compatibility (errno, h_errno) +* Fri May 16 2003 kukuk@suse.de +- Update to current glibc CVS snapshot +- Update to nptl 0.39 +- Add URL tag +- asm-i386/byteorder.h: fix asm vs. __asm__ +* Wed May 14 2003 schwab@suse.de +- Fix missing syscall numbers on ia64. +* Wed May 14 2003 kukuk@suse.de +- More kernel headers fixes for i386, ia64, ppc and s390 +* Mon May 12 2003 kukuk@suse.de +- Update to current glibc CVS snapshot +- Fix lot of more kernel headers +- Adjust netinet/igmp.h patch +- Copy linux/version.h in place before compiling glibc +* Fri May 09 2003 kukuk@suse.de +- Fix bits/stdio.h +- Fix lot of kernel headers to work in userspace +- Fix netinet/igmp.h +- Enable TLS on PPC +* Wed May 07 2003 kukuk@suse.de +- Update CVS snapshot +- Enable TLS on IA64 +- Update to nptl 0.37 +- Update kernel-headers to 2.5.69 +* Thu Apr 24 2003 ro@suse.de +- fix install_info --delete call and move from preun to postun +* Fri Apr 11 2003 aj@suse.de +- Do not build locales in parallel. +* Tue Apr 08 2003 kukuk@suse.de +- Disable TLS for PPC +* Mon Apr 07 2003 kukuk@suse.de +- Update CVS snapshot +* Sat Apr 05 2003 kukuk@suse.de +- Disable TLS for ia64 +- Update to nptl 0.34 +- Update to CVS snapshot +* Fri Apr 04 2003 kukuk@suse.de +- Remove libNoVersion from filelist on alpha +- Add nptl docu +* Fri Apr 04 2003 kukuk@suse.de +- Update to nptl 0.33 +- Run ldconfig after installation +- Update to CVS snapshot +* Sat Mar 29 2003 kukuk@suse.de +- Update to CVS snapshot +- Add USAGI patches for kernel-headers +- Add nptl on i686 +- Enable --with-tls +- Implement NI_NUMSERICSCOPE for getnameinfo +- Implement AI_V4MAPPED/AI_ALL for getaddrinfo +- Implement AI_ADDRCONFIG for getaddrinfo +- Add USAGI patch for kernel headers +* Mon Mar 24 2003 schwab@suse.de +- Sanitize . +* Mon Mar 17 2003 aj@suse.de +- Fix tst-aio7 testcase and enable it again. +- Enable %%fs for x86-64. +- Install en_US.ISO-8859-15 for libstdc++. +- Fix bits/syscalls.h for x86-64. +* Thu Mar 13 2003 kukuk@suse.de +- Revert tcgetattr change [Bug #25173/#25174] +* Tue Mar 04 2003 aj@suse.de +- Fix lround/lrint functions. +* Sat Mar 01 2003 aj@suse.de +- Update to 2.3.2 release. +* Wed Feb 26 2003 kukuk@suse.de +- Update to current cvs snapshot (fixes OOo and mysql problems) +* Mon Feb 24 2003 kukuk@suse.de +- Disable aio7 test on s390(x), too. +* Mon Feb 24 2003 kukuk@suse.de +- Update to current cvs snapshot (post 2.3.2-pre1) +- Remove glibc-2.3-ppc32-textrel.patch, is included in CVS +- Remove libc23-ppc64-cvshead20021210.patch +* Thu Feb 20 2003 kukuk@suse.de +- Update to current cvs snapshot +- Remove glibc-2.3-ppc64-vfork-20030214.patch, seems to be + included already. +* Wed Feb 19 2003 olh@suse.de +- add glibc-2.3-ppc32-textrel.patch + glibc-2.3-ppc64-vfork-20030214.patch +* Fri Feb 14 2003 kukuk@suse.de +- Extend getent to print all IP addresses of one host +* Thu Feb 13 2003 kukuk@suse.de +- Update to current snapshot +* Wed Feb 12 2003 kukuk@suse.de +- Update to current snapshot (contains official fix for #23513) +* Tue Feb 11 2003 kukuk@suse.de +- Update to current snapshot +- Fix corruption of internal data in gethostbyname2 [Bug #23513] +* Sun Feb 09 2003 aj@suse.de +- Fix cancellation of system calls on x86-64. +* Sat Feb 08 2003 kukuk@suse.de +- Fix wrong logic in dynamic resolv.conf patch +* Fri Feb 07 2003 kukuk@suse.de +- Fix access of _res symbol in multithreaded programs +- Add "dynamic resolv.conf" patch to libnss_dns, too. +- Remove obsolete db2 manual pages +- Update to current snapshot (fixes [Bug #23363]) +* Thu Feb 06 2003 kukuk@suse.de +- Update to current snapshot +- Use install-info for info pages +* Tue Feb 04 2003 schwab@suse.de +- Fix regexp parsing. +* Mon Feb 03 2003 meissner@suse.de +- Merged a unistd.h gcc3.3 compliance patch from Franz Sirl for + ppc and ppc64 kernel headers. +* Fri Jan 31 2003 schwab@suse.de +- Fix building on s390[x]. +* Fri Jan 31 2003 kukuk@suse.de +- Update to current glibc cvs +* Thu Jan 30 2003 aj@suse.de +- Fix one build problem on sparc. +- Fix asm-x86_64/mtrr.h. +* Wed Jan 29 2003 kukuk@suse.de +- Update to current glibc cvs +- Fix libm-ulps for x86-64 and ia64 +* Thu Jan 23 2003 schwab@suse.de +- Fix use of DT_FINI_ARRAY. +- Temporarily disable tst-aio7 test on ia64. +* Tue Jan 14 2003 schwab@suse.de +- Fix ia64 for non-tls build. +* Tue Jan 14 2003 aj@suse.de +- Package libpthread_nonshared.a. +* Mon Jan 13 2003 kukuk@suse.de +- Add fixed version of x86-64-linuxthreads-disable-fs.diff +- Readd parts of libm-x86-64.diff +- Update to current cvs snapshot +- Add fix for errno compatibility +- Add s390(x) vfork fixes +* Sun Jan 12 2003 kukuk@suse.de +- Update to current cvs snapshot +* Fri Jan 03 2003 bg@suse.de +- removed obsolete patch for hppa +* Fri Dec 20 2002 kukuk@suse.de +- Update to current cvs snapshot +- Obsoletes glibc-2.3-setjmp-ppc64.diff +- Obsoletes build-alpha.diff +- Obsoletes libm-x86-64.diff +- Disable activate-spinlocks.diff temporary +- Disable x86-64-linuxthreads-disable-fs.diff (breaks compilation) +* Tue Dec 17 2002 olh@suse.de +- remove glibc-2.2.5-ppc64-bits-socket_h.diff + add glibc-2.3-setjmp-ppc64.diff + add libc23-ppc64-cvshead20021210.patch + dont run configure in subshell, it can fail and rpm cant catch it +* Fri Dec 13 2002 schwab@suse.de +- Add more ia64 syscalls. +* Fri Dec 06 2002 olh@suse.de +- build also the locals parallel + do not fail with parallel calculation on lowmem systems +* Tue Dec 03 2002 aj@suse.de +- Build parallel on x86-64. +- Activate fast spinlocks in malloc for x86 and x86-64. +- Integrate new math library from AMD for x86-64. +* Fri Nov 29 2002 bg@suse.de +- Fix build on hppa. +* Thu Nov 28 2002 aj@suse.de +- Fix build on alpha. +* Thu Nov 28 2002 aj@suse.de +- Update to CVS version from 2002-11-28. +- Do not use %%fs for threads for now on x86-64. +- Fix fnmatch bug with multibyte strings. +* Tue Nov 12 2002 bg@suse.de +- Updated hppa patches +* Thu Nov 07 2002 kukuk@suse.de +- getaddrinfo(): get host information for AF_INET and AF_INET6 only + from the same service [Bug #21237] +* Thu Nov 07 2002 bg@suse.de +- Fix build of linuxthreads for hppa +* Tue Nov 05 2002 bg@suse.de +- Use current kernel-headers for parisc +- Add support for hppa +* Tue Nov 05 2002 kukuk@suse.de +- Update to current CVS snapshot +* Tue Oct 22 2002 schwab@suse.de +- Fix ia64 syscall numbers. +* Mon Oct 21 2002 schwab@suse.de +- Fix alignment in locale-archive. +* Mon Oct 21 2002 kukuk@suse.de +- Update to glibc 2.3.1 cvs 20021021 +- Remove nss_dns6 patch +* Tue Oct 15 2002 kukuk@suse.de +- Update to glibc 2.3.1 cvs 20021015 +* Wed Oct 02 2002 kukuk@suse.de +- Update to glibc 2.3 cvs 20021002 +- Update crypt_blowfish to 0.4.4 (manual page fix, hppa fix) +* Wed Sep 25 2002 mls@suse.de +- build with -finline-limit=2000 on mips/armv4l +* Tue Sep 17 2002 schwab@suse.de +- Add new ia64 syscall numbers. +* Mon Sep 16 2002 meissner@suse.de +- Added AIO syscall numbers for ppc/ppc64, so libaio does not need them. +- Aligned powerpc bits/sem.h to be the same as the other 64bit + archs, keeping the 32bit layout. +- Added the faster ppc32 memset.S from glibc HEAD on request of IBM. +* Thu Sep 12 2002 meissner@suse.de +- ppc/ppc64: added more biarch things to the SystemV IPC headers + which are needed to get 64bit ipc / IPC_STAT to work. +* Mon Sep 09 2002 bk@suse.de +- s390x-biarch: use correct wordsize.h(move to main 32/64 directory) +- s390x: requires 64-bit kernel +* Mon Sep 09 2002 kukuk@suse.de +- Increase minimum value of MAXPACKET in libnss_dns, too +* Mon Sep 09 2002 uli@suse.de +- all architectures are created equal, but some are more equal + than others; increased DB_FILE_ID_LEN in DB2 to 24 on x86-64, + ia64, s390x and ppc64 to fit 64 bit __ino_t type +* Fri Sep 06 2002 mls@suse.de +- fix squeeze bug in db-1.85: set dirty flag after page modification +* Fri Sep 06 2002 kukuk@suse.de +- Increase minimum value of MAXPACKET +* Mon Sep 02 2002 kukuk@suse.de +- Fix asm header files for sparc/sparc64 +* Fri Aug 30 2002 aj@suse.de +- Revert linuxthreads for x86-64 for now. +* Wed Aug 28 2002 aj@suse.de +- Add optimized math routines for x86-64. +* Tue Aug 27 2002 olh@suse.de +- BuildFlags="$(echo $RPM_OPT_FLAGS | sed 's#-mminimal-toc##')" +* Mon Aug 26 2002 olh@suse.de +- add ppc64_glibc_2.2.5_sunrpc-fix.patch + * sysdeps/unix/sysv/linux/powerpc/bits/socket.h: New file that adds + __powerpc64__ specific fields and adjust size/alignment for 64-bit. +* Fri Aug 23 2002 aj@suse.de +- Use floating stacks for x86-64. +- Add LICENSE file. +- Fix profiling code on x86-64. +- Add strcspn, strpbrk and strspn optimizations for x86-64. +- Fix makecontext for x86-64. +* Thu Aug 15 2002 aj@suse.de +- Use biarch headers already for building so that bits/syscalls.h is + build correctly. +- Fix bits/syscalls.h for x86-64. +- Remove *xattr patches. +* Thu Aug 08 2002 kukuk@suse.de +- Update to current cvs (calloc variable overflow fixed) +- Apply fix for calloc fix +- Add *xattr system calls and error number +* Tue Aug 06 2002 kukuk@suse.de +- Update to current cvs (IPv6 fixes) +* Mon Aug 05 2002 aj@suse.de +- Implement *context functions for x86-64. +* Sat Aug 03 2002 kukuk@suse.de +- Update kernel-headers to version 2.4.19 +- Add PreRequires "filesystem". +* Thu Aug 01 2002 bk@suse.de +- added s390-may2002.diff with some chunks from may2002 drop +- give make check a second chance on s390(x), but fail if not(race) +* Tue Jul 30 2002 kukuk@suse.de +- sunrpc/xdr_array.c: Check for variable overflow +- Ignore failed make check on s390(x) +* Tue Jul 30 2002 aj@suse.de +- Add optimisations for x86-64. +* Mon Jul 29 2002 kukuk@suse.de +- Don't allocate/free category name in setlocale() unnecessarily + (for IBM Java [Bug #17065]). +* Tue Jul 23 2002 kukuk@suse.de +- Update to current glibc cvs (pread/pwrite fixes) +- Remove extra de.po, is in official tarball now. +* Sat Jul 20 2002 aj@suse.de +- Fix profiling for x86-64. +* Fri Jul 19 2002 meissner@suse.de +- Fixed the PPC64 patch, several superflous files removed. +- Reenabled make check for ppc64. +* Wed Jul 17 2002 kukuk@suse.de +- Update to current glibc cvs +- Fix kernel headers for s390/s390x +- Move some binaries/shell scripts and manual pages to the + correct subpackage +* Tue Jul 16 2002 meissner@suse.de +- Merged latest PowerPC patch from IBM. + * Lots of ppc64 related fixes. + * Start of biarch support. + * Changed struct stat in 64bit ABI. +* Fri Jul 12 2002 aj@suse.de +- Add biarch patch for s390 and s390x. +* Mon Jul 08 2002 aj@suse.de +- Add some optimized x86-64 math routines and a fixed lgammal + implementation. +- Testsuite on x86-64 should pass now. +- Run ldconfig in postinstall. +- Fix memleak in catgets. +* Sat Jul 06 2002 kukuk@suse.de +- Fix typo in create_biarch_asm.sh (asm-sparc path) +* Thu Jul 04 2002 kukuk@suse.de +- Fix typo in manpages/Makefile +- Fix filelist (on some archs ld-linux.so.2 was missing) +* Thu Jul 04 2002 kukuk@suse.de +- Revert mktime patch (check for year < 70) +- Replace ifarch i386 with ix86 +- Add patch for arm +- Include pt_chown again +* Wed Jul 03 2002 kukuk@suse.de +- Add more new manual pages +- Fix spec file (renaming of ld-*, creating of include/asm header + files) +- Update to current CVS version +- Fix kernel-headers for x86-64 (don't overwrite patched version) +- Rename Equador -> Ecuador [Bug #16648] +- Add hint about security problem of host caching with nscd to + config file. +* Tue Jun 25 2002 aj@suse.de +- Fix dl-machine.h for x86-64 to compile with new binutils. +- Fix mtrr.h header for x86-64. +- Do not package pt_chown. +* Tue Jun 18 2002 sf@suse.de +- reverted changes from Tue Jun 11 10:04:55 CEST 2002 + (took the kernel-headers from before, readded patch9) +- add new archive with kernel-headers for x86_64 +- add autofs patch +* Mon Jun 17 2002 bk@suse.de +- remove s390* from the list of archs that ignore check fail +* Thu Jun 13 2002 uli@suse.de +- fixed typos in spec +* Thu Jun 13 2002 schwab@suse.de +- Fix ssize_t and __ipc_pid_t for ppc64. +* Wed Jun 12 2002 uli@suse.de +- fix errlist.c for ARM as well +* Tue Jun 11 2002 sf@suse.de +- made new kernel-header archive from kernel-source +- added asm-ppc64 to kernel-headers +- removed patch9 as it is obsoleted by the new kernel-headers +* Fri Jun 07 2002 olh@suse.de +- update asm-ppc64/ioctls.h, missing TIOCGDEV +* Thu Jun 06 2002 olh@suse.de +- fix glibc-ppc64 patch +* Thu Jun 06 2002 olh@suse.de +- update ppc64_glibc_ldconfig.diff +* Thu Jun 06 2002 ke@suse.de +- Update de.po from + http://www.iro.umontreal.ca/contrib/po/teams/PO/de/libc-2.2.5.de.po. +- Use only translated entries to make the testsuite happy; call + msgattrib on de.po and hu.po [# 16438]. +* Mon Jun 03 2002 aj@suse.de +- Clean up generation of asm includes for bi-arch systems. +- Enable profiling for x86-64. +* Mon Jun 03 2002 kukuk@suse.de +- Add fix for weak declaration "_old_sys_nerr" +- Remove already disabled alpha patch +- Update to current CVS +* Sat Jun 01 2002 olh@suse.de +- fix stat for real, wrong size for st_nlink +* Wed May 29 2002 olh@suse.de +- add ppc64_glibc_2.2.5-types.diff, fixes stat() +* Wed May 29 2002 olh@suse.de +- add ppc64_glibc_ldconfig.diff for elf32/elf64 coexistance +* Thu May 23 2002 aj@suse.de +- Rename __thread to fix problems with GCC 3.2. +* Mon May 20 2002 olh@suse.de +- add ppc64 kernel headers + add create_ppc_asm.sh + update ppc64 patch, use /lib64/ld64.so.1 + move generic syscalls.list to ppc64/32 + set/getrlimit GLIBC2.0 is ppc32 only + use parallel make on ppc and ppc64 + do not chroot as user + cleanup nested ifarch for dynamic linker +* Wed May 15 2002 aj@suse.de +- Fix building of linuxthreads with current GCC. +* Mon May 13 2002 olh@suse.de +- fix ppc64 RTLDLIST ld64.so rewrite +* Sat May 11 2002 schwab@suse.de +- Add div/mod compatibility functions for ia64. +* Fri May 10 2002 olh@suse.de +- add ppc64 support +* Thu May 09 2002 aj@suse.de +- Add sys/io.h for x86-64. +* Mon May 06 2002 ihno@suse.de +- corrected memory calculation for parallel build +* Fri May 03 2002 kukuk@suse.de +- Add fix to compile math.h on SPARC with g++ +* Thu May 02 2002 kukuk@suse.de +- Update to current CVS 2.2 branch +- Add x86-64 fix for crti.o and /usr/lib64 with libpthread +* Fri Apr 26 2002 kukuk@suse.de +- define sqrtl alias for PowerPC +* Mon Apr 22 2002 aj@suse.de +- Fix vfork for x86-64. +- Fix handling of ld.so.cache for x86-64. +* Thu Apr 18 2002 aj@suse.de +- Allow testsuite to fail for x86-64. +- Add ULPs for x86-64. +* Wed Apr 17 2002 kukuk@suse.de +- Update to current snapshot (mktime and dl fixes) +- Update hu.po +- Do not build a profiled glibc for x86-64 +* Fri Apr 12 2002 kukuk@suse.de +- Update to current snapshot (fix SPARC compile) +- Revert do-lookup.h patch on Alpha (does not work here) +* Wed Apr 10 2002 aj@suse.de +- Fix linuxthreads for x86-64. +* Wed Apr 10 2002 aj@suse.de +- Add x86-64.diff to fix glob64. +* Wed Apr 10 2002 kukuk@suse.de +- Update kernel-headers to 2.4.19pre4 (with x86-64 support) +- Update glibc to current cvs snapshot +- Allow old currencies (before EUR) +* Tue Apr 02 2002 aj@suse.de +- Update ULPs. +* Thu Mar 21 2002 kukuk@suse.de +- Create html pages after installation of info pages [Bug #15283] +* Tue Mar 12 2002 kukuk@suse.de +- Add db1 fix if blocksize is not ^2 +* Sat Mar 02 2002 kukuk@suse.de +- Add fix for format string bug +* Sat Mar 02 2002 kukuk@suse.de +- Fix return value of nice wrapper +* Fri Mar 01 2002 kukuk@suse.de +- Add fix for corrupt ut_line +- Add fix for current gcc 3.1 +- Add patch for nice return values +* Thu Feb 28 2002 kukuk@suse.de +- Add fix for rtime, swscanf and ia64 +* Mon Feb 18 2002 kukuk@suse.de +- When a dlopened module references a weak symbol from another + dlopened module (loaded with RTLD_GLOBAL) no dependency was + generated for this fact, so the second module was unloaded even + if the first one was still around. +* Sun Feb 17 2002 kukuk@suse.de +- Add pthread/signal bugfix [Bug #13280] +- Fix directory file list (don't include /usr/include) +* Thu Feb 14 2002 kukuk@suse.de +- Use defattr in spec file to avoid problems with not existing + UIDs and rpm. +* Thu Feb 14 2002 aj@suse.de +- Update ULPs for GCC 3.1. +* Wed Feb 13 2002 kukuk@suse.de +- Apply db1 patch from mls@suse.de to fix rpm problems +* Tue Feb 12 2002 ro@suse.de +- fix owner/group for kernel headers +* Mon Feb 11 2002 kukuk@suse.de +- Add another solution for the glob problem +* Thu Feb 07 2002 kukuk@suse.de +- Add fix for glob (glob should not call globfree) +- Add fix for innetgr +* Wed Feb 06 2002 kukuk@suse.de +- Use correct BuildRoot +* Wed Feb 06 2002 kukuk@suse.de +- Update hu.po +* Wed Feb 06 2002 kukuk@suse.de +- Set LC_CTYPE for error messages in localedef [Bug #12878] +* Mon Feb 04 2002 kukuk@suse.de +- Add fixes from CVS: dynamic loader, readv and writev seg.fault + and various architecture fixes for alpha and mips +- Don't compile with -g on Alpha +- Add fix for possible endless loop fix +* Fri Feb 01 2002 bk@suse.de +- merged s390x lib64 patch and spec file changes +* Wed Jan 23 2002 kukuk@suse.de +- Split glibc into glibc and glibc-locale +- Create more UTF8 locale +* Mon Jan 21 2002 kukuk@suse.de +- Update to official glibc 2.2.5 +* Wed Jan 16 2002 kukuk@suse.de +- Remove /var/adm/setup/setup.timeconfig +* Wed Jan 16 2002 kukuk@suse.de +- Apply S390 fix +* Wed Jan 09 2002 kukuk@suse.de +- Update to glibc 2.2.5pre1 +* Tue Jan 08 2002 egmont@suselinux.hu +- Added partial Hungarian translation +* Tue Jan 08 2002 kukuk@suse.de +- Add patch to pass math tests with gcc 3.x +- Update to current CVS version +* Thu Jan 03 2002 kukuk@suse.de +- Update kernel header files to 2.4.17 +* Tue Jan 01 2002 kukuk@suse.de +- Update current CVS version, add final fixes for LSB test suite +* Tue Dec 18 2001 poeml@suse.de +- Install ja_JP.SJIS locale. +* Sat Dec 15 2001 schwab@suse.de +- Fix missing declaration of md5_uintptr. +* Fri Dec 14 2001 kukuk@suse.de +- Update to correct CVS branch +* Thu Dec 13 2001 kukuk@suse.de +- Update to current CVS +- Increase PATH_MAX to 4096 (including the leading zero) +- Clear pointer if asprintf fails +- pthread_key_delete should not contact thread manager before it + is created. +* Tue Dec 11 2001 kukuk@suse.de +- Fix prelink patch +* Tue Dec 11 2001 kukuk@suse.de +- Add fixes for LSB.os test suite (ftw, grantpt and ftok) +- Update to current CVS +- Add prelink patch +* Fri Dec 07 2001 kukuk@suse.de +- Merge with current CVS +- Add blowfish crypt +* Fri Nov 23 2001 uli@suse.de +- added armv4l arch to spec +- added arm kernel headers +- added trivial fix for dl-machine.h from CVS (see arm.dif) +* Thu Nov 15 2001 adrian@suse.de +- add mips architecture to spec file +- apply further mips fixes for ld +- activate %%clean again +* Sun Nov 11 2001 kukuk@suse.de +- Fix lost permissions of shell script on SPARC +* Thu Nov 08 2001 kukuk@suse.de +- Add 32bit UID fixes +* Thu Nov 08 2001 kukuk@suse.de +- More fixes for asm-ia64 header files +* Thu Nov 08 2001 kukuk@suse.de +- Fix asm-i386/processor.h (don't align struct) +- Fix asm-ia64/bitops.h (define CMPXCHG_BUGCHECK) +- Correct version number in version.h +* Wed Nov 07 2001 uli@suse.de +- fixed sys/io.h, sysmacros.h for icc +* Tue Nov 06 2001 kukuk@suse.de +- Update kernel-headers to 2.4.14 +* Thu Nov 01 2001 kukuk@suse.de +- Use again old rules to generate html files +* Sun Oct 21 2001 schwab@suse.de +- Fix inttypes.h for C++. +* Fri Oct 19 2001 aj@suse.de +- Fix typo in inttypes.h that presents compilation by non-GCC compilers. +* Tue Oct 16 2001 aj@suse.de +- Update elf.h to include x86-64 defines since those are needed + by some other tools. +* Fri Sep 28 2001 schwab@suse.de +- Readd patch from 2001-09-10 with corrections. +- Add compatibility patch for GCC 3. This allows to build glibc + with GCC 3. +- Require that make check succeeds on ia64. +* Thu Sep 13 2001 aj@suse.de +- Add a better version of the threads-fork patch that fixes some + more places where interrupts can occur and does this a bit cleaner. +* Tue Sep 11 2001 aj@suse.de +- Remove patch from 2001-09-10 since it breaks the dynamic linker. +* Tue Sep 11 2001 aj@suse.de +- Fix bug in linuxthreads where manager and threads could + get out of synch due to an interrupted read call. +* Mon Sep 10 2001 schwab@suse.de +- Fix handling of dependent dynamic objects for dlopen/dlclose. +* Sat Sep 08 2001 kukuk@suse.de +- Don't create gconv cache (else iconv --list seg.faults) +* Tue Aug 28 2001 aj@suse.de +- Improve dynamic linker to relocate dynamic objects faster. This + implies a small cache for symbol lookups and handling the ld -z combreloc + feature if binaries are linked this way. +* Fri Aug 24 2001 kukuk@suse.de +- Add fix for handling of %%l[] in vfscanf +- ldconfig removes stale links now +- Remove susehelp config files, now in susehelp itself +* Wed Aug 22 2001 aj@suse.de +- Update s390 patch from IBM. +* Fri Aug 17 2001 kukuk@suse.de +- Adjust dns6 patch for 2.2.4 +- Fix spec file (include lost libnss_dns6.so) +- Fix versionnumber in version.h [Bug #9759] +- Update kernel-header to 2.4.9 +* Thu Aug 16 2001 aj@suse.de +- Update to 2.2.4 final. Add s390-ucontext patch. +* Fri Aug 10 2001 aj@suse.de +- Update to current glibc version. Do not use the hardlink program + for compatification since localedef will do this itself now. + Create gconv cache. +* Wed Aug 01 2001 aj@suse.de +- Add patch for zic to create copy of the timezone instead + of a symbolic link so that the file exists even if /usr is not + mounted. + Use i486 instead of i386 as default architecture for i386. +* Sat Jul 28 2001 kukuk@suse.de +- Fix problem with linux/spinlock.h +* Fri Jul 27 2001 kukuk@suse.de +- Update kernel-header files to 2.4.7 +* Thu Jul 26 2001 froh@suse.de +- add fix for failing tst-setcontext on s390 +* Wed Jul 25 2001 aj@suse.de +- Add patch to fix loading of dynamic libs in static programs for PPC. +* Fri Jul 20 2001 kukuk@suse.de +- Update to current CVS snapshot +- Disable tst-regex and test-lfs +* Fri Jul 06 2001 kukuk@suse.de +- Add da_DK@euro and da_DK.UTF-8 +* Thu Jul 05 2001 kukuk@suse.de +- Update to current CVS snapshot +- Remove obsolete cvs patch +- Fix DNS/IPv6 patch +- Hardlink equal locale files +* Fri Jun 22 2001 olh@suse.de +- add glibc-2.2.3-ppc_dlmachine.diff to fix binutils make check +* Tue Jun 19 2001 bk@suse.de +- added s390x support to spec file +* Tue Jun 19 2001 aj@suse.de +- Fix profiling on PowerPC. +* Fri Jun 15 2001 schwab@suse.de +- Fixup asm-ia64/atomic.h for user-space inclusion. +* Tue Jun 12 2001 aj@suse.de +- Fix testsuite for sparc. +* Mon Jun 11 2001 aj@suse.de +- Fix testsuite for powerpc and S390, build again on alpha. +* Tue May 22 2001 kukuk@suse.de +- Update to current CVS snapshot +- Rmove support for PF_LOCAL from getaddrinfo [Bug #8469] +* Sun May 13 2001 kukuk@suse.de +- Don't use absolute paths in pre-install-section +* Fri May 04 2001 kukuk@suse.de +- Add special version.h which fails on compiling kernel modules +* Sat Apr 28 2001 kukuk@suse.de +- Update to glibc 2.2.3, kernel-headers-2.4.4 +* Tue Apr 24 2001 schwab@suse.de +- Fix feenableexcept on ia64. +* Tue Apr 24 2001 aj@suse.de +- Install some more UTF-8 locales, fix tr_TR locale. +* Thu Apr 12 2001 kukuk@suse.de +- Include our own texi2html +* Wed Apr 11 2001 kukuk@suse.de +- Add fixes from SuSE kernel header files +- Add patch to reload /etc/resolv.conf if there was changes +- Add glibc.conf for susehelp (glibc-html pages) +* Mon Apr 09 2001 schwab@suse.de +- Fix ld.so for kernel 2.4.3 on ia64. +* Thu Apr 05 2001 kukuk@suse.de +- Add more fixes from CVS +* Tue Apr 03 2001 kukuk@suse.de +- Fix isdn header files from kernel-headers +* Fri Mar 30 2001 kukuk@suse.de +- Update kernel header files to 2.4.3 +* Fri Mar 30 2001 kukuk@suse.de +- Merge s390 patches +- Fix rcmd_af() (allow PF_UNSPEC) +* Fri Mar 30 2001 aj@suse.de +- Add some small fixes, fix spec file for removal of man-pages. +* Thu Mar 29 2001 kukuk@suse.de +- Don't provide kernel_headers any longer +- Remove some man-pages which are now official in the man-pages + package +* Thu Mar 29 2001 aj@suse.de +- Fix shmfs recognition. +* Thu Mar 29 2001 ro@suse.de +- added db-splitmask fix from mls (hopefully work around bug in db1) +* Wed Mar 28 2001 aj@suse.de +- Fix s390 to not generate wrong relocations, work around compiler + error. +* Wed Mar 21 2001 kukuk@suse.de +- glibc-devel obsoletes and provides linclude +* Tue Mar 20 2001 kukuk@suse.de +- Add strtok and other fixes from CVS +- Add yp_all fix +* Tue Mar 13 2001 kukuk@suse.de +- Add more s390 string.h fixes +* Mon Mar 12 2001 aj@suse.de +- Add fixes for s390, don't run testsuite on s390 for now. +* Fri Mar 09 2001 kukuk@suse.de +- Fix linux/init.h header file +* Fri Mar 09 2001 aj@suse.de +- Handle new EM_S390 value. +* Fri Mar 09 2001 kukuk@suse.de +- kernel-heaer fixes to build on Alpha +* Thu Mar 08 2001 ro@suse.de +- update kernel-headers to 2.4.2 +* Thu Mar 08 2001 ro@suse.de +- kernel-header fixes to build on s390 +* Thu Feb 22 2001 schwab@suse.de +- More kernel header fixes for IA64. +* Tue Feb 20 2001 kukuk@suse.de +- Remove optimisation not supported on all plattforms +* Mon Feb 19 2001 kukuk@suse.de +- Fix Optimization of glibc build +- Add Optimization for alphaev6 and sparcv9 +* Sat Feb 17 2001 kukuk@suse.de +- Update to glibc 2.2.2 from CVS +* Thu Feb 15 2001 kukuk@suse.de +- kernel header fixes for SPARC and IA64 +* Tue Feb 13 2001 kukuk@suse.de +- Make optimization for i686 work +- Add manual page for ldd +* Mon Feb 12 2001 kukuk@suse.de +- Fix more kernel headers +* Thu Feb 08 2001 kukuk@suse.de +- Fix more kernel-headers +* Wed Feb 07 2001 kukuk@suse.de +- Delete links in pre install section for glibc-devel +* Wed Feb 07 2001 kukuk@suse.de +- Fix kernel-header includes +* Tue Feb 06 2001 kukuk@suse.de +- Fix creating of /usr/include/asm on SPARC +- Add more CVS patches +* Mon Feb 05 2001 kukuk@suse.de +- Add some patches from CVS +- Include our own kernel header files +* Mon Jan 22 2001 aj@suse.de +- Add elf patch to fix problems on ia64 and ppc with _dl_pagesize. +* Mon Jan 22 2001 aj@suse.de +- Fix mmap64 on powerpc. +* Tue Jan 16 2001 aj@suse.de +- Fix sunrpc-udp.diff, add mman.h fix for powerpc. +* Wed Jan 10 2001 aj@suse.de +- Add sunrpc-udp.diff to fix UDP timeouts with Linux 2.4 kernel. +* Tue Jan 09 2001 aj@suse.de +- Add glibc-2.2.secure.diff to close some security holes. +* Wed Jan 03 2001 schwab@suse.de +- Fix strtol and friends on 64 bit platforms. +- Use 8192 as default pagesize on ia64. +- Scan AUX vector also in statically linked programs. +* Wed Jan 03 2001 aj@suse.de +- Build some UTF-8 locales using a patch from Markus Kuhn. +* Wed Dec 13 2000 aj@suse.de +- Add compatibility patch for IPv6 and Linux 2.2. +* Wed Dec 13 2000 schwab@suse.de +- Update ia64 patch. +* Sat Dec 09 2000 kukuk@suse.de +- Fix resolver bug +* Fri Dec 01 2000 kukuk@suse.de +- Add bug fixes for setlocale and strncat +- strip gconv modules +* Fri Nov 24 2000 kukuk@suse.de +- Fix typo in spec file +* Thu Nov 23 2000 kukuk@suse.de +- Add hack for POWER3 +* Wed Nov 22 2000 kukuk@suse.de +- Add strncat bugfix for S/390 +* Tue Nov 21 2000 kukuk@suse.de +- Don't bulid 32bit compat packages +* Mon Nov 20 2000 schwab@suse.de +- Remove use of getpagesize syscall on ia64. +- Follow DT_INIT/DT_FINI change in compiler. +* Sun Nov 19 2000 kukuk@suse.de +- Minor specfile fixes +* Thu Nov 16 2000 kukuk@suse.de +- Add lot of more bug fixes +* Tue Nov 14 2000 kukuk@suse.de +- Add bugfix for static linked binaries/ld.so.cache from aj@suse.de +* Mon Nov 13 2000 aj@suse.de +- Fix noversion.diff and spec file. +* Sat Nov 11 2000 kukuk@suse.de +- Fix nssv1 on PowerPC +- no libNoVersion on SPARC +* Fri Nov 10 2000 kukuk@suse.de +- Disable make check on PowerPC and Alpha +* Fri Nov 10 2000 kukuk@suse.de +- Update to final glibc 2.2 +* Fri Nov 03 2000 kukuk@suse.de +- Update to glibc-2.2-20001103 (glibc-2.1.97) +- Don't install libNoVersion on PowerPC +- Rename nssv1 -> glibc-nssv1 +- Rename libd -> glibc-profile, move libg.a to libc +- Rename libcinfo -> glibc-info +- Rename libchtml -> glibc-html +- Rename localedb -> glibc-i18ndata +- Rename libc -> glibc-devel +- Rename shlibs -> glibc +* Sat Oct 28 2000 kukuk@suse.de +- Update to glibc-2.2-20001028 +- Enable more checks +* Fri Oct 27 2000 aj@suse.de +- Fix NoVersion patch +* Wed Oct 25 2000 kukuk@suse.de +- Update to glibc-2.2-20001025 +* Sun Oct 22 2000 kukuk@suse.de +- Update to glibc 2.2-20001021 +- Update glibc-db to 2.1.95 +- Update ia64 patch +* Fri Oct 20 2000 kukuk@suse.de +- Update to glibc 2.2-20001020 +- Add s390 spec file changes +* Tue Oct 10 2000 schwab@suse.de +- Update to glibc 2.2-20001009. +- Fix TRAMPOLINE_TEMPLATE for ia64. +* Sun Oct 01 2000 schwab@suse.de +- Export more ia64 specific symbols. +* Tue Sep 26 2000 kukuk@suse.de +- Update to glibc 2.2-20000926 +* Mon Sep 25 2000 kukuk@suse.de +- Update to glibc 2.2-20000925 snapshot +* Thu Sep 14 2000 schwab@suse.de +- Update ia64 patch. +* Fri Sep 08 2000 bk@suse.de +- added glibc-2.1.3-db2-s390.tar.gz from developerworks (db2 fix) +* Wed Sep 06 2000 fober@suse.de +- merge s390-7.0 with STABLE: + - upgraded to glibc-linuxthreads-2.1.3.1-s390.diff from 2.1.3 + - added new changes from IBM s390 codedrop + - removed glibc-dlopen-2.1.3-s390.diff which is + incorporated in glibc-linuxthreads-2.1.3.1-s390.diff now +* Tue Sep 05 2000 kukuk@suse.de +- Add glibc-2.1.security.dif +* Fri Sep 01 2000 olh@suse.de +- add glibc-2.1-ppc_lfs.dif, enables (hopefully) lfs on ppc +* Wed Aug 30 2000 olh@suse.de +- remove sysdeps/powerpc/memset.S on ppc for POWER3 +* Mon Aug 28 2000 olh@suse.de +- add glibc-2.1.sgi_fam.dif +- remove sysdeps/rs6000/memcopy.h on ppc for POWER3 +* Mon Aug 21 2000 garloff@suse.de +- Fix race on cond_wait WRT owner of mutex (from olh@suse.de) +* Tue Jul 25 2000 kukuk@suse.de +- Add mmap fix for PowerPC +* Tue Jul 11 2000 kukuk@suse.de +- Remove "mutex is owned by current thread" bugfix for IBMs jdk +* Mon Jun 26 2000 schwab@suse.de +- Update ia64 patch. +* Tue Jun 20 2000 kukuk@suse.de +- Move html docu in extra package +- Update ia64 patch +* Wed May 31 2000 kukuk@suse.de +- Remove LICENSE file, it's the same as COPYING.LIB +- Add libc docu as html +* Sun May 28 2000 kukuk@suse.de +- Fix ldconfig on PPC and IA64 +* Sat May 27 2000 kukuk@suse.de +- Merge new ldconfig fixes +* Fri May 26 2000 kukuk@suse.de +- Update ia64 patch +* Fri May 26 2000 kukuk@suse.de +- Fix (f)truncate64 and xdr_uint8_t +* Wed May 24 2000 kukuk@suse.de +- Fix ldconfig.8 manual page +* Thu May 18 2000 bk@suse.de +- added s390 dlopen fix +* Tue May 16 2000 bk@suse.de +- updated s390 patches to match IBM_codedrop_2000_05_15 +* Fri May 12 2000 kukuk@suse.de +- Fix netinet/in.h IPv6 compare +* Fri May 12 2000 schwab@suse.de +- Update ia64 patches. +* Fri May 12 2000 kukuk@suse.de +- Don't apply LFS patch +* Tue May 09 2000 kukuk@suse.de +- Add LFS patches +* Mon May 08 2000 kukuk@suse.de +- Add lot of bug fixes from CVS +* Tue Apr 25 2000 kukuk@suse.de +- Fix nscd/getgrnam bug +* Thu Apr 20 2000 kukuk@suse.de +- Remove /var/mail -> /var/spool/mail patch +- Update nscd.conf.5 manual page +* Wed Apr 12 2000 kukuk@suse.de +- Add nscd patch from Chris Wing +* Wed Apr 12 2000 kukuk@suse.de +- Add ldconfig fix from aj@suse.de +* Wed Apr 12 2000 schwab@suse.de +- More ia64 patches. +- Use libc.so.0, libm.so.0, ld-linux-ia64.so.1 on ia64. +* Mon Apr 10 2000 kukuk@suse.de +- Support asm-sparc64 and asm-sparc on SPARC +* Mon Apr 10 2000 kukuk@suse.de +- Create /etc/ld.so.cache always with permissions 0644 +- Update ia64 patches +* Thu Apr 06 2000 schwab@suse.de +- Fix dynamic linker bug in ia64. +- Add ia64 spinlocks for db2. +* Tue Apr 04 2000 schwab@suse.de +- New IA64 patches. +- Fix ldconfig -p. +* Mon Apr 03 2000 bk@suse.de +- s390 team added s390 patches +* Wed Mar 22 2000 kukuk@suse.de +- Fix last SPARC patch +* Tue Mar 21 2000 kukuk@suse.de +- Add SPARC patches +- Add IA64 patches +* Wed Mar 15 2000 kukuk@suse.de +- Remove personality call (problematic on Alpha) +- Fix typo in localeconv +- alpha/ioperm.c> Add entry for "Nautilus". +* Tue Mar 07 2000 kukuk@suse.de +- Add locale SIGSEGV fix +- Fix getdate bug +* Fri Feb 25 2000 kukuk@suse.de +- Update to final glibc 2.1.3 + fix for bigendian machines +* Thu Feb 24 2000 kukuk@suse.de +- Update to current glibc cvs snapshot +- Add libnss_dns6.so.2, which makes IPv4 and IPv6 lookups. + Old libnss_dns.so.2 will only make IPv4 lookups. +* Tue Feb 22 2000 kukuk@suse.de +- Update to current glibc cvs snapshot (2.1.3pre4) +* Sat Feb 05 2000 kukuk@suse.de +- Add missing defines for SPARC bits/termios.h +* Thu Feb 03 2000 kukuk@suse.de +- Add regex patch from Andreas Schwab +* Wed Feb 02 2000 kukuk@suse.de +- Add ldconfig fix +- Update to current glibc cvs snapshot +- Fix sys/io.h on Intel (C++) +* Mon Jan 24 2000 kukuk@suse.de +- Fix duplicate setrlimit +* Mon Jan 24 2000 kukuk@suse.de +- Update to current glibc cvs snapshot +* Wed Jan 19 2000 kukuk@suse.de +- Update to current glibc cvs snapshot +* Sat Jan 15 2000 ro@suse.de +-fixed ppc db2-patch +* Fri Jan 14 2000 kukuk@suse.de +- Add patches for Intel and PPC +* Fri Jan 14 2000 kukuk@suse.de +- Add patch for SPARC +* Thu Jan 13 2000 kukuk@suse.de +- Move info pages to /usr/share/info +* Mon Jan 10 2000 kukuk@suse.de +- Add ipv6 patches for getent +* Mon Jan 10 2000 kukuk@suse.de +- Move manual pages for applications and config files into + shlibs package +- Update to current glibc 2.1.3 snapshot +* Fri Dec 17 1999 kukuk@suse.de +- Add new ldconfig patches +- Add aio patch +- Add fix for bits/string2.h +* Wed Dec 15 1999 kukuk@suse.de +- add ldconfig.8 +* Wed Dec 15 1999 kukuk@suse.de +- Update to current glibc 2.1.3 snapshot +- Fix get/setrlimit problems +* Thu Dec 09 1999 kukuk@suse.de +- Update to current glibc 2.1.3 snapshot +- Add new ldconfig +* Sun Dec 05 1999 kukuk@suse.de +- Disable make check for SPARC (kernel bug) +- Add setrlimit patches +- Update to current glibc 2.1.3 snapshot +* Fri Nov 26 1999 kukuk@suse.de +- Update to current glibc 2.1.3 snapshot. +* Tue Oct 26 1999 kukuk@suse.de +- Add fix for correct accounting of needed bytes (gethnamaddr.c) +- Remove not exported, public names from internal md5 functions +* Mon Oct 25 1999 kukuk@suse.de +- Add fix for missing nexttowardl aliase +* Tue Oct 19 1999 kukuk@suse.de +- Add security fix for iruserok +* Sat Oct 16 1999 kukuk@suse.de +- Build libNoVersion.so.1 on every platform +* Mon Oct 11 1999 kukuk@suse.de +- Add linuxthreads/signals.c fix from Andreas Schwab +- Remove dangling symlink (Bug #544) +- Add more bug fixes +* Fri Oct 08 1999 kukuk@suse.de +- Add timezone update +* Fri Oct 08 1999 kukuk@suse.de +- Add NIS+ shadow parser fix +* Thu Oct 07 1999 kukuk@suse.de +- Update to official glibc 2.1.2, add important fixes +- Update nscd, add manual pages for it +* Mon Sep 20 1999 ro@suse.de +- libc: added requires kernel_headers +* Mon Sep 13 1999 bs@suse.de +- ran old prepare_spec on spec file to switch to new prepare_spec. +* Mon Sep 06 1999 kukuk@suse.de +- Update to current glibc 2.1.2 cvs snapshot +- Remove use auf automake in spec file +* Fri Sep 03 1999 kukuk@suse.de +- Update to current glibc 2.1.2 cvs snapshot +- Use RPM macros for configure +* Wed Aug 25 1999 kukuk@suse.de +- Update to current glibc 2.1.2 cvs snapshot +* Thu Aug 19 1999 kukuk@suse.de +- Add PowerPC patches from Uli Hecht +- Cleanup of SPEC file +- Create a profiling version +* Sat Aug 14 1999 kukuk@suse.de +- disable nscd hosts caching by default +- Apply patch from HJL for broken gethostbyname_r in libnss_dns +* Fri Jul 16 1999 kukuk@suse.de +- Add header fix for autoconf/g++ +- Move pt_chown and gconv modules from libc to shlibs +* Wed Jul 14 1999 kukuk@suse.de +- Remove /etc/localtime from filelist +* Mon Jul 12 1999 kukuk@suse.de +- Add more bug fixes from cvs +- Add ld.so bug fix from Andreas Schwab +* Thu Jul 08 1999 kukuk@suse.de +- configure for i386-unknown-linux +* Wed Jul 07 1999 kukuk@suse.de +- Remove alpha patch, it's now in glibc 2.1.2 cvs +- Add more bug fixes from cvs +- Remove malloc patch (breaks StarOffice) +* Tue Jul 06 1999 kukuk@suse.de +- Add openpty patch from Andreas Schwab + (openpty now works if /dev/pts is not mounted) +* Fri Jul 02 1999 kukuk@suse.de +- Remove warning von zic about symlinks. +* Mon Jun 28 1999 kukuk@suse.de +- Remove ndbm links, now in gdbm +* Fri Jun 25 1999 kukuk@suse.de +- Add a lot of more fixes +- Add nscd fixes and enable nscd on alpha +* Mon Jun 14 1999 kukuk@suse.de +- Add nss_dns and fget* fixes. +- Add nscd patches for NIS+ +* Thu Jun 10 1999 kukuk@suse.de +- Fix daemon() for MT programs +- Add libio fixes +* Fri May 28 1999 kukuk@suse.de +- Add fix for docu +- Disable nscd for alpha again +* Wed May 26 1999 kukuk@suse.de +- Update to version 2.1.1 +* Mon May 17 1999 kukuk@suse.de +- Update to snapshot from 16.5.1999 +- Add manpages +- Add __setfpucw to libNoVersion (intel) +- Add COPYING and COPYING.LIB +* Fri May 07 1999 kukuk@suse.de +- Update to snapshot from 6.5.1999 +- Add NoVersion patches from RedHat for miscompiled glibc 2.0 apps +- Add patch for Alpha RX164 +- Add workaround for nscd on Alpha +* Wed Apr 28 1999 kukuk@suse.de +- Remove latest fnmatch patches from Uli Drepper +* Tue Apr 27 1999 kukuk@suse.de +- update to cvs version of Apr 26 1999 +- fix pmap_set/pmap_unset for DHCP clients +- Rename libdb1.so.2[.1] to libdb.so.2[.1] since we don't create + the symbolic links. +* Tue Apr 20 1999 kukuk@suse.de +- update to cvs version of Apr 20 1999 +- remove sunrpc.diff +- fix nssv1 package +- only include nscd on intel +- install /etc/nscd.conf +* Mon Apr 12 1999 kukuk@suse.de +- update to cvs version of Apr 11 1999 +- Fix paths in paths.h +- install linuxthreads man pages and documentation +- Add sunrpc patch for Alpha and security fixes +- added links for el_GR and ru_RU.KOI8-R in usr/share/locale +* Wed Mar 31 1999 bs@suse.de +- don't use lx_hack for build +* Tue Mar 16 1999 ro@suse.de +- libc.texinfo: changed to build with stable texinfo version +* Mon Mar 15 1999 ro@suse.de +- update to 2.1.1 (cvs of Mar 15 1999) +- update nssv1 to 2.0.2 +* Sat Feb 20 1999 ro@suse.de +- fixed specfile (lddlibc4 not built on alpha) +* Sat Feb 20 1999 ro@suse.de +- fixed specfile ... +* Sat Feb 20 1999 ro@suse.de +- added automake to neededforbuild +* Sat Feb 20 1999 ro@suse.de +- added nss-v1 modules (to keep old rpm happy with file owners) +* Fri Feb 19 1999 ro@suse.de +- update to cvs-version of 1999/02/18 +* Fri Sep 25 1998 ro@suse.de +- fixed specfile +* Fri Sep 25 1998 ro@suse.de +- update: use cvs-version of 980925 + edited db/Makefile to ignore messed up target-dependency +* Mon Sep 21 1998 ro@suse.de +- update: use cvs-version of 980921 +* Mon Sep 14 1998 ro@suse.de +- update: use today's cvs-version +* Wed Sep 02 1998 ro@suse.de +- build for 586 since egcs generates code for 686 that does NOT run + on 586 !!! (eg strtok) +* Fri Aug 21 1998 ro@suse.de +- updated to cvs-version 20.8.98 + added gettext as neededforbuild (so configure shuts up) + glibc-linuxthreads is contained in main archive now +* Tue Jun 16 1998 ro@suse.de +- added symlink usr/include/X11 +* Thu May 28 1998 ro@suse.de +- added symlinks to linux include files +* Thu May 28 1998 bs@suse.de +- moved ".so" Links to package libc. +* Wed May 27 1998 bs@suse.de +- changed version do `date` +* Wed May 27 1998 ro@suse.de +- created specfile to build libc, shlibs, libd, libcinfo + localedb, timezone, +- former libc renamed to libc5. diff --git a/glibc_post_upgrade.c b/glibc_post_upgrade.c new file mode 100644 index 0000000..f7dd6c5 --- /dev/null +++ b/glibc_post_upgrade.c @@ -0,0 +1,333 @@ +/* skeleton based on version from Fedora Core 3 */ + +#define _GNU_SOURCE + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define verbose_exec(failcode, path...) \ + do \ + { \ + char *const arr[] = { path, NULL }; \ + vexec (failcode, arr); \ + } while (0) + +__attribute__((noinline)) void vexec (int failcode, char *const path[]); +__attribute__((noinline)) void says (const char *str); +__attribute__((noinline)) void sayn (long num); +__attribute__((noinline)) void message (char *const path[]); +__attribute__((noinline)) int check_elf (const char *name); + +int +main (void) +{ + char initpath[256]; + struct stat root, init_root; + +#ifdef REMOVE_TLS_DIRS + const char *library[] = {"libc.so.6", "libc.so.6.1", "libm.so.6", + "libm.so.6.1", "librt.so.1", "librtkaio.so.1", + "libpthread.so.0", "libthread_db.so.1"}; + const char *remove_dir[] = { +#ifdef __i386__ + "/lib/i686/", +#endif +#ifdef __powerpc64__ +#ifdef REMOVE_PPC_OPTIMIZE_POWER4 + "/lib64/power4/", + "/lib64/ppc970/", +#endif +#ifdef REMOVE_PPC_OPTIMIZE_POWER5 + "/lib64/power5/", + "/lib64/power5+/", +#endif +#ifdef REMOVE_PPC_OPTIMIZE_POWER6 + "/lib64/power6/", + "/lib64/power6x/", +#endif +#ifdef REMOVE_PPC_OPTIMIZE_POWER7 + "/lib64/power7/", +#endif +#ifdef REMOVE_PPC_OPTIMIZE_CELL + "/lib64/ppc-cell-be/", +#endif +#endif /* __powerpc64__ */ +#ifdef __powerpc__ +#ifdef REMOVE_PPC_OPTIMIZE_POWER4 + "/lib/power4/", + "/lib/ppc970/", +#endif +#ifdef REMOVE_PPC_OPTIMIZE_POWER5 + "/lib/power5/", + "/lib/power5+/", +#endif +#ifdef REMOVE_PPC_OPTIMIZE_POWER6 + "/lib/power6/", + "/lib/power6x/", +#endif +#ifdef REMOVE_PPC_OPTIMIZE_POWER7 + "/lib/power7/", +#endif +#ifdef REMOVE_PPC_OPTIMIZE_CELL + "/lib/ppc-cell-be/", +#endif +#endif /* __powerpc__ */ + LIBDIR"/tls/" }; + int i, j; + + for (i = 0; i < sizeof (remove_dir) / sizeof (remove_dir[0]); ++i) + for (j = 0; j < sizeof (library) / sizeof (library[0]); j++) + { + char buf[strlen (remove_dir[i]) + strlen (library[j]) + 1]; + char readlink_buf[(strlen (remove_dir[i]) + strlen (library[j])) * 2 + 30]; + ssize_t len; + char *cp; + + cp = stpcpy (buf, remove_dir[i]); + strcpy (cp, library[j]); + /* This file could be a symlink to library-%{version}.so, so check + this and don't remove only the link, but also the library itself. */ + cp = stpcpy (readlink_buf, remove_dir[i]); + if ((len = readlink (buf, cp, (sizeof (readlink_buf) + - (cp - readlink_buf) - 1))) > 0) + { + cp[len] = '\0'; + if (cp[0] != '/') cp = readlink_buf; + unlink (cp); + } + unlink (buf); + } +#endif + + /* If installing bi-arch glibc, rpm sometimes doesn't unpack all files + before running one of the lib's %post scriptlet. /sbin/ldconfig will + then be run by the other arch's %post. */ + if (access ("/sbin/ldconfig", X_OK) == 0) + verbose_exec (110, "/sbin/ldconfig", "/sbin/ldconfig", "-X"); + + if (utimes (GCONV_MODULES_DIR "/gconv-modules.cache", NULL) == 0) + { +#ifndef ICONVCONFIG +#define ICONVCONFIG "/usr/sbin/iconvconfig" +#endif + verbose_exec (113, ICONVCONFIG, "/usr/sbin/iconvconfig", + "-o", GCONV_MODULES_DIR"/gconv-modules.cache", + "--nostdlib", GCONV_MODULES_DIR); + } + + /* Check if telinit is available and the init fifo as well. */ + if (access ("/sbin/telinit", X_OK) || access ("/dev/initctl", F_OK)) + _exit (0); + /* Check if we are not inside of some chroot, because we'd just + timeout and leave /etc/initrunlvl. */ + if (readlink ("/proc/1/exe", initpath, 256) <= 0 || + readlink ("/proc/1/root", initpath, 256) <= 0 || + stat ("/proc/1/root", &init_root) < 0 || + stat ("/.buildenv", &init_root) < 0 || /* XEN build */ + stat ("/", &root) < 0 || + init_root.st_dev != root.st_dev || init_root.st_ino != root.st_ino) + _exit (0); + + if (check_elf ("/proc/1/exe")) + verbose_exec (116, "/sbin/telinit", "/sbin/telinit", "u"); + +#if 0 + /* Check if we can safely condrestart sshd. */ + if (access ("/sbin/service", X_OK) == 0 + && access ("/usr/sbin/sshd", X_OK) == 0 + && access ("/bin/bash", X_OK) == 0) + { + if (check_elf ("/usr/sbin/sshd")) + verbose_exec (121, "/sbin/service", "/sbin/service", "sshd", "condrestart"); + } +#endif + + _exit(0); +} + +void +vexec (int failcode, char *const path[]) +{ + pid_t pid; + int status, save_errno; + + pid = vfork (); + if (pid == 0) + { + execv (path[0], path + 1); + save_errno = errno; + message (path); + says (" exec failed with errno "); + sayn (save_errno); + says ("\n"); + _exit (failcode); + } + else if (pid < 0) + { + save_errno = errno; + message (path); + says (" fork failed with errno "); + sayn (save_errno); + says ("\n"); + _exit (failcode + 1); + } + if (waitpid (0, &status, 0) != pid || !WIFEXITED (status)) + { + message (path); + says (" child terminated abnormally\n"); + _exit (failcode + 2); + } + if (WEXITSTATUS (status)) + { + message (path); + says (" child exited with exit code "); + sayn (WEXITSTATUS (status)); + says ("\n"); + _exit (WEXITSTATUS (status)); + } +} + +void +says (const char *str) +{ + write (1, str, strlen (str)); +} + +void +sayn (long num) +{ + char string[sizeof (long) * 3 + 1]; + char *p = string + sizeof (string) - 1; + + *p = '\0'; + if (num == 0) + *--p = '0'; + else + while (num) + { + *--p = '0' + num % 10; + num = num / 10; + } + + says (p); +} + +void +message (char *const path[]) +{ + says ("/usr/sbin/glibc_post_upgrade: While trying to execute "); + says (path[0]); +} + +int +check_elf (const char *name) +{ + /* Play safe, if we can't open or read, assume it might be + ELF for the current arch. */ + int ret = 1; + int fd = open (name, O_RDONLY); + if (fd >= 0) + { + Elf32_Ehdr ehdr; + if (read (fd, &ehdr, offsetof (Elf32_Ehdr, e_version)) + == offsetof (Elf32_Ehdr, e_version)) + { + ret = 0; + if (ehdr.e_ident[EI_CLASS] + == (sizeof (long) == 8 ? ELFCLASS64 : ELFCLASS32)) + { +#if defined __i386__ + ret = ehdr.e_machine == EM_386; +#elif defined __x86_64__ + ret = ehdr.e_machine == EM_X86_64; +#elif defined __ia64__ + ret = ehdr.e_machine == EM_IA_64; +#elif defined __powerpc64__ + ret = ehdr.e_machine == EM_PPC64; +#elif defined __powerpc__ + ret = ehdr.e_machine == EM_PPC; +#elif defined __s390__ || defined __s390x__ + ret = ehdr.e_machine == EM_S390; +#elif defined __x86_64__ + ret = ehdr.e_machine == EM_X86_64; +#elif defined __sparc__ + if (sizeof (long) == 8) + ret = ehdr.e_machine == EM_SPARCV9; + else + ret = (ehdr.e_machine == EM_SPARC + || ehdr.e_machine == EM_SPARC32PLUS); +#else + ret = 1; +#endif + } + } + close (fd); + } + return ret; +} + +#ifdef SMALL_BINARY + +int __libc_multiple_threads __attribute__((nocommon)); +int __libc_enable_asynccancel (void) { return 0; } +void __libc_disable_asynccancel (int x) { } +void __libc_csu_init (void) { } +void __libc_csu_fini (void) { } +pid_t __fork (void) { return -1; } +char thr_buf[65536]; + +#ifndef __powerpc__ +int +__libc_start_main (int (*main) (void), int argc, char **argv, + void (*init) (void), void (*fini) (void), + void (*rtld_fini) (void), void * stack_end) +#else +struct startup_info +{ + void *sda_base; + int (*main) (int, char **, char **, void *); + int (*init) (int, char **, char **, void *); + void (*fini) (void); +}; + +int +__libc_start_main (int argc, char **ubp_av, char **ubp_ev, + void *auxvec, void (*rtld_fini) (void), + struct startup_info *stinfo, + char **stack_on_entry) +#endif +{ +#if defined __ia64__ || defined __powerpc64__ + register void *r13 __asm ("r13") = thr_buf + 32768; + __asm ("" : : "r" (r13)); +#elif defined __sparc__ + register void *g6 __asm ("g6") = thr_buf + 32768; +# ifdef __arch64__ + __thread_self = thr_buf + 32768; +# else + register void *__thread_self __asm ("g7") = thr_buf + 32768; +# endif + __asm ("" : : "r" (g6), "r" (__thread_self)); +#elif defined __s390__ && !defined __s390x__ + __asm ("sar %%a0,%0" : : "d" (thr_buf + 32768)); +#elif defined __s390x__ + __asm ("sar %%a1,%0; srlg 0,%0,32; sar %%a0,0" : : "d" (thr_buf + 32768) : "0"); +#elif defined __powerpc__ && !defined __powerpc64__ + register void *r2 __asm ("r2") = thr_buf + 32768; + __asm ("" : : "r" (r2)); +#endif + main(); + return 0; +} + +#endif diff --git a/libm-x86-64.diff.bz2 b/libm-x86-64.diff.bz2 new file mode 100644 index 0000000..38fc85a --- /dev/null +++ b/libm-x86-64.diff.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8f65b9076eee071c181fb4a81621adda554b9e247ff97dbe487322b2a03fa3c +size 76941 diff --git a/manpages.tar.bz2 b/manpages.tar.bz2 new file mode 100644 index 0000000..ffb101e --- /dev/null +++ b/manpages.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e84aeb3808f86c7cd169ca795b31d1fdef21864c74b827ca750f3d478f0a95a5 +size 12562 diff --git a/missing-include-build-fix.diff b/missing-include-build-fix.diff new file mode 100644 index 0000000..c1783d3 --- /dev/null +++ b/missing-include-build-fix.diff @@ -0,0 +1,10 @@ +--- sysdeps/unix/sysv/linux/check_native.c ++++ sysdeps/unix/sysv/linux/check_native.c +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/noversion.tar.bz2 b/noversion.tar.bz2 new file mode 100644 index 0000000..3cab5fa --- /dev/null +++ b/noversion.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:469186780a61f0e0839e3938a674ebe7a46d649dd4de8ba52f1bc821aca42455 +size 1520 diff --git a/nscd.init b/nscd.init new file mode 100644 index 0000000..1316e90 --- /dev/null +++ b/nscd.init @@ -0,0 +1,123 @@ +#! /bin/sh +# Copyright (c) 1995-2004 SuSE Linux AG, Nuernberg, Germany. +# Copyright (c) 2005 SUSE LINUX Products GmbH, Nuernberg, Germany. +# All rights reserved. +# +# Author: Ruediger Oertel +# Thorsten Kukuk +# +# Please send feedback to http://www.suse.de/feedback +# +# init.d/nscd +# +# and symbolic its link +# +# /usr/sbin/rcnscd +# +# System startup script for the NIS daemon +# +### BEGIN INIT INFO +# Provides: nscd +# Required-Start: $remote_fs $time +# Should-Start: $syslog $named winbind +# Should-Stop: $null +# Required-Stop: $null +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Short-Description: Start Name Service Cache Daemon +# Description: Start Name Service Cache Daemon +### END INIT INFO + +# Source SuSE config +. /etc/rc.status + +NSCD_BIN=/usr/sbin/nscd +test -x $NSCD_BIN || { echo "$NSCD_BIN not installed"; + if [ "$1" = "stop" ]; then exit 0; else exit 5; fi; } + +NSCD_CONFIG=/etc/nscd.conf +test -r $NSCD_CONFIG || { echo "$NSCD_CONFIG not existing"; + if [ "$1" = "stop" ]; then exit 0; else exit 6; fi; } + +NSCD_PID=/var/run/nscd/nscd.pid + +# Shell functions sourced from /etc/rc.status: +# rc_check check and set local and overall rc status +# rc_status check and set local and overall rc status +# rc_status -v ditto but be verbose in local rc status +# rc_status -v -r ditto and clear the local rc status +# rc_failed set local and overall rc status to failed +# rc_reset clear local rc status (overall remains) +# rc_exit exit appropriate to overall rc status + +# First reset status of this service +rc_reset + +# Return values acc. to LSB for all commands but status: +# 0 - success +# 1 - misc error +# 2 - invalid or excess args +# 3 - unimplemented feature (e.g. reload) +# 4 - insufficient privilege +# 5 - program not installed +# 6 - program not configured +# + +case "$1" in + start) + echo -n "Starting Name Service Cache Daemon" + /sbin/startproc -p $NSCD_PID $NSCD_BIN + rc_status -v + ;; + stop) + echo -n "Shutting down Name Service Cache Daemon" + /sbin/killproc -p $NSCD_PID -TERM $NSCD_BIN + # if nscd does not run as root, it cannot remove this files: + rm -f /var/run/nscd/socket $NSCD_PID + rc_status -v + ;; + try-restart|condrestart) + ## RH has a similar command named condrestart. + if test "$1" = "condrestart"; then + echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" + fi + $0 status + if test $? = 0; then + $0 restart + else + rc_reset # Not running is not a failure. + fi + rc_status + ;; + restart) + ## Stop the service and regardless of whether it was + ## running or not, start it again. + $0 stop + $0 start + rc_status + ;; + force-reload) + echo "Reload Name Service Cache Daemon" + $0 try-restart + rc_status + ;; + reload) + # nscd does not support SIGHUP, so fail. + echo -n "Reload Name Service Cache Daemon" + rc_failed 3 + rc_status -v + ;; + status) + echo -n "Checking for Name Service Cache Daemon: " + /sbin/checkproc -p $NSCD_PID $NSCD_BIN + rc_status -v + ;; + probe) + test $NSCD_CONFIG -nt $NSCD_PID && echo restart + ;; + *) + echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" + exit 1 + ;; +esac +rc_exit diff --git a/nsswitch.conf b/nsswitch.conf new file mode 100644 index 0000000..9d628f0 --- /dev/null +++ b/nsswitch.conf @@ -0,0 +1,47 @@ +# +# /etc/nsswitch.conf +# +# An example Name Service Switch config file. This file should be +# sorted with the most-used services at the beginning. +# +# The entry '[NOTFOUND=return]' means that the search for an +# entry should stop if the search in the previous entry turned +# up nothing. Note that if the search failed due to some other reason +# (like no NIS server responding) then the search continues with the +# next entry. +# +# Legal entries are: +# +# compat Use compatibility setup +# nisplus Use NIS+ (NIS version 3) +# nis Use NIS (NIS version 2), also called YP +# dns Use DNS (Domain Name Service) +# files Use the local files +# [NOTFOUND=return] Stop searching if not found so far +# +# For more information, please read the nsswitch.conf.5 manual page. +# + +# passwd: files nis +# shadow: files nis +# group: files nis + +passwd: compat +group: compat + +hosts: files dns +networks: files dns + +services: files +protocols: files +rpc: files +ethers: files +netmasks: files +netgroup: files nis +publickey: files + +bootparams: files +automount: files nis +aliases: files + + diff --git a/powerpc-cpu.tar.bz2 b/powerpc-cpu.tar.bz2 new file mode 100644 index 0000000..715978c --- /dev/null +++ b/powerpc-cpu.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c59f80e38c9f6ad339d72bbfbc454364659686567b7689d33483b9cb4a12bf2a +size 36248 diff --git a/ppc-atomic.diff b/ppc-atomic.diff new file mode 100644 index 0000000..9a3538e --- /dev/null +++ b/ppc-atomic.diff @@ -0,0 +1,419 @@ +Index: sysdeps/powerpc/bits/atomic.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/powerpc/bits/atomic.h,v +retrieving revision 1.17 +diff -u -a -p -r1.17 atomic.h +--- sysdeps/powerpc/bits/atomic.h 26 Mar 2007 20:15:28 -0000 1.17 ++++ sysdeps/powerpc/bits/atomic.h 31 May 2008 08:50:56 -0000 +@@ -85,14 +85,14 @@ typedef uintmax_t uatomic_max_t; + __typeof (*(mem)) __tmp; \ + __typeof (mem) __memp = (mem); \ + __asm __volatile ( \ +- "1: lwarx %0,0,%1" MUTEX_HINT_ACQ "\n" \ ++ "1: lwarx %0,%y1" MUTEX_HINT_ACQ "\n" \ + " cmpw %0,%2\n" \ + " bne 2f\n" \ +- " stwcx. %3,0,%1\n" \ ++ " stwcx. %3,%y1\n" \ + " bne- 1b\n" \ + "2: " __ARCH_ACQ_INSTR \ +- : "=&r" (__tmp) \ +- : "b" (__memp), "r" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "+Z" (*__memp) \ ++ : "r" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp; \ + }) +@@ -102,14 +102,14 @@ typedef uintmax_t uatomic_max_t; + __typeof (*(mem)) __tmp; \ + __typeof (mem) __memp = (mem); \ + __asm __volatile (__ARCH_REL_INSTR "\n" \ +- "1: lwarx %0,0,%1" MUTEX_HINT_REL "\n" \ ++ "1: lwarx %0,%y1" MUTEX_HINT_REL "\n" \ + " cmpw %0,%2\n" \ + " bne 2f\n" \ +- " stwcx. %3,0,%1\n" \ ++ " stwcx. %3,%y1\n" \ + " bne- 1b\n" \ + "2: " \ +- : "=&r" (__tmp) \ +- : "b" (__memp), "r" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "+Z" (__memp) \ ++ : "r" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp; \ + }) +@@ -118,12 +118,12 @@ typedef uintmax_t uatomic_max_t; + ({ \ + __typeof (*mem) __val; \ + __asm __volatile ( \ +- "1: lwarx %0,0,%2" MUTEX_HINT_ACQ "\n" \ +- " stwcx. %3,0,%2\n" \ ++ "1: lwarx %0,%y1" MUTEX_HINT_ACQ "\n" \ ++ " stwcx. %2,%y1\n" \ + " bne- 1b\n" \ + " " __ARCH_ACQ_INSTR \ +- : "=&r" (__val), "=m" (*mem) \ +- : "b" (mem), "r" (value), "m" (*mem) \ ++ : "=&r" (__val), "+Z" (*mem) \ ++ : "r" (value) \ + : "cr0", "memory"); \ + __val; \ + }) +@@ -132,11 +132,11 @@ typedef uintmax_t uatomic_max_t; + ({ \ + __typeof (*mem) __val; \ + __asm __volatile (__ARCH_REL_INSTR "\n" \ +- "1: lwarx %0,0,%2" MUTEX_HINT_REL "\n" \ +- " stwcx. %3,0,%2\n" \ ++ "1: lwarx %0,%y1" MUTEX_HINT_REL "\n" \ ++ " stwcx. %2,%y1\n" \ + " bne- 1b" \ +- : "=&r" (__val), "=m" (*mem) \ +- : "b" (mem), "r" (value), "m" (*mem) \ ++ : "=&r" (__val), "+Z" (*mem) \ ++ : "r" (value) \ + : "cr0", "memory"); \ + __val; \ + }) +@@ -144,12 +144,12 @@ typedef uintmax_t uatomic_max_t; + #define __arch_atomic_exchange_and_add_32(mem, value) \ + ({ \ + __typeof (*mem) __val, __tmp; \ +- __asm __volatile ("1: lwarx %0,0,%3\n" \ +- " add %1,%0,%4\n" \ +- " stwcx. %1,0,%3\n" \ ++ __asm __volatile ("1: lwarx %0,%y2\n" \ ++ " add %1,%0,%3\n" \ ++ " stwcx. %1,%y2\n" \ + " bne- 1b" \ +- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \ +- : "b" (mem), "r" (value), "m" (*mem) \ ++ : "=&b" (__val), "=&r" (__tmp), "+Z" (*mem) \ ++ : "r" (value) \ + : "cr0", "memory"); \ + __val; \ + }) +@@ -157,12 +157,12 @@ typedef uintmax_t uatomic_max_t; + #define __arch_atomic_increment_val_32(mem) \ + ({ \ + __typeof (*(mem)) __val; \ +- __asm __volatile ("1: lwarx %0,0,%2\n" \ ++ __asm __volatile ("1: lwarx %0,%y1\n" \ + " addi %0,%0,1\n" \ +- " stwcx. %0,0,%2\n" \ ++ " stwcx. %0,%y1\n" \ + " bne- 1b" \ +- : "=&b" (__val), "=m" (*mem) \ +- : "b" (mem), "m" (*mem) \ ++ : "=&b" (__val), "+Z" (*mem) \ ++ : \ + : "cr0", "memory"); \ + __val; \ + }) +@@ -170,27 +170,27 @@ typedef uintmax_t uatomic_max_t; + #define __arch_atomic_decrement_val_32(mem) \ + ({ \ + __typeof (*(mem)) __val; \ +- __asm __volatile ("1: lwarx %0,0,%2\n" \ ++ __asm __volatile ("1: lwarx %0,%y1\n" \ + " subi %0,%0,1\n" \ +- " stwcx. %0,0,%2\n" \ ++ " stwcx. %0,%y1\n" \ + " bne- 1b" \ +- : "=&b" (__val), "=m" (*mem) \ +- : "b" (mem), "m" (*mem) \ ++ : "=&b" (__val), "+Z" (*mem) \ ++ : \ + : "cr0", "memory"); \ + __val; \ + }) + + #define __arch_atomic_decrement_if_positive_32(mem) \ + ({ int __val, __tmp; \ +- __asm __volatile ("1: lwarx %0,0,%3\n" \ ++ __asm __volatile ("1: lwarx %0,%y2\n" \ + " cmpwi 0,%0,0\n" \ + " addi %1,%0,-1\n" \ + " ble 2f\n" \ +- " stwcx. %1,0,%3\n" \ ++ " stwcx. %1,%y2\n" \ + " bne- 1b\n" \ + "2: " __ARCH_ACQ_INSTR \ +- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \ +- : "b" (mem), "m" (*mem) \ ++ : "=&b" (__val), "=&r" (__tmp), "+Z" (*mem) \ ++ : \ + : "cr0", "memory"); \ + __val; \ + }) +Index: sysdeps/powerpc/powerpc32/bits/atomic.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/powerpc/powerpc32/bits/atomic.h,v +retrieving revision 1.6 +diff -u -a -p -r1.6 atomic.h +--- sysdeps/powerpc/powerpc32/bits/atomic.h 26 Mar 2007 20:15:45 -0000 1.6 ++++ sysdeps/powerpc/powerpc32/bits/atomic.h 31 May 2008 08:50:56 -0000 +@@ -44,14 +44,14 @@ + ({ \ + unsigned int __tmp; \ + __asm __volatile ( \ +- "1: lwarx %0,0,%1" MUTEX_HINT_ACQ "\n" \ ++ "1: lwarx %0,%y1" MUTEX_HINT_ACQ "\n" \ + " subf. %0,%2,%0\n" \ + " bne 2f\n" \ +- " stwcx. %3,0,%1\n" \ ++ " stwcx. %3,%y1\n" \ + " bne- 1b\n" \ + "2: " __ARCH_ACQ_INSTR \ +- : "=&r" (__tmp) \ +- : "b" (mem), "r" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "+Z" (*(mem)) \ ++ : "r" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp != 0; \ + }) +@@ -60,14 +60,14 @@ + ({ \ + unsigned int __tmp; \ + __asm __volatile (__ARCH_REL_INSTR "\n" \ +- "1: lwarx %0,0,%1" MUTEX_HINT_REL "\n" \ ++ "1: lwarx %0,%y1" MUTEX_HINT_REL "\n" \ + " subf. %0,%2,%0\n" \ + " bne 2f\n" \ +- " stwcx. %3,0,%1\n" \ ++ " stwcx. %3,%y1\n" \ + " bne- 1b\n" \ + "2: " \ +- : "=&r" (__tmp) \ +- : "b" (mem), "r" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "+Z" (*(mem)) \ ++ : "r" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp != 0; \ + }) +Index: sysdeps/powerpc/powerpc64/bits/atomic.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/powerpc/powerpc64/bits/atomic.h,v +retrieving revision 1.8 +diff -u -a -p -r1.8 atomic.h +--- sysdeps/powerpc/powerpc64/bits/atomic.h 26 Mar 2007 20:16:03 -0000 1.8 ++++ sysdeps/powerpc/powerpc64/bits/atomic.h 31 May 2008 08:50:56 -0000 +@@ -44,14 +44,14 @@ + ({ \ + unsigned int __tmp, __tmp2; \ + __asm __volatile (" clrldi %1,%1,32\n" \ +- "1: lwarx %0,0,%2" MUTEX_HINT_ACQ "\n" \ ++ "1: lwarx %0,%y2" MUTEX_HINT_ACQ "\n" \ + " subf. %0,%1,%0\n" \ + " bne 2f\n" \ +- " stwcx. %4,0,%2\n" \ ++ " stwcx. %4,%y2\n" \ + " bne- 1b\n" \ + "2: " __ARCH_ACQ_INSTR \ +- : "=&r" (__tmp), "=r" (__tmp2) \ +- : "b" (mem), "1" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "=r" (__tmp2), "+Z" (*(mem)) \ ++ : "1" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp != 0; \ + }) +@@ -61,14 +61,14 @@ + unsigned int __tmp, __tmp2; \ + __asm __volatile (__ARCH_REL_INSTR "\n" \ + " clrldi %1,%1,32\n" \ +- "1: lwarx %0,0,%2" MUTEX_HINT_REL "\n" \ ++ "1: lwarx %0,%y2" MUTEX_HINT_REL "\n" \ + " subf. %0,%1,%0\n" \ + " bne 2f\n" \ +- " stwcx. %4,0,%2\n" \ ++ " stwcx. %4,%y2\n" \ + " bne- 1b\n" \ + "2: " \ +- : "=&r" (__tmp), "=r" (__tmp2) \ +- : "b" (mem), "1" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "=r" (__tmp2), "+Z" (*(mem)) \ ++ : "1" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp != 0; \ + }) +@@ -82,14 +82,14 @@ + ({ \ + unsigned long __tmp; \ + __asm __volatile ( \ +- "1: ldarx %0,0,%1" MUTEX_HINT_ACQ "\n" \ ++ "1: ldarx %0,%y1" MUTEX_HINT_ACQ "\n" \ + " subf. %0,%2,%0\n" \ + " bne 2f\n" \ +- " stdcx. %3,0,%1\n" \ ++ " stdcx. %3,%y1\n" \ + " bne- 1b\n" \ + "2: " __ARCH_ACQ_INSTR \ +- : "=&r" (__tmp) \ +- : "b" (mem), "r" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "+Z" (*(mem)) \ ++ : "r" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp != 0; \ + }) +@@ -98,14 +98,14 @@ + ({ \ + unsigned long __tmp; \ + __asm __volatile (__ARCH_REL_INSTR "\n" \ +- "1: ldarx %0,0,%2" MUTEX_HINT_REL "\n" \ ++ "1: ldarx %0,%y1" MUTEX_HINT_REL "\n" \ + " subf. %0,%2,%0\n" \ + " bne 2f\n" \ +- " stdcx. %3,0,%1\n" \ ++ " stdcx. %3,%y1\n" \ + " bne- 1b\n" \ + "2: " \ +- : "=&r" (__tmp) \ +- : "b" (mem), "r" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "+Z" (*(mem)) \ ++ : "r" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp != 0; \ + }) +@@ -115,14 +115,14 @@ + __typeof (*(mem)) __tmp; \ + __typeof (mem) __memp = (mem); \ + __asm __volatile ( \ +- "1: ldarx %0,0,%1" MUTEX_HINT_ACQ "\n" \ ++ "1: ldarx %0,%y1" MUTEX_HINT_ACQ "\n" \ + " cmpd %0,%2\n" \ + " bne 2f\n" \ +- " stdcx. %3,0,%1\n" \ ++ " stdcx. %3,%y1\n" \ + " bne- 1b\n" \ + "2: " __ARCH_ACQ_INSTR \ +- : "=&r" (__tmp) \ +- : "b" (__memp), "r" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "+Z" (*__memp) \ ++ : "r" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp; \ + }) +@@ -132,14 +132,14 @@ + __typeof (*(mem)) __tmp; \ + __typeof (mem) __memp = (mem); \ + __asm __volatile (__ARCH_REL_INSTR "\n" \ +- "1: ldarx %0,0,%1" MUTEX_HINT_REL "\n" \ ++ "1: ldarx %0,%y1" MUTEX_HINT_REL "\n" \ + " cmpd %0,%2\n" \ + " bne 2f\n" \ +- " stdcx. %3,0,%1\n" \ ++ " stdcx. %3,%y1\n" \ + " bne- 1b\n" \ + "2: " \ +- : "=&r" (__tmp) \ +- : "b" (__memp), "r" (oldval), "r" (newval) \ ++ : "=&r" (__tmp), "+Z" (*__memp) \ ++ : "r" (oldval), "r" (newval) \ + : "cr0", "memory"); \ + __tmp; \ + }) +@@ -148,12 +148,12 @@ + ({ \ + __typeof (*mem) __val; \ + __asm __volatile (__ARCH_REL_INSTR "\n" \ +- "1: ldarx %0,0,%2" MUTEX_HINT_ACQ "\n" \ +- " stdcx. %3,0,%2\n" \ ++ "1: ldarx %0,%y1" MUTEX_HINT_ACQ "\n" \ ++ " stdcx. %2,%y1\n" \ + " bne- 1b\n" \ + " " __ARCH_ACQ_INSTR \ +- : "=&r" (__val), "=m" (*mem) \ +- : "b" (mem), "r" (value), "m" (*mem) \ ++ : "=&r" (__val), "+Z" (*(mem)) \ ++ : "r" (value) \ + : "cr0", "memory"); \ + __val; \ + }) +@@ -162,11 +162,11 @@ + ({ \ + __typeof (*mem) __val; \ + __asm __volatile (__ARCH_REL_INSTR "\n" \ +- "1: ldarx %0,0,%2" MUTEX_HINT_REL "\n" \ +- " stdcx. %3,0,%2\n" \ ++ "1: ldarx %0,%y1" MUTEX_HINT_REL "\n" \ ++ " stdcx. %2,%y1\n" \ + " bne- 1b" \ +- : "=&r" (__val), "=m" (*mem) \ +- : "b" (mem), "r" (value), "m" (*mem) \ ++ : "=&r" (__val), "+Z" (*(mem)) \ ++ : "r" (value) \ + : "cr0", "memory"); \ + __val; \ + }) +@@ -174,12 +174,12 @@ + #define __arch_atomic_exchange_and_add_64(mem, value) \ + ({ \ + __typeof (*mem) __val, __tmp; \ +- __asm __volatile ("1: ldarx %0,0,%3\n" \ +- " add %1,%0,%4\n" \ +- " stdcx. %1,0,%3\n" \ ++ __asm __volatile ("1: ldarx %0,%y2\n" \ ++ " add %1,%0,%3\n" \ ++ " stdcx. %1,%y2\n" \ + " bne- 1b" \ +- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \ +- : "b" (mem), "r" (value), "m" (*mem) \ ++ : "=&b" (__val), "=&r" (__tmp), "+Z" (*(mem)) \ ++ : "r" (value) \ + : "cr0", "memory"); \ + __val; \ + }) +@@ -187,12 +187,12 @@ + #define __arch_atomic_increment_val_64(mem) \ + ({ \ + __typeof (*(mem)) __val; \ +- __asm __volatile ("1: ldarx %0,0,%2\n" \ ++ __asm __volatile ("1: ldarx %0,%y1\n" \ + " addi %0,%0,1\n" \ +- " stdcx. %0,0,%2\n" \ ++ " stdcx. %0,%y1\n" \ + " bne- 1b" \ +- : "=&b" (__val), "=m" (*mem) \ +- : "b" (mem), "m" (*mem) \ ++ : "=&b" (__val), "+Z" (*(mem)) \ ++ : \ + : "cr0", "memory"); \ + __val; \ + }) +@@ -200,27 +200,27 @@ + #define __arch_atomic_decrement_val_64(mem) \ + ({ \ + __typeof (*(mem)) __val; \ +- __asm __volatile ("1: ldarx %0,0,%2\n" \ ++ __asm __volatile ("1: ldarx %0,%y1\n" \ + " subi %0,%0,1\n" \ +- " stdcx. %0,0,%2\n" \ ++ " stdcx. %0,%y1\n" \ + " bne- 1b" \ +- : "=&b" (__val), "=m" (*mem) \ +- : "b" (mem), "m" (*mem) \ ++ : "=&b" (__val), "+Z" (*(mem)) \ ++ : \ + : "cr0", "memory"); \ + __val; \ + }) + + #define __arch_atomic_decrement_if_positive_64(mem) \ + ({ int __val, __tmp; \ +- __asm __volatile ("1: ldarx %0,0,%3\n" \ ++ __asm __volatile ("1: ldarx %0,%y2\n" \ + " cmpdi 0,%0,0\n" \ + " addi %1,%0,-1\n" \ + " ble 2f\n" \ +- " stdcx. %1,0,%3\n" \ ++ " stdcx. %1,%y2\n" \ + " bne- 1b\n" \ + "2: " __ARCH_ACQ_INSTR \ +- : "=&b" (__val), "=&r" (__tmp), "=m" (*mem) \ +- : "b" (mem), "m" (*mem) \ ++ : "=&b" (__val), "=&r" (__tmp), "+Z" (*(mem)) \ ++ : \ + : "cr0", "memory"); \ + __val; \ + }) diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4 diff --git a/resolv.dynamic.diff b/resolv.dynamic.diff new file mode 100644 index 0000000..e35b313 --- /dev/null +++ b/resolv.dynamic.diff @@ -0,0 +1,31 @@ +--- resolv/res_libc.c.orig 2005-04-07 14:26:57.181526898 +0200 ++++ resolv/res_libc.c 2005-04-07 18:38:56.718340309 +0200 +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + + + /* The following bit is copied from res_data.c (where it is #ifdef'ed +@@ -101,6 +102,20 @@ + __res_maybe_init (res_state resp, int preinit) + { + if (resp->options & RES_INIT) { ++ static time_t last_mtime, last_check; ++ time_t now; ++ struct stat statbuf; ++ ++ time (&now); ++ if (now != last_check) { ++ last_check = now; ++ if (stat (_PATH_RESCONF, &statbuf) == 0 && last_mtime != statbuf.st_mtime) { ++ last_mtime = statbuf.st_mtime; ++ atomicinclock (lock); ++ atomicinc (__res_initstamp); ++ atomicincunlock (lock); ++ } ++ } + if (__res_initstamp != resp->_u._ext.initstamp) { + if (resp->nscount > 0) { + __res_nclose (resp);