* Merge diff between trunk/pkgs@1646 and branches/nixos-pkgs@2256;

this contains mostly Armijn's pure stdenv-linux.

* After unpacking the statically linked GCC, patch all store paths to
  /nix/store/ffffffffffffffffffffffffffffffff.  Ugly hack to prevent
  undeclared references but it works.

* We don't need Glib's dynamic libraries in the first bootstrap stage;
  delete them.  Actually the downloaded Glibc binary is only needed
  for building Glibc, since GCC needs a C compiler to build some
  programs in `configure'.  So static linking is fine for that.  Maybe
  it would be better to patch `configure' so that we don't need a
  pre-built Glibc at all.

* Set the svn:executable property on `cp' and `patchelf'.

* In Glibc, revert to LinuxThreads.  Maybe NPTL will work, but TLS
  support is a problem.

* Delete most Glibc patches; they're no longer needed since the branch
  updated it to 20050110.
  
* Some cleanups.

svn path=/nixpkgs/trunk/; revision=2258
This commit is contained in:
Eelco Dolstra 2005-02-21 16:03:34 +00:00
commit e6744d0f89
35 changed files with 474 additions and 862 deletions

View file

@ -9,8 +9,12 @@ if test -z "$nativeGlibc"; then
# against the crt1.o from our own glibc, rather than the one in
# /usr/lib. The real solution is of course to prevent those paths
# from being used by gcc in the first place.
# The dynamic linker is passed in `ldflagsBefore' to allow
# explicit overrides of the dynamic linker by callers to gcc/ld
# (the *last* value counts, so ours should come first).
cflagsCompile="$cflagsCompile -B$glibc/lib -isystem $glibc/include"
ldflags="$ldflags -L$glibc/lib -dynamic-linker $glibc/lib/ld-linux.so.2"
ldflags="$ldflags -L$glibc/lib"
ldflagsBefore="-dynamic-linker $glibc/lib/ld-linux.so.2"
fi
if test -n "$nativeTools"; then
@ -57,6 +61,7 @@ ln -s g77 $out/bin/f77
sed \
-e "s^@out@^$out^g" \
-e "s^@ldflags@^$ldflags^g" \
-e "s^@ldflagsBefore@^$ldflagsBefore^g" \
-e "s^@ld@^$ldPath/ld^g" \
-e "s^@shell@^$shell^g" \
< $ldWrapper > $out/bin/ld
@ -71,7 +76,9 @@ cat > $out/nix-support/add-flags <<EOF
export NIX_CFLAGS_COMPILE="$cflagsCompile \$NIX_CFLAGS_COMPILE"
export NIX_CFLAGS_LINK="$cflagsLink \$NIX_CFLAGS_LINK"
export NIX_LDFLAGS="$ldflags \$NIX_LDFLAGS"
export NIX_LDFLAGS_BEFORE="$ldflagsBefore \$NIX_LDFLAGS_BEFORE"
export NIX_GLIBC_FLAGS_SET=1
#export GCC_EXEC_PREFIX=$gcc/libexec/gcc/i686-pc-linux-gnu/3.4.3
EOF
sed \

View file

@ -63,24 +63,28 @@ fi
# Add the flags for the C compiler proper.
extra=($NIX_CFLAGS_COMPILE)
extraAfter=($NIX_CFLAGS_COMPILE)
extraBefore=()
if test "$dontLink" != "1"; then
# Add the flags that should only be passed to the compiler when
# linking.
extra=(${extra[@]} $NIX_CFLAGS_LINK)
extraAfter=(${extraAfter[@]} $NIX_CFLAGS_LINK)
# Add the flags that should be passed to the linker (and prevent
# `ld-wrapper' from adding NIX_LDFLAGS again).
for i in $NIX_LDFLAGS_BEFORE; do
extraBefore=(${extraBefore[@]} "-Wl,$i")
done
for i in $NIX_LDFLAGS; do
extra=(${extra[@]} "-Wl,$i")
extraAfter=(${extraAfter[@]} "-Wl,$i")
done
export NIX_LDFLAGS_SET=1
if test "$NIX_STRIP_DEBUG" = "1"; then
# Add executable-stripping flags.
extra=(${extra[@]} $NIX_CFLAGS_STRIP)
extraAfter=(${extraAfter[@]} $NIX_CFLAGS_STRIP)
fi
fi
@ -90,8 +94,12 @@ if test "$NIX_DEBUG" = "1"; then
for i in "${params[@]}"; do
echo " $i" >&2
done
echo "extra flags to @gcc@:" >&2
for i in ${extra[@]}; do
echo "extraBefore flags to @gcc@:" >&2
for i in ${extraBefore[@]}; do
echo " $i" >&2
done
echo "extraAfter flags to @gcc@:" >&2
for i in ${extraAfter[@]}; do
echo " $i" >&2
done
fi
@ -100,4 +108,4 @@ if test -n "$NIX_GCC_WRAPPER_EXEC_HOOK"; then
. "$NIX_GCC_WRAPPER_EXEC_HOOK"
fi
exec @gcc@ "${params[@]}" ${extra[@]}
exec @gcc@ ${extraBefore[@]} "${params[@]}" ${extraAfter[@]}

View file

@ -42,9 +42,11 @@ fi
extra=()
extraBefore=()
if test -z "$NIX_LDFLAGS_SET"; then
extra=(${extra[@]} $NIX_LDFLAGS)
extraBefore=(${extraBefore[@]} $NIX_LDFLAGS_BEFORE)
fi
@ -121,7 +123,6 @@ if test "$NIX_DONT_SET_RPATH" != "1"; then
for i in $rpath; do
extra=(${extra[@]} -rpath $i)
done
fi
@ -141,4 +142,5 @@ if test -n "$NIX_LD_WRAPPER_EXEC_HOOK"; then
. "$NIX_LD_WRAPPER_EXEC_HOOK"
fi
exec @ld@ "${params[@]}" ${extra[@]}
echo "ld command: " @ld@ ${extraBefore[@]} "${params[@]}" ${extra[@]}
exec @ld@ ${extraBefore[@]} "${params[@]}" ${extra[@]}

View file

@ -1,47 +1,61 @@
# glibc cannot have itself in its rpath.
export NIX_NO_SELF_RPATH=1
export NIX_DONT_SET_RPATH=1
. $stdenv/setup
. $substitute
glibc=`cat $NIX_GCC/nix-support/orig-glibc`
echo $glibc
export LD_LIBRARY_PATH=$glibc/lib
# Explicitly tell glibc to use our pwd, not /bin/pwd.
export PWD_P=$(type -tP pwd)
postUnpack() {
cd $sourceRoot
unpackFile $linuxthreadsSrc
rm -rf nptl
cd ..
}
postUnpack=postUnpack
preConfigure=preConfigure
preConfigure() {
# Use Linuxthreads instead of NPTL.
rm -rf nptl
for i in configure io/ftwtest-sh; do
substituteInPlace "$i" \
--replace "@PWD@" "pwd"
done
mkdir ../build
cd ../build
configureScript=../$sourceRoot/configure
# `--with-tls --without-__thread' is required when for
# linuxthreads. See
# http://sources.redhat.com/bugzilla/show_bug.cgi?id=317. Be sure
# to read Drepper's comment for another classic example of glibc's
# release management strategy.
configureFlags="--enable-add-ons --disable-profile \
--with-headers=$kernelHeaders/include \
# `--with-tls --without-__thread' enables support for TLS but
# causes it not to be used. Required if we don't want to barf on
# 2.4 kernels. Or something.
configureFlags="--enable-add-ons \
--with-headers=$kernelHeaders/include
--with-tls --without-__thread"
}
preConfigure=preConfigure
postConfigure=postConfigure
postConfigure() {
# Hack: get rid of the `-static' flag set by the bootstrap stdenv.
# This has to be done *after* `configure' because it builds some
# test binaries.
export NIX_CFLAGS_LINK=
export NIX_LDFLAGS_BEFORE=
}
postInstall=postInstall
postInstall() {
if test -n "$installLocales"; then
make localedata/install-locales
fi
rm $out/etc/ld.so.cache
(cd $out/include && ln -s $kernelHeaders/include/* .) || exit 1
# `glibcbug' causes a retained dependency on the C compiler.
rm $out/bin/glibcbug
}
postInstall=postInstall
genericBuild

View file

@ -3,43 +3,14 @@
stdenv.mkDerivation {
name = "glibc-2.3.3";
builder = ./builder.sh;
substitute = ../../../build-support/substitute/substitute.sh;
src = fetchurl {
url = http://catamaran.labs.cs.uu.nl/dist/tarballs/glibc-2.3.3.tar.bz2;
md5 = "e825807b98042f807799ccc9dd96d31b";
};
linuxthreadsSrc = fetchurl {
url = http://catamaran.labs.cs.uu.nl/dist/tarballs/glibc-linuxthreads-2.3.3.tar.bz2;
md5 = "8149ea62922e75bd692bc3b92e5e766b";
url = ftp://sources.redhat.com/pub/glibc/snapshots/glibc-20050110.tar.bz2;
md5 = "1171587e4802f43fdda315910adc1854";
};
patches = [
# This patch fixes the bug
# http://sources.redhat.com/bugzilla/show_bug.cgi?id=312. Note
# that this bug was marked as `WORKSFORME' with the comment to
# just use glibc from CVS. This and the unholy Linuxthreads/NPTL
# mess proves that glibc, together with the Linux kernel,
# constitutes an AXIS OF EVIL wrt release management. Patch
# obtained from
# http://www.pengutronix.de/software/ptxdist/patches-cvs/glibc-2.3.2/generic/fixup.patch.
./fixup.patch
# Likewise, this fixes the bug reported in
# http://sources.redhat.com/ml/libc-alpha/2003-07/msg00117.html.
# Die, glibc, die.
./no-unit-at-a-time.patch
# This is a patch to make glibc compile under GCC 3.3. Presumably
# later releases of glibc won't need this.
# ./glibc-2.3.2-sscanf-1.patch
# Fix for localedata loading bug.
./loadlocale.patch
# Add a whole bunch of UTF-8 locales. Most of these seem to be in
# the CVS mainline now.
./utf8-locales.patch
];
patches = [ ./glibc-pwd.patch ];
inherit kernelHeaders installLocales;
}

View file

@ -1,74 +0,0 @@
Fixes
dl-runtime.c:56: error: conflicting types for 'fixup'
../sysdeps/i386/dl-machine.h:158: error: previous declaration of 'fixup' was here
when building with gcc-3.4.0
First hunk:
Define ARCH_FIXUP_ATTRIBUTE and use it in the fixup function declarations.
http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/dl-machine.h.diff?r1=1.124&r2=1.125&cvsroot=glibc
Second hunk:
If ARCH_FIXUP_ATTRIBUTE is not defined, provide dummy definition.
Use macro in fixup function definitions.
http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/elf/dl-runtime.c.diff?r1=1.64&r2=1.65&cvsroot=glibc
[rediffed against glibc-2.3.2]
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/i386/dl-machine.h,v
retrieving revision 1.124
retrieving revision 1.125
diff -u -r1.124 -r1.125
--- libc/sysdeps/i386/dl-machine.h 2004/03/05 10:14:49 1.124
+++ libc/sysdeps/i386/dl-machine.h 2004/03/09 07:42:29 1.125
@@ -154,11 +154,14 @@
destroys the passed register information. */
/* GKM FIXME: Fix trampoline to pass bounds so we can do
without the `__unbounded' qualifier. */
-static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset)
- __attribute__ ((regparm (2), unused));
+#define ARCH_FIXUP_ATTRIBUTE __attribute__ ((regparm (3), unused))
+
+static ElfW(Addr) fixup (struct link_map *__unbounded l,
+ ElfW(Word) reloc_offset)
+ ARCH_FIXUP_ATTRIBUTE;
static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
ElfW(Addr) retaddr)
- __attribute__ ((regparm (3), unused));
+ ARCH_FIXUP_ATTRIBUTE;
# endif
/* This code is used in dl-runtime.c to call the `fixup' function
===================================================================
--- /home/dank/downloads/glibc-2.3.2/elf/dl-runtime.c Fri Feb 7 11:41:12 2003
+++ glibc-2.3.2/elf/dl-runtime.c Thu Apr 8 22:24:26 2004
@@ -36,6 +36,12 @@
# define VERSYMIDX(sym) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
#endif
+/* The fixup functions might have need special attributes. If none
+ are provided define the macro as empty. */
+#ifndef ARCH_FIXUP_ATTRIBUTE
+# define ARCH_FIXUP_ATTRIBUTE
+#endif
+
/* This function is called through a special trampoline from the PLT the
first time each PLT entry is called. We must perform the relocation
@@ -45,7 +51,7 @@
function. */
#ifndef ELF_MACHINE_NO_PLT
-static ElfW(Addr) __attribute_used__
+static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
fixup (
# ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
ELF_MACHINE_RUNTIME_FIXUP_ARGS,
@@ -132,7 +138,7 @@
#if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__
-static ElfW(Addr) __attribute_used__
+static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
profile_fixup (
#ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
ELF_MACHINE_RUNTIME_FIXUP_ARGS,

View file

@ -1,68 +0,0 @@
Submitted By: David Shust (www.shustring.com)
Date: 2003-08-15
Initial Package Version: 2.3.2
Origin: glibc CVS changes performed by Roland McGrath
Description: patches stdio-common/sscanf.c, libio/{swprintf.c, swscanf.c}
diff -Naur glibc-2.3.2/libio/swprintf.c glibc-2.3.2-new/libio/swprintf.c
--- glibc-2.3.2/libio/swprintf.c 2001-07-07 19:21:03.000000000 +0000
+++ glibc-2.3.2-new/libio/swprintf.c 2003-08-15 19:36:42.000000000 +0000
@@ -1,4 +1,5 @@
-/* Copyright (C) 1991,1995,1997,1998,1999,2000 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1997,1998,1999,2000,2003
+ 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
@@ -22,10 +23,7 @@
/* Write formatted output into S, according to the format string FORMAT. */
/* VARARGS3 */
int
-swprintf (s, n, format)
- wchar_t *s;
- size_t n;
- const wchar_t *format;
+swprintf (wchar_t *s, size_t n, const wchar_t *format, ...)
{
va_list arg;
int done;
diff -Naur glibc-2.3.2/libio/swscanf.c glibc-2.3.2-new/libio/swscanf.c
--- glibc-2.3.2/libio/swscanf.c 2001-07-07 19:21:03.000000000 +0000
+++ glibc-2.3.2-new/libio/swscanf.c 2003-08-15 19:36:42.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1996,1998,1999,2003 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
@@ -22,9 +22,7 @@
/* Read formatted input from S, according to the format string FORMAT. */
/* VARARGS2 */
int
-swscanf (s, format)
- const wchar_t *s;
- const wchar_t *format;
+swscanf (const wchar_t *s, const wchar_t *format, ...)
{
va_list arg;
int done;
diff -Naur glibc-2.3.2/stdio-common/sscanf.c glibc-2.3.2-new/stdio-common/sscanf.c
--- glibc-2.3.2/stdio-common/sscanf.c 2002-08-10 18:09:08.000000000 +0000
+++ glibc-2.3.2-new/stdio-common/sscanf.c 2003-08-15 19:36:24.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,95,96,98,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1996,1998,2002,2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,9 +27,7 @@
/* Read formatted input from S, according to the format string FORMAT. */
/* VARARGS2 */
int
-sscanf (s, format)
- const char *s;
- const char *format;
+sscanf (const char *s, const char *format, ...)
{
va_list arg;
int done;

View file

@ -0,0 +1,74 @@
diff -ruN glibc-20050110/configure glibc-20050110.patched/configure
--- glibc-20050110/configure 2005-01-05 10:39:53.000000000 +0100
+++ glibc-20050110.patched/configure 2005-01-18 13:33:01.000000000 +0100
@@ -1393,7 +1393,7 @@
ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-if test "`cd $srcdir; /bin/pwd`" = "`/bin/pwd`"; then
+if test "`cd $srcdir; @PWD@`" = "`@PWD@`"; then
{ { echo "$as_me:$LINENO: error: you must configure in a separate build directory" >&5
echo "$as_me: error: you must configure in a separate build directory" >&2;}
{ (exit 1); exit 1; }; }
diff -ruN glibc-20050110/io/ftwtest-sh glibc-20050110.patched/io/ftwtest-sh
--- glibc-20050110/io/ftwtest-sh 2004-02-09 21:12:23.000000000 +0100
+++ glibc-20050110.patched/io/ftwtest-sh 2005-01-18 13:33:15.000000000 +0100
@@ -120,7 +120,7 @@
sort > $testout
# perhaps $tmp involves some symlinks...
-tmpreal=`cd $tmp; /bin/pwd 2>/dev/null || /usr/bin/pwd`
+tmpreal=`cd $tmp; @PWD@ 2>/dev/null || /usr/bin/pwd`
cat <<EOF | cmp $testout - || exit 1
base = "$tmp/", file = "ftwtest.d", flag = FTW_D, cwd = $tmpreal, level = 0
@@ -138,7 +138,7 @@
EOF
rm $testout
-curwd=`/bin/pwd 2>/dev/null || /usr/bin/pwd`
+curwd=`@PWD@ 2>/dev/null || /usr/bin/pwd`
cd "$tmp"
LD_LIBRARY_PATH=$objpfx $ldso $testprogram --chdir ftwtest.d |
sort > $testout
@@ -160,7 +160,7 @@
EOF
rm $testout
-curwd=`/bin/pwd 2>/dev/null || /usr/bin/pwd`
+curwd=`@PWD@ 2>/dev/null || /usr/bin/pwd`
cd "$tmp"
LD_LIBRARY_PATH=$objpfx $ldso $testprogram --chdir ftwtest.d/. |
sort > $testout
@@ -182,7 +182,7 @@
EOF
rm $testout
-curwd=`/bin/pwd 2>/dev/null || /usr/bin/pwd`
+curwd=`@PWD@ 2>/dev/null || /usr/bin/pwd`
cd "$tmp"
LD_LIBRARY_PATH=$objpfx $ldso $testprogram --chdir ftwtest.d/foo/lvl1/link@1 |
sort > $testout
diff -ruN glibc-20050110/scripts/rellns-sh glibc-20050110.patched/scripts/rellns-sh
--- glibc-20050110/scripts/rellns-sh 1999-12-19 00:40:25.000000000 +0100
+++ glibc-20050110.patched/scripts/rellns-sh 2005-01-18 13:35:53.245937423 +0100
@@ -22,13 +22,13 @@
exit 1
fi
-if test -x /bin/pwd; then
- pwd=/bin/pwd
-elif test -x /usr/bin/pwd; then
- pwd=/usr/bin/pwd
-else
+#if test -x /bin/pwd; then
+# pwd=/bin/pwd
+#elif test -x /usr/bin/pwd; then
+# pwd=/usr/bin/pwd
+#else
pwd='pwd'
-fi
+#fi
# Make both paths absolute.
if test -d $1; then

View file

@ -1,67 +0,0 @@
This patch fixes
http://sources.redhat.com/bugzilla/show_bug.cgi?id=356, "localedata:
tests-mbwc/tst_iswalnum segfaults during make check".
===================================================================
RCS file: /cvs/glibc/libc/locale/loadlocale.c,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- libc/locale/loadlocale.c 2003/09/03 07:54:22 1.44
+++ libc/locale/loadlocale.c 2004/09/26 05:48:14 1.45
@@ -1,5 +1,5 @@
/* Functions to read locale data files.
- Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1996-2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -115,15 +115,45 @@
__set_errno (EINVAL);
return NULL;
}
- if (__builtin_expect (_nl_value_types[category][cnt] == word, 0))
+
+ /* Determine the type. There is one special case: the LC_CTYPE
+ category can have more elements than there are in the
+ _nl_value_type_LC_XYZ array. There are all pointers. */
+ switch (category)
+ {
+#define CATTEST(cat) \
+ case LC_##cat: \
+ assert (cnt < (sizeof (_nl_value_type_LC_##cat) \
+ / sizeof (_nl_value_type_LC_##cat[0]))); \
+ break
+ CATTEST (NUMERIC);
+ CATTEST (TIME);
+ CATTEST (COLLATE);
+ CATTEST (MONETARY);
+ CATTEST (MESSAGES);
+ CATTEST (PAPER);
+ CATTEST (NAME);
+ CATTEST (ADDRESS);
+ CATTEST (TELEPHONE);
+ CATTEST (MEASUREMENT);
+ CATTEST (IDENTIFICATION);
+ default:
+ assert (category == LC_CTYPE);
+ break;
+ }
+
+ if ((category == LC_CTYPE
+ && cnt >= (sizeof (_nl_value_type_LC_CTYPE)
+ / sizeof (_nl_value_type_LC_CTYPE[0])))
+ || __builtin_expect (_nl_value_types[category][cnt] != word, 1))
+ newdata->values[cnt].string = newdata->filedata + idx;
+ else
{
if (idx % __alignof__ (u_int32_t) != 0)
goto puntdata;
newdata->values[cnt].word =
*((const u_int32_t *) (newdata->filedata + idx));
}
- else
- newdata->values[cnt].string = newdata->filedata + idx;
}
return newdata;

View file

@ -1,69 +0,0 @@
diff -rc glibc-orig/csu/Makefile glibc-2.3.3/csu/Makefile
*** glibc-orig/csu/Makefile 2003-09-25 22:29:39.000000000 +0200
--- glibc-2.3.3/csu/Makefile 2004-09-17 11:06:56.000000000 +0200
***************
*** 104,110 ****
$(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h
$(compile.S) -g0 $(ASFLAGS-.os) -o $@
! CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions
vpath initfini.c $(full_config_sysdirs)
--- 104,110 ----
$(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
vpath initfini.c $(full_config_sysdirs)
diff -rc glibc-orig/linuxthreads/Makefile glibc-2.3.3/linuxthreads/Makefile
*** glibc-orig/linuxthreads/Makefile 2003-10-02 20:48:48.000000000 +0200
--- glibc-2.3.3/linuxthreads/Makefile 2004-09-17 13:06:20.000000000 +0200
***************
*** 68,74 ****
vpath %.c Examples
tst-cancel-ARGS = "$(objpfx)"
! CFLAGS-tst-cancel.c = -fno-inline -fno-inline-functions
include ../Makeconfig
--- 68,74 ----
vpath %.c Examples
tst-cancel-ARGS = "$(objpfx)"
! CFLAGS-tst-cancel.c = -fno-inline -fno-inline-functions -fno-unit-at-a-time
include ../Makeconfig
***************
*** 101,107 ****
extra-objs += $(crti-objs) $(crtn-objs)
omit-deps += crti crtn
! CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions
endif
librt-tests = ex10 ex11
--- 101,107 ----
extra-objs += $(crti-objs) $(crtn-objs)
omit-deps += crti crtn
! CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions -fno-unit-at-a-time
endif
librt-tests = ex10 ex11
diff -rc glibc-orig/linuxthreads/sysdeps/unix/sysv/linux/x86_64/Makefile glibc-2.3.3/linuxthreads/sysdeps/unix/sysv/linux/x86_64/Makefile
*** glibc-orig/linuxthreads/sysdeps/unix/sysv/linux/x86_64/Makefile 2003-04-12 01:34:02.000000000 +0200
--- glibc-2.3.3/linuxthreads/sysdeps/unix/sysv/linux/x86_64/Makefile 2004-09-17 13:05:43.000000000 +0200
***************
*** 1,3 ****
ifeq ($(subdir),linuxthreads)
! CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions -fno-asynchronous-unwind-tables
endif
--- 1,3 ----
ifeq ($(subdir),linuxthreads)
! CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions -fno-asynchronous-unwind-tables -fno-unit-at-a-time
endif

View file

@ -1,458 +0,0 @@
diff -rc glibc-orig/localedata/SUPPORTED glibc-2.3.3/localedata/SUPPORTED
*** glibc-orig/localedata/SUPPORTED 2003-11-08 18:34:50.000000000 +0100
--- glibc-2.3.3/localedata/SUPPORTED 2004-12-30 19:25:30.000000000 +0100
***************
*** 9,103 ****
--- 9,181 ----
af_ZA/ISO-8859-1 \
am_ET/UTF-8 \
an_ES/ISO-8859-15 \
+ ar_AE.UTF-8/UTF-8 \
ar_AE/ISO-8859-6 \
+ ar_BH.UTF-8/UTF-8 \
ar_BH/ISO-8859-6 \
+ ar_DZ.UTF-8/UTF-8 \
ar_DZ/ISO-8859-6 \
+ ar_EG.UTF-8/UTF-8 \
ar_EG/ISO-8859-6 \
ar_IN/UTF-8 \
+ ar_IQ.UTF-8/UTF-8 \
ar_IQ/ISO-8859-6 \
+ ar_JO.UTF-8/UTF-8 \
ar_JO/ISO-8859-6 \
+ ar_KW.UTF-8/UTF-8 \
ar_KW/ISO-8859-6 \
+ ar_LB.UTF-8/UTF-8 \
ar_LB/ISO-8859-6 \
+ ar_LY.UTF-8/UTF-8 \
ar_LY/ISO-8859-6 \
+ ar_MA.UTF-8/UTF-8 \
ar_MA/ISO-8859-6 \
+ ar_OM.UTF-8/UTF-8 \
ar_OM/ISO-8859-6 \
+ ar_QA.UTF-8/UTF-8 \
ar_QA/ISO-8859-6 \
+ ar_SA.UTF-8/UTF-8 \
ar_SA/ISO-8859-6 \
+ ar_SD.UTF-8/UTF-8 \
ar_SD/ISO-8859-6 \
+ ar_SY.UTF-8/UTF-8 \
ar_SY/ISO-8859-6 \
+ ar_TN.UTF-8/UTF-8 \
ar_TN/ISO-8859-6 \
+ ar_YE.UTF-8/UTF-8 \
ar_YE/ISO-8859-6 \
+ az_AZ.UTF-8/UTF-8 \
+ be_BY.UTF-8/UTF-8 \
be_BY/CP1251 \
+ bg_BG.UTF-8/UTF-8 \
bg_BG/CP1251 \
+ bn_BD/UTF-8 \
+ bn_IN/UTF-8 \
br_FR/ISO-8859-1 \
+ br_FR@euro/ISO-8859-15 \
bs_BA/ISO-8859-2 \
byn_ER/UTF-8 \
+ ca_ES.UTF-8/UTF-8 \
ca_ES/ISO-8859-1 \
ca_ES@euro/ISO-8859-15 \
+ cs_CZ.UTF-8/UTF-8 \
cs_CZ/ISO-8859-2 \
+ cy_GB.UTF-8/UTF-8 \
cy_GB/ISO-8859-14 \
+ da_DK.UTF-8/UTF-8 \
da_DK/ISO-8859-1 \
+ da_DK@euro/ISO-8859-15 \
+ de_AT.UTF-8/UTF-8 \
de_AT/ISO-8859-1 \
de_AT@euro/ISO-8859-15 \
+ de_BE.UTF-8/UTF-8 \
de_BE/ISO-8859-1 \
de_BE@euro/ISO-8859-15 \
+ de_CH.UTF-8/UTF-8 \
de_CH/ISO-8859-1 \
+ de_DE.UTF-8/UTF-8 \
de_DE/ISO-8859-1 \
de_DE@euro/ISO-8859-15 \
+ de_LU.UTF-8/UTF-8 \
de_LU/ISO-8859-1 \
de_LU@euro/ISO-8859-15 \
+ el_GR.UTF-8/UTF-8 \
el_GR/ISO-8859-7 \
+ en_AU.UTF-8/UTF-8 \
en_AU/ISO-8859-1 \
+ en_BW.UTF-8/UTF-8 \
en_BW/ISO-8859-1 \
+ en_CA.UTF-8/UTF-8 \
en_CA/ISO-8859-1 \
+ en_DK.UTF-8/UTF-8 \
en_DK/ISO-8859-1 \
+ en_GB.UTF-8/UTF-8 \
en_GB/ISO-8859-1 \
+ en_HK.UTF-8/UTF-8 \
en_HK/ISO-8859-1 \
+ en_IE.UTF-8/UTF-8 \
en_IE/ISO-8859-1 \
en_IE@euro/ISO-8859-15 \
en_IN/UTF-8 \
+ en_NZ.UTF-8/UTF-8 \
en_NZ/ISO-8859-1 \
+ en_PH.UTF-8/UTF-8 \
en_PH/ISO-8859-1 \
+ en_SG.UTF-8/UTF-8 \
en_SG/ISO-8859-1 \
+ en_US.UTF-8/UTF-8 \
en_US/ISO-8859-1 \
+ en_ZA.UTF-8/UTF-8 \
en_ZA/ISO-8859-1 \
+ en_ZW.UTF-8/UTF-8 \
en_ZW/ISO-8859-1 \
+ es_AR.UTF-8/UTF-8 \
es_AR/ISO-8859-1 \
+ es_BO.UTF-8/UTF-8 \
es_BO/ISO-8859-1 \
+ es_CL.UTF-8/UTF-8 \
es_CL/ISO-8859-1 \
+ es_CO.UTF-8/UTF-8 \
es_CO/ISO-8859-1 \
+ es_CR.UTF-8/UTF-8 \
es_CR/ISO-8859-1 \
+ es_DO.UTF-8/UTF-8 \
es_DO/ISO-8859-1 \
+ es_EC.UTF-8/UTF-8 \
es_EC/ISO-8859-1 \
+ es_ES.UTF-8/UTF-8 \
es_ES/ISO-8859-1 \
es_ES@euro/ISO-8859-15 \
+ es_GT.UTF-8/UTF-8 \
es_GT/ISO-8859-1 \
+ es_HN.UTF-8/UTF-8 \
es_HN/ISO-8859-1 \
+ es_MX.UTF-8/UTF-8 \
es_MX/ISO-8859-1 \
+ es_NI.UTF-8/UTF-8 \
es_NI/ISO-8859-1 \
+ es_PA.UTF-8/UTF-8 \
es_PA/ISO-8859-1 \
+ es_PE.UTF-8/UTF-8 \
es_PE/ISO-8859-1 \
+ es_PR.UTF-8/UTF-8 \
es_PR/ISO-8859-1 \
+ es_PY.UTF-8/UTF-8 \
es_PY/ISO-8859-1 \
+ es_SV.UTF-8/UTF-8 \
es_SV/ISO-8859-1 \
+ es_US.UTF-8/UTF-8 \
es_US/ISO-8859-1 \
+ es_UY.UTF-8/UTF-8 \
es_UY/ISO-8859-1 \
+ es_VE.UTF-8/UTF-8 \
es_VE/ISO-8859-1 \
+ et_EE.UTF-8/UTF-8 \
et_EE/ISO-8859-1 \
+ et_EE.ISO-8859-15/ISO-8859-15 \
+ eu_ES.UTF-8/UTF-8 \
eu_ES/ISO-8859-1 \
eu_ES@euro/ISO-8859-15 \
fa_IR/UTF-8 \
+ fi_FI.UTF-8/UTF-8 \
fi_FI/ISO-8859-1 \
fi_FI@euro/ISO-8859-15 \
+ fo_FO.UTF-8/UTF-8 \
fo_FO/ISO-8859-1 \
+ fr_BE.UTF-8/UTF-8 \
fr_BE/ISO-8859-1 \
fr_BE@euro/ISO-8859-15 \
+ fr_CA.UTF-8/UTF-8 \
fr_CA/ISO-8859-1 \
+ fr_CH.UTF-8/UTF-8 \
fr_CH/ISO-8859-1 \
+ fr_FR.UTF-8/UTF-8 \
fr_FR/ISO-8859-1 \
fr_FR@euro/ISO-8859-15 \
+ fr_LU.UTF-8/UTF-8 \
fr_LU/ISO-8859-1 \
fr_LU@euro/ISO-8859-15 \
+ ga_IE.UTF-8/UTF-8 \
ga_IE/ISO-8859-1 \
ga_IE@euro/ISO-8859-15 \
gd_GB/ISO-8859-15 \
***************
*** 105,199 ****
gez_ER@abegede/UTF-8 \
gez_ET/UTF-8 \
gez_ET@abegede/UTF-8 \
gl_ES/ISO-8859-1 \
gl_ES@euro/ISO-8859-15 \
gu_IN/UTF-8 \
gv_GB/ISO-8859-1 \
he_IL/ISO-8859-8 \
hi_IN/UTF-8 \
hr_HR/ISO-8859-2 \
hu_HU/ISO-8859-2 \
id_ID/ISO-8859-1 \
is_IS/ISO-8859-1 \
it_CH/ISO-8859-1 \
it_IT/ISO-8859-1 \
it_IT@euro/ISO-8859-15 \
iw_IL/ISO-8859-8 \
ja_JP.EUC-JP/EUC-JP \
ka_GE/GEORGIAN-PS \
kl_GL/ISO-8859-1 \
kn_IN/UTF-8 \
ko_KR.EUC-KR/EUC-KR \
ko_KR.UTF-8/UTF-8 \
kw_GB/ISO-8859-1 \
lo_LA/UTF-8 \
lt_LT/ISO-8859-13 \
! lug_UG/ISO-8859-10 \
lv_LV/ISO-8859-13 \
mi_NZ/ISO-8859-13 \
mk_MK/ISO-8859-5 \
ml_IN/UTF-8 \
mn_MN/UTF-8 \
mr_IN/UTF-8 \
ms_MY/ISO-8859-1 \
mt_MT/ISO-8859-3 \
ne_NP/UTF-8 \
nl_BE/ISO-8859-1 \
nl_BE@euro/ISO-8859-15 \
nl_NL/ISO-8859-1 \
nl_NL@euro/ISO-8859-15 \
! nb_NO/ISO-8859-1 \
nn_NO/ISO-8859-1 \
oc_FR/ISO-8859-1 \
om_ET/UTF-8 \
om_KE/ISO-8859-1 \
pa_IN/UTF-8 \
pl_PL/ISO-8859-2 \
pt_BR/ISO-8859-1 \
pt_PT/ISO-8859-1 \
pt_PT@euro/ISO-8859-15 \
ro_RO/ISO-8859-2 \
- ru_RU/ISO-8859-5 \
ru_RU.KOI8-R/KOI8-R \
ru_UA/KOI8-U \
se_NO/UTF-8 \
sid_ET/UTF-8 \
sk_SK/ISO-8859-2 \
sl_SI/ISO-8859-2 \
so_DJ/ISO-8859-1 \
so_ET/UTF-8 \
so_KE/ISO-8859-1 \
so_SO/ISO-8859-1 \
sq_AL/ISO-8859-1 \
! sr_YU/ISO-8859-2 \
! sr_YU@cyrillic/ISO-8859-5 \
st_ZA/ISO-8859-1 \
sv_FI/ISO-8859-1 \
sv_FI@euro/ISO-8859-15 \
sv_SE/ISO-8859-1 \
ta_IN/UTF-8 \
te_IN/UTF-8 \
tg_TJ/KOI8-T \
th_TH/TIS-620 \
ti_ER/UTF-8 \
ti_ET/UTF-8 \
tig_ER/UTF-8 \
tl_PH/ISO-8859-1 \
tr_TR/ISO-8859-9 \
uk_UA/KOI8-U \
ur_PK/UTF-8 \
uz_UZ/ISO-8859-1 \
uz_UZ@cyrillic/UTF-8 \
- vi_VN/UTF-8 \
vi_VN.TCVN/TCVN5712-1 \
wa_BE/ISO-8859-1 \
wa_BE@euro/ISO-8859-15 \
xh_ZA/ISO-8859-1 \
yi_US/CP1255 \
- zh_CN/GB2312 \
zh_CN.GB18030/GB18030 \
zh_CN.GBK/GBK \
zh_HK/BIG5-HKSCS \
! zh_TW/BIG5 \
zh_TW.EUC-TW/EUC-TW \
zu_ZA/ISO-8859-1 \
--- 183,363 ----
gez_ER@abegede/UTF-8 \
gez_ET/UTF-8 \
gez_ET@abegede/UTF-8 \
+ gl_ES.UTF-8/UTF-8 \
gl_ES/ISO-8859-1 \
gl_ES@euro/ISO-8859-15 \
gu_IN/UTF-8 \
+ gv_GB.UTF-8/UTF-8 \
gv_GB/ISO-8859-1 \
+ he_IL.UTF-8/UTF-8 \
he_IL/ISO-8859-8 \
hi_IN/UTF-8 \
+ hr_HR.UTF-8/UTF-8 \
hr_HR/ISO-8859-2 \
+ hu_HU.UTF-8/UTF-8 \
hu_HU/ISO-8859-2 \
+ id_ID.UTF-8/UTF-8 \
id_ID/ISO-8859-1 \
+ is_IS.UTF-8/UTF-8 \
is_IS/ISO-8859-1 \
+ it_CH.UTF-8/UTF-8 \
it_CH/ISO-8859-1 \
+ it_IT.UTF-8/UTF-8 \
it_IT/ISO-8859-1 \
it_IT@euro/ISO-8859-15 \
+ iw_IL.UTF-8/UTF-8 \
iw_IL/ISO-8859-8 \
ja_JP.EUC-JP/EUC-JP \
+ ja_JP.UTF-8/UTF-8 \
ka_GE/GEORGIAN-PS \
+ kk_KZ/PT154 \
+ kl_GL.UTF-8/UTF-8 \
kl_GL/ISO-8859-1 \
kn_IN/UTF-8 \
ko_KR.EUC-KR/EUC-KR \
ko_KR.UTF-8/UTF-8 \
+ kw_GB.UTF-8/UTF-8 \
kw_GB/ISO-8859-1 \
+ lg_UG/ISO-8859-10 \
lo_LA/UTF-8 \
+ lt_LT.UTF-8/UTF-8 \
lt_LT/ISO-8859-13 \
! lv_LV.UTF-8/UTF-8 \
lv_LV/ISO-8859-13 \
mi_NZ/ISO-8859-13 \
+ mk_MK.UTF-8/UTF-8 \
mk_MK/ISO-8859-5 \
ml_IN/UTF-8 \
mn_MN/UTF-8 \
mr_IN/UTF-8 \
+ ms_MY.UTF-8/UTF-8 \
ms_MY/ISO-8859-1 \
+ mt_MT.UTF-8/UTF-8 \
mt_MT/ISO-8859-3 \
+ nb_NO.UTF-8/UTF-8 \
+ nb_NO/ISO-8859-1 \
ne_NP/UTF-8 \
+ nl_BE.UTF-8/UTF-8 \
nl_BE/ISO-8859-1 \
nl_BE@euro/ISO-8859-15 \
+ nl_NL.UTF-8/UTF-8 \
nl_NL/ISO-8859-1 \
nl_NL@euro/ISO-8859-15 \
! nn_NO.UTF-8/UTF-8 \
nn_NO/ISO-8859-1 \
oc_FR/ISO-8859-1 \
om_ET/UTF-8 \
om_KE/ISO-8859-1 \
pa_IN/UTF-8 \
+ pl_PL.UTF-8/UTF-8 \
pl_PL/ISO-8859-2 \
+ pt_BR.UTF-8/UTF-8 \
pt_BR/ISO-8859-1 \
+ pt_PT.UTF-8/UTF-8 \
pt_PT/ISO-8859-1 \
pt_PT@euro/ISO-8859-15 \
+ ro_RO.UTF-8/UTF-8 \
ro_RO/ISO-8859-2 \
ru_RU.KOI8-R/KOI8-R \
+ ru_RU.UTF-8/UTF-8 \
+ ru_RU/ISO-8859-5 \
+ ru_UA.UTF-8/UTF-8 \
ru_UA/KOI8-U \
se_NO/UTF-8 \
sid_ET/UTF-8 \
+ sk_SK.UTF-8/UTF-8 \
sk_SK/ISO-8859-2 \
+ sl_SI.UTF-8/UTF-8 \
sl_SI/ISO-8859-2 \
so_DJ/ISO-8859-1 \
so_ET/UTF-8 \
so_KE/ISO-8859-1 \
so_SO/ISO-8859-1 \
+ sq_AL.UTF-8/UTF-8 \
sq_AL/ISO-8859-1 \
! st_ZA.UTF-8/UTF-8 \
st_ZA/ISO-8859-1 \
+ sv_FI.UTF-8/UTF-8 \
sv_FI/ISO-8859-1 \
sv_FI@euro/ISO-8859-15 \
+ sv_SE.UTF-8/UTF-8 \
sv_SE/ISO-8859-1 \
ta_IN/UTF-8 \
te_IN/UTF-8 \
tg_TJ/KOI8-T \
+ th_TH.UTF-8/UTF-8 \
th_TH/TIS-620 \
ti_ER/UTF-8 \
ti_ET/UTF-8 \
tig_ER/UTF-8 \
tl_PH/ISO-8859-1 \
+ tr_TR.UTF-8/UTF-8 \
tr_TR/ISO-8859-9 \
+ tt_RU.UTF-8/UTF-8 \
+ uk_UA.UTF-8/UTF-8 \
uk_UA/KOI8-U \
ur_PK/UTF-8 \
uz_UZ/ISO-8859-1 \
uz_UZ@cyrillic/UTF-8 \
vi_VN.TCVN/TCVN5712-1 \
+ vi_VN/UTF-8 \
wa_BE/ISO-8859-1 \
wa_BE@euro/ISO-8859-15 \
+ wa_BE.UTF-8/UTF-8 \
+ xh_ZA.UTF-8/UTF-8 \
xh_ZA/ISO-8859-1 \
yi_US/CP1255 \
zh_CN.GB18030/GB18030 \
zh_CN.GBK/GBK \
+ zh_CN.UTF-8/UTF-8 \
+ zh_CN/GB2312 \
+ zh_HK.UTF-8/UTF-8 \
zh_HK/BIG5-HKSCS \
! zh_SG.GBK/GBK \
! zh_SG/GB2312 \
zh_TW.EUC-TW/EUC-TW \
+ zh_TW.UTF-8/UTF-8 \
+ zh_TW/BIG5 \
+ zu_ZA.UTF-8/UTF-8 \
zu_ZA/ISO-8859-1 \
+ aa_DJ.UTF-8/UTF-8 \
+ aa_ER.UTF-8/UTF-8 \
+ aa_ET.UTF-8/UTF-8 \
+ af_ZA.UTF-8/UTF-8 \
+ am_ET.UTF-8/UTF-8 \
+ an_ES.UTF-8/UTF-8 \
+ ar_IN.UTF-8/UTF-8 \
+ bn_BD.UTF-8/UTF-8 \
+ bn_IN.UTF-8/UTF-8 \
+ br_FR.UTF-8/UTF-8 \
+ bs_BA.UTF-8/UTF-8 \
+ byn_ER.UTF-8/UTF-8 \
+ en_BE.UTF-8/UTF-8 \
+ en_BE/ISO-8859-1 \
+ en_BE@euro/ISO-8859-15 \
+ en_GB.ISO-8859-15/ISO-8859-15 \
+ en_US.ISO-8859-15/ISO-8859-15 \
+ en_IN.UTF-8/UTF-8 \
+ fa_IR.UTF-8/UTF-8 \
+ hi_IN.UTF-8/UTF-8 \
+ ja_JP.SJIS/SHIFT_JIS \
+ ml_IN.UTF-8/UTF-8 \
+ mn_MN.UTF-8/UTF-8 \
+ mr_IN.UTF-8/UTF-8 \
+ ne_NP.UTF-8/UTF-8 \
+ om_ET.UTF-8/UTF-8 \
+ pa_IN.UTF-8/UTF-8 \
+ se_NO.UTF-8/UTF-8 \
+ sh_YU.UTF-8/UTF-8 \
+ sh_YU/ISO-8859-2 \
+ sid_ET.UTF-8/UTF-8 \
+ so_ET.UTF-8/UTF-8 \
+ sv_SE.ISO-8859-15/ISO-8859-15 \
+ ta_IN.UTF-8/UTF-8 \
+ te_IN.UTF-8/UTF-8 \
+ ti_ER.UTF-8/UTF-8 \
+ ti_ET.UTF-8/UTF-8 \
+ tig_ER.UTF-8/UTF-8 \
+ ur_PK.UTF-8/UTF-8 \
+ vi_VN.UTF-8/UTF-8 \
+ zh_SG.UTF-8/UTF-8 \

View file

@ -11,7 +11,7 @@ buildPhase=buildPhase
installPhase() {
mkdir $out
mkdir $out/include
cp -prvd include/linux include/asm-i386 $out/include
cp -prvd include/linux include/asm-i386 include/asm-generic $out/include
cd $out/include
ln -s asm-i386 asm
echo -n > $out/include/linux/autoconf.h

View file

@ -3,10 +3,10 @@
assert stdenv.system == "i686-linux";
stdenv.mkDerivation {
name = "linux-headers-2.4.25-i386";
name = "linux-headers-2.6.9-i386";
builder = ./builder.sh;
src = fetchurl {
url = http://catamaran.labs.cs.uu.nl/dist/tarballs/linux-2.4.25.tar.bz2;
md5 = "5fc8e9f43fa44ac29ddf9a9980af57d8";
url = ftp://ftp.nluug.nl/pub/os/Linux/system/kernel/v2.6/linux-2.6.9.tar.bz2;
md5 = "e921200f074ca97184e150ef5a4af825";
};
}

View file

@ -0,0 +1,10 @@
{stdenv, fetchurl, bison, flex}:
stdenv.mkDerivation {
name = "modutils-2.4.25";
src = fetchurl {
url = ftp://ftp.nl.kernel.org/pub/linux/utils/kernel/modutils/v2.4/modutils-2.4.25.tar.bz2;
md5 = "2c0cca3ef6330a187c6ef4fe41ecaa4d";
};
buildInputs = [bison flex];
}

View file

@ -6,6 +6,7 @@ cd net-tools-*
cp $config config.h
sed "s^/usr/share/man^/share^" < man/Makefile > tmp
mv tmp man/Makefile
patch -p1 < $patch
make
mkdir $out
make BASEDIR=$out install

View file

@ -8,4 +8,5 @@ stdenv.mkDerivation {
md5 = "888774accab40217dde927e21979c165";
};
config = ./config.h;
patch = ./net-tools-labels.patch;
}

View file

@ -0,0 +1,38 @@
diff -ruN net-tools-1.60/hostname.c net-tools-1.60-new/hostname.c
--- net-tools-1.60/hostname.c 2001-04-08 19:04:23.000000000 +0200
+++ net-tools-1.60-new/hostname.c 2004-12-17 14:48:15.624174382 +0100
@@ -98,6 +98,7 @@
fprintf(stderr, _("%s: name too long\n"), program_name);
break;
default:
+ break;
}
exit(1);
};
@@ -117,6 +118,7 @@
fprintf(stderr, _("%s: name too long\n"), program_name);
break;
default:
+ break;
}
exit(1);
};
@@ -174,6 +176,7 @@
printf("%s\n", hp->h_name);
break;
default:
+ break;
}
}
diff -ruN net-tools-1.60/lib/inet_sr.c net-tools-1.60-new/lib/inet_sr.c
--- net-tools-1.60/lib/inet_sr.c 2000-02-20 22:46:45.000000000 +0100
+++ net-tools-1.60-new/lib/inet_sr.c 2004-12-17 14:37:15.416349441 +0100
@@ -105,6 +105,7 @@
case 2:
isnet = 0; break;
default:
+ break;
}
/* Fill in the other fields. */

View file

@ -2,4 +2,4 @@
tar zxvf $src
mkdir $out
cp -a curl-7.12.0/* $out
cp -a curl-7.12.2/* $out

View file

@ -1,7 +1,7 @@
{stdenv}:
stdenv.mkDerivation {
name = "curl-static-7.12.0";
name = "curl-static-7.12.2";
builder = ./builder.sh;
src = ./curl-7.12.0-static.tar.gz;
src = ./curl-7.12.2-static.tar.gz;
}

View file

@ -1,22 +1,151 @@
{stdenv, glibc, pkgs, genericStdenv, gccWrapper}:
rec {
genericStdenv {
name = "stdenv-nix-linux-static";
preHook = ./prehook.sh;
initialPath = (import ./path.nix) {pkgs = (import ./pkgs.nix) {stdenv = stdenv;};};
inherit stdenv;
gcc = gccWrapper {
#name = pkgs.gcc.name;
nativeTools = false;
nativeGlibc = false;
inherit (pkgs) binutils;
gcc = (import ./gcc-static) {stdenv = stdenv;};
inherit stdenv glibc;
shell = pkgs.bash ~ /bin/sh;
curl = derivation {
name = "curl";
builder = ./bash-static/bash;
tar = ./gnutar-static/bin/tar;
gunzip = ./gzip-static/bin/gunzip;
curl = ./curl-static/curl-7.12.2-static.tar.gz;
cp = ./tools/cp;
system = "i686-linux";
args = [ ./scripts/curl-unpack ];
};
shell = pkgs.bash ~ /bin/sh;
download =
{ url, pkgname, postProcess ? [], addToPath ? []
, extra ? null, extra2 ? null
, extra3 ? null, extra4? null, patchelf ? null}:
derivation {
name = pkgname;
builder = ./bash-static/bash;
tar = ./gnutar-static/bin/tar;
gunzip = ./gzip-static/bin/gunzip;
inherit curl url;
cp = ./tools/cp;
system = "i686-linux";
args = [ ./scripts/download-script ];
inherit postProcess addToPath extra extra2 extra3 extra4 patchelf;
};
coreutils = download {
url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/coreutils-5.0-static.tar.gz;
pkgname = "coreutils";
};
patchelf = ./patchelf-static/bin/patchelf;
bzip2 = download {
url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/bzip2-1.0.2-static.tar.gz;
pkgname = "bzip2";
};
gnumake = download {
url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/make-3.80-static.tar.gz;
pkgname = "gnumake";
};
binutils = download {
url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/binutils-2.15-static.tar.gz;
pkgname = "binutils";
};
diffutils = download {
url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/diffutils-2.8.1-static.tar.gz;
pkgname = "diffutils";
};
gnused = download {
url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/sed-4.0.7-static.tar.gz;
pkgname = "gnused";
};
gnugrep = download {
url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/grep-2.5.1-static.tar.gz;
pkgname = "gnugrep";
};
gcc = (download {url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/gcc-3.4.2-static.tar.gz;
pkgname = "gcc";
postProcess = [./scripts/fix-outpath.sh];
addToPath = [coreutils findutils gnused];
}) // { langC = true; langCC = false; langF77 = false; };
gawk = download {
url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/gawk-3.1.3-static.tar.gz;
pkgname = "gawk";
};
patch = download {
url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/patch-2.5.4-static.tar.gz;
pkgname = "patch";
};
findutils = download {
url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/findutils-4.1.20-static.tar.gz;
pkgname = "findutils";
};
linuxHeaders = download {
url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/linux-headers-2.4.25-i386.tar.gz;
pkgname = "linux-headers";
};
glibc = download {
url = http://losser.st-lab.cs.uu.nl/~armijn/.nix/glibc-2.3.3-static-2.tar.gz;
pkgname = "glibc";
patchelf = ./patchelf-static/bin/patchelf;
postProcess = [./scripts/add-symlink.sh /* ./scripts/fix-outpath.sh */];
addToPath = [coreutils findutils gnused];
extra = linuxHeaders;
};
stdenvInitial = let {
body = derivation {
name = "stdenv-linux-static-initial";
system = "i686-linux";
builder = ./bash-static/bash;
args = ./scripts/builder-stdenv-initial.sh;
inherit coreutils gnused;
} // {
mkDerivation = attrs: derivation (attrs // {
builder = ./bash-static/bash;
args = ["-e" attrs.builder];
stdenv = body;
system = body.system;
});
shell = ./bash-static/bash;
};
};
stdenvBootFun = {glibc, gcc, binutils, staticGlibc}: (import ../generic) {
name = "stdenv-linux-static-boot";
param1 = if staticGlibc then "static" else "dynamic";
preHook = ./prehook.sh;
stdenv = stdenvInitial;
shell = ./bash-static/bash;
gcc = (import ../../build-support/gcc-wrapper) {
stdenv = stdenvInitial;
nativeTools = false;
nativeGlibc = false;
inherit gcc glibc binutils;
};
initialPath = [
coreutils
./gnutar-static
./gzip-static
bzip2
gnused
gnugrep
gawk
gnumake
findutils
diffutils
patch
./patchelf-static
];
};
}

Binary file not shown.

View file

@ -1 +1,8 @@
export NIX_ENFORCE_PURITY=1
if test "$param1" = "static"; then
export NIX_CFLAGS_LINK="-static"
export NIX_LDFLAGS_BEFORE="-static"
fi
havePatchELF=1

View file

@ -0,0 +1,13 @@
chmod u+w $out/include
(cd $out/include && ln -s $extra/include/* .) || exit 1
cd $out
find . -not -type l -exec $extra2/bin/chmod u+w {} \;
find . -exec $patchelf --interpreter $out/lib/ld-linux.so.2 --shrink-rpath {} \; || true
$extra2/bin/rm -rf bin
$extra2/bin/cat ./lib/libc.so | $extra4/bin/sed "s|/nix/store/[a-z0-9]*-glibc|$out|g" > ./lib/libc.so
$extra2/bin/cat ./lib/libpthread.so | $extra4/bin/sed "s|/nix/store/[a-z0-9]*-glibc|$out|g" > ./lib/libpthread.so
rm $out/lib/*.so*

View file

@ -0,0 +1,10 @@
set -x
set -e
PATH=$coreutils/bin
mkdir $out
cat > $out/setup <<EOF
PATH=$coreutils/bin:$gnused/bin
EOF

View file

@ -0,0 +1,8 @@
set -x
set -e
echo $curl
$gunzip -d < $curl | $tar xvf -
$cp -prvd * $out

View file

@ -0,0 +1,18 @@
set -e
echo "using curl executable $curl"
$curl/bin/curl "$url" > .tmp
$gunzip -d < .tmp | $tar xvf -
$cp -prd * $out
if test -n "$postProcess"; then
for i in $addToPath; do
export PATH=$PATH:$i/bin
done
for i in $postProcess; do
source $i
done
fi

Binary file not shown.

View file

@ -869,6 +869,10 @@ rec {
inherit fetchurl stdenv;
};
modutils = (import ../os-specific/linux/modutils) {
inherit fetchurl stdenv bison flex;
};
shadowutils = (import ../os-specific/linux/shadow) {
inherit fetchurl stdenv;
};

View file

@ -28,41 +28,46 @@
inherit genericStdenv gccWrapper;
};
stdenvNativePkgsFun = bootstrap: allPackages {
stdenvNativePkgs = allPackages {
stdenv = stdenvNative;
bootCurl = null;
noSysDirs = false;
gccWithCC = !bootstrap;
gccWithProfiling = !bootstrap;
};
stdenvNativePkgs = stdenvNativePkgsFun false;
# The Nix build environment.
stdenvNixFun = bootstrap: (import ../stdenv/nix) {
stdenvNix = (import ../stdenv/nix) {
stdenv = stdenvNative;
pkgs = stdenvNativePkgsFun bootstrap;
pkgs = stdenvNativePkgs;
inherit genericStdenv gccWrapper;
};
stdenvNix = stdenvNixFun false;
stdenvNixPkgsFun = bootstrap: allPackages {
stdenv = stdenvNixFun bootstrap;
bootCurl = (stdenvNativePkgsFun bootstrap).curl;
stdenvNixPkgs = allPackages {
stdenv = stdenvNix;
bootCurl = stdenvNativePkgs.curl;
noSysDirs = false;
};
stdenvNixPkgs = stdenvNixPkgs false;
# The Linux build environment is a fully bootstrapped Nix
# environment, that is, it should contain no external references.
# 0) ...
stdenvLinuxBoot0 = (import ../stdenv/nix-linux-static).stdenvBootFun {
# Use the statically linked, downloaded glibc/gcc/binutils.
inherit (import ../stdenv/nix-linux-static) glibc gcc binutils;
staticGlibc = true;
};
stdenvLinuxBoot0Pkgs = allPackages {
stdenv = stdenvLinuxBoot0;
bootCurl = (import ../stdenv/nix-linux-static).curl;
noSysDirs = true;
};
# 1) Build glibc in the Nix build environment. The result is
# pure.
stdenvLinuxGlibc = (stdenvNixPkgsFun true).glibc;
stdenvLinuxGlibc = stdenvLinuxBoot0Pkgs.glibc;
# 2) Construct a stdenv consisting of the Nix build environment, but
# with a gcc-wrapper that causes linking against the glibc from
@ -70,11 +75,12 @@
# native system directories (e.g., `/usr/lib'), it doesn't
# prevent impurity in the things it builds (e.g., through
# `-lncurses').
stdenvLinuxBoot1 = (import ../stdenv/nix-linux) {
stdenv = stdenvNative;
pkgs = stdenvNativePkgsFun true;
stdenvLinuxBoot1 = (import ../stdenv/nix-linux-static).stdenvBootFun {
# Use the statically linked gcc/binutils, but the glibc we just
# built.
glibc = stdenvLinuxGlibc;
inherit genericStdenv gccWrapper;
staticGlibc = false;
inherit (import ../stdenv/nix-linux-static) gcc binutils;
};
# 3) Now we can build packages that will link against the Nix
@ -84,36 +90,33 @@
# *doesn't* search in `/lib' etc. So these programs won't work.
stdenvLinuxBoot1Pkgs = allPackages {
stdenv = stdenvLinuxBoot1;
bootCurl = (stdenvNativePkgsFun true).curl;
noSysDirs = true;
gccWithCC = false;
gccWithProfiling = false;
bootCurl = (import ../stdenv/nix-linux-static).curl;
};
# 4) Therefore we build a new standard environment which is the same
# as the one in step 2, but with a gcc and binutils from step 3
# merged in. Since these are pure (they don't search native
# system directories), things built by this stdenv should be pure.
stdenvLinuxBoot2 = (import ../stdenv/nix-linux) {
stdenv = stdenvLinuxBoot1;
pkgs = (stdenvNativePkgsFun true) // {
inherit (stdenvLinuxBoot1Pkgs) gcc binutils;
};
stdenvLinuxBoot2 = (import ../stdenv/nix-linux-static).stdenvBootFun {
# Use the glibc/gcc/binutils we just built (but all other tools are still downloaded).
glibc = stdenvLinuxGlibc;
inherit genericStdenv gccWrapper;
staticGlibc = false;
inherit (stdenvLinuxBoot1Pkgs) gcc binutils;
};
# 5) So these packages should be pure.
stdenvLinuxBoot2Pkgs = allPackages {
stdenv = stdenvLinuxBoot2;
bootCurl = (stdenvNativePkgsFun true).curl;
bootCurl = (import ../stdenv/nix-linux-static).curl;
};
# 6) Finally we can construct the Nix build environment from the
# packages from step 5.
stdenvLinux = (import ../stdenv/nix-linux) {
stdenv = stdenvLinuxBoot2;
pkgs = stdenvLinuxBoot2Pkgs;
pkgs = stdenvLinuxBoot2Pkgs // {
inherit (stdenvLinuxBoot1Pkgs) gcc binutils;
};
glibc = stdenvLinuxGlibc;
inherit genericStdenv gccWrapper;
};
@ -148,7 +151,7 @@
# (essentially it's just the native environment).
stdenvDarwin = (import ../stdenv/darwin) {
stdenv = stdenvInitial;
genericStdenv = import ../stdenv/generic;
genericStdenv = import ../stdenv/generic-branch;
inherit gccWrapper;
};
@ -157,5 +160,11 @@
bootCurl = null;
noSysDirs = false;
};
stdenvTestPkgs = allPackages {
stdenv = (import ../stdenv/nix-linux-static).stdenvInitial;
bootCurl = (import ../stdenv/nix-linux-static).curl;
noSysDirs = true;
};
}

View file

@ -0,0 +1,21 @@
diff -ruN curl-7.12.2/configure curl-7.12.2-new/configure
--- curl-7.12.2/configure 2004-10-18 00:22:10.000000000 +0200
+++ curl-7.12.2-new/configure 2004-12-09 13:58:57.670095179 +0100
@@ -6835,11 +6835,12 @@
if $ac_preproc_ok; then
:
else
- { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
+ #{ { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+#See \`config.log' for more details." >&5
+#echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+#See \`config.log' for more details." >&2;}
+ #{ (exit 1); exit 1; }; }
+ :
fi
ac_ext=cc

View file

@ -7,5 +7,6 @@ stdenv.mkDerivation {
md5 = "47db6619b849600ba2771074f00da517";
};
buildInputs = [zlib];
patches = [./configure-cxxcpp.patch];
configureFlags = "--without-ssl";
}

View file

@ -1,9 +1,11 @@
. $stdenv/setup
configureFlags="--with-privsep-path=$out/empty"
installPhase() {
make install-nokeys
}
installPhase=installPhase
genericBuild
rm $out/etc/ssh_host_dsa_key $out/etc/ssh_host_dsa_key.pub $out/etc/ssh_host_key $out/etc/ssh_host_key.pub $out/etc/ssh_host_rsa_key $out/etc/ssh_host_rsa_key.pub
chmod +r $out/libexec/ssh-keysign