Browse Source

Alejandro Mery:


			
			
				rocklinux
			
			
		
Alejandro Mery 22 years ago
parent
commit
fd60229cf6
19 changed files with 3103 additions and 0 deletions
  1. +3
    -0
      package/mnemoc/uclibc/clean_arch.config
  2. +20
    -0
      package/mnemoc/uclibc/config-400.in
  3. +14
    -0
      package/mnemoc/uclibc/dont_validate_kernelsource_on_stage0.diff
  4. +59
    -0
      package/mnemoc/uclibc/functions.in
  5. +10
    -0
      package/mnemoc/uclibc/make_locale_after_headers.diff
  6. +45
    -0
      package/mnemoc/uclibc/parse-config-9
  7. +5
    -0
      package/mnemoc/uclibc/parse-config-fixarch
  8. +624
    -0
      package/mnemoc/uclibc/patches/binutils-10-uclibc_arch_target.patch
  9. +32
    -0
      package/mnemoc/uclibc/patches/binutils-20-workaroud-dont_build_modules.patch.disabled
  10. +35
    -0
      package/mnemoc/uclibc/patches/bison-30-warn_redefined.patch
  11. +11
    -0
      package/mnemoc/uclibc/patches/coreutils-20-libm.patch
  12. +1819
    -0
      package/mnemoc/uclibc/patches/gcc33-10-uclibc_arch_target.patch
  13. +63
    -0
      package/mnemoc/uclibc/patches/gcc33-12-uclibc-ppc_corrections.patch
  14. +154
    -0
      package/mnemoc/uclibc/patches/gdb-10-uclibc_arch_target.patch
  15. +39
    -0
      package/mnemoc/uclibc/patches/util-linux-30-hotfix.patch
  16. +107
    -0
      package/mnemoc/uclibc/uclibc.conf
  17. +48
    -0
      package/mnemoc/uclibc/uclibc.desc
  18. +9
    -0
      scripts/Build-Tools
  19. +6
    -0
      scripts/parse-config

+ 3
- 0
package/mnemoc/uclibc/clean_arch.config

@ -0,0 +1,3 @@
O TARGET_*
O CONFIG_*
O ARCH_*_ENDIAN

+ 20
- 0
package/mnemoc/uclibc/config-400.in

@ -0,0 +1,20 @@
if pkgcheck uclibc; then
menu_begin MENU_PKG_UCLIBC 'uClibc (the microcontroller C Library) Options'
if [ -z "$ROCKCFG_PKG_UCLIBC_USEIT" ]; then
if pkgcheck uclibc X; then
ROCKCFG_PKG_UCLIBC_USEIT=1
else
ROCKCFG_PKG_UCLIBC_USEIT=0
fi
fi
bool 'Use uClibc instead of fat glibc' \
ROCKCFG_PKG_UCLIBC_USEIT 0
if [ "$ROCKCFG_PKG_UCLIBC_USEIT" == "1" ]; then
pkgenable uclibc
pkgdisable 'glibc2[23]'
fi
menu_end
fi

+ 14
- 0
package/mnemoc/uclibc/dont_validate_kernelsource_on_stage0.diff

@ -0,0 +1,14 @@
--- ./Makefile.orig 2004-02-07 10:30:44.000000000 -0300
+++ ./Makefile 2004-02-07 10:32:53.000000000 -0300
@@ -121,11 +121,6 @@
@./extra/config/conf -o extra/Configs/Config.in
headers: include/bits/uClibc_config.h
-ifeq ($(strip $(UCLIBC_HAS_MMU)),y)
- @set -x; ./extra/scripts/fix_includes.sh -k $(KERNEL_SOURCE) -t $(TARGET_ARCH)
-else
- @set -x; ./extra/scripts/fix_includes.sh -k $(KERNEL_SOURCE) -t $(TARGET_ARCH) -n
-endif
@cd include/bits; \
set -e; \
for i in `ls ../../libc/sysdeps/linux/common/bits/*.h` ; do \

+ 59
- 0
package/mnemoc/uclibc/functions.in

@ -0,0 +1,59 @@
# $conffiles is a list of patters of the form
# ^[XO-] <pattern> [<value>]
# X means enable, O disable, and - removes it
# pattern can use '*' as a wildcard for [^ #]
# optionaly can set a value different that y
apply_conffiles() {
local f x;
rm -f /tmp/$$.sed
for f in $conffiles; do if [ -f "$f" ]; then
while read a c v; do
x="${c//\\*/[^ #]*}"
x="^\(# \)\?\($x\)[= ].*\$"
# value
if [ -z "$v" ]; then
v='y'
fi
case "$a" in
X) echo "apply_conffiles: rule $c=$v."
echo "s,$x,\2=$v,g" >> /tmp/$$.sed
;;
O) echo "apply_conffiles: rule unset $c."
echo "s,$x,# \2 is not set,g" >> /tmp/$$.sed
;;
-) echo "apply_conffiles: rule remove $c."
echo "s,$x,,g" >> /tmp/$$.sed
;;
*)
echo "apply_conffiles: bad rule $a $c $v"
;;
esac
done < <( cat $f );
fi ; done
sed -f /tmp/$$.sed .config > $1
rm /tmp/$$.sed
}
# get default config, and filter considering <n>
# levels, because new options can appear and other disappear
auto_config() {
local j=1 n="${1:-1}"
# defconfig
eval "$MAKE defconfig $makeopt"
cp -v .config .config.$j
j=2 ; for (( i=1 ; i<n ; i++, j++ )) {
apply_conffiles .config.$j
cp -v .config.$j .config
eval "$MAKE oldconfig $makeopt"
(( j++ )) ; cp -v .config .config.$j
}
# second round
apply_conffiles .config.$j
cp -v .config.$j .config
}

+ 10
- 0
package/mnemoc/uclibc/make_locale_after_headers.diff

@ -0,0 +1,10 @@
--- ./Makefile.orig 2004-02-08 00:35:28.000000000 -0300
+++ ./Makefile 2004-02-08 00:36:20.000000000 -0300
@@ -156,6 +156,7 @@
fi
$(MAKE) -C libc/sysdeps/linux/common headers
$(MAKE) -C libc/sysdeps/linux/$(TARGET_ARCH) headers
+ $(MAKE) -C extra/locale
# Command used to download source code
WGET:=wget --passive-ftp

+ 45
- 0
package/mnemoc/uclibc/parse-config-9

@ -0,0 +1,45 @@
if [ "$ROCKCFG_PKG_UCLIBC_USEIT" == "1" ]; then
pkg_uclibc_dir=$base/package/mnemoc/uclibc
# the most tipical fix is to config.sub
#
uclibc_fix_configsub() {
local x; for x; do
echo "uclibc_fix_configsub: adding uclibc_arch_target support to $x"
cp -f $x $x.orig
sed -e 's,\([-]\?linux\)-gnu\*,\1-gnu\* | \1-uclibc\*,g' $x.orig > $x
diff -u $x.orig $x || true
done
}
uclibc_auto_fix_configsub() {
local f
for f in . ./config ./support; do
if [ -e $f/config.sub ]; then
uclibc_fix_configsub $f/config.sub
fi
done
}
# fix tipical locations
hook_add postpatch 5 'uclibc_auto_fix_configsub'
# and some others
case "$pkg" in
gcc33) hook_add postpatch 6 'uclibc_fix_configsub boehm-gc/config.sub' ;;
esac
# same package translations to look for patches
case "$pkg" in
linux24*)
pkg_uclibc_patchdir=$pkg_uclibc_dir/patches/linux24 ;;
linux26*)
pkg_uclibc_patchdir=$pkg_uclibc_dir/patches/linux26 ;;
*)
pkg_uclibc_patchdir=$pkg_uclibc_dir/patches/$pkg ;;
esac
# patching
if [ "`echo $pkg_uclibc_patchdir-*.patch`" != "$pkg_uclibc_patchdir-*.patch" ]; then
echo_status "uClibc: appending patches..."
var_append patchfiles ' ' "`echo $pkg_uclibc_patchdir-*.patch`"
fi
fi

+ 5
- 0
package/mnemoc/uclibc/parse-config-fixarch

@ -0,0 +1,5 @@
if [ "$ROCKCFG_PKG_UCLIBC_USEIT" == "1" -a "${arch_target%gnu}" != "$arch_target" ]; then
arch_target=${arch_target%gnu}uclibc
fi
#TODO: detect arch_build libc... can be uClibc instead of 'gnu' :-)

+ 624
- 0
package/mnemoc/uclibc/patches/binutils-10-uclibc_arch_target.patch

@ -0,0 +1,624 @@
diff -udNr binutils-2.14.90.0.7.orig/bfd/config.bfd binutils-2.14.90.0.7/bfd/config.bfd
--- binutils-2.14.90.0.7.orig/bfd/config.bfd 2004-02-07 10:54:27.000000000 -0300
+++ binutils-2.14.90.0.7/bfd/config.bfd 2004-02-07 11:30:19.000000000 -0300
@@ -121,7 +121,7 @@
targ_defvec=ecoffalpha_little_vec
targ_selvecs=bfd_elf64_alpha_vec
;;
- alpha*-*-linux-gnu* | alpha*-*-elf*)
+ alpha*-*-linux-gnu* | alpha*-*-linux-uclibc* | alpha*-*-elf*)
targ_defvec=bfd_elf64_alpha_vec
targ_selvecs=ecoffalpha_little_vec
;;
@@ -131,7 +131,8 @@
alpha*-*-*)
targ_defvec=ecoffalpha_little_vec
;;
- ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
+ ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | \
+ ia64*-*-linux-uclibc* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
targ_defvec=bfd_elf64_ia64_little_vec
targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
;;
@@ -214,7 +215,7 @@
targ_defvec=bfd_elf32_littlearm_vec
targ_selvecs=bfd_elf32_bigarm_vec
;;
- armeb-*-elf | arm*b-*-linux-gnu*)
+ armeb-*-elf | arm*b-*-linux-gnu* | arm*b-*-linux-uclibc*)
targ_defvec=bfd_elf32_bigarm_vec
targ_selvecs=bfd_elf32_littlearm_vec
;;
@@ -222,7 +223,8 @@
targ_defvec=bfd_elf32_littlearm_vec
targ_selvecs=bfd_elf32_bigarm_vec
;;
- arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | arm*-*-uclinux* | arm-*-kfreebsd*-gnu)
+ arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-linux-uclibc* | \
+ arm*-*-conix* | arm*-*-uclinux* | arm-*-kfreebsd*-gnu)
targ_defvec=bfd_elf32_littlearm_vec
targ_selvecs=bfd_elf32_bigarm_vec
;;
@@ -355,7 +357,7 @@
;;
#ifdef BFD64
- hppa*64*-*-linux-gnu*)
+ hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*)
targ_defvec=bfd_elf64_hppa_linux_vec
targ_selvecs=bfd_elf64_hppa_vec
;;
@@ -366,7 +368,7 @@
;;
#endif
- hppa*-*-linux-gnu* | hppa*-*-netbsd*)
+ hppa*-*-linux-gnu* | hppa*-*-linux-uclibc* | hppa*-*-netbsd*)
targ_defvec=bfd_elf32_hppa_linux_vec
targ_selvecs=bfd_elf32_hppa_vec
;;
@@ -488,7 +490,7 @@
targ_selvecs=bfd_elf32_i386_vec
targ_underscore=yes
;;
- i[3-7]86-*-linux-gnu*)
+ i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
targ_defvec=bfd_elf32_i386_vec
targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec"
targ64_selvecs=bfd_elf64_x86_64_vec
@@ -502,7 +504,7 @@
targ_defvec=bfd_elf64_x86_64_vec
targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec"
;;
- x86_64-*-linux-gnu*)
+ x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*)
targ_defvec=bfd_elf64_x86_64_vec
targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec"
;;
@@ -662,7 +664,7 @@
targ_selvecs=bfd_elf32_m68k_vec
targ_underscore=yes
;;
- m68*-*-linux-gnu*)
+ m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
targ_defvec=bfd_elf32_m68k_vec
targ_selvecs=m68klinux_vec
;;
@@ -929,7 +931,8 @@
;;
#endif
powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
- powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
+ powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-linux-uclibc* | \
+ powerpc-*-rtems* | \
powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*)
targ_defvec=bfd_elf32_powerpc_vec
targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
@@ -961,8 +964,8 @@
targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
;;
powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
- powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\
- powerpcle-*-rtems*)
+ powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-linux-uclibc* |\
+ powerpcle-*-vxworks* | powerpcle-*-rtems*)
targ_defvec=bfd_elf32_powerpcle_vec
targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
@@ -1110,7 +1113,7 @@
targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
targ_underscore=yes
;;
- sparc-*-linux-gnu*)
+ sparc-*-linux-gnu* | sparc-*-linux-uclibc*)
targ_defvec=bfd_elf32_sparc_vec
targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec"
;;
@@ -1157,7 +1160,7 @@
targ_defvec=sunos_big_vec
targ_underscore=yes
;;
- sparc64-*-linux-gnu*)
+ sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*)
targ_defvec=bfd_elf64_sparc_vec
targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
;;
diff -udNr binutils-2.14.90.0.7.orig/bfd/configure binutils-2.14.90.0.7/bfd/configure
--- binutils-2.14.90.0.7.orig/bfd/configure 2004-02-07 10:54:27.000000000 -0300
+++ binutils-2.14.90.0.7/bfd/configure 2004-02-07 11:19:58.000000000 -0300
@@ -1699,6 +1699,11 @@
lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
;;
+linux-uclibc*)
+ lt_cv_deplibs_check_method=pass_all
+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
+ ;;
+
netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
@@ -5278,7 +5283,7 @@
alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
COREFILE=''
;;
- alpha*-*-linux-gnu*)
+ alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*)
COREFILE=trad-core.lo
TRAD_HEADER='"hosts/alphalinux.h"'
;;
@@ -5338,7 +5343,7 @@
COREFILE=trad-core.lo
TRAD_HEADER='"hosts/i386mach3.h"'
;;
- i[3-7]86-*-linux-gnu*)
+ i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
COREFILE=trad-core.lo
TRAD_HEADER='"hosts/i386linux.h"'
;;
@@ -5388,7 +5393,7 @@
COREFILE=trad-core.lo
TRAD_HEADER='"hosts/hp300bsd.h"'
;;
- m68*-*-linux-gnu*)
+ m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
COREFILE=trad-core.lo
TRAD_HEADER='"hosts/m68klinux.h"'
;;
diff -udNr binutils-2.14.90.0.7.orig/bfd/configure.in binutils-2.14.90.0.7/bfd/configure.in
--- binutils-2.14.90.0.7.orig/bfd/configure.in 2004-02-07 10:54:27.000000000 -0300
+++ binutils-2.14.90.0.7/bfd/configure.in 2004-02-07 11:19:55.000000000 -0300
@@ -178,7 +178,7 @@
alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
COREFILE=''
;;
- alpha*-*-linux-gnu*)
+ alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*)
COREFILE=trad-core.lo
TRAD_HEADER='"hosts/alphalinux.h"'
;;
@@ -259,7 +259,7 @@
TRAD_HEADER='"hosts/i386mach3.h"'
;;
changequote(,)dnl
- i[3-7]86-*-linux-gnu*)
+ i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
changequote([,])dnl
COREFILE=trad-core.lo
TRAD_HEADER='"hosts/i386linux.h"'
@@ -312,7 +312,7 @@
COREFILE=trad-core.lo
TRAD_HEADER='"hosts/hp300bsd.h"'
;;
- m68*-*-linux-gnu*)
+ m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
COREFILE=trad-core.lo
TRAD_HEADER='"hosts/m68klinux.h"'
;;
diff -udNr binutils-2.14.90.0.7.orig/configure binutils-2.14.90.0.7/configure
--- binutils-2.14.90.0.7.orig/configure 2004-02-07 10:54:30.000000000 -0300
+++ binutils-2.14.90.0.7/configure 2004-02-07 10:58:38.000000000 -0300
@@ -1276,6 +1276,18 @@
i[3456789]86-*-freebsd* | i[3456789]86-*-kfreebsd*-gnu)
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
+ i[3456789]86-*-linux-uclibc)
+ # This section makes it possible to build newlib natively on linux.
+ # If we are using a cross compiler then don't configure newlib.
+ if test x${is_cross_compiler} != xno ; then
+ noconfigdirs="$noconfigdirs target-newlib"
+ fi
+ noconfigdirs="$noconfigdirs target-libgloss"
+ # If we are not using a cross compiler, do configure newlib.
+ # Note however, that newlib will only be configured in this situation
+ # if the --with-newlib option has been given, because otherwise
+ # 'target-newlib' will appear in skipdirs.
+ ;;
i[3456789]86-*-linux*)
# The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
# not build java stuff by default.
diff -udNr binutils-2.14.90.0.7.orig/configure.in binutils-2.14.90.0.7/configure.in
--- binutils-2.14.90.0.7.orig/configure.in 2004-02-07 10:54:30.000000000 -0300
+++ binutils-2.14.90.0.7/configure.in 2004-02-07 10:58:41.000000000 -0300
@@ -515,6 +515,19 @@
i[[3456789]]86-*-freebsd* | i[[3456789]]86-*-kfreebsd*-gnu)
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
+ i[3456789]86-*-linux-uclibc)
+ # This section makes it possible to build newlib natively on linux.
+ # If we are using a cross compiler then don't configure newlib.
+ if test x${is_cross_compiler} != xno ; then
+ noconfigdirs="$noconfigdirs target-newlib"
+ fi
+ noconfigdirs="$noconfigdirs target-libgloss"
+ build_modules=
+ # If we are not using a cross compiler, do configure newlib.
+ # Note however, that newlib will only be configured in this situation
+ # if the --with-newlib option has been given, because otherwise
+ # 'target-newlib' will appear in skipdirs.
+ ;;
i[[3456789]]86-*-linux*)
# The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
# not build java stuff by default.
diff -udNr binutils-2.14.90.0.7.orig/demangler/configure binutils-2.14.90.0.7/demangler/configure
--- binutils-2.14.90.0.7.orig/demangler/configure 2004-02-07 10:54:30.000000000 -0300
+++ binutils-2.14.90.0.7/demangler/configure 2004-02-07 11:19:22.000000000 -0300
@@ -1380,6 +1380,11 @@
lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
;;
+linux-uclibc*)
+ lt_cv_deplibs_check_method=pass_all
+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
+ ;;
+
netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
diff -udNr binutils-2.14.90.0.7.orig/gas/configure binutils-2.14.90.0.7/gas/configure
--- binutils-2.14.90.0.7.orig/gas/configure 2004-02-07 10:54:27.000000000 -0300
+++ binutils-2.14.90.0.7/gas/configure 2004-02-07 11:12:45.000000000 -0300
@@ -3215,6 +3215,11 @@
lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
;;
+linux-uclibc*)
+ lt_cv_deplibs_check_method=pass_all
+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
+ ;;
+
netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
@@ -4028,6 +4033,7 @@
alpha*-*-osf*) fmt=ecoff ;;
alpha*-*-linuxecoff*) fmt=ecoff ;;
alpha*-*-linux-gnu*) fmt=elf em=linux ;;
+ alpha*-*-linux-uclibc*) fmt=elf em=linux ;;
alpha*-*-netbsd*) fmt=elf em=nbsd ;;
alpha*-*-openbsd*) fmt=elf em=obsd ;;
@@ -4044,6 +4050,7 @@
arm*-*-conix*) fmt=elf ;;
arm-*-linux*aout*) fmt=aout em=linux ;;
arm*-*-linux-gnu*) fmt=elf em=linux ;;
+ arm*-*-linux-uclibc*) fmt=elf em=linux ;;
arm*-*-uclinux*) fmt=elf em=linux ;;
arm-*-netbsdelf*) fmt=elf em=nbsd ;;
arm-*-*n*bsd*) fmt=aout em=nbsd ;;
@@ -4058,6 +4065,7 @@
avr-*-*) fmt=elf ;;
cris-*-linux-gnu*) fmt=multi bfd_gas=yes em=linux ;;
+ cris-*-linux-uclibc*) fmt=multi bfd_gas=yes em=linux ;;
cris-*-*) fmt=multi bfd_gas=yes ;;
d10v-*-*) fmt=elf ;;
@@ -4114,7 +4122,9 @@
i386-*-linux*oldld) fmt=aout em=linux ;;
i386-*-linux*coff*) fmt=coff em=linux ;;
i386-*-linux-gnu*) fmt=elf em=linux ;;
+ i386-*-linux-uclibc*) fmt=elf em=linux ;;
x86_64-*-linux-gnu*) fmt=elf em=linux ;;
+ x86_64-*-linux-uclibc*) fmt=elf em=linux ;;
i386-*-lynxos*) fmt=coff em=lynx ;;
i386-*-sysv[45]*) fmt=elf ;;
i386-*-solaris*) fmt=elf ;;
@@ -4175,6 +4185,7 @@
ia64-*-elf*) fmt=elf ;;
ia64-*-aix*) fmt=elf em=ia64aix ;;
ia64-*-linux-gnu*) fmt=elf em=linux ;;
+ ia64-*-linux-uclibc*) fmt=elf em=linux ;;
ia64-*-hpux*) fmt=elf em=hpux ;;
ia64-*-netbsd*) fmt=elf em=nbsd ;;
@@ -4201,6 +4212,7 @@
m68k-*-hpux*) fmt=hp300 em=hp300 ;;
m68k-*-linux*aout*) fmt=aout em=linux ;;
m68k-*-linux-gnu*) fmt=elf em=linux ;;
+ m68k-*-linux-uclibc*) fmt=elf em=linux ;;
m68k-*-gnu*) fmt=elf ;;
m68k-*-lynxos*) fmt=coff em=lynx ;;
m68k-*-netbsdelf*) fmt=elf em=nbsd ;;
@@ -4257,6 +4269,7 @@
ppc-*-beos*) fmt=coff ;;
ppc-*-*n*bsd* | ppc-*-elf*) fmt=elf ;;
ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;;
+ ppc-*-linux-uclibc* | \
ppc-*-linux-gnu*) fmt=elf em=linux
case "$endian" in
big) ;;
@@ -4286,7 +4299,9 @@
ppc-*-kaos*) fmt=elf ;;
s390x-*-linux-gnu*) fmt=elf em=linux ;;
+ s390x-*-linux-uclibc*) fmt=elf em=linux ;;
s390-*-linux-gnu*) fmt=elf em=linux ;;
+ s390-*-linux-uclibc*) fmt=elf em=linux ;;
sh*-*-linux*) fmt=elf em=linux
case ${cpu} in
@@ -4319,6 +4334,7 @@
sparc-*-coff) fmt=coff ;;
sparc-*-linux*aout*) fmt=aout em=linux ;;
sparc-*-linux-gnu*) fmt=elf em=linux ;;
+ sparc-*-linux-uclibc*) fmt=elf em=linux ;;
sparc-*-lynxos*) fmt=coff em=lynx ;;
sparc-fujitsu-none) fmt=aout ;;
sparc-*-elf) fmt=elf ;;
diff -udNr binutils-2.14.90.0.7.orig/gas/configure.in binutils-2.14.90.0.7/gas/configure.in
--- binutils-2.14.90.0.7.orig/gas/configure.in 2004-02-07 10:54:27.000000000 -0300
+++ binutils-2.14.90.0.7/gas/configure.in 2004-02-07 11:16:53.000000000 -0300
@@ -192,6 +192,7 @@
alpha*-*-osf*) fmt=ecoff ;;
alpha*-*-linuxecoff*) fmt=ecoff ;;
alpha*-*-linux-gnu*) fmt=elf em=linux ;;
+ alpha*-*-linux-uclibc*) fmt=elf em=linux ;;
alpha*-*-netbsd*) fmt=elf em=nbsd ;;
alpha*-*-openbsd*) fmt=elf em=obsd ;;
@@ -208,6 +209,7 @@
arm*-*-conix*) fmt=elf ;;
arm-*-linux*aout*) fmt=aout em=linux ;;
arm*-*-linux-gnu*) fmt=elf em=linux ;;
+ arm*-*-linux-uclibc*) fmt=elf em=linux ;;
arm*-*-uclinux*) fmt=elf em=linux ;;
arm-*-netbsdelf*) fmt=elf em=nbsd ;;
arm-*-*n*bsd*) fmt=aout em=nbsd ;;
@@ -222,6 +224,7 @@
avr-*-*) fmt=elf ;;
cris-*-linux-gnu*) fmt=multi bfd_gas=yes em=linux ;;
+ cris-*-linux-uclibc*) fmt=multi bfd_gas=yes em=linux ;;
cris-*-*) fmt=multi bfd_gas=yes ;;
d10v-*-*) fmt=elf ;;
@@ -278,7 +281,9 @@
i386-*-linux*oldld) fmt=aout em=linux ;;
i386-*-linux*coff*) fmt=coff em=linux ;;
i386-*-linux-gnu*) fmt=elf em=linux ;;
+ i386-*-linux-uclibc*) fmt=elf em=linux ;;
x86_64-*-linux-gnu*) fmt=elf em=linux ;;
+ x86_64-*-linux-uclibc*) fmt=elf em=linux ;;
i386-*-lynxos*) fmt=coff em=lynx ;;
changequote(,)dnl
i386-*-sysv[45]*) fmt=elf ;;
@@ -332,6 +337,7 @@
ia64-*-elf*) fmt=elf ;;
ia64-*-aix*) fmt=elf em=ia64aix ;;
ia64-*-linux-gnu*) fmt=elf em=linux ;;
+ ia64-*-linux-uclibc*) fmt=elf em=linux ;;
ia64-*-hpux*) fmt=elf em=hpux ;;
ia64-*-netbsd*) fmt=elf em=nbsd ;;
@@ -358,6 +364,7 @@
m68k-*-hpux*) fmt=hp300 em=hp300 ;;
m68k-*-linux*aout*) fmt=aout em=linux ;;
m68k-*-linux-gnu*) fmt=elf em=linux ;;
+ m68k-*-linux-uclibc*) fmt=elf em=linux ;;
m68k-*-gnu*) fmt=elf ;;
m68k-*-lynxos*) fmt=coff em=lynx ;;
m68k-*-netbsdelf*) fmt=elf em=nbsd ;;
@@ -412,6 +419,7 @@
ppc-*-beos*) fmt=coff ;;
ppc-*-*n*bsd* | ppc-*-elf*) fmt=elf ;;
ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;;
+ ppc-*-linux-uclibc* | \
ppc-*-linux-gnu*) fmt=elf em=linux
case "$endian" in
big) ;;
@@ -434,7 +442,9 @@
ppc-*-kaos*) fmt=elf ;;
s390x-*-linux-gnu*) fmt=elf em=linux ;;
+ s390x-*-linux-uclibc*) fmt=elf em=linux ;;
s390-*-linux-gnu*) fmt=elf em=linux ;;
+ s390-*-linux-uclibc*) fmt=elf em=linux ;;
sh*-*-linux*) fmt=elf em=linux
case ${cpu} in
@@ -467,6 +477,7 @@
sparc-*-coff) fmt=coff ;;
sparc-*-linux*aout*) fmt=aout em=linux ;;
sparc-*-linux-gnu*) fmt=elf em=linux ;;
+ sparc-*-linux-uclibc*) fmt=elf em=linux ;;
sparc-*-lynxos*) fmt=coff em=lynx ;;
sparc-fujitsu-none) fmt=aout ;;
sparc-*-elf) fmt=elf ;;
diff -udNr binutils-2.14.90.0.7.orig/ld/configure binutils-2.14.90.0.7/ld/configure
--- binutils-2.14.90.0.7.orig/ld/configure 2004-02-07 10:54:26.000000000 -0300
+++ binutils-2.14.90.0.7/ld/configure 2004-02-07 11:02:23.000000000 -0300
@@ -1578,6 +1578,11 @@
lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
;;
+linux-uclibc*)
+ lt_cv_deplibs_check_method=pass_all
+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
+ ;;
+
netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
diff -udNr binutils-2.14.90.0.7.orig/ld/configure.tgt binutils-2.14.90.0.7/ld/configure.tgt
--- binutils-2.14.90.0.7.orig/ld/configure.tgt 2004-02-07 10:54:26.000000000 -0300
+++ binutils-2.14.90.0.7/ld/configure.tgt 2004-02-07 11:02:19.000000000 -0300
@@ -30,6 +30,7 @@
targ_extra_emuls="criself crislinux"
targ_extra_libpath=$targ_extra_emuls ;;
cris-*-linux-gnu*) targ_emul=crislinux ;;
+cris-*-linux-uclibc*) targ_emul=crislinux ;;
cris-*-*) targ_emul=criself
targ_extra_emuls="crisaout crislinux"
targ_extra_libpath=$targ_extra_emuls ;;
@@ -59,14 +60,16 @@
tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/aout//'`
tdir_sun4=sparc-sun-sunos4
;;
-sparc64-*-linux-gnu*) targ_emul=elf64_sparc
+sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*) \
+ targ_emul=elf64_sparc
targ_extra_emuls="elf32_sparc sparclinux sun4"
targ_extra_libpath=elf32_sparc
tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
tdir_sparclinux=${tdir_elf32_sparc}aout
tdir_sun4=sparc-sun-sunos4
;;
-sparc*-*-linux-gnu*) targ_emul=elf32_sparc
+sparc*-*-linux-gnu* | sparc*-*-linux-gnu*) \
+ targ_emul=elf32_sparc
targ_extra_emuls="sparclinux elf64_sparc sun4"
targ_extra_libpath=elf64_sparc
tdir_sparclinux=${targ_alias}aout
@@ -125,7 +128,7 @@
m68*-ericsson-ose) targ_emul=sun3 ;;
m68*-apple-aux*) targ_emul=m68kaux ;;
*-tandem-none) targ_emul=st2000 ;;
-i370-*-elf* | i370-*-linux-gnu*) targ_emul=elf32i370 ;;
+i370-*-elf* | i370-*-linux-gnu* | i370-*-linux-uclibc*) targ_emul=elf32i370 ;;
i[3-7]86-*-nto-qnx*) targ_emul=i386nto ;;
i[3-7]86-*-vsta) targ_emul=vsta ;;
i[3-7]86-go32-rtems*) targ_emul=i386go32 ;;
@@ -149,14 +152,16 @@
tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'`
;;
i[3-7]86-*-linux*oldld) targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
-i[3-7]86-*-linux-gnu*) targ_emul=elf_i386
+i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) \
+ targ_emul=elf_i386
targ_extra_emuls=i386linux
if test x${want64} = xtrue; then
targ_extra_emuls="$targ_extra_emuls elf_x86_64"
fi
tdir_i386linux=${targ_alias}aout
;;
-x86_64-*-linux-gnu*) targ_emul=elf_x86_64
+x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*) \
+ targ_emul=elf_x86_64
targ_extra_emuls="elf_i386 i386linux"
targ_extra_libpath=elf_i386
tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
@@ -256,10 +261,13 @@
arm9e-*-elf) targ_emul=armelf ;;
arm-*-oabi) targ_emul=armelf_oabi ;;
arm*b-*-linux-gnu*) targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;;
+arm*b-*-linux-uclibc*) targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;;
arm*-*-linux-gnu*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
+arm*-*-linux-uclibc*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
arm*-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
arm*-*-conix*) targ_emul=armelf ;;
-thumb-*-linux-gnu* | thumb-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
+thumb-*-linux-gnu* | thumb-*-linux-uclibc* | thumb-*-uclinux*) \
+ targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
strongarm-*-coff) targ_emul=armcoff ;;
strongarm-*-elf) targ_emul=armelf ;;
strongarm-*-kaos*) targ_emul=armelf ;;
@@ -360,7 +368,8 @@
targ_extra_emuls=m68kelf
tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'`
;;
-m68k-*-linux-gnu*) targ_emul=m68kelf
+m68k-*-linux-gnu* | m68k-*-linux-uclibc*) \
+ targ_emul=m68kelf
targ_extra_emuls=m68klinux
tdir_m68klinux=`echo ${targ_alias} | sed -e 's/linux/linuxaout/'`
;;
@@ -376,9 +385,9 @@
m68*-*-psos*) targ_emul=m68kpsos ;;
m68*-*-rtemscoff*) targ_emul=m68kcoff ;;
m68*-*-rtems*) targ_emul=m68kelf ;;
-hppa*64*-*-linux-gnu*) targ_emul=hppa64linux ;;
+hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*) targ_emul=hppa64linux ;;
hppa*64*-*) targ_emul=elf64hppa ;;
-hppa*-*-linux-gnu*) targ_emul=hppalinux ;;
+hppa*-*-linux-gnu* | hppa*-*-linux-uclibc*) targ_emul=hppalinux ;;
hppa*-*-*elf*) targ_emul=hppaelf ;;
hppa*-*-lites*) targ_emul=hppaelf ;;
hppa*-*-netbsd*) targ_emul=hppanbsd ;;
@@ -422,16 +431,20 @@
mips*-*-rtems*) targ_emul=elf32ebmip ;;
mips*el-*-vxworks*) targ_emul=elf32elmip ;;
mips*-*-vxworks*) targ_emul=elf32ebmip ;;
-mips64*el-*-linux-gnu*) targ_emul=elf32ltsmipn32
+mips64*el-*-linux-gnu* | mips64*el-*-linux-uclibc*) \
+ targ_emul=elf32ltsmipn32
targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
;;
-mips64*-*-linux-gnu*) targ_emul=elf32btsmipn32
+mips64*-*-linux-gnu* | mips64*-*-linux-uclibc*) \
+ targ_emul=elf32btsmipn32
targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
;;
-mips*el-*-linux-gnu*) targ_emul=elf32ltsmip
+mips*el-*-linux-gnu* | mips*el-*-linux-uclibc*) \
+ targ_emul=elf32ltsmip
targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
;;
-mips*-*-linux-gnu*) targ_emul=elf32btsmip
+mips*-*-linux-gnu* | mips*-*-linux-uclibc*) \
+ targ_emul=elf32btsmip
targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
;;
mips*-*-lnews*) targ_emul=mipslnews ;;
@@ -454,6 +467,10 @@
alpha*-*-linux-gnu*) targ_emul=elf64alpha targ_extra_emuls=alpha
tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'`
;;
+alpha*-*-linux-uclibc*) targ_emul=elf64alpha targ_extra_emuls=alpha
+ # The following needs to be checked...
+ tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'`
+ ;;
alpha*-*-osf*) targ_emul=alpha ;;
alpha*-*-gnu*) targ_emul=elf64alpha ;;
alpha*-*-netware*) targ_emul=alpha ;;
diff -udNr binutils-2.14.90.0.7.orig/libtool.m4 binutils-2.14.90.0.7/libtool.m4
--- binutils-2.14.90.0.7.orig/libtool.m4 2004-02-07 10:54:30.000000000 -0300
+++ binutils-2.14.90.0.7/libtool.m4 2004-02-07 11:00:54.000000000 -0300
@@ -645,6 +645,11 @@
lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
;;
+linux-uclibc*)
+ lt_cv_deplibs_check_method=pass_all
+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
+ ;;
+
netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
[lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
diff -udNr binutils-2.14.90.0.7.orig/ltconfig binutils-2.14.90.0.7/ltconfig
--- binutils-2.14.90.0.7.orig/ltconfig 2004-02-07 10:54:30.000000000 -0300
+++ binutils-2.14.90.0.7/ltconfig 2004-02-07 11:01:00.000000000 -0300
@@ -603,6 +603,7 @@
# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
case $host_os in
linux-gnu*) ;;
+linux-uclibc*) ;;
linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
esac
@@ -1259,6 +1260,24 @@
dynamic_linker='GNU/Linux ld.so'
;;
+linux-uclibc*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ # Note: copied from linux-gnu, and may not be appropriate.
+ hardcode_into_libs=yes
+ # Assume using the uClibc dynamic linker.
+ dynamic_linker="uClibc ld.so"
+ ;;
+
netbsd*)
need_lib_prefix=no
need_version=no

+ 32
- 0
package/mnemoc/uclibc/patches/binutils-20-workaroud-dont_build_modules.patch.disabled

@ -0,0 +1,32 @@
Get around an odd build failure.
diff -urN binutils-2.14.90.0.6/configure binutils-2.14.90.0.6-uClibc/configure
--- binutils-2.14.90.0.6/configure 2003-08-21 10:29:32.000000000 -0500
+++ binutils-2.14.90.0.6-uClibc/configure 2004-01-07 05:43:40.000000000 -0600
@@ -906,6 +906,11 @@
fi
+case "$target" in
+ *-*-*-uclibc*)
+ build_modules=
+ ;;
+esac
################################################################################
srcname="gnu development package"
diff -urN binutils-2.14.90.0.6/configure.in binutils-2.14.90.0.6-uClibc/configure.in
--- binutils-2.14.90.0.6/configure.in 2003-08-21 10:29:30.000000000 -0500
+++ binutils-2.14.90.0.6-uClibc/configure.in 2004-01-07 05:44:02.000000000 -0600
@@ -178,6 +178,11 @@
fi
+case "$target" in
+ *-*-*-uclibc*)
+ build_modules=
+ ;;
+esac
################################################################################
srcname="gnu development package"

+ 35
- 0
package/mnemoc/uclibc/patches/bison-30-warn_redefined.patch

@ -0,0 +1,35 @@
warn symbol is part of libc.o, then i have to look for a
different name
Alejandro
--- ./src/complain.c.orig 2004-02-11 19:14:26.000000000 -0300
+++ ./src/complain.c 2004-02-11 19:16:19.000000000 -0300
@@ -87,7 +87,7 @@
}
void
-warn (const char *message, ...)
+warn_this (const char *message, ...)
{
va_list args;
--- ./src/complain.h.orig 2004-02-11 19:14:33.000000000 -0300
+++ ./src/complain.h 2004-02-11 19:16:32.000000000 -0300
@@ -27,7 +27,7 @@
/* Informative messages, but we proceed. */
-void warn (char const *format, ...)
+void warn_this (char const *format, ...)
__attribute__ ((__format__ (__printf__, 1, 2)));
void warn_at (location loc, char const *format, ...)
--- ./src/files.c.orig 2004-02-11 19:14:43.000000000 -0300
+++ ./src/files.c 2004-02-11 19:16:41.000000000 -0300
@@ -333,5 +333,5 @@
for (j = 0; j < names; j++)
for (i = 0; i < j; i++)
if (strcmp (name[i], name[j]) == 0)
- warn (_("conflicting outputs to file %s"), quote (name[i]));
+ warn_this (_("conflicting outputs to file %s"), quote (name[i]));
}

+ 11
- 0
package/mnemoc/uclibc/patches/coreutils-20-libm.patch

@ -0,0 +1,11 @@
--- ./src/Makefile.in.orig 2004-02-07 23:01:51.000000000 -0300
+++ ./src/Makefile.in 2004-02-07 23:06:44.000000000 -0300
@@ -209,7 +209,7 @@
printf_LDADD = $(LDADD) @POW_LIB@ @LIBICONV@
# If necessary, add -lm to resolve use of floor, rint, modf.
-seq_LDADD = $(LDADD) @SEQ_LIBM@
+seq_LDADD = $(LDADD) @POW_LIB@ @SEQ_LIBM@
# If necessary, add -lm to resolve the `pow' reference in lib/strtod.c
# or for the fesetround reference in programs using nanosec.c.

+ 1819
- 0
package/mnemoc/uclibc/patches/gcc33-10-uclibc_arch_target.patch
File diff suppressed because it is too large
View File


+ 63
- 0
package/mnemoc/uclibc/patches/gcc33-12-uclibc-ppc_corrections.patch

@ -0,0 +1,63 @@
Use the patch by Carl Miller <chaz@energoncube.net> for powerpc, with
some minor modifications. Changed *os_uclibc to *os_linux_uclibc since
at some point we might support other platforms.
Index: gcc/config/rs6000/linux.h
===================================================================
RCS file: /home/cvs/tools/gcc-3.3.2/gcc/config/rs6000/linux.h,v
retrieving revision 1.1.1.1
diff -d -u -r1.1.1.1 linux.h
--- gcc-3.3.2/gcc/config/rs6000/linux.h 4 Dec 2003 01:19:31 -0000 1.1.1.1
+++ gcc-3.3.2/gcc/config/rs6000/linux.h 4 Dec 2003 23:18:01 -0000
@@ -64,7 +64,11 @@
#define LINK_START_DEFAULT_SPEC "%(link_start_linux)"
#undef LINK_OS_DEFAULT_SPEC
+#ifdef USE_UCLIBC
+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)"
+#else
#define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
+#endif
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (PowerPC GNU/Linux)");
Index: gcc/config/rs6000/sysv4.h
===================================================================
RCS file: /home/cvs/tools/gcc-3.3.2/gcc/config/rs6000/sysv4.h,v
retrieving revision 1.1.1.1
diff -d -u -r1.1.1.1 sysv4.h
--- gcc-3.3.2/gcc/config/rs6000/sysv4.h 4 Dec 2003 01:19:31 -0000 1.1.1.1
+++ gcc-3.3.2/gcc/config/rs6000/sysv4.h 4 Dec 2003 23:18:18 -0000
@@ -953,9 +953,11 @@
%{mcall-linux: %(link_os_linux) } \
%{mcall-gnu: %(link_os_gnu) } \
%{mcall-netbsd: %(link_os_netbsd) } \
+%{mcall-uclibc: %(link_os_linux_uclibc) } \
%{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mwindiss: \
%{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: \
- %{!mcall-netbsd: %(link_os_default) }}}}}}}}}"
+ %{!mcall-netbsd: %{!mcall-uclibc: \
+ %(link_os_default) }}}}}}}}}}"
#define LINK_OS_DEFAULT_SPEC ""
@@ -1292,6 +1294,12 @@
#define LINK_OS_WINDISS_SPEC ""
+/* uClibc support for Linux. */
+
+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}"
+
/* Define any extra SPECS that the compiler needs to generate. */
/* Override rs6000.h definition. */
#undef SUBTARGET_EXTRA_SPECS
@@ -1357,6 +1365,7 @@
{ "link_os_netbsd", LINK_OS_NETBSD_SPEC }, \
{ "link_os_vxworks", LINK_OS_VXWORKS_SPEC }, \
{ "link_os_windiss", LINK_OS_WINDISS_SPEC }, \
+ { "link_os_linux_uclibc", LINK_OS_LINUX_UCLIBC_SPEC }, \
{ "link_os_default", LINK_OS_DEFAULT_SPEC }, \
{ "cc1_endian_big", CC1_ENDIAN_BIG_SPEC }, \
{ "cc1_endian_little", CC1_ENDIAN_LITTLE_SPEC }, \

+ 154
- 0
package/mnemoc/uclibc/patches/gdb-10-uclibc_arch_target.patch

@ -0,0 +1,154 @@
diff -urN gdb-5.3/bfd/config.bfd gdb-5.3-new/bfd/config.bfd
--- gdb-5.3/bfd/config.bfd 2002-09-05 15:34:35.000000000 -0500
+++ gdb-5.3-new/bfd/config.bfd 2004-01-11 06:25:31.000000000 -0600
@@ -83,7 +83,7 @@
targ_defvec=ecoffalpha_little_vec
targ_selvecs=bfd_elf64_alpha_vec
;;
- alpha*-*-linux-gnu* | alpha*-*-elf*)
+ alpha*-*-linux-gnu* | alpha*-*-linux-uclibc* | alpha*-*-elf*)
targ_defvec=bfd_elf64_alpha_vec
targ_selvecs=ecoffalpha_little_vec
;;
@@ -97,7 +97,8 @@
targ_defvec=bfd_elf64_ia64_aix_little_vec
targ_selvecs="bfd_elf64_ia64_aix_big_vec bfd_efi_app_ia64_vec"
;;
- ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf*)
+ ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | \
+ ia64*-*-linux-uclibc* | ia64*-*-elf*)
targ_defvec=bfd_elf64_ia64_little_vec
targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
;;
@@ -176,11 +177,12 @@
targ_defvec=bfd_elf32_littlearm_vec
targ_selvecs=bfd_elf32_bigarm_vec
;;
- armeb-*-elf | arm*b-*-linux-gnu*)
+ armeb-*-elf | arm*b-*-linux-gnu* | arm*b-*-linux-uclibc*)
targ_defvec=bfd_elf32_bigarm_vec
targ_selvecs=bfd_elf32_littlearm_vec
;;
- arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | arm*-*-uclinux*)
+ arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-linux-uclibc* | \
+ arm*-*-conix* | arm*-*-uclinux*)
targ_defvec=bfd_elf32_littlearm_vec
targ_selvecs=bfd_elf32_bigarm_vec
;;
@@ -313,7 +315,7 @@
;;
#ifdef BFD64
- hppa*64*-*-linux-gnu*)
+ hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*)
targ_defvec=bfd_elf64_hppa_linux_vec
targ_selvecs=bfd_elf64_hppa_vec
;;
@@ -324,7 +326,7 @@
;;
#endif
- hppa*-*-linux-gnu*)
+ hppa*-*-linux-gnu* | hppa*-*-linux-uclibc*)
targ_defvec=bfd_elf32_hppa_linux_vec
targ_selvecs=bfd_elf32_hppa_vec
;;
@@ -424,7 +426,7 @@
targ_selvecs=bfd_elf32_i386_vec
targ_underscore=yes
;;
- i[3456]86-*-linux-gnu*)
+ i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
targ_defvec=bfd_elf32_i386_vec
targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec"
targ64_selvecs=bfd_elf64_x86_64_vec
@@ -438,7 +440,7 @@
targ_defvec=bfd_elf64_x86_64_vec
targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec"
;;
- x86_64-*-linux-gnu*)
+ x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*)
targ_defvec=bfd_elf64_x86_64_vec
targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec"
;;
@@ -589,7 +591,7 @@
targ_defvec=hp300hpux_vec
targ_underscore=yes
;;
- m68*-*-linux*aout*)
+ m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
targ_defvec=m68klinux_vec
targ_selvecs=bfd_elf32_m68k_vec
targ_underscore=yes
@@ -865,7 +867,8 @@
;;
#endif
powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
- powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
+ powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-linux-uclibc* | \
+ powerpc-*-rtems* | \
powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*)
targ_defvec=bfd_elf32_powerpc_vec
targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
@@ -887,8 +890,8 @@
targ_selvecs="rs6000coff_vec bfd_elf32_powerpcqnx_vec ppcboot_vec"
;;
powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
- powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\
- powerpcle-*-rtems*)
+ powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-linux-uclibc* |\
+ powerpcle-*-vxworks* | powerpcle-*-rtems*)
targ_defvec=bfd_elf32_powerpcle_vec
targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
@@ -1038,7 +1041,7 @@
targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
targ_underscore=yes
;;
- sparc-*-linux-gnu*)
+ sparc-*-linux-gnu* | sparc-*-linux-uclibc*)
targ_defvec=bfd_elf32_sparc_vec
targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec"
;;
@@ -1081,7 +1084,7 @@
targ_defvec=sunos_big_vec
targ_underscore=yes
;;
- sparc64-*-linux-gnu*)
+ sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*)
targ_defvec=bfd_elf64_sparc_vec
targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
;;
diff -urN gdb-5.3/bfd/configure gdb-5.3-new/bfd/configure
--- gdb-5.3/bfd/configure 2002-08-28 05:38:44.000000000 -0500
+++ gdb-5.3-new/bfd/configure 2004-01-11 06:27:15.000000000 -0600
@@ -1677,6 +1677,11 @@
lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
;;
+linux-uclibc*)
+ lt_cv_deplibs_check_method=pass_all
+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
+ ;;
+
netbsd*)
if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
@@ -5067,7 +5072,7 @@
alpha*-*-freebsd*)
COREFILE=''
;;
- alpha*-*-linux-gnu*)
+ alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*)
COREFILE=trad-core.lo
TRAD_HEADER='"hosts/alphalinux.h"'
;;
@@ -5126,7 +5131,7 @@
COREFILE=trad-core.lo
TRAD_HEADER='"hosts/i386mach3.h"'
;;
- i[3456]86-*-linux-gnu*)
+ i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
COREFILE=trad-core.lo
TRAD_HEADER='"hosts/i386linux.h"'
;;

+ 39
- 0
package/mnemoc/uclibc/patches/util-linux-30-hotfix.patch

@ -0,0 +1,39 @@
--- util-linux-2.11z/mount/fstab.c.orig 2003-12-03 15:28:22.000000000 -0700
+++ util-linux-2.11z/mount/fstab.c 2003-12-03 15:28:41.000000000 -0700
@@ -342,7 +342,7 @@
/* Ensure that the lock is released if we are interrupted. */
static void
handler (int sig) {
- die (EX_USER, "%s", sys_siglist[sig]);
+ die (EX_USER, "%s", strsignal(sig));
}
static void
--- /dev/null 2003-09-07 01:55:59.000000000 -0600
+++ util-linux-2.11z/mount/swapargs.h 2003-12-03 15:44:50.000000000 -0700
@@ -0,0 +1,3 @@
+#define SWAPON_HAS_TWO_ARGS
+#include <asm/page.h>
+#include <sys/swap.h>
--- util-linux-2.11z/mount/swap.configure.orig 2003-12-03 15:43:24.000000000 -0700
+++ util-linux-2.11z/mount/swap.configure 2003-12-03 15:45:33.000000000 -0700
@@ -1,6 +1,8 @@
# Find out whether we can include <sys/swap.h>
# and whether libc thinks that swapon() has two arguments.
+exit 0
+
# Prepare test
CC=${CC-cc}
compile="$CC -o conftest conftest.c >/dev/null 2>&1"
--- ./partx/solaris.c.orig 2000-03-21 18:08:51.000000000 -0400
+++ ./partx/solaris.c 2004-02-11 23:40:25.000000000 -0300
@@ -5,8 +5,6 @@
#define SOLARIS_X86_NUMSLICE 8
#define SOLARIS_X86_VTOC_SANE (0x600DDEEEUL)
-typedef int daddr_t; /* or long - check */
-
struct solaris_x86_slice {
unsigned short s_tag; /* ID tag of partition */
unsigned short s_flag; /* permision flags */

+ 107
- 0
package/mnemoc/uclibc/uclibc.conf

@ -0,0 +1,107 @@
. $confdir/functions.in
uclibc_preparelocale() {
find ./charmaps -name "*.pairs" > codesets.txt
cp LOCALES locales.txt
}
uclibc_kernellinks() {
ln -svf $root/include/linux include/linux
ln -svf $root/include/asm include/asm
ln -svf $root/include/scsi include/scsi
}
if [ $ROCKCFG_CROSSBUILD = 1 ]; then
$(SED) "s,^CROSS=.*,CROSS=$bindir/${arch_target}-,g" Rules.mak
fi
# rulesets
var_append conffiles ' ' $confdir/clean_arch.config
var_append conffiles ' ' /tmp/$$.config
# i'll use this file for the generated rules
rm -f /tmp/$$.config
{
# TARGET_ARCH
cpu="`echo "$arch_machine" | sed -e s/i.86/i386/ `"
echo "X TARGET_$cpu"
echo "X TARGET_ARCH \"$cpu\""
if [ "$arch_bigendian" = "yes" ]; then
echo "X ARCH_BIG_ENDIAN"
else
echo "X ARCH_LITTLE_ENDIAN"
fi
# CONFIG_
if [ "$arch" == "x86" ]; then
case "$ROCKCFG_X86_OPT" in
generic) echo "X CONFIG_GENERIC_386" ;;
i386) echo "X CONFIG_386" ;;
i486) echo "X CONFIG_486" ;;
pentium) echo "X CONFIG_586" ;;
pentium-mmx) echo "X CONFIG_586MMX" ;;
pentiumpro|pentium2)
echo "X CONFIG_686" ;;
pentium3) echo "X CONFIG_PENTIUMIII" ;;
pentium4) echo "X CONFIG_PENTIUM4" ;;
k6*) echo "X CONFIG_K6" ;;
athlon*) echo "X CONFIG_K7" ;;
via-c3*) echo "X CONFIG_CYRIXIII" ;;
esac
fi
# PREFIX
echo "X KERNEL_SOURCE \"$root/usr/src/linux\""
echo "X RUNTIME_PREFIX \"/\""
echo "X DEVEL_PREFIX \"/usr\""
# locale
if [ "$ROCKCFG_DISABLE_NLS" = "0" ]; then
echo "X UCLIBC_HAS_LOCALE"
fi
# util-linux needs it to build some mounts
# FIXME: this has to be done in the oposite way (disable those mounts
# if libc doesn't have support)
echo "X UCLIBC_HAS_RPC"
# echo "X UCLIBC_HAS_FULL_RPC"
# to get rint (iproute2)
echo "X DO_C99_MATH"
# to make sed happy
echo "X ULIBC_HAS_WCHAR"
} > /tmp/$$.config
if [ "$ROCKCFG_DISABLE_NLS" = "0" ]; then
hook_add preconf 5 '( cd extra/locale; uclibc_preparelocale )'
var_append patchfiles ' ' $confdir/make_locale_after_headers.diff
fi
var_append makeopt ' ' "PREFIX=$root"
var_append makeopt ' ' "RUNTIME_PREFIX=/ DEVEL_PREFIX=/usr/"
runconf=0
makeinstopt="$makeopt"
if [ $stagelevel -eq 0 ]; then
var_append patchfiles ' ' $confdir/dont_validate_kernelsource_on_stage0.diff
# FIXME: i don't know why, but if i split this hook, the second disapears
# i wanted the var append at premake-9
hook_add premake 1 "auto_config 2; var_append makeopt ' ' headers"
var_append makeinstopt ' ' install_dev
else
hook_add premake 1 'auto_config 2'
var_append makeinstopt ' ' install
# remove symlinks to avoid shares (install_dev)
hook_add inmake 9 'rm -v include/{asm,linux,scsi}'
# utils (ldd, ldconfig )
hook_add postmake 5 'uclibc_kernellinks'
hook_add postmake 6 'eval "$MAKE $makeopt utils install_utils"'
fi
var_append flist''del '|' "usr/include"

+ 48
- 0
package/mnemoc/uclibc/uclibc.desc

@ -0,0 +1,48 @@
[COPY] --- ROCK-COPYRIGHT-NOTE-BEGIN ---
[COPY]
[COPY] This copyright note is auto-generated by ./scripts/Create-CopyPatch.
[COPY] Please add additional copyright information _after_ the line containing
[COPY] the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
[COPY] the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
[COPY]
[COPY] ROCK Linux: rock-src/package/mnemoc/uclibc/uclibc.desc
[COPY] ROCK Linux is Copyright (C) 1998 - 2004 Clifford Wolf
[COPY]
[COPY] This program is free software; you can redistribute it and/or modify
[COPY] it under the terms of the GNU General Public License as published by
[COPY] the Free Software Foundation; either version 2 of the License, or
[COPY] (at your option) any later version. A copy of the GNU General Public
[COPY] License can be found at Documentation/COPYING.
[COPY]
[COPY] Many people helped and are helping developing ROCK Linux. Please
[COPY] have a look at http://www.rocklinux.org/ and the Documentation/TEAM
[COPY] file for details.
[COPY]
[COPY] --- ROCK-COPYRIGHT-NOTE-END ---
[I] A C library for embedded Linux systems.
[T] uClibc is a C library for developing embedded Linux systems. It is much
[T] smaller then the GNU C Library, but nearly all applications supported by
[T] glibc also work perfectly with uClibc. Porting applications from glibc to
[T] uClibc typically involves just recompiling the source code. uClibc even
[T] supports shared libraries and threading. It currently runs on standard
[T] Linux and MMU-less Linux (also known as &amp;micro;Clinux) systems with
[T] support for ARM, i386, h8300, m68k, MIPS, mipsel, PowerPC, SH, SPARC, and
[T] v850 processors.
[U] http://www.uclibc.org/
[A] Erik Andersen <andersee@debian.org>
[M] Alejandro Mery <amery@geeks.cl>
[C] extra/base
[L] GPL
[S] Alpha
[V] 0.9.26
[P] 0 01---5---9 111.000
[D] 1079526986 uClibc-0.9.26.tar.bz2 http://www.uclibc.org/downloads/
#[D] 2465375957 uClibc-locale-030818.tgz http://www.uclibc.org/downloads/

+ 9
- 0
scripts/Build-Tools

@ -97,6 +97,7 @@ if [ $cleanup = 1 ] ; then
rm -f build/$ROCKCFG_ID/ROCK/$toolsdir/lib/fl_wrapper.so
rm -f build/$ROCKCFG_ID/ROCK/$toolsdir/lib/parse-config
rm -f build/$ROCKCFG_ID/ROCK/$toolsdir/lib/parse-config-fixarch
rm -f build/$ROCKCFG_ID/ROCK/$toolsdir/.lastupdate
fi
@ -267,6 +268,14 @@ EOT
> build/$ROCKCFG_ID/ROCK/$toolsdir/lib/parse-config.$$
mv build/$ROCKCFG_ID/ROCK/$toolsdir/lib/parse-config.$$ \
build/$ROCKCFG_ID/ROCK/$toolsdir/lib/parse-config
bash scripts/xfind.sh \
architecture/$arch/. package/. target/$target/. misc/ -type f \
-name 'parse-config-fixarch' \
-printf '%f\t%p\n' | sort | awk '{ $1="."; print; }' \
> build/$ROCKCFG_ID/$toolsdir/lib/parse-config-fixarch.$$
mv build/$ROCKCFG_ID/$toolsdir/lib/parse-config-fixarch.$$ \
build/$ROCKCFG_ID/$toolsdir/lib/parse-config-fixarch
# Create pkg_*_{pre,post}.conf files
#

+ 6
- 0
scripts/parse-config

@ -116,10 +116,16 @@ then . $base/build/$ROCKCFG_ID/ROCK/$toolsdir/lib/wrapper-config ; fi
if [ "$stagelevel" -gt 1 -o "$ROCKCFG_USE_CROSSCC" = 0 ]
then
if [ -f $base/build/$ROCKCFG_ID/$toolsdir/lib/parse-config-fixarch ]
then . $base/build/$ROCKCFG_ID/$toolsdir/lib/parse-config-fixarch ; fi
arch_build="$arch_target" ; archprefix=""
else
arch_build="`uname -m`-nocross-linux-gnu"
if [ -f $base/build/$ROCKCFG_ID/$toolsdir/lib/parse-config-fixarch ]
then . $base/build/$ROCKCFG_ID/$toolsdir/lib/parse-config-fixarch ; fi
if [ $stagelevel -eq 1 ]; then
archprefix="${arch_target}-"
if [ ! -f "$base/build/$ROCKCFG_ID/ROCK/$toolsdir/`

Loading…
Cancel
Save