diff options
| -rw-r--r-- | Makefile | 7 | ||||
| -rw-r--r-- | Rules.mak | 4 | ||||
| -rw-r--r-- | extra/Configs/Config.m68k.coff | 11 | ||||
| -rw-r--r-- | ldso/Makefile | 6 | ||||
| -rw-r--r-- | libc/sysdeps/linux/m68k/Makefile | 11 | ||||
| -rw-r--r-- | libc/sysdeps/linux/m68k/float.h | 96 | 
6 files changed, 127 insertions, 8 deletions
| @@ -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 \ @@ -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)) diff --git a/extra/Configs/Config.m68k.coff b/extra/Configs/Config.m68k.coff index bb9fc3369..32473466e 100644 --- a/extra/Configs/Config.m68k.coff +++ b/extra/Configs/Config.m68k.coff @@ -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 diff --git a/ldso/Makefile b/ldso/Makefile index aa37d2ea4..0337ab90a 100644 --- a/ldso/Makefile +++ b/ldso/Makefile @@ -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 diff --git a/libc/sysdeps/linux/m68k/Makefile b/libc/sysdeps/linux/m68k/Makefile index 5f2b73581..3ca165344 100644 --- a/libc/sysdeps/linux/m68k/Makefile +++ b/libc/sysdeps/linux/m68k/Makefile @@ -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 index 000000000..7dbe4e92a --- /dev/null +++ b/libc/sysdeps/linux/m68k/float.h @@ -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_ */ | 
