From e22a2266400fb58d00ba50f683a3c413a6ce44bc Mon Sep 17 00:00:00 2001 From: Olaf Barthel Date: Sat, 13 Nov 2004 12:55:39 +0000 Subject: [PATCH] c.lib 1.183 (13.11.2004) - Cleaned up the OS4 build makefile, losing redundant libraries, adding more startup object code and ultimatively making the whole rebuild logic work again: if code changes and dependencies are set up correctly, it will now get rebuilt. Previously, such changes went unnoticed and you had to rebuild the entire library from scratch. - Added stubs for CreatePort(), DeletePort(), CreateTask(), DeleteTask() and NewList() which have equivalents in exec.library V50 but for which it might be useful if ported code didn't have to reference these explicitly. - mktemp() was broken in libunix.a with Unix path semantics enabled. This was because the name template was translated and translated back again, overwriting the translation buffer. This, funny enough, broke Samba's printing feature. Fixed by translating the name only before each test for "uniqueness" is made. The new code also handles empty "" templates gracefully, which was a problem with both the "standard" and the Unix path semantics flavour. Why is it that I find bugs like this always after having just released another library update? git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14769 87f5fb63-7c3d-0410-a384-fd976d0f7a62 --- library/GNUmakefile.68k | 3 +- library/GNUmakefile.os4 | 296 +++++++++++++++++++------------------ library/amiga.lib_rev.h | 10 +- library/amiga.lib_rev.rev | 2 +- library/amiga_beginio.c | 46 +++++- library/amiga_createport.c | 8 +- library/amiga_createtask.c | 48 +++++- library/amiga_deleteport.c | 8 +- library/amiga_deletetask.c | 28 +++- library/c.lib_rev.h | 10 +- library/c.lib_rev.rev | 2 +- library/changes | 14 ++ library/debug.lib_rev.h | 10 +- library/debug.lib_rev.rev | 2 +- library/m.lib_rev.h | 10 +- library/m.lib_rev.rev | 2 +- library/m881.lib_rev.h | 10 +- library/m881.lib_rev.rev | 2 +- library/net.lib_rev.h | 10 +- library/net.lib_rev.rev | 2 +- library/stack.lib_rev.h | 10 +- library/stack.lib_rev.rev | 2 +- library/unix.lib_rev.h | 10 +- library/unix.lib_rev.rev | 2 +- 24 files changed, 341 insertions(+), 206 deletions(-) diff --git a/library/GNUmakefile.68k b/library/GNUmakefile.68k index 0d76a76..6130b5a 100644 --- a/library/GNUmakefile.68k +++ b/library/GNUmakefile.68k @@ -1,5 +1,5 @@ # -# $Id: GNUmakefile.68k,v 1.13 2004-10-26 16:25:03 obarthel Exp $ +# $Id: GNUmakefile.68k,v 1.14 2004-11-13 12:55:39 obarthel Exp $ # # :ts=8 # @@ -487,7 +487,6 @@ MATH_LIB = \ stdio_vasprintf.o \ stdio_vfprintf.o \ stdio_vfscanf.o \ - stdio_vfscanf.o \ stdio_vprintf.o \ stdio_vsnprintf.o \ stdio_vsprintf.o \ diff --git a/library/GNUmakefile.os4 b/library/GNUmakefile.os4 index 734a50e..5ff3155 100644 --- a/library/GNUmakefile.os4 +++ b/library/GNUmakefile.os4 @@ -1,5 +1,5 @@ # -# $Id: GNUmakefile.os4,v 1.12 2004-10-07 11:03:46 tfrieden Exp $ +# $Id: GNUmakefile.os4,v 1.13 2004-11-13 12:55:39 obarthel Exp $ # # :ts=8 # @@ -35,7 +35,6 @@ ifeq (,$(TYPE)) LIBC_OBJS = libc_objs LIBUNIX_OBJS = libunix_objs LIBM_OBJS = libm_objs -LIBSTACK_OBJS = libstack_objs LIBNET_OBJS = libnet_objs LIBDEBUG_OBJS = libdebug_objs LIBAMIGA_OBJS = libamiga_objs @@ -43,7 +42,6 @@ else LIBC_OBJS = $(TYPE)/libc_objs LIBUNIX_OBJS = $(TYPE)/libunix_objs LIBM_OBJS = $(TYPE)/libm_objs -LIBSTACK_OBJS = $(TYPE)/libstack_objs LIBNET_OBJS = $(TYPE)/libnet_objs LIBDEBUG_OBJS = $(TYPE)/libdebug_objs LIBAMIGA_OBJS = $(TYPE)/libamiga_objs @@ -51,6 +49,7 @@ endif ############################################################################## +# General build rules for all object files and the individual libraries %.o : %.c @echo "Compiling $<" @$(CC) -c $(CFLAGS) $< @@ -67,10 +66,6 @@ $(LIBM_OBJS)/%.o : %.c @echo "Compiling $< [$(TYPE):m]" @$(CC) -o $(LIBM_OBJS)/$*.o -c $(CFLAGS) $(FLOAT_TYPE) $< -$(LIBSTACK_OBJS)/%.o : %.c - @echo "Compiling $< [$(TYPE):stack]" - @$(CC) -o $(LIBSTACK_OBJS)/$*.o -c $(CFLAGS) $< - $(LIBNET_OBJS)/%.o : %.c @echo "Compiling $< [$(TYPE):net]" @$(CC) -o $(LIBNET_OBJS)/$*.o -c $(CFLAGS) -I$(NET_INCLUDE) -DSOCKET_SUPPORT -DUSERGROUP_SUPPORT $< @@ -85,6 +80,7 @@ $(LIBAMIGA_OBJS)/%.o : %.c ############################################################################## +# Build options for the individual libraries ifeq (small_data,$(TYPE)) CODE_TYPE := -msdata=sysv -DSMALL_DATA FLOAT_TYPE := -DPPC_FLOATING_POINT_SUPPORT @@ -95,7 +91,7 @@ CODE_TYPE := -msdata=data FLOAT_TYPE := -DPPC_FLOATING_POINT_SUPPORT endif -ifeq (large_data_softfloat, $(TYPE)) +ifeq (large_data_softfloat,$(TYPE)) CODE_TYPE := -msdata=data -msoft-float FLOAT_TYPE := endif @@ -115,6 +111,7 @@ CFLAGS = $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(CODE_TYPE) $(INCLUDES) ############################################################################## +# All objects files which make up libc.a C_LIB = \ c.lib_rev.o \ ctype_isalnum.o \ @@ -134,9 +131,9 @@ C_LIB = \ ctype_table.o \ dirent_closedir.o \ dirent_data.o \ + dirent_rewinddir.o \ dirent_opendir.o \ dirent_readdir.o \ - dirent_rewinddir.o \ errno_data.o \ fcntl_close.o \ fcntl_creat.o \ @@ -255,39 +252,36 @@ C_LIB = \ stdlib_atol.o \ stdlib_bsearch.o \ stdlib_calloc.o \ + stdlib_checkdetach.o \ + stdlib_constructor.o \ + stdlib_constructor_begin.o \ + stdlib_constructor_end.o \ stdlib_data.o \ stdlib_default_pool_size.o \ stdlib_default_puddle_size.o \ stdlib_destructor.o \ + stdlib_detach.o \ stdlib_disablerequesters.o \ stdlib_div.o \ - stdlib_modsi3.o \ stdlib_divsi3.o \ stdlib_divsi4.o \ - stdlib_umodsi3.o \ - stdlib_udivsi3.o \ - stdlib_udivsi4.o \ + stdlib_dosbase.o \ stdlib_exit.o \ stdlib_free.o \ + stdlib_getdefstacksize.o \ stdlib_getenv.o \ stdlib_getsp.o \ stdlib_init_exit.o \ + stdlib_isresident.o \ stdlib_labs.o \ stdlib_ldiv.o \ - stdlib_getdefstacksize.o \ - stdlib_stackargbytes.o \ - stdlib_stack_usage.o \ - stdlib_checkdetach.o \ - stdlib_detach.o \ - stdlib_isresident.o \ - stdlib_sysbase.o \ - stdlib_dosbase.o \ stdlib_machine_test.o \ stdlib_malloc.o \ stdlib_math.o \ stdlib_mkdtemp.o \ stdlib_mkstemp.o \ stdlib_mktemp.o \ + stdlib_modsi3.o \ stdlib_mulsi3.o \ stdlib_never_free.o \ stdlib_putenv.o \ @@ -301,19 +295,25 @@ C_LIB = \ stdlib_showerror.o \ stdlib_socket.o \ stdlib_srand.o \ + stdlib_stackargbytes.o \ stdlib_stackcheck.o \ stdlib_stackoverflow.o \ stdlib_stacksafezone.o \ stdlib_stacksize.o \ + stdlib_stack_usage.o \ stdlib_startup.o \ stdlib_strtol.o \ stdlib_strtoul.o \ stdlib_strtoll.o \ stdlib_strtoull.o \ stdlib_swapstack.o \ + stdlib_sysbase.o \ stdlib_system.o \ stdlib_termination_message.o \ stdlib_threshold.o \ + stdlib_udivsi3.o \ + stdlib_udivsi4.o \ + stdlib_umodsi3.o \ stdlib_unsetenv.o \ stdlib_wildcard_expand.o \ strings_strcasecmp.o \ @@ -380,21 +380,21 @@ C_LIB = \ unistd_realpath.o \ unistd_sleep.o \ unistd_symlink.o \ - unistd_time_delay.o \ unistd_timer.o \ + unistd_time_delay.o \ unistd_truncate.o \ unistd_unlink.o \ unistd_usleep.o \ - utime_utime.o - + utime_utime.o +# All objects files which make up libunix.a UNIX_LIB = \ unix.lib_rev.o \ dirent_closedir.o \ dirent_data.o \ + dirent_rewinddir.o \ dirent_opendir.o \ dirent_readdir.o \ - dirent_rewinddir.o \ fcntl_creat.o \ fcntl_fcntl.o \ fcntl_open.o \ @@ -408,12 +408,12 @@ UNIX_LIB = \ stat_rmdir.o \ stat_stat.o \ stdio_fdhookentry.o \ - stdio_init_exit.o \ - stdio_locksemaphorename.o \ - stdio_openiob.o \ stdio_fflush.o \ stdio_fopen.o \ stdio_fopen.o \ + stdio_init_exit.o \ + stdio_locksemaphorename.o \ + stdio_openiob.o \ stdio_popen.o \ stdio_remove.o \ stdio_rename.o \ @@ -443,6 +443,7 @@ UNIX_LIB = \ unistd_wildcard_expand.o \ utime_utime.o +# All objects files which make up libm.a MATH_LIB = \ math_acos.o \ math_asin.o \ @@ -492,7 +493,6 @@ MATH_LIB = \ stdio_vasprintf.o \ stdio_vfprintf.o \ stdio_vfscanf.o \ - stdio_vfscanf.o \ stdio_vprintf.o \ stdio_vsnprintf.o \ stdio_vsprintf.o \ @@ -501,48 +501,7 @@ MATH_LIB = \ stdlib_strtod.o \ time_difftime.o -MATH_LIB_IEEE = \ - m.lib_rev.o \ - $(MATH_LIB) \ - math_adddf3.o \ - math_addsf3.o \ - math_divdf3.o \ - math_divsf3.o \ - math_eqdf2.o \ - math_eqsf2.o \ - math_extendsfdf2.o \ - math_fixdfsi.o \ - math_fixsfsi.o \ - math_fixunsdfsi.o \ - math_fixunssfsi.o \ - math_floatsidf.o \ - math_floatsisf.o \ - math_gedf2.o \ - math_gesf2.o \ - math_gtdf2.o \ - math_gtsf2.o \ - math_ledf2.o \ - math_lesf2.o \ - math_ltdf2.o \ - math_ltsf2.o \ - math_muldf3.o \ - math_mulsf3.o \ - math_nedf2.o \ - math_negdf2.o \ - math_negsf2.o \ - math_nesf2.o \ - math_subdf3.o \ - math_subsf3.o \ - math_truncdfsf2.o - -STACK_LIB = \ - stack.lib_rev.o \ - stdlib_setjmp.o \ - stdlib_stackextension.o \ - stdlib_stackminframe.o \ - stdlib_stackoverflow.o \ - stdlib_stacksafezone.o - +# All objects files which make up libnet.a NET_LIB = \ net.lib_rev.o \ socket_accept.o \ @@ -586,6 +545,7 @@ NET_LIB = \ socket_socket.o \ socket_hook_entry.o \ socket_hstrerror.o \ + stat_umask.o \ usergroup_crypt.o \ usergroup_data.o \ usergroup_endgrent.o \ @@ -614,13 +574,12 @@ NET_LIB = \ usergroup_setregid.o \ usergroup_setreuid.o \ usergroup_setsid.o \ - usergroup_setuid.o \ - stat_umask.o + usergroup_setuid.o +# All objects files which make up libdebug.a DEBUG_LIB = \ debug.lib_rev.o \ debug.o \ - debug_level.o \ debug_cmpstrexec.o \ debug_kcmpstr.o \ debug_kdofmt.o \ @@ -646,8 +605,10 @@ DEBUG_LIB = \ debug_kputstr1.o \ debug_kputstr2.o \ debug_kvprintf1.o \ - debug_kvprintf2.o + debug_kvprintf2.o \ + debug_level.o +# All objects files which make up libamiga.a AMIGA_LIB = \ amiga.lib_rev.o \ amiga_acrypt.o \ @@ -656,10 +617,17 @@ AMIGA_LIB = \ amiga_argarrayinit.o \ amiga_argint.o \ amiga_argstring.o \ + amiga_beginio.o \ amiga_callhooka.o \ amiga_coercemethod.o \ + amiga_createextio.o \ + amiga_createport.o \ amiga_createstdio.o \ + amiga_createtask.o \ + amiga_deleteextio.o \ + amiga_deleteport.o \ amiga_deletestdio.o \ + amiga_deletetask.o \ amiga_domethod.o \ amiga_dosupermethod.o \ amiga_dotimer.o \ @@ -667,6 +635,7 @@ AMIGA_LIB = \ amiga_freeievents.o \ amiga_hotkey.o \ amiga_invertstring.o \ + amiga_newlist.o \ amiga_rangerand.o \ amiga_remtof.o \ amiga_setsuperattrs.o \ @@ -675,46 +644,52 @@ AMIGA_LIB = \ ############################################################################## -LIBS := $(LIBC_OBJS)/libc.a $(LIBSTACK_OBJS)/libstack.a $(LIBUNIX_OBJS)/libunix.a \ - $(LIBDEBUG_OBJS)/libdebug.a $(LIBAMIGA_OBJS)/libamiga.a \ - $(LIBM_OBJS)/libm.a $(LIBNET_OBJS)/libnet.a +# The libraries to be built, prefixed by the respective path names +LIBS := \ + $(LIBC_OBJS)/libc.a \ + $(LIBUNIX_OBJS)/libunix.a \ + $(LIBDEBUG_OBJS)/libdebug.a \ + $(LIBAMIGA_OBJS)/libamiga.a \ + $(LIBM_OBJS)/libm.a \ + $(LIBNET_OBJS)/libnet.a ############################################################################## +# The startup object files to be built +STARTUPS := bcrt0.o bcrtbegin.o bcrtend.o crt0.o crtbegin.o crtend.o mainb.o mainnb.o ############################################################################## -STARTUPS := crt0.o crtbegin.o crtend.o mainnb.o - -############################################################################## - +# This is the first target: it creates the necessary directories, then proceeds +# to build the startup object files and finally the libraries all: \ - lib/crt0.o \ - lib/crtbegin.o \ - lib/crtend.o \ - lib/mainnb.o \ - lib/libm.a \ - lib/small-data/libm.a \ + lib \ + lib/soft-float \ + lib/small-data \ + small_data \ + large_data \ + large_data_softfloat \ lib/bcrt0.o \ lib/bcrtbegin.o \ lib/bcrtend.o \ - lib/soft-float/libc.a - -copy: - $(COPY) $(foreach file,$(LIBS),large_data/$(file)) lib + lib/crt0.o \ + lib/crtbegin.o \ + lib/crtend.o \ + lib/mainb.o \ + lib/mainnb.o \ + lib/libm.a \ + lib/small-data/libm.a \ + lib/soft-float/libm.a ############################################################################## +# Delete all object files and libraries clean: - -$(DELETE) $(TYPE) $(STARTUPS) \ - $(LIBC_OBJS) $(LIBUNIX_OBJS) $(LIBM_OBJS) $(LIBSTACK_OBJS) $(LIBNET_OBJS) $(LIBDEBUG_OBJS) $(LIBAMIGA_OBJS) - -realclean: - $(MAKE) clean - -$(DELETE) lib small_data large_data large_data_softfloat + -$(DELETE) $(STARTUPS) lib small_data large_data large_data_softfloat ############################################################################## +# Update the version numbers bound to the individual libraries version: cp c.lib_rev.rev amiga.lib_rev.rev cp c.lib_rev.rev debug.lib_rev.rev @@ -734,43 +709,74 @@ version: ############################################################################## +# Tag all files with a certain version number cvs-tag: cvs -q tag V1_`cat c.lib_rev.rev` ############################################################################## -kitchen_sink: $(TYPE) $(LIBS) $(STARTUPS) - -############################################################################## - -ifneq (,$(TYPE)) -$(TYPE): - $(MAKEDIR) $@ -endif +# This target first creates a directory to store the object files in, then +# proceeds to build the libraries from the code. It is invoked by the +# individual library build targets below. +all_libraries: $(TYPE) $(LIBS) ############################################################################## +# These create the required subdirectories to store object files and +# libraries in lib: -$(MAKEDIR) $@ -lib/small-data: +lib/small-data: lib -$(MAKEDIR) $@ -lib/soft-float: +lib/soft-float: lib -$(MAKEDIR) $@ -lib/libm.a: lib - $(MAKE) TYPE=large_data kitchen_sink +small_data: + -$(MAKEDIR) $@ + +large_data: + -$(MAKEDIR) $@ + +large_data_softfloat: + -$(MAKEDIR) $@ + +############################################################################## + +# Dependencies for libm.a (large data variant with hardware floating point code +# support): this actually ends up building all the libraries rather than just +# libm.a +lib/libm.a: large_data large_data/libm.a + +large_data/libm.a: + $(MAKE) TYPE=large_data all_libraries $(COPY) $(foreach file,$(LIBS),large_data/$(file)) lib -lib/small-data/libm.a: lib lib/small-data - $(MAKE) TYPE=small_data kitchen_sink - $(COPY) $(foreach file,$(LIBS),small_data/$(file)) lib/small-data +############################################################################## -lib/soft-float/libc.a: lib lib/soft-float - $(MAKE) TYPE=large_data_softfloat kitchen_sink +# Dependencies for libm.a (large data variant with software floating point code +# support): this actually ends up building all the libraries rather than just +# libm.a +lib/soft-float/libm.a: large_data_softfloat large_data_softfloat/libm.a + +large_data_softfloat/libm.a: + $(MAKE) TYPE=large_data_softfloat all_libraries $(COPY) $(foreach file,$(LIBS),large_data_softfloat/$(file)) lib/soft-float +############################################################################## + +# Dependencies for libm.a (small data variant): this actually ends up building all +# the libraries rather than just libm.a +lib/small-data/libm.a: small_data small_data/libm.a + +small_data/libm.a: + $(MAKE) TYPE=small_data all_libraries + $(COPY) $(foreach file,$(LIBS),small_data/$(file)) lib/small-data + +############################################################################## + +# Rules to build and move the startup code lib/crt0.o : lib crt0.o $(COPY) crt0.o lib @@ -794,25 +800,38 @@ lib/bcrtbegin.o : lib bcrtbegin.o lib/bcrtend.o : lib bcrtend.o $(COPY) bcrtend.o lib - + ############################################################################## -$(LIBAMIGA_OBJS)/amiga_hookentry.o : amiga_hookentry.c - +# Individual dependencies which tell make to build the object files from +# 'C' source files rather than the assembly language source files of the +# same name (e.g. stdlib_getsp.c instead of stdlib_getsp.asm). $(LIBC_OBJS)/stdlib_getsp.o : stdlib_getsp.c $(LIBC_OBJS)/stdlib_swapstack.o : stdlib_swapstack.c $(LIBC_OBJS)/stdlib_setjmp.o : stdlib_setjmp.c -$(LIBSTACK_OBJS)/stdlib_setjmp.o : stdlib_setjmp.c +############################################################################## + +# Build rules for version information that goes into each library +$(LIBC_OBJS)/c.lib_rev.o : c.lib_rev.c c.lib_rev.h + +$(LIBUNIX_OBJS)/unix.lib_rev.o : unix.lib_rev.c unix.lib_rev.h + +$(LIBM_OBJS)/m.lib_rev.o : m.lib_rev.c m.lib_rev.h + +$(LIBNET_OBJS)/net.lib_rev.o : net.lib_rev.c net.lib_rev.h + +$(LIBDEBUG_OBJS)/debug.lib_rev.o : debug.lib_rev.c debug.lib_rev.h + +$(LIBAMIGA_OBJS)/amiga.lib_rev.o : amiga.lib_rev.c amiga.lib_rev.h ############################################################################## -$(LIBC_OBJS)/stdlib_stacksize.o : stdlib_stacksize.c stdlib_gcc_help.h - -$(LIBC_OBJS)/stdlib_shell_escape.o : stdlib_shell_escape.c stdlib_gcc_help.h - +# Build rules for the debug version of the library which has special +# memory allocation debugging code, controlled by the contents of +# the stdlib_mem_debug.h file. $(LIBC_OBJS)/stdlib_alloca.o : stdlib_alloca.c stdlib_mem_debug.h $(LIBC_OBJS)/stdlib_calloc.o : stdlib_calloc.c stdlib_mem_debug.h @@ -829,6 +848,7 @@ $(LIBC_OBJS)/stdlib_red_black.o : stdlib_red_black.c stdlib_mem_debug.h ############################################################################## +# Individual build rules for libc.a $(LIBC_OBJS) : $(MAKEDIR) $@ @@ -839,6 +859,7 @@ $(LIBC_OBJS)/libc.a : $(LIBC_OBJS) $(foreach file,$(C_LIB),$(LIBC_OBJS)/$(file)) ############################################################################## +# Individual build rules for libunix.a $(LIBUNIX_OBJS) : $(MAKEDIR) $@ @@ -849,26 +870,18 @@ $(LIBUNIX_OBJS)/libunix.a : $(LIBUNIX_OBJS) $(foreach file,$(UNIX_LIB),$(LIBUNIX ############################################################################## +# Individual build rules for libm.a $(LIBM_OBJS) : $(MAKEDIR) $@ -$(LIBM_OBJS)/libm.a : $(LIBM_OBJS) $(foreach file,$(MATH_LIB_IEEE),$(LIBM_OBJS)/$(file)) +$(LIBM_OBJS)/libm.a : $(LIBM_OBJS) $(foreach file,$(MATH_LIB),$(LIBM_OBJS)/$(file)) -$(DELETE) $@ - @$(AR) $@ $(foreach file,$(MATH_LIB_IEEE),$(LIBM_OBJS)/$(file)) - $(RANLIB) $@ - -############################################################################## - -$(LIBSTACK_OBJS) : - $(MAKEDIR) $@ - -$(LIBSTACK_OBJS)/libstack.a : $(LIBSTACK_OBJS) $(foreach file,$(STACK_LIB),$(LIBSTACK_OBJS)/$(file)) - -$(DELETE) $@ - @$(AR) $@ $(foreach file,$(STACK_LIB),$(LIBSTACK_OBJS)/$(file)) + @$(AR) $@ $(foreach file,$(MATH_LIB),$(LIBM_OBJS)/$(file)) $(RANLIB) $@ ############################################################################## +# Individual build rules for libnet.a $(LIBNET_OBJS) : $(MAKEDIR) $@ @@ -879,6 +892,7 @@ $(LIBNET_OBJS)/libnet.a : $(LIBNET_OBJS) $(foreach file,$(NET_LIB),$(LIBNET_OBJS ############################################################################## +# Individual build rules for libdebug.a $(LIBDEBUG_OBJS) : $(MAKEDIR) $@ @@ -889,6 +903,7 @@ $(LIBDEBUG_OBJS)/libdebug.a : $(LIBDEBUG_OBJS) $(foreach file,$(DEBUG_LIB),$(LIB ############################################################################## +# Individual build rules for libamiga.a $(LIBAMIGA_OBJS) : $(MAKEDIR) $@ @@ -899,6 +914,7 @@ $(LIBAMIGA_OBJS)/libamiga.a : $(LIBAMIGA_OBJS) $(foreach file,$(AMIGA_LIB),$(LIB ############################################################################## +# Individual build rules for the startup code. crt0.o : crt0.S @echo "Assembling $<" @$(CC) -Wa,-mregnames -o crt0.o -c crt0.S @@ -920,13 +936,3 @@ bcrtbegin.o : crtbegin.c bcrtend.o : crtend.c $(CC) -o bcrtend.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -msdata=sysv -DSMALL_DATA crtend.c - - -############################################################################## - -mkid: -# mkid -v #?.(c|h|asm|i) include/#?.(c|h|asm|i) include/sys/#?.(c|h|asm|i) - mkid *.[ch] include/*.h include/sys/*.h - -update: - mkid -v -u diff --git a/library/amiga.lib_rev.h b/library/amiga.lib_rev.h index 4a73f46..3606c0d 100644 --- a/library/amiga.lib_rev.h +++ b/library/amiga.lib_rev.h @@ -1,6 +1,6 @@ #define VERSION 1 -#define REVISION 182 -#define DATE "8.11.2004" -#define VERS "amiga.lib 1.182" -#define VSTRING "amiga.lib 1.182 (8.11.2004)\r\n" -#define VERSTAG "\0$VER: amiga.lib 1.182 (8.11.2004)" +#define REVISION 183 +#define DATE "13.11.2004" +#define VERS "amiga.lib 1.183" +#define VSTRING "amiga.lib 1.183 (13.11.2004)\r\n" +#define VERSTAG "\0$VER: amiga.lib 1.183 (13.11.2004)" diff --git a/library/amiga.lib_rev.rev b/library/amiga.lib_rev.rev index 960e7a8..90afb3e 100644 --- a/library/amiga.lib_rev.rev +++ b/library/amiga.lib_rev.rev @@ -1 +1 @@ -182 +183 diff --git a/library/amiga_beginio.c b/library/amiga_beginio.c index 9a4a1e2..a7c0d2d 100644 --- a/library/amiga_beginio.c +++ b/library/amiga_beginio.c @@ -1,5 +1,5 @@ /* - * $Id: amiga_beginio.c,v 1.1.1.1 2004-07-26 16:30:17 obarthel Exp $ + * $Id: amiga_beginio.c,v 1.2 2004-11-13 12:55:39 obarthel Exp $ * * :ts=4 * @@ -37,6 +37,14 @@ /****************************************************************************/ +#include "debug.h" + +/****************************************************************************/ + +#ifndef __PPC__ + +/****************************************************************************/ + #if defined(__SASC) VOID __begin_io(struct IORequest * ior); @@ -64,10 +72,6 @@ VOID __begin_io(struct IORequest * ior); /****************************************************************************/ -#include "debug.h" - -/****************************************************************************/ - VOID BeginIO(struct IORequest *ior) { @@ -82,3 +86,35 @@ BeginIO(struct IORequest *ior) LEAVE(); } + +/****************************************************************************/ + +#else + +/****************************************************************************/ + +#include + +/****************************************************************************/ + +#if defined(BeginIO) +#undef BeginIO +#endif /* BeginIO */ + +/****************************************************************************/ + +VOID +BeginIO(struct IORequest *ior) +{ + ENTER(); + + assert( ior != NULL && ior->io_Device != NULL ); + + IExec->BeginIO(ior); + + LEAVE(); +} + +/****************************************************************************/ + +#endif /* __PPC__ */ diff --git a/library/amiga_createport.c b/library/amiga_createport.c index 0bd3fa0..89fbe7b 100644 --- a/library/amiga_createport.c +++ b/library/amiga_createport.c @@ -1,5 +1,5 @@ /* - * $Id: amiga_createport.c,v 1.1.1.1 2004-07-26 16:30:18 obarthel Exp $ + * $Id: amiga_createport.c,v 1.2 2004-11-13 12:55:39 obarthel Exp $ * * :ts=4 * @@ -44,6 +44,12 @@ /****************************************************************************/ +#if defined(CreatePort) +#undef CreatePort +#endif /* CreatePort */ + +/****************************************************************************/ + struct MsgPort * CreatePort(CONST_STRPTR name, LONG pri) { diff --git a/library/amiga_createtask.c b/library/amiga_createtask.c index 05b2841..fdcfbf1 100644 --- a/library/amiga_createtask.c +++ b/library/amiga_createtask.c @@ -1,5 +1,5 @@ /* - * $Id: amiga_createtask.c,v 1.1.1.1 2004-07-26 16:30:18 obarthel Exp $ + * $Id: amiga_createtask.c,v 1.2 2004-11-13 12:55:39 obarthel Exp $ * * :ts=4 * @@ -31,8 +31,6 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#ifndef __PPC__ - /****************************************************************************/ #include @@ -53,6 +51,10 @@ /****************************************************************************/ +#ifndef __PPC__ + +/****************************************************************************/ + /* * Create a task with given name, priority, and stack size. * It will use the default exception and trap handlers for now. @@ -191,4 +193,44 @@ CreateTask(CONST_STRPTR name,LONG pri,CONST APTR init_pc,ULONG stack_size) /****************************************************************************/ +#else + +/****************************************************************************/ + +#if defined(CreateTask) +#undef CreateTask +#endif /* CreateTask */ + +/****************************************************************************/ + +struct Task * +CreateTask(CONST_STRPTR name,LONG pri,CONST APTR init_pc,ULONG stack_size) +{ + struct Task * result = NULL; + + ENTER(); + + SHOWSTRING(name); + SHOWVALUE(pri); + SHOWPOINTER(init_pc); + SHOWVALUE(stack_size); + + assert( name != NULL && (-128 <= pri && pri <= 127) && init_pc != NULL && stack_size > 0 ); + + if(name == NULL || pri < -128 || pri > 127 || init_pc == NULL || stack_size == 0) + { + SHOWMSG("invalid parameters"); + goto out; + } + + result = IExec->CreateTask(name,pri,init_pc,stack_size,NULL); + + out: + + RETURN(result); + return(result); +} + +/****************************************************************************/ + #endif /* __PPC__ */ diff --git a/library/amiga_deleteport.c b/library/amiga_deleteport.c index bff883d..37906e3 100644 --- a/library/amiga_deleteport.c +++ b/library/amiga_deleteport.c @@ -1,5 +1,5 @@ /* - * $Id: amiga_deleteport.c,v 1.1.1.1 2004-07-26 16:30:19 obarthel Exp $ + * $Id: amiga_deleteport.c,v 1.2 2004-11-13 12:55:39 obarthel Exp $ * * :ts=4 * @@ -44,6 +44,12 @@ /****************************************************************************/ +#if defined(DeletePort) +#undef DeletePort +#endif /* DeletePort */ + +/****************************************************************************/ + VOID DeletePort(struct MsgPort * port) { diff --git a/library/amiga_deletetask.c b/library/amiga_deletetask.c index 91ebdf2..dcadd65 100644 --- a/library/amiga_deletetask.c +++ b/library/amiga_deletetask.c @@ -1,5 +1,5 @@ /* - * $Id: amiga_deletetask.c,v 1.1.1.1 2004-07-26 16:30:19 obarthel Exp $ + * $Id: amiga_deletetask.c,v 1.2 2004-11-13 12:55:39 obarthel Exp $ * * :ts=4 * @@ -41,8 +41,34 @@ /****************************************************************************/ +#ifndef __PPC__ + +/****************************************************************************/ + VOID DeleteTask(struct Task *tc) { RemTask(tc); } + +/****************************************************************************/ + +#else + +/****************************************************************************/ + +#if defined(DeleteTask) +#undef DeleteTask +#endif /* DeleteTask */ + +/****************************************************************************/ + +VOID +DeleteTask(struct Task *tc) +{ + IExec->DeleteTask(tc); +} + +/****************************************************************************/ + +#endif /* __PPC__ */ diff --git a/library/c.lib_rev.h b/library/c.lib_rev.h index 4301859..77e39e3 100644 --- a/library/c.lib_rev.h +++ b/library/c.lib_rev.h @@ -1,6 +1,6 @@ #define VERSION 1 -#define REVISION 182 -#define DATE "8.11.2004" -#define VERS "c.lib 1.182" -#define VSTRING "c.lib 1.182 (8.11.2004)\r\n" -#define VERSTAG "\0$VER: c.lib 1.182 (8.11.2004)" +#define REVISION 183 +#define DATE "13.11.2004" +#define VERS "c.lib 1.183" +#define VSTRING "c.lib 1.183 (13.11.2004)\r\n" +#define VERSTAG "\0$VER: c.lib 1.183 (13.11.2004)" diff --git a/library/c.lib_rev.rev b/library/c.lib_rev.rev index 960e7a8..90afb3e 100644 --- a/library/c.lib_rev.rev +++ b/library/c.lib_rev.rev @@ -1 +1 @@ -182 +183 diff --git a/library/changes b/library/changes index 569dce7..c9d0e81 100644 --- a/library/changes +++ b/library/changes @@ -1,3 +1,17 @@ +c.lib 1.183 (13.11.2004) + +- Cleaned up the OS4 build makefile, losing redundant libraries, + adding more startup object code and ultimatively making the whole + rebuild logic work again: if code changes and dependencies are + set up correctly, it will now get rebuilt. Previously, such + changes went unnoticed and you had to rebuild the entire library + from scratch. + +- Added stubs for CreatePort(), DeletePort(), CreateTask(), DeleteTask() + and NewList() which have equivalents in exec.library V50 but for which + it might be useful if ported code didn't have to reference these + explicitly. + - mktemp() was broken in libunix.a with Unix path semantics enabled. This was because the name template was translated and translated back again, overwriting the translation buffer. This, funny enough, diff --git a/library/debug.lib_rev.h b/library/debug.lib_rev.h index 1e1b958..2029002 100644 --- a/library/debug.lib_rev.h +++ b/library/debug.lib_rev.h @@ -1,6 +1,6 @@ #define VERSION 1 -#define REVISION 182 -#define DATE "8.11.2004" -#define VERS "debug.lib 1.182" -#define VSTRING "debug.lib 1.182 (8.11.2004)\r\n" -#define VERSTAG "\0$VER: debug.lib 1.182 (8.11.2004)" +#define REVISION 183 +#define DATE "13.11.2004" +#define VERS "debug.lib 1.183" +#define VSTRING "debug.lib 1.183 (13.11.2004)\r\n" +#define VERSTAG "\0$VER: debug.lib 1.183 (13.11.2004)" diff --git a/library/debug.lib_rev.rev b/library/debug.lib_rev.rev index 960e7a8..90afb3e 100644 --- a/library/debug.lib_rev.rev +++ b/library/debug.lib_rev.rev @@ -1 +1 @@ -182 +183 diff --git a/library/m.lib_rev.h b/library/m.lib_rev.h index 8a6e322..c7ef42e 100644 --- a/library/m.lib_rev.h +++ b/library/m.lib_rev.h @@ -1,6 +1,6 @@ #define VERSION 1 -#define REVISION 182 -#define DATE "8.11.2004" -#define VERS "m.lib 1.182" -#define VSTRING "m.lib 1.182 (8.11.2004)\r\n" -#define VERSTAG "\0$VER: m.lib 1.182 (8.11.2004)" +#define REVISION 183 +#define DATE "13.11.2004" +#define VERS "m.lib 1.183" +#define VSTRING "m.lib 1.183 (13.11.2004)\r\n" +#define VERSTAG "\0$VER: m.lib 1.183 (13.11.2004)" diff --git a/library/m.lib_rev.rev b/library/m.lib_rev.rev index 960e7a8..90afb3e 100644 --- a/library/m.lib_rev.rev +++ b/library/m.lib_rev.rev @@ -1 +1 @@ -182 +183 diff --git a/library/m881.lib_rev.h b/library/m881.lib_rev.h index 17cc925..f0b25c3 100644 --- a/library/m881.lib_rev.h +++ b/library/m881.lib_rev.h @@ -1,6 +1,6 @@ #define VERSION 1 -#define REVISION 182 -#define DATE "8.11.2004" -#define VERS "m881.lib 1.182" -#define VSTRING "m881.lib 1.182 (8.11.2004)\r\n" -#define VERSTAG "\0$VER: m881.lib 1.182 (8.11.2004)" +#define REVISION 183 +#define DATE "13.11.2004" +#define VERS "m881.lib 1.183" +#define VSTRING "m881.lib 1.183 (13.11.2004)\r\n" +#define VERSTAG "\0$VER: m881.lib 1.183 (13.11.2004)" diff --git a/library/m881.lib_rev.rev b/library/m881.lib_rev.rev index 960e7a8..90afb3e 100644 --- a/library/m881.lib_rev.rev +++ b/library/m881.lib_rev.rev @@ -1 +1 @@ -182 +183 diff --git a/library/net.lib_rev.h b/library/net.lib_rev.h index ea5a3e2..0c35734 100644 --- a/library/net.lib_rev.h +++ b/library/net.lib_rev.h @@ -1,6 +1,6 @@ #define VERSION 1 -#define REVISION 182 -#define DATE "8.11.2004" -#define VERS "net.lib 1.182" -#define VSTRING "net.lib 1.182 (8.11.2004)\r\n" -#define VERSTAG "\0$VER: net.lib 1.182 (8.11.2004)" +#define REVISION 183 +#define DATE "13.11.2004" +#define VERS "net.lib 1.183" +#define VSTRING "net.lib 1.183 (13.11.2004)\r\n" +#define VERSTAG "\0$VER: net.lib 1.183 (13.11.2004)" diff --git a/library/net.lib_rev.rev b/library/net.lib_rev.rev index 960e7a8..90afb3e 100644 --- a/library/net.lib_rev.rev +++ b/library/net.lib_rev.rev @@ -1 +1 @@ -182 +183 diff --git a/library/stack.lib_rev.h b/library/stack.lib_rev.h index c15d033..67c16cf 100644 --- a/library/stack.lib_rev.h +++ b/library/stack.lib_rev.h @@ -1,6 +1,6 @@ #define VERSION 1 -#define REVISION 182 -#define DATE "8.11.2004" -#define VERS "stack.lib 1.182" -#define VSTRING "stack.lib 1.182 (8.11.2004)\r\n" -#define VERSTAG "\0$VER: stack.lib 1.182 (8.11.2004)" +#define REVISION 183 +#define DATE "13.11.2004" +#define VERS "stack.lib 1.183" +#define VSTRING "stack.lib 1.183 (13.11.2004)\r\n" +#define VERSTAG "\0$VER: stack.lib 1.183 (13.11.2004)" diff --git a/library/stack.lib_rev.rev b/library/stack.lib_rev.rev index 960e7a8..90afb3e 100644 --- a/library/stack.lib_rev.rev +++ b/library/stack.lib_rev.rev @@ -1 +1 @@ -182 +183 diff --git a/library/unix.lib_rev.h b/library/unix.lib_rev.h index 8ab43c6..028d9e8 100644 --- a/library/unix.lib_rev.h +++ b/library/unix.lib_rev.h @@ -1,6 +1,6 @@ #define VERSION 1 -#define REVISION 182 -#define DATE "8.11.2004" -#define VERS "unix.lib 1.182" -#define VSTRING "unix.lib 1.182 (8.11.2004)\r\n" -#define VERSTAG "\0$VER: unix.lib 1.182 (8.11.2004)" +#define REVISION 183 +#define DATE "13.11.2004" +#define VERS "unix.lib 1.183" +#define VSTRING "unix.lib 1.183 (13.11.2004)\r\n" +#define VERSTAG "\0$VER: unix.lib 1.183 (13.11.2004)" diff --git a/library/unix.lib_rev.rev b/library/unix.lib_rev.rev index 960e7a8..90afb3e 100644 --- a/library/unix.lib_rev.rev +++ b/library/unix.lib_rev.rev @@ -1 +1 @@ -182 +183