diff --git a/CVSROOT/checkoutlist b/CVSROOT/checkoutlist deleted file mode 100644 index 2921bff..0000000 --- a/CVSROOT/checkoutlist +++ /dev/null @@ -1,13 +0,0 @@ -# The "checkoutlist" file is used to support additional version controlled -# administrative files in $CVSROOT/CVSROOT, such as template files. -# -# The first entry on a line is a filename which will be checked out from -# the corresponding RCS file in the $CVSROOT/CVSROOT directory. -# The remainder of the line is an error message to use if the file cannot -# be checked out. -# -# File format: -# -# [][] -# -# comment lines begin with '#' diff --git a/CVSROOT/commitinfo b/CVSROOT/commitinfo deleted file mode 100644 index b19e7b7..0000000 --- a/CVSROOT/commitinfo +++ /dev/null @@ -1,15 +0,0 @@ -# The "commitinfo" file is used to control pre-commit checks. -# The filter on the right is invoked with the repository and a list -# of files to check. A non-zero exit of the filter program will -# cause the commit to be aborted. -# -# The first entry on a line is a regular expression which is tested -# against the directory that the change is being committed to, relative -# to the $CVSROOT. For the first match that is found, then the remainder -# of the line is the name of the filter to run. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name "ALL" appears as a regular expression it is always used -# in addition to the first matching regex or "DEFAULT". diff --git a/CVSROOT/config b/CVSROOT/config deleted file mode 100644 index 92c150b..0000000 --- a/CVSROOT/config +++ /dev/null @@ -1,21 +0,0 @@ -# Set this to "no" if pserver shouldn't check system users/passwords -#SystemAuth=no - -# Put CVS lock files in this directory rather than directly in the repository. -#LockDir=/var/lock/cvs - -# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top -# level of the new working directory when using the `cvs checkout' -# command. -#TopLevelAdmin=no - -# Set `LogHistory' to `all' or `TOEFWUPCGMAR' to log all transactions to the -# history file, or a subset as needed (ie `TMAR' logs all write operations) -#LogHistory=TOEFWUPCGMAR - -# Set `RereadLogAfterVerify' to `always' (the default) to allow the verifymsg -# script to change the log message. Set it to `stat' to force CVS to verify# that the file has changed before reading it (this can take up to an extra -# second per directory being committed, so it is not recommended for large -# repositories. Set it to `never' (the previous CVS behavior) to prevent -# verifymsg scripts from changing the log message. -#RereadLogAfterVerify=always diff --git a/CVSROOT/cvswrappers b/CVSROOT/cvswrappers deleted file mode 100644 index e989b75..0000000 --- a/CVSROOT/cvswrappers +++ /dev/null @@ -1,19 +0,0 @@ -# This file affects handling of files based on their names. -# -# The -m option specifies whether CVS attempts to merge files. -# -# The -k option specifies keyword expansion (e.g. -kb for binary). -# -# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers) -# -# wildcard [option value][option value]... -# -# where option is one of -# -f from cvs filter value: path to filter -# -t to cvs filter value: path to filter -# -m update methodology value: MERGE or COPY -# -k expansion mode value: b, o, kkv, &c -# -# and value is a single-quote delimited value. -# For example: -#*.gif -k 'b' diff --git a/CVSROOT/editinfo b/CVSROOT/editinfo deleted file mode 100644 index d78886c..0000000 --- a/CVSROOT/editinfo +++ /dev/null @@ -1,21 +0,0 @@ -# The "editinfo" file is used to allow verification of logging -# information. It works best when a template (as specified in the -# rcsinfo file) is provided for the logging procedure. Given a -# template with locations for, a bug-id number, a list of people who -# reviewed the code before it can be checked in, and an external -# process to catalog the differences that were code reviewed, the -# following test can be applied to the code: -# -# Making sure that the entered bug-id number is correct. -# Validating that the code that was reviewed is indeed the code being -# checked in (using the bug-id number or a seperate review -# number to identify this particular code set.). -# -# If any of the above test failed, then the commit would be aborted. -# -# Actions such as mailing a copy of the report to each reviewer are -# better handled by an entry in the loginfo file. -# -# One thing that should be noted is the the ALL keyword is not -# supported. There can be only one entry that matches a given -# repository. diff --git a/CVSROOT/loginfo b/CVSROOT/loginfo deleted file mode 100644 index 537607d..0000000 --- a/CVSROOT/loginfo +++ /dev/null @@ -1,27 +0,0 @@ -# The "loginfo" file controls where "cvs commit" log information -# is sent. The first entry on a line is a regular expression which must match -# the directory that the change is being made to, relative to the -# $CVSROOT. If a match is found, then the remainder of the line is a filter -# program that should expect log information on its standard input. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name ALL appears as a regular expression it is always used -# in addition to the first matching regex or DEFAULT. -# -# You may specify a format string as part of the -# filter. The string is composed of a `%' followed -# by a single format character, or followed by a set of format -# characters surrounded by `{' and `}' as separators. The format -# characters are: -# -# s = file name -# V = old version number (pre-checkin) -# v = new version number (post-checkin) -# t = tag or branch name -# -# For example: -#DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog -# or -#DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog diff --git a/CVSROOT/modules b/CVSROOT/modules deleted file mode 100644 index cb9e9ef..0000000 --- a/CVSROOT/modules +++ /dev/null @@ -1,26 +0,0 @@ -# Three different line formats are valid: -# key -a aliases... -# key [options] directory -# key [options] directory files... -# -# Where "options" are composed of: -# -i prog Run "prog" on "cvs commit" from top-level of module. -# -o prog Run "prog" on "cvs checkout" of module. -# -e prog Run "prog" on "cvs export" of module. -# -t prog Run "prog" on "cvs rtag" of module. -# -u prog Run "prog" on "cvs update" of module. -# -d dir Place module in directory "dir" instead of module name. -# -l Top-level directory only -- do not recurse. -# -# NOTE: If you change any of the "Run" options above, you'll have to -# release and re-checkout any working directories of these modules. -# -# And "directory" is a path to a directory relative to $CVSROOT. -# -# The "-a" option specifies an alias. An alias is interpreted as if -# everything on the right of the "-a" had been typed on the command line. -# -# You can encode a module within a module by using the special '&' -# character to interpose another module into the current module. This -# can be useful for creating a module that consists of many directories -# spread out over the entire source repository. diff --git a/CVSROOT/notify b/CVSROOT/notify deleted file mode 100644 index 74ae6f9..0000000 --- a/CVSROOT/notify +++ /dev/null @@ -1,12 +0,0 @@ -# The "notify" file controls where notifications from watches set by -# "cvs watch add" or "cvs edit" are sent. The first entry on a line is -# a regular expression which is tested against the directory that the -# change is being made to, relative to the $CVSROOT. If it matches, -# then the remainder of the line is a filter program that should contain -# one occurrence of %s for the user to notify, and information on its -# standard input. -# -# "ALL" or "DEFAULT" can be used in place of the regular expression. -# -# For example: -#ALL mail -s "CVS notification" %s diff --git a/CVSROOT/rcsinfo b/CVSROOT/rcsinfo deleted file mode 100644 index 49e59f4..0000000 --- a/CVSROOT/rcsinfo +++ /dev/null @@ -1,13 +0,0 @@ -# The "rcsinfo" file is used to control templates with which the editor -# is invoked on commit and import. -# -# The first entry on a line is a regular expression which is tested -# against the directory that the change is being made to, relative to the -# $CVSROOT. For the first match that is found, then the remainder of the -# line is the name of the file that contains the template. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name "ALL" appears as a regular expression it is always used -# in addition to the first matching regex or "DEFAULT". diff --git a/CVSROOT/taginfo b/CVSROOT/taginfo deleted file mode 100644 index 274a46d..0000000 --- a/CVSROOT/taginfo +++ /dev/null @@ -1,20 +0,0 @@ -# The "taginfo" file is used to control pre-tag checks. -# The filter on the right is invoked with the following arguments: -# -# $1 -- tagname -# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d -# $3 -- repository -# $4-> file revision [file revision ...] -# -# A non-zero exit of the filter program will cause the tag to be aborted. -# -# The first entry on a line is a regular expression which is tested -# against the directory that the change is being committed to, relative -# to the $CVSROOT. For the first match that is found, then the remainder -# of the line is the name of the filter to run. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name "ALL" appears as a regular expression it is always used -# in addition to the first matching regex or "DEFAULT". diff --git a/CVSROOT/verifymsg b/CVSROOT/verifymsg deleted file mode 100644 index 86f747c..0000000 --- a/CVSROOT/verifymsg +++ /dev/null @@ -1,21 +0,0 @@ -# The "verifymsg" file is used to allow verification of logging -# information. It works best when a template (as specified in the -# rcsinfo file) is provided for the logging procedure. Given a -# template with locations for, a bug-id number, a list of people who -# reviewed the code before it can be checked in, and an external -# process to catalog the differences that were code reviewed, the -# following test can be applied to the code: -# -# Making sure that the entered bug-id number is correct. -# Validating that the code that was reviewed is indeed the code being -# checked in (using the bug-id number or a seperate review -# number to identify this particular code set.). -# -# If any of the above test failed, then the commit would be aborted. -# -# Actions such as mailing a copy of the report to each reviewer are -# better handled by an entry in the loginfo file. -# -# One thing that should be noted is the the ALL keyword is not -# supported. There can be only one entry that matches a given -# repository. diff --git a/documentation/BUILDING b/documentation/BUILDING deleted file mode 100644 index f02e0c2..0000000 --- a/documentation/BUILDING +++ /dev/null @@ -1,19 +0,0 @@ -In order to build the library, you need a 'C' compiler (obvious, isn't it?) and -a set of header files for the networking API definitions. The networking header -files go into a directory "netinclude" which has to sit in the same directory as -the source code and the "include" directory you find in there. I'm not currently -supplying these header files here. Drop me a line, and I'll take care of that. - -The SAS/C flavour (smakefile) should get the library built using the "large data" -model. This rules out the use of residentable programs as the startup code I'm -using is very primitive (startup.o) and doesn't tinker with A4 relative data -addressing (and how this may be set up). - -There are two makefiles for GCC, each a different flavour. There is "GNUmakefile.68k", -which will build the library for GCC on the 68k platform ("classic" Amiga). This -builds all variants of the library, for large data, small data, resident, whatever -model. It's a lot of work and I don't recommend you do this on a plain 68k machine. -It will literally (!) take hours. The other makefile flavour is for AmigaOS4 using -the PowerPC hosted GCC system ("GNUmakefile.os4"). This builds only the large data -version of the library, but this is usually all you need. Small data support is -currently not implemented but might follow in the future. diff --git a/documentation/GCC-68K b/documentation/GCC-68K deleted file mode 100644 index 22ab6b6..0000000 --- a/documentation/GCC-68K +++ /dev/null @@ -1,50 +0,0 @@ -You can use the 68k build of clib2 with the existing Amiga 68k ports of the -GNU 'C' compiler. In order to do so, you need to modify the "specs" file which -controls how the compiler(s) and the linker interact, and where the linker -will look for the program startup code and library files. Also, you will need -to copy the header files, startup code and library files to the locations -where the 'C' compiler and linker expects them. - -Please read the following description before you follow the instructions. The -changes suggested may have unexpected side-effects! - -I have provided a working "specs" file with this documentation file. To switch -over an existing Amiga 68k port of GCC to use clib2, you would proceed as -follows: - - - Locate the directory within which GCC is installed. For example, this - could be within a directory to which the name "ADE:", "GG:" or "GCC:" - is assigned. For the sake of simplicity, the following notes assume - that the assignment name is "GCC:" - - - Make backup copies of the following directories and files: - - GCC:lib/gcc-lib/amigaos/2.95.3/specs - - (NOTE: Check the directory called "GCC:lib/gcc-lib/amigaos" - first; the "2.95.3" quoted above refers to the version, - revision and patch number of the GCC installed and your - version number may differ!) - - GCC:include - GCC:lib - - - Now you can proceed to install clib2; just copy the "include" and "lib" - directories over, like this: - - Copy include GCC:include all quiet - Copy lib GCC:lib all quiet - - - Finally, replace the "specs" file with the one provided: - - Copy specs GCC:lib/gcc-lib/amigaos/2.95.3/specs - - (NOTE: Check the directory called "GCC:lib/gcc-lib/amigaos" - first; the "2.95.3" quoted above refers to the version, - revision and patch number of the GCC installed and your - version number may differ!) - -Once you have completed these steps you should be able to build programs using -the 68k build of clib2 and you currently installed GCC. Note that these -changes may have the effect of rendering your C++ compiler unusable, so make -sure that you've made backup copies of all files and directories first! diff --git a/documentation/README b/documentation/README deleted file mode 100644 index c324c32..0000000 --- a/documentation/README +++ /dev/null @@ -1,235 +0,0 @@ -An ISO 'C' (1994) compliant runtime library for the Amiga -========================================================= - -1. What is this? - -This is my attempt to get Samba 2.2.x ported to the Amiga. My first Amiga -port required SAS/C and a number of strange tricks had to be pulled to get -it to support the kind of environment Samba needed. But with the -introduction of Samba 2.2.x many of those tricks did not work any more, -which is why I decided to attack the problem at the root, namely the -runtime library. - -Because it was no longer possible to build Samba with SAS/C on the new -Amiga platform, the idea came up to move development to the GNU 'C' -compiler. This turned out to be a challenge due to its somewhat -underdeveloped runtime library and header files. Eventually, I decided to -rewrite that library from scratch. - - -2. What does it do? - -Using "'C' - A reference manual" as a reference I wrote a set of header -files, then proceeded to implement each single function referenced in them. -With few exceptions in the area of wide character support, the result -should be a feature complete implementation of the ISO 'C' (1994) runtime -library. - -Because Samba needs a few POSIX-like routines to be supported, the library -functionality is complemented by a set of routines described in "Advanced -programming in the Unix environent". This set is not complete, however. It -will have to grow even further to accomodate for Samba's needs, but this is -a good start. I specifically added hooks for integrating socket I/O at a -later point of time. - -This is not a portable implementation of the library in the sense that you -could move it from one 'C' compiler on one operating system to another. -This is an Amiga specific implementation. - -The library supports floating point math, which is limited to IEEE single -and double precision or M68881 inline math. There is no support for the -fast floating point (FFP) format or exclusive IEEE single precision. You -either get double precision (IEEE math) or extended precision (M68881 -inline math). What it is that you get is determined at compile time. Use -the IEEE_FLOATING_POINT_SUPPORT preprocessor symbol to activate IEEE math -code and the M68881_FLOATING_POINT_SUPPORT symbol for M68881 inline math. - -Not unlike SAS/C, you can configure a minimum stack size the program is to -use when it starts up. This is controlled via the '__stack_size' variable -(see "stdlib_main.c"). - -I added some amiga.lib and debug.lib functionality to the library, but -don't count on it to be complete. - - -3. What does it not do? - -This library is a departure from the typical 'C' runtime environments of -the past which had to run on all AmigaOS releases, down to Kickstart 1.1. -This very library was designed to take advantage of the routines available -since Kickstart 2.04 was introduced and virtually nobody ever put to use. -This helps to cut the code size, and it also helps to keep bugs out of the -library by falling back onto well-tested implementations. However, the -catch is that the code won't run under Kickstart 1.3 and below. But then -these operating system releases have been obsolete for more than a decade, -and you can always go back to a compiler environment which supports them. - -Practically all library routines are implemented in a sort of naïve -fashion. That is, they contain virtually no optimizations whatsoever. This -is particularly apparent in workhorses such as memset() or memmove(). But -then, the issue is easy testability and Amiga platform portability. - -There is very little support for amiga.lib functionality. There is -NewList(), HookEntry(), CallHook(), CallHookA(), the DoMethod() family, the -RexxVars family, but that's all. If you need more, you would have to -implement it yourself. Put another way, if you absolutely need -functionality that is only found in amiga.lib, you really shouldn't need in -in the first place. - - -4. Where does the source code come from? - -I originally thought that it might be helpful to piece this library -together from various sources, such as the BSD libc. Turned out that this -code was so 'portable' that it became much more complex than it ought to -be. Also, some side-effects were present which considerably changed the -behaviour of the library. For example, the BSD libc uses bcopy() as an -alias for memcpy(), and unlike memcpy() is documented to, bcopy() supports -overlapping copies. - -Eventually, I wrote virtually all the code myself, borrowing algorithmic -ideas from the BSD libc and the Manx Aztec 'C' runtime library. Because I -don't know much about the environment GCC expects, I borrowed code snippets -from libnix, which was written by Matthias Fleischer and Gunther Nikl. This -in particular concerns the integer and floating point math support, the -setjmp/longjmp routines and the startup code. The M68881 inline math code -comes from the file written by Matthew Self -(self@bayes.arc.nasa.gov). - - -5. Limitations and caveats - -There is hardly any documentation on the code I wrote. In part this is due -to the fact that the code itself is very simple in design. It should speak -for itself. However, to make a usable runtime library you have to have a -user documentation as in man pages or autodocs. We will eventually have to -have autodocs for this library. - -The code is currently plastered with assertions and debug code. It is -therefore much larger than it ought to be and runs much slower than it -ought to be. For example, the malloc() routine will set the contents of the -memory allocated to a 'dirty' bit pattern which is likely to break software -which makes assumptions about its contents. Likewise, the free() routine -will trash the memory to deallocate with a different 'dirty' bit pattern to -turn up reuse of memory after deallocation. All these debugging features -can be disabled by defining the NDEBUG preprocessor symbol at compile time -(see ). - -The exception handling in the math code is not particularly effective. For -one part this is due to the fact that there is no exception handler -installed by the runtime library when it starts up which could catch and -process the error conditions the CPU or FPU generates. The idea was to -provide for a portable runtime library with little to no assembly language -involved. To make the exception handling complete, such code would be -necessary. - -The library currently builds under SAS/C, but because the 'normal' program -startup code is not utilized, the base relative (A4) addressing does not -work. If you are going to test it, use the data=faronly option to compile -the library and the programs. - -If you are going to rebuild the library with SAS/C you will need to -reassign INCLUDE: to point to the local 'include' directory or things won't -work. - - -6. Conventions and design issues - -You will have noticed the 330+ files in this directory. This is not the -best way to organize a runtime library, but at least all the bits and -pieces are in plain sight. Each file stands for the one or two routines it -contains. The name indicates what routine(s) that might be. Each file name -is prefixed by the name of the header file in which the corresponding -routine is defined. So, for example, you will find that "unistd_lchown.c" -contains the definition of the lchown() routine, which has its prototype -defined in the header file. - -Internal function and variable names are prefixed with two underscores, as -in '__stdio_init()'. - -All routines attempt to do error checking on their parameters. They will -either drop into an assert() or set an errno value and refuse to go any -further. This cuts performance but should help to catch the simple bugs -quite easily (NULL pointers). - -Just like any halfway sane Amiga 'C' runtime library, this one performs its -^C checking in the I/O routines. Typically once upon entry and in every -iteration of the loop there might be it will quickly poll the ^C signal and -drop into raise(SIGINT) in case the signal is set. This is just about the -safest method to solve the problem and should be much more robust than the -ixemul approach of 'interrupt anywhere - crash anywhere' using the task -switch/launch hooks to test for signals. - -By default all library routines follow the ISO 'C' conventions in that -where implementation defined behaviour is permitted, the AmigaOS rules are -followed. For example, unlink() will by default operate like DeleteFile() -and rename() will return with an error code set if the name of the -file/directory to be renamed would collide with an existing directory -entry. However, your program can set a global variable '__unix_semantics' -which will cause some routines to perform like their Unix counterparts. -This is necessary for Samba to work but not a generally desirable feature. -You have some Unix-like behaviour, but the environment itself is not -completely Unix- or POSIX-compliant. And it shouldn't be. Don't make the -mistake of trying to mold the environment into a POSIX emulation. It -doesn't work; AmigaOS is not Unix. - - -7. The startup code - -There are three program startup files provided. The most simplistic is in -'startup.c' which I use for SAS/C. It just invokes the setup routine which -eventually calls main() and drops straight into exit(). - -The ncrt0.S file was adapted from the libnix startup code which sets up the -base relative data area, if necessary (the SMALL_DATA preprocessor symbol -must be defined). - -The nrcrt0.S file was adapted from libnix startup code, too, and sets up -the base relative data area for programs to be made resident. Note that the -geta4() stub is missing here; it wouldn't work in a resident program -anyway. - -The ncrt0.S and nrcrt0.S files are considerably smaller and less complex -than the libnix code they are based on. This is because in this library -design all the more complex tasks are performed in the stdlib_main.c file -rather than in assembly language. - - -8. Documentation - -Well, you're reading it. There isn't anything much yet. You can consult the book -"'C' - A reference manual" and you could look at the Open Group's Single Unix -Specification at . - - -9. Legal status - -Because this library is in part based upon free software it would be uncourteous -not to make it free software itself. The BSD license would probably be -appropriate here. - -The PowerPC math library is based in part on work by Sun Microsystems: - -==================================================== -Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. - -Developed at SunPro, a Sun Microsystems, Inc. business. -Permission to use, copy, modify, and distribute this -software is freely granted, provided that this notice -is preserved. -==================================================== - - - -10. Contacting the author - -The basic work was done by Olaf Barthel during two weeks in July 2002. You -can reach me at: - - Olaf Barthel - Gneisenaustr. 43 - D-31275 Lehrte - -Or via e-mail: - - olsen@sourcery.han.de diff --git a/documentation/specs b/documentation/specs deleted file mode 100644 index bc1591b..0000000 --- a/documentation/specs +++ /dev/null @@ -1,64 +0,0 @@ -*asm: - %{m68000:-mc68010} %{mc68000:-mc68010} %{m68020:-mc68020} %{mc68020:-mc68020} %{m68030:-mc68030} %{m68040:-mc68040} %{m68060:-mc68060} %{m68020-40:-mc68020} %{m68020-60:-mc68020} %{!mc68000:%{!m68000:%{!mc68020:%{!m68020:%{!m68030:%{!m68040:%{!m68060:%{!m68020-40:%{!m68020-60:-mc68010}}}}}}}}} %{msmall-code:-sc} - -*asm_final: - - -*cpp: -%{m68881:-D__HAVE_68881__} %{!ansi:%{m68020:-Dmc68020} %{mc68020:-Dmc68020} %{m68020-40:-Dmc68020} %{m68020-60:-Dmc68020} %{m68030:-Dmc68030} %{m68040:-Dmc68040} %{m68060:-Dmc68060}} %{m68020:-D__mc68020__ -D__mc68020} %{mc68020:-D__mc68020__ -D__mc68020} %{m68020-40:-D__mc68020__ -D__mc68020} %{m68020-60:-D__mc68020__ -D__mc68020} %{m68030:-D__mc68030__ -D__mc68030} %{m68040:-D__mc68040__ -D__mc68040} %{m68060:-D__mc68060__ -D__mc68060} - -*cc1: -%{resident:-fbaserel} %{resident32:-fbaserel32} %{msmall-code:-fno-function-cse} - -*cc1plus: - - -*endfile: - - -*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} %{m68881:-fl libm881} - -*lib: -%{mstackextend:-lstack} -lc -lamiga -ldebug -lgcc -lc - -*libgcc: - - -*startfile: -%{resident32:nr32crt0.o%s mainb32.o%s}%{!resident32:%{fbaserel32:nb32crt0.o%s mainb32.o%s}%{!fbaserel32:%{resident:nrcrt0.o%s mainb.o%s}%{!resident:%{fbaserel:nbcrt0.o%s mainb.o%s}%{!fbaserel:ncrt0.o%s mainnb.o%s}}}} - -*switches_need_spaces: - - -*signed_char: -%{funsigned-char:-D__CHAR_UNSIGNED__} - -*predefines: --Dmc68000 -Damiga -Damigaos -DMCH_AMIGA -DAMIGA -D__chip=__attribute__((__chip__)) -D__saveds=__attribute__((__saveds__)) -D__interrupt=__attribute__((__interrupt__)) -D__stackext=__attribute__((__stackext__)) -D__regargs=__attribute__((__regparm__)) -D__stdargs=__attribute__((__stkparm__)) -D__aligned=__attribute__((__aligned__(4))) -Asystem(amigaos) -Acpu(m68k) -Amachine(m68k) - -*cross_compile: -0 - -*version: -2.95.3 - -*multilib: -. ; - -*multilib_defaults: - - -*multilib_extra: - - -*multilib_matches: - - -*linker: -collect2 - -*link_command: -%{!fsyntax-only: %{!c:%{!M:%{!MM:%{!E:%{!S:%(linker) %l %X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} %{r} %{s} %{t} %{u*} %{x} %{z} %{Z} %{!A:%{!nostdlib:%{!nostartfiles:%S}}} %{static:} %{L*} %D %o %{!nostdlib:%{!nodefaultlibs:%G %L %G}} %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} - }}}}}} - diff --git a/test_programs/GNUmakefile.68k b/test_programs/GNUmakefile.68k deleted file mode 100644 index c3dd3f5..0000000 --- a/test_programs/GNUmakefile.68k +++ /dev/null @@ -1,100 +0,0 @@ -# -# $Id: GNUmakefile.68k,v 1.3 2004-10-25 19:50:33 obarthel Exp $ -# -# :ts=8 -# - -############################################################################## - -CC = gcc -DELETE = delete all quiet - -############################################################################## - -.c.o: - @echo "Compiling $<" - @$(CC) -c $(CFLAGS) $< - -############################################################################## - -#CODE_TYPE := -fbaserel -DSMALL_DATA -m68020-60 -DM68020 -#CODE_TYPE := -fbaserel -DSMALL_DATA -m68000 -#CODE_TYPE := -fbaserel32 -DSMALL_DATA32 -m68020-60 -DM68020 - CODE_TYPE := -m68020-60 -DM68020 -#CODE_TYPE := -m68000 - -############################################################################## - -WARNINGS = \ - -Wall -W -Wshadow -Wpointer-arith -Wsign-compare -Wmissing-prototypes \ - -Wundef -Wbad-function-cast -Wmissing-declarations -Wconversion - -INCLUDE = -I../library/include -LIB = -L../library/lib - OPTIONS = -DNDEBUG -fno-builtin -DNO_INLINE_STDARG -DIEEE_FLOATING_POINT_SUPPORT -#OPTIONS = -D__MEM_DEBUG -fno-builtin -#OPTIONS = -DDEBUG -D__MEM_DEBUG -DNO_INLINE_STDARG -fno-builtin - OPTIMIZE = -O -#OPTIMIZE = -O2 -fomit-frame-pointer -#DEBUG = -g2 - -CFLAGS = $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(CODE_TYPE) $(INCLUDE) $(LIB) - -############################################################################## - -LIBS = -lm -lc -lgcc - -############################################################################## - -all: test fgets_test iotest sscanf_test printf_test sprintf_test stack_size_test \ - translate_test strtok_test - -clean: - $(DELETE) #?.o #?.map test fgets_test iotest sscanf_test printf_test sprintf_test \ - stack_size_test translate_test strtok_test - -############################################################################## - -test : test.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map - -fgets_test : fgets_test.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ fgets_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map - -strtok_test : strtok_test.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ strtok_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map - -iotest : iotest.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ iotest.o $(LIBS) -Wl,--cref,-M,-Map=$@.map - -sscanf_test : sscanf_test.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ sscanf_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map - -printf_test : printf_test.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ printf_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map - -sprintf_test : sprintf_test.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ sprintf_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map - -stack_size_test : stack_size_test.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ stack_size_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map - -translate_test : translate_test.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ translate_test.o -lunix $(LIBS) -Wl,--cref,-M,-Map=$@.map - -############################################################################## - -mkid: - mkid -v #?.(c|h|asm|i) - -update: - mkid -v -u diff --git a/test_programs/GNUmakefile.os4 b/test_programs/GNUmakefile.os4 deleted file mode 100644 index 3de8d39..0000000 --- a/test_programs/GNUmakefile.os4 +++ /dev/null @@ -1,84 +0,0 @@ -# -# $Id: GNUmakefile.os4,v 1.2 2004-10-25 19:50:33 obarthel Exp $ -# -# :ts=8 -# - -############################################################################## - -CC = ppc-amigaos-gcc -DELETE = rm -r - -############################################################################## - -.c.o: - @echo "Compiling $<" - @$(CC) -c $(CFLAGS) $< - -############################################################################## - -WARNINGS = \ - -Wall -W -Wshadow -Wpointer-arith -Wsign-compare -Wmissing-prototypes \ - -Wundef -Wbad-function-cast -Wmissing-declarations -Wconversion - -INCLUDE = -I../library/include -LIB = -L../library/lib -#OPTIONS = -DNDEBUG -fno-builtin -DNO_INLINE_STDARG -DIEEE_FLOATING_POINT_SUPPORT -#OPTIONS = -D__MEM_DEBUG -fno-builtin - OPTIONS = -DDEBUG -D__MEM_DEBUG -DNO_INLINE_STDARG -fno-builtin - OPTIMIZE = -O -#OPTIMIZE = -O2 -fomit-frame-pointer -#DEBUG = -g2 - -CFLAGS = $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(CODE_TYPE) $(INCLUDE) $(LIB) - -############################################################################## - -LIBS = -lm -lc - -############################################################################## - -all: test fgets_test iotest sscanf_test printf_test sprintf_test stack_size_test \ - translate_test strtok_test - -clean: - $(DELETE) *.o *.map test fgets_test iotest sscanf_test printf_test sprintf_test \ - stack_size_test translate_test strtok_test - -############################################################################## - -test : test.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map - -fgets_test : fgets_test.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ fgets_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map - -strtok_test : strtok_test.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ strtok_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map - -iotest : iotest.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ iotest.o $(LIBS) -Wl,--cref,-M,-Map=$@.map - -sscanf_test : sscanf_test.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ sscanf_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map - -printf_test : printf_test.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ printf_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map - -sprintf_test : sprintf_test.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ sprintf_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map - -stack_size_test : stack_size_test.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ stack_size_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map - -translate_test : translate_test.o - @echo "Linking $@" - $(CC) $(CFLAGS) -o $@ translate_test.o -lunix $(LIBS) -Wl,--cref,-M,-Map=$@.map diff --git a/test_programs/README b/test_programs/README deleted file mode 100644 index be6967b..0000000 --- a/test_programs/README +++ /dev/null @@ -1,5 +0,0 @@ -This is a collection of programs I'm using to test the library. These -are functional tests: the library is supposed to do something, and produce -a particular result. For example, "printf_test" exercises a bunch of -output formatting rules. Currently, there is only an smakefile for SAS/C -to build these programs with. diff --git a/test_programs/clib-bug.c b/test_programs/clib-bug.c deleted file mode 100644 index c3a554d..0000000 --- a/test_programs/clib-bug.c +++ /dev/null @@ -1,74 +0,0 @@ -#include -#include - -#define LINEBUFLENGTH 180 - -#define STRIP_LF(str) (str[strlen(str)-1]=0) -void invert_str(char * in) -{ -char t; -while(t=*in) - { - *in++=~t; - } -} - -int main(int i, char *c[]) -{ -char dest_fname[80], in_linebuffer[LINEBUFLENGTH]; -FILE * fileout, * filein; - -if(i>1) - { - sprintf(dest_fname, "%s.c", c[1]); - - fileout=fopen(dest_fname, "w"); - filein =fopen(c[1], "r"); - - if(fileout && filein) - { - fgets(in_linebuffer, LINEBUFLENGTH, filein); - STRIP_LF(in_linebuffer); - invert_str(in_linebuffer); - fputs("char *s_leading=\"", fileout); - fputs(in_linebuffer, fileout); - fputs("\";\n", fileout); - - fputs("char *s_messages[]={\n", fileout); - - while(fgets(in_linebuffer, LINEBUFLENGTH, filein)) - { - STRIP_LF(in_linebuffer); - invert_str(in_linebuffer); - - fputs("\"", fileout); - fputs(in_linebuffer, fileout); - fputs("\",\n", fileout); - } - fputs("};\n", fileout); - fputs("unsigned s_mess_num = sizeof(s_messages)/sizeof(char *);\n", fileout); - fclose(filein); - fclose(fileout); - } - } -return 0; -} - -/* -What's this stuff for ? I use it in SP_Engine to hide the usual bunch of "secret -messages". As you can see, the strings are simply not'ed . -This source shows both flaws: fgets() and the missing buffer flush. You can -change the while() statement with - -while(!feof(filein)) - { - fgets(in_linebuffer, LINEBUFLENGTH, filein); -.... - -This way you'll workaround the first problem. -The second issue manifests itself this way: the last two fputs() followed by the -fclose() don't do anything: no "};\n" and no "unsigned....." lines are output to -'fileout'. With SAS, it works perfectly. Converting the source to dos.library -calls also works perfectly. I wonder if there's some kind of strange interaction -with the dos/shell updates. -*/ diff --git a/test_programs/fgets_test.c b/test_programs/fgets_test.c deleted file mode 100644 index 7190b8d..0000000 --- a/test_programs/fgets_test.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * $Id: fgets_test.c,v 1.1.1.1 2004-07-26 16:36:07 obarthel Exp $ - * - * :ts=4 - */ - -/****************************************************************************/ - -#include -#include - -/****************************************************************************/ - -int -main(int argc,char ** argv) -{ - char line[256]; - size_t len; - FILE * in; - int i; - - for(i = 1 ; i < argc ; i++) - { - in = fopen(argv[i],"rb"); - if(in != NULL) - { - while(fgets(line,sizeof(line),in) != NULL) - { - len = strlen(line); - while(len > 0 && (line[len-1] == '\n' || line[len-1] == '\r')) - line[--len] = '\0'; - - printf("%s\n",line); - } - - fclose(in); - } - } - - return(0); -} diff --git a/test_programs/iotest.c b/test_programs/iotest.c deleted file mode 100644 index 8f5c269..0000000 --- a/test_programs/iotest.c +++ /dev/null @@ -1,44 +0,0 @@ -#include -#include -#include - -#define FILE_SIZE 2048 -#define WRITE_SIZE 32 - -char FileData[FILE_SIZE]; - -void CreateFile(char *filename) -{ - FILE *file; - - if (file = fopen(filename,"w")) { - memset(FileData,'0',FILE_SIZE); - memset(FileData,'-',WRITE_SIZE); - fwrite(FileData,1,FILE_SIZE,file); - fclose(file); - } -} - -void ReadWriteFile(char *filename) -{ - FILE *file; - - if (file = fopen(filename,"r+")) { - fseek(file,0,SEEK_SET); - fread(FileData,1,FILE_SIZE,file); - fseek(file,0,SEEK_SET); - memset(FileData,'1',WRITE_SIZE); - fwrite(FileData,1,WRITE_SIZE,file); - fclose(file); - } -} - -int main(int argc, char **argv) -{ - if (argc > 1) { - CreateFile(argv[1]); - ReadWriteFile(argv[1]); - } - - return 0; -} diff --git a/test_programs/printf_g_test.c b/test_programs/printf_g_test.c deleted file mode 100644 index 0a9edcb..0000000 --- a/test_programs/printf_g_test.c +++ /dev/null @@ -1,12 +0,0 @@ -#include - -int __debug_level = 2; - -int main(void) -{ - double val = 0.0001; - - printf("%g\n", val); - - return(0); -} diff --git a/test_programs/printf_test.c b/test_programs/printf_test.c deleted file mode 100644 index ddab456..0000000 --- a/test_programs/printf_test.c +++ /dev/null @@ -1,195 +0,0 @@ -#include -#include - -double x; - -void -print_format_int(const char * format_string,int parameter1,int parameter2) -{ - printf("\""); - printf(format_string,parameter1); - printf("\"\t"); - - printf("Value = % d, Format = \"%s\"\n",parameter1,format_string); - - printf("\""); - printf(format_string,parameter2); - printf("\"\t"); - - printf("Value = % d, Format = \"%s\"\n",parameter2,format_string); -} - -void -print_format_char(const char * format_string,char parameter) -{ - printf("\""); - printf(format_string,parameter); - printf("\"\t"); - - printf("Value = '%c', Format = \"%s\"\n",parameter,format_string); -} - -void -print_format_string(const char * format_string,const char *parameter1,const char *parameter2) -{ - printf("\""); - printf(format_string,parameter1); - printf("\"\t"); - - printf("Value = \"%s\", Format = \"%s\"\n",parameter1,format_string); - - printf("\""); - printf(format_string,parameter2); - printf("\"\t"); - - printf("Value = \"%s\", Format = \"%s\"\n",parameter2,format_string); -} - -void -print_format_float(const char * format_string,double parameter1,double parameter2) -{ - printf("\""); - printf(format_string,parameter1); - printf("\"\t"); - - printf("Value = % f, Format = \"%s\"\n",parameter1,format_string); - - printf("\""); - printf(format_string,parameter2); - printf("\"\t"); - - printf("Value = % f, Format = \"%s\"\n",parameter2,format_string); -} - -int -main(void) -{ - /* - unsigned long foo[2] = { 0x41f00000, 0 }; - - memcpy(&x,foo,sizeof(x)); - - printf("%.20g\n",x); - */ - - print_format_int("%12d",45,-45); - print_format_int("%012d",45,-45); - print_format_int("% 012d",45,-45); - print_format_int("%+12d",45,-45); - print_format_int("%+012d",45,-45); - print_format_int("%-12d",45,-45); - print_format_int("%- 12d",45,-45); - print_format_int("%-+12d",45,-45); - print_format_int("%12.4d",45,-45); - print_format_int("%-12.4d",45,-45); - print_format_int("%12.0d",45,-45); - - printf("\n"); - - print_format_int("%14u",45,-45); - print_format_int("%014u",45,-45); - print_format_int("%#14u",45,-45); - print_format_int("%#014u",45,-45); - print_format_int("%-14u",45,-45); - print_format_int("%-#14u",45,-45); - print_format_int("%14.4u",45,-45); - print_format_int("%-14.4u",45,-45); - print_format_int("%14.0u",45,-45); - - printf("\n"); - - print_format_int("%14o",45,-45); - print_format_int("%014o",45,-45); - print_format_int("%#14o",45,-45); - print_format_int("%#014o",45,-45); - print_format_int("%-14o",45,-45); - print_format_int("%-#14o",45,-45); - print_format_int("%14.4o",45,-45); - print_format_int("%-14.4o",45,-45); - print_format_int("%14.0o",45,-45); - - printf("\n"); - - print_format_int("%12x",45,-45); - print_format_int("%012x",45,-45); - print_format_int("%#12X",45,-45); - print_format_int("%#012X",45,-45); - print_format_int("%-12x",45,-45); - print_format_int("%-#12x",45,-45); - print_format_int("%12.4x",45,-45); - print_format_int("%-12.4x",45,-45); - print_format_int("%12.0x",45,-45); - - printf("\n"); - - print_format_char("%12c",'*'); - print_format_char("%012c",'*'); - print_format_char("%-12c",'*'); - print_format_char("%12.0c",'*'); - - printf("\n"); - - print_format_string("%12s","zap","longish"); - print_format_string("%12.5s","zap","longish"); - print_format_string("%012s","zap","longish"); - print_format_string("%-12s","zap","longish"); - print_format_string("%12.0s","zap","longish"); - - printf("\n"); - - print_format_float("%10.2f",12.678,-12.678); - print_format_float("%010.2f",12.678,-12.678); - print_format_float("% 010.2f",12.678,-12.678); - print_format_float("%+10.2f",12.678,-12.678); - print_format_float("%+010.2f",12.678,-12.678); - print_format_float("%-10.2f",12.678,-12.678); - print_format_float("%- 10.2f",12.678,-12.678); - print_format_float("%-+10.4f",12.678,-12.678); - print_format_float("%f",12.678,-12.678); - print_format_float("%10f",12.678,-12.678); - print_format_float("%10.0f",12.678,-12.678); - - printf("\n"); - - print_format_float("%10.2e",12.678,-12.678); - print_format_float("%010.2e",12.678,-12.678); - print_format_float("% 010.2e",12.678,-12.678); - print_format_float("%+10.2E",12.678,-12.678); - print_format_float("%+010.2E",12.678,-12.678); - print_format_float("%-10.2e",12.678,-12.678); - print_format_float("%- 10.2e",12.678,-12.678); - print_format_float("%-+10.2e",12.678,-12.678); - print_format_float("%e",12.678,-12.678); - print_format_float("%10e",12.678,-12.678); - print_format_float("%10.0e",12.678,-12.678); - - printf("\n"); - - print_format_float("%10.2g",12.678,-12.678); - print_format_float("%010.2g",12.678,-12.678); - print_format_float("% 010.2g",12.678,-12.678); - print_format_float("%+10.2G",12.678,-12.678); - print_format_float("%+010.2G",12.678,-12.678); - print_format_float("%-10.2g",12.678,-12.678); - print_format_float("%- 10.2g",12.678,-12.678); - print_format_float("%-+10.2g",12.678,-12.678); - print_format_float("%g",12.678,-12.678); - print_format_float("%10g",12.678,-12.678); - print_format_float("%10.0g",12.678,-12.678); - - printf("\n"); - - print_format_float("%10.2g",0.678,-0.678); - print_format_float("%010.2g",0.678,-0.678); - print_format_float("% 010.2g",0.678,-0.678); - print_format_float("%+10.2G",0.678,-0.678); - print_format_float("%+010.2G",0.678,-0.678); - print_format_float("%-10.2g",0.678,-0.678); - print_format_float("%- 10.2g",0.678,-0.678); - print_format_float("%-+10.2g",0.678,-0.678); - print_format_float("%g",0.678,-0.678); - print_format_float("%10g",0.678,-0.678); - print_format_float("%10.0g",0.678,-0.678); - - return(0); -} diff --git a/test_programs/smakefile b/test_programs/smakefile deleted file mode 100644 index 46298d2..0000000 --- a/test_programs/smakefile +++ /dev/null @@ -1,134 +0,0 @@ -# -# $Id: smakefile,v 1.3 2004-10-25 19:50:33 obarthel Exp $ -# -# :ts=8 -# - -############################################################################## - -.c.o: - @echo "Compiling $<" - @sc nover $(CFLAGS) $< - -.asm.o: - @echo "Assembling $<" - @asm $(AFLAGS) $< - -############################################################################## - -# You might want to change this to the directory where your operating system -# header files are stored. On my system, that's "V:include", but you might -# get lucky with "sc:include" instead, which is the default for SAS/C. -INCLUDE_DIR = V:include -#INCLUDE_DIR = sc:include - -############################################################################## - -# This is where the header files, the startup code and the c.lib files are -# stored; see below how this prefix is used. -LIB = /library/ - -############################################################################## - - OPTIMIZE = optimize opttime optschedule optinline -#DEBUG = debug=line noopt define=CHECK_FOR_NULL_POINTERS -#DEBUG = debug=line -#DEBUG = debug=line define=NDEBUG - DEBUG = debug=sf noopt -#DEBUG = debug=sf noopt define=CHECK_FOR_NULL_POINTERS -#PROFILE = profile - DATA = data=faronly -#CODE = code=far - CPU = cpu=060 -MATH = define=IEEE_FLOATING_POINT_SUPPORT math=IEEE -SUPPORT = define=UNIX_PATH_SEMANTICS define=SOCKET_SUPPORT define=USERGROUP_SUPPORT \ - define=__C_MACROS__ - -############################################################################## - -CFLAGS = \ - resopt \ - nover \ - memorysize=huge \ - idlen=64 \ - commentnest \ - nostackcheck \ - stringmerge \ - errorrexx \ - $(PROFILE) $(OPTIMIZE) $(CODE) $(DATA) $(CPU) $(MATH) \ - $(SUPPORT) $(DEBUG) - -AFLAGS = \ - -d -m2 - -############################################################################## - -all: setup test fgets_test iotest sscanf_test printf_test sprintf_test stack_size_test translate_test strtok_test cleanup - -clean: - -delete \#?.o \#?.map test fgets_test iotest sscanf_test printf_test sprintf_test stack_size_test translate_test strtok_test - -############################################################################## - -setup: - @echo "Setting up include: assignment" - @assign include: $(LIB)include V:include - -cleanup: - @echo "Cleaning up include: assignment" - @assign include: sc:include - -############################################################################## - -test: test.o - @echo "Linking $@" - @slink $(LIB)startup.o test.o to $@ lib $(LIB)c.lib addsym \ - map $@.map,fhx fwidth 32 pwidth 32 swidth 32 - -fgets_test: fgets_test.o - @echo "Linking $@" - @slink $(LIB)startup.o fgets_test.o to $@ lib $(LIB)c.lib addsym \ - map $@.map,fhx fwidth 32 pwidth 32 swidth 32 - -strtok_test: strtok_test.o - @echo "Linking $@" - @slink $(LIB)startup.o strtok_test.o to $@ lib $(LIB)c.lib addsym \ - map $@.map,fhx fwidth 32 pwidth 32 swidth 32 - -iotest: iotest.o - @echo "Linking $@" - @slink $(LIB)startup.o iotest.o to $@ lib $(LIB)c.lib addsym \ - map $@.map,fhx fwidth 32 pwidth 32 swidth 32 - -sscanf_test: sscanf_test.o - @echo "Linking $@" - @slink $(LIB)startup.o sscanf_test.o to $@ lib $(LIB)c.lib addsym \ - map $@.map,fhx fwidth 32 pwidth 32 swidth 32 - -printf_test: printf_test.o - @echo "Linking $@" - @slink $(LIB)startup.o printf_test.o to $@ lib $(LIB)c.lib addsym \ - map $@.map,fhx fwidth 32 pwidth 32 swidth 32 - -sprintf_test: sprintf_test.o - @echo "Linking $@" - @slink $(LIB)startup.o sprintf_test.o to $@ lib $(LIB)c.lib addsym \ - map $@.map,fhx fwidth 32 pwidth 32 swidth 32 - -stack_size_test: stack_size_test.o - @echo "Linking $@" - @slink $(LIB)startup.o stack_size_test.o to $@ lib $(LIB)c.lib addsym \ - map $@.map,fhx fwidth 32 pwidth 32 swidth 32 - -translate_test: translate_test.o - @echo "Linking $@" - @slink $(LIB)startup.o translate_test.o to $@ lib $(LIB)c.lib addsym \ - map $@.map,fhx fwidth 32 pwidth 32 swidth 32 - -############################################################################## - -mkid: - mkid \#?.(c|h|asm|i) include/\#?.(c|h|asm|i) include/sys/\#?.(c|h|asm|i) - -update: - mkid -v -u diff --git a/test_programs/sprintf_test.c b/test_programs/sprintf_test.c deleted file mode 100644 index 40e92a1..0000000 --- a/test_programs/sprintf_test.c +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -static char buf[256]; - -void addsomething(void) -{ - char *p = &buf[strlen(buf)]; - sprintf(p, "yeah"); -} - -int main(void) -{ - buf[0] = '\0'; - - addsomething(); - printf("1: [%s]\n", buf); - - sprintf(buf, ""); - - addsomething(); - printf("2: [%s]\n", buf); - - return (0); -} diff --git a/test_programs/sscanf_test.c b/test_programs/sscanf_test.c deleted file mode 100644 index 39ff61d..0000000 --- a/test_programs/sscanf_test.c +++ /dev/null @@ -1,108 +0,0 @@ -#include -#include - -int -main(void) -{ - int first, second, third, num; - int n,a,b,c; - char str[4]; - - num = sscanf("day-month-year", "%d-%d-%d", &first, &second, &third); - - printf("%s:%d:",__FILE__,__LINE__);printf("%d %d %d %d\n", num, first, second, third); - - num = sscanf("8-11-2004", "%d-%d-%d", &first, &second, &third); - - printf("%s:%d:",__FILE__,__LINE__);printf("%d %d %d %d\n", num, first, second, third); - - num = sscanf("", "%d-%d-%d", &first, &second, &third); - - printf("%s:%d:",__FILE__,__LINE__);printf("%d %d %d %d\n", num, first, second, third); - - num = sscanf("6", "%d %d", &first, &second); - - printf("%s:%d:",__FILE__,__LINE__);printf("%d %d\n", num, first); - - a = b = c = 0; - n = sscanf("","%*d,%d,%d",&a,&b,&c); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d, b = %d, c = %d\n",n,a,b,c); - - a = b = c = 0; - n = sscanf("1,2,3","%*d,%d,%d",&a,&b,&c); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d, b = %d, c = %d\n",n,a,b,c); - - a = b = c = 0; - n = sscanf("1,2","%*d,%d,%d",&a,&b,&c); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d, b = %d, c = %d\n",n,a,b,c); - - a = b = c = 0; - n = sscanf("asdf","*d,d,d",&a,&b,&c); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d, b = %d, c = %d\n",n,a,b,c); - - memset(str,0,sizeof(str)); - n = sscanf("asdf","%[abc]",str); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, str = '%s'\n",n,str); - - memset(str,0,sizeof(str)); - n = sscanf("asdbbfc","%[abc]",str); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, str = '%s'\n",n,str); - - memset(str,0,sizeof(str)); - n = sscanf("","%[abc]",str); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, str = '%s'\n",n,str); - - memset(str,0,sizeof(str)); - n = sscanf("abcdef","%[abc]",str); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, str = '%s'\n",n,str); - - a = b = c = 0; - n = sscanf("-","%d",&a); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d\n",n,a); - - a = b = c = 0; - n = sscanf("-4,-","%d,%d",&a,&b); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d, b = %d\n",n,a,b); - - memset(str,0,sizeof(str)); - n = sscanf("1 abc","%d %4c",&a,str); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d, str = '%s'\n",n,a,str); - - memset(str,0,sizeof(str)); - n = sscanf("abc","%4c",&a,str); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, str = '%s'\n",n,str); - - a = 0; - n = sscanf("17","%i",&a); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d\n",n,a); - - a = 0; - n = sscanf("017","%i",&a); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d\n",n,a); - - a = 0; - n = sscanf("0x17","%i",&a); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d\n",n,a); - - a = 0; - n = sscanf("0x017","%i",&a); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d\n",n,a); - - a = 0; - n = sscanf("0x017","%x",&a); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d\n",n,a); - - a = 0; - n = sscanf("0017","%x",&a); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d\n",n,a); - - a = 0; - n = sscanf("0x80000000","%i",&a); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %u\n",n,a); - - memset(str,0,sizeof(str)); - n = sscanf("1,e","%*d,%[abc]",str); - printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, str = '%s'\n",n,str); - - return(0); -} diff --git a/test_programs/stack_extension_test.c b/test_programs/stack_extension_test.c deleted file mode 100644 index 589dbb2..0000000 --- a/test_programs/stack_extension_test.c +++ /dev/null @@ -1,31 +0,0 @@ -/* gcc -mstackextend -o stack_extension_test stack_extension_test.c */ - -#include -#include - -void -recursive_function(char *data,int data_size,int level) -{ - char local_data[10000]; - char line[10]; - int c; - - data_size += sizeof(local_data); - level++; - - printf("recursion level=%d, size=%d; continue? ",level,data_size); - - fgets(line,sizeof(line),stdin); - c = toupper(line[0]); - - if(c == 'Y') - recursive_function(local_data,data_size,level); -} - -int -main(int argc,char ** argv) -{ - recursive_function(NULL,0,0); - - return(0); -} diff --git a/test_programs/stack_size_test.c b/test_programs/stack_size_test.c deleted file mode 100644 index eac5df5..0000000 --- a/test_programs/stack_size_test.c +++ /dev/null @@ -1,15 +0,0 @@ -#include - -int __stack_size = 60000; - -int -main(void) -{ - int first, second, num; - - num = sscanf("6", "%d %d", &first, &second); - - printf("%d %d\n", num, first); - - return(0); -} diff --git a/test_programs/strtok_test.c b/test_programs/strtok_test.c deleted file mode 100644 index e684a34..0000000 --- a/test_programs/strtok_test.c +++ /dev/null @@ -1,35 +0,0 @@ -/* - * $Id: strtok_test.c,v 1.1 2004-10-25 19:50:33 obarthel Exp $ - * - * :ts=4 - */ - -/****************************************************************************/ - -#include -#include - -/****************************************************************************/ - -int -main(int argc,char ** argv) -{ - char test[256]; - char * one; - char * two; - char * three; - - strcpy(test," one two three"); - - strtok(test," "); - - one = strtok(NULL," "); - two = strtok(NULL," "); - three = strtok(NULL," "); - - printf("one = %p '%s'\n",one,one); - printf("two = %p '%s'\n",two,two); - printf("three = %p '%s'\n",three,three); - - return(0); -} diff --git a/test_programs/test.c b/test_programs/test.c deleted file mode 100644 index a9547cc..0000000 --- a/test_programs/test.c +++ /dev/null @@ -1,278 +0,0 @@ -/* - * $Id: test.c,v 1.3 2005-01-29 17:48:07 obarthel Exp $ - * - * :ts=4 - */ - -/****************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include - -/****************************************************************************/ - -/*int __stack_size = 20000;*/ - -/****************************************************************************/ - -#if defined(__GNUC__) - -void __attribute__ ((constructor)) -constructor_test1(void) -{ - fprintf(stderr,"constructor #1 called\n"); -} - -void __attribute__ ((constructor)) -constructor_test2(void) -{ - fprintf(stderr,"constructor #2 called\n"); -} - -void __attribute__ ((destructor)) -destructor_test1(void) -{ - fprintf(stderr,"destructor #1 called\n"); -} - -void __attribute__ ((destructor)) -destructor_test2(void) -{ - fprintf(stderr,"destructor #2 called\n"); -} - -void __attribute__ ((destructor)) -destructor_test3(void) -{ - fprintf(stderr,"destructor #3 called\n"); -} - -#endif /* __GNUC__ */ - -/****************************************************************************/ - -int foo = 3; -int bar = 9; - -/****************************************************************************/ - -#if 1 -int -main(int argc,char ** argv) -{ - struct timeval tv; - time_t now; - struct tm tm; - int i,j,k; - long n,r; - char time_buffer[100]; - - for(i = 0 ; i < argc ; i++) - printf("%2d) \"%s\"\n",i,argv[i]); - - printf("div %d mod %d\n",foo / 2,bar % 4); - - time(&now); - printf("%s",ctime(&now)); - - tm = (*localtime(&now)); - strftime(time_buffer,sizeof(time_buffer),"%c",&tm); - printf("local time = %s\n",time_buffer); - - tm = (*gmtime(&now)); - strftime(time_buffer,sizeof(time_buffer),"%c",&tm); - printf("gmt = %s\n",time_buffer); - - tm.tm_year = 105; - tm.tm_mon = 0; - tm.tm_mday = 25; - tm.tm_hour = 12; - tm.tm_min = 3; - tm.tm_sec = 53; - tm.tm_isdst = -1; - - now = mktime(&tm); - - tm = (*localtime(&now)); - strftime(time_buffer,sizeof(time_buffer),"%c",&tm); - printf("2005-01-25 12:03:53 -> local time = %s\n",time_buffer); - - time(&now); - tm = (*gmtime(&now)); - strftime(time_buffer,sizeof(time_buffer),"%c",&tm); - printf("2005-01-25 12:03:53 -> gmt = %s\n",time_buffer); - - tm = (*gmtime(&now)); - strftime(time_buffer,sizeof(time_buffer),"%c %U %W %j",&tm); - printf("%s\n",time_buffer); - - #if defined(IEEE_FLOATING_POINT_SUPPORT) || defined(M68881_FLOATING_POINT_SUPPORT) - { - const double pi = 3.14159265358979323846; - const double ten = 10.0; - const double quarter = 0.25; - const double thousand = 1000.0; - const double foo = 4 * atan((double)1); - float f1; - double d1; - - printf("pi=%3.1f (float)\n",pi); - printf("pi=%.21e (exponential)\n",pi); - printf("pi=%g (float/exponential)\n",pi); - - printf("ten=%f (float)\n",ten); - printf("ten=%.21e (exponential)\n",ten); - printf("ten=%g (float/exponential)\n",ten); - - printf("thousand=%f (float)\n",thousand); - printf("thousand=%.21e (exponential)\n",thousand); - printf("thousand=%g (float/exponential)\n",thousand); - - printf("quarter=%f (float)\n",quarter); - printf("quarter=%.21e (exponential)\n",quarter); - printf("quarter=%g (float/exponential)\n",quarter); - - printf("foo=%f (float)\n",foo); - printf("foo=%.21e (exponential)\n",foo); - printf("foo=%g (float/exponential)\n",foo); - - printf("32 bit float = %f\n",4294967295.0); - printf("32+1 bit float = %f\n",-4294967295.0); - printf("big float on the edge = %f\n",4294967296.0); - printf("big float = %f\n",429496729654321.0); - printf("small float = %f\n",-429496729654321.0); - - f1 = d1 = 9; - - r = sscanf("13.24 1.324","%f %lf",&f1,&d1); - printf("r = %ld, f1 = %f, d1 = %f\n",r,f1,d1); - } - #endif - - #ifndef NDEBUG - { - char * allocation; - - allocation = malloc(4); - if(allocation != NULL) - { - strcpy(allocation,"....FOO"); - strcpy(allocation-3,"bar"); - } - } - #endif /* NDEBUG */ - - printf("hex 0x%08x\n",1); - printf("hex 0x%08x\n",1); - printf("hex 0x%08x\n",2); - printf("big int %d\n",0x80000000L); - printf("converted big int %d\n",atoi("-2147483648")); - - r = sscanf("1324","%lx",&n); - printf("r = %ld, n = %ld\n",r,n); - - r = sscanf("1234567890","%4d%3d%3d",&i,&j,&k); - printf("r = %ld, i = %d, j = %d, k = %d\n",r,i,j,k); - - /*#if defined(IEEE_FLOATING_POINT_SUPPORT) || defined(M68881_FLOATING_POINT_SUPPORT) - { - const char *arg = "100x100"; - float xres = 0, yres = 0; - - printf("%d: ", sscanf(arg, "%fx%f", &xres, &yres)); - printf("%.02fx%.02f\n", xres, yres); - } - #endif*/ - - gettimeofday(&tv,0); - printf("time = %d.%06d\n",tv.tv_sec,tv.tv_usec); - - if(argc > 1) - { - DIR * dir; - - dir = opendir(argv[1]); - if(dir != NULL) - { - struct dirent *d; - struct stat st; - - chdir(argv[1]); - - while((d = readdir(dir)) != NULL) - { - if(stat(d->d_name,&st) == 0) - printf("%s%s\n",d->d_name,S_ISDIR(st.st_mode) ? " (dir)" : ""); - } - - closedir(dir); - } - } - - return(0); -} -#endif - -/****************************************************************************/ - -#if 0 - -#define LINEBUFLENGTH 180 - -#define STRIP_LF(str) (str[strlen(str)-1]=0) -void invert_str(char * in) -{ -char t; -while(t=*in) - { - *in++=~t; - } -} - -int main(int i, char *c[]) -{ -char dest_fname[80], in_linebuffer[LINEBUFLENGTH]; -FILE * fileout, * filein; - -if(i>1) - { - sprintf(dest_fname, "%s.c", c[1]); - - fileout=fopen(dest_fname, "w"); - filein =fopen(c[1], "r"); - - if(fileout && filein) - { - fgets(in_linebuffer, LINEBUFLENGTH, filein); - STRIP_LF(in_linebuffer); - invert_str(in_linebuffer); - fputs("char *s_leading=\"", fileout); - fputs(in_linebuffer, fileout); - fputs("\";\n", fileout); - - fputs("char *s_messages[]={\n", fileout); - - while(fgets(in_linebuffer, LINEBUFLENGTH, filein)) - { - STRIP_LF(in_linebuffer); - invert_str(in_linebuffer); - - fputs("\"", fileout); - fputs(in_linebuffer, fileout); - fputs("\",\n", fileout); - } - fputs("};\n", fileout); - fputs("unsigned s_mess_num = sizeof(s_messages)/sizeof(char *);\n", fileout); - fclose(filein); - fclose(fileout); - } - } -return 0; -} - -#endif diff --git a/test_programs/translate_test.c b/test_programs/translate_test.c deleted file mode 100644 index 9bf7c7e..0000000 --- a/test_programs/translate_test.c +++ /dev/null @@ -1,39 +0,0 @@ -/* - * $Id: translate_test.c,v 1.1.1.1 2004-07-26 16:36:08 obarthel Exp $ - * - * :ts=4 - */ - -#include -#include -#include -#include - -extern char __current_path_name[]; - -int -main(int argc,char ** argv) -{ - struct name_translation_info nti; - char * name; - int error; - int i; - - /*strcpy(__current_path_name,"/absolute_path_name/whatever");*/ - - for(i = 1 ; i < argc ; i++) - { - name = argv[i]; - - printf("'%s' -> ",name); - - error = __translate_unix_to_amiga_path_name(&name,&nti); - /*error = __translate_amiga_to_unix_path_name(&name,&nti);*/ - if(error == 0) - printf("'%s'\n",name); - else - printf("%s\n",strerror(error)); - } - - return(0); -}