diff --git a/libnix/Makefile.in b/libnix/Makefile.in index 9918cc7..dc9cf0e 100644 --- a/libnix/Makefile.in +++ b/libnix/Makefile.in @@ -31,15 +31,15 @@ INSTALL_DATA = @INSTALL_DATA@ #### End system configuration section #### -V=VER: libnix 2.0 BETA (12.4.2000) +V=VER: libnix 2.1 (11.09.2004) CURDIR := $(shell pwd) MAK2=$(MAKE) -f $(CURDIR)/sources/Makefile -SUBDIRS=startup lib libb lib020 libb020 lib881 libb881#lib060 libb060 libb32 libb32881 libb32060 +SUBDIRS=startup lib libb lib020 libb020 lib881 libb881 libb32 #lib060 libb060 libb32 libb32881 libb32060 -all: libnix.guide libnix.info $(SUBDIRS) +all: $(SUBDIRS) cd sources; $(MAKE) filelists cd startup; $(MAKE) -f $(CURDIR)/sources/startup/Makefile V="$(V)" cd lib; $(MAK2) V="$(V)" CFLAGS="-Wall -O3 -fomit-frame-pointer" @@ -50,7 +50,7 @@ all: libnix.guide libnix.info $(SUBDIRS) cd libb881; $(MAK2) V="$(V)" CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel -DSMALL_DATA -m68020 -m68881" # cd lib060; $(MAK2) V="$(V)" CFLAGS="-Wall -O3 -fomit-frame-pointer -m68060 -m68881" # cd libb060; $(MAK2) V="$(V)" CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel -DSMALL_DATA -m68060 -m68881" -# cd libb32; $(MAK2) V="$(V)" CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel32 -DSMALL_DATA -m68020" + cd libb32; $(MAK2) V="$(V)" CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel32 -DSMALL_DATA -m68020" # cd libb32881; $(MAK2) V="$(V)" CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel32 -DSMALL_DATA -m68020 -m68881" # cd libb32060; $(MAK2) V="$(V)" CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel32 -DSMALL_DATA -m68060 -m68881" # cd libix; $(MAK2) V="$(V)" CFLAGS="-Wall -O3 -fomit-frame-pointer -DIXPATHS" @@ -65,7 +65,7 @@ libamiga: cd sources; $(MAK2) filelists cd lib; $(MAK2) libamiga CFLAGS="-O3 -fomit-frame-pointer" cd libb; $(MAK2) libamiga CFLAGS="-O3 -fomit-frame-pointer -fbaserel" -# cd libb32; $(MAK2) libamiga CFLAGS="-O3 -fomit-frame-pointer -fbaserel32 -m68020" + cd libb32; $(MAK2) libamiga CFLAGS="-O3 -fomit-frame-pointer -fbaserel32 -m68020" clean: cd lib; $(MAK2) clean @@ -76,7 +76,7 @@ clean: cd libb881; $(MAK2) clean # cd lib060; $(MAK2) clean # cd libb060; $(MAK2) clean -# cd lib32; $(MAK2) clean + cd libb32; $(MAK2) clean # cd libb32881; $(MAK2) clean # cd libb32060; $(MAK2) clean # cd libix; $(MAK2) clean @@ -91,7 +91,7 @@ veryclean: cd libb881; $(MAK2) veryclean # cd lib060; $(MAK2) veryclean # cd libb060; $(MAK2) veryclean -# cd lib32; $(MAK2) veryclean + cd libb32; $(MAK2) veryclean # cd libb32881; $(MAK2) veryclean # cd libb32060; $(MAK2) veryclean # cd libix; $(MAK2) veryclean @@ -121,14 +121,14 @@ install: installdirs # $(INSTALL) lib060/misc/*.o $(prefix)/lib/libm060/libnix # $(INSTALL) libb060/*/lib*.a $(prefix)/lib/libb/libm060/libnix # $(INSTALL) libb060/misc/*.o $(prefix)/lib/libb/libm060/libnix -# $(INSTALL) libb32/*/lib*.a $(prefix)/lib/libb32/libm020/libnix -# $(INSTALL) libb32/misc/*.o $(prefix)/lib/libb32/libm020/libnix + $(INSTALL) libb32/*/lib*.a $(prefix)/lib/libb32/libm020/libnix + $(INSTALL) libb32/misc/*.o $(prefix)/lib/libb32/libm020/libnix # $(INSTALL) libb32881/*/lib*.a $(prefix)/lib/libb32/libm020/libm881/libnix # $(INSTALL) libb32881/misc/*.o $(prefix)/lib/libb32/libm020/libm881/libnix # $(INSTALL) libb32060/*/lib*.a $(prefix)/lib/libb32/libm060/libnix # $(INSTALL) libb32060/misc/*.o $(prefix)/lib/libb32/libm060/libnix - $(INSTALL_DATA) *.info* $(infodir) - $(INSTALL_DATA) libnix.guide $(guidedir)/libnix.guide +# $(INSTALL_DATA) *.info* $(infodir) +# $(INSTALL_DATA) libnix.guide $(guidedir)/libnix.guide installdirs: mkinstalldirs $(srcdir)/mkinstalldirs \ @@ -145,7 +145,11 @@ installdirs: mkinstalldirs $(libdir)/libb/libm020 \ $(libdir)/libb/libm020/libnix \ $(libdir)/libb/libm020/libm881 \ - $(libdir)/libb/libm020/libm881/libnix + $(libdir)/libb/libm020/libm881/libnix \ + $(libdir)/libb32 \ + $(libdir)/libb32/libnix \ + $(libdir)/libb32/libm020 \ + $(libdir)/libb32/libm020/libnix # $(libdir)/libm060 \ # $(libdir)/libm060/libnix \ # $(libdir)/libb/libm060 \ diff --git a/libnix/Product-Info b/libnix/Product-Info new file mode 100644 index 0000000..86be37d --- /dev/null +++ b/libnix/Product-Info @@ -0,0 +1,51 @@ +.name +libnix +.aminet-dir +dev/gcc +.type +Library +.short +A library for amiga specific gcc develp. +.description +This is libnix, a static (i.e. link) library for gcc 2.3.3 or above. +It's not a replacement for ixemul.library (though it's possible to +recompile most of the gcc environment with libnix) but a good thing +for amiga specific development on gcc: + +* It's mostly compatible to SAS's way of handling things, i.e. + you get even an automatic shared library opening feature and + some other things you may miss in ixemul.library. + This also means it's ANSI compliant. + +* It doesn't need any shared libraries than normal Amiga OS ones. + +* It is not copyrighted by the FSF. Therefore you neither need + to include sources nor objects together with your executable. + (read the GLGPL _before_ flaming on this statement) + +* And it's short! I was able to compile a 492 byte 'hello, world' + using normal main. + +* It uses OS20 features whenever necessary. + +To cut it short: + +Use ixemul.library for porting Un*x programs, libnix for compiling +amiga-only programs and gcc becomes one of the best Amiga compilers. +.version +1.2 +.author +Matthias Fleischer +Gunther Nikl +.distribution +Public Domain +.email +fleischr@izfm.uni-stuttgart.de +gnikl@informatik.uni-rostock.de +.docs +libnix.guide +libnix.readme +.described-by +Fred Fish (fnf@amigalib.com) +.submittal +Downloaded via ftp from aminet (wuarchive.wustl.edu). diff --git a/libnix/configure b/libnix/configure index e9a945b..386e8af 100755 --- a/libnix/configure +++ b/libnix/configure @@ -1,7 +1,7 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.12.1 +# Generated automatically using autoconf version 2.13 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. # # This configure script is free software; the Free Software Foundation @@ -44,10 +44,6 @@ libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' -guidedir='${prefix}/guide' -htmldir='${prefix}/html' -psdir='${prefix}/ps' -dvidir='${prefix}/dvi' mandir='${prefix}/man' # Initialize some other variables. @@ -165,10 +161,6 @@ Directory and file names: --includedir=DIR C header files in DIR [PREFIX/include] --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] --infodir=DIR info documentation in DIR [PREFIX/info] - --guidedir=DIR Amigaguide documentation in DIR [PREFIX/guide] - --htmldir=DIR HTML documentation in DIR [PREFIX/html] - --psdir=DIR postscript documentation in DIR [PREFIX/ps] - --dvidir=DIR TeX dvi documentation in DIR [PREFIX/dvi] --mandir=DIR man documentation in DIR [PREFIX/man] --srcdir=DIR find the sources in DIR [configure dir or ..] --program-prefix=PREFIX prepend PREFIX to installed program names @@ -211,22 +203,6 @@ EOF -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir="$ac_optarg" ;; - -guidedir | --guidedir | --guidedi | --guided | --guide | --gui) - ac_prev=guidedir ;; - -guidedir=* | --guidedir=* | --guidedi=* | --guided=* | --guide=* |--gui=*)+ guidedir="$ac_optarg" ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* |--htm=*)+ htmldir="$ac_optarg" ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)+ psdir="$ac_optarg" ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* |--dv=*)+ dvidir="$ac_optarg" ;; - -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) @@ -357,7 +333,7 @@ EOF verbose=yes ;; -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.12.1" + echo "configure generated by autoconf version 2.13" exit 0 ;; -with-* | --with-*) @@ -527,9 +503,11 @@ ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross +ac_exeext= +ac_objext=o if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then @@ -547,15 +525,16 @@ fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:551: checking for $ac_word" >&5 +echo "configure:529: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_CC="gcc" @@ -572,80 +551,21 @@ else echo "$ac_t""no" 1>&6 fi -if test -z "$CC"; then - # Extract the first word of "bcc", so it can be a program name with args. -set dummy bcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:580: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="bcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -fi -if test -z "$CC"; then - # Extract the first word of "mwcc", so it can be a program name with args. -set dummy mwcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:610: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="mwcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:640: checking for $ac_word" >&5 +echo "configure:559: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_prog_rejected=no - for ac_dir in $PATH; do + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then @@ -680,25 +600,61 @@ else echo "$ac_t""no" 1>&6 fi + if test -z "$CC"; then + case "`uname -s`" in + *win32* | *WIN32*) + # Extract the first word of "cl", so it can be a program name with args. +set dummy cl; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:610: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="cl" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + ;; + esac + fi + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } fi -test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:688: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:642: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross -cat > conftest.$ac_ext < conftest.$ac_ext << EOF + +#line 653 "configure" #include "confdefs.h" + main(){return(0);} EOF -if { (eval echo configure:702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -712,18 +668,24 @@ else ac_cv_prog_cc_works=no fi rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:722: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:684: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:727: checking whether we are using GNU C" >&5 +echo "configure:689: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -732,7 +694,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:736: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:698: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -743,11 +705,15 @@ echo "$ac_t""$ac_cv_prog_gcc" 1>&6 if test $ac_cv_prog_gcc = yes; then GCC=yes - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:751: checking whether ${CC-cc} accepts -g" >&5 +else + GCC= +fi + +ac_test_CFLAGS="${CFLAGS+set}" +ac_save_CFLAGS="$CFLAGS" +CFLAGS= +echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:717: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -762,28 +728,115 @@ rm -f conftest* fi echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then +if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then CFLAGS="-g -O2" else - CFLAGS="-O2" + CFLAGS="-g" fi else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi -if test "$CC" = "mwcc"; then - CC="mwcc -I- -I. -I/boot/apps/GeekGadgets/include -L/boot/apps/GeekGadgets/lib -opt global -nodup" - AR="mwld" - RANLIB="true" -elif test "$CC" = "bcc"; then - AR="mwld" - RANLIB="true" + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi fi +# Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:751: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +# Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:781: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +# Extract the first word of "as", so it can be a program name with args. +set dummy as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:811: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:787: checking how to run the C preprocessor" >&5 +echo "configure:840: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -798,14 +851,14 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:808: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` +{ (eval echo configure:861: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else @@ -815,14 +868,31 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:825: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` +{ (eval echo configure:878: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -nologo -E" + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:895: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else @@ -834,6 +904,8 @@ else fi rm -f conftest* fi +rm -f conftest* +fi rm -f conftest* ac_cv_prog_CPP="$CPP" fi @@ -843,20 +915,21 @@ else fi echo "$ac_t""$CPP" 1>&6 -for ac_prog in mawk gawk nawk awk +for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:852: checking for $ac_word" >&5 +echo "configure:924: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_AWK="$ac_prog" @@ -879,15 +952,16 @@ done # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:883: checking for $ac_word" >&5 +echo "configure:956: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_RANLIB="ranlib" @@ -931,22 +1005,21 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install -# AmigaOS /c/install # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:941: checking for a BSD compatible install" >&5 +echo "configure:1014: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:" + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" for ac_dir in $PATH; do # Account for people who put trailing slashes in PATH elements. case "$ac_dir/" in - /|./|.//|/etc/*|/c/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root @@ -985,6 +1058,8 @@ echo "$ac_t""$INSTALL" 1>&6 # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' @@ -1011,7 +1086,7 @@ EOF # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. (set) 2>&1 | - case `(ac_space=' '; set) 2>&1 | grep ac_space` in + case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote substitution # turns \\\\ into \\, and sed turns \\ into \). @@ -1054,24 +1129,41 @@ trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g -s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs +# +# If the first sed substitution is executed (which looks for macros that +# take arguments), then we branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +cat >confdef2opt.sed <<\_ACEOF +t clear +: clear +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g +t quote +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g +t quote +d +: quote +s,[ `~#$^&*(){}\\|;'"<>?],\\&,g +s,\[,\\&,g +s,\],\\&,g +s,\$,$$,g +p +_ACEOF +# We use echo to avoid assuming a particular line-breaking character. +# The extra dot is to prevent the shell from consuming trailing +# line-breaks from the sub-command output. A line-break within +# single-quotes doesn't work because, if this script is created in a +# platform that uses two characters for line-breaks (e.g., DOS), tr +# would break. +ac_LF_and_DOT=`echo; echo .` +DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` +rm -f confdef2opt.sed # Without the "./", some shells look in PATH for config.status. : ${CONFIG_STATUS=./config.status} echo creating $CONFIG_STATUS -# Some systems, like AmigaOS, won't allow you to remove a script that is -# being executed, so just move it out of the way instead. -if test -f $CONFIG_STATUS; then mv $CONFIG_STATUS $CONFIG_STATUS.old; else true; fi +rm -f $CONFIG_STATUS cat > $CONFIG_STATUS <> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF exit 0 EOF chmod +x $CONFIG_STATUS -rm -f CONFIG.STATUS.old rm -fr confdefs* $ac_clean_files test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 diff --git a/libnix/configure.in b/libnix/configure.in index 73c7f2a..c82860e 100644 --- a/libnix/configure.in +++ b/libnix/configure.in @@ -3,6 +3,10 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT() AC_PROG_CC +AC_PROG_RANLIB +AC_CHECK_PROG(AR, ar, ar, ar) +AC_CHECK_PROG(AS, as, as, as) + AC_PROG_CPP AC_PROG_AWK AC_PROG_RANLIB diff --git a/libnix/manifests/bin b/libnix/manifests/bin new file mode 100644 index 0000000..d8e8442 --- /dev/null +++ b/libnix/manifests/bin @@ -0,0 +1,61 @@ +guide/libnix.guide +info/libnix.info +lib/libb/libm020/libm881/libnix/detach.o +lib/libb/libm020/libm881/libnix/libm.a +lib/libb/libm020/libm881/libnix/libnix.a +lib/libb/libm020/libm881/libnix/libnix13.a +lib/libb/libm020/libm881/libnix/libnix_main.a +lib/libb/libm020/libm881/libnix/libnixmain.a +lib/libb/libm020/libm881/libnix/libstack.a +lib/libb/libm020/libm881/libnix/libstubs.a +lib/libb/libm020/libm881/libnix/swapstack.o +lib/libb/libm020/libnix/detach.o +lib/libb/libm020/libnix/libm.a +lib/libb/libm020/libnix/libnix.a +lib/libb/libm020/libnix/libnix13.a +lib/libb/libm020/libnix/libnix_main.a +lib/libb/libm020/libnix/libnixmain.a +lib/libb/libm020/libnix/libstack.a +lib/libb/libm020/libnix/libstubs.a +lib/libb/libm020/libnix/swapstack.o +lib/libb/libnix/detach.o +lib/libb/libnix/libm.a +lib/libb/libnix/libnix.a +lib/libb/libnix/libnix13.a +lib/libb/libnix/libnix_main.a +lib/libb/libnix/libnixmain.a +lib/libb/libnix/libstack.a +lib/libb/libnix/libstubs.a +lib/libb/libnix/swapstack.o +lib/libm020/libm881/libnix/detach.o +lib/libm020/libm881/libnix/libm.a +lib/libm020/libm881/libnix/libnix.a +lib/libm020/libm881/libnix/libnix13.a +lib/libm020/libm881/libnix/libnix_main.a +lib/libm020/libm881/libnix/libnixmain.a +lib/libm020/libm881/libnix/libstack.a +lib/libm020/libm881/libnix/libstubs.a +lib/libm020/libm881/libnix/swapstack.o +lib/libm020/libnix/detach.o +lib/libm020/libnix/libm.a +lib/libm020/libnix/libnix.a +lib/libm020/libnix/libnix13.a +lib/libm020/libnix/libnix_main.a +lib/libm020/libnix/libnixmain.a +lib/libm020/libnix/libstack.a +lib/libm020/libnix/libstubs.a +lib/libm020/libnix/swapstack.o +lib/libnix/detach.o +lib/libnix/libinit.o +lib/libnix/libinitr.o +lib/libnix/libm.a +lib/libnix/libnix.a +lib/libnix/libnix13.a +lib/libnix/libnix_main.a +lib/libnix/libnixmain.a +lib/libnix/libstack.a +lib/libnix/libstubs.a +lib/libnix/nbcrt0.o +lib/libnix/ncrt0.o +lib/libnix/nrcrt0.o +lib/libnix/swapstack.o diff --git a/libnix/manifests/src b/libnix/manifests/src new file mode 100644 index 0000000..a03ac44 --- /dev/null +++ b/libnix/manifests/src @@ -0,0 +1,391 @@ +sysdep/libnix/Makefile.in +sysdep/libnix/Product-Info +sysdep/libnix/configure +sysdep/libnix/configure.in +sysdep/libnix/examples/Makefile.in +sysdep/libnix/examples/helloworld.c +sysdep/libnix/examples/simpledev.c +sysdep/libnix/examples/simplelib.c +sysdep/libnix/libnix.texi +sysdep/libnix/manifests/bin +sysdep/libnix/manifests/src +sysdep/libnix/mkinstalldirs +sysdep/libnix/sources/Makefile.in +sysdep/libnix/sources/amiga/Makefile.in +sysdep/libnix/sources/amiga/misc/AbsExecBase.c +sysdep/libnix/sources/amiga/misc/AddTOF.c +sysdep/libnix/sources/amiga/misc/ArgArray.c +sysdep/libnix/sources/amiga/misc/AsmAllocPooled.c +sysdep/libnix/sources/amiga/misc/AsmCreatePool.c +sysdep/libnix/sources/amiga/misc/AsmFreePooled.c +sysdep/libnix/sources/amiga/misc/BeginIO.c +sysdep/libnix/sources/amiga/misc/CallHook.c +sysdep/libnix/sources/amiga/misc/Cia.c +sysdep/libnix/sources/amiga/misc/CoerceMethod.c +sysdep/libnix/sources/amiga/misc/CreateIO.c +sysdep/libnix/sources/amiga/misc/CreatePort.c +sysdep/libnix/sources/amiga/misc/CreateTask.c +sysdep/libnix/sources/amiga/misc/Custom.c +sysdep/libnix/sources/amiga/misc/DeleteTask.c +sysdep/libnix/sources/amiga/misc/DoMethod.c +sysdep/libnix/sources/amiga/misc/DoPktn.s +sysdep/libnix/sources/amiga/misc/DoSuperMethod.c +sysdep/libnix/sources/amiga/misc/FastRand.c +sysdep/libnix/sources/amiga/misc/FreeIEvents.c +sysdep/libnix/sources/amiga/misc/HookEntry.c +sysdep/libnix/sources/amiga/misc/HotKey.c +sysdep/libnix/sources/amiga/misc/LibAllocPooled.c +sysdep/libnix/sources/amiga/misc/LibCreatePool.c +sysdep/libnix/sources/amiga/misc/LibFreePooled.c +sysdep/libnix/sources/amiga/misc/NewList.c +sysdep/libnix/sources/amiga/misc/RangeRand.c +sysdep/libnix/sources/amiga/misc/SetSuperAttrs.c +sysdep/libnix/sources/amiga/misc/TimeDelay.c +sysdep/libnix/sources/amiga/misc/WaitBeam.c +sysdep/libnix/sources/amiga/misc/sprintf.c +sysdep/libnix/sources/headers/bases.h +sysdep/libnix/sources/headers/debuglib.h +sysdep/libnix/sources/headers/dirent.h +sysdep/libnix/sources/headers/libinit.h +sysdep/libnix/sources/headers/pool.h +sysdep/libnix/sources/headers/rand48.h +sysdep/libnix/sources/headers/regparm.h +sysdep/libnix/sources/headers/stabs.h +sysdep/libnix/sources/headers/stdio.h +sysdep/libnix/sources/headers/strsup.h +sysdep/libnix/sources/history +sysdep/libnix/sources/math/Makefile.in +sysdep/libnix/sources/math/extra/frexp.c +sysdep/libnix/sources/math/extra/ldexp.c +sysdep/libnix/sources/math/extra/modf.c +sysdep/libnix/sources/math/extra/rand48.c +sysdep/libnix/sources/math/stdio/isinf.c +sysdep/libnix/sources/math/stdio/isnan.c +sysdep/libnix/sources/math/stdlib/atof.c +sysdep/libnix/sources/math/stdlib/strtod.c +sysdep/libnix/sources/math/trans/acos.c +sysdep/libnix/sources/math/trans/asin.c +sysdep/libnix/sources/math/trans/atan.c +sysdep/libnix/sources/math/trans/atan2.c +sysdep/libnix/sources/math/trans/ceil.c +sysdep/libnix/sources/math/trans/cos.c +sysdep/libnix/sources/math/trans/cosh.c +sysdep/libnix/sources/math/trans/exp.c +sysdep/libnix/sources/math/trans/fabs.c +sysdep/libnix/sources/math/trans/floor.c +sysdep/libnix/sources/math/trans/fmod.c +sysdep/libnix/sources/math/trans/log.c +sysdep/libnix/sources/math/trans/log10.c +sysdep/libnix/sources/math/trans/pow.c +sysdep/libnix/sources/math/trans/sin.c +sysdep/libnix/sources/math/trans/sinh.c +sysdep/libnix/sources/math/trans/sqrt.c +sysdep/libnix/sources/math/trans/tan.c +sysdep/libnix/sources/math/trans/tanh.c +sysdep/libnix/sources/misc/Makefile.in +sysdep/libnix/sources/misc/detach.c +sysdep/libnix/sources/misc/swapstack.c +sysdep/libnix/sources/nix/Makefile.in +sysdep/libnix/sources/nix/assert/__eprintf.c +sysdep/libnix/sources/nix/ctype/_ctype_.c +sysdep/libnix/sources/nix/ctype/isalnum.c +sysdep/libnix/sources/nix/ctype/isalpha.c +sysdep/libnix/sources/nix/ctype/iscntrl.c +sysdep/libnix/sources/nix/ctype/isdigit.c +sysdep/libnix/sources/nix/ctype/isgraph.c +sysdep/libnix/sources/nix/ctype/islower.c +sysdep/libnix/sources/nix/ctype/isprint.c +sysdep/libnix/sources/nix/ctype/ispunct.c +sysdep/libnix/sources/nix/ctype/isspace.c +sysdep/libnix/sources/nix/ctype/isupper.c +sysdep/libnix/sources/nix/ctype/isxdigit.c +sysdep/libnix/sources/nix/ctype/tolower.c +sysdep/libnix/sources/nix/ctype/toupper.c +sysdep/libnix/sources/nix/errno/__seterrno.c +sysdep/libnix/sources/nix/errno/errno.c +sysdep/libnix/sources/nix/extra/__amigapath.c +sysdep/libnix/sources/nix/extra/__stat.c +sysdep/libnix/sources/nix/extra/access.c +sysdep/libnix/sources/nix/extra/bcmp.c +sysdep/libnix/sources/nix/extra/chdir.c +sysdep/libnix/sources/nix/extra/chmod.c +sysdep/libnix/sources/nix/extra/creat.c +sysdep/libnix/sources/nix/extra/dirent.c +sysdep/libnix/sources/nix/extra/dotimer.c +sysdep/libnix/sources/nix/extra/fdtofh.c +sysdep/libnix/sources/nix/extra/fstat.c +sysdep/libnix/sources/nix/extra/getcwd.c +sysdep/libnix/sources/nix/extra/getpid.c +sysdep/libnix/sources/nix/extra/getppid.c +sysdep/libnix/sources/nix/extra/getrusage.c +sysdep/libnix/sources/nix/extra/getw.c +sysdep/libnix/sources/nix/extra/getwd.c +sysdep/libnix/sources/nix/extra/mkdir.c +sysdep/libnix/sources/nix/extra/mktemp.c +sysdep/libnix/sources/nix/extra/putw.c +sysdep/libnix/sources/nix/extra/rmdir.c +sysdep/libnix/sources/nix/extra/setbuffer.c +sysdep/libnix/sources/nix/extra/setlinebuf.c +sysdep/libnix/sources/nix/extra/sleep.c +sysdep/libnix/sources/nix/extra/snprintf.c +sysdep/libnix/sources/nix/extra/stat.c +sysdep/libnix/sources/nix/extra/stpcpy.c +sysdep/libnix/sources/nix/extra/strdup.c +sysdep/libnix/sources/nix/extra/stricmp.c +sysdep/libnix/sources/nix/extra/strlower.c +sysdep/libnix/sources/nix/extra/strnicmp.c +sysdep/libnix/sources/nix/extra/strupper.c +sysdep/libnix/sources/nix/extra/timer.c +sysdep/libnix/sources/nix/extra/times.c +sysdep/libnix/sources/nix/extra/unlink.c +sysdep/libnix/sources/nix/extra/usleep.c +sysdep/libnix/sources/nix/extra/utime.c +sysdep/libnix/sources/nix/extra/utimes.c +sysdep/libnix/sources/nix/extra/vsnprintf.c +sysdep/libnix/sources/nix/locale/__decimalpoint.c +sysdep/libnix/sources/nix/locale/__lconv.c +sysdep/libnix/sources/nix/locale/__localevec.c +sysdep/libnix/sources/nix/locale/localeconv.c +sysdep/libnix/sources/nix/locale/setlocale.c +sysdep/libnix/sources/nix/math/__adddf3.c +sysdep/libnix/sources/nix/math/__addsf3.c +sysdep/libnix/sources/nix/math/__divdf3.c +sysdep/libnix/sources/nix/math/__divsf3.c +sysdep/libnix/sources/nix/math/__divsi3.c +sysdep/libnix/sources/nix/math/__eqdf2.c +sysdep/libnix/sources/nix/math/__eqsf2.c +sysdep/libnix/sources/nix/math/__extendsfdf2.c +sysdep/libnix/sources/nix/math/__fixdfsi.c +sysdep/libnix/sources/nix/math/__fixsfsi.c +sysdep/libnix/sources/nix/math/__fixunsdfsi.c +sysdep/libnix/sources/nix/math/__fixunssfsi.c +sysdep/libnix/sources/nix/math/__floatsidf.c +sysdep/libnix/sources/nix/math/__floatsisf.c +sysdep/libnix/sources/nix/math/__muldf3.c +sysdep/libnix/sources/nix/math/__mulsf3.c +sysdep/libnix/sources/nix/math/__mulsi3.c +sysdep/libnix/sources/nix/math/__negdf2.c +sysdep/libnix/sources/nix/math/__negsf2.c +sysdep/libnix/sources/nix/math/__subdf3.c +sysdep/libnix/sources/nix/math/__subsf3.c +sysdep/libnix/sources/nix/math/__truncdfsf2.c +sysdep/libnix/sources/nix/math/__udivsi3.c +sysdep/libnix/sources/nix/misc/__request.c +sysdep/libnix/sources/nix/misc/bcopy.c +sysdep/libnix/sources/nix/misc/bzero.c +sysdep/libnix/sources/nix/setjmp/longjmp.c +sysdep/libnix/sources/nix/setjmp/setjmp.c +sysdep/libnix/sources/nix/signal/__chkabort.c +sysdep/libnix/sources/nix/signal/__signalfunc.c +sysdep/libnix/sources/nix/signal/raise.c +sysdep/libnix/sources/nix/signal/signal.c +sysdep/libnix/sources/nix/stdio/__fflush.c +sysdep/libnix/sources/nix/stdio/__srget.c +sysdep/libnix/sources/nix/stdio/__stdio.c +sysdep/libnix/sources/nix/stdio/__swbuf.c +sysdep/libnix/sources/nix/stdio/clearerr.c +sysdep/libnix/sources/nix/stdio/feof.c +sysdep/libnix/sources/nix/stdio/ferror.c +sysdep/libnix/sources/nix/stdio/fflush.c +sysdep/libnix/sources/nix/stdio/fgetc.c +sysdep/libnix/sources/nix/stdio/fgetpos.c +sysdep/libnix/sources/nix/stdio/fgets.c +sysdep/libnix/sources/nix/stdio/fileno.c +sysdep/libnix/sources/nix/stdio/fopen.c +sysdep/libnix/sources/nix/stdio/fprintf.c +sysdep/libnix/sources/nix/stdio/fputc.c +sysdep/libnix/sources/nix/stdio/fputs.c +sysdep/libnix/sources/nix/stdio/fread.c +sysdep/libnix/sources/nix/stdio/freopen.c +sysdep/libnix/sources/nix/stdio/fscanf.c +sysdep/libnix/sources/nix/stdio/fseek.c +sysdep/libnix/sources/nix/stdio/fsetpos.c +sysdep/libnix/sources/nix/stdio/ftell.c +sysdep/libnix/sources/nix/stdio/fwrite.c +sysdep/libnix/sources/nix/stdio/gets.c +sysdep/libnix/sources/nix/stdio/mblen.c +sysdep/libnix/sources/nix/stdio/mbstowcs.c +sysdep/libnix/sources/nix/stdio/mbtowc.c +sysdep/libnix/sources/nix/stdio/open.c +sysdep/libnix/sources/nix/stdio/perror.c +sysdep/libnix/sources/nix/stdio/printf.c +sysdep/libnix/sources/nix/stdio/puts.c +sysdep/libnix/sources/nix/stdio/remove.c +sysdep/libnix/sources/nix/stdio/rename.c +sysdep/libnix/sources/nix/stdio/rewind.c +sysdep/libnix/sources/nix/stdio/scanf.c +sysdep/libnix/sources/nix/stdio/setbuf.c +sysdep/libnix/sources/nix/stdio/setvbuf.c +sysdep/libnix/sources/nix/stdio/sprintf.c +sysdep/libnix/sources/nix/stdio/sscanf.c +sysdep/libnix/sources/nix/stdio/tmpfile.c +sysdep/libnix/sources/nix/stdio/tmpnam.c +sysdep/libnix/sources/nix/stdio/ungetc.c +sysdep/libnix/sources/nix/stdio/vfprintf.c +sysdep/libnix/sources/nix/stdio/vfscanf.c +sysdep/libnix/sources/nix/stdio/vprintf.c +sysdep/libnix/sources/nix/stdio/vscanf.c +sysdep/libnix/sources/nix/stdio/vsprintf.c +sysdep/libnix/sources/nix/stdio/vsscanf.c +sysdep/libnix/sources/nix/stdio/wcstombs.c +sysdep/libnix/sources/nix/stdio/wctomb.c +sysdep/libnix/sources/nix/stdlib/_MSTEP.c +sysdep/libnix/sources/nix/stdlib/abort.c +sysdep/libnix/sources/nix/stdlib/abs.c +sysdep/libnix/sources/nix/stdlib/atexit.c +sysdep/libnix/sources/nix/stdlib/atoi.c +sysdep/libnix/sources/nix/stdlib/atol.c +sysdep/libnix/sources/nix/stdlib/bsearch.c +sysdep/libnix/sources/nix/stdlib/calloc.c +sysdep/libnix/sources/nix/stdlib/free.c +sysdep/libnix/sources/nix/stdlib/getenv.c +sysdep/libnix/sources/nix/stdlib/labs.c +sysdep/libnix/sources/nix/stdlib/malloc.c +sysdep/libnix/sources/nix/stdlib/qsort.c +sysdep/libnix/sources/nix/stdlib/rand.c +sysdep/libnix/sources/nix/stdlib/realloc.c +sysdep/libnix/sources/nix/stdlib/strtol.c +sysdep/libnix/sources/nix/stdlib/strtoul.c +sysdep/libnix/sources/nix/stdlib/system.c +sysdep/libnix/sources/nix/string/memchr.c +sysdep/libnix/sources/nix/string/memcmp.c +sysdep/libnix/sources/nix/string/memcpy.c +sysdep/libnix/sources/nix/string/memmove.c +sysdep/libnix/sources/nix/string/memset.c +sysdep/libnix/sources/nix/string/strcat.c +sysdep/libnix/sources/nix/string/strchr.c +sysdep/libnix/sources/nix/string/strcmp.c +sysdep/libnix/sources/nix/string/strcoll.c +sysdep/libnix/sources/nix/string/strcpy.c +sysdep/libnix/sources/nix/string/strcspn.c +sysdep/libnix/sources/nix/string/strerror.c +sysdep/libnix/sources/nix/string/strlen.c +sysdep/libnix/sources/nix/string/strncat.c +sysdep/libnix/sources/nix/string/strncmp.c +sysdep/libnix/sources/nix/string/strncpy.c +sysdep/libnix/sources/nix/string/strpbrk.c +sysdep/libnix/sources/nix/string/strrchr.c +sysdep/libnix/sources/nix/string/strspn.c +sysdep/libnix/sources/nix/string/strstr.c +sysdep/libnix/sources/nix/string/strtok.c +sysdep/libnix/sources/nix/string/strxfrm.c +sysdep/libnix/sources/nix/time/__gmtoffset.c +sysdep/libnix/sources/nix/time/asctime.c +sysdep/libnix/sources/nix/time/clock.c +sysdep/libnix/sources/nix/time/difftime.c +sysdep/libnix/sources/nix/time/gmtime.c +sysdep/libnix/sources/nix/time/localtime.c +sysdep/libnix/sources/nix/time/mktime.c +sysdep/libnix/sources/nix/time/strftime.c +sysdep/libnix/sources/nix/time/time.c +sysdep/libnix/sources/nix13/Makefile.in +sysdep/libnix/sources/nix13/extra/stricmp.c +sysdep/libnix/sources/nix13/extra/strnicmp.c +sysdep/libnix/sources/nix13/math/__divsi3.c +sysdep/libnix/sources/nix13/math/__mulsi3.c +sysdep/libnix/sources/nix13/math/__udivsi3.c +sysdep/libnix/sources/nix_main/Makefile.in +sysdep/libnix/sources/nix_main/__nocommandline.c +sysdep/libnix/sources/nix_main/_main.c +sysdep/libnix/sources/nixmain/Makefile.in +sysdep/libnix/sources/nixmain/__nocommandline.c +sysdep/libnix/sources/nixmain/__stdiowin.c +sysdep/libnix/sources/stack/Makefile.in +sysdep/libnix/sources/stack/init_stk.c +sysdep/libnix/sources/stack/link_a5_0_f.c +sysdep/libnix/sources/stack/link_a5_d0_f.c +sysdep/libnix/sources/stack/longjmp.c +sysdep/libnix/sources/stack/stk_argbytes.c +sysdep/libnix/sources/stack/stk_minframe.c +sysdep/libnix/sources/stack/stk_safezone.c +sysdep/libnix/sources/stack/stkchk_d0.c +sysdep/libnix/sources/stack/stkext.c +sysdep/libnix/sources/stack/stkovf.c +sysdep/libnix/sources/stack/stkrst.c +sysdep/libnix/sources/stack/stkrst_f.c +sysdep/libnix/sources/stack/sub_d0_sp.c +sysdep/libnix/sources/stack/xcovf.c +sysdep/libnix/sources/startup/Makefile.in +sysdep/libnix/sources/startup/devinit.c +sysdep/libnix/sources/startup/libinit.c +sysdep/libnix/sources/startup/libinitr.c +sysdep/libnix/sources/startup/nbcrt0.S +sysdep/libnix/sources/startup/ncrt0.S +sysdep/libnix/sources/startup/nrcrt0.S +sysdep/libnix/sources/stubs/Makefile.in +sysdep/libnix/sources/stubs/libbases/amigaguide.c +sysdep/libnix/sources/stubs/libbases/asl.c +sysdep/libnix/sources/stubs/libbases/bullet.c +sysdep/libnix/sources/stubs/libbases/commodities.c +sysdep/libnix/sources/stubs/libbases/datatypes.c +sysdep/libnix/sources/stubs/libbases/diskfont.c +sysdep/libnix/sources/stubs/libbases/dos.c +sysdep/libnix/sources/stubs/libbases/expansion.c +sysdep/libnix/sources/stubs/libbases/gadtools.c +sysdep/libnix/sources/stubs/libbases/graphics.c +sysdep/libnix/sources/stubs/libbases/icon.c +sysdep/libnix/sources/stubs/libbases/iffparse.c +sysdep/libnix/sources/stubs/libbases/intuition.c +sysdep/libnix/sources/stubs/libbases/keymap.c +sysdep/libnix/sources/stubs/libbases/layers.c +sysdep/libnix/sources/stubs/libbases/locale.c +sysdep/libnix/sources/stubs/libbases/lowlevel.c +sysdep/libnix/sources/stubs/libbases/mathffp.c +sysdep/libnix/sources/stubs/libbases/mathieeedoubbas.c +sysdep/libnix/sources/stubs/libbases/mathieeedoubtrans.c +sysdep/libnix/sources/stubs/libbases/mathieeesingbas.c +sysdep/libnix/sources/stubs/libbases/mathieeesingtrans.c +sysdep/libnix/sources/stubs/libbases/mathtrans.c +sysdep/libnix/sources/stubs/libbases/nonvolatile.c +sysdep/libnix/sources/stubs/libbases/realtime.c +sysdep/libnix/sources/stubs/libbases/rexxsyslib.c +sysdep/libnix/sources/stubs/libbases/translator.c +sysdep/libnix/sources/stubs/libbases/utility.c +sysdep/libnix/sources/stubs/libbases/workbench.c +sysdep/libnix/sources/stubs/libnames/amigaguide.c +sysdep/libnix/sources/stubs/libnames/asl.c +sysdep/libnix/sources/stubs/libnames/bullet.c +sysdep/libnix/sources/stubs/libnames/commodities.c +sysdep/libnix/sources/stubs/libnames/datatypes.c +sysdep/libnix/sources/stubs/libnames/diskfont.c +sysdep/libnix/sources/stubs/libnames/dos.c +sysdep/libnix/sources/stubs/libnames/expansion.c +sysdep/libnix/sources/stubs/libnames/gadtools.c +sysdep/libnix/sources/stubs/libnames/graphics.c +sysdep/libnix/sources/stubs/libnames/icon.c +sysdep/libnix/sources/stubs/libnames/iffparse.c +sysdep/libnix/sources/stubs/libnames/intuition.c +sysdep/libnix/sources/stubs/libnames/keymap.c +sysdep/libnix/sources/stubs/libnames/layers.c +sysdep/libnix/sources/stubs/libnames/locale.c +sysdep/libnix/sources/stubs/libnames/lowlevel.c +sysdep/libnix/sources/stubs/libnames/mathffp.c +sysdep/libnix/sources/stubs/libnames/mathieeedoubbas.c +sysdep/libnix/sources/stubs/libnames/mathieeedoubtrans.c +sysdep/libnix/sources/stubs/libnames/mathieeesingbas.c +sysdep/libnix/sources/stubs/libnames/mathieeesingtrans.c +sysdep/libnix/sources/stubs/libnames/mathtrans.c +sysdep/libnix/sources/stubs/libnames/nonvolatile.c +sysdep/libnix/sources/stubs/libnames/realtime.c +sysdep/libnix/sources/stubs/libnames/rexxsyslib.c +sysdep/libnix/sources/stubs/libnames/translator.c +sysdep/libnix/sources/stubs/libnames/utility.c +sysdep/libnix/sources/stubs/libnames/workbench.c +sysdep/libnix/sources/stubs/library.list +sysdep/libnix/sources/stubs/misc/__DOSBase.c +sysdep/libnix/sources/stubs/misc/__MathIeeeDoubBasBase.c +sysdep/libnix/sources/stubs/misc/__MathIeeeDoubTransBase.c +sysdep/libnix/sources/stubs/misc/__MathIeeeSingBasBase.c +sysdep/libnix/sources/stubs/misc/__MathIeeeSingTransBase.c +sysdep/libnix/sources/stubs/misc/__UtilityBase.c +sysdep/libnix/sources/stubs/misc/__cpucheck.c +sysdep/libnix/sources/stubs/misc/__flush_cache.c +sysdep/libnix/sources/stubs/misc/__initlibraries.c +sysdep/libnix/sources/stubs/stubs/__exit_list__.c +sysdep/libnix/sources/stubs/stubs/__init_list__.c +sysdep/libnix/sources/stubs/stubs/__lib_list__.c +sysdep/libnix/sources/stubs/stubs/__main.c +sysdep/libnix/sources/stubs/stubs/__oslibversion.c +sysdep/libnix/sources/stubs/stubs/__priority.c +sysdep/libnix/sources/stubs/stubs/__procname.c +sysdep/libnix/sources/stubs/stubs/__stack.c diff --git a/libnix/sources/Makefile.in b/libnix/sources/Makefile.in index 37e01f9..e350662 100644 --- a/libnix/sources/Makefile.in +++ b/libnix/sources/Makefile.in @@ -42,20 +42,20 @@ libamiga: cd amiga;$(MAKE) -f $(CURDIR)/../sources/amiga/Makefile CFLAGS="$(CFLAGS)" filelists: - -cd $(srcdir)/math; $(MAKELIST) SOURCEFILES="*/*" FLDIR=$(CURDIR)/math $(CURDIR)/math/filelist - -cd $(srcdir)/nix; $(MAKELIST) SOURCEFILES="*/*" FLDIR=$(CURDIR)/nix $(CURDIR)/nix/filelist - -cd $(srcdir)/nix13; $(MAKELIST) SOURCEFILES="*/*" FLDIR=$(CURDIR)/nix13 $(CURDIR)/nix13/filelist - -cd $(srcdir)/socket; $(MAKELIST) SOURCEFILES="*/*" FLDIR=$(CURDIR)/socket $(CURDIR)/socket/filelist + -cd $(srcdir)/math; $(MAKELIST) SOURCEFILES="*/*.[cSCh]" FLDIR=$(CURDIR)/math $(CURDIR)/math/filelist + -cd $(srcdir)/nix; $(MAKELIST) SOURCEFILES="*/*.[cSCh]" FLDIR=$(CURDIR)/nix $(CURDIR)/nix/filelist + -cd $(srcdir)/nix13; $(MAKELIST) SOURCEFILES="*/*.[cSCh]" FLDIR=$(CURDIR)/nix13 $(CURDIR)/nix13/filelist + -cd $(srcdir)/socket; $(MAKELIST) SOURCEFILES="*/*.[cSCh]" FLDIR=$(CURDIR)/socket $(CURDIR)/socket/filelist -cd $(srcdir)/stack; $(MAKELIST) SOURCEFILES="*.c" FLDIR=$(CURDIR)/stack $(CURDIR)/stack/filelist -cd $(srcdir)/stubs; $(MAKE) -f $(CURDIR)/Makefile STUBDIR=$(CURDIR)/stubs libbases/dos.c; \ $(MAKELIST) SOURCEFILES=" \ - libbases/* misc/__DOSBase.c misc/__UtilityBase.c \ + libbases/*.[cSCh] misc/__DOSBase.c misc/__UtilityBase.c \ misc/__MathIeeeSingBasBase.c misc/__MathIeeeDoubBasBase.c \ misc/__MathIeeeSingTransBase.c misc/__MathIeeeDoubTransBase.c \ misc/__cpucheck.c misc/__flush_cache.c misc/__initlibraries.c \ - libnames/* stubs/*" \ + libnames/* stubs/*.[cSCh]" \ FLDIR=$(CURDIR)/stubs $(CURDIR)/stubs/filelist - -cd $(srcdir)/amiga; $(MAKELIST) SOURCEFILES="*/*" FLDIR=$(CURDIR)/amiga $(CURDIR)/amiga/filelist + -cd $(srcdir)/amiga; $(MAKELIST) SOURCEFILES="*/*.[cSCh]" FLDIR=$(CURDIR)/amiga $(CURDIR)/amiga/filelist $(FLDIR)/filelist: echo "#Computer generated partial Makefile-do not edit" >$(FLDIR)/filelist diff --git a/libnix/sources/amiga/Makefile.in b/libnix/sources/amiga/Makefile.in index a95c1cf..5ba3aec 100644 --- a/libnix/sources/amiga/Makefile.in +++ b/libnix/sources/amiga/Makefile.in @@ -5,9 +5,9 @@ VPATH = @srcdir@ CC = @CC@ CPP = @CPP@ -AS = as +AS = @AS@ -AR = ar +AR = @AR@ RANLIB = @RANLIB@ AWK = @AWK@ diff --git a/libnix/sources/amiga/misc/AddTOF.c b/libnix/sources/amiga/misc/AddTOF.c index 00ade62..bc1c10c 100755 --- a/libnix/sources/amiga/misc/AddTOF.c +++ b/libnix/sources/amiga/misc/AddTOF.c @@ -10,7 +10,7 @@ STATIC int stub(struct Isrvstr *intr asm("a1")) (*intr->ccode)(intr->Carg); return 0; } -VOID AddTOF(struct Isrvstr *intr,LONG (*code)(),LONG arg) +VOID AddTOF(struct Isrvstr *intr,LONG (*code)(APTR),APTR arg) { APTR SysBase = *(APTR *)4L; intr->Iptr = intr; diff --git a/libnix/sources/amiga/misc/ArgArray.c b/libnix/sources/amiga/misc/ArgArray.c index 74bebf6..1b9d02d 100755 --- a/libnix/sources/amiga/misc/ArgArray.c +++ b/libnix/sources/amiga/misc/ArgArray.c @@ -60,7 +60,7 @@ LONG ArgInt(UBYTE **tt, STRPTR entry, long defval) return defval; } -#ifdef 0 /* only a example ??? */ +#if 0 /* only a example ??? */ CxObj *UserFilter(UBYTE **tt, STRPTR entry, STRPTR defstr) { diff --git a/libnix/sources/amiga/misc/BeginIO.c b/libnix/sources/amiga/misc/BeginIO.c index 96101d5..1b79d0e 100755 --- a/libnix/sources/amiga/misc/BeginIO.c +++ b/libnix/sources/amiga/misc/BeginIO.c @@ -3,8 +3,8 @@ #include void BeginIO(struct IORequest *iorequest) -{ register struct IORequest *a1 asm("a1")=iorequest; - register struct Device *a6 asm("a6")=iorequest->io_Device; - __asm __volatile ("jsr a6@(-30:W)"::"r"(a1),"r"(a6):"a0","a1","d0","d1"); +{ register struct IORequest *a1 __asm("a1")=iorequest; + register struct Device *a6 __asm("a6")=iorequest->io_Device; + __asm volatile ("jsr a6@(-30:W)" :: "r" (a1), "r" (a6)); } #endif diff --git a/libnix/sources/amiga/misc/CallHook.c b/libnix/sources/amiga/misc/CallHook.c index 547b481..82f991e 100755 --- a/libnix/sources/amiga/misc/CallHook.c +++ b/libnix/sources/amiga/misc/CallHook.c @@ -1,23 +1,23 @@ -asm(" - .text +asm( +" .text;" - .globl _CallHook - .globl _CallHookA +" .globl _CallHook;" +" .globl _CallHookA;" -_CallHook: lea sp@(12:W),a1 - jra L_CallHook +"_CallHook: lea sp@(12:W),a1;" +" jra L_CallHook;" -_CallHookA: movel sp@(12:W),a1 +"_CallHookA: movel sp@(12:W),a1;" -L_CallHook: movel a6,sp@- - movel a2,sp@- - movel sp@(12:W),a0 - movel sp@(16:W),a2 - jbsr L_callit - movel sp@+,a2 - movel sp@+,a6 - rts +"L_CallHook: movel a6,sp@-;" +" movel a2,sp@-;" +" movel sp@(12:W),a0;" +" movel sp@(16:W),a2;" +" jbsr L_callit;" +" movel sp@+,a2;" +" movel sp@+,a6;" +" rts;" -L_callit: movel a0@(8:W),sp@- - rts -"); +"L_callit: movel a0@(8:W),sp@-;" +" rts;" +); diff --git a/libnix/sources/amiga/misc/CoerceMethod.c b/libnix/sources/amiga/misc/CoerceMethod.c index ed5eaf3..5333e81 100755 --- a/libnix/sources/amiga/misc/CoerceMethod.c +++ b/libnix/sources/amiga/misc/CoerceMethod.c @@ -1,24 +1,24 @@ -asm(" - .text +asm( +" .text;" - .globl _CoerceMethod - .globl _CoerceMethodA +" .globl _CoerceMethod;" +" .globl _CoerceMethodA;" -_CoerceMethod: lea sp@(12:W),a1 - jra L_CoerceMethod +"_CoerceMethod: lea sp@(12:W),a1;" +" jra L_CoerceMethod;" -_CoerceMethodA: movel sp@(12:W),a1 +"_CoerceMethodA: movel sp@(12:W),a1;" -L_CoerceMethod: movel a2,sp@- - moveml sp@(8:W),a0/a2 - movel a0,d0 - beqs L_Null - movel a2,d0 - beqs L_Null - jbsr L_Invoke -L_Null: movel sp@+,a2 - rts +"L_CoerceMethod: movel a2,sp@-;" +" moveml sp@(8:W),a0/a2;" +" movel a0,d0;" +" beqs L_Null;" +" movel a2,d0;" +" beqs L_Null;" +" jbsr L_Invoke;" +"L_Null: movel sp@+,a2;" +" rts;" -L_Invoke: movel a0@(8:W),sp@- - rts -"); +"L_Invoke: movel a0@(8:W),sp@-;" +" rts;" +); diff --git a/libnix/sources/amiga/misc/CreateIO.c b/libnix/sources/amiga/misc/CreateIO.c index 3510310..081cdd6 100755 --- a/libnix/sources/amiga/misc/CreateIO.c +++ b/libnix/sources/amiga/misc/CreateIO.c @@ -4,7 +4,7 @@ #include #include "stabs.h" -struct IORequest *CreateExtIO(struct MsgPort *port,LONG iosize) +struct IORequest *CreateExtIO(CONST struct MsgPort *port,LONG iosize) { APTR SysBase = *(APTR *)4L; struct IORequest *ioreq = NULL; @@ -16,7 +16,7 @@ struct IORequest *CreateExtIO(struct MsgPort *port,LONG iosize) return ioreq; } -struct IOStdReq *CreateStdIO(struct MsgPort *port) +struct IOStdReq *CreateStdIO(CONST struct MsgPort *port) { return (struct IOStdReq *)CreateExtIO(port,sizeof(struct IOStdReq)); } diff --git a/libnix/sources/amiga/misc/CreatePort.c b/libnix/sources/amiga/misc/CreatePort.c index f8d5228..996bf2e 100755 --- a/libnix/sources/amiga/misc/CreatePort.c +++ b/libnix/sources/amiga/misc/CreatePort.c @@ -7,7 +7,7 @@ /*(l)->lh_Tail = NULL,*/ \ (l)->lh_TailPred = (struct Node *)&(l)->lh_Head) -struct MsgPort *CreatePort(STRPTR name,LONG pri) +struct MsgPort *CreatePort(CONST_STRPTR name,LONG pri) { APTR SysBase = *(APTR *)4L; struct MsgPort *port = NULL; UBYTE portsig; diff --git a/libnix/sources/amiga/misc/DoMethod.c b/libnix/sources/amiga/misc/DoMethod.c index af3ae4a..1afb64f 100755 --- a/libnix/sources/amiga/misc/DoMethod.c +++ b/libnix/sources/amiga/misc/DoMethod.c @@ -1,23 +1,23 @@ -asm(" - .text +asm( +" .text;" - .globl _DoMethod - .globl _DoMethodA +" .globl _DoMethod;" +" .globl _DoMethodA;" -_DoMethod: lea sp@(8:W),a1 - jra L_DoMethod +"_DoMethod: lea sp@(8:W),a1;" +" jra L_DoMethod;" -_DoMethodA: movel sp@(8:W),a1 -L_DoMethod: movel sp@(4:W),d0 - beqs L_Null - movel a2,sp@- - movel d0,a2 - movel a2@(-4:W),a0 - jbsr L_Invoke - movel sp@+,a2 -L_Null: rts +"_DoMethodA: movel sp@(8:W),a1;" +"L_DoMethod: movel sp@(4:W),d0;" +" beqs L_Null;" +" movel a2,sp@-;" +" movel d0,a2;" +" movel a2@(-4:W),a0;" +" jbsr L_Invoke;" +" movel sp@+,a2;" +"L_Null: rts;" -L_Invoke: movel a0@(8:W),sp@- - rts -"); +"L_Invoke: movel a0@(8:W),sp@-;" +" rts;" +); diff --git a/libnix/sources/amiga/misc/DoPktn.s b/libnix/sources/amiga/misc/DoPktn.s new file mode 100755 index 0000000..3316f81 --- /dev/null +++ b/libnix/sources/amiga/misc/DoPktn.s @@ -0,0 +1,6 @@ + + .stabs "_DoPkt0" ,11,0,0,0;.stabs "_DoPkt" ,1,0,0,0 + .stabs "_DoPkt1" ,11,0,0,0;.stabs "_DoPkt" ,1,0,0,0 + .stabs "_DoPkt2" ,11,0,0,0;.stabs "_DoPkt" ,1,0,0,0 + .stabs "_DoPkt3" ,11,0,0,0;.stabs "_DoPkt" ,1,0,0,0 + .stabs "_DoPkt4" ,11,0,0,0;.stabs "_DoPkt" ,1,0,0,0 diff --git a/libnix/sources/amiga/misc/DoSuperMethod.c b/libnix/sources/amiga/misc/DoSuperMethod.c index 5dcb358..3c0d453 100755 --- a/libnix/sources/amiga/misc/DoSuperMethod.c +++ b/libnix/sources/amiga/misc/DoSuperMethod.c @@ -1,28 +1,28 @@ -asm(" - .text +asm( +" .text;" - .globl _DoSuperMethod - .globl _DoSuperMethodA +" .globl _DoSuperMethod;" +" .globl _DoSuperMethodA;" -_DoSuperMethod: lea sp@(12:W),a1 - jra L_DoSuperMethod +"_DoSuperMethod: lea sp@(12:W),a1;" +" jra L_DoSuperMethod;" -_DoSuperMethodA: - movel sp@(12:W),a1 +"_DoSuperMethodA:" +" movel sp@(12:W),a1;" -L_DoSuperMethod: - movel a2,sp@- - moveml sp@(8:W),a0/a2 - movel a2,d0 - beqs L_Null - movel a0,d0 - beqs L_Null - movel a0@(24:W),a0 - jbsr L_Invoke -L_Null: movel sp@+,a2 - rts +"L_DoSuperMethod:" +" movel a2,sp@-;" +" moveml sp@(8:W),a0/a2;" +" movel a2,d0;" +" beqs L_Null;" +" movel a0,d0;" +" beqs L_Null;" +" movel a0@(24:W),a0;" +" jbsr L_Invoke;" +"L_Null: movel sp@+,a2;" +" rts;" -L_Invoke: movel a0@(8:W),sp@- - rts -"); +"L_Invoke: movel a0@(8:W),sp@-;" +" rts;" +); diff --git a/libnix/sources/amiga/misc/HookEntry.c b/libnix/sources/amiga/misc/HookEntry.c index 026424b..0e7f12e 100755 --- a/libnix/sources/amiga/misc/HookEntry.c +++ b/libnix/sources/amiga/misc/HookEntry.c @@ -9,18 +9,18 @@ ULONG HookEntry(struct Hook *hook asm("a0"),APTR obj asm("a2"),APTR msg asm("a1" #else -asm(" - .text +asm( +" .text;" - .globl _HookEntry +" .globl _HookEntry;" -_HookEntry: movel a1,sp@- - movel a2,sp@- - movel a0,sp@- - movel a0@(12:W),a0 - jsr a0@ - lea sp@(12:W),sp - rts -"); +"_HookEntry: movel a1,sp@-;" +" movel a2,sp@-;" +" movel a0,sp@-;" +" movel a0@(12:W),a0;" +" jsr a0@;" +" lea sp@(12:W),sp;" +" rts;" +); #endif diff --git a/libnix/sources/amiga/misc/SetSuperAttrs.c b/libnix/sources/amiga/misc/SetSuperAttrs.c index 27294ad..dad7808 100755 --- a/libnix/sources/amiga/misc/SetSuperAttrs.c +++ b/libnix/sources/amiga/misc/SetSuperAttrs.c @@ -1,24 +1,24 @@ -asm(" - .text +asm( +" .text;" - .globl _SetSuperAttrs +" .globl _SetSuperAttrs;" -_SetSuperAttrs: movel a2,sp@- - moveml sp@(8:W),a0/a2 - movel a2,d0 - beqs L_Null - movel a0,d0 - beqs L_Null - clrl sp@- - pea sp@(20:W) - pea 259:W - movel sp,a1 - movel sp@(24:W),a0 - jbsr L_Invoke - lea sp@(12:W),sp -L_Null: movel sp@+,a2 - rts +"_SetSuperAttrs: movel a2,sp@-;" +" moveml sp@(8:W),a0/a2;" +" movel a2,d0;" +" beqs L_Null;" +" movel a0,d0;" +" beqs L_Null;" +" clrl sp@-;" +" pea sp@(20:W);" +" pea 259:W;" +" movel sp,a1;" +" movel sp@(24:W),a0;" +" jbsr L_Invoke;" +" lea sp@(12:W),sp;" +"L_Null: movel sp@+,a2;" +" rts;" -L_Invoke: movel a0@(8:W),sp@- - rts -"); +"L_Invoke: movel a0@(8:W),sp@-;" +" rts;" +); diff --git a/libnix/sources/headers/bases.h b/libnix/sources/headers/bases.h index c2f44bf..b2bb9a4 100755 --- a/libnix/sources/headers/bases.h +++ b/libnix/sources/headers/bases.h @@ -3,6 +3,8 @@ #ifndef SMALL_DATA #define A4(x) #x +#elif defined(mc68020) +#define A4(x) "a4@(" #x ":L)" #else #define A4(x) "a4@(" #x ":W)" #endif diff --git a/libnix/sources/headers/strsup.h b/libnix/sources/headers/strsup.h index 21ecd09..70c74bd 100755 --- a/libnix/sources/headers/strsup.h +++ b/libnix/sources/headers/strsup.h @@ -2,25 +2,11 @@ #define _STRSUP_H #include +#include #ifdef __OPTIMIZE__ -extern __inline__ void *memcpy(void *s1,const void *s2,size_t n) -{ - #ifndef __NOLIBBASE__ - extern struct ExecBase *SysBase; - #endif - register char *a6 __asm("a6") = (char *)SysBase; - register const void *a0 __asm("a0") = s2; - register const void *a1 __asm("a1") = s1; - register size_t d0 __asm("d0") = n; - __asm __volatile ("jsr a6@(-0x270)" - : /* no output */ - : "r" (a6), "r" (a0), "r" (a1), "r" (d0) - : "a0","a1","d0","d1", "memory"); - return s1; -} - +#define memcpy(s1, s2, n) CopyMem(s2, s1, n) extern __inline__ void *memmove(void *s1,const void *s2,size_t n) { extern void bcopy(); diff --git a/libnix/sources/math/Makefile.in b/libnix/sources/math/Makefile.in index e85d436..17c5468 100644 --- a/libnix/sources/math/Makefile.in +++ b/libnix/sources/math/Makefile.in @@ -5,9 +5,9 @@ VPATH = @srcdir@ CC = @CC@ CPP = @CPP@ -AS = as +AS = @AS@ -AR = ar +AR = @AR@ RANLIB = @RANLIB@ AWK = @AWK@ diff --git a/libnix/sources/misc/Makefile.in b/libnix/sources/misc/Makefile.in index eeec0a5..6417e9e 100644 --- a/libnix/sources/misc/Makefile.in +++ b/libnix/sources/misc/Makefile.in @@ -5,9 +5,9 @@ VPATH = @srcdir@ CC = @CC@ CPP = @CPP@ -AS = as +AS = @AS@ -AR = ar +AR = @AR@ RANLIB = @RANLIB@ AWK = @AWK@ diff --git a/libnix/sources/nix/Makefile.in b/libnix/sources/nix/Makefile.in index 9342a72..9aa1323 100644 --- a/libnix/sources/nix/Makefile.in +++ b/libnix/sources/nix/Makefile.in @@ -5,9 +5,9 @@ VPATH = @srcdir@ CC = @CC@ CPP = @CPP@ -AS = as +AS = @AS@ -AR = ar +AR = @AR@ RANLIB = @RANLIB@ AWK = @AWK@ diff --git a/libnix/sources/nix/extra/mktemp.c b/libnix/sources/nix/extra/mktemp.c index 80d983e..78ace68 100755 --- a/libnix/sources/nix/extra/mktemp.c +++ b/libnix/sources/nix/extra/mktemp.c @@ -1,4 +1,5 @@ #include +#include #include char *mktemp(char *buf) @@ -23,3 +24,8 @@ char *mktemp(char *buf) return buf; } + +int mkstemp(char *template) { + char *buf = mktemp(template); + return open(buf, O_CREAT | O_TRUNC | O_EXCL); +} diff --git a/libnix/sources/nix/extra/readlink.c b/libnix/sources/nix/extra/readlink.c new file mode 100644 index 0000000..3f999d1 --- /dev/null +++ b/libnix/sources/nix/extra/readlink.c @@ -0,0 +1,37 @@ +#include +#include +#include +#include + +int readlink(const char *path, char *buf, int bufsiz) { + struct DevProc *dp = NULL; + BPTR lock = NULL; + int retval = -1; + + lock = Open(path, MODE_OLDFILE); + if (lock == NULL) { + errno = ENOENT; + goto done; + } + + dp = GetDeviceProc(path, NULL); + if (dp == NULL) { + errno = EINVAL; + goto done; + } + + + retval = ReadLink(dp->dvp_Port, lock, path, buf, bufsiz); + if (retval == TRUE) + retval = strlen(buf); + else + retval = -1; + +done: + if (dp != NULL) + FreeDeviceProc(dp); + + if (lock != NULL) + UnLock(lock); + return retval; +} diff --git a/libnix/sources/nix/extra/snprintf.c b/libnix/sources/nix/extra/snprintf.c new file mode 100755 index 0000000..e058de7 --- /dev/null +++ b/libnix/sources/nix/extra/snprintf.c @@ -0,0 +1,12 @@ +#include +#include +#include + +int snprintf(char *s,size_t size,const char *format,...) +{ int retval; + va_list args; + va_start(args,format); + retval=vsnprintf(s,size,format,args); + va_end(args); + return retval; +} diff --git a/libnix/sources/nix/extra/truncate.c b/libnix/sources/nix/extra/truncate.c new file mode 100644 index 0000000..0a30ee7 --- /dev/null +++ b/libnix/sources/nix/extra/truncate.c @@ -0,0 +1,17 @@ +#include +#include +#include +#include +int truncate(const char *path, off_t length) { + int retval; + BPTR fd = Open(path, MODE_OLDFILE); + if (fd != NULL) { + retval = (SetFileSize(fd, length, OFFSET_BEGINNING) >= 0) ? 0 : -1; + Close(fd); + } else { + errno = ENOENT; + retval = -1; + } + + return retval; +} diff --git a/libnix/sources/nix/extra/vsnprintf.c b/libnix/sources/nix/extra/vsnprintf.c new file mode 100755 index 0000000..4afd705 --- /dev/null +++ b/libnix/sources/nix/extra/vsnprintf.c @@ -0,0 +1,18 @@ +#include +#include +#include + +int vsnprintf(char *s,size_t size,const char *format,va_list args) +{ + int retval; + FILE buffer; + buffer.p=s; + buffer.incount=0; + buffer.outcount=size-1; + buffer.flags=0x208; + buffer.linebufsize=0; + retval=vfprintf(&buffer,format,args); + buffer.outcount++; + fputc('\0',&buffer); + return retval; +} diff --git a/libnix/sources/nix/math/__divsi3.c b/libnix/sources/nix/math/__divsi3.c index c66288b..944a840 100755 --- a/libnix/sources/nix/math/__divsi3.c +++ b/libnix/sources/nix/math/__divsi3.c @@ -1,23 +1,23 @@ #include "bases.h" -asm(" - .globl _div - .globl _ldiv - .globl ___modsi3 - .globl ___divsi3 +asm( +" .globl _div;" +" .globl _ldiv;" +" .globl ___modsi3;" +" .globl ___divsi3;" -| D1.L = D0.L % D1.L signed +/* D1.L = D0.L % D1.L signed */ -___modsi3: moveml sp@(4:W),d0/d1 - jbsr ___divsi4 - movel d1,d0 - rts +"___modsi3: moveml sp@(4:W),d0/d1;" +" jbsr ___divsi4;" +" movel d1,d0;" +" rts;" -| D0.L = D0.L / D1.L signed +/* D0.L = D0.L / D1.L signed */ -_div: -_ldiv: -___divsi3: moveml sp@(4:W),d0/d1 -___divsi4: movel "A4(_UtilityBase)",a0 - jmp a0@(-150:W) -"); +"_div:" +"_ldiv:" +"___divsi3: moveml sp@(4:W),d0/d1;" +"___divsi4: movel "A4(_UtilityBase)",a0;" +" jmp a0@(-150:W);" +); diff --git a/libnix/sources/nix/math/__mulsi3.c b/libnix/sources/nix/math/__mulsi3.c index 126b769..785d1e4 100755 --- a/libnix/sources/nix/math/__mulsi3.c +++ b/libnix/sources/nix/math/__mulsi3.c @@ -1,11 +1,11 @@ #include "bases.h" -asm(" - .globl ___mulsi3 +asm( +" .globl ___mulsi3;" -| D0 = D0 * D1 +/* D0 = D0 * D1 */ -___mulsi3: moveml sp@(4),d0/d1 - movel "A4(_UtilityBase)",a0 - jmp a0@(-138:W) -"); +"___mulsi3: moveml sp@(4),d0/d1;" +" movel "A4(_UtilityBase)",a0;" +" jmp a0@(-138:W);" +); diff --git a/libnix/sources/nix/math/__udivsi3.c b/libnix/sources/nix/math/__udivsi3.c index d26c00d..b3fce9f 100755 --- a/libnix/sources/nix/math/__udivsi3.c +++ b/libnix/sources/nix/math/__udivsi3.c @@ -1,19 +1,19 @@ #include "bases.h" -asm(" - .globl ___umodsi3 - .globl ___udivsi3 +asm( +" .globl ___umodsi3;" +" .globl ___udivsi3;" -| D1.L = D0.L % D1.L unsigned +/* D1.L = D0.L % D1.L unsigned */ -___umodsi3: moveml sp@(4:W),d0/d1 - jbsr ___udivsi4 - movel d1,d0 - rts +"___umodsi3: moveml sp@(4:W),d0/d1;" +" jbsr ___udivsi4;" +" movel d1,d0;" +" rts;" -| D0.L = D0.L / D1.L unsigned +/* D0.L = D0.L / D1.L unsigned */ -___udivsi3: moveml sp@(4:W),d0/d1 -___udivsi4: movel "A4(_UtilityBase)",a0 - jmp a0@(-156:W) -"); +"___udivsi3: moveml sp@(4:W),d0/d1;" +"___udivsi4: movel "A4(_UtilityBase)",a0;" +" jmp a0@(-156:W);" +); diff --git a/libnix/sources/nix/misc/__request.c b/libnix/sources/nix/misc/__request.c index 8741d2d..dc8290d 100755 --- a/libnix/sources/nix/misc/__request.c +++ b/libnix/sources/nix/misc/__request.c @@ -1,51 +1,49 @@ #include "bases.h" -asm(" - .data - .even +asm( + ".data;" + ".even;" +"body: .byte 0,0,0,0;" +" .word 15,5;" +" .long 0,0,0;" -body: .byte 0,0,0,0 - .word 15,5 - .long 0,0,0 +"ok: .byte 0,0,0,0;" +" .word 6,3;" +" .long 0,oktext,0;" +" .text;" +"oktext: .byte 79,107,0;" -ok: .byte 0,0,0,0 - .word 6,3 - .long 0,oktext,0 - - .text -oktext: .byte 79,107,0 - - .even - .globl ___request -___request: - moveml #0x3832,sp@- - movel 4:W,a6 - subal a1,a1 - jsr a6@(-0x126) | FindTask(a1:nam) - movel d0,a1 - moveq #-1,d1 - cmpl a1@(0xb8:W),d1 - jeq l_fail | Dont put requesters up - lea "A4(___intuitionname)",a1 - moveq #0,d0 - jsr a6@(-0x228) | OpenLibrary(a1:nam,d0:ver) - movel d0,d4 - jeq l_fail - lea "A4(ok)",a3 - lea "A4(body)",a1 - subl a2,a2 - movel sp@(28),a1@(12:W) - subl a0,a0 - moveq #0,d0 - moveq #0,d1 - moveq #(640>>4),d2 - lslw #4,d2 - moveq #72,d3 - exg d4,a6 - jsr a6@(-0x15c) | AutoRequest(a0,a1,a2,a3,d0,d1,d2,d3) - movel a6,a1 - movel d4,a6 - jsr a6@(-0x19e) | CloseLibrary(a1:lib) -l_fail: moveml sp@+,#0x4c1c - rts -"); +" .even;" +" .globl ___request;" +"___request:" +" moveml #0x3832,sp@-;" +" movel 4:W,a6;" +" subal a1,a1;" +" jsr a6@(-0x126);" /* FindTask(a1:nam) */ +" movel d0,a1;" +" moveq #-1,d1;" +" cmpl a1@(0xb8:W),d1;" +" jeq l_fail;" /* Dont put requesters up */ +" lea "A4(___intuitionname)",a1;" +" moveq #0,d0;" +" jsr a6@(-0x228);" /* OpenLibrary(a1:nam,d0:ver) */ +" movel d0,d4;" +" jeq l_fail;" +" lea "A4(ok)",a3;" +" lea "A4(body)",a1;" +" subl a2,a2;" +" movel sp@(28),a1@(12:W);" +" subl a0,a0;" +" moveq #0,d0;" +" moveq #0,d1;" +" moveq #(640>>4),d2;" +" lslw #4,d2;" +" moveq #72,d3;" +" exg d4,a6;" +" jsr a6@(-0x15c);" /* AutoRequest(a0,a1,a2,a3,d0,d1,d2,d3) */ +" movel a6,a1;" +" movel d4,a6;" +" jsr a6@(-0x19e);" /* CloseLibrary(a1:lib) */ +"l_fail: moveml sp@+,#0x4c1c;" +" rts;" +); diff --git a/libnix/sources/nix/setjmp/longjmp.c b/libnix/sources/nix/setjmp/longjmp.c index 89d93e7..e9ca44b 100755 --- a/libnix/sources/nix/setjmp/longjmp.c +++ b/libnix/sources/nix/setjmp/longjmp.c @@ -1,16 +1,16 @@ -asm(" - .text - .even - .globl _longjmp +asm( +" .text;" +" .even;" +" .globl _longjmp;" -_longjmp: - addql #4,sp | returns to another address - movel sp@+,a0 | get address of jmp_buf - movel sp@+,d0 | get returncode - jne l0 | != 0 -> ok - moveql #1,d0 -l0: movel a0@(48:W),sp | restore sp - movel a0@+,sp@ | set returnaddress - moveml a0@,d2-d7/a2-a6 | restore all registers except scratch and sp - rts -"); +"_longjmp:;" +" addql #4,sp;" /* returns to another address */ +" movel sp@+,a0;" /* get address of jmp_buf */ +" movel sp@+,d0;" /* get returncode */ +" jne l0;" /* != 0 -> ok */ +" moveql #1,d0;" +"l0: movel a0@(48:W),sp;" /* restore sp */ +" movel a0@+,sp@;" /* set returnaddress */ +" moveml a0@,d2-d7/a2-a6;" /* restore all registers except scratch and sp */ +" rts;" +); diff --git a/libnix/sources/nix/setjmp/setjmp.c b/libnix/sources/nix/setjmp/setjmp.c index c6eba67..ef76391 100755 --- a/libnix/sources/nix/setjmp/setjmp.c +++ b/libnix/sources/nix/setjmp/setjmp.c @@ -1,12 +1,12 @@ -asm(" - .text - .even - .globl _setjmp +asm( +" .text;" +" .even;" +" .globl _setjmp;" -_setjmp: - movel sp@(4),a0 | get address of jmp_buf - movel sp@,a0@+ | store returnaddress - moveml d2-d7/a2-a6/sp,a0@ | store all registers except scratch - moveql #0,d0 | return 0 - rts -"); +"_setjmp:" +" movel sp@(4),a0;" /* get address of jmp_buf */ +" movel sp@,a0@+;" /* store returnaddress */ +" moveml d2-d7/a2-a6/sp,a0@;" /* store all registers except scratch */ +" moveql #0,d0;" /* return 0 */ +" rts;" +); diff --git a/libnix/sources/nix/stdio/puts.c b/libnix/sources/nix/stdio/puts.c index 479e984..ebc3962 100755 --- a/libnix/sources/nix/stdio/puts.c +++ b/libnix/sources/nix/stdio/puts.c @@ -9,3 +9,7 @@ int puts(const char *s) return EOF; return 0; } + +int putchar(int c) { + return fputc(c, stdout); +} diff --git a/libnix/sources/nix/stdlib/free.c b/libnix/sources/nix/stdlib/free.c index 420dde7..8b60396 100755 --- a/libnix/sources/nix/stdlib/free.c +++ b/libnix/sources/nix/stdlib/free.c @@ -5,6 +5,7 @@ #include "debuglib.h" extern struct MinList __memorylist; +extern struct SignalSemaphore *__memsema; void free(void *ptr) { struct MemHeader *a; @@ -13,6 +14,7 @@ void free(void *ptr) { DB( BUG("NULL pointer free'd\n"); ) return; } + ObtainSemaphore(__memsema); a=(struct MemHeader *)__memorylist.mlh_Head; for(;;) { @@ -31,5 +33,7 @@ void free(void *ptr) Deallocate(a,(ULONG *)ptr-1,((ULONG *)ptr)[-1]); if(a->mh_Free==(char *)a->mh_Upper-(char *)a->mh_Lower) /* All free ? */ { Remove(&a->mh_Node); - FreeMem(a,(char *)a->mh_Upper-(char *)a); } + FreeMem(a,(char *)a->mh_Upper-(char *)a); + } + ReleaseSemaphore(__memsema); } diff --git a/libnix/sources/nix/stdlib/malloc.c b/libnix/sources/nix/stdlib/malloc.c index 180f160..0c977bd 100755 --- a/libnix/sources/nix/stdlib/malloc.c +++ b/libnix/sources/nix/stdlib/malloc.c @@ -5,33 +5,33 @@ */ #include +#include #include #include #include +#include +#include #include "stabs.h" extern ULONG _MSTEP; -struct MinList __memorylist= /* memorylist (empty): free needs also access */ -{ - (struct MinNode *)&__memorylist.mlh_Tail, - NULL, - (struct MinNode *)&__memorylist.mlh_Head -}; - +struct MinList __memorylist; /* memorylist (empty): free needs also access */ +struct SignalSemaphore *__memsema; void *malloc(size_t size) { - struct MinNode *node=__memorylist.mlh_Head; + struct MinNode *node; struct MemHeader *b; - ULONG size2,*a; + ULONG size2,*a = NULL; + ObtainSemaphore(__memsema); + node=__memorylist.mlh_Head; size+=sizeof(ULONG); while(node->mln_Succ) /* yet some memory in my list ? */ { if((a=Allocate((struct MemHeader *)node,size))!=NULL) { *a++=size; - return a; + goto end; } node=node->mln_Succ; } @@ -47,16 +47,30 @@ void *malloc(size_t size) b->mh_Upper=(char *)b+size2; AddHead((struct List *)&__memorylist,&b->mh_Node); a=Allocate(b,size); /* It has to work this time */ - *a++=size; - return a; + if (a != NULL) { + *a++=size; + } } - return NULL; + + end: + ReleaseSemaphore(__memsema); + return a; +} + +void __initmalloc(void) +{ + struct Library *DOSBase = OpenLibrary("dos.library", 0); + NewList((struct List *)&__memorylist); + __memsema = AllocMem(sizeof(struct SignalSemaphore), MEMF_PUBLIC | MEMF_CLEAR); + InitSemaphore(__memsema); } void __exitmalloc(void) { struct MemHeader *a; while((a=(struct MemHeader *)RemHead((struct List *)&__memorylist))!=NULL) FreeMem(a,(char *)a->mh_Upper-(char *)a); /* free all memory */ + FreeMem(__memsema, sizeof(struct SignalSemaphore)); } ADD2EXIT(__exitmalloc,-50); +ADD2INIT(__initmalloc,-50); diff --git a/libnix/sources/nix/stdlib/putenv.c b/libnix/sources/nix/stdlib/putenv.c new file mode 100644 index 0000000..cef7deb --- /dev/null +++ b/libnix/sources/nix/stdlib/putenv.c @@ -0,0 +1,38 @@ +#include +#include +#include +#include + +int setenv(const char *name, const char *value, int overwrite) { + char *old = getenv(name); + int retval = 0; + if (old == NULL || overwrite) { + retval = SetVar(name, value, strlen(value), GVF_LOCAL_ONLY) == TRUE ? 0 : -1; + } + return retval; +} + +void unsetenv(const char *name) { + DeleteVar(name, GVF_LOCAL_ONLY); +} +int putenv(const char *str) { + char *tmp = malloc(strlen(str) + 1); + int retval = -1; + char *pos; + if (tmp == NULL) { + goto end; + } + strcpy(tmp, str); + pos = strchr(tmp, '='); + if (pos == NULL) + goto end; + *pos++ = '\0'; + + retval = setenv(str, pos, 1); + +end: + if (tmp != NULL) + free(tmp); + return retval; +} + diff --git a/libnix/sources/nix/string/strcat.c b/libnix/sources/nix/string/strcat.c index 89128dd..d711237 100755 --- a/libnix/sources/nix/string/strcat.c +++ b/libnix/sources/nix/string/strcat.c @@ -10,17 +10,17 @@ char *strcat(char *s1,const char *s2) #else -asm(" - .globl _strcat -_strcat: - movml sp@(4:W),d0/a0 - movel d0,a1 -L2: tstb a1@+ - jne L2 - subql #1,a1 -L1: moveb a0@+,a1@+ - jne L1 - rts -"); +asm( +" .globl _strcat;" +"_strcat:;" +" movml sp@(4:W),d0/a0;" +" movel d0,a1;" +"L2: tstb a1@+;" +" jne L2;" +" subql #1,a1;" +"L1: moveb a0@+,a1@+;" +" jne L1;" +" rts;" +); #endif diff --git a/libnix/sources/nix/string/strcpy.c b/libnix/sources/nix/string/strcpy.c index 56508b0..48f3260 100755 --- a/libnix/sources/nix/string/strcpy.c +++ b/libnix/sources/nix/string/strcpy.c @@ -14,14 +14,14 @@ char *strcpy(char *s1,const char *s2) #else -asm(" - .globl _strcpy -_strcpy: - moveml sp@(4:W),d0/a0 - movel d0,a1 -L1: moveb a0@+,a1@+ - jne L1 - rts -"); +asm( +" .globl _strcpy;" +"_strcpy:;" +" moveml sp@(4:W),d0/a0;" +" movel d0,a1;" +"L1: moveb a0@+,a1@+;" +" jne L1;" +" rts;" +); #endif diff --git a/libnix/sources/nix/string/strncat.c b/libnix/sources/nix/string/strncat.c index 50b1d8a..eb8b984 100755 --- a/libnix/sources/nix/string/strncat.c +++ b/libnix/sources/nix/string/strncat.c @@ -20,22 +20,22 @@ char *strncat(char *s1,const char *s2,size_t n) #else -asm(" - .globl _strncat -_strncat: - moveml sp@(4:W),d0/a0 - movel d0,a1 - movel sp@(12),d1 - jeq L1 -L3: tstb a1@+ - jne L3 - subql #1,a1 -L2: moveb a0@+,a1@+ - jeq L1 - subql #1,d1 - jne L2 - clrb a1@ -L1: rts -"); +asm( +" .globl _strncat;" +"_strncat:;" +" moveml sp@(4:W),d0/a0;" +" movel d0,a1;" +" movel sp@(12),d1;" +" jeq L1;" +"L3: tstb a1@+;" +" jne L3;" +" subql #1,a1;" +"L2: moveb a0@+,a1@+;" +" jeq L1;" +" subql #1,d1;" +" jne L2;" +" clrb a1@;" +"L1: rts;" +); #endif diff --git a/libnix/sources/nix/string/strncpy.c b/libnix/sources/nix/string/strncpy.c index 1c1c3f5..62db05a 100755 --- a/libnix/sources/nix/string/strncpy.c +++ b/libnix/sources/nix/string/strncpy.c @@ -15,21 +15,21 @@ char *strncpy(char *s1,const char *s2,size_t n) #else -asm(" - .globl _strncpy -_strncpy: - moveml sp@(4:W),d0/a0 - movel d0,a1 - movel sp@(12:W),d1 -L4: subql #1,d1 - bcs L1 - moveb a0@+,a1@+ - bne L4 - .word 0x0c40 -L3: clrb a1@+ - subql #1,d1 - bcc L3 -L1: rts -"); +asm( +" .globl _strncpy;" +"_strncpy:;" +" moveml sp@(4:W),d0/a0;" +" movel d0,a1;" +" movel sp@(12:W),d1;" +"L4: subql #1,d1;" +" bcs L1;" +" moveb a0@+,a1@+;" +" bne L4;" +" .word 0x0c40;" +"L3: clrb a1@+;" +" subql #1,d1;" +" bcc L3;" +"L1: rts;" +); #endif diff --git a/libnix/sources/nix13/Makefile.in b/libnix/sources/nix13/Makefile.in index 0aa7aea..f023ece 100644 --- a/libnix/sources/nix13/Makefile.in +++ b/libnix/sources/nix13/Makefile.in @@ -5,9 +5,9 @@ VPATH = @srcdir@ CC = @CC@ CPP = @CPP@ -AS = as +AS = @AS@ -AR = ar +AR = @AR@ RANLIB = @RANLIB@ AWK = @AWK@ diff --git a/libnix/sources/nix13/math/__divsi3.c b/libnix/sources/nix13/math/__divsi3.c index 5798a37..b3d4f3d 100644 --- a/libnix/sources/nix13/math/__divsi3.c +++ b/libnix/sources/nix13/math/__divsi3.c @@ -1,41 +1,41 @@ -asm(" - .globl _div - .globl _ldiv - .globl ___modsi3 - .globl ___divsi3 +asm( +" .globl _div;" +" .globl _ldiv;" +" .globl ___modsi3;" +" .globl ___divsi3;" -| D1.L = D0.L % D1.L signed +/* D1.L = D0.L % D1.L signed */ -___modsi3: moveml sp@(4:W),d0/d1 - jbsr ___divsi4 - movel d1,d0 - rts +"___modsi3: moveml sp@(4:W),d0/d1;" +" jbsr ___divsi4;" +" movel d1,d0;" +" rts;" -| D0.L = D0.L / D1.L signed +/* D0.L = D0.L / D1.L signed */ -_div: -_ldiv: -___divsi3: moveml sp@(4:W),d0/d1 -___divsi4: movel d3,sp@- - movel d2,sp@- - moveq #0,d2 - tstl d0 - bpls LC5 - negl d0 - addql #1,d2 -LC5: movel d2,d3 - tstl d1 - bpls LC4 - negl d1 - eoriw #1,d3 -LC4: jbsr ___udivsi4 -LC3: tstw d2 - beqs LC2 - negl d0 -LC2: tstw d3 - beqs LC1 - negl d1 -LC1: movel sp@+,d2 - movel sp@+,d3 - rts -"); +"_div:;" +"_ldiv:;" +"___divsi3: moveml sp@(4:W),d0/d1;" +"___divsi4: movel d3,sp@-;" +" movel d2,sp@-;" +" moveq #0,d2;" +" tstl d0;" +" bpls LC5;" +" negl d0;" +" addql #1,d2;" +"LC5: movel d2,d3;" +" tstl d1;" +" bpls LC4;" +" negl d1;" +" eoriw #1,d3;" +"LC4: jbsr ___udivsi4;" +"LC3: tstw d2;" +" beqs LC2;" +" negl d0;" +"LC2: tstw d3;" +" beqs LC1;" +" negl d1;" +"LC1: movel sp@+,d2;" +" movel sp@+,d3;" +" rts;" +); diff --git a/libnix/sources/nix13/math/__mulsi3.c b/libnix/sources/nix13/math/__mulsi3.c index a91186d..c30695d 100644 --- a/libnix/sources/nix13/math/__mulsi3.c +++ b/libnix/sources/nix13/math/__mulsi3.c @@ -1,25 +1,25 @@ -asm(" - .globl ___mulsi3 +asm( +" .globl ___mulsi3;" -| D0 = D0 * D1 +/* D0 = D0 * D1 */ -___mulsi3: moveml sp@(4),d0/d1 - movel d3,sp@- - movel d2,sp@- - movew d1,d2 - mulu d0,d2 - movel d1,d3 - swap d3 - mulu d0,d3 - swap d3 - clrw d3 - addl d3,d2 - swap d0 - mulu d1,d0 - swap d0 - clrw d0 - addl d2,d0 - movel sp@+,d2 - movel sp@+,d3 - rts -"); +"___mulsi3: moveml sp@(4),d0/d1;" +" movel d3,sp@-;" +" movel d2,sp@-;" +" movew d1,d2;" +" mulu d0,d2;" +" movel d1,d3;" +" swap d3;" +" mulu d0,d3;" +" swap d3;" +" clrw d3;" +" addl d3,d2;" +" swap d0;" +" mulu d1,d0;" +" swap d0;" +" clrw d0;" +" addl d2,d0;" +" movel sp@+,d2;" +" movel sp@+,d3;" +" rts;" +); diff --git a/libnix/sources/nix13/math/__udivsi3.c b/libnix/sources/nix13/math/__udivsi3.c index 7a41031..7fdd1e9 100644 --- a/libnix/sources/nix13/math/__udivsi3.c +++ b/libnix/sources/nix13/math/__udivsi3.c @@ -1,50 +1,50 @@ -asm(" - .globl ___umodsi3 - .globl ___udivsi3 - .globl ___udivsi4 +asm( +" .globl ___umodsi3;" +" .globl ___udivsi3;" +" .globl ___udivsi4;" -| D1.L = D0.L % D1.L unsigned +/* D1.L = D0.L % D1.L unsigned */ -___umodsi3: moveml sp@(4:W),d0/d1 - jbsr ___udivsi4 - movel d1,d0 - rts +"___umodsi3: moveml sp@(4:W),d0/d1;" +" jbsr ___udivsi4;" +" movel d1,d0;" +" rts;" -| D0.L = D0.L / D1.L unsigned +/* D0.L = D0.L / D1.L unsigned */ -___udivsi3: moveml sp@(4:W),d0/d1 -___udivsi4: movel d3,sp@- - movel d2,sp@- - movel d1,d3 - swap d1 - tstw d1 - bnes LC4 - movew d0,d2 - clrw d0 - swap d0 - divu d3,d0 - movel d0,d1 - swap d0 - movew d2,d1 - divu d3,d1 - movew d1,d0 - clrw d1 - swap d1 - jra LC1 -LC4: movel d0,d1 - swap d0 - clrw d0 - clrw d1 - swap d1 - moveq #16-1,d2 -LC3: addl d0,d0 - addxl d1,d1 - cmpl d1,d3 - bhis LC2 - subl d3,d1 - addqw #1,d0 -LC2: dbra d2,LC3 -LC1: movel sp@+,d2 - movel sp@+,d3 - rts -"); +"___udivsi3: moveml sp@(4:W),d0/d1;" +"___udivsi4: movel d3,sp@-;" +" movel d2,sp@-;" +" movel d1,d3;" +" swap d1;" +" tstw d1;" +" bnes LC4;" +" movew d0,d2;" +" clrw d0;" +" swap d0;" +" divu d3,d0;" +" movel d0,d1;" +" swap d0;" +" movew d2,d1;" +" divu d3,d1;" +" movew d1,d0;" +" clrw d1;" +" swap d1;" +" jra LC1;" +"LC4: movel d0,d1;" +" swap d0;" +" clrw d0;" +" clrw d1;" +" swap d1;" +" moveq #16-1,d2;" +"LC3: addl d0,d0;" +" addxl d1,d1;" +" cmpl d1,d3;" +" bhis LC2;" +" subl d3,d1;" +" addqw #1,d0;" +"LC2: dbra d2,LC3;" +"LC1: movel sp@+,d2;" +" movel sp@+,d3;" +" rts;" +); diff --git a/libnix/sources/nix_main/Makefile.in b/libnix/sources/nix_main/Makefile.in index 6e7447f..c8cb024 100644 --- a/libnix/sources/nix_main/Makefile.in +++ b/libnix/sources/nix_main/Makefile.in @@ -5,9 +5,9 @@ VPATH = @srcdir@ CC = @CC@ CPP = @CPP@ -AS = as +AS = @AS@ -AR = ar +AR = @AR@ RANLIB = @RANLIB@ AWK = @AWK@ diff --git a/libnix/sources/nixmain/Makefile.in b/libnix/sources/nixmain/Makefile.in index bfac275..238ded8 100644 --- a/libnix/sources/nixmain/Makefile.in +++ b/libnix/sources/nixmain/Makefile.in @@ -5,9 +5,9 @@ VPATH = @srcdir@ CC = @CC@ CPP = @CPP@ -AS = as +AS = @AS@ -AR = ar +AR = @AR@ RANLIB = @RANLIB@ AWK = @AWK@ diff --git a/libnix/sources/socket/Makefile.in b/libnix/sources/socket/Makefile.in index 67246e4..1bc2b15 100644 --- a/libnix/sources/socket/Makefile.in +++ b/libnix/sources/socket/Makefile.in @@ -5,9 +5,9 @@ VPATH = @srcdir@ CC = @CC@ CPP = @CPP@ -AS = as +AS = @AS@ -AR = ar +AR = @AR@ RANLIB = @RANLIB@ AWK = @AWK@ diff --git a/libnix/sources/socket/socket/ioctl.c b/libnix/sources/socket/socket/ioctl.c index 9166e2a..254c384 100644 --- a/libnix/sources/socket/socket/ioctl.c +++ b/libnix/sources/socket/socket/ioctl.c @@ -68,6 +68,7 @@ int ioctl(int s, unsigned long cmd, ...) /* we really don't have to bother the library with cmds we can't even * map over... */ + break; } rc = SOCK_ioctl(fp->lx_sock,cmd,data); break; diff --git a/libnix/sources/socket/unistd/getgrent.c b/libnix/sources/socket/unistd/getgrent.c index 6c32c90..d76ea63 100644 --- a/libnix/sources/socket/unistd/getgrent.c +++ b/libnix/sources/socket/unistd/getgrent.c @@ -153,6 +153,7 @@ struct group *getgrent(void) return (struct group *)&builtin_nogroup; case (gid_t)(-1): //return NULL; + break; } } diff --git a/libnix/sources/stack/Makefile.in b/libnix/sources/stack/Makefile.in index 0eaf709..7982664 100644 --- a/libnix/sources/stack/Makefile.in +++ b/libnix/sources/stack/Makefile.in @@ -5,9 +5,9 @@ VPATH = @srcdir@ CC = @CC@ CPP = @CPP@ -AS = as +AS = @AS@ -AR = ar +AR = @AR@ RANLIB = @RANLIB@ AWK = @AWK@ diff --git a/libnix/sources/stack/link_a5_0_f.c b/libnix/sources/stack/link_a5_0_f.c index 8cf8bde..ccf4424 100755 --- a/libnix/sources/stack/link_a5_0_f.c +++ b/libnix/sources/stack/link_a5_0_f.c @@ -1,27 +1,27 @@ #include "bases.h" -asm(" - .text - .even - .globl ___link_a5_0_f - .globl ___sub_0_sp_f +asm( +" .text;" +" .even;" +" .globl ___link_a5_0_f;" +" .globl ___sub_0_sp_f;" -___link_a5_0_f: - movel sp@+,a0 - cmpl "A4(___stk_limit)",sp - jcc l0 - jbsr l2 -l0: link a5,#0:W - jmp a0@ +"___link_a5_0_f:" +" movel sp@+,a0;" +" cmpl "A4(___stk_limit)",sp;" +" jcc l0;" +" jbsr l2;" +"l0: link a5,#0:W;" +" jmp a0@;" -___sub_0_sp_f: - movel sp@+,a0 - cmpl "A4(___stk_limit)",sp - jcc l1 - jbsr l2 -l1: jmp a0@ +"___sub_0_sp_f:" +" movel sp@+,a0;" +" cmpl "A4(___stk_limit)",sp;" +" jcc l1;" +" jbsr l2;" +"l1: jmp a0@;" -l2: moveq #0,d0 - moveq #0,d1 - jra ___stkext_f -"); +"l2: moveq #0,d0;" +" moveq #0,d1;" +" jra ___stkext_f;" +); diff --git a/libnix/sources/stack/link_a5_d0_f.c b/libnix/sources/stack/link_a5_d0_f.c index 8f68d3f..8f9ea52 100755 --- a/libnix/sources/stack/link_a5_d0_f.c +++ b/libnix/sources/stack/link_a5_d0_f.c @@ -1,32 +1,32 @@ #include "bases.h" -asm(" - .text - .even - .globl ___link_a5_d0_f - .globl ___sub_d0_sp_f +asm( +" .text;" +" .even;" +" .globl ___link_a5_d0_f;" +" .globl ___sub_d0_sp_f;" -___link_a5_d0_f: - movel sp@+,a0 - movel sp,d1 - subl d0,d1 - cmpl "A4(___stk_limit)",d1 - jcc l0 - jbsr l2 -l0: link a5,#0:W - subl d0,sp - jmp a0@ +"___link_a5_d0_f:" +" movel sp@+,a0;" +" movel sp,d1;" +" subl d0,d1;" +" cmpl "A4(___stk_limit)",d1;" +" jcc l0;" +" jbsr l2;" +"l0: link a5,#0:W;" +" subl d0,sp;" +" jmp a0@;" -___sub_d0_sp_f: - movel sp@+,a0 - movel sp,d1 - subl d0,d1 - cmpl "A4(___stk_limit)",d1 - jcc l1 - jbsr l2 -l1: subl d0,sp - jmp a0@ +"___sub_d0_sp_f:" +" movel sp@+,a0;" +" movel sp,d1;" +" subl d0,d1;" +" cmpl "A4(___stk_limit)",d1;" +" jcc l1;" +" jbsr l2;" +"l1: subl d0,sp;" +" jmp a0@;" -l2: moveq #0,d1 - jra ___stkext_f -"); +"l2: moveq #0,d1;" +" jra ___stkext_f;" +); diff --git a/libnix/sources/stack/longjmp.c b/libnix/sources/stack/longjmp.c index d3f656d..05f7f95 100755 --- a/libnix/sources/stack/longjmp.c +++ b/libnix/sources/stack/longjmp.c @@ -1,18 +1,18 @@ -asm(" - .text - .even - .globl _longjmp +asm( +" .text;" +" .even;" +" .globl _longjmp;" -_longjmp: - addql #4,sp | returns to another address - movel sp@+,a0 | get address of jmp_buf - movel sp@+,d2 | get returncode - movel a0@(48:W),d0 - jbsr ___stkrst | restore sp - movel d2,d0 - jne l0 | != 0 -> ok - moveql #1,d0 -l0: movel a0@+,sp@ | set returnaddress - moveml a0@,#0x7cfc | restore all registers except scratch and sp - rts -"); +"_longjmp:" +" addql #4,sp;" /* returns to another address */ +" movel sp@+,a0;" /* get address of jmp_buf */ +" movel sp@+,d2;" /* get returncode */ +" movel a0@(48:W),d0;" +" jbsr ___stkrst;" /* restore sp */ +" movel d2,d0;" +" jne l0;" /* != 0 -> ok */ +" moveql #1,d0;" +"l0: movel a0@+,sp@;" /* set returnaddress */ +" moveml a0@,#0x7cfc;" /* restore all registers except scratch and sp */ +" rts" +); diff --git a/libnix/sources/stack/stkchk_d0.c b/libnix/sources/stack/stkchk_d0.c index 3d9fbcb..a9269bd 100755 --- a/libnix/sources/stack/stkchk_d0.c +++ b/libnix/sources/stack/stkchk_d0.c @@ -1,22 +1,22 @@ #include "bases.h" -asm(" - .text - .even - .globl ___stkchk_d0 - .globl ___stkchk_0 +asm( +" .text;" +" .even;" +" .globl ___stkchk_d0;" +" .globl ___stkchk_0;" -___stkchk_d0: - negl d0 - addl sp,d0 - cmpl "A4(___stk_limit)",d0 - jcs L0 - rts +"__stkchk_d0:;" +" negl d0;" +" addl sp,d0;" +" cmpl "A4(___stk_limit)",d0;" +" jcs L0;" +" rts;" -___stkchk_0: - cmpl "A4(___stk_limit)",sp - jcs L0 - rts +"___stkchk_0:;" +" cmpl "A4(___stk_limit)",sp;" +" jcs L0;" +" rts;" -L0: jra ___stkovf -"); +"L0: jra ___stkovf;" +); diff --git a/libnix/sources/stack/stkext.c b/libnix/sources/stack/stkext.c index 254ddf1..dac63b3 100755 --- a/libnix/sources/stack/stkext.c +++ b/libnix/sources/stack/stkext.c @@ -1,139 +1,139 @@ #include "bases.h" #include "stabs.h" -asm(" - .text - .even - .globl ___stkext_f - .globl ___stkext - .globl ___exit_stk - .globl ___stk_free +asm( +" .text;" +" .even;" +" .globl ___stkext_f;" +" .globl ___stkext;" +" .globl ___exit_stk;" +" .globl ___stk_free;" -___stkext_f: - movel a0,sp@- - movel sp,a0 | memorize sp - moveml #0xc062,sp@- | preserves all registers - movel sp,a2 | memorize sp - addl #28:W,d1 | Used by this function itself - movel "A4(___stackborders)",a1| get upper border of stack in a1 - movel a1@(4:W),a1 - tstl "A4(___used_stack)" - bne l0 - movel "A4(___SaveSP)",a1 -l0: jbsr ___stkext | change to a stackframe with d0 bytes - movel "A4(___used_stack)",a6 | fix stored sp - addl d1,a6@(12:W) - movel a2,d0 | calculate number of bytes to copy - addl "A4(___stk_argbytes)",d0| to new stackframe in d0 - addl d1,d0 - cmpl a1,d0 | never copy over the bottom of the stack - jls l1 - movel a1,d0 -l1: subl a0,d0 | copy - subl d0,sp - movel sp,a1 - movel "A4(_SysBase)",a6 - jsr a6@(-0x270) | CopyMem(src:a0,dst:a1,siz:d0) - movel a2,a0 - moveml a0@+,#0x4603 - movel sp,a0 | Prepare cleanup - addl d1,a0 - movel #___stkrst_f,a0@(8:W) - movel sp@+,a0 - rts +"___stkext_f:;" +" movel a0,sp@-;" +" movel sp,a0;" /* memorize sp*/ +" moveml #0xc062,sp@-;" /* preserves all registers*/ +" movel sp,a2;" /* memorize sp*/ +" addl #28:W,d1;" /* Used by this function itself*/ +" movel "A4(___stackborders)",a1;"/* get upper border of stack in a1*/ +" movel a1@(4:W),a1;" +" tstl "A4(___used_stack)";" +" bne l0;" +" movel "A4(___SaveSP)",a1;" +"l0: jbsr ___stkext;" /* change to a stackframe with d0 bytes*/ +" movel "A4(___used_stack)",a6;" /* fix stored sp*/ +" addl d1,a6@(12:W);" +" movel a2,d0;" /* calculate number of bytes to copy*/ +" addl "A4(___stk_argbytes)",d0;"/* to new stackframe in d0*/ +" addl d1,d0;" +" cmpl a1,d0;" /* never copy over the bottom of the stack*/ +" jls l1;" +" movel a1,d0;" +"l1: subl a0,d0;" /* copy*/ +" subl d0,sp;" +" movel sp,a1;" +" movel "A4(_SysBase)",a6;" +" jsr a6@(-0x270);" /* CopyMem(src:a0,dst:a1,siz:d0)*/ +" movel a2,a0;" +" moveml a0@+,#0x4603;" +" movel sp,a0;" /* Prepare cleanup*/ +" addl d1,a0;" +" movel #___stkrst_f,a0@(8:W);" +" movel sp@+,a0;" +" rts;" -___stkext: - movel a0,sp@- - moveml #0xf072,sp@- | preserves all registers - movel "A4(___stk_safezone)",d3 - lea "A4(___stk_limit)",a2 - lea "A4(___used_stack)",a3 - addql #4,a3 - movel "A4(_SysBase)",a6 - movel d0,d2 - addl d3,d2 - addl "A4(___stk_argbytes)",d2| required stack - movel a3@,d0 | Look for a spare stackframe - jeq l4 -l3: movel d0,a0 - movel a0@,a3@ | Remove spare stackframe from list - movel a0@(8:W),d0 | Test spare stackframe - subl a0@(4:W),d0 - cmpl d0,d2 - jls l7 - moveq #20,d1 | Not big enough - addl d1,d0 - movel a0,a1 - jsr a6@(-0xd2) | FreeMem(mem:a1,siz:d0) - movel a3@,d0 - jne l3 -l4: moveq #20,d0 - addl d0,d2 | no more stackframes - allocate a new one - movel "A4(___stk_minframe)",d0 - cmpl d0,d2 - jge l5 - movel d0,d2 -l5: movel d2,d0 - moveql #1,d1 | MEMF_PUBLIC - jsr a6@(-0xc6) | AllocMem(siz:d0,typ:d1) - movel d0,a0 - movel a0,d0 - jne l6 - jbsr ___stkovf | allocation failed -l6: moveq #20,d0 - addl a0,d0 - movel d0,a0@(4:W) - addl a0,d2 | prepare new frame for use - movel d2,a0@(8:W) -l7: movel a3@-,a0@ | Add it to the used list - movel a0,a3@ - addql #4,a0 - movel a2@,a0@(12:W) - movel a0@,a2@ | Prepare ___top_of_stackframe variable - addl d3,a2@ - lea a0@(4:W),a2 - movel a2@+,a2@ | Prepare target sp - jsr a6@(-0x2dc) | StackSwap(sss:a0) - moveq #40,d0 - movel a2@,a0 - addl d0,a2@ | Fix stored sp - moveml a0@+,#0x4e0f - movel a0@(4:W),sp@- | prepare returnaddress - movel a0@,a0 - rts +"___stkext:;" +" movel a0,sp@-;" +" moveml #0xf072,sp@-;" /* preserves all registers*/ +" movel "A4(___stk_safezone)",d3;" +" lea "A4(___stk_limit)",a2;" +" lea "A4(___used_stack)",a3;" +" addql #4,a3;" +" movel "A4(_SysBase)",a6;" +" movel d0,d2;" +" addl d3,d2;" +" addl "A4(___stk_argbytes)",d2;"/* required stack*/ +" movel a3@,d0;" /* Look for a spare stackframe*/ +" jeq l4;" +"l3: movel d0,a0;" +" movel a0@,a3@;" /* Remove spare stackframe from list*/ +" movel a0@(8:W),d0;" /* Test spare stackframe*/ +" subl a0@(4:W),d0;" +" cmpl d0,d2;" +" jls l7;" +" moveq #20,d1;" /* Not big enough*/ +" addl d1,d0;" +" movel a0,a1;" +" jsr a6@(-0xd2);" /* FreeMem(mem:a1,siz:d0)*/ +" movel a3@,d0;" +" jne l3;" +"l4: moveq #20,d0;" +" addl d0,d2;" /* no more stackframes - allocate a new one*/ +" movel "A4(___stk_minframe)",d0;" +" cmpl d0,d2;" +" jge l5;" +" movel d0,d2;" +"l5: movel d2,d0;" +" moveql #1,d1;" /* MEMF_PUBLIC*/ +" jsr a6@(-0xc6);" /* AllocMem(siz:d0,typ:d1) */ +" movel d0,a0;" +" movel a0,d0;" +" jne l6;" +" jbsr ___stkovf;" /* allocation failed*/ +"l6: moveq #20,d0;" +" addl a0,d0;" +" movel d0,a0@(4:W);" +" addl a0,d2;" /* prepare new frame for use*/ +" movel d2,a0@(8:W);" +"l7: movel a3@-,a0@;" /* Add it to the used list*/ +" movel a0,a3@;" +" addql #4,a0;" +" movel a2@,a0@(12:W);" +" movel a0@,a2@;" /* Prepare ___top_of_stackframe variable*/ +" addl d3,a2@;" +" lea a0@(4:W),a2;" +" movel a2@+,a2@;" /* Prepare target sp*/ +" jsr a6@(-0x2dc);" /* StackSwap(sss:a0)*/ +" moveq #40,d0;" +" movel a2@,a0;" +" addl d0,a2@;" /* Fix stored sp*/ +" moveml a0@+,#0x4e0f;" +" movel a0@(4:W),sp@-;" /* prepare returnaddress*/ +" movel a0@,a0;" +" rts;" -___exit_stk: - tstl "A4(___used_stack)" - jeq ___stk_free - lea sp@(12:W),a0 - movel "A4(___SaveSP)",d0 | Go back to first stackframe - jbsr ___stkrst - movel a0@,sp@- | restore argument of exit() - movel a0@-,sp@- | returnaddress for exit() - movel a0@-,sp@- | returnaddress for callfuncs() - movel a0@-,sp@- | our returnaddress -| jbsr ___stk_free -| rts +"___exit_stk:;" +" tstl "A4(___used_stack)";" +" jeq ___stk_free;" +" lea sp@(12:W),a0;" +" movel "A4(___SaveSP)",d0;" /* Go back to first stackframe*/ +" jbsr ___stkrst;" +" movel a0@,sp@-;" /* restore argument of exit()*/ +" movel a0@-,sp@-;" /* returnaddress for exit()*/ +" movel a0@-,sp@-;" /* returnaddress for callfuncs()*/ +" movel a0@-,sp@-;" /* our returnaddress */ +" jbsr ___stk_free;" +" rts;" -___stk_free: - movel a2,sp@- - movel a6,sp@- | Free all unused stackframes - movel "A4(_SysBase)",a6 - lea "A4(___used_stack)",a2 - addql #4,a2 - movel a2@,d0 | Remove spare stackframe from list - jeq l9 -l8: movel d0,a1 - movel a1@,a2@ - moveq #20,d0 - addl a1@(8:W),d0 | Calculate size - subl a1@(4:W),d0 - jsr a6@(-0xd2) | FreeMem(mem:a1,siz:d0) - movel a2@,d0 - jne l8 -l9: movel sp@+,a6 - movel sp@+,a2 - rts -"); +"___stk_free:;" +" movel a2,sp@-;" +" movel a6,sp@-;" /* Free all unused stackframes*/ +" movel "A4(_SysBase)",a6;" +" lea "A4(___used_stack)",a2;" +" addql #4,a2;" +" movel a2@,d0;" /* Remove spare stackframe from list*/ +" jeq l9;" +"l8: movel d0,a1;" +" movel a1@,a2@;" +" moveq #20,d0;" +" addl a1@(8:W),d0;" /* Calculate size*/ +" subl a1@(4:W),d0;" +" jsr a6@(-0xd2);" /* FreeMem(mem:a1,siz:d0)*/ +" movel a2@,d0;" +" jne l8;" +"l9: movel sp@+,a6;" +" movel sp@+,a2;" +" rts;" +); ADD2EXIT(__exit_stk,-50); diff --git a/libnix/sources/stack/stkovf.c b/libnix/sources/stack/stkovf.c index 5a8d2cf..a3b434b 100755 --- a/libnix/sources/stack/stkovf.c +++ b/libnix/sources/stack/stkovf.c @@ -1,11 +1,11 @@ #include "bases.h" -asm(" - .text - .even - .globl ___stkovf +asm( +" .text;" +" .even;" +" .globl ___stkovf;" -___stkovf: - clrl "A4(___stk_limit)" | generate no more stackoverflows - jra __XCOVF -"); +"___stkovf:;" +" clrl "A4(___stk_limit)";" /* generate no more stackoverflows */ +" jra __XCOVF;" +); diff --git a/libnix/sources/stack/stkrst.c b/libnix/sources/stack/stkrst.c index 469f5ed..11d2c25 100755 --- a/libnix/sources/stack/stkrst.c +++ b/libnix/sources/stack/stkrst.c @@ -1,68 +1,67 @@ -#include "bases.h" + #include "bases.h" -asm(" -| the stack consists of a single linked linear list like this: -| -| struct stack -| { struct stack *next; points to the next underlying structure -| struct StackSwapStruct sss; holds previous stackframe when used, -| itself when unused, the current stackborders -| are in the task structure ;-) -| APTR top_of_stackframe; } previous variable value -| Note: stack->sss.stk_Lower is not reliable -| -| For better performance stackframes are cached in a 'unused' list when -| not in use. (AllocMem() is really a performance killer). -| +asm( + "| the stack consists of a single linked linear list like this:" + "|" + "| struct stack" + "| { struct stack *next; points to the next underlying structure" + "| struct StackSwapStruct sss; holds previous stackframe when used," + "| itself when unused, the current stackborders" + "| are in the task structure ;-)" + "| APTR top_of_stackframe; } previous variable value" + "| Note: stack->sss.stk_Lower is not reliable" + "|" + "| For better performance stackframes are cached in a 'unused' list when" + "| not in use. (AllocMem() is really a performance killer)." + "|" + "|" + "| Caution:" + "| Race condition ahead! exec might preempt our task at any time storing" + "| the current register set on top of the free stack. NEVER set a sp higher" + "| than the location of important data." + "|" + " .comm ___used_stack,8;" /* pointer to used stackframes */ + /* pointer to unused stackframes */ + " .text;" + " .even;" + " .globl ___stkrst;" -| -| Caution: -| Race condition ahead! exec might preempt our task at any time storing -| the current register set on top of the free stack. NEVER set a sp higher -| than the location of important data. -| - .comm ___used_stack,8 | pointer to used stackframes, - | pointer to unused stackframes - .text - .even - .globl ___stkrst - -___stkrst: - exg d0,a3 | better use an address register - movel a2,sp@- - moveml d0/d1/a0/a1/a5/a6,sp@- - movel sp,a2 - lea "A4(___used_stack)",a5 - tstl a5@ - jeq l0 | No previous stackframe -l2: movel "A4(___stackborders)",a0 - cmpl a0@,a3 - jcs l1 - cmpl a0@(4:W),a3 - jle l0 | Stackpointer points to current frame -l1: movel "A4(_SysBase)",a6 | Go to previous stack - movel a5,a1 - movel a1@,a0 - movel a0@,a1@+ - movel a1@,a0@ - movel a0,a1@ - addql #4,a0 - movel a0@(12:W),"A4(___stk_limit)" - jsr a6@(-0x2dc) | StackSwap(sss:a0) - tstl a5@ - jne l2 -l0: moveml a2@+,d0/d1/a0/a1/a5/a6 | Restore registers - movel a2@(4:W),sp@- | preserve returnaddress on current stackframe - movel a2@,a2 | be careful to not clobber any registers now - cmpl sp,a3 | Depending on whether sp moves up or down - jls l3 | use one of two possible routines - movel sp@,a3@- | moves up (pop): copy returnaddress first - movel a3,sp | then set sp - jra l4 -l3: exg a3,sp | moves down (push): set sp first - movel a3@,sp@- | then copy returnaddress - movel sp,a3 -l4: exg d0,a3 | move back - addql #4,d0 | compensate for returnaddress - rts -"); + "__stkrst:;" + " exg d0,a3;" /* better use an address register*/ + " movel a2,sp@-;" + " moveml d0/d1/a0/a1/a5/a6,sp@-;" + " movel sp,a2;" + " lea "A4(___used_stack)",a5;" + " tstl a5@;" + " jeq l0;" /* No previous stackframe*/ + "l2: movel "A4(___stackborders)",a0;" + " cmpl a0@,a3;" + " jcs l1;" + " cmpl a0@(4:W),a3;" + " jle l0;" /* Stackpointer points to current frame*/ + "l1: movel "A4(_SysBase)",a6;" /* Go to previous stack*/ + " movel a5,a1;" + " movel a1@,a0;" + " movel a0@,a1@+;" + " movel a1@,a0@;" + " movel a0,a1@;" + " addql #4,a0;" + " movel a0@(12:W),"A4(___stk_limit)";" + " jsr a6@(-0x2dc);" /* StackSwap(sss:a0)*/ + " tstl a5@;" + " jne l2;" + "l0: moveml a2@+,d0/d1/a0/a1/a5/a6;" /* Restore registers*/ + " movel a2@(4:W),sp@-;" /* preserve returnaddress on current stackframe*/ + " movel a2@,a2;" /* be careful to not clobber any registers now*/ + " cmpl sp,a3;" /* Depending on whether sp moves up or down*/ + " jls l3;" /* use one of two possible routines*/ + " movel sp@,a3@-;" /* moves up (pop): copy returnaddress first*/ + " movel a3,sp;" /* then set sp*/ + " jra l4;" + "l3: exg a3,sp;" /* moves down (push): set sp first*/ + " movel a3@,sp@-;" /* then copy returnaddress*/ + " movel sp,a3;" + "l4: exg d0,a3;" /* move back*/ + " addql #4,d0;" /* compensate for returnaddress*/ + " rts;" +); diff --git a/libnix/sources/stack/stkrst_f.c b/libnix/sources/stack/stkrst_f.c index 20271b0..804df24 100755 --- a/libnix/sources/stack/stkrst_f.c +++ b/libnix/sources/stack/stkrst_f.c @@ -1,24 +1,24 @@ #include "bases.h" -asm(" - .text - .even - .globl ___stkrst_f +asm( +" .text;" +" .even;" +" .globl ___stkrst_f;" -___stkrst_f: - movel a2,sp@- - moveml #0xc0c2,sp@- | Preserve all registers - movel sp,a2 - lea "A4(___used_stack)",a1 | Move current stackframe to the spares list - movel a1@,a0 - movel a0@,a1@+ - movel a1@,a0@ - movel a0,a1@ - addql #4,a0 | Return to old stackframe - movel a0@(12:W),"A4(___stk_limit)" - movel "A4(_SysBase)",a6 - jsr a6@(-0x2dc) | StackSwap(sss:a0) - moveml a2@+,#0x4303 - movel a2@,a2 - rts -"); +"___stkrst_f:;" +" movel a2,sp@-;" +" moveml #0xc0c2,sp@-;" /* Preserve all registers; */ +" movel sp,a2;" +" lea "A4(___used_stack)",a1;" /* Move current stackframe to the spares list */ +" movel a1@,a0;" +" movel a0@,a1@+;" +" movel a1@,a0@;" +" movel a0,a1@;" +" addql #4,a0;" /* Return to old stackframe */ +" movel a0@(12:W),"A4(___stk_limit)";" +" movel "A4(_SysBase)",a6;" +" jsr a6@(-0x2dc);" /* StackSwap(sss:a0) */ +" moveml a2@+,#0x4303;" +" movel a2@,a2;" +" rts;" +); diff --git a/libnix/sources/stack/sub_d0_sp.c b/libnix/sources/stack/sub_d0_sp.c index 45576a6..e3ab195 100755 --- a/libnix/sources/stack/sub_d0_sp.c +++ b/libnix/sources/stack/sub_d0_sp.c @@ -1,29 +1,29 @@ #include "bases.h" #include "stabs.h" -asm(" - .text - .even - .globl ___sub_d0_sp - .globl ___unlk_a5_rts +asm( +" .text;" +" .even;" +" .globl ___sub_d0_sp;" +" .globl ___unlk_a5_rts;" -___sub_d0_sp: - movel sp@+,a0 - movel sp,d1 - subl d0,d1 - cmpl "A4(___stk_limit)",d1 - jcc l0 - jbsr ___stkext -l0: subl d0,sp - jmp a0@ +"___sub_d0_sp:;" +" movel sp@+,a0;" +" movel sp,d1;" +" subl d0,d1;" +" cmpl "A4(___stk_limit)",d1;" +" jcc l0;" +" jbsr ___stkext;" +"l0: subl d0,sp;" +" jmp a0@;" -___unlk_a5_rts: - movel d0,a0 - movel a5,d0 - jbsr ___stkrst - movel a0,d0 - movel sp@+,a5 - rts -"); +"___unlk_a5_rts:;" +" movel d0,a0;" +" movel a5,d0;" +" jbsr ___stkrst;" +" movel a0,d0;" +" movel sp@+,a5;" +" rts;" +); ALIAS(__move_d0_sp,__stkrst); diff --git a/libnix/sources/startup/Makefile.in b/libnix/sources/startup/Makefile.in index d5674dd..8d5f07d 100644 --- a/libnix/sources/startup/Makefile.in +++ b/libnix/sources/startup/Makefile.in @@ -9,9 +9,9 @@ VPATH = @srcdir@ CC = @CC@ CPP = @CPP@ -AS = as +AS = @AS@ -AR = ar +AR = @AR@ RANLIB = @RANLIB@ AWK = @AWK@ @@ -26,7 +26,7 @@ OPTIONS=-I$(srcdir)/../headers -O -fomit-frame-pointer .PHONY: all filelist subdirs clean veryclean -all: nrcrt0.o nbcrt0.o ncrt0.o libinit.o libinitr.o devinit.o +all: nrcrt0.o nbcrt0.o nlrcrt0.o nlbcrt0.o ncrt0.o libinit.o libinitr.o devinit.o subdirs: @@ -43,12 +43,24 @@ nrcrt0.o: nrcrt0.S $(CC) -c $^ echo "\$$$(V)" >>$@ +# large baserelative resident startup-code + +nlrcrt0.o: nlrcrt0.S + $(CC) -m68020 -c $^ + echo "\$$$(V)" >>$@ # baserelative startup code nbcrt0.o: nbcrt0.S $(CC) -c $^ echo "\$$$(V)" >>$@ +# large baserelative startup code + +nlbcrt0.o: nlbcrt0.S + $(CC) -m68020 -c $^ + echo "\$$$(V)" >>$@ + + # normal (=large) startup code ncrt0.o: ncrt0.S diff --git a/libnix/sources/startup/nbcrt0.S b/libnix/sources/startup/nbcrt0.S index fc9fd95..4a399aa 100755 --- a/libnix/sources/startup/nbcrt0.S +++ b/libnix/sources/startup/nbcrt0.S @@ -17,7 +17,7 @@ pr_CLI = 172 .globl __exit .globl _geta4 - + .global ___restore_a4 .text | first entry - init some vars, check for cli or wb start @@ -57,7 +57,6 @@ fromCLI: lea a4@(___INIT_LIST__:W),a2 addqw #4,a2 moveql #-1,d2 jbsr callfuncs - movel a4@(___env:W),sp@- movel a4@(___argv:W),sp@- movel a4@(___argc:W),sp@- @@ -115,6 +114,7 @@ oldpri: movel a3@+,d0 | get baseptr +___restore_a4: _geta4: lea ___a4_init,a4 rts diff --git a/libnix/sources/startup/ncrt0.S b/libnix/sources/startup/ncrt0.S index 773c035..f1d9cc1 100755 --- a/libnix/sources/startup/ncrt0.S +++ b/libnix/sources/startup/ncrt0.S @@ -17,7 +17,6 @@ pr_CLI = 172 .globl __exit .globl _geta4 - .text | first entry - init some vars, check for cli or wb start @@ -48,7 +47,6 @@ fromWB: lea a3@(pr_MsgPort:W),a0 fromCLI: lea ___INIT_LIST__+4,a2 moveql #-1,d2 jbsr callfuncs - movel ___env,sp@- movel ___argv,sp@- movel ___argc,sp@- diff --git a/libnix/sources/startup/nlbcrt0.S b/libnix/sources/startup/nlbcrt0.S new file mode 100644 index 0000000..43ef7fa --- /dev/null +++ b/libnix/sources/startup/nlbcrt0.S @@ -0,0 +1,142 @@ +| baserelative startup code for gcc v2.3.3+ +| (c) by M.Fleischer and G.Nikl Wed Apr 13 17:45 1994 +| No bugs known + +| some specific defines + +_LVOForbid = -132 +_LVOFindTask = -294 +_LVOGetMsg = -372 +_LVOReplyMsg = -378 +_LVOWaitPort = -384 + +pr_MsgPort = 92 +pr_CLI = 172 + +| public symbols + + .globl __exit + .globl _geta4 + .global ___restore_a4 + .text + +| first entry - init some vars, check for cli or wb start + +start: movel #___bss_size,d1 + jbsr _geta4 + beqs nobss + lea a4@(__edata:L),a1 +clrbss: clrl a1@+ + subql #4,d1 + bnes clrbss + +nobss: movel a0,a4@(___commandline:L) + movel d0,a4@(___commandlen:L) + + movel sp,a4@(___SaveSP:L) + movel 4:L,a6 + movel a6,a4@(_SysBase:L) + + subal a1,a1 + jsr a6@(_LVOFindTask:L) + movel d0,a3 + tstl a3@(pr_CLI:L) + bne fromCLI + +| wb start - get wbmsg + +fromWB: lea a3@(pr_MsgPort:L),a0 + jsr a6@(_LVOWaitPort:L) + lea a3@(pr_MsgPort:L),a0 + jsr a6@(_LVOGetMsg:L) + movel d0,a4@(__WBenchMsg:L) + +| execute all init functions then call main + +fromCLI: lea a4@(___INIT_LIST__:L),a2 + addqw #4,a2 + moveql #-1,d2 + jbsr callfuncs + movel a4@(___env:L),sp@- + movel a4@(___argv:L),sp@- + movel a4@(___argc:L),sp@- + jbsr _main + movel d0,sp@(4:L) + +| exit() entry - execute all exit functions, reply wbmsg + +__exit: lea a4@(___EXIT_LIST__:L),a2 + addqw #4,a2 + moveql #0,d2 + jbsr callfuncs + + movel a4@(_SysBase:L),a6 + + movel a4@(__WBenchMsg:L),d2 + beq todos + jsr a6@(_LVOForbid:L) + movel d2,a1 + jsr a6@(_LVOReplyMsg:L) + +| leave - get return val, restore stackptr + +todos: movel sp@(4:L),d0 + movel a4@(___SaveSP:L),sp + rts + +| call all functions in the NULL terminated list pointed to by a2 +| d2 ascending or descending priority mode + +callfuncs: lea a4@(cleanupflag:L),a5 + movel a2,a3 + moveql #0,d3 + jra oldpri +stabloop: movel a3@+,d4 + movel a5@,d5 + cmpl d4,d5 + jne notnow + movel d0,a0 + jsr a0@ +notnow: eorl d2,d4 + eorl d2,d5 + cmpl d5,d4 + jcc oldpri + cmpl d3,d4 + jls oldpri + movel d4,d3 +oldpri: movel a3@+,d0 + jne stabloop + eorl d2,d3 + movel d3,a5@ + cmpl d2,d3 + jne callfuncs + rts + +| get baseptr + +___restore_a4: +_geta4: lea ___a4_init,a4 + rts + +| redirection of _exit + + .stabs "_exit",11,0,0,0 + .stabs "__exit",1,0,0,0 + +| data area + + .data + + .long ___nocommandline + .long ___initlibraries + .long ___cpucheck + +.comm _SysBase,4 +.comm ___SaveSP,4 +.comm __WBenchMsg,4 +.comm ___commandline,4 +.comm ___commandlen,4 +.comm ___argc,4 +.comm ___argv,4 +.comm ___env,4 +.lcomm cleanupflag,4 diff --git a/libnix/sources/startup/nlrcrt0.S b/libnix/sources/startup/nlrcrt0.S new file mode 100644 index 0000000..04e62e5 --- /dev/null +++ b/libnix/sources/startup/nlrcrt0.S @@ -0,0 +1,180 @@ +| residentable baserelative startup code for gcc v2.3.3+ +| (c) by M.Fleischer and G.Nikl Wed Apr 13 17:46 1994 +| No bugs known +| +| Problem: geta4() +| I really donīt know how to implement it with multiple starts +| +| You should use the non-resident startup-code if you need it ! + +| some specific defines + +_LVOForbid = -132 +_LVOAllocMem = -198 +_LVOFindTask = -294 +_LVOFreeMem = -210 +_LVOGetMsg = -372 +_LVOReplyMsg = -378 +_LVOWaitPort = -384 +_LVOCopyMemQuick = -630 + +pr_MsgPort = 92 +pr_CLI = 172 + +ERROR_NO_FREE_STORE = 103 + +| public symbols + + .globl __exit + .text + +| first entry - check for cli or wb start + +start: movel a0,d3 + movel d0,d4 + + movel 4:W,a6 + + subal a1,a1 + jsr a6@(_LVOFindTask:L) + movel d0,a3 + tstl a3@(pr_CLI:L) + subal a2,a2 + bne fromCLI + +| wb start - get our message + +fromWB: lea a3@(pr_MsgPort:L),a0 + jsr a6@(_LVOWaitPort:L) + lea a3@(pr_MsgPort:L),a0 + jsr a6@(_LVOGetMsg:L) + movel d0,a2 + +| resident setup - allocate memory and relocate + +fromCLI: movql #ERROR_NO_FREE_STORE,d7 + movel #___data_size,d5 + movel #___bss_size,d2 + addl d5,d2 + movel d2,d0 + movql #1,d1 + swap d1 + jsr a6@(_LVOAllocMem:L) + movel d0,a4 + movel a4,d0 + beq cleanup + lea ___a4_init-0x7ffe,a5 + movel d5,d0 + movel a5,a0 + movel a4,a1 + jsr a6@(_LVOCopyMemQuick:L) + lea ___datadata_relocs,a0 + movel a0@+,d0 + beq no_reloc + movel a5,d1 + subl a4,d1 +do_reloc: movel a0@+,a1 + subl d1,a4@(a1:l) + subql #1,d0 + bne do_reloc +no_reloc: lea a4@(0x7ffe:L),a4 + + movel sp,a4@(___SaveSP:L) + movel a6,a4@(_SysBase:L) + movel a2,a4@(__WBenchMsg:L) + movel d3,a4@(___commandline:L) + movel d4,a4@(___commandlen:L) + movel d2,a4@(___MemLen:L) + +| call main() - push args onto stack + + lea a4@(___INIT_LIST__:L),a2 + addqw #4,a2 + moveql #-1,d2 + jbsr callfuncs + movel a4@(___env:L),sp@- + movel a4@(___argv:L),sp@- + movel a4@(___argc:L),sp@- + jbsr _main + movel d0,sp@(4:L) + +| exit() entry - get return val, restore stackptr + +__exit: lea a4@(___EXIT_LIST__:L),a2 + addqw #4,a2 + moveql #0,d2 + jbsr callfuncs + + movel sp@(4:L),d7 + movel a4@(___SaveSP:L),sp + +| prepare cleanup - setup regs, free resident memory + + movel a4@(_SysBase:L),a6 + + movel a4@(__WBenchMsg:L),a2 + movel a4@(___MemLen:L),d0 + lea a4@(-0x7ffe:L),a1 + jsr a6@(_LVOFreeMem:L) + +| cleanup - reply wbmsg and exit + +cleanup: movel a2,d0 + beqs todos + jsr a6@(_LVOForbid:L) + movel a2,a1 + jsr a6@(_LVOReplyMsg:L) +todos: movel d7,d0 + rts + +| call all functions in the NULL terminated list pointed to by a2 +| d2 ascending or descending priority mode + +callfuncs: lea a4@(cleanupflag:L),a5 + movel a2,a3 + moveql #0,d3 + jra oldpri +stabloop: movel a3@+,d4 + movel a5@,d5 + cmpl d4,d5 + jne notnow + movel d0,a0 + jsr a0@ +notnow: eorl d2,d4 + eorl d2,d5 + cmpl d5,d4 + jcc oldpri + cmpl d3,d4 + jls oldpri + movel d4,d3 +oldpri: movel a3@+,d0 + jne stabloop + eorl d2,d3 + movel d3,a5@ + cmpl d2,d3 + jne callfuncs + rts + +| redirection of _exit + + .stabs "_exit",11,0,0,0 + .stabs "__exit",1,0,0,0 + +| data area + + .data + + .long ___nocommandline + .long ___initlibraries + .long ___cpucheck + +.comm _SysBase,4 +.comm ___SaveSP,4 +.comm __WBenchMsg,4 +.comm ___commandline,4 +.comm ___commandlen,4 +.comm ___MemLen,4 +.comm ___argc,4 +.comm ___argv,4 +.comm ___env,4 +.lcomm cleanupflag,4 diff --git a/libnix/sources/startup/nrcrt0.S b/libnix/sources/startup/nrcrt0.S index 7a95bcb..7da1eaf 100755 --- a/libnix/sources/startup/nrcrt0.S +++ b/libnix/sources/startup/nrcrt0.S @@ -26,7 +26,6 @@ ERROR_NO_FREE_STORE = 103 | public symbols .globl __exit - .text | first entry - check for cli or wb start @@ -93,7 +92,6 @@ no_reloc: lea a4@(0x7ffe:W),a4 addqw #4,a2 moveql #-1,d2 jbsr callfuncs - movel a4@(___env:W),sp@- movel a4@(___argv:W),sp@- movel a4@(___argc:W),sp@- diff --git a/libnix/sources/stubs/Makefile.in b/libnix/sources/stubs/Makefile.in index 99ac82f..223bb41 100644 --- a/libnix/sources/stubs/Makefile.in +++ b/libnix/sources/stubs/Makefile.in @@ -5,9 +5,9 @@ VPATH = @srcdir@ CC = @CC@ CPP = @CPP@ -AS = as +AS = @AS@ -AR = ar +AR = @AR@ RANLIB = @RANLIB@ AWK = @AWK@ diff --git a/libnix/sources/stubs/libbases/amigaguide.c b/libnix/sources/stubs/libbases/amigaguide.c new file mode 100644 index 0000000..182cff6 --- /dev/null +++ b/libnix/sources/stubs/libbases/amigaguide.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __amigaguidename[]; +void *AmigaGuideBase[2]={ 0l,__amigaguidename }; +ADD2LIB(AmigaGuideBase); diff --git a/libnix/sources/stubs/libbases/asl.c b/libnix/sources/stubs/libbases/asl.c new file mode 100644 index 0000000..19ae475 --- /dev/null +++ b/libnix/sources/stubs/libbases/asl.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __aslname[]; +void *AslBase[2]={ 0l,__aslname }; +ADD2LIB(AslBase); diff --git a/libnix/sources/stubs/libbases/bullet.c b/libnix/sources/stubs/libbases/bullet.c new file mode 100644 index 0000000..4bb3b80 --- /dev/null +++ b/libnix/sources/stubs/libbases/bullet.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __bulletname[]; +void *BulletBase[2]={ 0l,__bulletname }; +ADD2LIB(BulletBase); diff --git a/libnix/sources/stubs/libbases/commodities.c b/libnix/sources/stubs/libbases/commodities.c new file mode 100644 index 0000000..ebf5760 --- /dev/null +++ b/libnix/sources/stubs/libbases/commodities.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __commoditiesname[]; +void *CxBase[2]={ 0l,__commoditiesname }; +ADD2LIB(CxBase); diff --git a/libnix/sources/stubs/libbases/datatypes.c b/libnix/sources/stubs/libbases/datatypes.c new file mode 100644 index 0000000..da405b1 --- /dev/null +++ b/libnix/sources/stubs/libbases/datatypes.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __datatypesname[]; +void *DataTypesBase[2]={ 0l,__datatypesname }; +ADD2LIB(DataTypesBase); diff --git a/libnix/sources/stubs/libbases/diskfont.c b/libnix/sources/stubs/libbases/diskfont.c new file mode 100644 index 0000000..b51914c --- /dev/null +++ b/libnix/sources/stubs/libbases/diskfont.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __diskfontname[]; +void *DiskfontBase[2]={ 0l,__diskfontname }; +ADD2LIB(DiskfontBase); diff --git a/libnix/sources/stubs/libbases/dos.c b/libnix/sources/stubs/libbases/dos.c new file mode 100644 index 0000000..17a46de --- /dev/null +++ b/libnix/sources/stubs/libbases/dos.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __dosname[]; +void *DOSBase[2]={ 0l,__dosname }; +ADD2LIB(DOSBase); diff --git a/libnix/sources/stubs/libbases/expansion.c b/libnix/sources/stubs/libbases/expansion.c new file mode 100644 index 0000000..26d212b --- /dev/null +++ b/libnix/sources/stubs/libbases/expansion.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __expansionname[]; +void *ExpansionBase[2]={ 0l,__expansionname }; +ADD2LIB(ExpansionBase); diff --git a/libnix/sources/stubs/libbases/gadtools.c b/libnix/sources/stubs/libbases/gadtools.c new file mode 100644 index 0000000..774a87b --- /dev/null +++ b/libnix/sources/stubs/libbases/gadtools.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __gadtoolsname[]; +void *GadToolsBase[2]={ 0l,__gadtoolsname }; +ADD2LIB(GadToolsBase); diff --git a/libnix/sources/stubs/libbases/graphics.c b/libnix/sources/stubs/libbases/graphics.c new file mode 100644 index 0000000..6d77731 --- /dev/null +++ b/libnix/sources/stubs/libbases/graphics.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __graphicsname[]; +void *GfxBase[2]={ 0l,__graphicsname }; +ADD2LIB(GfxBase); diff --git a/libnix/sources/stubs/libbases/icon.c b/libnix/sources/stubs/libbases/icon.c new file mode 100644 index 0000000..8b47bed --- /dev/null +++ b/libnix/sources/stubs/libbases/icon.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __iconname[]; +void *IconBase[2]={ 0l,__iconname }; +ADD2LIB(IconBase); diff --git a/libnix/sources/stubs/libbases/iffparse.c b/libnix/sources/stubs/libbases/iffparse.c new file mode 100644 index 0000000..0e72c8d --- /dev/null +++ b/libnix/sources/stubs/libbases/iffparse.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __iffparsename[]; +void *IFFParseBase[2]={ 0l,__iffparsename }; +ADD2LIB(IFFParseBase); diff --git a/libnix/sources/stubs/libbases/intuition.c b/libnix/sources/stubs/libbases/intuition.c new file mode 100644 index 0000000..7bc0dca --- /dev/null +++ b/libnix/sources/stubs/libbases/intuition.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __intuitionname[]; +void *IntuitionBase[2]={ 0l,__intuitionname }; +ADD2LIB(IntuitionBase); diff --git a/libnix/sources/stubs/libbases/keymap.c b/libnix/sources/stubs/libbases/keymap.c new file mode 100644 index 0000000..9bcfe52 --- /dev/null +++ b/libnix/sources/stubs/libbases/keymap.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __keymapname[]; +void *KeymapBase[2]={ 0l,__keymapname }; +ADD2LIB(KeymapBase); diff --git a/libnix/sources/stubs/libbases/layers.c b/libnix/sources/stubs/libbases/layers.c new file mode 100644 index 0000000..12b321a --- /dev/null +++ b/libnix/sources/stubs/libbases/layers.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __layersname[]; +void *LayersBase[2]={ 0l,__layersname }; +ADD2LIB(LayersBase); diff --git a/libnix/sources/stubs/libbases/locale.c b/libnix/sources/stubs/libbases/locale.c new file mode 100644 index 0000000..3be63b5 --- /dev/null +++ b/libnix/sources/stubs/libbases/locale.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __localename[]; +void *LocaleBase[2]={ 0l,__localename }; +ADD2LIB(LocaleBase); diff --git a/libnix/sources/stubs/libbases/lowlevel.c b/libnix/sources/stubs/libbases/lowlevel.c new file mode 100644 index 0000000..1cfca94 --- /dev/null +++ b/libnix/sources/stubs/libbases/lowlevel.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __lowlevelname[]; +void *LowLevelBase[2]={ 0l,__lowlevelname }; +ADD2LIB(LowLevelBase); diff --git a/libnix/sources/stubs/libbases/mathffp.c b/libnix/sources/stubs/libbases/mathffp.c new file mode 100644 index 0000000..db21b96 --- /dev/null +++ b/libnix/sources/stubs/libbases/mathffp.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __mathffpname[]; +void *MathBase[2]={ 0l,__mathffpname }; +ADD2LIB(MathBase); diff --git a/libnix/sources/stubs/libbases/mathieeedoubbas.c b/libnix/sources/stubs/libbases/mathieeedoubbas.c new file mode 100644 index 0000000..9a3a260 --- /dev/null +++ b/libnix/sources/stubs/libbases/mathieeedoubbas.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __mathieeedoubbasname[]; +void *MathIeeeDoubBasBase[2]={ 0l,__mathieeedoubbasname }; +ADD2LIB(MathIeeeDoubBasBase); diff --git a/libnix/sources/stubs/libbases/mathieeedoubtrans.c b/libnix/sources/stubs/libbases/mathieeedoubtrans.c new file mode 100644 index 0000000..972ab78 --- /dev/null +++ b/libnix/sources/stubs/libbases/mathieeedoubtrans.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __mathieeedoubtransname[]; +void *MathIeeeDoubTransBase[2]={ 0l,__mathieeedoubtransname }; +ADD2LIB(MathIeeeDoubTransBase); diff --git a/libnix/sources/stubs/libbases/mathieeesingbas.c b/libnix/sources/stubs/libbases/mathieeesingbas.c new file mode 100644 index 0000000..fbdff13 --- /dev/null +++ b/libnix/sources/stubs/libbases/mathieeesingbas.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __mathieeesingbasname[]; +void *MathIeeeSingBasBase[2]={ 0l,__mathieeesingbasname }; +ADD2LIB(MathIeeeSingBasBase); diff --git a/libnix/sources/stubs/libbases/mathieeesingtrans.c b/libnix/sources/stubs/libbases/mathieeesingtrans.c new file mode 100644 index 0000000..b71a61a --- /dev/null +++ b/libnix/sources/stubs/libbases/mathieeesingtrans.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __mathieeesingtransname[]; +void *MathIeeeSingTransBase[2]={ 0l,__mathieeesingtransname }; +ADD2LIB(MathIeeeSingTransBase); diff --git a/libnix/sources/stubs/libbases/mathtrans.c b/libnix/sources/stubs/libbases/mathtrans.c new file mode 100644 index 0000000..0f698ba --- /dev/null +++ b/libnix/sources/stubs/libbases/mathtrans.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __mathtransname[]; +void *MathTransBase[2]={ 0l,__mathtransname }; +ADD2LIB(MathTransBase); diff --git a/libnix/sources/stubs/libbases/nonvolatile.c b/libnix/sources/stubs/libbases/nonvolatile.c new file mode 100644 index 0000000..96c63f7 --- /dev/null +++ b/libnix/sources/stubs/libbases/nonvolatile.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __nonvolatilename[]; +void *NVBase[2]={ 0l,__nonvolatilename }; +ADD2LIB(NVBase); diff --git a/libnix/sources/stubs/libbases/realtime.c b/libnix/sources/stubs/libbases/realtime.c new file mode 100644 index 0000000..3e3c359 --- /dev/null +++ b/libnix/sources/stubs/libbases/realtime.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __realtimename[]; +void *RealTimeBase[2]={ 0l,__realtimename }; +ADD2LIB(RealTimeBase); diff --git a/libnix/sources/stubs/libbases/rexxsyslib.c b/libnix/sources/stubs/libbases/rexxsyslib.c new file mode 100644 index 0000000..594fb02 --- /dev/null +++ b/libnix/sources/stubs/libbases/rexxsyslib.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __rexxsyslibname[]; +void *RexxSysBase[2]={ 0l,__rexxsyslibname }; +ADD2LIB(RexxSysBase); diff --git a/libnix/sources/stubs/libbases/translator.c b/libnix/sources/stubs/libbases/translator.c new file mode 100644 index 0000000..3e5ce98 --- /dev/null +++ b/libnix/sources/stubs/libbases/translator.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __translatorname[]; +void *TranslatorBase[2]={ 0l,__translatorname }; +ADD2LIB(TranslatorBase); diff --git a/libnix/sources/stubs/libbases/utility.c b/libnix/sources/stubs/libbases/utility.c new file mode 100644 index 0000000..ae1af71 --- /dev/null +++ b/libnix/sources/stubs/libbases/utility.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __utilityname[]; +void *UtilityBase[2]={ 0l,__utilityname }; +ADD2LIB(UtilityBase); diff --git a/libnix/sources/stubs/libbases/workbench.c b/libnix/sources/stubs/libbases/workbench.c new file mode 100644 index 0000000..17ee04d --- /dev/null +++ b/libnix/sources/stubs/libbases/workbench.c @@ -0,0 +1,5 @@ +/* Machine-generated C-file- do not edit ! */ +#include +extern char __workbenchname[]; +void *WorkbenchBase[2]={ 0l,__workbenchname }; +ADD2LIB(WorkbenchBase); diff --git a/libnix/sources/stubs/libnames/amigaguide.c b/libnix/sources/stubs/libnames/amigaguide.c new file mode 100644 index 0000000..4382a5e --- /dev/null +++ b/libnix/sources/stubs/libnames/amigaguide.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __amigaguidename[]="amigaguide.library"; diff --git a/libnix/sources/stubs/libnames/asl.c b/libnix/sources/stubs/libnames/asl.c new file mode 100644 index 0000000..f8ffc28 --- /dev/null +++ b/libnix/sources/stubs/libnames/asl.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __aslname[]="asl.library"; diff --git a/libnix/sources/stubs/libnames/bullet.c b/libnix/sources/stubs/libnames/bullet.c new file mode 100644 index 0000000..3462cf1 --- /dev/null +++ b/libnix/sources/stubs/libnames/bullet.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __bulletname[]="bullet.library"; diff --git a/libnix/sources/stubs/libnames/commodities.c b/libnix/sources/stubs/libnames/commodities.c new file mode 100644 index 0000000..50de06a --- /dev/null +++ b/libnix/sources/stubs/libnames/commodities.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __commoditiesname[]="commodities.library"; diff --git a/libnix/sources/stubs/libnames/datatypes.c b/libnix/sources/stubs/libnames/datatypes.c new file mode 100644 index 0000000..f257bf9 --- /dev/null +++ b/libnix/sources/stubs/libnames/datatypes.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __datatypesname[]="datatypes.library"; diff --git a/libnix/sources/stubs/libnames/diskfont.c b/libnix/sources/stubs/libnames/diskfont.c new file mode 100644 index 0000000..b435bbb --- /dev/null +++ b/libnix/sources/stubs/libnames/diskfont.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __diskfontname[]="diskfont.library"; diff --git a/libnix/sources/stubs/libnames/dos.c b/libnix/sources/stubs/libnames/dos.c new file mode 100644 index 0000000..39f9fca --- /dev/null +++ b/libnix/sources/stubs/libnames/dos.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __dosname[]="dos.library"; diff --git a/libnix/sources/stubs/libnames/expansion.c b/libnix/sources/stubs/libnames/expansion.c new file mode 100644 index 0000000..b45bc92 --- /dev/null +++ b/libnix/sources/stubs/libnames/expansion.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __expansionname[]="expansion.library"; diff --git a/libnix/sources/stubs/libnames/gadtools.c b/libnix/sources/stubs/libnames/gadtools.c new file mode 100644 index 0000000..b74ebf3 --- /dev/null +++ b/libnix/sources/stubs/libnames/gadtools.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __gadtoolsname[]="gadtools.library"; diff --git a/libnix/sources/stubs/libnames/graphics.c b/libnix/sources/stubs/libnames/graphics.c new file mode 100644 index 0000000..d30398a --- /dev/null +++ b/libnix/sources/stubs/libnames/graphics.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __graphicsname[]="graphics.library"; diff --git a/libnix/sources/stubs/libnames/icon.c b/libnix/sources/stubs/libnames/icon.c new file mode 100644 index 0000000..8b190a9 --- /dev/null +++ b/libnix/sources/stubs/libnames/icon.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __iconname[]="icon.library"; diff --git a/libnix/sources/stubs/libnames/iffparse.c b/libnix/sources/stubs/libnames/iffparse.c new file mode 100644 index 0000000..c6af33d --- /dev/null +++ b/libnix/sources/stubs/libnames/iffparse.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __iffparsename[]="iffparse.library"; diff --git a/libnix/sources/stubs/libnames/intuition.c b/libnix/sources/stubs/libnames/intuition.c new file mode 100644 index 0000000..00019aa --- /dev/null +++ b/libnix/sources/stubs/libnames/intuition.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __intuitionname[]="intuition.library"; diff --git a/libnix/sources/stubs/libnames/keymap.c b/libnix/sources/stubs/libnames/keymap.c new file mode 100644 index 0000000..d220182 --- /dev/null +++ b/libnix/sources/stubs/libnames/keymap.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __keymapname[]="keymap.library"; diff --git a/libnix/sources/stubs/libnames/layers.c b/libnix/sources/stubs/libnames/layers.c new file mode 100644 index 0000000..9e46741 --- /dev/null +++ b/libnix/sources/stubs/libnames/layers.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __layersname[]="layers.library"; diff --git a/libnix/sources/stubs/libnames/locale.c b/libnix/sources/stubs/libnames/locale.c new file mode 100644 index 0000000..ebaf2d2 --- /dev/null +++ b/libnix/sources/stubs/libnames/locale.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __localename[]="locale.library"; diff --git a/libnix/sources/stubs/libnames/lowlevel.c b/libnix/sources/stubs/libnames/lowlevel.c new file mode 100644 index 0000000..19ac0b8 --- /dev/null +++ b/libnix/sources/stubs/libnames/lowlevel.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __lowlevelname[]="lowlevel.library"; diff --git a/libnix/sources/stubs/libnames/mathffp.c b/libnix/sources/stubs/libnames/mathffp.c new file mode 100644 index 0000000..3ea225c --- /dev/null +++ b/libnix/sources/stubs/libnames/mathffp.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __mathffpname[]="mathffp.library"; diff --git a/libnix/sources/stubs/libnames/mathieeedoubbas.c b/libnix/sources/stubs/libnames/mathieeedoubbas.c new file mode 100644 index 0000000..9b2c644 --- /dev/null +++ b/libnix/sources/stubs/libnames/mathieeedoubbas.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __mathieeedoubbasname[]="mathieeedoubbas.library"; diff --git a/libnix/sources/stubs/libnames/mathieeedoubtrans.c b/libnix/sources/stubs/libnames/mathieeedoubtrans.c new file mode 100644 index 0000000..e88a2e9 --- /dev/null +++ b/libnix/sources/stubs/libnames/mathieeedoubtrans.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __mathieeedoubtransname[]="mathieeedoubtrans.library"; diff --git a/libnix/sources/stubs/libnames/mathieeesingbas.c b/libnix/sources/stubs/libnames/mathieeesingbas.c new file mode 100644 index 0000000..300391d --- /dev/null +++ b/libnix/sources/stubs/libnames/mathieeesingbas.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __mathieeesingbasname[]="mathieeesingbas.library"; diff --git a/libnix/sources/stubs/libnames/mathieeesingtrans.c b/libnix/sources/stubs/libnames/mathieeesingtrans.c new file mode 100644 index 0000000..fde9b0a --- /dev/null +++ b/libnix/sources/stubs/libnames/mathieeesingtrans.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __mathieeesingtransname[]="mathieeesingtrans.library"; diff --git a/libnix/sources/stubs/libnames/mathtrans.c b/libnix/sources/stubs/libnames/mathtrans.c new file mode 100644 index 0000000..e718dc0 --- /dev/null +++ b/libnix/sources/stubs/libnames/mathtrans.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __mathtransname[]="mathtrans.library"; diff --git a/libnix/sources/stubs/libnames/nonvolatile.c b/libnix/sources/stubs/libnames/nonvolatile.c new file mode 100644 index 0000000..48ddcf7 --- /dev/null +++ b/libnix/sources/stubs/libnames/nonvolatile.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __nonvolatilename[]="nonvolatile.library"; diff --git a/libnix/sources/stubs/libnames/realtime.c b/libnix/sources/stubs/libnames/realtime.c new file mode 100644 index 0000000..1fdd2c2 --- /dev/null +++ b/libnix/sources/stubs/libnames/realtime.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __realtimename[]="realtime.library"; diff --git a/libnix/sources/stubs/libnames/rexxsyslib.c b/libnix/sources/stubs/libnames/rexxsyslib.c new file mode 100644 index 0000000..3ef2b14 --- /dev/null +++ b/libnix/sources/stubs/libnames/rexxsyslib.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __rexxsyslibname[]="rexxsyslib.library"; diff --git a/libnix/sources/stubs/libnames/translator.c b/libnix/sources/stubs/libnames/translator.c new file mode 100644 index 0000000..3db3a74 --- /dev/null +++ b/libnix/sources/stubs/libnames/translator.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __translatorname[]="translator.library"; diff --git a/libnix/sources/stubs/libnames/utility.c b/libnix/sources/stubs/libnames/utility.c new file mode 100644 index 0000000..ca8d3f7 --- /dev/null +++ b/libnix/sources/stubs/libnames/utility.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __utilityname[]="utility.library"; diff --git a/libnix/sources/stubs/libnames/workbench.c b/libnix/sources/stubs/libnames/workbench.c new file mode 100644 index 0000000..501656c --- /dev/null +++ b/libnix/sources/stubs/libnames/workbench.c @@ -0,0 +1,2 @@ +/* Machine-generated C-file- do not edit ! */ +char __workbenchname[]="workbench.library"; diff --git a/libnix/sources/stubs/misc/__cpucheck.c b/libnix/sources/stubs/misc/__cpucheck.c index 348c881..7953bf0 100755 --- a/libnix/sources/stubs/misc/__cpucheck.c +++ b/libnix/sources/stubs/misc/__cpucheck.c @@ -4,44 +4,44 @@ #if defined(mc68020) || defined(__HAVE_68881__) #ifdef mc68020 -static const char errtext1[]="Need a 68020 or higher CPU"; +const char errtext1[]="Need a 68020 or higher CPU"; #endif #ifdef __HAVE_68881__ -static const char errtext2[]="Need some FPU to run"; +const char errtext2[]="Need some FPU to run"; #endif -asm(" - .text - .even +asm( +" .text;" +" .even;" + +" .globl ___cpucheck;" +"___cpucheck:;" +" movel "A4(_SysBase)",a1;" +" movew a1@(0x128:W),d0;" - .globl ___cpucheck -___cpucheck: - movel "A4(_SysBase)",a1 - movew a1@(0x128:W),d0 -" #ifdef mc68020 -" - lea _errtext1,a0 - btst #1,d0 - jeq error -" + +" lea _errtext1,a0;" +" btst #1,d0;" +" jeq error;" + #endif #ifdef __HAVE_68881__ -" - lea _errtext2,a0 - btst #4,d0 - jeq error -" + +" lea _errtext2,a0;" +" btst #4,d0;" +" jeq error;" + #endif -" - rts -error: - movel a0,sp@- - jsr ___request | jbsr translates to jra which doesn't work on 68000 - pea 20:W - jsr _exit | dito -"); + +" rts;" +"error:" +" movel a0,sp@-;" +" jsr ___request;" /* jbsr translates to jra which doesn't work on 68000 */ +" pea 20:W;" +" jsr _exit;" /* dito */ +); ADD2INIT(__cpucheck,-80); /* Highest priority */