OSDN Git Service

This commit finishes adding support for the old m68k-coff toolchains by
authorEric Andersen <andersen@codepoet.org>
Mon, 18 Jun 2001 20:05:49 +0000 (20:05 -0000)
committerEric Andersen <andersen@codepoet.org>
Mon, 18 Jun 2001 20:05:49 +0000 (20:05 -0000)
working around a missing header file in the compiler shipped with the
uCsimm and uCdimm.  This should make the folk in Toronto happy, since
now they can use the latest CVS version of uClibc.
 -Erik

Makefile
Rules.mak
extra/Configs/Config.m68k.coff
ldso/Makefile
libc/sysdeps/linux/m68k/Makefile
libc/sysdeps/linux/m68k/float.h [new file with mode: 0644]

index 4c95a48..7516209 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -82,7 +82,7 @@ headers: dummy
        (cd include/bits; ln -sf ../../../../../uClibc_config.h uClibc_config.h)
        $(MAKE) -C libc/sysdeps/linux/$(TARGET_ARCH) headers
 
-uClibc_config.h: Config
+uClibc_config.h: Makefile Config
        @echo "/* WARNING!!! AUTO-GENERATED FILE!!! DO NOT EDIT!!! */" > uClibc_config.h
        @echo "#if !defined __FEATURES_H && !defined __need_uClibc_config_h" >> uClibc_config.h
        @echo "#error Never include <bits/uClibc_config.h> directly; use <features.h> instead." >> uClibc_config.h
@@ -130,6 +130,11 @@ uClibc_config.h: Config
        else \
            echo "#define HAVE_ELF 1" >> uClibc_config.h ; \
        fi
+       @if [ "$(HAVE_SHARED)" = "false" ] ; then \
+           echo "#undef HAVE_SHARED" >> uClibc_config.h ; \
+       else \
+           echo "#define HAVE_SHARED 1" >> uClibc_config.h ; \
+       fi
        @if [ "$(TARGET_ARCH)" = "sh" ] ; then \
            echo "#define NO_UNDERSCORES 1" >> uClibc_config.h ; \
        else \
index 4d9c866..f44ea8d 100644 (file)
--- a/Rules.mak
+++ b/Rules.mak
@@ -71,8 +71,8 @@ endif
 
 NATIVE_ARCH = $(shell uname -m | sed -e 's/i.86/i386/' -e 's/sparc.*/sparc/' -e 's/arm.*/arm/g' -e 's/m68k.*/m68k/' -e 's/ppc/powerpc/g')
 
-ifeq ($(strip $(HAS_MMU)),true)
-       DO_SHARED=shared
+ifeq ($(strip $(HAVE_SHARED)),true)
+    DO_SHARED=shared
 endif
 
 LDSO_PRESENT=$(strip $(shell cd $(TOPDIR)/ldso/d-link; ls -d $(TARGET_ARCH) 2>/dev/null))
index bb9fc33..3247346 100644 (file)
@@ -66,19 +66,19 @@ HAS_MMU = false
 # Set this to `false' if you don't have/need basic floating point support
 # support in libc (strtod, printf, scanf).  Set it to `true' otherwise.
 # Note: If not true, Rules.mak disables libm as well.
-HAS_FLOATING_POINT = false
+HAS_FLOATING_POINT = true
 
 # Set this to `false' if you don't have/need float functions in libm.
 # Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
-HAS_LIBM_FLOAT = false
+HAS_LIBM_FLOAT = true
 
 # Set this to `false' if you don't have/need double functions in libm.
 # Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
-HAS_LIBM_DOUBLE = false
+HAS_LIBM_DOUBLE = true
 
 # Set this to `false' if you don't have/need long double functions in libm.
 # Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
-HAS_LIBM_LONG_DOUBLE = false
+HAS_LIBM_LONG_DOUBLE = true
 
 # Set this to `false' if you don't have/need "(unsigned) long long int" support.
 # Set it to `true' otherwise.
@@ -165,3 +165,6 @@ OPTIMIZATION = $(DEBUG_CFLAGS)
 
 # This is a COFF compiler (ick), so disable all the cool stuff
 HAVE_ELF = false
+
+# We can't properly do shared libraries on m68k (at least, not yet ;-)
+HAVE_SHARED = false
index aa37d2e..0337ab9 100644 (file)
@@ -4,15 +4,21 @@ include $(TOPDIR)Rules.mak
 SUBDIRS = libdl
 ALL_SUBDIRS = util libdl d-link
 
+
+
 all:
+ifeq ($(strip $(HAVE_SHARED)),true)
        @if [ -d $(TOPDIR)ldso/d-link/$(TARGET_ARCH) ] ; then \
                $(MAKE) -C d-link; \
        fi;
+endif
 
 shared:
+ifeq ($(strip $(HAVE_SHARED)),true)
        @if [ -d $(TOPDIR)ldso/d-link/$(TARGET_ARCH) ] ; then \
                set -e ; for d in $(SUBDIRS) ; do $(MAKE) -C $$d ; done \
        fi;
+endif
 
 clean:
        set -e ; for d in $(ALL_SUBDIRS) ; do $(MAKE) -C $$d $@ ; done
index 5f2b735..3ca1653 100644 (file)
@@ -60,8 +60,17 @@ $(COBJS): %.o : %.c
        $(STRIPTOOL) -x -R .note -R .comment $*.o
 
 headers:
-       # no arch-specific headers
+ifeq ($(strip $(HAVE_ELF)),false)
+               echo "Working around compiler bug in the m68k-pic-coff toolchain"
+               cd $(TOPDIR)/include;ln -fs ../libc/sysdeps/linux/m68k/float.h .
+else
+               # no arch-specific headers
+endif
+
 
 clean:
        rm -f *.[oa] *~ core
+ifeq ($(strip $(HAVE_ELF)),false)
+       rm -f $(TOPDIR)/include/float.h
+endif
 
diff --git a/libc/sysdeps/linux/m68k/float.h b/libc/sysdeps/linux/m68k/float.h
new file mode 100644 (file)
index 0000000..7dbe4e9
--- /dev/null
@@ -0,0 +1,96 @@
+/* float.h for target with IEEE 32 bit and 64 bit floating point formats */
+#ifndef _FLOAT_H_
+#define _FLOAT_H_
+/* Produced by enquire version 4.3, CWI, Amsterdam */
+
+   /* Radix of exponent representation */
+#undef FLT_RADIX
+#define FLT_RADIX 2
+   /* Number of base-FLT_RADIX digits in the significand of a float */
+#undef FLT_MANT_DIG
+#define FLT_MANT_DIG 24
+   /* Number of decimal digits of precision in a float */
+#undef FLT_DIG
+#define FLT_DIG 6
+   /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */
+#undef FLT_ROUNDS
+#define FLT_ROUNDS 1
+   /* Difference between 1.0 and the minimum float greater than 1.0 */
+#undef FLT_EPSILON
+#define FLT_EPSILON 1.19209290e-07F
+   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */
+#undef FLT_MIN_EXP
+#define FLT_MIN_EXP (-125)
+   /* Minimum normalised float */
+#undef FLT_MIN
+#define FLT_MIN 1.17549435e-38F
+   /* Minimum int x such that 10**x is a normalised float */
+#undef FLT_MIN_10_EXP
+#define FLT_MIN_10_EXP (-37)
+   /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */
+#undef FLT_MAX_EXP
+#define FLT_MAX_EXP 128
+   /* Maximum float */
+#undef FLT_MAX
+#define FLT_MAX 3.40282347e+38F
+   /* Maximum int x such that 10**x is a representable float */
+#undef FLT_MAX_10_EXP
+#define FLT_MAX_10_EXP 38
+
+   /* Number of base-FLT_RADIX digits in the significand of a double */
+#undef DBL_MANT_DIG
+#define DBL_MANT_DIG 53
+   /* Number of decimal digits of precision in a double */
+#undef DBL_DIG
+#define DBL_DIG 15
+   /* Difference between 1.0 and the minimum double greater than 1.0 */
+#undef DBL_EPSILON
+#define DBL_EPSILON 2.2204460492503131e-16
+   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */
+#undef DBL_MIN_EXP
+#define DBL_MIN_EXP (-1021)
+   /* Minimum normalised double */
+#undef DBL_MIN
+#define DBL_MIN 2.2250738585072014e-308
+   /* Minimum int x such that 10**x is a normalised double */
+#undef DBL_MIN_10_EXP
+#define DBL_MIN_10_EXP (-307)
+   /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */
+#undef DBL_MAX_EXP
+#define DBL_MAX_EXP 1024
+   /* Maximum double */
+#undef DBL_MAX
+#define DBL_MAX 1.7976931348623157e+308
+   /* Maximum int x such that 10**x is a representable double */
+#undef DBL_MAX_10_EXP
+#define DBL_MAX_10_EXP 308
+
+   /* Number of base-FLT_RADIX digits in the significand of a long double */
+#undef LDBL_MANT_DIG
+#define LDBL_MANT_DIG 53
+   /* Number of decimal digits of precision in a long double */
+#undef LDBL_DIG
+#define LDBL_DIG 15
+   /* Difference between 1.0 and the minimum long double greater than 1.0 */
+#undef LDBL_EPSILON
+#define LDBL_EPSILON 2.2204460492503131e-16L
+   /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */
+#undef LDBL_MIN_EXP
+#define LDBL_MIN_EXP (-1021)
+   /* Minimum normalised long double */
+#undef LDBL_MIN
+#define LDBL_MIN 2.2250738585072014e-308L
+   /* Minimum int x such that 10**x is a normalised long double */
+#undef LDBL_MIN_10_EXP
+#define LDBL_MIN_10_EXP (-307)
+   /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */
+#undef LDBL_MAX_EXP
+#define LDBL_MAX_EXP 1024
+   /* Maximum long double */
+#undef LDBL_MAX
+#define LDBL_MAX 1.7976931348623157e+308L
+   /* Maximum int x such that 10**x is a representable long double */
+#undef LDBL_MAX_10_EXP
+#define LDBL_MAX_10_EXP 308
+
+#endif /*  _FLOAT_H_ */