[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[microblaze-uclinux] patches!



Hi again,

First of all, sorry for the confusion with the patches.  I'm really not 
sure why there has been so much difficulty.

Anyway, I've gone over it again, and generated a new patch.  The patch 
includes:

    - fixes to the uClibc config (the main problem so far)
    - default compression of application binaries for all microblaze targets
    - consistency in copying of final image into /tftpboot firectory

Step  1 - either
  (a) check out a fresh CVS copy of uClinux-dist, OR
  (b) execute "cvs update -C" from within an existing uClinux-dist 
directory.   The "-C" option is essential, it makes sure all files are 
exactly as they appear in the CVS repository, without the overhead of a 
fresh checkout.

Step 2- Apply the attached patch from within the uClinux-dist directory:

   [uClinux-dist] $ patch -p0 < microblaze-uClinux-dist-20040310.patch

The patch was generated against a fresh checkout, so any conflicts 
indicate a problem with step 1 above.

Step 3 - Build the new distribution:

$ make distclean
$ make menuconfig
   Only select the vendor and platform (try Insight / mbvanilla_net first)
   Don't make any other changes
   Save and exit
$ make dep
$ make

This should complete without errors.  You are now free to start 
customising the kernel and user/vendor setup as required.


Cheers,

John
diff -Nur -x CVS /opt/src/uClinux-dist/vendors/Insight/mbvanilla_net/config.linux-2.4.x vendors/Insight/mbvanilla_net/config.linux-2.4.x
--- /opt/src/uClinux-dist/vendors/Insight/mbvanilla_net/config.linux-2.4.x	2004-02-19 14:35:40.000000000 +1000
+++ vendors/Insight/mbvanilla_net/config.linux-2.4.x	2004-03-10 10:28:24.000000000 +1000
@@ -45,6 +45,7 @@
 #
 CONFIG_MBVANILLA=y
 # CONFIG_EGRET01 is not set
+# CONFIG_SUZAKU is not set
 
 #
 # Debug Logging
@@ -231,7 +232,6 @@
 # QoS and/or fair queueing
 #
 # CONFIG_NET_SCHED is not set
-# CONFIG_IPSEC is not set
 
 #
 # Network testing
diff -Nur -x CVS /opt/src/uClinux-dist/vendors/Insight/mbvanilla_net/config.uClibc vendors/Insight/mbvanilla_net/config.uClibc
--- /opt/src/uClinux-dist/vendors/Insight/mbvanilla_net/config.uClibc	2004-02-19 14:35:39.000000000 +1000
+++ vendors/Insight/mbvanilla_net/config.uClibc	2004-03-10 10:28:24.000000000 +1000
@@ -1,21 +1,35 @@
 #
 # Automatically generated make config: don't edit
 #
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_h8300 is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_m68k is not set
+TARGET_microblaze=y
+# TARGET_mips is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
 
 #
 # Target Architecture Features and Options
 #
 HAVE_ELF=y
+TARGET_ARCH="microblaze"
+# ARCH_LITTLE_ENDIAN is not set
+ARCH_BIG_ENDIAN=y
 ARCH_HAS_NO_MMU=y
-ARCH_HAS_NO_FPU=y
-# ARCH_HAS_C_SYMBOL_PREFIX is not set
-HAVE_NO_PIC=y
-CROSS="mb-"
 UCLIBC_HAS_FLOATS=y
+# HAS_FPU is not set
 UCLIBC_HAS_SOFT_FLOAT=y
-# DO_C99_MATH is not set
+DO_C99_MATH=y
 WARNINGS="-Wall"
-KERNEL_SOURCE="$(ROOTDIR)/$(LINUXDIR)"
+KERNEL_SOURCE="$(ROOTDIR)/$(LINUXDIR)/."
 UCLIBC_UCLINUX_BROKEN_MUNMAP=y
 EXCLUDE_BRK=y
 C_SYMBOL_PREFIX=""
@@ -24,16 +38,30 @@
 #
 # General Library Settings
 #
-# UCLIBC_CTOR_DTOR is not set
-UCLIBC_HAS_THREADS=y
+# HAVE_NO_PIC is not set
+# DOPIC is not set
+HAVE_NO_SHARED=y
+ARCH_HAS_NO_LDSO=y
+# UCLIBC_PIE_SUPPORT is not set
+UCLIBC_CTOR_DTOR=y
+# UCLIBC_PROPOLICE is not set
+# UCLIBC_PROFILING is not set
+# HAS_NO_THREADS is not set
+# UCLIBC_HAS_THREADS is not set
 UCLIBC_HAS_LFS=y
-MALLOC=y
-# MALLOC_930716 is not set
-# UCLIBC_DYNAMIC_ATEXIT is not set
+# MALLOC is not set
+MALLOC_SIMPLE=y
+# MALLOC_STANDARD is not set
+# MALLOC_GLIBC_COMPAT is not set
+UCLIBC_DYNAMIC_ATEXIT=y
 # HAS_SHADOW is not set
-UCLIBC_HAS_REGEX=y
 UNIX98PTY_ONLY=y
 ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+# UCLIBC_HAS_TZ_CACHING is not set
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
 
 #
 # Networking Support
@@ -45,19 +73,58 @@
 #
 # String and Stdio Support
 #
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+UCLIBC_HAS_CTYPE_UNSAFE=y
+# UCLIBC_HAS_CTYPE_CHECKED is not set
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
 # UCLIBC_HAS_WCHAR is not set
-USE_OLD_VFPRINTF=y
+# UCLIBC_HAS_LOCALE is not set
+# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set
+# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set
+# USE_OLD_VFPRINTF is not set
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+UCLIBC_HAS_STDIO_BUFSIZ_256=y
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set
+# UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+UCLIBC_HAS_SYS_ERRLIST=y
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+# UCLIBC_HAS_WORDEXP is not set
+# UCLIBC_HAS_FTW is not set
+UCLIBC_HAS_GLOB=y
 
 #
 # Library Installation Options
 #
-DEVEL_PREFIX=""
-SYSTEM_DEVEL_PREFIX="$(DEVEL_PREFIX)"
-DEVEL_TOOL_PREFIX=""
+RUNTIME_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc/"
+DEVEL_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc"
 
 #
-# uClibc hacking options
+# uClibc development/debugging options
 #
-DODEBUG=y
+# DODEBUG is not set
 # DOASSERTS is not set
-# UCLIBC_MALLOC_DEBUGGING is not set
+# UCLIBC_MJN3_ONLY is not set
diff -Nur -x CVS /opt/src/uClinux-dist/vendors/Insight/mbvanilla_net/config.vendor vendors/Insight/mbvanilla_net/config.vendor
--- /opt/src/uClinux-dist/vendors/Insight/mbvanilla_net/config.vendor	2004-02-19 14:35:39.000000000 +1000
+++ vendors/Insight/mbvanilla_net/config.vendor	2004-03-10 10:28:24.000000000 +1000
@@ -3,37 +3,6 @@
 #
 
 #
-# SnapGear Apps/Libs
-#
-# CONFIG_USER_CGI is not set
-# CONFIG_USER_FIREWALL_TOOLS is not set
-# CONFIG_USER_AES_PERF is not set
-# CONFIG_USER_BR_BR is not set
-# CONFIG_USER_CERBERIAN_CERBERIAN is not set
-# CONFIG_USER_CERBERIAN_PROXYAUTH is not set
-# CONFIG_USER_CERBERIAN_CERBTEST is not set
-# CONFIG_USER_DESTEST_DESTEST is not set
-# CONFIG_USER_DESTEST_DESPERF is not set
-# CONFIG_USER_EMCTEST_EMCTEST is not set
-# CONFIG_USER_FACTORY_FACTTEST is not set
-# CONFIG_USER_GDSD_GDSD is not set
-# CONFIG_USER_GDSD_GDSD_INET is not set
-# CONFIG_USER_GRE_GRE is not set
-# CONFIG_USER_IDB_IDB is not set
-# CONFIG_USER_IPSEC_CONFIGURATOR is not set
-# CONFIG_USER_REDIALER_REDIALER is not set
-# CONFIG_USER_PKTDELAY_PKTDELAY is not set
-# CONFIG_USER_PROTECT is not set
-# CONFIG_USER_SETKEY_SETKEY is not set
-# CONFIG_USER_IOD is not set
-# CONFIG_USER_SWTEST_SWTEST is not set
-# CONFIG_USER_MGMT_MGMT is not set
-# CONFIG_USER_SGSNMPD_AGENT is not set
-# CONFIG_USER_TQRECV_TQRECV is not set
-# CONFIG_USER_UPNPD is not set
-# CONFIG_USER_WINSD_WS is not set
-
-#
 # Core Applications
 #
 CONFIG_USER_INIT_INIT=y
@@ -111,8 +80,14 @@
 # CONFIG_USER_NETFLASH_NETFLASH is not set
 # CONFIG_USER_RECOVER_STATIC_TFTP is not set
 # CONFIG_USER_RECOVER_RECOVER is not set
-# CONFIG_USER_BOOTTOOLS_FLASHLOADER is not set
-# CONFIG_USER_BOOTTOOLS_HIMEMLOADER is not set
+
+#
+# uCbootloader utils
+#
+# CONFIG_USER_BOOTTOOLS_LOADER is not set
+# CONFIG_USER_BOOTTOOLS_PRINTBENV is not set
+# CONFIG_USER_BOOTTOOLS_SETBENV is not set
+# CONFIG_USER_BOOTTOOLS_RESET is not set
 
 #
 # MTD utils
@@ -343,6 +318,7 @@
 # CONFIG_USER_THREADDEMOS_THREADDEMOS is not set
 # CONFIG_USER_TIP_TIP is not set
 # CONFIG_USER_TRIPWIRE_TRIPWIRE is not set
+# CONFIG_USER_TSTEST_TSTEST is not set
 # CONFIG_USER_LRZSZ_LRZSZ is not set
 
 #
@@ -417,6 +393,7 @@
 # CONFIG_USER_SHUTILS_LOGNAME is not set
 # CONFIG_USER_SHUTILS_PRINTENV is not set
 # CONFIG_USER_SHUTILS_PWD is not set
+# CONFIG_USER_SHUTILS_TEST is not set
 # CONFIG_USER_SHUTILS_TRUE is not set
 # CONFIG_USER_SHUTILS_UNAME is not set
 # CONFIG_USER_SHUTILS_WHICH is not set
@@ -635,7 +612,7 @@
 #
 # CONFIG_USER_GAMES_ADVENT4 is not set
 # CONFIG_USER_GAMES_DUNGEON is not set
-# CONFIG_USER_GAMES_RUBIK is not set
+# CONFIG_USER_GAMES_XMAME is not set
 
 #
 # Miscellaneous Configuration
diff -Nur -x CVS /opt/src/uClinux-dist/vendors/Insight/mbvanilla_net/Makefile vendors/Insight/mbvanilla_net/Makefile
--- /opt/src/uClinux-dist/vendors/Insight/mbvanilla_net/Makefile	2004-02-19 14:35:39.000000000 +1000
+++ vendors/Insight/mbvanilla_net/Makefile	2004-03-10 10:27:44.000000000 +1000
@@ -139,7 +139,6 @@
 	echo -ne "\000" >> $(IMAGEZ)
 	echo -n $(CONFIG_PRODUCT) >> $(IMAGEZ)
 	$(ROOTDIR)/tools/cksum -b -o 2 $(IMAGEZ) >> $(IMAGEZ)
-	#[ -n "$(NO_BUILD_INTO_TFTPBOOT)" ] || cp $(IMAGE) /tftpboot 
 	BSS=`$(CROSS)objdump --headers $(ROOTDIR)/$(LINUXDIR)/linux | \
 	  grep "\.bss"` ; \
 	ADDR=`set -- $${BSS} ; echo 0x$${4}` ; \
@@ -148,8 +147,8 @@
 	  --set-section-flags=.romfs=alloc,load,data   \
 	  $(ROOTDIR)/$(LINUXDIR)/linux $(ELFIMAGE) 
 	mb-objcopy -O binary --remove-section=.stab --remove-section=.stabstr $(ELFIMAGE) $(IMAGE)
-	cp $(IMAGE) /tftpboot 
-	cp $(IMAGEZ) /tftpboot 
+	[ -n "$(NO_BUILD_INTO_TFTPBOOT)" ] || cp $(IMAGE) /tftpboot 
+	[ -n "$(NO_BUILD_INTO_TFTPBOOT)" ] || cp $(IMAGEZ) /tftpboot 
 
 vendor_flash:
 	$(ROOTDIR)/bin/make_flash
diff -Nur -x CVS /opt/src/uClinux-dist/vendors/Insight/XC2V1K_Microblaze/config.linux-2.4.x vendors/Insight/XC2V1K_Microblaze/config.linux-2.4.x
--- /opt/src/uClinux-dist/vendors/Insight/XC2V1K_Microblaze/config.linux-2.4.x	2004-02-19 14:35:39.000000000 +1000
+++ vendors/Insight/XC2V1K_Microblaze/config.linux-2.4.x	2004-03-10 10:29:12.000000000 +1000
@@ -41,6 +41,7 @@
 #
 CONFIG_MBVANILLA=y
 # CONFIG_EGRET01 is not set
+# CONFIG_SUZAKU is not set
 
 #
 # Debug Logging
diff -Nur -x CVS /opt/src/uClinux-dist/vendors/Insight/XC2V1K_Microblaze/config.uClibc vendors/Insight/XC2V1K_Microblaze/config.uClibc
--- /opt/src/uClinux-dist/vendors/Insight/XC2V1K_Microblaze/config.uClibc	2004-02-19 14:35:39.000000000 +1000
+++ vendors/Insight/XC2V1K_Microblaze/config.uClibc	2004-03-10 10:29:12.000000000 +1000
@@ -1,21 +1,35 @@
 #
 # Automatically generated make config: don't edit
 #
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_h8300 is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_m68k is not set
+TARGET_microblaze=y
+# TARGET_mips is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
 
 #
 # Target Architecture Features and Options
 #
 HAVE_ELF=y
+TARGET_ARCH="microblaze"
+# ARCH_LITTLE_ENDIAN is not set
+ARCH_BIG_ENDIAN=y
 ARCH_HAS_NO_MMU=y
-ARCH_HAS_NO_FPU=y
-# ARCH_HAS_C_SYMBOL_PREFIX is not set
-HAVE_NO_PIC=y
-CROSS="mb-"
 UCLIBC_HAS_FLOATS=y
+# HAS_FPU is not set
 UCLIBC_HAS_SOFT_FLOAT=y
-# DO_C99_MATH is not set
+DO_C99_MATH=y
 WARNINGS="-Wall"
-KERNEL_SOURCE="$(ROOTDIR)/$(LINUXDIR)"
+KERNEL_SOURCE="$(ROOTDIR)/$(LINUXDIR)/."
 UCLIBC_UCLINUX_BROKEN_MUNMAP=y
 EXCLUDE_BRK=y
 C_SYMBOL_PREFIX=""
@@ -24,16 +38,30 @@
 #
 # General Library Settings
 #
-# UCLIBC_CTOR_DTOR is not set
-UCLIBC_HAS_THREADS=y
+# HAVE_NO_PIC is not set
+# DOPIC is not set
+HAVE_NO_SHARED=y
+ARCH_HAS_NO_LDSO=y
+# UCLIBC_PIE_SUPPORT is not set
+UCLIBC_CTOR_DTOR=y
+# UCLIBC_PROPOLICE is not set
+# UCLIBC_PROFILING is not set
+# HAS_NO_THREADS is not set
+# UCLIBC_HAS_THREADS is not set
 UCLIBC_HAS_LFS=y
-MALLOC=y
-# MALLOC_930716 is not set
-# UCLIBC_DYNAMIC_ATEXIT is not set
+# MALLOC is not set
+MALLOC_SIMPLE=y
+# MALLOC_STANDARD is not set
+# MALLOC_GLIBC_COMPAT is not set
+UCLIBC_DYNAMIC_ATEXIT=y
 # HAS_SHADOW is not set
-UCLIBC_HAS_REGEX=y
 UNIX98PTY_ONLY=y
 ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+# UCLIBC_HAS_TZ_CACHING is not set
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
 
 #
 # Networking Support
@@ -45,19 +73,58 @@
 #
 # String and Stdio Support
 #
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+UCLIBC_HAS_CTYPE_UNSAFE=y
+# UCLIBC_HAS_CTYPE_CHECKED is not set
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
 # UCLIBC_HAS_WCHAR is not set
-USE_OLD_VFPRINTF=y
+# UCLIBC_HAS_LOCALE is not set
+# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set
+# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set
+# USE_OLD_VFPRINTF is not set
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+UCLIBC_HAS_STDIO_BUFSIZ_256=y
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set
+# UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+UCLIBC_HAS_SYS_ERRLIST=y
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+# UCLIBC_HAS_WORDEXP is not set
+# UCLIBC_HAS_FTW is not set
+UCLIBC_HAS_GLOB=y
 
 #
 # Library Installation Options
 #
-DEVEL_PREFIX=""
-SYSTEM_DEVEL_PREFIX="$(DEVEL_PREFIX)"
-DEVEL_TOOL_PREFIX=""
+RUNTIME_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc/"
+DEVEL_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc"
 
 #
-# uClibc hacking options
+# uClibc development/debugging options
 #
-DODEBUG=y
+# DODEBUG is not set
 # DOASSERTS is not set
-# UCLIBC_MALLOC_DEBUGGING is not set
+# UCLIBC_MJN3_ONLY is not set
diff -Nur -x CVS /opt/src/uClinux-dist/vendors/Insight/XC2V1K_Microblaze/config.vendor vendors/Insight/XC2V1K_Microblaze/config.vendor
--- /opt/src/uClinux-dist/vendors/Insight/XC2V1K_Microblaze/config.vendor	2004-02-19 14:35:39.000000000 +1000
+++ vendors/Insight/XC2V1K_Microblaze/config.vendor	2004-03-10 10:29:12.000000000 +1000
@@ -3,37 +3,6 @@
 #
 
 #
-# SnapGear Apps/Libs
-#
-# CONFIG_USER_CGI is not set
-# CONFIG_USER_FIREWALL_TOOLS is not set
-# CONFIG_USER_AES_PERF is not set
-# CONFIG_USER_BR_BR is not set
-# CONFIG_USER_CERBERIAN_CERBERIAN is not set
-# CONFIG_USER_CERBERIAN_PROXYAUTH is not set
-# CONFIG_USER_CERBERIAN_CERBTEST is not set
-# CONFIG_USER_DESTEST_DESTEST is not set
-# CONFIG_USER_DESTEST_DESPERF is not set
-# CONFIG_USER_EMCTEST_EMCTEST is not set
-# CONFIG_USER_FACTORY_FACTTEST is not set
-# CONFIG_USER_GDSD_GDSD is not set
-# CONFIG_USER_GDSD_GDSD_INET is not set
-# CONFIG_USER_GRE_GRE is not set
-# CONFIG_USER_IDB_IDB is not set
-# CONFIG_USER_IPSEC_CONFIGURATOR is not set
-# CONFIG_USER_REDIALER_REDIALER is not set
-# CONFIG_USER_PKTDELAY_PKTDELAY is not set
-# CONFIG_USER_PROTECT is not set
-# CONFIG_USER_SETKEY_SETKEY is not set
-# CONFIG_USER_IOD is not set
-# CONFIG_USER_SWTEST_SWTEST is not set
-# CONFIG_USER_MGMT_MGMT is not set
-# CONFIG_USER_SGSNMPD_AGENT is not set
-# CONFIG_USER_TQRECV_TQRECV is not set
-# CONFIG_USER_UPNPD is not set
-# CONFIG_USER_WINSD_WS is not set
-
-#
 # Core Applications
 #
 CONFIG_USER_INIT_INIT=y
@@ -113,8 +82,14 @@
 # CONFIG_USER_NETFLASH_NETFLASH is not set
 # CONFIG_USER_RECOVER_STATIC_TFTP is not set
 # CONFIG_USER_RECOVER_RECOVER is not set
-# CONFIG_USER_BOOTTOOLS_FLASHLOADER is not set
-# CONFIG_USER_BOOTTOOLS_HIMEMLOADER is not set
+
+#
+# uCbootloader utils
+#
+# CONFIG_USER_BOOTTOOLS_LOADER is not set
+# CONFIG_USER_BOOTTOOLS_PRINTBENV is not set
+# CONFIG_USER_BOOTTOOLS_SETBENV is not set
+# CONFIG_USER_BOOTTOOLS_RESET is not set
 
 #
 # MTD utils
@@ -344,6 +319,7 @@
 # CONFIG_USER_THREADDEMOS_THREADDEMOS is not set
 # CONFIG_USER_TIP_TIP is not set
 # CONFIG_USER_TRIPWIRE_TRIPWIRE is not set
+# CONFIG_USER_TSTEST_TSTEST is not set
 # CONFIG_USER_LRZSZ_LRZSZ is not set
 
 #
@@ -418,6 +394,7 @@
 # CONFIG_USER_SHUTILS_LOGNAME is not set
 # CONFIG_USER_SHUTILS_PRINTENV is not set
 # CONFIG_USER_SHUTILS_PWD is not set
+# CONFIG_USER_SHUTILS_TEST is not set
 # CONFIG_USER_SHUTILS_TRUE is not set
 # CONFIG_USER_SHUTILS_UNAME is not set
 # CONFIG_USER_SHUTILS_WHICH is not set
@@ -640,7 +617,7 @@
 #
 # CONFIG_USER_GAMES_ADVENT4 is not set
 # CONFIG_USER_GAMES_DUNGEON is not set
-# CONFIG_USER_GAMES_RUBIK is not set
+# CONFIG_USER_GAMES_XMAME is not set
 
 #
 # Miscellaneous Configuration
diff -Nur -x CVS /opt/src/uClinux-dist/vendors/Insight/XC2V1K_Microblaze/Makefile vendors/Insight/XC2V1K_Microblaze/Makefile
--- /opt/src/uClinux-dist/vendors/Insight/XC2V1K_Microblaze/Makefile	2004-02-19 14:35:39.000000000 +1000
+++ vendors/Insight/XC2V1K_Microblaze/Makefile	2004-03-10 10:43:49.000000000 +1000
@@ -111,9 +111,11 @@
 	for i in $(RAM_FILES) ; do \
 		[ ! -f $(ROMFSDIR)/$$i ] || $(CROSS)flthdr -r $(ROMFSDIR)/$$i ; \
 	done
-	for i in $(ZFLAT_FILES) ; do \
-		[ ! -f $(ROMFSDIR)/$$i ] || $(CROSS)flthdr $(ROMFSDIR)/$$i ; \
+
+	for i in $(ROMFSDIR)/bin/* ; do \
+		$(CROSS)flthdr -z $$i; \
 	done
+
 	genromfs -v -V "ROMdisk" -f $(ROMFSIMG) -d $(ROMFSDIR)
 	$(CROSS)objcopy -O binary $(ROOTDIR)/$(LINUXDIR)/linux \
 			$(IMAGEDIR)/linux.bin
@@ -135,7 +137,6 @@
 	echo -ne "\000" >> $(IMAGEZ)
 	echo -n $(CONFIG_PRODUCT) >> $(IMAGEZ)
 	$(ROOTDIR)/tools/cksum -b -o 2 $(IMAGEZ) >> $(IMAGEZ)
-	[ -n "$(NO_BUILD_INTO_TFTPBOOT)" ] || cp $(IMAGEZ) /tftpboot
 	BSS=`$(CROSS)objdump --headers $(ROOTDIR)/$(LINUXDIR)/linux | \
 	  grep "\.bss"` ; \
 	ADDR=`set -- $${BSS} ; echo 0x$${4}` ; \
@@ -144,6 +145,8 @@
 	  --set-section-flags=.romfs=alloc,load,data   \
 	  $(ROOTDIR)/$(LINUXDIR)/linux $(ELFIMAGE) 
 	mb-objcopy -O binary --remove-section=.stab --remove-section=.stabstr $(ELFIMAGE) $(IMAGE)
+	[ -n "$(NO_BUILD_INTO_TFTPBOOT)" ] || cp $(IMAGE) /tftpboot
+	[ -n "$(NO_BUILD_INTO_TFTPBOOT)" ] || cp $(IMAGEZ) /tftpboot
 
 vendor_flash:
 	$(ROOTDIR)/bin/make_flash
diff -Nur -x CVS /opt/src/uClinux-dist/vendors/Insight/XC2VP7_Microblaze/config.linux-2.4.x vendors/Insight/XC2VP7_Microblaze/config.linux-2.4.x
--- /opt/src/uClinux-dist/vendors/Insight/XC2VP7_Microblaze/config.linux-2.4.x	2004-02-19 14:35:38.000000000 +1000
+++ vendors/Insight/XC2VP7_Microblaze/config.linux-2.4.x	2004-03-10 10:29:56.000000000 +1000
@@ -45,6 +45,7 @@
 #
 CONFIG_MBVANILLA=y
 # CONFIG_EGRET01 is not set
+# CONFIG_SUZAKU is not set
 
 #
 # Debug Logging
diff -Nur -x CVS /opt/src/uClinux-dist/vendors/Insight/XC2VP7_Microblaze/config.uClibc vendors/Insight/XC2VP7_Microblaze/config.uClibc
--- /opt/src/uClinux-dist/vendors/Insight/XC2VP7_Microblaze/config.uClibc	2004-02-19 14:35:38.000000000 +1000
+++ vendors/Insight/XC2VP7_Microblaze/config.uClibc	2004-03-10 10:29:56.000000000 +1000
@@ -1,39 +1,67 @@
 #
 # Automatically generated make config: don't edit
 #
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_h8300 is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_m68k is not set
+TARGET_microblaze=y
+# TARGET_mips is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
 
 #
 # Target Architecture Features and Options
 #
 HAVE_ELF=y
+TARGET_ARCH="microblaze"
+# ARCH_LITTLE_ENDIAN is not set
+ARCH_BIG_ENDIAN=y
 ARCH_HAS_NO_MMU=y
-ARCH_HAS_NO_FPU=y
-ARCH_HAS_C_SYMBOL_PREFIX=y
-HAVE_NO_PIC=y
-CROSS="mb-"
 UCLIBC_HAS_FLOATS=y
+# HAS_FPU is not set
 UCLIBC_HAS_SOFT_FLOAT=y
-# DO_C99_MATH is not set
+DO_C99_MATH=y
 WARNINGS="-Wall"
-KERNEL_SOURCE="$(ROOTDIR)/$(LINUXDIR)"
+KERNEL_SOURCE="$(ROOTDIR)/$(LINUXDIR)/."
 UCLIBC_UCLINUX_BROKEN_MUNMAP=y
 EXCLUDE_BRK=y
-C_SYMBOL_PREFIX="_"
+C_SYMBOL_PREFIX=""
 HAVE_DOT_CONFIG=y
 
 #
 # General Library Settings
 #
-# UCLIBC_CTOR_DTOR is not set
+# HAVE_NO_PIC is not set
+# DOPIC is not set
+HAVE_NO_SHARED=y
+ARCH_HAS_NO_LDSO=y
+# UCLIBC_PIE_SUPPORT is not set
+UCLIBC_CTOR_DTOR=y
+# UCLIBC_PROPOLICE is not set
+# UCLIBC_PROFILING is not set
+# HAS_NO_THREADS is not set
 # UCLIBC_HAS_THREADS is not set
 UCLIBC_HAS_LFS=y
-MALLOC=y
-# MALLOC_930716 is not set
-# UCLIBC_DYNAMIC_ATEXIT is not set
+# MALLOC is not set
+MALLOC_SIMPLE=y
+# MALLOC_STANDARD is not set
+# MALLOC_GLIBC_COMPAT is not set
+UCLIBC_DYNAMIC_ATEXIT=y
 # HAS_SHADOW is not set
-UCLIBC_HAS_REGEX=y
 UNIX98PTY_ONLY=y
 ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+# UCLIBC_HAS_TZ_CACHING is not set
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
 
 #
 # Networking Support
@@ -45,19 +73,58 @@
 #
 # String and Stdio Support
 #
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+UCLIBC_HAS_CTYPE_UNSAFE=y
+# UCLIBC_HAS_CTYPE_CHECKED is not set
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
 # UCLIBC_HAS_WCHAR is not set
-USE_OLD_VFPRINTF=y
+# UCLIBC_HAS_LOCALE is not set
+# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set
+# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set
+# USE_OLD_VFPRINTF is not set
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+UCLIBC_HAS_STDIO_BUFSIZ_256=y
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set
+# UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+UCLIBC_HAS_SYS_ERRLIST=y
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+# UCLIBC_HAS_WORDEXP is not set
+# UCLIBC_HAS_FTW is not set
+UCLIBC_HAS_GLOB=y
 
 #
 # Library Installation Options
 #
-DEVEL_PREFIX=""
-SYSTEM_DEVEL_PREFIX="$(DEVEL_PREFIX)"
-DEVEL_TOOL_PREFIX=""
+RUNTIME_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc/"
+DEVEL_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc"
 
 #
-# uClibc hacking options
+# uClibc development/debugging options
 #
-DODEBUG=y
+# DODEBUG is not set
 # DOASSERTS is not set
-# UCLIBC_MALLOC_DEBUGGING is not set
+# UCLIBC_MJN3_ONLY is not set
diff -Nur -x CVS /opt/src/uClinux-dist/vendors/Insight/XC2VP7_Microblaze/config.vendor vendors/Insight/XC2VP7_Microblaze/config.vendor
--- /opt/src/uClinux-dist/vendors/Insight/XC2VP7_Microblaze/config.vendor	2004-02-19 14:35:38.000000000 +1000
+++ vendors/Insight/XC2VP7_Microblaze/config.vendor	2004-03-10 10:29:56.000000000 +1000
@@ -3,37 +3,6 @@
 #
 
 #
-# SnapGear Apps/Libs
-#
-# CONFIG_USER_CGI is not set
-# CONFIG_USER_FIREWALL_TOOLS is not set
-# CONFIG_USER_AES_PERF is not set
-# CONFIG_USER_BR_BR is not set
-# CONFIG_USER_CERBERIAN_CERBERIAN is not set
-# CONFIG_USER_CERBERIAN_PROXYAUTH is not set
-# CONFIG_USER_CERBERIAN_CERBTEST is not set
-# CONFIG_USER_DESTEST_DESTEST is not set
-# CONFIG_USER_DESTEST_DESPERF is not set
-# CONFIG_USER_EMCTEST_EMCTEST is not set
-# CONFIG_USER_FACTORY_FACTTEST is not set
-# CONFIG_USER_GDSD_GDSD is not set
-# CONFIG_USER_GDSD_GDSD_INET is not set
-# CONFIG_USER_GRE_GRE is not set
-# CONFIG_USER_IDB_IDB is not set
-# CONFIG_USER_IPSEC_CONFIGURATOR is not set
-# CONFIG_USER_REDIALER_REDIALER is not set
-# CONFIG_USER_PKTDELAY_PKTDELAY is not set
-# CONFIG_USER_PROTECT is not set
-# CONFIG_USER_SETKEY_SETKEY is not set
-# CONFIG_USER_IOD is not set
-# CONFIG_USER_SWTEST_SWTEST is not set
-# CONFIG_USER_MGMT_MGMT is not set
-# CONFIG_USER_SGSNMPD_AGENT is not set
-# CONFIG_USER_TQRECV_TQRECV is not set
-# CONFIG_USER_UPNPD is not set
-# CONFIG_USER_WINSD_WS is not set
-
-#
 # Core Applications
 #
 CONFIG_USER_INIT_INIT=y
@@ -113,8 +82,14 @@
 # CONFIG_USER_NETFLASH_NETFLASH is not set
 # CONFIG_USER_RECOVER_STATIC_TFTP is not set
 # CONFIG_USER_RECOVER_RECOVER is not set
-# CONFIG_USER_BOOTTOOLS_FLASHLOADER is not set
-# CONFIG_USER_BOOTTOOLS_HIMEMLOADER is not set
+
+#
+# uCbootloader utils
+#
+# CONFIG_USER_BOOTTOOLS_LOADER is not set
+# CONFIG_USER_BOOTTOOLS_PRINTBENV is not set
+# CONFIG_USER_BOOTTOOLS_SETBENV is not set
+# CONFIG_USER_BOOTTOOLS_RESET is not set
 
 #
 # MTD utils
@@ -343,6 +318,7 @@
 # CONFIG_USER_THREADDEMOS_THREADDEMOS is not set
 # CONFIG_USER_TIP_TIP is not set
 # CONFIG_USER_TRIPWIRE_TRIPWIRE is not set
+# CONFIG_USER_TSTEST_TSTEST is not set
 # CONFIG_USER_LRZSZ_LRZSZ is not set
 
 #
@@ -417,6 +393,7 @@
 # CONFIG_USER_SHUTILS_LOGNAME is not set
 # CONFIG_USER_SHUTILS_PRINTENV is not set
 # CONFIG_USER_SHUTILS_PWD is not set
+# CONFIG_USER_SHUTILS_TEST is not set
 # CONFIG_USER_SHUTILS_TRUE is not set
 # CONFIG_USER_SHUTILS_UNAME is not set
 # CONFIG_USER_SHUTILS_WHICH is not set
@@ -639,7 +616,7 @@
 #
 # CONFIG_USER_GAMES_ADVENT4 is not set
 # CONFIG_USER_GAMES_DUNGEON is not set
-# CONFIG_USER_GAMES_RUBIK is not set
+# CONFIG_USER_GAMES_XMAME is not set
 
 #
 # Miscellaneous Configuration
diff -Nur -x CVS /opt/src/uClinux-dist/vendors/Insight/XC2VP7_Microblaze/Makefile vendors/Insight/XC2VP7_Microblaze/Makefile
--- /opt/src/uClinux-dist/vendors/Insight/XC2VP7_Microblaze/Makefile	2004-02-19 14:35:38.000000000 +1000
+++ vendors/Insight/XC2VP7_Microblaze/Makefile	2004-03-10 10:27:44.000000000 +1000
@@ -106,9 +106,11 @@
 	for i in $(RAM_FILES) ; do \
 		[ ! -f $(ROMFSDIR)/$$i ] || $(CROSS)flthdr -r $(ROMFSDIR)/$$i ; \
 	done
-	for i in $(ZFLAT_FILES) ; do \
-		[ ! -f $(ROMFSDIR)/$$i ] || $(CROSS)flthdr $(ROMFSDIR)/$$i ; \
+
+	for i in $(ROMFSDIR)/bin/* ; do \
+		$(CROSS)flthdr -z $$i; \
 	done
+
 	genromfs -v -V "ROMdisk" -f $(ROMFSIMG) -d $(ROMFSDIR)
 	$(CROSS)objcopy -O binary $(ROOTDIR)/$(LINUXDIR)/linux \
 			$(IMAGEDIR)/linux.bin
@@ -130,7 +132,6 @@
 	echo -ne "\000" >> $(IMAGEZ)
 	echo -n $(CONFIG_PRODUCT) >> $(IMAGEZ)
 	$(ROOTDIR)/tools/cksum -b -o 2 $(IMAGEZ) >> $(IMAGEZ)
-	[ -n "$(NO_BUILD_INTO_TFTPBOOT)" ] || cp $(IMAGEZ) /tftpboot
 	BSS=`$(CROSS)objdump --headers $(ROOTDIR)/$(LINUXDIR)/linux | \
 	  grep "\.bss"` ; \
 	ADDR=`set -- $${BSS} ; echo 0x$${4}` ; \
@@ -139,6 +140,8 @@
 	  --set-section-flags=.romfs=alloc,load,data   \
 	  $(ROOTDIR)/$(LINUXDIR)/linux $(ELFIMAGE) 
 	mb-objcopy -O binary --remove-section=.stab --remove-section=.stabstr $(ELFIMAGE) $(IMAGE)
+	[ -n "$(NO_BUILD_INTO_TFTPBOOT)" ] || cp $(IMAGE) /tftpboot
+	[ -n "$(NO_BUILD_INTO_TFTPBOOT)" ] || cp $(IMAGEZ) /tftpboot
 
 vendor_flash:
 	$(ROOTDIR)/bin/make_flash
diff -Nur -x CVS /opt/src/uClinux-dist/vendors/Xilinx/common/common-config.arch vendors/Xilinx/common/common-config.arch
--- /opt/src/uClinux-dist/vendors/Xilinx/common/common-config.arch	2003-09-02 15:26:25.000000000 +1000
+++ vendors/Xilinx/common/common-config.arch	2004-03-10 10:27:44.000000000 +1000
@@ -164,10 +164,14 @@
 	endif
 
 	# GCC_LIB = $(GCC_DIR)/../../../../microblaze/lib/libc_hard_shift.a $(GCC_DIR)/libgcc.a
-	GCC_LIB = $(GCC_DIR)/../../../../microblaze/lib/libc_$(LIBC_SUFFIX).a $(GCC_DIR)/libgcc.a
+	GCC_LIB = $(GCC_DIR)/libgcc.a $(GCC_DIR)/../../../../microblaze/lib/libc_$(LIBC_SUFFIX).a 
 
 	# use -lc (from uClibc) and also the compiler's libc.a as well
-	SLIBC	     = -lc $(GCC_LIB)
+	# I know this is hideous, but we need to relink against libc
+	# after the $GCC_LIB, to avoid some dependency issues
+	# Don't hate me, just fix it! :-) JW
+	
+	SLIBC	     = -lc $(GCC_LIB) -lc
 	SLIBM        = -lm
 	SLIBNET      = -lnet
 	SLIBDES      = -ldes
@@ -255,7 +259,6 @@
 		CFLAGS += -mxl-barrel-shift
 	endif
 
-
   ifdef BUILD_SHARED
 	CFLAGS  += -mid-shared-library -mshared-library-id=0
   else
diff -Nur -x CVS /opt/src/uClinux-dist/uClibc/extra/Configs/Config.microblaze uClibc/extra/Configs/Config.microblaze
--- /opt/src/uClinux-dist/uClibc/extra/Configs/Config.microblaze	2004-02-19 14:35:05.000000000 +1000
+++ uClibc/extra/Configs/Config.microblaze	2004-03-10 09:33:09.000000000 +1000
@@ -3,38 +3,28 @@
 # see extra/config/Kconfig-language.txt
 #
 
-config ARCH_CFLAGS
-	string
-
-config ARCH_LDFLAGS
-	string
-
-config LIBGCC_CFLAGS
-	string
+config TARGET_ARCH
+	default "microblaze"
 
 config HAVE_ELF
 	bool
+	select ARCH_HAS_NO_MMU
+	select ARCH_BIG_ENDIAN
+	select HAVE_NO_SHARED
+	select ARCH_HAS_NO_LDSO
 	default y
 
-config ARCH_HAS_NO_MMU
-	bool
-	default y
+# config ARCH_CFLAGS
+#	string
+#	default "-Wa,--bitwise-or -I$(KERNEL_SOURCE)/include"
 
-config ARCH_HAS_NO_FPU
-	bool
-	default y
+config ARCH_LDFLAGS
+	string
 
-config ARCH_HAS_C_SYMBOL_PREFIX
-	bool
-	default n
+config LIBGCC_CFLAGS
+	string
 
-config HAVE_NO_PIC
+config HAVE_ELF
 	bool
 	default y
 
-config CROSS
-        string
-	default "mb-"
-
-
-
diff -Nur -x CVS /opt/src/uClinux-dist/uClibc/libc/sysdeps/linux/microblaze/fixdfsi.c uClibc/libc/sysdeps/linux/microblaze/fixdfsi.c
--- /opt/src/uClinux-dist/uClibc/libc/sysdeps/linux/microblaze/fixdfsi.c	1970-01-01 10:00:00.000000000 +1000
+++ uClibc/libc/sysdeps/linux/microblaze/fixdfsi.c	2004-03-10 09:33:22.000000000 +1000
@@ -0,0 +1,85 @@
+/*
+** libgcc support for software floating point.
+** Copyright (C) 1991 by Pipeline Associates, Inc.  All rights reserved.
+** Permission is granted to do *anything* you want with this file,
+** commercial or otherwise, provided this message remains intact.  So there!
+** I would appreciate receiving any updates/patches/changes that anyone
+** makes, and am willing to be the repository for said changes (am I
+** making a big mistake?).
+
+Warning! Only single-precision is actually implemented.  This file
+won't really be much use until double-precision is supported.
+
+However, once that is done, this file might eventually become a
+replacement for libgcc1.c.  It might also make possible
+cross-compilation for an IEEE target machine from a non-IEEE
+host such as a VAX.
+
+If you'd like to work on completing this, please talk to rms@gnu.ai.mit.edu.
+
+--> Double precision floating support added by James Carlson on 20 April 1998.
+
+**
+** Pat Wood
+** Pipeline Associates, Inc.
+** pipeline!phw@motown.com or
+** sun!pipeline!phw or
+** uunet!motown!pipeline!phw
+**
+** 05/01/91 -- V1.0 -- first release to gcc mailing lists
+** 05/04/91 -- V1.1 -- added float and double prototypes and return values
+**                  -- fixed problems with adding and subtracting zero
+**                  -- fixed rounding in truncdfsf2
+**                  -- fixed SWAP define and tested on 386
+*/
+
+/*
+** The following are routines that replace the libgcc soft floating point
+** routines that are called automatically when -msoft-float is selected.
+** The support single and double precision IEEE format, with provisions
+** for byte-swapped machines (tested on 386).  Some of the double-precision
+** routines work at full precision, but most of the hard ones simply punt
+** and call the single precision routines, producing a loss of accuracy.
+** long long support is not assumed or included.
+** Overall accuracy is close to IEEE (actually 68882) for single-precision
+** arithmetic.  I think there may still be a 1 in 1000 chance of a bit
+** being rounded the wrong way during a multiply.  I'm not fussy enough to
+** bother with it, but if anyone is, knock yourself out.
+**
+** Efficiency has only been addressed where it was obvious that something
+** would make a big difference.  Anyone who wants to do this right for
+** best speed should go in and rewrite in assembler.
+**
+** I have tested this only on a 68030 workstation and 386/ix integrated
+** in with -msoft-float.
+*/
+
+#include "floatlib.h"
+
+/* convert double to int */
+long
+__fixdfsi (double a1)
+{
+  register union double_long dl1;
+  register int exp;
+  register long l;
+
+  dl1.d = a1;
+
+  if (!dl1.l.upper && !dl1.l.lower)
+    return (0);
+
+  exp = EXPD (dl1) - EXCESSD - 31;
+  l = MANTD (dl1);
+
+  if (exp > 0)
+      return SIGND(dl1) ? (1<<31) : ((1ul<<31)-1);
+
+  /* shift down until exp = 0 or l = 0 */
+  if (exp < 0 && exp > -32 && l)
+    l >>= -exp;
+  else
+    return (0);
+
+  return (SIGND (dl1) ? -l : l);
+}
diff -Nur -x CVS /opt/src/uClinux-dist/uClibc/libc/sysdeps/linux/microblaze/floatlib.h uClibc/libc/sysdeps/linux/microblaze/floatlib.h
--- /opt/src/uClinux-dist/uClibc/libc/sysdeps/linux/microblaze/floatlib.h	1970-01-01 10:00:00.000000000 +1000
+++ uClibc/libc/sysdeps/linux/microblaze/floatlib.h	2004-03-10 09:33:22.000000000 +1000
@@ -0,0 +1,144 @@
+/*
+** libgcc support for software floating point.
+** Copyright (C) 1991 by Pipeline Associates, Inc.  All rights reserved.
+** Permission is granted to do *anything* you want with this file,
+** commercial or otherwise, provided this message remains intact.  So there!
+** I would appreciate receiving any updates/patches/changes that anyone
+** makes, and am willing to be the repository for said changes (am I
+** making a big mistake?).
+
+Warning! Only single-precision is actually implemented.  This file
+won't really be much use until double-precision is supported.
+
+However, once that is done, this file might eventually become a
+replacement for libgcc1.c.  It might also make possible
+cross-compilation for an IEEE target machine from a non-IEEE
+host such as a VAX.
+
+If you'd like to work on completing this, please talk to rms@gnu.ai.mit.edu.
+
+--> Double precision floating support added by James Carlson on 20 April 1998.
+
+**
+** Pat Wood
+** Pipeline Associates, Inc.
+** pipeline!phw@motown.com or
+** sun!pipeline!phw or
+** uunet!motown!pipeline!phw
+**
+** 05/01/91 -- V1.0 -- first release to gcc mailing lists
+** 05/04/91 -- V1.1 -- added float and double prototypes and return values
+**                  -- fixed problems with adding and subtracting zero
+**                  -- fixed rounding in truncdfsf2
+**                  -- fixed SWAP define and tested on 386
+*/
+
+/*
+** The following are routines that replace the libgcc soft floating point
+** routines that are called automatically when -msoft-float is selected.
+** The support single and double precision IEEE format, with provisions
+** for byte-swapped machines (tested on 386).  Some of the double-precision
+** routines work at full precision, but most of the hard ones simply punt
+** and call the single precision routines, producing a loss of accuracy.
+** long long support is not assumed or included.
+** Overall accuracy is close to IEEE (actually 68882) for single-precision
+** arithmetic.  I think there may still be a 1 in 1000 chance of a bit
+** being rounded the wrong way during a multiply.  I'm not fussy enough to
+** bother with it, but if anyone is, knock yourself out.
+**
+** Efficiency has only been addressed where it was obvious that something
+** would make a big difference.  Anyone who wants to do this right for
+** best speed should go in and rewrite in assembler.
+**
+** I have tested this only on a 68030 workstation and 386/ix integrated
+** in with -msoft-float.
+*/
+
+#ifndef __FLOAT_LIB_H__
+#define __FLOAT_LIB_H__
+/* the following deal with IEEE single-precision numbers */
+#define EXCESS		126
+#define SIGNBIT		0x80000000
+#define HIDDEN		(1 << 23)
+#define SIGN(fp)	((fp) & SIGNBIT)
+#define EXP(fp)		(((fp) >> 23) & 0xFF)
+#define MANT(fp)	(((fp) & 0x7FFFFF) | HIDDEN)
+#define PACK(s,e,m)	((s) | ((e) << 23) | (m))
+
+/* the following deal with IEEE double-precision numbers */
+#define EXCESSD		1022
+#define HIDDEND		(1 << 20)
+#define EXPD(fp)	(((fp.l.upper) >> 20) & 0x7FF)
+#define SIGND(fp)	((fp.l.upper) & SIGNBIT)
+#define MANTD(fp)	(((((fp.l.upper) & 0xFFFFF) | HIDDEND) << 10) | \
+				(fp.l.lower >> 22))
+#define HIDDEND_LL	((long long)1 << 52)
+#define MANTD_LL(fp)	((fp.ll & (HIDDEND_LL-1)) | HIDDEND_LL)
+#define PACKD_LL(s,e,m)	(((long long)((s)+((e)<<20))<<32)|(m))
+
+/* define SWAP for 386/960 reverse-byte-order brain-damaged CPUs */
+union double_long {
+    double d;
+#ifdef SWAP
+    struct {
+      unsigned long lower;
+      long upper;
+    } l;
+#else
+    struct {
+      long upper;
+      unsigned long lower;
+    } l;
+#endif
+    long long ll;
+};
+
+union float_long
+  {
+    float f;
+    long l;
+  };
+
+#endif
+
+/* Functions defined in different files */
+
+float __addsf3 (float, float);
+float __subsf3 (float, float);
+long __cmpsf2 (float, float);
+float __mulsf3 (float, float);
+float __divsf3 (float, float);
+double __floatsidf (register long);
+double __floatdidf (register long long);
+float __floatsisf (register long );
+float __floatdisf (register long long );
+float __negsf2 (float);
+double __negdf2 (double);
+double __extendsfdf2 (float);
+float __truncdfsf2 (double);
+long __cmpdf2 (double, double);
+long __fixsfsi (float);
+long __fixdfsi (double);
+long long __fixdfdi (double);
+unsigned long __fixunsdfsi (double);
+unsigned long long __fixunsdfdi (double);
+double __adddf3 (double, double);
+double __subdf3 (double, double);
+double __muldf3 (double, double);
+double __divdf3 (double, double);
+int __gtdf2 (double, double);
+int __gedf2 (double, double);
+int __ltdf2 (double, double);
+int __ledf2 (double, double);
+int __eqdf2 (double, double);
+int __nedf2 (double, double);
+int __gtsf2 (float, float);
+int __gesf2 (float, float);
+int __ltsf2 (float, float);
+int __lesf2 (float, float);
+int __eqsf2 (float, float);
+int __nesf2 (float, float);
+
+
+
+
diff -Nur -x CVS /opt/src/uClinux-dist/uClibc/libc/sysdeps/linux/microblaze/Makefile uClibc/libc/sysdeps/linux/microblaze/Makefile
--- /opt/src/uClinux-dist/uClibc/libc/sysdeps/linux/microblaze/Makefile	2003-09-02 15:14:27.000000000 +1000
+++ uClibc/libc/sysdeps/linux/microblaze/Makefile	2004-03-10 09:33:21.000000000 +1000
@@ -27,22 +27,23 @@
 
 CRT0_SRC = crt0.S
 CRT0_OBJ = crt0.o crt1.o
+#CTOR_TARGETS=$(TOPDIR)lib/crti.o $(TOPDIR)lib/crtn.o
 
 SSRC = setjmp.S __longjmp.S vfork.S
 SOBJS = $(patsubst %.S,%.o, $(SSRC))
 
-CSRC = _mmap.c syscall.c clone.c
+CSRC = _mmap.c syscall.c clone.c fixdfsi.c
 COBJS = $(patsubst %.c,%.o, $(CSRC))
 
 OBJS = $(SOBJS) $(COBJS)
 
-
 all: $(OBJS) $(LIBC)
 
 $(LIBC): ar-target 
 
-ar-target: $(OBJS) $(CRT0_OBJ)
+ar-target: $(OBJS) $(CRT0_OBJ) $(CTOR_TARGETS)
 	$(AR) $(ARFLAGS) $(LIBC) $(OBJS)
+	mkdir -p $(TOPDIR)lib/
 	cp $(CRT0_OBJ) $(TOPDIR)lib/
 
 $(CRT0_OBJ): $(CRT0_SRC)
@@ -57,9 +58,33 @@
 	$(CC) $(CFLAGS) -c $< -o $@
 	$(STRIPTOOL) -x -R .note -R .comment $*.o
 
+ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y)
+crti.o: crti.S
+	$(CC) $(CFLAGS) -c crti.S -o crti.o
+
+$(TOPDIR)lib/crti.o: crti.o
+	$(INSTALL) -d $(TOPDIR)lib/
+	cp crti.o $(TOPDIR)lib/
+
+crtn.o: crtn.S
+	$(CC) $(CFLAGS) -c crtn.S -o crtn.o
+
+$(TOPDIR)lib/crtn.o: crtn.o
+	$(INSTALL) -d $(TOPDIR)lib/
+	cp crtn.o $(TOPDIR)lib/
+else
+$(TOPDIR)lib/crti.o:
+	$(INSTALL) -d $(TOPDIR)lib/
+	$(AR) $(ARFLAGS) $(TOPDIR)lib/crti.o
+$(TOPDIR)lib/crtn.o:
+	$(INSTALL) -d $(TOPDIR)lib/
+	$(AR) $(ARFLAGS) $(TOPDIR)lib/crtn.o
+endif
+
+
 headers:
 
 clean:
-	rm -f *.[oa] *~ core
-	rm -f bits/sysnum.h
+	$(RM) *.[oa] *~ core
+	$(RM) bits/sysnum.h