From 2591e249d7b46e99027be1393a30a18ed3be9ff3 Mon Sep 17 00:00:00 2001 From: Jens Maus Date: Tue, 4 Mar 2008 16:25:35 +0000 Subject: [PATCH] - [jlangner]: changed the GNUmakefile.68k to also build soft-float variants of all our libraries. In addition the specs file now also respects the -msoft-float option at link time and sets the default link directory accordingly. git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15176 87f5fb63-7c3d-0410-a384-fd976d0f7a62 --- documentation/specs | 2 +- library/GNUmakefile.68k | 70 +++++++++++++++++++++++++++++++++++++---- library/changes | 10 ++++-- 3 files changed, 72 insertions(+), 10 deletions(-) diff --git a/documentation/specs b/documentation/specs index 502351b..acde39d 100644 --- a/documentation/specs +++ b/documentation/specs @@ -17,7 +17,7 @@ *link: -%{fbaserel:%{!resident:-m amiga_bss -fl libb}} %{resident:-m amiga_bss -amiga-datadata-reloc -fl libb} %{fbaserel32:%{!resident32:-m amiga_bss -fl libb32}} %{resident32:-m amiga_bss -amiga-datadata-reloc -fl libb32} %{g:-amiga-debug-hunk} %{m68020:-fl libm020} %{mc68020:-fl libm020} %{m68030:-fl libm020} %{m68040:-fl libm020} %{m68060:-fl libm020} %{m68020-40:-fl libm020} %{m68020-60:-fl libm020} %{noixemul:} +%{fbaserel:%{!resident:-m amiga_bss -fl libb}} %{resident:-m amiga_bss -amiga-datadata-reloc -fl libb} %{fbaserel32:%{!resident32:-m amiga_bss -fl libb32}} %{resident32:-m amiga_bss -amiga-datadata-reloc -fl libb32} %{g:-amiga-debug-hunk} %{m68020:-fl libm020} %{mc68020:-fl libm020} %{m68030:-fl libm020} %{m68040:-fl libm020} %{m68060:-fl libm020} %{m68020-40:-fl libm020} %{m68020-60:-fl libm020} %{msoft-float:-fl soft-float} %{noixemul:} *lib: %{mstackextend:-lstack} -lc -lamiga -ldebug -lgcc -lc diff --git a/library/GNUmakefile.68k b/library/GNUmakefile.68k index 9b40b48..43ed3d5 100644 --- a/library/GNUmakefile.68k +++ b/library/GNUmakefile.68k @@ -1,11 +1,19 @@ # -# $Id: GNUmakefile.68k,v 1.101 2007-01-06 10:09:48 obarthel Exp $ +# $Id: GNUmakefile.68k,v 1.102 2008-03-04 16:25:35 damato Exp $ # # :ts=8 # ############################################################################## +############################################ +# find out the HOST operating system +# on which this makefile is run (default to AmigaOS) +HOST ?= $(shell uname) +ifeq ($(HOST),) + HOST = AmigaOS +endif + CC = gcc AR = ar -q RANLIB = ranlib @@ -14,6 +22,16 @@ DELETE = delete all quiet MAKEDIR = makedir MAKE = $(MAKE_COMMAND) -f GNUmakefile.68k +# override certain things for non-native builds +ifneq ($(HOST), AmigaOS) + CC = m68k-amigaos-gcc + AR = m68k-amigaos-ar -q + RANLIB = m68k-amigaos-ranlib + COPY = cp + DELETE = rm -rf + MAKEDIR = mkdir +endif + ############################################################################## ifeq (,$(TYPE)) @@ -95,6 +113,22 @@ CODE_TYPE := -m68000 CODE_FLAGS := endif +ifeq (soft_float_020,$(TYPE)) +CODE_TYPE := -m68020-60 -msoft-float +CODE_FLAGS := -DM68020 -DUSE_64_BIT_INTS +endif + +ifeq (soft_float_data,$(TYPE)) +CODE_TYPE := -m68020-60 -msoft-float +CODE_FLAGS := -fbaserel -DSMALL_DATA -DM68020 -DUSE_64_BIT_INTS +endif + +ifeq (soft_float_data32,$(TYPE)) +CODE_TYPE := -m68020-60 -msoft-float +CODE_FLAGS := -fbaserel32 -DSMALL_DATA32 -DM68020 -DUSE_64_BIT_INTS +endif + + ############################################################################## WARNINGS = \ @@ -109,7 +143,7 @@ INCLUDES = -Iinclude -I. -Inetinclude #OPTIONS = -fno-builtin -fno-common -DNDEBUG -D__THREAD_SAFE #OPTIONS = -fno-builtin -fno-common -D__MEM_DEBUG #OPTIONS = -fno-builtin -fno-common -DDEBUG -D__MEM_DEBUG -DNO_INLINE_STDARG - OPTIMIZE = -O -fomit-frame-pointer -fstrength-reduce -finline-functions + OPTIMIZE = -O3 -fomit-frame-pointer -funroll-loops -finline-functions #OPTIMIZE = -O2 -fomit-frame-pointer #DEBUG = -g @@ -964,10 +998,13 @@ all: \ lib/n32bcrt0.o \ lib/n32rcrt0.o \ lib/libm020/libm.a \ + lib/libm020/soft-float/libm.a \ lib/libm.a \ lib/libb/libm.a \ lib/libb/libm020/libm.a \ - lib/libb32/libm020/libm.a + lib/libb/libm020/soft-float/libm.a \ + lib/libb32/libm020/libm.a \ + lib/libb32/libm020/soft-float/libm.a ############################################################################## @@ -980,7 +1017,7 @@ clean: realclean: $(MAKE) clean -$(DELETE) lib small_data_020 small_data small_data32 large_data_020 \ - large_data + large_data soft_float_020 soft_float_data soft_float_data32 ############################################################################## @@ -1026,15 +1063,24 @@ lib/libb : lib lib/libb/libm020 : lib lib/libb -$(MAKEDIR) $@ +lib/libb/libm020/soft-float : lib lib/libb/libm020 + -$(MAKEDIR) $@ + lib/libb32/libm020 : lib lib/libb32 -$(MAKEDIR) $@ +lib/libb32/libm020/soft-float : lib lib/libb32/libm020 + -$(MAKEDIR) $@ + lib/libb32 : lib -$(MAKEDIR) $@ lib/libm020 : lib -$(MAKEDIR) $@ +lib/libm020/soft-float : lib lib/libm020 + -$(MAKEDIR) $@ + lib/libb/libm020/libm.a: lib lib/libb/libm020 $(MAKE) TYPE=small_data_020 kitchen_sink @$(COPY) $(foreach file,$(LIBS_020),small_data_020/$(file)) lib/libb/libm020 @@ -1055,6 +1101,18 @@ lib/libm.a: lib $(MAKE) TYPE=large_data kitchen_sink @$(COPY) $(foreach file,$(LIBS_68K),large_data/$(file)) lib +lib/libm020/soft-float/libm.a: lib lib/libm020/soft-float + $(MAKE) TYPE=soft_float_020 kitchen_sink + @$(COPY) $(foreach file,$(LIBS_020),soft_float_020/$(file)) lib/libm020/soft-float + +lib/libb/libm020/soft-float/libm.a: lib lib/libb/libm020/soft-float + $(MAKE) TYPE=soft_float_data kitchen_sink + @$(COPY) $(foreach file,$(LIBS_020),soft_float_data/$(file)) lib/libb/libm020/soft-float + +lib/libb32/libm020/soft-float/libm.a: lib lib/libb32/libm020/soft-float + $(MAKE) TYPE=soft_float_data32 kitchen_sink + @$(COPY) $(foreach file,$(LIBS_020),soft_float_data32/$(file)) lib/libb32/libm020/soft-float + lib/nrcrt0.o : lib nrcrt0.o @$(COPY) nrcrt0.o lib @@ -1265,7 +1323,7 @@ nrcrt0.o : nrcrt0.S nr32crt0.o : nrcrt0.S @echo "Assembling $< [resident32]" - @$(CC) -traditional -m68020 -DSMALL_DATA32 -o $@ -c nrcrt0.S + @$(CC) -traditional -m68020 -msoft-float -DSMALL_DATA32 -o $@ -c nrcrt0.S nbcrt0.o : ncrt0.S @echo "Assembling $< [small_data]" @@ -1273,7 +1331,7 @@ nbcrt0.o : ncrt0.S nb32crt0.o : ncrt0.S @echo "Assembling $< [small_data32]" - @$(CC) -traditional -m68020 -DSMALL_DATA32 -o $@ -c ncrt0.S + @$(CC) -traditional -m68020 -msoft-float -DSMALL_DATA32 -o $@ -c ncrt0.S ncrt0.o : ncrt0.S @echo "Assembling $< [large_data]" diff --git a/library/changes b/library/changes index 43d9972..5054a28 100644 --- a/library/changes +++ b/library/changes @@ -1,6 +1,10 @@ -- the log() and log10() functions always returned -inf() even if the arguments - was within the valid range for a log() function. Using DBL_EPSILON as the - threshold was not correct as EPSILON is 2.2204460492503131E-16 whereas +- [jlangner]: changed the GNUmakefile.68k to also build soft-float variants of all + our libraries. In addition the specs file now also respects the -msoft-float + option at link time and sets the default link directory accordingly. + +- [jlangner]: the log() and log10() functions always returned -inf() even if the + arguments was within the valid range for a log() function. Using DBL_EPSILON as + the threshold was not correct as EPSILON is 2.2204460492503131E-16 whereas values like 1E-200 are still valid double values for a log(). c.lib 1.202 (16.1.2007)