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
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@itee.uq.edu.au
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/