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

Re: [microblaze-uclinux] patches!



I just found out why the previous patches were failing for me. I'm logging onto my Linux machine remotely from a windows machine, so the patch attachment was saved by my email as a dos formatted file. I thought I would mention it in case anybody else has the same problem.

John Williams wrote:
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/