View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000624 | LDMud 3.3 | Portability | public | 2009-04-13 21:13 | 2009-05-06 14:25 |
Reporter | wedsall | Assigned To | zesstra | ||
Priority | low | Severity | crash | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | x86_64 | OS | GNU/Linux | OS Version | 2.6.22.5 |
Product Version | 3.3.718 | ||||
Target Version | 3.3.719 | Fixed in Version | 3.3.719 | ||
Summary | 0000624: Crash in included crypt() implementation on platforms with sizeof(long)==8 (e.g. x86_64) | ||||
Description | Hello! Well, there isn't much information to go by but I'm trying to compile on 64 bit suse 10.3 and not having luck. I was able to get the bare bones dev version of the game to start up and I could connect, but it disconnects as I enter my password. There is a small bit of debug information after this password is entered, it is pasted below in additional information. As always, thank you all for the hard work. | ||||
Additional Information | Linux df 2.6.22.5-31-default 0000001 SMP 2007/09/21 22:29:00 UTC x86_64 x86_64 x86_64 GNU/Linux Apr 13 23:06:01 df kernel: ldmud[8496]: segfault at 00002b4d97045874 rip 00000000004930c8 rsp 00007fff14b71860 error 4 df:/home/dragonfire/logs # more 04-13-2009-22\:36\:01.DF.err 2009.04.13 22:35:02 [xerq] XERQ Apr 13 2009: Path 'erq', debuglevel 0 2009.04.13 22:35:02 [xerq] Demon started [xerq] read: No such device or address 2009.04.13 22:35:02 [xerq] Demon exiting. df:/home/dragonfire/logs # more 04-13-2009-22\:36\:01.debug.log 2009.04.13 22:35:02 LDMud 3.3.718 (Build 2483) (stable) 2009.04.13 22:35:02 mySQL 5.0.45 2009.04.13 22:35:02 Attempting to start erq '/home/dragonfire/bin/erq'. 2009.04.13 22:35:02 Hostname 'df' address '127.0.0.1' 2009.04.13 22:35:02 UDP recv-socket requested for port: 2000 Here's what i'm using for a configuration file. I tried the cflags settings listed in the INSTALL file but this produced the same results. #!/bin/sh # # Settings for a compat-mode driver for Dragonfire mud. # by Nostradamus # configure will strip this part from the script. # --with-malloc=ptmalloc \ # --enable-share-variables=yes \ # --enable-use-pthreads=yes \ # export CFLAGS="-m64 -mtune=core2" # export LDFLAGS="-m64 -mtune=core2" # export EXTRA_CFLAGS=$CFLAGS #--enable-use-mysql=/usr/lib/mysql \ ./configure \ --prefix=/home/dragonfire \ --bindir=/home/dragonfire/bin \ --libdir=/home/dragonfire/lib \ --libexec=/home/dragonfire/libexec \ --enable-compat-mode \ --enable-erq=xerq \ --enable-lpc-nosave \ --enable-dynamic-costs \ --enable-opcprof \ --enable-verbose-opcprof \ --enable-use-structs \ --enable-use-new-inlines=yes \ --enable-use-system-crypt=no \ --enable-use-deprecated=no \ --enable-malloc-trace=yes \ --enable-use-pcre=yes \ --enable-use-alists=yes \ --enable-use-pgsql=no \ --enable-use-mccp=yes \ --enable-share-variables=no \ --enable-filename-spaces=yes \ --enable-malloc-lpc-trace=yes \ --with-read-file-max-size=200000 \ --with-max-byte-transfer=200000 \ --without-wizlist-file \ --with-optimize=no \ --with-master-name=secure/master \ --with-time-to-reset=900 \ --with-portno=1998 \ --with-udp-port=2000 \ --with-max-cost=2100000 \ --with-max-malloced=0 \ --with-min-malloced=0x80000 \ --with-min-small-malloced=0x80000 \ --with-otable-size=8192 \ --with-htable-size=32768 \ --with-apply-cache-bits=14 \ --with-time-to-swap=0 \ --with-time-to-swap-variables=0 \ --with-max_net_connects=100 \ --enable-debug \ --with-erq-debug \ --with-swap-file=DF_SWAP This is written to the debug log after entering password info: 2009.04.13 23:10:34 Error in master_ob->preload() 2009.04.13 23:10:34 LDMud ready for users. 2009.04.13 23:10:43 New player at socket 7. 2009.04.13 23:10:43 Dont END OF RECORD 2009.04.13 23:10:43 Do STATUS 2009.04.13 23:10:43 Wont ENVIRON 2009.04.13 23:10:43 Will NAWS 2009.04.13 23:10:43 Will NEWENV 2009.04.13 23:10:43 Dont MUD COMPRESS2 2009.04.13 23:10:43 Will TERMINAL TYPE 2009.04.13 23:10:43 Will TSPEED 2009.04.13 23:10:43 Wont XDISPLOC 2009.04.13 23:10:43 Dont MUD EXTENSION 2009.04.13 23:10:43 Do SUPPRESS GO AHEAD 2009.04.13 23:10:43 Will LINEMODE 2009.04.13 23:10:43 Will BINARY 2009.04.13 23:10:44 Do ECHO | ||||
Tags | No tags attached. | ||||
Attached Files | 0001-Removed-support-for-obsolete-platforms-in-hosts.patch (254,566 bytes)
From 53e7e56e2777e488e567269575ba1a426ff56571 Mon Sep 17 00:00:00 2001 From: zesstra <zesstra@zesstra.de> Date: Tue, 14 Apr 2009 21:13:54 +0200 Subject: [PATCH 01/12] Removed support for obsolete platforms in hosts/ The code in hosts/ was not maintained for a long time. Probably some parts don't even compile on current releases of the target platform or have runtime issues (see also http://mantis.bearnip.com/view.php?id=624). Anyway, we developers don't have any of the platforms available for development. Signed-off-by: zesstra <zesstra@zesstra.de> --- src/Makefile.in | 138 +++----- src/autoconf/configure.in | 4 - src/config.h.in | 10 - src/hosts/GnuWin32/GnuWin32.h | 35 -- src/hosts/GnuWin32/socket.c | 50 --- src/hosts/GnuWin32/socket.h | 50 --- src/hosts/README | 4 - src/hosts/amiga/README | 15 - src/hosts/amiga/README.Amiga | 151 ------- src/hosts/amiga/README.Amiga.info | Bin 482 -> 0 bytes src/hosts/amiga/StartMUD | 80 ---- src/hosts/amiga/StartMUD.info | Bin 1780 -> 0 bytes src/hosts/amiga/config.h | 547 -------------------------- src/hosts/amiga/ldmud.info | Bin 628 -> 0 bytes src/hosts/amiga/machine.h | 265 ------------- src/hosts/be/Makefile | 775 ------------------------------------- src/hosts/be/be.h | 26 -- src/hosts/be/beyacc | 10 - src/hosts/be/config.h | 540 -------------------------- src/hosts/be/driver.r | 10 - src/hosts/be/driver.rsrc | Bin 3368 -> 0 bytes src/hosts/be/icon-16x16.raw | Bin 256 -> 0 bytes src/hosts/be/icon-32x32.raw | Bin 1024 -> 0 bytes src/hosts/be/machine.h | 305 --------------- src/hosts/be/set-version | 68 ---- src/hosts/be/socketinc.h | 24 -- src/hosts/crypt.c | 618 ----------------------------- src/hosts/defines.txt | 66 ---- src/hosts/unix.h | 42 -- src/hosts/win32/Makefile | 410 -------------------- src/hosts/win32/Readme.rtf | Bin 3660 -> 0 bytes src/hosts/win32/config.h | 548 -------------------------- src/hosts/win32/machine.h | 270 ------------- src/hosts/win32/tubmud.bmp | Bin 101470 -> 0 bytes src/machine.h.in | 12 +- src/port.c | 13 - src/port.h | 16 +- src/settings/default | 10 - 38 files changed, 55 insertions(+), 5057 deletions(-) delete mode 100644 src/hosts/GnuWin32/GnuWin32.h delete mode 100644 src/hosts/GnuWin32/socket.c delete mode 100644 src/hosts/GnuWin32/socket.h delete mode 100644 src/hosts/README delete mode 100644 src/hosts/amiga/README delete mode 100644 src/hosts/amiga/README.Amiga delete mode 100644 src/hosts/amiga/README.Amiga.info delete mode 100644 src/hosts/amiga/StartMUD delete mode 100644 src/hosts/amiga/StartMUD.info delete mode 100644 src/hosts/amiga/config.h delete mode 100644 src/hosts/amiga/ldmud.info delete mode 100644 src/hosts/amiga/machine.h delete mode 100644 src/hosts/be/Makefile delete mode 100644 src/hosts/be/be.h delete mode 100755 src/hosts/be/beyacc delete mode 100644 src/hosts/be/config.h delete mode 100644 src/hosts/be/driver.r delete mode 100644 src/hosts/be/driver.rsrc delete mode 100644 src/hosts/be/icon-16x16.raw delete mode 100644 src/hosts/be/icon-32x32.raw delete mode 100644 src/hosts/be/machine.h delete mode 100755 src/hosts/be/set-version delete mode 100644 src/hosts/be/socketinc.h delete mode 100644 src/hosts/crypt.c delete mode 100644 src/hosts/defines.txt delete mode 100644 src/hosts/unix.h delete mode 100644 src/hosts/win32/Makefile delete mode 100644 src/hosts/win32/Readme.rtf delete mode 100644 src/hosts/win32/config.h delete mode 100644 src/hosts/win32/machine.h delete mode 100644 src/hosts/win32/tubmud.bmp diff --git a/src/Makefile.in b/src/Makefile.in index 38c9faf..2ff8bb0 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -242,17 +242,7 @@ depend: $(SRC) $(GENSRC) echo mkdepend utility not available.; \ fi" -.PHONY dependall: depend depend-generic - -depend-generic: $(SRC) $(GENSRC) - @$(SHELL) -ec "if type mkdepend > /dev/null 2>&1; then \ - echo Updating dependencies in hosts/be/Makefile.; \ - mkdepend $(SKELETON) -I. -Ipcre -Iptmalloc $(EXCEPT) -m -p .c:$$\(OBJ\)/%n.o -fhosts/be/Makefile; \ - mkdepend $(SKELETON) -I. -Ipcre -Iptmalloc $(EXCEPT) $(SELECT) -m -p .c:$$\(OBJ\)/%n.o -fhosts/be/Makefile; \ - else\ - echo mkdepend utility not available.; \ - fi" - +.PHONY dependall: depend #-------------------------------------------------------- # Dependencies, manual and automatic. @@ -260,20 +250,18 @@ depend-generic: $(SRC) $(GENSRC) # --- DO NOT MODIFY THIS LINE -- AUTO-DEPENDS FOLLOW --- access_check.o : xalloc.h filestat.h comm.h access_check.h driver.h \ svalue.h strfuns.h pkg-tls.h simulate.h typedefs.h config.h port.h \ - sent.h bytecode.h hosts/unix.h hosts/be/be.h machine.h + sent.h bytecode.h machine.h actions.o : ../mudlib/sys/driver_hook.h ../mudlib/sys/commands.h xalloc.h \ wiz_list.h svalue.h simulate.h sent.h stdstrings.h object.h mstrings.h \ mapping.h interpret.h efuns.h dumpstat.h comm.h closure.h backend.h \ array.h actions.h my-alloca.h typedefs.h driver.h strfuns.h bytecode.h \ - hash.h pkg-tls.h main.h port.h config.h hosts/unix.h hosts/be/be.h \ - machine.h + hash.h pkg-tls.h main.h port.h config.h machine.h array.o : i-svalue_cmp.h xalloc.h wiz_list.h swap.h svalue.h simulate.h \ stdstrings.h object.h mstrings.h mempools.h mapping.h main.h \ interpret.h closure.h backend.h array.h my-alloca.h typedefs.h driver.h \ - strfuns.h sent.h bytecode.h hash.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h + strfuns.h sent.h bytecode.h hash.h port.h config.h machine.h backend.o : ../mudlib/sys/debug_message.h ../mudlib/sys/driver_hook.h \ i-eval_cost.h xalloc.h wiz_list.h swap.h svalue.h stdstrings.h \ @@ -281,23 +269,23 @@ backend.o : ../mudlib/sys/debug_message.h ../mudlib/sys/driver_hook.h \ main.h lex.h interpret.h heartbeat.h gcollect.h filestat.h exec.h ed.h \ comm.h closure.h call_out.h array.h actions.h backend.h my-alloca.h \ typedefs.h driver.h strfuns.h sent.h bytecode.h hash.h pkg-tls.h port.h \ - config.h hosts/unix.h hosts/be/be.h machine.h + config.h machine.h bitstrings.o : xalloc.h svalue.h simulate.h mstrings.h interpret.h \ bitstrings.h typedefs.h driver.h strfuns.h sent.h bytecode.h hash.h \ - backend.h port.h config.h main.h hosts/unix.h hosts/be/be.h machine.h + backend.h port.h config.h main.h machine.h call_out.o : ../mudlib/sys/debug_info.h i-eval_cost.h xalloc.h wiz_list.h \ swap.h svalue.h strfuns.h stdstrings.h simulate.h object.h mstrings.h \ main.h interpret.h gcollect.h exec.h comm.h closure.h backend.h array.h \ actions.h call_out.h typedefs.h driver.h sent.h bytecode.h hash.h \ - pkg-tls.h port.h config.h hosts/unix.h hosts/be/be.h machine.h + pkg-tls.h port.h config.h machine.h closure.o : i-svalue_cmp.h xalloc.h switch.h swap.h svalue.h structs.h \ stdstrings.h simul_efun.h simulate.h prolang.h object.h mstrings.h \ main.h lex.h interpret.h instrs.h exec.h backend.h array.h closure.h \ my-alloca.h typedefs.h driver.h strfuns.h hash.h ptrtable.h sent.h \ - bytecode.h port.h config.h hosts/unix.h hosts/be/be.h machine.h + bytecode.h port.h config.h machine.h comm.o : util/erq/erq.h ../mudlib/sys/input_to.h \ ../mudlib/sys/driver_hook.h ../mudlib/sys/comm.h i-eval_cost.h xalloc.h \ @@ -306,18 +294,17 @@ comm.o : util/erq/erq.h ../mudlib/sys/input_to.h \ gcollect.h filestat.h exec.h ed.h closure.h array.h actions.h \ access_check.h comm.h ../mudlib/sys/telnet.h my-alloca.h typedefs.h \ driver.h strfuns.h bytecode.h hash.h backend.h config.h port.h \ - hosts/unix.h hosts/be/be.h machine.h + machine.h dumpstat.o : xalloc.h svalue.h structs.h stdstrings.h simulate.h ptrtable.h \ object.h mstrings.h mapping.h instrs.h filestat.h exec.h closure.h \ array.h dumpstat.h typedefs.h driver.h strfuns.h hash.h sent.h \ - bytecode.h port.h config.h hosts/unix.h hosts/be/be.h machine.h + bytecode.h port.h config.h machine.h ed.o : ../mudlib/sys/regexp.h xalloc.h svalue.h stdstrings.h simulate.h \ object.h mstrings.h mregex.h main.h lex.h interpret.h gcollect.h \ filestat.h comm.h actions.h ed.h typedefs.h driver.h strfuns.h sent.h \ - bytecode.h hash.h backend.h pkg-tls.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h + bytecode.h hash.h backend.h pkg-tls.h port.h config.h machine.h efuns.o : ../mudlib/sys/time.h ../mudlib/sys/strings.h \ ../mudlib/sys/regexp.h ../mudlib/sys/objectinfo.h \ @@ -328,13 +315,12 @@ efuns.o : ../mudlib/sys/time.h ../mudlib/sys/strings.h \ heartbeat.h exec.h dumpstat.h comm.h closure.h call_out.h backend.h \ array.h actions.h efuns.h my-rusage.h my-alloca.h typedefs.h driver.h \ hash.h sent.h bytecode.h my-stdint.h pkg-tls.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h + machine.h files.o : ../mudlib/sys/files.h xalloc.h svalue.h stdstrings.h simulate.h \ mstrings.h mempools.h main.h lex.h interpret.h filestat.h comm.h \ array.h files.h my-alloca.h typedefs.h driver.h strfuns.h sent.h \ - bytecode.h hash.h backend.h pkg-tls.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h + bytecode.h hash.h backend.h pkg-tls.h port.h config.h machine.h gcollect.o : ../mudlib/sys/driver_hook.h i-eval_cost.h xalloc.h wiz_list.h \ swap.h structs.h stdstrings.h simul_efun.h simulate.h sent.h random.h \ @@ -342,8 +328,7 @@ gcollect.o : ../mudlib/sys/driver_hook.h i-eval_cost.h xalloc.h wiz_list.h \ mregex.h mempools.h mapping.h main.h lex.h instrs.h interpret.h \ heartbeat.h filestat.h ed.h comm.h closure.h call_out.h backend.h \ array.h actions.h gcollect.h typedefs.h driver.h svalue.h strfuns.h \ - hash.h exec.h bytecode.h pkg-tls.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h + hash.h exec.h bytecode.h pkg-tls.h port.h config.h machine.h hash.o : hash.h @@ -351,7 +336,7 @@ heartbeat.o : ../mudlib/sys/debug_info.h i-eval_cost.h xalloc.h wiz_list.h \ svalue.h strfuns.h simulate.h sent.h object.h mstrings.h interpret.h \ gcollect.h exec.h comm.h backend.h array.h actions.h heartbeat.h \ typedefs.h driver.h bytecode.h hash.h pkg-tls.h main.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h + machine.h interpret.o : ../mudlib/sys/debug_info.h ../mudlib/sys/driver_hook.h \ i-eval_cost.h xalloc.h wiz_list.h switch.h swap.h svalue.h structs.h \ @@ -360,52 +345,45 @@ interpret.o : ../mudlib/sys/debug_info.h ../mudlib/sys/driver_hook.h \ filestat.h exec.h efuns.h ed.h comm.h closure.h call_out.h backend.h \ array.h actions.h interpret.h my-alloca.h typedefs.h driver.h strfuns.h \ hash.h ptrtable.h sent.h bytecode.h pkg-tls.h main.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h + machine.h lex.o : efun_defs.c ../mudlib/sys/driver_hook.h i-eval_cost.h xalloc.h \ wiz_list.h svalue.h strfuns.h stdstrings.h simul_efun.h simulate.h \ prolang.h patchlevel.h object.h mstrings.h mempools.h main.h lang.h \ interpret.h instrs.h hash.h gcollect.h filestat.h exec.h comm.h \ closure.h backend.h array.h lex.h my-alloca.h typedefs.h driver.h \ - ptrtable.h sent.h bytecode.h pkg-tls.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h + ptrtable.h sent.h bytecode.h pkg-tls.h port.h config.h machine.h main.o : ../mudlib/sys/regexp.h i-eval_cost.h pkg-mysql.h xalloc.h \ wiz_list.h swap.h svalue.h stdstrings.h simul_efun.h simulate.h \ random.h pkg-tls.h patchlevel.h otable.h object.h mstrings.h mregex.h \ mempools.h mapping.h lex.h interpret.h gcollect.h filestat.h comm.h \ array.h backend.h main.h my-alloca.h typedefs.h driver.h strfuns.h \ - ptrtable.h exec.h sent.h bytecode.h hash.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h + ptrtable.h exec.h sent.h bytecode.h hash.h port.h config.h machine.h mapping.o : i-svalue_cmp.h xalloc.h wiz_list.h svalue.h structs.h \ simulate.h object.h mstrings.h main.h interpret.h gcollect.h closure.h \ backend.h array.h mapping.h my-alloca.h typedefs.h driver.h strfuns.h \ - hash.h exec.h sent.h bytecode.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h + hash.h exec.h sent.h bytecode.h port.h config.h machine.h -md5.o : strfuns.h md5.h machine.h typedefs.h driver.h port.h config.h \ - hosts/unix.h hosts/be/be.h +md5.o : strfuns.h md5.h machine.h typedefs.h driver.h port.h config.h mempools.o : ../mudlib/sys/debug_info.h xalloc.h svalue.h strfuns.h \ simulate.h gcollect.h mempools.h driver.h typedefs.h sent.h bytecode.h \ - port.h config.h hosts/unix.h hosts/be/be.h machine.h + port.h config.h machine.h mkfunc.o : make_func.c ../mudlib/sys/driver_hook.h hash.h exec.h \ - my-alloca.h driver.h bytecode.h typedefs.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h + my-alloca.h driver.h bytecode.h typedefs.h port.h config.h machine.h mregex.o : ../mudlib/sys/regexp.h ../mudlib/sys/driver_hook.h \ ../mudlib/sys/debug_info.h xalloc.h svalue.h strfuns.h simulate.h \ regexp.h pkg-pcre.h mstrings.h main.h interpret.h hash.h gcollect.h \ comm.h mregex.h driver.h typedefs.h sent.h bytecode.h pcre/pcre.h \ - backend.h pkg-tls.h port.h config.h hosts/unix.h hosts/be/be.h \ - machine.h + backend.h pkg-tls.h port.h config.h machine.h mstrings.o : ../mudlib/sys/debug_info.h xalloc.h svalue.h strfuns.h \ stdstrings.h simulate.h main.h hash.h gcollect.h mstrings.h driver.h \ - typedefs.h sent.h bytecode.h port.h config.h hosts/unix.h hosts/be/be.h \ - machine.h + typedefs.h sent.h bytecode.h port.h config.h machine.h object.o : ../mudlib/sys/inherit_list.h ../mudlib/sys/include_list.h \ ../mudlib/sys/functionlist.h ../mudlib/sys/driver_hook.h xalloc.h \ @@ -414,98 +392,88 @@ object.o : ../mudlib/sys/inherit_list.h ../mudlib/sys/include_list.h \ mstrings.h mempools.h mapping.h main.h lex.h instrs.h interpret.h \ filestat.h comm.h closure.h backend.h array.h actions.h object.h \ my-alloca.h typedefs.h driver.h ../mudlib/sys/lpctypes.h hash.h exec.h \ - bytecode.h pkg-tls.h port.h config.h hosts/unix.h hosts/be/be.h \ - machine.h + bytecode.h pkg-tls.h port.h config.h machine.h otable.o : ../mudlib/sys/debug_info.h xalloc.h svalue.h simulate.h \ strfuns.h object.h mstrings.h hash.h gcollect.h backend.h otable.h \ typedefs.h driver.h sent.h bytecode.h main.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h + machine.h parse.o : xalloc.h wiz_list.h svalue.h stdstrings.h simulate.h object.h \ mstrings.h main.h lex.h interpret.h gcollect.h array.h actions.h \ parse.h typedefs.h driver.h strfuns.h sent.h bytecode.h hash.h \ - backend.h port.h config.h hosts/unix.h hosts/be/be.h machine.h + backend.h port.h config.h machine.h parser.o : lang.c ../mudlib/sys/driver_hook.h i-eval_cost.h xalloc.h \ wiz_list.h switch.h swap.h svalue.h structs.h stdstrings.h simul_efun.h \ simulate.h object.h mstrings.h mapping.h main.h lex.h instrs.h \ interpret.h gcollect.h exec.h closure.h backend.h array.h prolang.h \ my-alloca.h typedefs.h driver.h strfuns.h hash.h ptrtable.h sent.h \ - bytecode.h port.h config.h hosts/unix.h hosts/be/be.h machine.h + bytecode.h port.h config.h machine.h dftables.o : pcre/maketables.c pcre/internal.h pcre/pcre.h pcre/config.h pkg-alists.o : i-svalue_cmp.h xalloc.h svalue.h simulate.h mstrings.h \ main.h interpret.h array.h my-alloca.h pkg-alists.h typedefs.h driver.h \ closure.h strfuns.h sent.h bytecode.h hash.h backend.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h + machine.h pkg-idna.o : ../mudlib/sys/idn.h xalloc.h simulate.h mstrings.h interpret.h \ typedefs.h pkg-idna.h driver.h svalue.h strfuns.h sent.h bytecode.h \ - hash.h backend.h port.h config.h main.h hosts/unix.h hosts/be/be.h \ - machine.h + hash.h backend.h port.h config.h main.h machine.h pkg-mccp.o : ../mudlib/sys/telnet.h xalloc.h svalue.h object.h mstrings.h \ comm.h array.h pkg-mccp.h typedefs.h driver.h strfuns.h sent.h hash.h \ - pkg-tls.h simulate.h port.h config.h bytecode.h hosts/unix.h \ - hosts/be/be.h machine.h + pkg-tls.h simulate.h port.h config.h bytecode.h machine.h pkg-mysql.o : xalloc.h svalue.h stdstrings.h simulate.h mstrings.h main.h \ instrs.h interpret.h array.h pkg-mysql.h my-alloca.h typedefs.h \ driver.h strfuns.h sent.h bytecode.h hash.h exec.h backend.h port.h \ - config.h hosts/unix.h hosts/be/be.h machine.h + config.h machine.h pkg-pcre.o : pcre/study.c pcre/maketables.c pcre/get.c pcre/pcre.c \ simulate.h interpret.h pkg-pcre.h driver.h pcre/internal.h \ pcre/chartables.c svalue.h strfuns.h sent.h bytecode.h typedefs.h \ - backend.h pcre/pcre.h port.h config.h pcre/config.h main.h hosts/unix.h \ - hosts/be/be.h machine.h + backend.h pcre/pcre.h port.h config.h pcre/config.h main.h machine.h pkg-pgsql.o : ../mudlib/sys/pgsql.h xalloc.h stdstrings.h simulate.h \ mstrings.h mapping.h main.h interpret.h instrs.h gcollect.h array.h \ actions.h pkg-pgsql.h my-alloca.h typedefs.h driver.h svalue.h \ strfuns.h sent.h bytecode.h hash.h backend.h exec.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h + machine.h pkg-sqlite.o : xalloc.h stdstrings.h object.h svalue.h simulate.h \ mstrings.h interpret.h array.h my-alloca.h typedefs.h driver.h \ strfuns.h sent.h bytecode.h hash.h backend.h port.h config.h main.h \ - hosts/unix.h hosts/be/be.h machine.h + machine.h pkg-tls.o : ../mudlib/sys/tls.h xalloc.h svalue.h sha1.h object.h \ mstrings.h main.h interpret.h comm.h array.h actions.h pkg-tls.h \ machine.h driver.h strfuns.h typedefs.h my-stdint.h sent.h hash.h \ - bytecode.h backend.h simulate.h port.h config.h hosts/unix.h \ - hosts/be/be.h + bytecode.h backend.h simulate.h port.h config.h -port.o : hosts/crypt.c main.h backend.h my-rusage.h driver.h machine.h \ - typedefs.h port.h config.h hosts/unix.h hosts/be/be.h +port.o : main.h backend.h my-rusage.h driver.h machine.h \ + typedefs.h port.h config.h ptmalloc.o : ptmalloc/malloc.c machine.h config.h ptmalloc/hooks.c \ ptmalloc/arena.c ptmalloc/thread-m.h ptmalloc/malloc.h \ ptmalloc/config.h ptrtable.o : simulate.h mempools.h ptrtable.h driver.h svalue.h strfuns.h \ - sent.h bytecode.h typedefs.h port.h config.h hosts/unix.h hosts/be/be.h \ - machine.h + sent.h bytecode.h typedefs.h port.h config.h machine.h -random.o : random.h driver.h port.h config.h hosts/unix.h hosts/be/be.h \ - machine.h +random.o : random.h driver.h port.h config.h machine.h regexp.o : i-eval_cost.h main.h xalloc.h simulate.h regexp.h driver.h \ interpret.h typedefs.h svalue.h strfuns.h sent.h bytecode.h pkg-pcre.h \ - port.h config.h backend.h pcre/pcre.h hosts/unix.h hosts/be/be.h \ - machine.h + port.h config.h backend.h pcre/pcre.h machine.h -sha1.o : sha1.h my-stdint.h driver.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h +sha1.o : sha1.h my-stdint.h driver.h port.h config.h machine.h simul_efun.o : xalloc.h swap.h svalue.h stdstrings.h simulate.h prolang.h \ ptrtable.h object.h mstrings.h lex.h interpret.h gcollect.h exec.h \ array.h simul_efun.h my-alloca.h typedefs.h driver.h strfuns.h sent.h \ - bytecode.h hash.h backend.h port.h config.h main.h hosts/unix.h \ - hosts/be/be.h machine.h + bytecode.h hash.h backend.h port.h config.h main.h machine.h simulate.o : ../mudlib/sys/rtlimits.h ../mudlib/sys/regexp.h \ ../mudlib/sys/files.h ../mudlib/sys/driver_hook.h \ @@ -515,49 +483,45 @@ simulate.o : ../mudlib/sys/rtlimits.h ../mudlib/sys/regexp.h \ mapping.h main.h lex.h heartbeat.h gcollect.h filestat.h ed.h comm.h \ closure.h call_out.h backend.h array.h actions.h simulate.h my-alloca.h \ typedefs.h driver.h interpret.h hash.h exec.h ptrtable.h bytecode.h \ - port.h config.h hosts/unix.h hosts/be/be.h machine.h + port.h config.h machine.h sprintf.o : xalloc.h swap.h svalue.h structs.h stdstrings.h simul_efun.h \ simulate.h sent.h random.h ptrtable.h object.h mstrings.h mapping.h \ main.h interpret.h comm.h closure.h array.h actions.h sprintf.h \ my-alloca.h typedefs.h driver.h strfuns.h hash.h exec.h bytecode.h \ - backend.h pkg-tls.h port.h config.h hosts/unix.h hosts/be/be.h \ - machine.h + backend.h pkg-tls.h port.h config.h machine.h stdstrings.o : mstrings.h stdstrings.h typedefs.h driver.h hash.h port.h \ - config.h hosts/unix.h hosts/be/be.h machine.h + config.h machine.h strfuns.o : xalloc.h svalue.h stdstrings.h simulate.h object.h mstrings.h \ mapping.h main.h interpret.h comm.h strfuns.h my-alloca.h typedefs.h \ driver.h sent.h bytecode.h hash.h backend.h pkg-tls.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h + machine.h structs.o : ../mudlib/sys/struct_info.h ../mudlib/sys/debug_info.h xalloc.h \ wiz_list.h stdstrings.h simulate.h object.h mstrings.h mapping.h main.h \ interpret.h gcollect.h exec.h array.h structs.h driver.h \ ../mudlib/sys/lpctypes.h svalue.h strfuns.h typedefs.h sent.h \ - bytecode.h hash.h backend.h port.h config.h hosts/unix.h hosts/be/be.h \ - machine.h + bytecode.h hash.h backend.h port.h config.h machine.h swap.o : ../mudlib/sys/debug_info.h xalloc.h wiz_list.h svalue.h structs.h \ strfuns.h stdstrings.h simul_efun.h simulate.h random.h prolang.h \ otable.h object.h mstrings.h mempools.h mapping.h main.h interpret.h \ gcollect.h comm.h closure.h backend.h array.h swap.h typedefs.h \ driver.h hash.h exec.h ptrtable.h sent.h bytecode.h pkg-tls.h port.h \ - config.h hosts/unix.h hosts/be/be.h machine.h + config.h machine.h wiz_list.o : xalloc.h svalue.h stdstrings.h simulate.h object.h mstrings.h \ mapping.h main.h interpret.h gcollect.h backend.h array.h \ ../mudlib/sys/wizlist.h wiz_list.h my-alloca.h typedefs.h driver.h \ - strfuns.h sent.h bytecode.h hash.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h + strfuns.h sent.h bytecode.h hash.h port.h config.h machine.h xalloc.o : xptmalloc.c sysmalloc.c slaballoc.c smalloc.c mstrings.h \ object.h exec.h simulate.h interpret.h gcollect.h backend.h xalloc.h \ driver.h ../mudlib/sys/debug_info.h ptmalloc/malloc.h svalue.h \ stdstrings.h sysmalloc.h array.h slaballoc.h typedefs.h smalloc.h \ - hash.h sent.h bytecode.h strfuns.h main.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h + hash.h sent.h bytecode.h strfuns.h main.h port.h config.h machine.h # --- DO NOT MODIFY THIS LINE -- AUTO-DEPENDS PRECEDE --- # --- DO NOT MODIFY THIS LINE -- SELECTED AUTO-DEPENDS FOLLOW --- diff --git a/src/autoconf/configure.in b/src/autoconf/configure.in index dbc41b2..9f369a7 100644 --- a/src/autoconf/configure.in +++ b/src/autoconf/configure.in @@ -2675,10 +2675,6 @@ AC_DEFINE_UNQUOTED(EXTERN_MALLOC_OVERHEAD,$lp_cv_sys_malloc_overhead, if test -z "${CONFIG_SHELL}"; then CONFIG_SHELL='/bin/sh' fi -if test "${OSTYPE}" = 'win32'; then - EXEEXT='.exe' - AC_DEFINE(HOST_INCLUDE,"hosts/GnuWin32/GnuWin32.h",[define the host-specific include file]) -fi dnl diff --git a/src/config.h.in b/src/config.h.in index e21df4d..0a8b88f 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -325,16 +325,6 @@ */ @cdef_use_process_string@ USE_PROCESS_STRING -/* Define USE_SYSTEM_CRYPT if you want crypt() to be implemented by your - * operating system (assuming it offers this function). This makes your - * programm smaller and may even let you take advantage of improvements - * of your OS, but may also prohibit transporting encrypted date like - * passwords between different systems. - * Undefine USE_SYSTEM_CRYPT if you want to use the driver's portable - * crypt() implementation. - */ -@cdef_use_system_crypt@ USE_SYSTEM_CRYPT - /* Define this if you want MCCP (Mud Control Compression Protocol). */ @cdef_use_mccp@ USE_MCCP diff --git a/src/hosts/GnuWin32/GnuWin32.h b/src/hosts/GnuWin32/GnuWin32.h deleted file mode 100644 index 7f22900..0000000 --- a/src/hosts/GnuWin32/GnuWin32.h +++ /dev/null @@ -1,35 +0,0 @@ -#include <windows.h> - -#define SOCKET_HEADER "hosts/GnuWin32/socket.h" -#define SOCKET_INC "hosts/GnuWin32/socket.c" - -#undef HOST_DEPENDENT_INIT -#define HOST_DEPENDENT_INIT \ - win32osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); \ - GetVersionEx(&win32osi); \ - GetSystemInfo(&win32si); \ - -extern OSVERSIONINFO win32osi; -extern SYSTEM_INFO win32si; - -#define alarm(n) - -#undef ALARM_HANDLER -#define ALARM_HANDLER(name, body) \ -VOID CALLBACK catch_alarm(UINT uID, UINT uMsg, DWORD dwUser, \ - DWORD dw1, DWORD dw2) { \ - WSACancelBlockingCall(); \ - {body} \ -} - -#undef ALARM_HANDLER_FIRST_CALL -#define ALARM_HANDLER_FIRST_CALL(name) { \ - VOID CALLBACK name(UINT uID, UINT uMsg, \ - DWORD dwUser, DWORD dw1, DWORD dw2); \ - \ - if(!timeSetEvent(2000,0,name,NULL,TIME_PERIODIC)) { \ - perror("SetTimer()"); \ - return; /* Abort */ \ - } \ - name(0,0,0,0,0); \ -} diff --git a/src/hosts/GnuWin32/socket.c b/src/hosts/GnuWin32/socket.c deleted file mode 100644 index fb91d8f..0000000 --- a/src/hosts/GnuWin32/socket.c +++ /dev/null @@ -1,50 +0,0 @@ -#include <errno.h> -#include <winsock.h> -#include <windows.h> - -void set_socket_errno() -{ - switch(WSAGetLastError()) - { - case WSAEWOULDBLOCK: errno = EWOULDBLOCK; return; - case WSAEINPROGRESS: errno = EINPROGRESS; return; - case WSAEALREADY: errno = EALREADY; return; - case WSAENOTSOCK: errno = ENOTSOCK; return; - case WSAEDESTADDRREQ: errno = EDESTADDRREQ; return; - case WSAEMSGSIZE: errno = EMSGSIZE; return; - case WSAEPROTOTYPE: errno = EPROTOTYPE; return; - case WSAENOPROTOOPT: errno = ENOPROTOOPT; return; - case WSAEPROTONOSUPPORT: errno = EPROTONOSUPPORT; return; - case WSAESOCKTNOSUPPORT: errno = ESOCKTNOSUPPORT; return; - case WSAEOPNOTSUPP: errno = EOPNOTSUPP; return; - case WSAEPFNOSUPPORT: errno = EPFNOSUPPORT; return; - case WSAEAFNOSUPPORT: errno = EAFNOSUPPORT; return; - case WSAEADDRINUSE: errno = EADDRINUSE; return; - case WSAEADDRNOTAVAIL: errno = EADDRNOTAVAIL; return; - case WSAENETDOWN: errno = ENETDOWN; return; - case WSAENETUNREACH: errno = ENETUNREACH; return; - case WSAENETRESET: errno = ENETRESET; return; - case WSAECONNABORTED: errno = ECONNABORTED; return; - case WSAECONNRESET: errno = ECONNRESET; return; - case WSAENOBUFS: errno = ENOBUFS; return; - case WSAEISCONN: errno = EISCONN; return; - case WSAENOTCONN: errno = ENOTCONN; return; - case WSAESHUTDOWN: errno = ESHUTDOWN; return; - case WSAETOOMANYREFS: errno = ETOOMANYREFS; return; - case WSAETIMEDOUT: errno = ETIMEDOUT; return; - case WSAECONNREFUSED: errno = ECONNREFUSED; return; - case WSAELOOP: errno = ELOOP; return; - case WSAENAMETOOLONG: errno = ENAMETOOLONG; return; - case WSAEHOSTDOWN: errno = EHOSTDOWN; return; - case WSAEHOSTUNREACH: errno = EHOSTUNREACH; return; - case WSAENOTEMPTY: errno = ENOTEMPTY; return; - case WSAEPROCLIM: errno = EPROCLIM; return; - case WSAEUSERS: errno = EUSERS; return; - case WSAEDQUOT: errno = EDQUOT; return; - case WSAESTALE: errno = ESTALE; return; - case WSAEREMOTE: errno = EREMOTE; return; - } -} - -OSVERSIONINFO win32osi; -SYSTEM_INFO win32si; diff --git a/src/hosts/GnuWin32/socket.h b/src/hosts/GnuWin32/socket.h deleted file mode 100644 index e2d5b0b..0000000 --- a/src/hosts/GnuWin32/socket.h +++ /dev/null @@ -1,50 +0,0 @@ -#include <winsock.h> - -#include <winbase.h> - -extern void set_socket_errno(); - -#define SOCKET_T int -#define socket_number(s) (s) \ - socket_select(a,b,c,d,e) ({ \ - int tmp=select(a,b,c,d,e); \ - if (tmp < 0) \ - set_socket_errno(); \ - tmp; \ -}) - -#define socket_read(a,b,c) ({ \ - int tmp = recv(a,b,c,0); \ - if (tmp < 0) \ - set_socket_errno(); \ - tmp; \ -}) - -#define socket_write(a,b,c) ({ \ - int tmp = send(a,b,c,0) \ - if (tmp < 0) \ - set_socket_errno(); \ - tmp; \ -}) - -#define socket_ioctl(a,b,c) \ - int tmp = ioctlsocket(a,b,c); \ - if (tmp < 0) \ - set_socket_errno(); \ - tmp; \ -}) - -#define socket_close(s) { \ - int tmp = 0; \ - struct linger ling = { 1, 5 }; \ - socket_ioctl(s, FIONBIO, &tmp); \ - setsockopt (s,SOL_SOCKET,SO_LINGER,&ling,sizeof(struct linger));\ - closesocket(s); \ -} - -#define SIGURG NSIG+1 /* urgent condition on IO channel */ - -#define shutdown(s, i) 0 - -extern OSVERSIONINFO win32osi; -extern SYSTEM_INFO win32si; diff --git a/src/hosts/README b/src/hosts/README deleted file mode 100644 index f34b4c0..0000000 --- a/src/hosts/README +++ /dev/null @@ -1,4 +0,0 @@ -This directory holds the host dependent parts and emulations of the driver. - -Don't assume just because a system is listed here it means that the driver -still runs on that system. diff --git a/src/hosts/amiga/README b/src/hosts/amiga/README deleted file mode 100644 index ccfd26e..0000000 --- a/src/hosts/amiga/README +++ /dev/null @@ -1,15 +0,0 @@ - hosts/amiga/README - -This directory contains all specials needed for LDMud to compile on Amiga. -For detailed information, see README.Amiga. - -You'll find here: - - README : this file. - README.Amiga : A general description of the port. - config.h : a 'standard' config.h - machine.h : a 'standard' machine.h to compile the driver. - StartMUD : a script to (re)start the mud. - -All machine.h and config.h are the Amiga-Replacements for the -corresponding Unix files in the top directory. diff --git a/src/hosts/amiga/README.Amiga b/src/hosts/amiga/README.Amiga deleted file mode 100644 index f05b64c..0000000 --- a/src/hosts/amiga/README.Amiga +++ /dev/null @@ -1,151 +0,0 @@ -Short: LDMud Driver (Source) -Author: Lars Pensj�, J�rn Rennecke, Lars D�ning, ported by Mariko@Wunderland -Uploader: "Mariko@Wunderland" <mud@wl.mud.de> -Version: 3.3 -Type: game/role -Requires: ixemul.library (V48.0+), ixnet.library (V48.0+), TCP/IP stack, OS2.0+ -Long: - -The Amiga version of LDMud requires the gcc/ixemul package for compilation, -and the above mentioned libraries to run. Older compilers are no longer -supported. - -The basic compilation procedure is like for Unix. However, the configuration -script fails sometimes - for this case you can use the files -hosts/amiga/config.h and .../machine.h in order to compile the driver. - -Alternatively, you can get a precompiled driver from AmiNet. - ------------------------------------------------------------------------------ -Short: LDMud Driver (Binary) -Author: Lars Pensj�, J�rn Rennecke, Lars D�ning, ported by Mariko@Wunderland -Uploader: "Mariko@Wunderland" <mud@wl.mud.de> -Version: 3.3 -Type: game/role -Requires: ixemul.library (V48.0+), ixnet.library (V48.0+), TCP/IP stack, OS2.0+ -Long: - -So what's this? Well, since you're reading this, i guess you already know what -a MUD is. If not, it's the acronym for Multi User Dungeon and simply means a -role playing game for many users at the same time who can interact with each -other. Obviously, this is realised over a TCP/IP link and ldmuds (before Lars -D�ning took over development, they were called lpmud (the original author's -name is Lars Pensj�)) are purely text-based. - -So what does this driver do? Well, ldmuds/lpmuds are written in a special -language called LPC (Lars Pensj� C) and the driver does all the necessary -things like pre-compiling your sources, running and interpreting them and -providing you with basic functions for your coding pleasure (there's a vast -range of functions the driver supplies). It's quite similar to a java -environment, with the difference that the compiler and interpreter are combined -in one single program. - -So what does this archive contain? It contains the driver binaries, the -original programming docs, some little utility packages, a test mudlib and last -but not least a start script for easy launching of the driver. The basic code -from which your mud is made up is called mudlib, but this archive does not -contain a real mudlib. You either have to create one yourself (hehe ;) or you -grab one from your favourite mud (nearly every mud supplies a cut down version -of its mudlib in a publicly open ftp directory). - -For further information see section below the German installation instructions. -------------------------------------------------------------------------------- - - - How to install the ldmud driver version: - ======================================== - -0. Make sure you have ixemul.library and ixnet.library installed, and if not, - get them from http://us.aminet.net/aminet/ or http://www.ninemoons.com/GG/ - - Make sure you have a TCP/IP stack that's compatible with ixnet.library - installed (such as AmiTCP, Genesis or Miami). - -1. Extract the archive if you haven't already done it: - lha -a x ldmud-328-BIN-AMIGA.lha YourVol:YourDir/YourSubDir/ - - Alternatively, if it's already extracted but not yet at the place you want - it to be, copy or move the whole ldmud/ directory with all its subdirs to - your desired location. - -2. Grab a mudlib and place it into ldmud/lib/ - - - How to run the ldmud driver version: - ==================================== - -1. Simply start the StartMUD script by double clicking its icon on the - Workbench or executing it from CLI/SHELL. - -2. Connect to the driver on port 4444 via a telnet client: - telnet localhost 4444 - -3. Have fun! ;-) - - -------------------------------------------------------------------------------- - - - Installieren des ldmud Drivers Version: - ======================================= - -0. Stellen Sie sicher, da� Sie die ixemul.library und ixnet.library installiert - haben, und falls nicht, k�nnen Sie sie von http://us.aminet.net/aminet/ oder - http://www.ninemoons.com/GG/ bekommen. - - Stellen Sie sicher, da� Sie einen TCP/IP-Stack der kompatibel mit der - ixnet.library ist installiert haben (wie z.B. AmiTCP, Genesis oder Miami). - -1. Entpacken Sie das Archiv, falls Sie das noch nicht getan haben: - lha -a x ldmud-328-BIN-AMIGA.lha IhreVol:IhreDir/IhreSubDir/ - - Alternativ, falls es schon entpackt vorliegt, jedoch nicht dort, wo Sie es - gern h�tten, kopieren oder verschieben Sie das ganze ldmud/ Verzeichnis - mitsamt seiner Unterverzeichnisse an die gew�nschte Stelle. - -2. Schnappen Sie sich eine mudlib und legen Sie sie in ldmud/lib/ ab. - - - Starten des ldmud Drivers Version: - ================================== - -1. Starten Sie einfach das StartMUD Skript indem Sie es auf der Workbench - doppelklicken oder es im CLI oder in der SHELL ausf�hren. - -2. Connecten Sie zum Driver auf Port 4444 mit einem Telnet Client: - telnet localhost 4444 - -3. Viel Spa�! ;-) - - -------------------------------------------------------------------------------- - - -This is version 3.2.8 of the ldmud driver. - -It has been compiled with egcs 2.91.66 on an A600/030/30/882/30. - -It has been configured for native mode with strict euids. For all configuration -details see config.h (feel free to contact me if some of the options seem -inappropriate). - -It has been compiled WITHOUT erq support, since the erq code uses fork() which -is inavailable on AmigaOS (if you really need erq, feel free to ask me to -rewrite the erq code, but if i'm actually going to do it heavily depends on how -many people request it). See machine.h for further platform and compiler -dependant implementational details. - -I wasn't able to compile a 060 version with FPU instructions. The compiler -exited with an illegal instruction while trying to compile a certain file. - - -------------------------------------------------------------------------------- - - -Contact me at the following email address, if you dare ;-) - "Mariko@Wunderland" <mud@wl.mud.de> -(the part in double quotes is *required*) - -Or directly visit Wunderland (it's a German MUD). #8-D - -But remember, i'm only responsible for the port, not for the ldmud code itself. diff --git a/src/hosts/amiga/README.Amiga.info b/src/hosts/amiga/README.Amiga.info deleted file mode 100644 index b0b85663871e3b0af1953e4ed0f5b1cc0b4cbf4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 482 zcmZ9Iu}T9$5QhJ8<3(^y0)nIn$qPu-LJ2l!V<`s12<dDr4(v>A?ge}St9t@#JM#!O zsXg!oQd$JonVp452KK)F=bzab?xzES#ygI2fg|jSCK|nsVs`sOjf{q$6%Ai2vG(Ph zZAv<J)mL^v{mN~uM!MQ85mzaZdax(Dmg50h8Qq7m*)z6U#$MByhjPA>`avjTpJZRO zKStyrthe;Sr^y~R*~3=zprElv#4oU9iTgw@@ht}P1HNQK=CN>Lq}u3CjairGL45Cx z-OQK=LR<S_T1Zl-?`plwtKlLglXO1DIdjwpiB9*D`Tyc@GM!xVtavJB#pCnI&F$T_ Iy82HEe`FJ6fB*mh diff --git a/src/hosts/amiga/StartMUD b/src/hosts/amiga/StartMUD deleted file mode 100644 index 3c86742..0000000 --- a/src/hosts/amiga/StartMUD +++ /dev/null @@ -1,80 +0,0 @@ -.key OPT/F - -;************************************* -;* * -;* StartMUD - ldmud startup script * -;* (C)2001 Mariko@Wunderland * -;* * -;* change whatever you like :) * -;* * -;************************************* - -FailAt 21 - -Version >NIL: bsdsocket.library -IF FAIL - Echo Please start your TCP/IP stack first! - Quit 20 -ENDIF - -Assign >NIL: mud: EXISTS -IF WARN - Assign mud: "" - Set �ldmud�mud�remove 1 -ENDIF - -Assign >NIL: tmp: EXISTS -IF WARN - Assign tmp: mud:tmp - Set �ldmud�tmp�remove 1 -ENDIF -Delete >NIL: tmp:_ldmud.swap#? QUIET FORCE - -CPU >NIL: CHECK 68040 -IF NOT WARN - Set �ldmud�cpu 040 - Skip GOON -ENDIF -CPU >NIL: CHECK 68030 -IF NOT WARN - CPU >NIL: CHECK 68881 - IF NOT WARN - Set �ldmud�cpu 030881 - Skip GOON - ENDIF -ENDIF -CPU >NIL: CHECK 68020 -IF NOT WARN - Set �ldmud�cpu 020 - Skip GOON -ENDIF -Set �ldmud�cpu 000 -Lab GOON - -IF EXISTS mud:lib/secure/master.c - Set �ldmud�opt -m /mud/lib -M /secure/master -ELSE - IF EXISTS mud:lib/test_master.c - Set �ldmud�opt -m /mud/lib -M /test_master - ELSE - Set �ldmud�opt "" - ENDIF -ENDIF - -Stack 262144 -mud:bin/driver.$�ldmud�cpu $�ldmud�opt <OPT> -Stack 4096 - -Unset �ldmud�opt -Unset �ldmud�cpu - -Delete >NIL: tmp:_ldmud.swap#? QUIET FORCE -IF $�ldmud�tmp�remove EQ 1 - Assign tmp: - Unset �ldmud�tmp�remove -ENDIF - -IF $�ldmud�mud�remove EQ 1 - Assign mud: - Unset �ldmud�mud�remove -ENDIF diff --git a/src/hosts/amiga/StartMUD.info b/src/hosts/amiga/StartMUD.info deleted file mode 100644 index 46e66816825966da1eff697cdfc7ada3fcf1b95b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1780 zcmbV~ZEV}d8ONU!DUz0Ci*g;0bFz?}z2*fmOeJmL28&5iv1+?XETm2oWJMy)j+gE& zcIPZvU4)b^TlwH3Dv+WzW^^**bZxP`45*uIFffV1vH~*-uNdYJeUs647SN#~w$@P` z@wjtRY`{K_#NGeyf6w#W;lb|{9uTa3S6~}R<fq9Vq2}W!?z{gxA(}xg8(&8)-;~Hv zJsI?WL-+^FwJIJ!Kg?49IpTnaAlMLeiP{fFb$c8F?F&#-<nL>6NQ0W8JlO*T3N&Ax zCtBp0nt?jTKM>ytiJm$rWC2prQ5xhgJfJ^?veACZ9L=(k_19|>)LVhj<lCH=pW(f~ z6ciL9_fzJwyX=-+)-3`1NfFrhiC!f7cnO&EMevFx@Tf(giE^8Yz@ILG^y?zDFP31$ zEF$)7$-}%|q!BK1%wLPV*R&=7QCqA2!Uo?{HmvWrVMo@6;p;`9W>cxV*Qw8xORRHG z+~kCf^A*Y^kKm%aI(tw4^e|bHMgVL-)VY68_o3a<?)|%zmhhuW%g#rLDmz<#-1n1H zea(H(KJ)YA&o-YtH8gN)s3mf+r+Y1vJrwEe+5PC+5<#r{z&-%)Bb}s1ED~)eCL@Yu zZtdI`c^trFz(XE{ydE9Gm@PkFz@h@_V}-k{t;IyeL#MZ#jjk%-jFwfCuJR@E%U>D= zBpAT(pqf;b?_|ND>7)aaHpJSHl=qd@oH?Q9X|Bd}%tX`H*!1OO;&6RB2_7n^YD|^y zrOn2ls}qNB5sM^!3MqN-)g||8S>DFQc(WADqY?d5m-tWXmHP0spbZ%$W?J5R+z8Oy zF!w#3{}%F3@s3&7wB^FprLoH?e*>|CpPSSQXxY~e+3sS6@26QUx_aAoOsQ#WPx!J? zU=rGp*S+HL-&_GD`vw+QU7e$HvU7UDFuB@wTh|=RN97uWpQp@abUSDxU7zg2!gCf0 z6B5hlUG`sjssi!s!wr8J-#{)s5#w*v45&vzEE?$(O9#dkv*d3Gjl<8(@*hb7)q2=` zy_dA&w<*qITg8aOmfQJIn$`4tI!R5jbLuq+mXH<CNxRxCPWfHIIRi!x#04YGPe=Z; z!Y9Yx4N$ALVj+jMBfdV`NYw~WgN24IK~r-sC+}4*+R{b8X}i&i#5-%{o(wel)RBO4 zBY4KhF(mFi4DqgHx>1N5Sy$Vjn8zimEd5>3AZ--tM?YZa<TS-G2Vnm%CREeq=0;hP z+b1w6Faxjl1>f<^2)pycH@6rpK9;8g?`Rd+pbVRLGONcV9K6vMby{+OT@3g%4&j4% z5B@g(5TA2hVTU`vV}24Q`=Nga%+I@%lWu?i<m8+4B=Sx8n!^`i-F*)CLF@m^A<k5a z5y8+nUY08$bUb-BSdsozWrZ?jNO@|-YXN#J{<ob<vtKVxNT8)NB`C-}v*+)oF8hxV zi{rBulW*Gcaz$NX=%o|7lIA+jLZEit6NlYb>K10Na2CC(tV-T0UvEn}A)mDM5BO9S zcht`OV~x;RH_-e7cce%xgCKFuLyv8DGdQ1}Y9_TaU%5;7Alq?pTW_yt;4Mjy1{YHd zx<{UR&<Hvy^q56A$&T@W#wW0NPqln>6QQwS-WlN^(D)-P40}kJ@clcf+w7O{HH|Kz zQI-c{{9N#inz&EnGw8@IB~|5rIy5c~7pl5Q0YYQ;H@)O3v(tpeIWY-pNwqd-CnR03 zPd9QKZ5=u1z|fj%$7E0KLsOeL>rQ3`5GG~>hib<*cXU5C)#(37AZ~IZx{9t%eP_F_ zy!r#qvYBu|;%~`>@JLs3OvbHB>>DEppD$~TtKtHceoctgxwMcxBZIpq5I$$TQGwir zn_Nt}B+B?)YcKzvNeG`;OvJe(&BAwiGb)USt2e{+I>A6V^c<s*+=XyJZ-}Gz4l(PE zherz>a{&h()#MtosWP<ovZPgCwM8o8!1I~aUuk%eK-o>OY{nZfcy2G(;aQw;7uWk2 hXZ$mRFxUodewdkA92{J1Ya1LKnfdtl?Id9Y{tcmpcz*x@ diff --git a/src/hosts/amiga/config.h b/src/hosts/amiga/config.h deleted file mode 100644 index 7c7881f..0000000 --- a/src/hosts/amiga/config.h +++ /dev/null @@ -1,547 +0,0 @@ -/* DO NOT EDIT! - * - * This file is created automatically by configure from the template - * in config.h.in. - */ - -#ifndef CONFIG_H__ -#define CONFIG_H__ 1 - -/* Should code for the external request demon be included? - */ -#undef ERQ_DEMON - -/* Maximum sizes for an erq send or reply. - */ -#define ERQ_MAX_REPLY 1024 -#define ERQ_MAX_SEND 1024 - -/* #define ACCESS_CONTROL if you want the driver to do any access control. - * TODO: Make this a runtime option. - */ -#undef ACCESS_CONTROL - -/* file for access permissions data */ -/* TODO: Make this a runtime option */ -#define ACCESS_FILE "ACCESS.ALLOW" - -/* logfile to show valid and rejected connections - * simple not define this for NO logs - * TODO: Make this a runtime option. - */ -#undef ACCESS_LOG /* "access.allow.log" */ - -/* - * Max size of a file allowed to be read by 'read_file()'. - */ -#define READ_FILE_MAX_SIZE 65536 - -/* If an object is left alone for a certain time, then the - * function clean_up will be called. This function can do anything, - * like destructing the object. If the function isn't defined by the - * object, then nothing will happen. - * - * This time should be substantially longer than the swapping time. - */ -#define TIME_TO_CLEAN_UP 3600 - -/* - * How long time until an unused object is swapped out. - * Machine with too many players and too little memory: 900 (15 minutes) - * Machine with few players and lot of memory: 10000 - * Machine with infinite memory: 0 (never swap). - */ -#define TIME_TO_SWAP 300 -#define TIME_TO_SWAP_VARIABLES 900 - -/* - * How many seconds until an object is reset again. - * Set this value high if big system, otherwise low. - * No castles: 1800 (30 minutes) - * >100 castles:10000 (almost 3 hours). - */ -#define TIME_TO_RESET 1800 - -/* - * Define the maximum stack size of the stack machine. This stack will also - * contain all local variables and arguments. - */ -#define EVALUATOR_STACK_SIZE 1024 - -/* - * Define the maximum call depth for functions. - * MAX_USER_TRACE is used for for normal program execution, the full - * MAX_TRACE is only available in error handling. - */ -#define MAX_USER_TRACE 64 -#define MAX_TRACE 72 - -/* - * Define the size of the compiler stack. This defines how complex - * expressions the compiler can parse. The value should be big enough. - */ -#define COMPILER_STACK_SIZE 256 - -/* - * Maximum number of bits in a bit field. They are stored in printable - * strings, 6 bits per byte. - * The limit is more based on considerations of speed than memory - * consumption. - */ -#define MAX_BITS 6144 - -/* - * Define what port number the game is to use. - */ -#define PORTNO 4444 - -/* Maximum numbers of ports the GD accepts connections to. - */ -#define MAXNUMPORTS 16 - -/* - * Max number of local variables in a function. - */ -#define MAX_LOCAL 32 - -/* Maximum number of evaluated nodes/loop. - * If this is exceeded, the current function is halted. - * ls() can take about 30000 for large directories. - */ -#define MAX_COST 1048576 - -/* Define ALLOW_FILENAME_SPACES if the driver should accept space characters - * in filenames. If it is not defined, a hardcoded test for space characters - * is activated. - */ -#undef ALLOW_FILENAME_SPACES - - -/* Define SHARE_VARIABLES if a clone's variables are to be assigned - * from the current blueprint's variables. Undefine it if clones - * should be initialized by __INIT(). - */ -#undef SHARE_VARIABLES - -/* CATCH_RESERVED_COST is added to the eval cost for the time executing code - * guarded by a catch() statement, so that an eval_cost-too-big error can - * still be caught and handled. - * - * To catch an eval_cost too big error in an object that called recursive - * master functions, CATCH_RESERVED_COST should be greater than - * MASTER_RESERVED_COST * 2. - * TODO: Check that at runtime. - */ -#define CATCH_RESERVED_COST 4096 - -/* MASTER_RESERVED_COST is the total reserve available for master applies. - * It is halved for every recursion into another master apply. - */ -#define MASTER_RESERVED_COST 1024 /* must be power of 2 */ -/* TODO: Check that at runtime */ - -/* Where to save the WIZLIST information. - * If not defined, and neither given on the commandline, the driver will - * not create the WIZLIST file. - */ -#define WIZLIST_FILE "WIZLIST" - -/* - * Where to swap out objects. This file is not used if TIME_TO_SWAP is 0. - * If the mudlib is mounted via nfs but your /tmp isn't, and isn't purged - * periodically either, it's a good idea to place the swap file there. - * The hostname will be appended to the filename defined here. - */ -#define SWAP_FILE "/tmp/_ldmud.swap" - -/* Where to save the WIZLIST information. - * If not defined, and neither given on the commandline, the driver will - * not read the WIZLIST file. - */ -#define WIZLIST_FILE "WIZLIST" - -/* This is the maximum array size allowed for one single array. - * If 0, any size is allowed. - */ -#define MAX_ARRAY_SIZE 4096 - -/* This is the maximum size (number keys and values) allowed for one - * single mapping. - * If 0, any size is allowed. - */ -#define MAX_MAPPING_SIZE 15000 - -/* This is the maximum number of callouts allowed at one time. - * If 0, any number is allowed. - */ -#define MAX_CALLOUTS 0 - -/* - * If this is defined, expensive operations like string additions - * receive additional evalcosts depending on the amount of data handled. - */ - -#undef DYNAMIC_COSTS - -/* - * Maximum number of players in the game. - */ -#define MAX_PLAYERS 4 - -/* - * When uploading files, we want fast response; however, normal players - * shouldn't be able to hog the system in this way. Define ALLOWED_ED_CMDS - * to be the ratio of the no of ed cmds executed per player cmd, and - * MAX_CMDS_PER_BEAT to be the max no of buffered player commands the - * system will accept in each heartbeat interval. - */ - -#define ALLOWED_ED_CMDS 16 -/* TODO: ALLOWED_ED_CMDS: make this a runtime option */ - -#define MAX_CMDS_PER_BEAT 4 /* TODO: not implemented yet :-( */ - -/* - * Reserve an extra memory area from malloc(), to free when we run out - * of memory to get some warning and start Armageddon. - * If this value is 0, no area will be reserved. - */ -#define RESERVED_USER_SIZE 65536 -#define RESERVED_MASTER_SIZE 4096 -#define RESERVED_SYSTEM_SIZE 16384 - -/* Define the size of the shared string hash table. This number needn't - * be prime, probably between 1000 and 30000; if you set it to about 1/5 - * of the number of distinct strings you have, you will get a hit ratio - * (number of comparisons to find a string) very close to 1, as found strings - * are automatically moved to the head of a hash chain. You will never - * need more, and you will still get good results with a smaller table. - * If the size is a power of two, hashing will be faster. - */ - -#define HTABLE_SIZE 16384 - -/* Define the size of the table of defines, reserved words, identifiers - * and efun names. Should be either several times smaller than HTABLE_SIZE - * or identical with it. - */ -#define ITABLE_SIZE 256 - -/* Object hash table size. - * Define this like you did with the strings; probably set to about 1/4 of - * the number of objects in a game, as the distribution of accesses to - * objects is somewhat more uniform than that of strings. - */ - -#define OTABLE_SIZE 1024 - -/* Maximum size of an expanded preprocessor definition. - */ - -#define DEFMAX 16384 - -/* the number of apply_low cache entries will be 2^APPLY_CACHE_BITS. - */ -#define APPLY_CACHE_BITS 12 - -/* The parameters of the regular expression/result cache. - * The expression cache uses a hashtable of RXCACHE_TABLE entries. - * Undefine RXCACHE_TABLE to disable the all regexp caching. - */ - -#define RXCACHE_TABLE 8192 /* Length of the expression hash table */ - -/* Define COMPAT_MODE if you are using the 2.4.5 mudlib or one of its - * derivatives. - */ -#undef COMPAT_MODE - -/* Define STRICT_EUIDS if the driver is to enforce the use of euids, - * ie. load_object() and clone_object() require the current object to - * have a non-zero euid. - */ -#define STRICT_EUIDS - -/* Define USE_PARSE_COMMAND if you want the efun parse_command(). - */ -#define USE_PARSE_COMMAND - -/* Define USE_SET_LIGHT if you want the efun set_light() and the - * simple 2.4.5 light system. - */ -#define USE_SET_LIGHT - -/* Define USE_SET_IS_WIZARD if you want the efun set_is_wizard(). - */ -#define USE_SET_IS_WIZARD - -/* Define USE_PROCESS_STRING if you want the efun process_string(). - */ -#define USE_PROCESS_STRING - -/* Define INITIALIZATION_BY___INIT if you want all initializations of variables - * to be suspended till the object is created ( as supposed to initialization - * at compile time; the latter is more memory efficient for loading and faster - * at cloning, while the former allows to use efuns, e.g. shutdown(). - */ -#define INITIALIZATION_BY___INIT - -/* Define USE_SYSTEM_CRYPT if you want crypt() to be implemented by your - * operating system (assuming it offers this function). This makes your - * programm smaller and may even let you take advantage of improvements - * of your OS, but may also prohibit transporting encrypted date like - * passwords between different systems. - * Undefine USE_SYSTEM_CRYPT if you want to use the driver's portable - * crypt() implementation. - */ -#define USE_SYSTEM_CRYPT - -/* The name of the master object. - */ -#define MASTER_NAME "secure/master" - -/* The input escape character. - */ -#define INPUT_ESCAPE "!" - -/* - * Define MAX_BYTE_TRANSFER to the number of bytes you allow to be read - * and written with read_bytes and write_bytes - */ - -#define MAX_BYTE_TRANSFER 65536 - -/* Define this to the port on which the driver can receive UDP message. - * If set to -1, the port will not be opened unless the mud is given a valid - * port number on startup with the -u commandline option. - */ -#define UDP_PORT -1 - -/* Define this if you want IPv6 support (assuming that your host - * actually offers this. - */ -#undef USE_IPV6 - -/* Maximum size of a socket send buffer. - */ -#define SET_BUFFER_SIZE_MAX 32767 - -/* Define this if you want alist support. - */ - -#define USE_ALISTS - -/* Define this if you want to allow call_other()s on arrays of objects. - */ -#define USE_ARRAY_CALLS - -/* Define this if you want PCRE instead of traditional regexps. - */ - -#define USE_PCRE - -/* Define this if you want to use builtin PCRE (ignored when PCRE - * is disabled as a whole). - */ -#undef USE_BUILTIN_PCRE - -/* Define this if you want MCCP (Mud Control Compression Protocol). - */ -#define USE_MCCP - -/* Define this if you want TLS (Transport Layer Security) over Telnet. - */ -#undef USE_TLS - -/* Define this if you want mySQL support (assuming that your host - * actually offers this. - */ -#undef USE_MYSQL - -/* Define this if you want the obsolete and deprecated efuns. - */ -#define USE_DEPRECATED - -/* Runtime statistics: - * COMM_STAT: count number and size of outgoing packets. - * APPLY_CACHE_STAT: count number of hits and misses in the apply cache. - */ -#undef COMM_STAT -#undef APPLY_CACHE_STAT - -/* Which memory manager to use. Possible defines are - * MALLOC_smalloc: Satoria's malloc. Fastest, uses the least memory, - * supports garbage collection. - * MALLOC_sysmalloc: the normal system malloc() - * MALLOC_ptmalloc: ptmalloc from www.malloc.de - threadsafe. - */ - -#define MALLOC_smalloc - -/* If MIN_MALLOCED is defined, - * the gamedriver will reserve this amount of memory on startup for - * large blocks, thus reducing the large block fragmentation. The value - * therefore should be a significantly large multiple of the large - * chunk size. - */ -#define MIN_MALLOCED 0x100000 - -/* These two values give the upper limits for - * large and small block allocation (useful for systems with no - * functioning process limit). - */ -#define MAX_MALLOCED 0x1000000 - -/* Define this to let the memory allocator request memory from the system - * directly using sbrk() (assuming the system supports it). - * If not defined, the memory allocator will use malloc(). - * Supported by: MALLOC_smalloc - */ -#define MALLOC_SBRK - -/* Define this to annotate all allocations with a magic word to find - * simple misuses of memory (like multiple frees). - * Supported by: MALLOC_smalloc - */ -#define MALLOC_CHECK - -/* Define this to annotate all allocations with file:line of the driver - * source responsible for it. - * Supported by: MALLOC_smalloc - */ -#undef MALLOC_TRACE - -/* Define this to annotate all allocations with file:line of the lpc program - * responsible for it. - * Supported by: MALLOC_smalloc - */ -#undef MALLOC_LPC_TRACE - -/* Define this to log all calls to esbrk() (the system memory allocator). - * Works best if MALLOC_TRACE, or also MALLOC_LPC_TRACE, are defined. - * Supported by: MALLOC_smalloc - */ -#undef MALLOC_SBRK_TRACE - -/* Trace the most recently executed bytecode instructions? - */ -#define TRACE_CODE - -/* If using TRACE_CODE , how many instructions should be kept? */ -#define TOTAL_TRACE_LENGTH 1024 - -/* If you want to use threads to write the data to the sockets - * define USE_PTHREADS. To limit the memory usage of each thread - * define PTHREAD_WRITE_MAX_SIZE to a value greater than zero. - * The implementation will discard the oldest not yet written - * data blocks to keep memoty usage under the limit. - */ -#undef USE_PTHREADS -#define PTHREAD_WRITE_MAX_SIZE 100000 - -/*----------------------------------------------------------------*/ -/* The following macros activate various debugging and profiling - * code segments. - */ - -/* Enable basic run time sanity checks. This will use more time - * and space, but nevertheless you are strongly encouraged to keep - * it defined. - * The check for __DRIVER_SOURCE__ is necessary as config.h is - * also included by the erqs. - */ -#define DEBUG - -/* The DEBUG level for the ERQ daemon: 0 means 'no debug', 1 means - * 'standard debug', 2 means 'verbose debug'. - */ -#define ERQ_DEBUG 0 - -/* Enable debug output from the LPC compiler. - */ -/* #define YYDEBUG 1 */ - -/* Disable inlining. - */ -/* #define NO_INLINES */ - -/* Enable the shared string checking (enables commandline option - * --check-strings). - */ -#define CHECK_STRINGS - -/* Shared strings are never really freed. - */ -/* #define KEEP_STRINGS */ - -/* Activate debug prints in the telnet machine. - */ -/* #define DEBUG_TELNET */ - -/* Activate allocation debug prints in the smalloc module. - */ -/* #define DEBUG_SMALLOC_ALLOCS */ - -/* Trace changes to the tot_alloc_object and tot_alloc_object_size - * statistics, in order to find the status bugs (enables commandline - * option --check-object-stat). Will produce a decent amount of - * output on stderr. - */ -#define CHECK_OBJECT_STAT - -/* Activate total mapping size consistency check code. It has a small - * impact on the execution speed. This define was used to find - * the inaccuracy in the mapping statistic. - */ -/* #define CHECK_MAPPING_TOTAL */ - -/* Activate object refcount check code. It will produce a decent - * amount of log output. It will also fatal() the driver as soon - * as it detects an inconsistency in the list of destructed objects. - */ -/* #define CHECK_OBJECT_REF */ - -/* Activate object referencing checking code during the GC. It will - * print error messages to gcout when an object or program is - * referenced as something else. No penalty for using. - * Requires MALLOC_TRACE to work. Incompatible with DUMP_GC_REFS. - */ -#ifdef MALLOC_TRACE -# define CHECK_OBJECT_GC_REF -#endif - -/* Enable the automatic data cleanup from the backend. - * TODO: Remove this macro once it is proven stable. - */ -#define NEW_CLEANUP - -/* Sometimes the GC stumbles over invalid references to memory - * blocks (namely 'Program referenced as something else'). Define - * this macro to get a detailed dump of all found references - * (Warning: LOTS of output!). Incompatible with CHECK_OBJECT_GC_REF. - */ -/* #define DUMP_GC_REFS */ - -/* Enable usage statistics of VM instructions. - * For profiling of the VM instructions themselves, see the Profiling - * Options in the Makefile. - */ -/* #define OPCPROF */ - -#ifdef OPCPROF -/* With OPCPROF, the dump of the statistics include the names - * of the instructions. - */ -/* #define VERBOSE_OPCPROF */ -#endif - -/* Define this if you want structs supported. - */ -#define USE_STRUCTS - -/* Define this if you want the new inline closure syntax supported. - * (f-020528) - */ -#undef USE_NEW_INLINES - -#endif /* CONFIG_H__ */ diff --git a/src/hosts/amiga/ldmud.info b/src/hosts/amiga/ldmud.info deleted file mode 100644 index 3cdf82b809dbb3976175ec37a07f78d04239f394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmZvaze)o^5XQef<9UMr5CpLjlS&d0#00BLrHzG+jram~d4uc&h_#O(X|)h5UqVQy zpl=|=D}w8M-`<fcZeZuP-`vbBGu+n}9B3O@$Eo?$v~%6pk?ZY@^rh}xa#2Zd7arGd ze;UlJRfby&`VgoSY>!>9eb2k=KHZVBYvjQU&fE`=qI^ApJ9}9w(;_yR8ose6*+M3E zjH_WE;(KI<$d&M>I1@XT73)=o7Gl47lr^6#ufUOFyErcOK%8O_X7~u=VdQU!ENmRc zX;bve`dqrGz0hziXFh*uo_TLVd&bEX?FM7@oMWg~t&*vcyAW*`sUO;QBDo7{TIyr{ rpHI|x;&b&|%zU8uBbN2vrK;$vyal-n&ONhTklY1X9X4*9-TtnBMsdHP diff --git a/src/hosts/amiga/machine.h b/src/hosts/amiga/machine.h deleted file mode 100644 index 5a8382e..0000000 --- a/src/hosts/amiga/machine.h +++ /dev/null @@ -1,265 +0,0 @@ -/* machine.h.in. Generated automatically from configure.in by autoheader. */ - -#ifndef MACHINE_H -#define MACHINE_H - -#undef AMIGA -#define AMIGA 1 - -/* Define if using alloca.c. */ -#undef C_ALLOCA - -/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. - This function is required for alloca.c support on those systems. */ -#undef CRAY_STACKSEG_END - -/* Define if you have alloca, as a function or macro. */ -#define HAVE_ALLOCA 1 - -/* Define if you have <alloca.h> and it should be used (not on Ultrix). */ -#undef HAVE_ALLOCA_H - -/* Define as __inline if that's what the C compiler calls it. */ -/* #undef inline */ - -/* Define to `int' if <sys/types.h> doesn't define. */ -/* #undef pid_t */ - -/* Define as the return type of signal handlers (int or void). */ -#define RETSIGTYPE void - -/* Set in response to the signal handler return type, since not all - * compilers understand direct definition comparisons - */ -#define RETSIGTYPE_VOID 1 - -/* Define to `unsigned' if <sys/types.h> doesn't define. */ -/* #undef size_t */ - -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at run-time. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown - */ -#define STACK_DIRECTION -1 - -/* Define if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* does the compiler provide inline functions? */ -#define HAS_INLINE 1 - -/* Is the library function inet_ntoa() compatible with the compiler? - * TODO: Is there any platform where this is not the case? - */ -#define INET_NTOA_OK 1 - -/* A mask that allows to extract an unsigned char from a signed */ -#define CHARBIT_MASK 0xff - -#define RENAME_HANDLES_DIRECTORIES 1 - -/* Does the system have a getrusage call? */ -#define HAVE_GETRUSAGE 1 -/* If so, is it restricted to user and system time? */ -#undef GETRUSAGE_RESTRICTED -/* Is it available as a subfunction of syscall() ? */ -#undef GETRUSAGE_VIA_SYSCALL -/* Can ru_utime / ru_stime be accessed as a timeval with tv_sec and tv_usec ? */ -#define RUSAGE_USEC 1 - -/* the atari strtol() used to consider characters '9' < c < 'A' to be numeric */ -#undef STRTOL_BROKEN - -/* needs the first argument of strtol be declared as const ? */ -#undef STRTOL_CONST_CHARP - -/* Define if you have bcopy, and it handles overlapping ranges correctly. */ -#define OVERLAPPING_BCOPY 1 - -#define MALLOC_ALIGN 4 - -/* does the compiler know of a 'ssize_t' type? */ -#define HAVE_SSIZE_T 1 - -/* does the compiler know of a 'long long' type? */ -#define HAVE_LONG_LONG 1 - -/* does the compiler know of a 'bool' type? */ -#undef HAVE_BOOL - -/* what kind of pointer is used by malloc() et al */ -#define POINTER void * -#define FREE_RETURNS_VOID 1 - -/* can we define our own malloc() safely? */ -#undef SBRK_OK - -/* The following is needed for smalloc without SBRK_OK to use memory - * efficiently. smalloc will malloc blocks that are a large power of - * two, minus EXTERN_MALLOC_OVERHEAD. If you have no idea what number to - * choose, compile & run util/overhead.c - */ -#define EXTERN_MALLOC_OVERHEAD 0 - -/* How to set a socket non-blocking */ -#define USE_IOCTL_FIONBIO 1 -#undef USE_FCNTL_O_NDELAY -#undef USE_FCNTL_FNDELAY - -/* Can F_SETOWN be used on a socket? */ -#undef USE_FCNTL_SETOWN - -/* Can SO_OOBINLINE be used on a socket? */ -#define USE_OOBINLINE 1 - -/* Does the machine offer IPv6? */ -#undef HAS_IPV6 - -/* define the erq include file. */ -#undef ERQ_INCLUDE - -/* define the host-specific include file */ -#undef HOST_INCLUDE - -/* The number of bytes in a char *. */ -#define SIZEOF_CHAR_P 4 - -/* The number of bytes in a int. */ -#define SIZEOF_INT 4 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/* The number of bytes in a long long. */ -#define SIZEOF_LONG_LONG 8 - -/* The number of bytes in a short. */ -#define SIZEOF_SHORT 2 - -/* Define if you have the _crypt function. */ -#undef HAVE__CRYPT - -/* Define if you have the bzero function. */ -#define HAVE_BZERO 1 - -/* Define if you have the crypt function. */ -#define HAVE_CRYPT 1 - -/* Define if you have the fchmod function. */ -#define HAVE_FCHMOD 1 - -/* Define if you have the fcntl function. */ -#define HAVE_FCNTL 1 - -/* Define if you have the getcwd function. */ -#define HAVE_GETCWD 1 - -/* Define if you have the getdomainname function. */ -#define HAVE_GETDOMAINNAME 1 - -/* Define if you have the getrusage function. */ -#define HAVE_GETRUSAGE 1 - -/* Define if you have the gettimeofday function. */ -#define HAVE_GETTIMEOFDAY 1 - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY 1 - -/* Define if you have the memmem function. */ -#undef HAVE_MEMMEM - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE 1 - -/* Define if you have the memset function. */ -#define HAVE_MEMSET 1 - -/* Define if you have the strchr function. */ -#define HAVE_STRCHR 1 - -/* Define if you have the strcspn function. */ -#define HAVE_STRCSPN 1 - -/* Define if you have the strdup function. */ -#define HAVE_STRDUP 1 - -/* Define if you have the strrchr function. */ -#define HAVE_STRRCHR 1 - -/* Define if you have the sysconf function. */ -#define HAVE_SYSCONF 1 - -/* Define if you have the wait3 function. */ -#define HAVE_WAIT3 1 - -/* Define if you have the waitpid function. */ -#define HAVE_WAITPID 1 - -/* Define if you have the <bstring.h> header file. */ -#define HAVE_BSTRING_H 1 - -/* Define if you have the <crypt.h> header file. */ -#undef HAVE_CRYPT_H - -/* Define if you have the <dirent.h> header file. */ -#define HAVE_DIRENT_H 1 - -/* Define if you have the <libc.h> header file. */ -#undef HAVE_LIBC_H - -/* Define if you have the <limits.h> header file. */ -#define HAVE_LIMITS_H 1 - -/* Define if you have the <memory.h> header file. */ -#define HAVE_MEMORY_H 1 - -/* Define if you have the <ndir.h> header file. */ -#define HAVE_NDIR_H 1 - -/* Define if you have the <netdb.h> header file. */ -#define HAVE_NETDB_H 1 - -/* Define if you have the <stdlib.h> header file. */ -#define HAVE_STDLIB_H 1 - -/* Define if you have the <string.h> header file. */ -#define HAVE_STRING_H 1 - -/* Define if you have the <sys/dir.h> header file. */ -#define HAVE_SYS_DIR_H 1 - -/* Define if you have the <sys/ndir.h> header file. */ -#undef HAVE_SYS_NDIR_H - -/* Define if you have the <sys/param.h> header file. */ -#define HAVE_SYS_PARAM_H 1 - -/* Define if you have the <sys/rusage.h> header file. */ -#undef HAVE_SYS_RUSAGE_H - -/* Define if you have the <sys/termios.h> header file. */ -#define HAVE_SYS_TERMIOS_H 1 - -/* Define if you have the <sys/time.h> header file. */ -#define HAVE_SYS_TIME_H 1 - -/* Define if you have the <unistd.h> header file. */ -#define HAVE_UNISTD_H 1 - -/* Define if you have the <values.h> header file. */ -#define HAVE_VALUES_H 1 - -/* Define if you have the m library (-lm). */ -#define HAVE_LIBM 1 - -/* Define if you have the nsl library (-lnsl). */ -#undef HAVE_LIBNSL - -/* Define if you have the socket library (-lsocket). */ -#undef HAVE_LIBSOCKET - -#endif diff --git a/src/hosts/be/Makefile b/src/hosts/be/Makefile deleted file mode 100644 index 5d6a46b..0000000 --- a/src/hosts/be/Makefile +++ /dev/null @@ -1,775 +0,0 @@ -#------------------------------------------------------- -# LDMud - Makefile for BeOS -#------------------------------------------------------- -# -# Usage: make [CPU=ppc|x86] [O=<opt-spec>] -# [W=few|norm|all] -# [S=yes|no] -# [D=<flags>] -# [<target>] -# -# The variable CPU determines the platform for which -# the program is compiled. If left unspecified, the -# executing platform is targeted. The created objects -# and binaries are located in subdirectories name -# 'obj.<CPU>'. -# -# The variable O determines the optimization, the value -# <opt-spec> is passed directly to the compiler. If the -# variable is not specified, '1' is used as opt-spec. -# -# The variable W determines the amount of warning. -# 'few' (the default) limits the warnings to those the -# yet unmodified source can pass. 'norm' are full warnings, -# except for those parts surrounded by pragmas. 'all' warnings -# are full warnings. -# -# If S is given and set to 'yes', the compiler runs in strict -# ansi mode, which also turns off inlines. -# -# If D is given, the <flags> are passed to the compiler on the -# commandline. -# -# <target> is one of the following targets: -# -# ldmud: create executable for the selected platform -# all: create executables for all platforms -# clean: delete all object files of the selected platform -# and all unmodified source files. -# cleanall: delete all object files and all unmodified -# source files. -# clobber: delete the object/binary subdirectory -# for the selected platform -# clobberall: delete all object/binary subdirectories. -# depend: update the dependency information in this file -# dependall: update the dependency in all known Makefiles. -# -# If no <target> is given, 'ldmud' is assumed. -#-------------------------------------------------------- - -#-------------------------------------------------------- -# Application Specific Information -#-------------------------------------------------------- - -# The name of the application. - IMG_NAME = ldmud - -# General mud directory, by default containing all other directories. - prefix= /boot/home/mud - -# The directory the mudlib usually is in. - MUDLIB = ${prefix}/lib - -# The directory where the executables are installed. The default -# erq path starts there. - BINDIR = ${prefix}/bin - -# The directory containing all executables which can be executed -# by the erq. Only safe programs belong here! - ERQDIR = ${prefix}/erq - -# Debugging options: -# Debugging options should be set in config.h to guarantee a clean -# recompile. - DEBUG = - -# Typical profiling, warning and optimizing options. -# -p -DMARK: together they enable the profiling of VM instructions. -# Additional profiling can be activated in config.h . -# -# Typical gcc optimisation settings. -# OPTIMIZE = -O4 -fomit-frame-pointer -funroll-all-loops -g -fstrength-reduce -fno-force-mem -fno-force-addr -fno-inline-functions -# OPTIMIZE = -O2 -g -fstrength-reduce -fno-force-mem -fno-force-addr -fno-inline-functions -# OPTIMIZE = -O -g -# OPTIMIZE = -g - - PROFIL = - WARN = -ifndef O - OPTIMIZE = -O1 -else - OPTIMIZE = -O${O} -endif - -# The yacc used and the typically generated parser files - YACC = hosts/be/beyacc - YACCTAB = y.tab. - -# The C source files. - SRCS = access_check.c actions.c array.c backend.c bitstrings.c \ - call_out.c closure.c \ - comm.c dumpstat.c ed.c efuns.c files.c gcollect.c hash.c \ - heartbeat.c \ - interpret.c lex.c main.c mapping.c md5.c mempools.c mregex.c \ - mstrings.c \ - object.c otable.c parser.c parse.c \ - pkg-alists.c pkg-mccp.c pkg-mysql.c pkg-pcre.c pkg-pgsql.c \ - pkg-sqlite.c pkg-tls.c ptmalloc.c port.c ptrtable.c random.c \ - regexp.c sha1.c simulate.c simul_efun.c stdstrings.c \ - strfuns.c structs.c sprintf.c swap.c wiz_list.c xalloc.c - -# Generated source files (overlaps with of SRCS) which need to be -# present for mkdepend to work. - GENSRCS = make_func.c stdstrings.c lang.c instrs.h pcre/chartables.c - -# Macros for MkDepend: - SKELETON = $(SRCS) mkfunc.c pcre/dftables.c - EXCEPT = -x efun_defs.c - SELECT = -S instrs.h -S stdstrings.h -S make_func.c -S lang.c -S lang.h -S efun_defs.c - -# Initialize the CFLAGS with the values above - CFLAGS += $(OPTIMIZE) $(DEBUG) $(WARN) $(PROFIL) - CFLAGS += -DMUD_LIB='"$(MUDLIB)"' -DBINDIR='"$(BINDIR)"' - CFLAGS += -DERQ_DIR='"$(ERQDIR)"' - -# Linker flags - LDFLAGS += -lz - -# Add additional flags if given - -ifdef D - CFLAGS += ${D} -endif - -#-------------------------------------------------------- -# Application Independent Information -#-------------------------------------------------------- - -# determine the CPU if not specified on the command line -# set MACHINE to the host machine -# set NATIVE to the host cpu -# set CROSS to the non-host cpu - MACHINE =$(shell uname -m) -ifndef CPU -ifeq ($(MACHINE), BePC) - CPU = x86 -else - CPU = ppc -endif -endif -ifeq ($(MACHINE), BePC) - NATIVE = x86 - CROSS = ppc -else - NATIVE = ppc - CROSS = x86 -endif - -# set the object directory - OBJ := obj.$(CPU) - OBJ_NATIVE := obj.$(NATIVE) - OBJ_CROSS := obj.$(CROSS) - -# specify where to create the application binary - TARGET :=$(OBJ)/$(IMG_NAME) - -# The resource file, with and without path - RSRC = $(IMG_NAME).rsrc - RSRC_FULL = hosts/be/$(RSRC) - -# The targets 'BEOS:TYPE' resource - empty as default for native compiles - MIMS = - -# Tools - MIMESET = mimeset - MWBRES = mwbres - XRES = xres - -# platform specific settings -ifeq ($(CPU), x86) -ifeq ($(NATIVE), x86) - CC = gcc - LD = gcc -else - CC = /boot/develop/tools/gnupro/bin/i586-beos-gcc - LD = /boot/develop/tools/gnupro/bin/i586-beos-gcc - MIMS = -a MIMS:2:BEOS:TYPE -s 'application/x-vnd.Be-elfexecutable' -endif - - CFLAGS += -g -Wall -Wshadow -Wno-parentheses -Winline - -ifeq ($(S), yes) - CFLAGS += -ansi -DNO_INLINES - # *sigh* -pedantic chokes on Be's include files -endif - - LDFLAGS += -Xlinker -soname=_APP_ -endif - -ifeq ($(CPU), ppc) -ifeq ($(NATIVE), ppc) - CC = mwcc$(CPU) - LD = mwld$(CPU) -else - CC = /boot/develop_ppc/bin/mwccppc - LD = /boot/develop_ppc/bin/mwldppc - - CFLAGS += -I. -Ipcre - LDFLAGS += /boot/develop_ppc/lib/ppc/start_dyn.o \ - /boot/develop_ppc/lib/ppc/glue-noinit.a \ - /boot/develop_ppc/lib/ppc/init_term_dyn.o \ - -L/boot/develop_ppc/lib/ppc \ - -lroot -lnet - - MIMS = -a MIMS:2:BEOS:TYPE -s 'application/x-be-executable' -endif - - # generate mapfiles for metrowerks. - MAP_FILE := $(TARGET).xMAP - SYMBOL_FILE := $(TARGET).xSYM - - CFLAGS += -g -r - -ifndef W - CFLAGS += -w8 -else -ifeq ($(W), few) - CFLAGS += -w8 -else -ifeq ($(W), all) - CFLAGS += -DWARN_ALL -w9 -w=notinlined -else - CFLAGS += -w9 -w=nonotinlined -endif -endif -endif - -ifeq ($(S), yes) - CFLAGS += -ansi strict -DNO_INLINES -endif - - LDFLAGS += -sym full -map $(MAP_FILE) -export pragma \ - -init _init_routine_ -term _term_routine_ - -endif - - -# pseudo-function for converting a list of source files in SRCS variable -# to a corresponding list of object files in $(OBJ)/xxx.o -# The "function" strips off the src file suffix (.ccp or .c or whatever) -# and then strips of the directory name, leaving just the root file name. -# It then appends the .o suffix and prepends the $(OBJ)/ path -define SRCS_LIST_TO_OBJS - $(addprefix $(OBJ)/, $(addsuffix .o, $(foreach file, $(SRCS), $(basename $(notdir $(file)))))) -endef - -# specify the list of objects - OBJS := $(SRCS_LIST_TO_OBJS) - -#------------------------------------------------------- -# Targets and their rules -#------------------------------------------------------- - -# define the actual work to be done -default: $(TARGET) -$(IMG_NAME): $(TARGET) - -all: $(TARGET) - @make CPU=$(CROSS) $(IMG_NAME) - -$(TARGET): $(OBJ) depend $(OBJS) $(RSRC_FULL) - $(LD) -o $@ $(OBJS) $(LDFLAGS) - $(XRES) -o $@ $(MIMS) $(RSRC_FULL) - $(MIMESET) -f $@ - hosts/be/set-version $@ -ifneq ($(CPU), $(NATIVE)) - [ -f $(OBJ_NATIVE)/$(IMG_NAME) ] && copyattr -n 'BEOS:M:STD_ICON' $(OBJ_NATIVE)/$(IMG_NAME) $@ - [ -f $(OBJ_NATIVE)/$(IMG_NAME) ] && copyattr -n 'BEOS:L:STD_ICON' $(OBJ_NATIVE)/$(IMG_NAME) $@ -endif - -clean :: FORCE - -rm -f $(YACCTAB)h $(YACCTAB)c make_func.c $(OBJ)/mkfunc - -rm -f $(OBJ)/dftables pcre/chartables.c - -rm -f *~ efun_defs.c instrs.h lang.y lang.h lang.c y.output tags TAGS - -rm -f stdstrings.c stdstrings.h - -rm -f hosts/*~ hosts/*/*~ bugs/*~ done/*~ $(OBJ)/*.o - -rm -f pcre/*~ wk/*~ settings/*~ - -cleanall :: clean - -rm -f $(OBJ_CROSS)/*.o - -clobber :: clean FORCE - -rm -rf $(OBJ) config.cache config.status config.log - -clobberall :: clobber cleanall - -rm -rf $(OBJ_CROSS) - -depend: $(SRCS) $(GENSRCS) $(OBJ) - @$(SHELL) -ec "if type mkdepend > /dev/null 2>&1; then \ - echo Updating dependencies.; \ - mkdepend $(SKELETON) -I. $(EXCEPT) -m -p .c:$$\(OBJ\)/%n.o -fMakefile; \ - mkdepend $(SKELETON) -I. $(EXCEPT) $(SELECT) -m -p .c:$$\(OBJ\)/%n.o -fMakefile; \ - mkdepend $(SKELETON) -I. $(EXCEPT) -m -p .c:$$\(OBJ\)/%n.o -fhosts/be/Makefile; \ - mkdepend $(SKELETON) -I. $(EXCEPT) $(SELECT) -m -p .c:$$\(OBJ\)/%n.o -fhosts/be/Makefile; \ - else\ - echo mkdepend utility not available.; \ - fi" - -.PHONY dependall: depend depend-generic - -depend-generic: $(SRCS) $(GENSRCS) $(OBJ) - @$(SHELL) -ec "if type mkdepend > /dev/null 2>&1; then \ - echo Updating dependencies in Makefile.in.; \ - mkdepend $(SKELETON) -I. $(EXCEPT) -m -p .c:%n.o -fMakefile.in; \ - mkdepend $(SKELETON) $(SELECT) -I. $(EXCEPT) -m -p .c:%n.o -fMakefile.in; \ - else\ - echo mkdepend utility not available.; \ - fi" - -AMIGASRCS:= - -# Special rules for making mkfunc and dftables, depending on whether we're -# crosscompiling or not. - -make_func.c : make_func.y - $(YACC) make_func.y - mv $(YACCTAB)c make_func.c - -$(OBJ)/mkfunc.o : mkfunc.c make_func.c driver.h config.h machine.h port.h - $(CC) $(INCLUDES) $(CFLAGS) -DYACC='"$(YACC)"' -c $< -o $@ - -$(OBJ)/mkfunc : $(OBJ)/mkfunc.o $(OBJ)/hash.o - $(LD) -o $@ $^ $(LDFLAGS) - $(MIMESET) -f $@ - -ifneq ($(CPU), $(NATIVE)) -$(OBJ_NATIVE)/mkfunc : - @[ -d $(OBJ_NATIVE) ] || mkdir $(OBJ_NATIVE) > /dev/null 2>&1 - make CPU=$(NATIVE) $@ -endif - -$(OBJ)/dftables.o : pcre/dftables.c pcre/maketables.c pcre/config.h - $(CC) $(INCLUDES) $(CFLAGS) -c $< -o $@ - -$(OBJ)/dftables : $(OBJ)/dftables.o - $(LD) -o $@ $^ $(LDFLAGS) - $(MIMESET) -f $@ - -ifneq ($(CPU), $(NATIVE)) -$(OBJ_NATIVE)/dftables : - @[ -d $(OBJ_NATIVE) ] || mkdir $(OBJ_NATIVE) > /dev/null 2>&1 - make CPU=$(NATIVE) $@ -endif - -# The making of the compiler and associated files. - -efun_defs.c instrs.h : func_spec config.h $(OBJ_NATIVE)/mkfunc - -rm -f efun_defs.c instrs.h - $(OBJ_NATIVE)/mkfunc instrs - -stdstrings.c stdstrings.h: string_spec $(OBJ_NATIVE)/mkfunc config.h - rm -f stdstrings.c stdstrings.h - $(OBJ_NATIVE)/mkfunc strings - -lang.y : prolang.y config.h $(OBJ_NATIVE)/mkfunc - -rm -f lang.y - $(OBJ_NATIVE)/mkfunc lang - -lang.c lang.h : lang.y - $(YACC) -d -v lang.y - mv $(YACCTAB)c lang.c - mv $(YACCTAB)h lang.h - -pcre/chartables.c : $(OBJ_NATIVE)/dftables - $(OBJ_NATIVE)/dftables > pcre/chartables.c - -# Be Resource Mangling - -$(RSRC_FULL) : hosts/be/driver.r hosts/be/icon-32x32.raw hosts/be/icon-16x16.raw - cd hosts/be; $(MWBRES) -o $(RSRC) driver.r - -#-------------------------------------------------------- -# Rules for the whole system -#-------------------------------------------------------- - -# rule to create the object file directory if needed -$(OBJ):: - @[ -d $(OBJ) ] || mkdir $(OBJ) > /dev/null 2>&1 - -# Don't stumble over non-existing include files. -%.h : - @echo "Warning: Can't find $@." - -# default rule for xxx.c files to compile into $(OBJ)/xxx.o -$(OBJ)/%.o : %.c - $(CC) $(INCLUDES) $(CFLAGS) -c $< -o $@ - -# empty rule. Things that depend on this rule will always get triggered -FORCE: - -# remove just the application from the object folder -rmapp :: - -rm -f $(TARGET) - -#-------------------------------------------------------- -# Dependencies, manual and automatic. - -# --- DO NOT MODIFY THIS LINE -- AUTO-DEPENDS FOLLOW --- -$(OBJ)/access_check.o : xalloc.h filestat.h comm.h access_check.h driver.h \ - svalue.h strfuns.h pkg-tls.h simulate.h typedefs.h config.h port.h \ - sent.h bytecode.h hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/actions.o : ../mudlib/sys/driver_hook.h ../mudlib/sys/commands.h \ - xalloc.h wiz_list.h svalue.h simulate.h sent.h stdstrings.h object.h \ - mstrings.h mapping.h interpret.h efuns.h dumpstat.h comm.h closure.h \ - backend.h array.h actions.h my-alloca.h typedefs.h driver.h strfuns.h \ - bytecode.h hash.h pkg-tls.h main.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -$(OBJ)/array.o : i-svalue_cmp.h xalloc.h wiz_list.h swap.h svalue.h \ - simulate.h stdstrings.h object.h mstrings.h mempools.h mapping.h main.h \ - interpret.h closure.h backend.h array.h my-alloca.h typedefs.h driver.h \ - strfuns.h sent.h bytecode.h hash.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -$(OBJ)/backend.o : ../mudlib/sys/debug_message.h \ - ../mudlib/sys/driver_hook.h i-eval_cost.h xalloc.h wiz_list.h swap.h \ - svalue.h stdstrings.h simulate.h random.h otable.h object.h mstrings.h \ - mregex.h mapping.h main.h lex.h interpret.h heartbeat.h gcollect.h \ - filestat.h exec.h ed.h comm.h closure.h call_out.h array.h actions.h \ - backend.h my-alloca.h typedefs.h driver.h strfuns.h sent.h bytecode.h \ - hash.h pkg-tls.h port.h config.h hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/bitstrings.o : xalloc.h svalue.h simulate.h mstrings.h interpret.h \ - bitstrings.h typedefs.h driver.h strfuns.h sent.h bytecode.h hash.h \ - backend.h port.h config.h main.h hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/call_out.o : ../mudlib/sys/debug_info.h i-eval_cost.h xalloc.h \ - wiz_list.h swap.h svalue.h strfuns.h stdstrings.h simulate.h object.h \ - mstrings.h main.h interpret.h gcollect.h exec.h comm.h closure.h \ - backend.h array.h actions.h call_out.h typedefs.h driver.h sent.h \ - bytecode.h hash.h pkg-tls.h port.h config.h hosts/unix.h hosts/be/be.h \ - machine.h - -$(OBJ)/closure.o : i-svalue_cmp.h xalloc.h switch.h swap.h svalue.h \ - structs.h stdstrings.h simul_efun.h simulate.h prolang.h object.h \ - mstrings.h main.h lex.h interpret.h instrs.h exec.h backend.h array.h \ - closure.h my-alloca.h typedefs.h driver.h strfuns.h hash.h ptrtable.h \ - sent.h bytecode.h port.h config.h hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/comm.o : util/erq/erq.h ../mudlib/sys/input_to.h \ - ../mudlib/sys/driver_hook.h ../mudlib/sys/comm.h i-eval_cost.h xalloc.h \ - wiz_list.h swap.h svalue.h stdstrings.h simulate.h sent.h pkg-tls.h \ - pkg-pgsql.h pkg-mccp.h object.h mstrings.h main.h interpret.h \ - gcollect.h filestat.h exec.h ed.h closure.h array.h actions.h \ - access_check.h comm.h ../mudlib/sys/telnet.h my-alloca.h typedefs.h \ - driver.h strfuns.h bytecode.h hash.h backend.h config.h port.h \ - hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/dumpstat.o : xalloc.h svalue.h structs.h stdstrings.h simulate.h \ - ptrtable.h object.h mstrings.h mapping.h instrs.h filestat.h exec.h \ - closure.h array.h dumpstat.h typedefs.h driver.h strfuns.h hash.h \ - sent.h bytecode.h port.h config.h hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/ed.o : ../mudlib/sys/regexp.h xalloc.h svalue.h stdstrings.h \ - simulate.h object.h mstrings.h mregex.h main.h lex.h interpret.h \ - gcollect.h filestat.h comm.h actions.h ed.h typedefs.h driver.h \ - strfuns.h sent.h bytecode.h hash.h backend.h pkg-tls.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/efuns.o : ../mudlib/sys/time.h ../mudlib/sys/strings.h \ - ../mudlib/sys/regexp.h ../mudlib/sys/objectinfo.h \ - ../mudlib/sys/driver_hook.h ../mudlib/sys/debug_info.h i-eval_cost.h \ - xalloc.h wiz_list.h svalue.h swap.h structs.h strfuns.h simulate.h \ - stdstrings.h sha1.h random.h ptrtable.h otable.h object.h mstrings.h \ - mregex.h md5.h mempools.h mapping.h main.h lex.h interpret.h \ - heartbeat.h exec.h dumpstat.h comm.h closure.h call_out.h backend.h \ - array.h actions.h efuns.h my-rusage.h my-alloca.h typedefs.h driver.h \ - hash.h sent.h bytecode.h my-stdint.h pkg-tls.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/files.o : ../mudlib/sys/files.h xalloc.h svalue.h stdstrings.h \ - simulate.h mstrings.h mempools.h main.h lex.h interpret.h filestat.h \ - comm.h array.h files.h my-alloca.h typedefs.h driver.h strfuns.h sent.h \ - bytecode.h hash.h backend.h pkg-tls.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -$(OBJ)/gcollect.o : ../mudlib/sys/driver_hook.h i-eval_cost.h xalloc.h \ - wiz_list.h swap.h structs.h stdstrings.h simul_efun.h simulate.h sent.h \ - random.h ptrtable.h prolang.h pkg-pgsql.h parse.h otable.h object.h \ - mstrings.h mregex.h mempools.h mapping.h main.h lex.h instrs.h \ - interpret.h heartbeat.h filestat.h ed.h comm.h closure.h call_out.h \ - backend.h array.h actions.h gcollect.h typedefs.h driver.h svalue.h \ - strfuns.h hash.h exec.h bytecode.h pkg-tls.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/hash.o : hash.h - -$(OBJ)/heartbeat.o : ../mudlib/sys/debug_info.h i-eval_cost.h xalloc.h \ - wiz_list.h svalue.h strfuns.h simulate.h sent.h object.h mstrings.h \ - interpret.h gcollect.h exec.h comm.h backend.h array.h actions.h \ - heartbeat.h typedefs.h driver.h bytecode.h hash.h pkg-tls.h main.h \ - port.h config.h hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/interpret.o : ../mudlib/sys/debug_info.h ../mudlib/sys/driver_hook.h \ - i-eval_cost.h xalloc.h wiz_list.h switch.h swap.h svalue.h structs.h \ - stdstrings.h simul_efun.h simulate.h prolang.h parse.h otable.h \ - object.h mstrings.h mapping.h lex.h instrs.h heartbeat.h gcollect.h \ - filestat.h exec.h efuns.h ed.h comm.h closure.h call_out.h backend.h \ - array.h actions.h interpret.h my-alloca.h typedefs.h driver.h strfuns.h \ - hash.h ptrtable.h sent.h bytecode.h pkg-tls.h main.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/lex.o : efun_defs.c ../mudlib/sys/driver_hook.h i-eval_cost.h \ - xalloc.h wiz_list.h svalue.h strfuns.h stdstrings.h simul_efun.h \ - simulate.h prolang.h patchlevel.h object.h mstrings.h mempools.h main.h \ - lang.h interpret.h instrs.h hash.h gcollect.h filestat.h exec.h comm.h \ - closure.h backend.h array.h lex.h my-alloca.h typedefs.h driver.h \ - ptrtable.h sent.h bytecode.h pkg-tls.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -$(OBJ)/main.o : ../mudlib/sys/regexp.h i-eval_cost.h pkg-mysql.h xalloc.h \ - wiz_list.h swap.h svalue.h stdstrings.h simul_efun.h simulate.h \ - random.h pkg-tls.h patchlevel.h otable.h object.h mstrings.h mregex.h \ - mempools.h mapping.h lex.h interpret.h gcollect.h filestat.h comm.h \ - array.h backend.h main.h my-alloca.h typedefs.h driver.h strfuns.h \ - ptrtable.h exec.h sent.h bytecode.h hash.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -$(OBJ)/mapping.o : i-svalue_cmp.h xalloc.h wiz_list.h svalue.h structs.h \ - simulate.h object.h mstrings.h main.h interpret.h gcollect.h closure.h \ - backend.h array.h mapping.h my-alloca.h typedefs.h driver.h strfuns.h \ - hash.h exec.h sent.h bytecode.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -$(OBJ)/md5.o : strfuns.h md5.h machine.h typedefs.h driver.h port.h \ - config.h hosts/unix.h hosts/be/be.h - -$(OBJ)/mempools.o : ../mudlib/sys/debug_info.h xalloc.h svalue.h strfuns.h \ - simulate.h gcollect.h mempools.h driver.h typedefs.h sent.h bytecode.h \ - port.h config.h hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/mkfunc.o : make_func.c ../mudlib/sys/driver_hook.h hash.h exec.h \ - my-alloca.h driver.h bytecode.h typedefs.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -$(OBJ)/mregex.o : ../mudlib/sys/regexp.h ../mudlib/sys/driver_hook.h \ - ../mudlib/sys/debug_info.h xalloc.h svalue.h strfuns.h simulate.h \ - regexp.h pkg-pcre.h mstrings.h main.h interpret.h hash.h gcollect.h \ - comm.h mregex.h driver.h typedefs.h sent.h bytecode.h pcre/pcre.h \ - backend.h pkg-tls.h port.h config.h hosts/unix.h hosts/be/be.h \ - machine.h - -$(OBJ)/mstrings.o : ../mudlib/sys/debug_info.h xalloc.h svalue.h strfuns.h \ - stdstrings.h simulate.h main.h hash.h gcollect.h mstrings.h driver.h \ - typedefs.h sent.h bytecode.h port.h config.h hosts/unix.h hosts/be/be.h \ - machine.h - -$(OBJ)/object.o : ../mudlib/sys/inherit_list.h ../mudlib/sys/include_list.h \ - ../mudlib/sys/functionlist.h ../mudlib/sys/driver_hook.h xalloc.h \ - wiz_list.h svalue.h swap.h structs.h strfuns.h stdstrings.h \ - simul_efun.h simulate.h sent.h random.h ptrtable.h prolang.h otable.h \ - mstrings.h mempools.h mapping.h main.h lex.h instrs.h interpret.h \ - filestat.h comm.h closure.h backend.h array.h actions.h object.h \ - my-alloca.h typedefs.h driver.h ../mudlib/sys/lpctypes.h hash.h exec.h \ - bytecode.h pkg-tls.h port.h config.h hosts/unix.h hosts/be/be.h \ - machine.h - -$(OBJ)/otable.o : ../mudlib/sys/debug_info.h xalloc.h svalue.h simulate.h \ - strfuns.h object.h mstrings.h hash.h gcollect.h backend.h otable.h \ - typedefs.h driver.h sent.h bytecode.h main.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/parse.o : xalloc.h wiz_list.h svalue.h stdstrings.h simulate.h \ - object.h mstrings.h main.h lex.h interpret.h gcollect.h array.h \ - actions.h parse.h typedefs.h driver.h strfuns.h sent.h bytecode.h \ - hash.h backend.h port.h config.h hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/parser.o : lang.c ../mudlib/sys/driver_hook.h i-eval_cost.h xalloc.h \ - wiz_list.h switch.h swap.h svalue.h structs.h stdstrings.h simul_efun.h \ - simulate.h object.h mstrings.h mapping.h main.h lex.h instrs.h \ - interpret.h gcollect.h exec.h closure.h backend.h array.h prolang.h \ - my-alloca.h typedefs.h driver.h strfuns.h hash.h ptrtable.h sent.h \ - bytecode.h port.h config.h hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/dftables.o : pcre/maketables.c pcre/internal.h pcre/pcre.h \ - pcre/config.h - -$(OBJ)/pkg-alists.o : i-svalue_cmp.h xalloc.h svalue.h simulate.h \ - mstrings.h main.h interpret.h array.h my-alloca.h pkg-alists.h \ - typedefs.h driver.h closure.h strfuns.h sent.h bytecode.h hash.h \ - backend.h port.h config.h hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/pkg-idna.o : ../mudlib/sys/idn.h xalloc.h simulate.h mstrings.h \ - interpret.h typedefs.h pkg-idna.h driver.h svalue.h strfuns.h sent.h \ - bytecode.h hash.h backend.h port.h config.h main.h hosts/unix.h \ - hosts/be/be.h machine.h - -$(OBJ)/pkg-mccp.o : ../mudlib/sys/telnet.h xalloc.h svalue.h object.h \ - mstrings.h comm.h array.h pkg-mccp.h typedefs.h driver.h strfuns.h \ - sent.h hash.h pkg-tls.h simulate.h port.h config.h bytecode.h \ - hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/pkg-mysql.o : xalloc.h svalue.h stdstrings.h simulate.h mstrings.h \ - main.h instrs.h interpret.h array.h pkg-mysql.h my-alloca.h typedefs.h \ - driver.h strfuns.h sent.h bytecode.h hash.h exec.h backend.h port.h \ - config.h hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/pkg-pcre.o : pcre/study.c pcre/maketables.c pcre/get.c pcre/pcre.c \ - simulate.h interpret.h pkg-pcre.h driver.h pcre/internal.h \ - pcre/chartables.c svalue.h strfuns.h sent.h bytecode.h typedefs.h \ - backend.h pcre/pcre.h port.h config.h pcre/config.h main.h hosts/unix.h \ - hosts/be/be.h machine.h - -$(OBJ)/pkg-pgsql.o : ../mudlib/sys/pgsql.h xalloc.h stdstrings.h simulate.h \ - mstrings.h mapping.h main.h interpret.h instrs.h gcollect.h array.h \ - actions.h pkg-pgsql.h my-alloca.h typedefs.h driver.h svalue.h \ - strfuns.h sent.h bytecode.h hash.h backend.h exec.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/pkg-sqlite.o : xalloc.h stdstrings.h object.h svalue.h simulate.h \ - mstrings.h interpret.h array.h my-alloca.h typedefs.h driver.h \ - strfuns.h sent.h bytecode.h hash.h backend.h port.h config.h main.h \ - hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/pkg-tls.o : ../mudlib/sys/tls.h xalloc.h svalue.h sha1.h object.h \ - mstrings.h main.h interpret.h comm.h array.h actions.h pkg-tls.h \ - machine.h driver.h strfuns.h typedefs.h my-stdint.h sent.h hash.h \ - bytecode.h backend.h simulate.h port.h config.h hosts/unix.h \ - hosts/be/be.h - -$(OBJ)/port.o : hosts/crypt.c main.h backend.h my-rusage.h driver.h \ - machine.h typedefs.h port.h config.h hosts/unix.h hosts/be/be.h - -$(OBJ)/ptmalloc.o : ptmalloc/malloc.c machine.h config.h ptmalloc/hooks.c \ - ptmalloc/arena.c ptmalloc/thread-m.h ptmalloc/malloc.h \ - ptmalloc/config.h - -$(OBJ)/ptrtable.o : simulate.h mempools.h ptrtable.h driver.h svalue.h \ - strfuns.h sent.h bytecode.h typedefs.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -$(OBJ)/random.o : random.h driver.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -$(OBJ)/regexp.o : i-eval_cost.h main.h xalloc.h simulate.h regexp.h \ - driver.h interpret.h typedefs.h svalue.h strfuns.h sent.h bytecode.h \ - pkg-pcre.h port.h config.h backend.h pcre/pcre.h hosts/unix.h \ - hosts/be/be.h machine.h - -$(OBJ)/sha1.o : sha1.h my-stdint.h driver.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -$(OBJ)/simul_efun.o : xalloc.h swap.h svalue.h stdstrings.h simulate.h \ - prolang.h ptrtable.h object.h mstrings.h lex.h interpret.h gcollect.h \ - exec.h array.h simul_efun.h my-alloca.h typedefs.h driver.h strfuns.h \ - sent.h bytecode.h hash.h backend.h port.h config.h main.h hosts/unix.h \ - hosts/be/be.h machine.h - -$(OBJ)/simulate.o : ../mudlib/sys/rtlimits.h ../mudlib/sys/regexp.h \ - ../mudlib/sys/files.h ../mudlib/sys/driver_hook.h \ - ../mudlib/sys/debug_info.h i-eval_cost.h xalloc.h wiz_list.h svalue.h \ - swap.h structs.h strfuns.h stdstrings.h simul_efun.h sent.h prolang.h \ - pkg-sqlite.h pkg-tls.h otable.h object.h mstrings.h mregex.h mempools.h \ - mapping.h main.h lex.h heartbeat.h gcollect.h filestat.h ed.h comm.h \ - closure.h call_out.h backend.h array.h actions.h simulate.h my-alloca.h \ - typedefs.h driver.h interpret.h hash.h exec.h ptrtable.h bytecode.h \ - port.h config.h hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/sprintf.o : xalloc.h swap.h svalue.h structs.h stdstrings.h \ - simul_efun.h simulate.h sent.h random.h ptrtable.h object.h mstrings.h \ - mapping.h main.h interpret.h comm.h closure.h array.h actions.h \ - sprintf.h my-alloca.h typedefs.h driver.h strfuns.h hash.h exec.h \ - bytecode.h backend.h pkg-tls.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -$(OBJ)/stdstrings.o : mstrings.h stdstrings.h typedefs.h driver.h hash.h \ - port.h config.h hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/strfuns.o : xalloc.h svalue.h stdstrings.h simulate.h object.h \ - mstrings.h mapping.h main.h interpret.h comm.h strfuns.h my-alloca.h \ - typedefs.h driver.h sent.h bytecode.h hash.h backend.h pkg-tls.h port.h \ - config.h hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/structs.o : ../mudlib/sys/struct_info.h ../mudlib/sys/debug_info.h \ - xalloc.h wiz_list.h stdstrings.h simulate.h object.h mstrings.h \ - mapping.h main.h interpret.h gcollect.h exec.h array.h structs.h \ - driver.h ../mudlib/sys/lpctypes.h svalue.h strfuns.h typedefs.h sent.h \ - bytecode.h hash.h backend.h port.h config.h hosts/unix.h hosts/be/be.h \ - machine.h - -$(OBJ)/swap.o : ../mudlib/sys/debug_info.h xalloc.h wiz_list.h svalue.h \ - structs.h strfuns.h stdstrings.h simul_efun.h simulate.h random.h \ - prolang.h otable.h object.h mstrings.h mempools.h mapping.h main.h \ - interpret.h gcollect.h comm.h closure.h backend.h array.h swap.h \ - typedefs.h driver.h hash.h exec.h ptrtable.h sent.h bytecode.h \ - pkg-tls.h port.h config.h hosts/unix.h hosts/be/be.h machine.h - -$(OBJ)/wiz_list.o : xalloc.h svalue.h stdstrings.h simulate.h object.h \ - mstrings.h mapping.h main.h interpret.h gcollect.h backend.h array.h \ - ../mudlib/sys/wizlist.h wiz_list.h my-alloca.h typedefs.h driver.h \ - strfuns.h sent.h bytecode.h hash.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -$(OBJ)/xalloc.o : xptmalloc.c sysmalloc.c slaballoc.c smalloc.c mstrings.h \ - object.h exec.h simulate.h interpret.h gcollect.h backend.h xalloc.h \ - driver.h ../mudlib/sys/debug_info.h ptmalloc/malloc.h svalue.h \ - stdstrings.h sysmalloc.h array.h slaballoc.h typedefs.h smalloc.h \ - hash.h sent.h bytecode.h strfuns.h main.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -# --- DO NOT MODIFY THIS LINE -- AUTO-DEPENDS PRECEDE --- -# --- DO NOT MODIFY THIS LINE -- SELECTED AUTO-DEPENDS FOLLOW --- -$(OBJ)/actions.o : stdstrings.h - -$(OBJ)/array.o : stdstrings.h - -$(OBJ)/backend.o : stdstrings.h - -$(OBJ)/call_out.o : stdstrings.h - -$(OBJ)/closure.o : stdstrings.h instrs.h - -$(OBJ)/comm.o : stdstrings.h - -$(OBJ)/dumpstat.o : stdstrings.h instrs.h - -$(OBJ)/ed.o : stdstrings.h - -$(OBJ)/efuns.o : stdstrings.h - -$(OBJ)/files.o : stdstrings.h - -$(OBJ)/gcollect.o : stdstrings.h instrs.h - -$(OBJ)/interpret.o : stdstrings.h instrs.h - -$(OBJ)/lex.o : efun_defs.c stdstrings.h lang.h instrs.h - -$(OBJ)/main.o : stdstrings.h - -$(OBJ)/mkfunc.o : make_func.c - -$(OBJ)/mstrings.o : stdstrings.h - -$(OBJ)/object.o : stdstrings.h instrs.h - -$(OBJ)/parse.o : stdstrings.h - -$(OBJ)/parser.o : lang.c stdstrings.h instrs.h - -$(OBJ)/pkg-mysql.o : stdstrings.h instrs.h - -$(OBJ)/pkg-pgsql.o : stdstrings.h instrs.h - -$(OBJ)/pkg-sqlite.o : stdstrings.h - -$(OBJ)/simul_efun.o : stdstrings.h - -$(OBJ)/simulate.o : stdstrings.h - -$(OBJ)/sprintf.o : stdstrings.h - -$(OBJ)/stdstrings.o : stdstrings.h - -$(OBJ)/strfuns.o : stdstrings.h - -$(OBJ)/structs.o : stdstrings.h - -$(OBJ)/swap.o : stdstrings.h - -$(OBJ)/wiz_list.o : stdstrings.h - -$(OBJ)/xalloc.o : stdstrings.h - -# --- DO NOT MODIFY THIS LINE -- SELECTED AUTO-DEPENDS PRECEDE --- diff --git a/src/hosts/be/be.h b/src/hosts/be/be.h deleted file mode 100644 index e2925bd..0000000 --- a/src/hosts/be/be.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef HOSTS_BE_H -#define HOSTS_BE_H - -#include <BeBuild.h> - -#define SOCKET_HEADER "hosts/be/socketinc.h" -#define SOCKET_LIB 1 - -#undef HOST_DEPENDENT_INIT -#define HOST_DEPENDENT_INIT \ - { no_erq_demon++; /* Be's fork() does not cover sockets, thus no auto-erq */\ - } - - -#ifdef __MWERKS__ -# if !defined(B_BEOS_VERSION_5) -# define isascii(c) !((unsigned long)c & 0xFFFFFF80) -# endif -# ifndef EMSGSIZE -# define EMSGSIZE 42 -# endif -#endif - -#define FNDELAY O_NONBLOCK - -#endif diff --git a/src/hosts/be/beyacc b/src/hosts/be/beyacc deleted file mode 100755 index 60a2d45..0000000 --- a/src/hosts/be/beyacc +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# -# Wrapper to call the proper parser generator: byacc if it is installed, -# otherwise bison. - -if [ $(type -p byacc) ]; then - exec byacc $* -else - exec bison -y $* -fi diff --git a/src/hosts/be/config.h b/src/hosts/be/config.h deleted file mode 100644 index 1be77b5..0000000 --- a/src/hosts/be/config.h +++ /dev/null @@ -1,540 +0,0 @@ -#ifndef CONFIG_H__ -#define CONFIG_H__ 1 - -/* Should code for the external request demon be included? - */ -#define ERQ_DEMON - -/* Maximum sizes for an erq send or reply. - */ -#define ERQ_MAX_REPLY 1024 -#define ERQ_MAX_SEND 1024 - -/* #define ACCESS_CONTROL if you want the driver to do any access control. - * TODO: ACCESS_CONTROL should be a runtime option - */ -#define ACCESS_CONTROL - -/* file for access permissions data */ -#define ACCESS_FILE "ACCESS.ALLOW" - -/* logfile to show valid and rejected connections - * simple not define this for NO logs - */ -/* #define ACCESS_LOG "access.allow.log" */ - -/* - * Max size of a file allowed to be read by 'read_file()'. - */ -#define READ_FILE_MAX_SIZE 50000 - -/* - * If an object is left alone for a certain time, then the - * function clean_up will be called. This function can do anything, - * like destructing the object. If the function isn't defined by the - * object, then nothing will happen. - * - * This time should be substantially longer than the swapping time. - */ -#define TIME_TO_CLEAN_UP 3600 - -/* - * How long time until an unused object is swapped out. - * Machine with too many players and too little memory: 900 (15 minutes) - * Machine with few players and lot of memory: 10000 - * Machine with infinite memory: 0 (never swap). - */ -#define TIME_TO_SWAP 900 -#define TIME_TO_SWAP_VARIABLES 1800 - -/* - * How many seconds until an object is reset again. - * Set this value high if big system, otherwise low. - * No castles: 1800 (30 minutes) - * >100 castles:10000 (almost 3 hours). - */ -#define TIME_TO_RESET 1800 /* 3600 */ /* one hour */ - -/* - * Define the maximum stack size of the stack machine. This stack will also - * contain all local variables and arguments. - */ -#define EVALUATOR_STACK_SIZE 2000 - -/* - * Define the maximum call depth for functions. - * MAX_USER_TRACE is used for for normal program execution, the full - * MAX_TRACE is only available in error handling. - */ -#define MAX_USER_TRACE 60 -#define MAX_TRACE 65 - -/* - * Define the size of the compiler stack. This defines how complex - * expressions the compiler can parse. The value should be big enough. - */ -#define COMPILER_STACK_SIZE 400 - -/* - * Maximum number of bits in a bit field. They are stored in printable - * strings, 6 bits per byte. - * The limit is more based on considerations of speed than memory - * consumption. - */ -#define MAX_BITS 6144 /* 1 KByte */ - -/* - * Define what port number the game is to use. - */ -#define PORTNO 4242 - -/* Maximum numbers of ports the GD accepts connections to. - */ -#define MAXNUMPORTS 20 - -/* - * Max number of local variables in a function. - */ -#define MAX_LOCAL 50 - -/* Maximum number of evaluated nodes/loop. - * If this is exceeded, the current function is halted. - * ls() can take about 30000 for large directories. - */ -#define MAX_COST 1000000 - -/* Define ALLOW_FILENAME_SPACES if the driver should accept space characters - * in filenames. If it is not defined, a hardcoded test for space characters - * is activated. - */ -#undef ALLOW_FILENAME_SPACES - - -/* Define SHARE_VARIABLES if a clone's variables are to be assigned - * from the current blueprint's variables. Undefine it if clones - * should be initialized by __INIT(). - */ -#undef SHARE_VARIABLES - -/* CATCH_RESERVED_COST is added to the eval cost for the time executing code - * guarded by a catch() statement, so that an eval_cost-too-big error can - * still be caught and handled. - * - * To catch an eval_cost too big error in an object that called recursive - * master functions, CATCH_RESERVED_COST should be greater than - * MASTER_RESERVED_COST * 2. - * TODO: Check that at runtime. - */ -#define CATCH_RESERVED_COST 2000 - -/* MASTER_RESERVED_COST is the total reserve available for master applies. - * It is halved for every recursion into another master apply. - */ -#define MASTER_RESERVED_COST 0x200 /* must be power of 2 */ -/* TODO: Check that at runtime */ - -/* - * Where to swap out objects. This file is not used if TIME_TO_SWAP is 0. - * If the mudlib is mounted via nfs but your /tmp isn't, and isn't purged - * periodically either, it's a good idea to place the swap file there. - * The hostname will be appended to the filename defined here. - */ -#define SWAP_FILE "LP_SWAP.3" - -/* Where to save the WIZLIST information. - * If not defined, and neither given on the commandline, the driver will - * not read the WIZLIST file. - */ -#define WIZLIST_FILE "WIZLIST" - -/* This is the maximum array size allowed for one single array. - * If 0, any size is allowed. - */ -#define MAX_ARRAY_SIZE 3000 - -/* This is the maximum size (number keys and values) allowed for one - * single mapping. - * If 0, any size is allowed. - */ -#define MAX_MAPPING_SIZE 15000 - -/* This is the maximum number of callouts allowed at one time. - * If 0, any number is allowed. - */ -#define MAX_CALLOUTS 0 - -/* - * If this is defined, expensive operations like string additions - * receive additional evalcosts depending on the amount of data handled. - */ - -#define DYNAMIC_COSTS - -/* - * Maximum number of players in the game. - */ -#define MAX_PLAYERS 50 - -/* - * When uploading files, we want fast response; however, normal players - * shouldn't be able to hog the system in this way. Define ALLOWED_ED_CMDS - * to be the ratio of the no of ed cmds executed per player cmd, and - * MAX_CMDS_PER_BEAT to be the max no of buffered player commands the - * system will accept in each heartbeat interval. - */ - -#define ALLOWED_ED_CMDS 20 -#define MAX_CMDS_PER_BEAT 5 /* not implemented yet :-( */ - -/* - * Reserve an extra memory area from malloc(), to free when we run out - * of memory to get some warning and start Armageddon. - * If this value is 0, no area will be reserved. - */ -#define RESERVED_USER_SIZE 700000 -#define RESERVED_MASTER_SIZE 100000 -#define RESERVED_SYSTEM_SIZE 200000 - -/* Define the size of the shared string hash table. This number needn't - * be prime, probably between 1000 and 30000; if you set it to about 1/5 - * of the number of distinct strings you have, you will get a hit ratio - * (number of comparisons to find a string) very close to 1, as found strings - * are automatically moved to the head of a hash chain. You will never - * need more, and you will still get good results with a smaller table. - * If the size is a power of two, hashing will be faster. - */ - -#define HTABLE_SIZE 4096 - -/* Define the size of the table of defines, reserved words, identifiers - * and efun names. Should be either several times smaller than HTABLE_SIZE - * or identical with it. - */ -#define ITABLE_SIZE 256 /* 256 is probably fastest */ - -/* Object hash table size. - * Define this like you did with the strings; probably set to about 1/4 of - * the number of objects in a game, as the distribution of accesses to - * objects is somewhat more uniform than that of strings. - */ - -#define OTABLE_SIZE 1024 - -/* Maximum size of an expanded preprocessor definition. - */ - -#define DEFMAX 65000 - -/* the number of apply_low cache entries will be 2^APPLY_CACHE_BITS. - */ -#define APPLY_CACHE_BITS 12 - -/* The parameters of the regular expression/result cache. - * The expression cache uses a hashtable of RXCACHE_TABLE entries. - * Undefine RXCACHE_TABLE to disable the all regexp caching. - */ - -#define RXCACHE_TABLE 8192 - -/* Define COMPAT_MODE if you are using the 2.4.5 mudlib or one of its - * derivatives. - */ -#undef COMPAT_MODE - -/* Define STRICT_EUIDS if the driver is to enforce the use of euids, - * ie. load_object() and clone_object() require the current object to - * have a non-zero euid. - */ -#undef STRICT_EUIDS - -/* Define USE_PARSE_COMMAND if you want the efun parse_command(). - */ -#define USE_PARSE_COMMAND - -/* Define USE_SET_LIGHT if you want the efun set_light() and the - * simple 2.4.5 light system. - */ -#define USE_SET_LIGHT - -/* Define USE_SET_IS_WIZARD if you want the efun set_is_wizard(). - */ -#define USE_SET_IS_WIZARD - -/* Define USE_PROCESS_STRING if you want the efun process_string(). - */ -#define USE_PROCESS_STRING - -/* Define INITIALIZATION_BY___INIT if you want all initializations of variables - * to be suspended till the object is created ( as supposed to initialization - * at compile time; the latter is more memory efficient for loading and faster - * at cloning, while the former allows to use efuns, e.g. shutdown(). - */ - -#define INITIALIZATION_BY___INIT - -/* Define USE_SYSTEM_CRYPT if you want crypt() to be implemented by your - * operating system (assuming it offers this function). This makes your - * programm smaller and may even let you take advantage of improvements - * of your OS, but may also prohibit transporting encrypted date like - * passwords between different systems. - * Undefine USE_SYSTEM_CRYPT if you want to use the driver's portable - * crypt() implementation. - */ -#define USE_SYSTEM_CRYPT - -/* Define MASTER_NAME if you want something different from "obj/master" resp. - * "secure/master" as default. - */ -/* #define MASTER_NAME "kernel/master" */ - -/* The input escape character. - */ -#define INPUT_ESCAPE "!" - -/* - * Define MAX_BYTE_TRANSFER to the number of bytes you allow to be read - * and written with read_bytes and write_bytes - */ - -#define MAX_BYTE_TRANSFER 50000 - -/* Define this to the port on which the driver can receive UDP message. - * If set to -1, the port will not be opened unless the mud is given a valid - * port number on startup with the -u commandline option. - */ -#define UDP_PORT 4246 - -/* Maximum size of a socket send buffer. - */ -#define SET_BUFFER_SIZE_MAX 65536 - -/* Define this if you want IPv6 support (assuming that your host - * actually offers this. - */ -#undef USE_IPV6 - -/* Define this if you want alist support. - */ -#undef USE_ALISTS - -/* Define this if you want to allow call_other()s on arrays of objects. - */ -#define USE_ARRAY_CALLS - -/* Define this if you want PCRE instead of traditional regexps. - */ -#define USE_PCRE - -/* Define this if you want to use builtin PCRE (ignored when PCRE - * is disabled as a whole). - */ -#undef USE_BUILTIN_PCRE - -/* Define this if you want MCCP (Mud Control Compression Protocol). - */ -#define USE_MCCP - -/* Define this if you want TLS (Transport Layer Security) over Telnet. - */ -#undef USE_TLS - -/* Define this if you want mySQL support (assuming that your host - * actually offers this. - */ -#undef USE_MYSQL - -/* Define this if you want the obsolete and deprecated efuns. - */ -#define USE_DEPRECATED - -/* Runtime statistics: - * COMM_STAT: count number and size of outgoing packets. - * APPLY_CACHE_STAT: count number of hits and misses in the apply cache. - */ -#define COMM_STAT -#define APPLY_CACHE_STAT - -/* Which memory manager to use. Possible defines are - * MALLOC_smalloc: Satoria's malloc. Fastest, uses the least memory, - * supports garbage collection. - * MALLOC_sysmalloc: the normal system malloc() - * MALLOC_ptmalloc: ptmalloc from www.malloc.de - threadsafe. - */ - -#define MALLOC_smalloc - -/* If MIN_MALLOCED is > 0, the gamedriver will reserve this amount of - * memory on startup for large blocks, thus reducing the large block - * fragmentation. The value therefore should be a significantly large - * multiple of the large chunk size. - * As a rule of thumb, reserve enough memory to cover the first couple - * of days of uptime. - */ -#define MIN_MALLOCED 0 - -/* If MIN_SMALL_MALLOCED is > 0, the gamedriver will reserve this - * amount of memory on startup for small blocks, thus reducing the small block - * fragmentation. The value therefore should be a significantly large - * multiple of the small chunk size. - * As a rule of thumb, reserve enough memory to cover the first couple - * of days of uptime. - */ -#define MIN_SMALL_MALLOCED 0 - -/* This value gives the upper limit for the total allocated memory - * (useful for systems with no functioning process limit). - * A value of 0 means 'unlimited'. - */ -#define MAX_MALLOCED 0x4000000 - -/* Define this to let the memory allocator request memory from the system - * directly using sbrk() (assuming the system supports it). - * If not defined, the memory allocator will use malloc(). - * Supported by: MALLOC_smalloc - */ -#define MALLOC_SBRK - -/* Define this to annotate all allocations with a magic word to find - * simple misuses of memory (like multiple frees). - * Supported by: MALLOC_smalloc - */ -#define MALLOC_CHECK - -/* Define this to annotate all allocations with file:line of the driver - * source responsible for it. - * Supported by: MALLOC_smalloc - */ -#undef MALLOC_TRACE - -/* Define this to annotate all allocations with file:line of the lpc program - * responsible for it. - * Supported by: MALLOC_smalloc - */ -#undef MALLOC_LPC_TRACE - -/* Define this to log all calls to esbrk() (the system memory allocator). - * Works best if MALLOC_TRACE, or also MALLOC_LPC_TRACE, are defined. - * Supported by: MALLOC_smalloc - */ -#undef MALLOC_SBRK_TRACE - -/* Trace the most recently executed bytecode instructions? - */ -#define TRACE_CODE - -/* If using TRACE_CODE , how many instructions should be kept? */ -#define TOTAL_TRACE_LENGTH 0x1000 - -/* If you want to use threads to write the data to the sockets - * define USE_PTHREADS. To limit the memory usage of each thread - * define PTHREAD_WRITE_MAX_SIZE to a value greater than zero. - * The implementation will discard the oldest not yet written - * data blocks to keep memoty usage under the limit. - */ -#undef USE_PTHREADS -#define PTHREAD_WRITE_MAX_SIZE 100000 - -/*----------------------------------------------------------------*/ -/* The following macros activate various debugging and profiling - * code segments. - */ - -/* Enable basic run time sanity checks. This will use more time - * and space, but nevertheless you are strongly encouraged to keep - * it defined. - */ -#define DEBUG - -/* The DEBUG level for the ERQ daemon: 0 means 'no debug', 1 means - * 'standard debug', 2 means 'verbose debug'. - */ -#define ERQ_DEBUG 0 - -/* Enable debug output from the LPC compiler. - */ -/* #define YYDEBUG 1 */ - -/* Disable inlining. - */ -/* #define NO_INLINES */ - -/* Enable the shared string checking (enables commandline option - * --check-strings). - */ -#define CHECK_STRINGS - -/* Shared strings are never really freed. - */ -/* #define KEEP_STRINGS */ - -/* Activate debug prints in the telnet machine. - */ -/* #define DEBUG_TELNET */ - -/* Activate allocation debug prints in the smalloc module. - */ -/* #define DEBUG_SMALLOC_ALLOCS */ - -/* Trace changes to the tot_alloc_object and tot_alloc_object_size - * statistics, in order to find the status bugs (enables commandline - * option --check-object-stat). Will produce a decent amount of - * output on stderr. - */ -#define CHECK_OBJECT_STAT - -/* Enable the automatic data cleanup from the backend. - * TODO: Remove this macro once it is proven stable. - */ -#define NEW_CLEANUP - -/* Activate total mapping size consistency check code. It has a small - * impact on the execution speed. This define was used to find - * the inaccuracy in the mapping statistic. - */ -/* #define CHECK_MAPPING_TOTAL */ - -/* Activate object refcount check code. It will produce a decent - * amount of log output. It will also fatal() the driver as soon - * as it detects an inconsistency in the list of destructed objects. - */ -/* #define CHECK_OBJECT_REF */ - -/* Activate object referencing checking code during the GC. It will - * print error messages to gcout when an object or program is - * referenced as something else. No penalty for using. - * Requires MALLOC_TRACE to work. Incompatible with DUMP_GC_REFS. - */ -#ifdef MALLOC_TRACE -# define CHECK_OBJECT_GC_REF -#endif - -/* Sometimes the GC stumbles over invalid references to memory - * blocks (namely 'Program referenced as something else'). Define - * this macro to get a detailed dump of all found references - * (Warning: LOTS of output!). Incompatible with CHECK_OBJECT_GC_REF. - */ -/* #define DUMP_GC_REFS */ - -/* Enable usage statistics of VM instructions. - * For profiling of the VM instructions themselves, see the Profiling - * Options in the Makefile. - */ -/* #define OPCPROF */ - -#ifdef OPCPROF -/* With OPCPROF, the dump of the statistics include the names - * of the instructions. - */ -/* #define VERBOSE_OPCPROF */ -#endif - -/* Define this if you want structs supported. - */ -#define USE_STRUCTS - -/* Define this if you want the new inline closure syntax supported. - * (f-020528) - */ -#define USE_NEW_INLINES - -#endif /* CONFIG_H__ */ diff --git a/src/hosts/be/driver.r b/src/hosts/be/driver.r deleted file mode 100644 index 64616c8..0000000 --- a/src/hosts/be/driver.r +++ /dev/null @@ -1,10 +0,0 @@ -// BeOS Resource Specifications - -// --- Icons --- -resource('ICON', 101, "BEOS:L:STD_ICON") { - read("icon-32x32.raw") -} - -resource('MICN', 101, "BEOS:M:STD_ICON") { - read("icon-16x16.raw") -} diff --git a/src/hosts/be/driver.rsrc b/src/hosts/be/driver.rsrc deleted file mode 100644 index 2388ae69c490ede61b353d3d154499c12be33fce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3368 zcmeHJyKWOf6umoHZ&oX`8y6OmT>)kOAk9j|6hR~|k|G`31koWuMM3H1V~qA+((wuK z2eDi%=bV{+L`WbZxj^zw)}A}(p8N70k6(ZI{Osf1r+4-jS*}iK;qWZY5<LGT<brtg z)BA|t`?XmM+28ufHw3-${*SSaLh>orabL)ObJ%x{2mkw<pF?jCy*<ppVFvz>8E6aM zWDwn|crW6tD2g<SxQERmIieVJTS(tdw)O?O&B-Z}phK-jxYUt8x0;t{um@UKRb6-b z9M^1>P<O}M2~dkFZ_o7{@gRvchMeZu;jP?ouWcPIC=FrYw6{cTn(Lvia>!6+VWG9Q z`j-LmTb9#F5G-A<1U$>q6#Ehf2{?2aSeC{vg$V2UR+b|?VD#bnRxYN0zz4X6|DC&a z>$Pq0cQ5`37XCnd0{m3?7$zP+ApUxS;HUcC*2iW6^#7Poc+?W`<6G9f!S21uxm8tX zA^*e?-w<Ey3exrIar^-u@E!6)eTE2xF*;!56YcuDWBSBL&Z#K{<sa%J+ZpL4{yA@| zFGhXH&$FF19@ab(w;26JePpwL=Gh&Nb3wjf^|z7puan^4riT0lZ`5DHK0TFSFz_%t zh!tSWYm+w|Xe5xrKy4w3>08a%Jx&9CBpuvf-eJ)3&C-}50=*;vc)&5B2+_efXANdP zoG-=)><tjStUV4Nd7djhz=i^+3%S4x`NBcQuVzlP=E|BxeAE_jTP$Ybz!(l%z;iC4 z=lIT<WoiN&G2lFsKKLvf@V4g*Bjq^^`R)aZ#3#<Z%Zu|XY~A6B?BwOE)%Drs+4arx Z?Zx@(s%J{^RxVh*`Q7Tri|<eA{ujF{(pCTf diff --git a/src/hosts/be/icon-16x16.raw b/src/hosts/be/icon-16x16.raw deleted file mode 100644 index ec5dccec5bd1f17b1ab7a6a500ad4196dcef33e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmYk1F%H8p3<K%3QHn0w)z9f8UHzQ=&y!0kE)W8Sbs_~@)8{3u+n;ZDf3-#in{E#Y zWPFOpKJX<YG~>3Im^Z)h#(@rM<>~g!-v1nENE2_z*y*C>l~)~nk20L#pMo963DlgM W64EJ~zVfh|R=ke5*3m?5wu&Ef@>5Fy diff --git a/src/hosts/be/icon-32x32.raw b/src/hosts/be/icon-32x32.raw deleted file mode 100644 index 7a374e7ccd5c7fce90be3aac93f6bc47b6aaa125..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 zcmaKrJ&wXK5QU$t5Jf30QKU+@Er-Z8D03OIhl%97a2q5F?|U;g4(w_NBy4~4<_|mP z4CFWawU1~=T!v5oaU2Gon+00o+*@3XLl*{`v6mjpa^Qt2hU>A+=YM#^nem_D8g4i2 z{M=1{z{VfqC-RH&BNp!-%zryE`9=BP@E>}Wb{Glu-Bo?>JiWUb>smc5zBu!P`Axmj z>YU#5H{AG>^|3!NgYahR?Z8#O_#wD<R)XeJ`;$7bwsl?j-7G|_&(#6RabGz)&X@g3 zt@**#m173y>)7U-Eco}S=y3+~n|inT3VV6h0_fma6Xc4x-;iQT&IdZ!SR_*U*p&Ol zK?nOwDo!A0grWzAPAQ6f5g=}y7nCU~?g@D3llHp7R0pc%z~sy3oH1gI6@v|)XDMXT z8`taN^ccqO6;f|{_EtFNc`6SE;Gy%VCHFC7o<=J|g*2`w>B*<D@%+*oljMtz`gP;R I%nR4q59`Zk=l}o! diff --git a/src/hosts/be/machine.h b/src/hosts/be/machine.h deleted file mode 100644 index 9570c62..0000000 --- a/src/hosts/be/machine.h +++ /dev/null @@ -1,305 +0,0 @@ -/* machine.h for BeOS. - * - * Handcrafted to support cross compilation. - */ - -#ifndef MACHINE_H -#define MACHINE_H - -#include <BeBuild.h> - -/* Define if using alloca.c. */ -/* #undef C_ALLOCA */ - -/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. - This function is required for alloca.c support on those systems. */ -/* #undef CRAY_STACKSEG_END */ - -/* Define if you have alloca, as a function or macro. */ -#define HAVE_ALLOCA 1 - -/* Define if you have <alloca.h> and it should be used (not on Ultrix). */ -#define HAVE_ALLOCA_H 1 - -/* Define as __inline if that's what the C compiler calls it. */ -/* #undef inline */ - -/* Define to `int' if <sys/types.h> doesn't define. */ -/* #undef pid_t */ - -/* Define as the return type of signal handlers (int or void). */ -#define RETSIGTYPE void - -/* Set in response to the signal handler return type, since not all - * compilers understand direct definition comparisons - */ -#define RETSIGTYPE_VOID 1 - -/* Define to `unsigned' if <sys/types.h> doesn't define. */ -/* #undef size_t */ - -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at run-time. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown - */ -/* #undef STACK_DIRECTION */ - -/* Define if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* does the compiler provide inline functions? - * With Metrowerks, WARN_ALL implies '-ansi strict' which makes - * inlines illegal. - */ - -#if !defined(__MWERKS__) || !defined(WARN_ALL) -# define HAS_INLINE 1 -#endif - -/* A mask that allows to extract an unsigned char from a signed */ -#define CHARBIT_MASK 0xff - -#define RENAME_HANDLES_DIRECTORIES 1 - -#if B_BEOS_VERSION > B_BEOS_VERSION_4 - -/* Does the system have a getrusage call? */ -# define HAVE_GETRUSAGE 1 -/* If so, is it restricted to user and system time? */ -# define GETRUSAGE_RESTRICTED 1 -/* Is it available as a subfunction of syscall() ? */ -/* #undef GETRUSAGE_VIA_SYSCALL */ - -#endif /* BeOS version >= 4.5 */ - -/* Can ru_utime / ru_stime be accessed as a timeval with tv_sec and tv_usec ? */ -#if defined(__MWERKS__) || defined(B_BEOS_VERSION_5) -# define RUSAGE_USEC 1 -#endif - -/* the atari strtol() used to consider characters '9' < c < 'A' to be numeric */ -/* #undef STRTOL_BROKEN */ - -/* needs the first argument of strtol be declared as const ? */ -#ifndef __MWERKS__ -# undef STRTOL_CONST_CHARP -#endif - -/* Define if you have bcopy, and it handles overlapping ranges correctly. */ -#ifndef __MWERKS__ -# define OVERLAPPING_BCOPY -#endif - -#ifdef __INTEL__ -# define MALLOC_ALIGN 4 -#else -# define MALLOC_ALIGN 8 -#endif - -/* does the compiler know of a 'ssize_t' type? */ -#define HAVE_SSIZE_T 1 - -/* does the compiler know of a 'long long' type? */ -#define HAVE_LONG_LONG 1 - -/* does the compiler know of a 'bool' type? */ -/* #undef HAVE_BOOL */ - -/* what kind of pointer is used by malloc() et al */ -#define POINTER void * -#define FREE_RETURNS_VOID 1 - -/* can we define our own malloc() safely? */ -/* #undef SBRK_OK */ - -/* The following is needed for smalloc without SBRK_OK to use memory - * efficiently. smalloc will malloc blocks that are a large power of - * two, minus EXTERN_MALLOC_OVERHEAD. If you have no idea what number to - * choose, compile & run util/overhead.c - */ -#define EXTERN_MALLOC_OVERHEAD 0 - -/* How to set a socket non-blocking */ -/* #undef USE_IOCTL_FIONBIO */ -/* #undef USE_FCNTL_O_NDELAY */ -/* #undef USE_FCNTL_FNDELAY */ - -/* Can F_SETOWN be used on a socket? */ -/* TODO: DOes it? */ -#define USE_FCNTL_SETOWN 1 - -/* Can SO_OOBINLINE be used on a socket? */ -/* TODO: Can it? */ -#define USE_OOBINLINE 1 - -/* Does the machine offer IPv6? */ -/* #undef HAS_IPV6 */ - -/* Does the machine offer mySQL? */ -/* #undef HAS_MYSQL */ - -/* Does the machine offer PostgreSQL? */ -/* #undef HAS_PGSQL */ - -/* Does the machine offer GnuTLS? */ -/* #undef HAS_GNUTLS */ - -/* Does the machine offer OpenSSL/SSL? */ -/* #undef HAS_OPENSSL */ - -/* Does the machine offer pthread library? */ -/* #undef HAS_PTHREADS */ - -/* Does the machine offer pthread_atfork()? */ -/* #undef HAS_PTHREAD_ATFORK */ - -/* Does the machine offer pcre library? */ -/* #undef HAS_PCRE */ - -/* define the erq include file. */ -#define ERQ_INCLUDE "util/erq/erq.h" - -/* define the host-specific include file */ -/* #undef HOST_INCLUDE */ - -/* The number of bytes in a char *. */ -#define SIZEOF_CHAR_P 4 - -/* The number of bytes in a int. */ -#define SIZEOF_INT 4 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/* The number of bytes in a long long. */ -#define SIZEOF_LONG_LONG 8 - -/* The number of bytes in a short. */ -#define SIZEOF_SHORT 2 - -/* Define if you have the _crypt function. */ -/* #undef HAVE__CRYPT */ - -/* Define if you have the bzero function. */ -/* #undef HAVE_BZERO */ - -/* Define if you have the crypt function. */ -#define HAVE_CRYPT 1 - -/* Define if you have the fchmod function. */ -/* #undef HAVE_FCHMOD */ - -/* Define if you have the fcntl function. */ -#define HAVE_FCNTL 1 - -/* Define if you have the getcwd function. */ -#define HAVE_GETCWD 1 - -/* Define if you have the getdomainname function. */ -/* #undef HAVE_GETDOMAINNAME */ - -/* Define if you have the gettimeofday function. */ -#define HAVE_GETTIMEOFDAY 1 - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY 1 - -/* Define if you have the memmem function. */ -/* #undef HAVE_MEMMEM */ - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE 1 - -/* Define if you have the memset function. */ -#define HAVE_MEMSET 1 - -/* Define if you have the strchr function. */ -#define HAVE_STRCHR 1 - -/* Define if you have the strcspn function. */ -#define HAVE_STRCSPN 1 - -/* Define if you have the strdup function. */ -#define HAVE_STRDUP 1 - -/* Define if you have the strrchr function. */ -#define HAVE_STRRCHR 1 - -/* Define if you have the sysconf function. */ -#define HAVE_SYSCONF 1 - -/* Define if you have the wait3 function. */ -/* #undef HAVE_WAIT3 */ - -/* Define if you have the waitpid function. */ -#define HAVE_WAITPID 1 - -/* Define if you have the <bstring.h> header file. */ -/* #undef HAVE_BSTRING_H */ - -/* Define if you have the <crypt.h> header file. */ -/* #undef HAVE_CRYPT_H */ - -/* Define if you have the <dirent.h> header file. */ -#define HAVE_DIRENT_H 1 - -/* Define if you have the <libc.h> header file. */ -/* #undef HAVE_LIBC_H */ - -/* Define if you have the <limits.h> header file. */ -#define HAVE_LIMITS_H 1 - -/* Define if you have the <memory.h> header file. */ -#define HAVE_MEMORY_H 1 - -/* Define if you have the <ndir.h> header file. */ -/* #undef HAVE_NDIR_H */ - -/* Define if you have the <netdb.h> header file. */ -#define HAVE_NETDB_H 1 - -/* Define if you have the <stdlib.h> header file. */ -#define HAVE_STDLIB_H 1 - -/* Define if you have the <string.h> header file. */ -#define HAVE_STRING_H 1 - -/* Define if you have the <sys/dir.h> header file. */ -/* #undef HAVE_SYS_DIR_H */ - -/* Define if you have the <sys/ndir.h> header file. */ -/* #undef HAVE_SYS_NDIR_H */ - -/* Define if you have the <sys/param.h> header file. */ -#define HAVE_SYS_PARAM_H 1 - -/* Define if you have the <sys/rusage.h> header file. */ -/* #undef HAVE_SYS_RUSAGE_H */ - -/* Define if you have the <sys/termios.h> header file. */ -/* #undef HAVE_SYS_TERMIOS_H */ - -/* Define if you have the <sys/time.h> header file. */ -#define HAVE_SYS_TIME_H 1 - -/* Define if you have the <unistd.h> header file. */ -#define HAVE_UNISTD_H 1 - -/* Define if you have the <values.h> header file. */ -#if !defined(__MWERKS__) && !defined(B_BEOS_VERSION_5) -# define HAVE_VALUES_H 1 -#endif - -/* Define if you have the m library (-lm). */ -/* #undef HAVE_LIBM */ - -/* Define if you have the nsl library (-lnsl). */ -/* #undef HAVE_LIBNSL */ - -/* Define if you have the socket library (-lsocket). */ -/* #undef HAVE_LIBSOCKET */ - -#endif diff --git a/src/hosts/be/set-version b/src/hosts/be/set-version deleted file mode 100755 index 22c66f1..0000000 --- a/src/hosts/be/set-version +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh -# -# Usage: set-version <executable> -# Read the version information from ./patchlevel.h and set the BeOS -# versionflags of <executable> accordingly. - -#-------------------------------------------------------------------------- -# ---------- MAIN ---------- - -if [ $# -ne 1 ]; then - cat << __USAGE__ -Usage: set-version <executable> - Read the version information from ./patchlevel.h and set the BeOS - versionflags of <executable> accordingly. -__USAGE__ - exit 1; -fi - -# Determine the version variables -reldate=$(sed -e 's/#define RELEASE_DATE ".*, \(..\) \(...\) \(....\) .*/\1. \2 \3/p' -e D patchlevel.h) -reldatedash=$(sed -e 's/#define RELEASE_DATE ".*, \(..\) \(...\) \(....\) .*/\1-\2-\3/p' -e D patchlevel.h) -projversion=$(sed -e 's/#define PROJ_VERSION "\(.*\)"/\1/p' -e D patchlevel.h) -version_major=$(sed -e 's/#define VERSION_MAJOR "\(.*\)"/\1/p' -e D patchlevel.h) -version_minor=$(sed -e 's/#define VERSION_MINOR "\(.*\)"/\1/p' -e D patchlevel.h) -version_micro=$(sed -e 's/#define VERSION_MICRO "\(.*\)"/\1/p' -e D patchlevel.h) -version_patch=$(sed -e 's/#define VERSION_PATCH "\(.*\)"/\1/p' -e D patchlevel.h) -release_type=$(sed -e 's/#define RELEASE_TYPE "\(.*\)"/\1/p' -e D patchlevel.h) - -if [ $((${version_minor} % 2)) -eq 0 ]; then - - # --- Stable versions --- - - setverflags="-app $version_major $version_minor $version_micro" - - if [ "${release_type}" = "rel" ]; then - # --- Stable version --- - setverflags="${setverflags} f" - vstring="${version_major}.${version_minor}.${version_micro}" - fi - - if [ "${release_type}" = "pre" ]; then - # --- Pre-release version --- - setverflags="${setverflags} d ${version_patch}" - vstring="${version_major}.${version_minor}.${version_micro}-pre.${version_patch}" - fi - - if [ "${release_type}" = "dev" ]; then - # --- Current version --- - setverflags="${setverflags} d ${version_patch}" - vstring="${version_major}.${version_minor}.${version_micro}-dev.${version_patch}" - fi - -else - - # --- Development Versions --- - - setverflags="-app ${version_major} ${version_minor} ${version_patch}" - setverflags="${setverflags} f" - vstring="${version_major}.${version_minor}.${version_patch}" - -fi - -# Do it - -echo "setversion $1 ${setverflags} -short \"${vstring}\" -long \"LDMud ${vstring} - a LPMud Gamedriver\"" -setversion $1 ${setverflags} -short "${vstring}" -long "LDMud ${vstring} - a LPMud Gamedriver" - -exit 0 diff --git a/src/hosts/be/socketinc.h b/src/hosts/be/socketinc.h deleted file mode 100644 index 36eb8ad..0000000 --- a/src/hosts/be/socketinc.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef BE_SOCKETINC_H -#define BE_SOCKETINC_H - -#include <sys/socket.h> -#include <netinet/in.h> - -#define SOCKET_T int -#define socket_number(s) (s) -#define socket_ioctl ioctl -#define socket_select select -#define socket_read(fd,pt,l) recv(fd,pt,l,0) -#define socket_write(fd,pt,l) (send(fd,pt,l,0) >= 0 ? l : -1) -#define socket_close closesocket -#define socketpair(a,b,c,d) (-1) - -#if defined(NEED_SWAP16) && defined(__INTEL__) -/* This function is missing from libroot.so.LIB :-( */ -INLINE static uint16 _imp____swap_int16(uint16 uarg) -{ - return ((uarg & 0xff00) >> 16) | ((uarg & 0x00ff) << 16); -} -#endif - -#endif /* BE_SOCKETINC_H */ diff --git a/src/hosts/crypt.c b/src/hosts/crypt.c deleted file mode 100644 index a88a3c6..0000000 --- a/src/hosts/crypt.c +++ /dev/null @@ -1,618 +0,0 @@ -/*------------------------------------------------------------------ - * Portable crypt() Implementation. - * - * Copyright 1990,1991 Eric Young. All Rights Reserved. - * This version of crypt has been developed from my MIT compatable - * DES library. - * The library is available at pub/DES at ftp.psy.uq.oz.au - * eay@psych.psy.uq.oz.au - *------------------------------------------------------------------ - */ - -#include "../machine.h" -#include <stdio.h> - -/*--------------------------------------------------------------------*/ - -typedef unsigned char des_cblock[8]; - -typedef struct des_ks_struct -{ - des_cblock _; -} des_key_schedule[16]; - -#define DES_KEY_SZ (sizeof(des_cblock)) -#define DES_ENCRYPT 1 -#define DES_DECRYPT 0 - -typedef unsigned char crypt_uchar; - -#if SIZEOF_SHORT == 2 -typedef unsigned short crypt_ushort; -#else -# error "Unsupported size of short." -#endif - -#if SIZEOF_INT == 4 -typedef unsigned int crypt_uint; -#else -# error "Unsupported size of int." -#endif - -#if SIZEOF_LONG == 4 -typedef unsigned long crypt_ulong; -#elif SIZEOF_INT == 4 -typedef unsigned int crypt_ulong; -#else -# error "Unsupported size of long." -#endif - -static void body(crypt_ulong *out0, crypt_ulong *out1, des_key_schedule *ks, crypt_ulong Eswap0, crypt_ulong Eswap1); - -#define ITERATIONS 16 -#define HALF_ITERATIONS 8 - -#define c2l(c,l) (l =((crypt_ulong)(*((c)++))) , \ - l|=((crypt_ulong)(*((c)++)))<< 8, \ - l|=((crypt_ulong)(*((c)++)))<<16, \ - l|=((crypt_ulong)(*((c)++)))<<24) - -#define l2c(l,c) (*((c)++)=(crypt_uchar)(((l) )&0xff), \ - *((c)++)=(crypt_uchar)(((l)>> 8)&0xff), \ - *((c)++)=(crypt_uchar)(((l)>>16)&0xff), \ - *((c)++)=(crypt_uchar)(((l)>>24)&0xff)) - -/*--------------------------------------------------------------------*/ -static unsigned long SPtrans[8][64]={ -{ -/* nibble 0 */ -0x00410100, 0x00010000, 0x40400000, 0x40410100, -0x00400000, 0x40010100, 0x40010000, 0x40400000, -0x40010100, 0x00410100, 0x00410000, 0x40000100, -0x40400100, 0x00400000, 0x00000000, 0x40010000, -0x00010000, 0x40000000, 0x00400100, 0x00010100, -0x40410100, 0x00410000, 0x40000100, 0x00400100, -0x40000000, 0x00000100, 0x00010100, 0x40410000, -0x00000100, 0x40400100, 0x40410000, 0x00000000, -0x00000000, 0x40410100, 0x00400100, 0x40010000, -0x00410100, 0x00010000, 0x40000100, 0x00400100, -0x40410000, 0x00000100, 0x00010100, 0x40400000, -0x40010100, 0x40000000, 0x40400000, 0x00410000, -0x40410100, 0x00010100, 0x00410000, 0x40400100, -0x00400000, 0x40000100, 0x40010000, 0x00000000, -0x00010000, 0x00400000, 0x40400100, 0x00410100, -0x40000000, 0x40410000, 0x00000100, 0x40010100, -}, -{ -/* nibble 1 */ -0x08021002, 0x00000000, 0x00021000, 0x08020000, -0x08000002, 0x00001002, 0x08001000, 0x00021000, -0x00001000, 0x08020002, 0x00000002, 0x08001000, -0x00020002, 0x08021000, 0x08020000, 0x00000002, -0x00020000, 0x08001002, 0x08020002, 0x00001000, -0x00021002, 0x08000000, 0x00000000, 0x00020002, -0x08001002, 0x00021002, 0x08021000, 0x08000002, -0x08000000, 0x00020000, 0x00001002, 0x08021002, -0x00020002, 0x08021000, 0x08001000, 0x00021002, -0x08021002, 0x00020002, 0x08000002, 0x00000000, -0x08000000, 0x00001002, 0x00020000, 0x08020002, -0x00001000, 0x08000000, 0x00021002, 0x08001002, -0x08021000, 0x00001000, 0x00000000, 0x08000002, -0x00000002, 0x08021002, 0x00021000, 0x08020000, -0x08020002, 0x00020000, 0x00001002, 0x08001000, -0x08001002, 0x00000002, 0x08020000, 0x00021000, -}, -{ -/* nibble 2 */ -0x20800000, 0x00808020, 0x00000020, 0x20800020, -0x20008000, 0x00800000, 0x20800020, 0x00008020, -0x00800020, 0x00008000, 0x00808000, 0x20000000, -0x20808020, 0x20000020, 0x20000000, 0x20808000, -0x00000000, 0x20008000, 0x00808020, 0x00000020, -0x20000020, 0x20808020, 0x00008000, 0x20800000, -0x20808000, 0x00800020, 0x20008020, 0x00808000, -0x00008020, 0x00000000, 0x00800000, 0x20008020, -0x00808020, 0x00000020, 0x20000000, 0x00008000, -0x20000020, 0x20008000, 0x00808000, 0x20800020, -0x00000000, 0x00808020, 0x00008020, 0x20808000, -0x20008000, 0x00800000, 0x20808020, 0x20000000, -0x20008020, 0x20800000, 0x00800000, 0x20808020, -0x00008000, 0x00800020, 0x20800020, 0x00008020, -0x00800020, 0x00000000, 0x20808000, 0x20000020, -0x20800000, 0x20008020, 0x00000020, 0x00808000, -}, -{ -/* nibble 3 */ -0x00080201, 0x02000200, 0x00000001, 0x02080201, -0x00000000, 0x02080000, 0x02000201, 0x00080001, -0x02080200, 0x02000001, 0x02000000, 0x00000201, -0x02000001, 0x00080201, 0x00080000, 0x02000000, -0x02080001, 0x00080200, 0x00000200, 0x00000001, -0x00080200, 0x02000201, 0x02080000, 0x00000200, -0x00000201, 0x00000000, 0x00080001, 0x02080200, -0x02000200, 0x02080001, 0x02080201, 0x00080000, -0x02080001, 0x00000201, 0x00080000, 0x02000001, -0x00080200, 0x02000200, 0x00000001, 0x02080000, -0x02000201, 0x00000000, 0x00000200, 0x00080001, -0x00000000, 0x02080001, 0x02080200, 0x00000200, -0x02000000, 0x02080201, 0x00080201, 0x00080000, -0x02080201, 0x00000001, 0x02000200, 0x00080201, -0x00080001, 0x00080200, 0x02080000, 0x02000201, -0x00000201, 0x02000000, 0x02000001, 0x02080200, -}, -{ -/* nibble 4 */ -0x01000000, 0x00002000, 0x00000080, 0x01002084, -0x01002004, 0x01000080, 0x00002084, 0x01002000, -0x00002000, 0x00000004, 0x01000004, 0x00002080, -0x01000084, 0x01002004, 0x01002080, 0x00000000, -0x00002080, 0x01000000, 0x00002004, 0x00000084, -0x01000080, 0x00002084, 0x00000000, 0x01000004, -0x00000004, 0x01000084, 0x01002084, 0x00002004, -0x01002000, 0x00000080, 0x00000084, 0x01002080, -0x01002080, 0x01000084, 0x00002004, 0x01002000, -0x00002000, 0x00000004, 0x01000004, 0x01000080, -0x01000000, 0x00002080, 0x01002084, 0x00000000, -0x00002084, 0x01000000, 0x00000080, 0x00002004, -0x01000084, 0x00000080, 0x00000000, 0x01002084, -0x01002004, 0x01002080, 0x00000084, 0x00002000, -0x00002080, 0x01002004, 0x01000080, 0x00000084, -0x00000004, 0x00002084, 0x01002000, 0x01000004, -}, -{ -/* nibble 5 */ -0x10000008, 0x00040008, 0x00000000, 0x10040400, -0x00040008, 0x00000400, 0x10000408, 0x00040000, -0x00000408, 0x10040408, 0x00040400, 0x10000000, -0x10000400, 0x10000008, 0x10040000, 0x00040408, -0x00040000, 0x10000408, 0x10040008, 0x00000000, -0x00000400, 0x00000008, 0x10040400, 0x10040008, -0x10040408, 0x10040000, 0x10000000, 0x00000408, -0x00000008, 0x00040400, 0x00040408, 0x10000400, -0x00000408, 0x10000000, 0x10000400, 0x00040408, -0x10040400, 0x00040008, 0x00000000, 0x10000400, -0x10000000, 0x00000400, 0x10040008, 0x00040000, -0x00040008, 0x10040408, 0x00040400, 0x00000008, -0x10040408, 0x00040400, 0x00040000, 0x10000408, -0x10000008, 0x10040000, 0x00040408, 0x00000000, -0x00000400, 0x10000008, 0x10000408, 0x10040400, -0x10040000, 0x00000408, 0x00000008, 0x10040008, -}, -{ -/* nibble 6 */ -0x00000800, 0x00000040, 0x00200040, 0x80200000, -0x80200840, 0x80000800, 0x00000840, 0x00000000, -0x00200000, 0x80200040, 0x80000040, 0x00200800, -0x80000000, 0x00200840, 0x00200800, 0x80000040, -0x80200040, 0x00000800, 0x80000800, 0x80200840, -0x00000000, 0x00200040, 0x80200000, 0x00000840, -0x80200800, 0x80000840, 0x00200840, 0x80000000, -0x80000840, 0x80200800, 0x00000040, 0x00200000, -0x80000840, 0x00200800, 0x80200800, 0x80000040, -0x00000800, 0x00000040, 0x00200000, 0x80200800, -0x80200040, 0x80000840, 0x00000840, 0x00000000, -0x00000040, 0x80200000, 0x80000000, 0x00200040, -0x00000000, 0x80200040, 0x00200040, 0x00000840, -0x80000040, 0x00000800, 0x80200840, 0x00200000, -0x00200840, 0x80000000, 0x80000800, 0x80200840, -0x80200000, 0x00200840, 0x00200800, 0x80000800, -}, -{ -/* nibble 7 */ -0x04100010, 0x04104000, 0x00004010, 0x00000000, -0x04004000, 0x00100010, 0x04100000, 0x04104010, -0x00000010, 0x04000000, 0x00104000, 0x00004010, -0x00104010, 0x04004010, 0x04000010, 0x04100000, -0x00004000, 0x00104010, 0x00100010, 0x04004000, -0x04104010, 0x04000010, 0x00000000, 0x00104000, -0x04000000, 0x00100000, 0x04004010, 0x04100010, -0x00100000, 0x00004000, 0x04104000, 0x00000010, -0x00100000, 0x00004000, 0x04000010, 0x04104010, -0x00004010, 0x04000000, 0x00000000, 0x00104000, -0x04100010, 0x04004010, 0x04004000, 0x00100010, -0x04104000, 0x00000010, 0x00100010, 0x04004000, -0x04104010, 0x00100000, 0x04100000, 0x04000010, -0x00104000, 0x00004010, 0x04004010, 0x04100000, -0x00000010, 0x04104000, 0x00104010, 0x00000000, -0x04000000, 0x04100010, 0x00004000, 0x00104010}}; -static crypt_ulong skb[8][64]={ -{ -/* for C bits (numbered as per FIPS 46) 1 2 3 4 5 6 */ -0x00000000,0x00000010,0x20000000,0x20000010, -0x00010000,0x00010010,0x20010000,0x20010010, -0x00000800,0x00000810,0x20000800,0x20000810, -0x00010800,0x00010810,0x20010800,0x20010810, -0x00000020,0x00000030,0x20000020,0x20000030, -0x00010020,0x00010030,0x20010020,0x20010030, -0x00000820,0x00000830,0x20000820,0x20000830, -0x00010820,0x00010830,0x20010820,0x20010830, -0x00080000,0x00080010,0x20080000,0x20080010, -0x00090000,0x00090010,0x20090000,0x20090010, -0x00080800,0x00080810,0x20080800,0x20080810, -0x00090800,0x00090810,0x20090800,0x20090810, -0x00080020,0x00080030,0x20080020,0x20080030, -0x00090020,0x00090030,0x20090020,0x20090030, -0x00080820,0x00080830,0x20080820,0x20080830, -0x00090820,0x00090830,0x20090820,0x20090830, -}, -{/* for C bits (numbered as per FIPS 46) 7 8 10 11 12 13 */ -0x00000000,0x02000000,0x00002000,0x02002000, -0x00200000,0x02200000,0x00202000,0x02202000, -0x00000004,0x02000004,0x00002004,0x02002004, -0x00200004,0x02200004,0x00202004,0x02202004, -0x00000400,0x02000400,0x00002400,0x02002400, -0x00200400,0x02200400,0x00202400,0x02202400, -0x00000404,0x02000404,0x00002404,0x02002404, -0x00200404,0x02200404,0x00202404,0x02202404, -0x10000000,0x12000000,0x10002000,0x12002000, -0x10200000,0x12200000,0x10202000,0x12202000, -0x10000004,0x12000004,0x10002004,0x12002004, -0x10200004,0x12200004,0x10202004,0x12202004, -0x10000400,0x12000400,0x10002400,0x12002400, -0x10200400,0x12200400,0x10202400,0x12202400, -0x10000404,0x12000404,0x10002404,0x12002404, -0x10200404,0x12200404,0x10202404,0x12202404, -}, -{/* for C bits (numbered as per FIPS 46) 14 15 16 17 19 20 */ -0x00000000,0x00000001,0x00040000,0x00040001, -0x01000000,0x01000001,0x01040000,0x01040001, -0x00000002,0x00000003,0x00040002,0x00040003, -0x01000002,0x01000003,0x01040002,0x01040003, -0x00000200,0x00000201,0x00040200,0x00040201, -0x01000200,0x01000201,0x01040200,0x01040201, -0x00000202,0x00000203,0x00040202,0x00040203, -0x01000202,0x01000203,0x01040202,0x01040203, -0x08000000,0x08000001,0x08040000,0x08040001, -0x09000000,0x09000001,0x09040000,0x09040001, -0x08000002,0x08000003,0x08040002,0x08040003, -0x09000002,0x09000003,0x09040002,0x09040003, -0x08000200,0x08000201,0x08040200,0x08040201, -0x09000200,0x09000201,0x09040200,0x09040201, -0x08000202,0x08000203,0x08040202,0x08040203, -0x09000202,0x09000203,0x09040202,0x09040203, -}, -{/* for C bits (numbered as per FIPS 46) 21 23 24 26 27 28 */ -0x00000000,0x00100000,0x00000100,0x00100100, -0x00000008,0x00100008,0x00000108,0x00100108, -0x00001000,0x00101000,0x00001100,0x00101100, -0x00001008,0x00101008,0x00001108,0x00101108, -0x04000000,0x04100000,0x04000100,0x04100100, -0x04000008,0x04100008,0x04000108,0x04100108, -0x04001000,0x04101000,0x04001100,0x04101100, -0x04001008,0x04101008,0x04001108,0x04101108, -0x00020000,0x00120000,0x00020100,0x00120100, -0x00020008,0x00120008,0x00020108,0x00120108, -0x00021000,0x00121000,0x00021100,0x00121100, -0x00021008,0x00121008,0x00021108,0x00121108, -0x04020000,0x04120000,0x04020100,0x04120100, -0x04020008,0x04120008,0x04020108,0x04120108, -0x04021000,0x04121000,0x04021100,0x04121100, -0x04021008,0x04121008,0x04021108,0x04121108, -}, -{/* for D bits (numbered as per FIPS 46) 1 2 3 4 5 6 */ -0x00000000,0x10000000,0x00010000,0x10010000, -0x00000004,0x10000004,0x00010004,0x10010004, -0x20000000,0x30000000,0x20010000,0x30010000, -0x20000004,0x30000004,0x20010004,0x30010004, -0x00100000,0x10100000,0x00110000,0x10110000, -0x00100004,0x10100004,0x00110004,0x10110004, -0x20100000,0x30100000,0x20110000,0x30110000, -0x20100004,0x30100004,0x20110004,0x30110004, -0x00001000,0x10001000,0x00011000,0x10011000, -0x00001004,0x10001004,0x00011004,0x10011004, -0x20001000,0x30001000,0x20011000,0x30011000, -0x20001004,0x30001004,0x20011004,0x30011004, -0x00101000,0x10101000,0x00111000,0x10111000, -0x00101004,0x10101004,0x00111004,0x10111004, -0x20101000,0x30101000,0x20111000,0x30111000, -0x20101004,0x30101004,0x20111004,0x30111004, -}, -{/* for D bits (numbered as per FIPS 46) 8 9 11 12 13 14 */ -0x00000000,0x08000000,0x00000008,0x08000008, -0x00000400,0x08000400,0x00000408,0x08000408, -0x00020000,0x08020000,0x00020008,0x08020008, -0x00020400,0x08020400,0x00020408,0x08020408, -0x00000001,0x08000001,0x00000009,0x08000009, -0x00000401,0x08000401,0x00000409,0x08000409, -0x00020001,0x08020001,0x00020009,0x08020009, -0x00020401,0x08020401,0x00020409,0x08020409, -0x02000000,0x0A000000,0x02000008,0x0A000008, -0x02000400,0x0A000400,0x02000408,0x0A000408, -0x02020000,0x0A020000,0x02020008,0x0A020008, -0x02020400,0x0A020400,0x02020408,0x0A020408, -0x02000001,0x0A000001,0x02000009,0x0A000009, -0x02000401,0x0A000401,0x02000409,0x0A000409, -0x02020001,0x0A020001,0x02020009,0x0A020009, -0x02020401,0x0A020401,0x02020409,0x0A020409, -}, -{/* for D bits (numbered as per FIPS 46) 16 17 18 19 20 21 */ -0x00000000,0x00000100,0x00080000,0x00080100, -0x01000000,0x01000100,0x01080000,0x01080100, -0x00000010,0x00000110,0x00080010,0x00080110, -0x01000010,0x01000110,0x01080010,0x01080110, -0x00200000,0x00200100,0x00280000,0x00280100, -0x01200000,0x01200100,0x01280000,0x01280100, -0x00200010,0x00200110,0x00280010,0x00280110, -0x01200010,0x01200110,0x01280010,0x01280110, -0x00000200,0x00000300,0x00080200,0x00080300, -0x01000200,0x01000300,0x01080200,0x01080300, -0x00000210,0x00000310,0x00080210,0x00080310, -0x01000210,0x01000310,0x01080210,0x01080310, -0x00200200,0x00200300,0x00280200,0x00280300, -0x01200200,0x01200300,0x01280200,0x01280300, -0x00200210,0x00200310,0x00280210,0x00280310, -0x01200210,0x01200310,0x01280210,0x01280310, -}, -{/* for D bits (numbered as per FIPS 46) 22 23 24 25 27 28 */ -0x00000000,0x04000000,0x00040000,0x04040000, -0x00000002,0x04000002,0x00040002,0x04040002, -0x00002000,0x04002000,0x00042000,0x04042000, -0x00002002,0x04002002,0x00042002,0x04042002, -0x00000020,0x04000020,0x00040020,0x04040020, -0x00000022,0x04000022,0x00040022,0x04040022, -0x00002020,0x04002020,0x00042020,0x04042020, -0x00002022,0x04002022,0x00042022,0x04042022, -0x00000800,0x04000800,0x00040800,0x04040800, -0x00000802,0x04000802,0x00040802,0x04040802, -0x00002800,0x04002800,0x00042800,0x04042800, -0x00002802,0x04002802,0x00042802,0x04042802, -0x00000820,0x04000820,0x00040820,0x04040820, -0x00000822,0x04000822,0x00040822,0x04040822, -0x00002820,0x04002820,0x00042820,0x04042820, -0x00002822,0x04002822,0x00042822,0x04042822, -}}; - -/*--------------------------------------------------------------------*/ - -/* See ecb_encrypt.c for a pseudo description of these macros. - */ - -#define PERM_OP(a,b,t,n,m) ((t)=((((a)>>(n))^(b))&(m)),\ - (b)^=(t),\ - (a)^=((t)<<(n))) - -#define HPERM_OP(a,t,n,m) ((t)=((((a)<<(16-(n)))^(a))&(m)),\ - (a)=(a)^(t)^(t>>(16-(n))))\ - -static char shifts2[16]={0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0}; - -/*--------------------------------------------------------------------*/ -static void -des_set_key (des_cblock *key, des_key_schedule schedule) - -{ - register unsigned long c, d, t, s; - register unsigned char *in; - unsigned long *k; - register int i; - - k = (unsigned long *)schedule; - in = (crypt_uchar *)key; - - c2l(in,c); - c2l(in,d); - - /* do PC1 in 60 simple operations */ - PERM_OP(d,c,t,4,0x0f0f0f0f); - HPERM_OP(c,t,-2, 0xcccc0000); - HPERM_OP(c,t,-1, 0xaaaa0000); - HPERM_OP(c,t, 8, 0x00ff0000); - HPERM_OP(c,t,-1, 0xaaaa0000); - HPERM_OP(d,t,-8, 0xff000000); - HPERM_OP(d,t, 8, 0x00ff0000); - HPERM_OP(d,t, 2, 0x33330000); - d = ((d&0x00aa00aa)<<7)|((d&0x55005500)>>7)|(d&0xaa55aa55); - d = (d>>8)|((c&0xf0000000)>>4); - c &= 0x0fffffff; - - for (i = 0; i < ITERATIONS; i++) - { - if (shifts2[i]) - { - c = ((c>>2)|(c<<26)); - d = ((d>>2)|(d<<26)); - } - else - { - c = ((c>>1)|(c<<27)); - d = ((d>>1)|(d<<27)); - } - c &= 0x0fffffff; - d &= 0x0fffffff; - - /* could be a few less shifts but I am to lazy at this - * point in time to investigate - */ - s = skb[0][ (c )&0x3f ]| - skb[1][((c>> 6)&0x03)|((c>> 7)&0x3c)]| - skb[2][((c>>13)&0x0f)|((c>>14)&0x30)]| - skb[3][((c>>20)&0x01)|((c>>21)&0x06) | - ((c>>22)&0x38)]; - t = skb[4][ (d )&0x3f ]| - skb[5][((d>> 7)&0x03)|((d>> 8)&0x3c)]| - skb[6][ (d>>15)&0x3f ]| - skb[7][((d>>21)&0x0f)|((d>>22)&0x30)]; - - /* table contained 0213 4657 */ - *(k++) = ((t<<16)|(s&0x0000ffff)); - s = ((s>>16)|(t&0xffff0000)); - - s = (s<<4)|(s>>28); - *(k++) = s; - } -} - -/*--------------------------------------------------------------------*/ -/****************************************************************** - * modified stuff for crypt. - ******************************************************************/ - -#define D_ENCRYPT(L,R,S) \ - t=(R<<1)|(R>>31); \ - v=(t^(t>>16)); \ - u=(v&E0); \ - v=(v&E1); \ - u=(u^(u<<16))^t^s[S ]; \ - t=(v^(v<<16))^t^s[S+1]; \ - t=(t>>4)|(t<<28); \ - L^= SPtrans[1][(t )&0x3f]| \ - SPtrans[3][(t>> 8)&0x3f]| \ - SPtrans[5][(t>>16)&0x3f]| \ - SPtrans[7][(t>>24)&0x3f]| \ - SPtrans[0][(u )&0x3f]| \ - SPtrans[2][(u>> 8)&0x3f]| \ - SPtrans[4][(u>>16)&0x3f]| \ - SPtrans[6][(u>>24)&0x3f]; - -#define PERM_OP(a,b,t,n,m) ((t)=((((a)>>(n))^(b))&(m)),\ - (b)^=(t),\ - (a)^=((t)<<(n))) - -/*--------------------------------------------------------------------*/ -static crypt_uchar con_salt[128]={ -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, -0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09, -0x0A,0x0B,0x05,0x06,0x07,0x08,0x09,0x0A, -0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12, -0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A, -0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22, -0x23,0x24,0x25,0x20,0x21,0x22,0x23,0x24, -0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C, -0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34, -0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C, -0x3D,0x3E,0x3F,0x00,0x00,0x00,0x00,0x00, -}; - -static crypt_uchar cov_2char[64]={ -0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,0x35, -0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44, -0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C, -0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54, -0x55,0x56,0x57,0x58,0x59,0x5A,0x61,0x62, -0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A, -0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72, -0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A -}; - -/*--------------------------------------------------------------------*/ -char * -crypt (const char *buf, const char *salt) - -/* Encrypt string <buf> using the first two characters of <salt> as - * seed for the algorithm. The result is the encrypted string, stored - * in a static buffer, whose first two characters are copies of <salt>. - */ - -{ - static crypt_uchar buff[20]; - - unsigned int i, j, x, y; - crypt_ulong Eswap0 = 0; - crypt_ulong Eswap1 = 0; - crypt_ulong out[2], ll; - des_cblock key; - des_key_schedule ks; - crypt_uchar bb[9]; - crypt_uchar *b = bb; - crypt_uchar c, u; - - x = buff[0] = salt[0]; - Eswap0 = con_salt[x]; - x = buff[1] = salt[1]; - Eswap1 = con_salt[x] << 4; - - for (i = 0; i < 8; i++) - { - c = *(buf++); - if (!c) - break; - key[i] = (c << 1); - } - - for (; i < 8; i++) - key[i] = 0; - - des_set_key((des_cblock *)(key), ks); - body(&out[0], &out[1], &ks, Eswap0, Eswap1); - - ll = out[0]; l2c(ll,b); - ll = out[1]; l2c(ll,b); - - y = 0; - u = 0x80; - bb[8] = 0; - for (i = 2; i < 13; i++) - { - c = 0; - for (j = 0; j < 6; j++) - { - c <<= 1; - if (bb[y] & u) - c |= 1; - u >>= 1; - if (!u) - { - y++; - u = 0x80; - } - } - buff[i] = cov_2char[c]; - } - - return((char *)buff); -} - -/*--------------------------------------------------------------------*/ -static void -body (crypt_ulong *out0 - , crypt_ulong *out1 - , des_key_schedule *ks - , crypt_ulong Eswap0 - , crypt_ulong Eswap1) - -{ - register unsigned long l, r, t, u, v; - register unsigned long *s; - register int i, j; - register unsigned long E0, E1; - - l = 0; - r = 0; - - s = (crypt_ulong *)ks; - E0 = Eswap0; - E1 = Eswap1; - - for (j = 0; j < 25; j++) - { - for (i = 0; i < (ITERATIONS*2); i += 4) - { - D_ENCRYPT(l,r, i ); /* 1 */ - D_ENCRYPT(r,l, i+2); /* 2 */ - } - t = l; - l = r; - r = t; - } - - t = l; - l = r; - r = t; - - PERM_OP(r,l,t, 1,0x55555555); - PERM_OP(l,r,t, 8,0x00ff00ff); - PERM_OP(r,l,t, 2,0x33333333); - PERM_OP(l,r,t,16,0x0000ffff); - PERM_OP(r,l,t, 4,0x0f0f0f0f); - - *out0 = l; - *out1 = r; -} - -/***************************************************************************/ - diff --git a/src/hosts/defines.txt b/src/hosts/defines.txt deleted file mode 100644 index a0f1a12..0000000 --- a/src/hosts/defines.txt +++ /dev/null @@ -1,66 +0,0 @@ -Operating Systems: ------------------ -SunOS .. 4.1: sun (abbr.: SunOS4) -Solaris: sun __svr4__ (abbr.: solaris) -Silicon Graphics: sgi -AIX: _AIX -Atari ST/TT MiNT: atarist -Amiga, DICE: AMIGA _DCC -Amiga, SAS/C: AMIGA __SASC -BeOS __BEOS__ -FreeBSD: __FreeBSD__ -Linux: linux -NeXT: NeXT -Sequent: _SEQUENT_ -Ultrix: ultrix -IBM RS6000 _AIX _IBMR2 -HP-UX hpux -OS/2 OS2 (not set by all compilers; for some the configure - script adds it to the EXTRA_CFLAGS) -??? M_UNIX -Apple Unix AUX /* add -D_POSIX_SOURCE to CFLAGS */ -Apple Darwin __APPLE__, __MACH__ -Windows NT/95/98 _WIN32, WINNT, _WINNT - -Program Loaders: ---------------- -msdos: MSDOS - -Processor Hardware: ------------------- -Sparc sparc -x86 (MWerks/Be) __INTEL__ -x86 (gcc) i386, __i386__ -x86 (icc) _M_IX86 -PowerPC (Darwin) __ppc__ -Itanium (ecc) _M_IA64 - -compilers: ---------- -gcc: __GNUC__ -Apple CC: __GNUC__, __APPLE_CC__ -Cygnus gcc for Win32 __CYGWIN32__ resp. __CYGWIN__ -Metrowerks (Be) __MWERKS__ -EMX gcc for OS/2 __EMX__ -Intel C/C++ Compiler __INTEL_COMPILER (expands to version, e.g. 500) - ------------------------------------------------------------------------------ - -von HP-UX haben wills, hier der Output von gcc -E -dM < /dev/null: - -#define __hp9000s800__ 1 -#define __unix__ 1 -#define __unix 1 -#define __hppa 1 -#define __hppa__ 1 -#define __hpux 1 -#define __hpux__ 1 -#define __hp9000s700 1 -#define __hp9000s700__ 1 -#define __hp9000s800 1 -#define _ILP32 1 -#define __STDC_HOSTED__ 1 -#define _PA_RISC1_1 1 -#define _HPUX_SOURCE 1 - ------------------------------------------------------------------------------ diff --git a/src/hosts/unix.h b/src/hosts/unix.h deleted file mode 100644 index 473283b..0000000 --- a/src/hosts/unix.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef __HOSTS_UNIX_H__ -#define __HOSTS_UNIX_H__ - -/*------------------------------------------------------------------ - * Definitions and includes for Unixish hosts. - * - * This file is included by port.h via the HOST_INCLUDE define. - *------------------------------------------------------------------ - */ - -#if defined(SunOS4) || defined (ultrix) || defined(solaris) -extern void bzero(char *, int); -#endif - -#if defined(SunOS4) -/* These prototypes used to have a wider scope, but I suspect they are - * only needed on suns. - */ -extern char *_crypt(char *, char *); -extern int ioctl(int, ...); /* should be in <ioctl.h> */ -#endif - -#if defined(CYGWIN) && !defined(__CYGWIN32__) -extern int gethostname(char *, int); -#endif - -#if defined(SunOS4) || defined(ultrix) -extern int gethostname(char *, int); -extern char *getdomainname(char *, int); -#endif - -#ifdef SunOS4 -extern int rename(const char *, const char *); -extern void perror(const char *); -extern long int strtol(const char *, char **, int); -#endif - -#if defined(CYGWIN) || defined(sun) -extern time_t time(time_t *tloc); -#endif - -#endif /* __HOSTS_UNIX_H__ */ diff --git a/src/hosts/win32/Makefile b/src/hosts/win32/Makefile deleted file mode 100644 index a9edb3d..0000000 --- a/src/hosts/win32/Makefile +++ /dev/null @@ -1,410 +0,0 @@ -# Generated automatically from Makefile.in by configure. -# TODO: Add some of the symbols in here to configure -# These lines are needed on some machines. -MAKE=make -SHELL=/bin/sh -INSTALL=/usr/bin/install -c -mkinstalldirs=$(SHELL) ./mkinstalldirs -# -CC=gcc -# -YACC = byacc -YACCTAB = y.tab. -# -RM = rm -f -MV = mv -CP = cp -# -# some standard stuff... -prefix= \\mud -exec_prefix= ${prefix} -# -# -# Set MUD_LIB to the directory which contains the mud data. Was formerly -# defined in config.h ! -MUD_LIB = \\mud\\mudlib -# -# Set BINDIR to the directory where you want to install the executables. -BINDIR = \\mud\\mudbin -# -# Set ERQ_DIR to directory which contains the stuff which ERQ can -# execute (hopefully) savely. Was formerly defined in config.h! -ERQ_DIR= \\mud\\mudbin\\erqdir -# -# Typical profiling, warning and optimizing options. -# -p -DMARK: together they enable the profiling of VM instructions. -# Additional profiling can be activated in config.h . -#PROFIL=-p -DMARK -#PROFIL=-pg -PROFIL= -#Enable warnings from the compiler, if wanted. -WARN= # no warning options - will work with all compilers :-) -#WARN= -Wall -Wshadow -Dlint -#WARN= -Wall -Wshadow -Wparentheses # gcc settings -# -# Optimization and source level debugging options. -# adding a -fomit-frame-pointer on the NeXT (gcc version 1.93 (68k, MIT syntax)) -# will corrupt the driver. -#OPTIMIZE = -O4 -fomit-frame-pointer -g -fstrength-reduce -fno-force-mem -fno-force-addr -fno-inline-functions # high optimization -OPTIMIZE= -O2 -g -fstrength-reduce -fno-force-mem -fno-force-addr -fno-inline-functions # medium optimization -#OPTIMIZE= -O -g # low optimization -#OPTIMIZE= -g # no optimization; for frequent recompilations. -# -# Debugging options: -# Debugging options should be set in config.h to guarantee a clean -# recompile. -#DEBUG = -DDEBUG -DCHECK_STRINGS # -DKEEP_STRINGS -DDEBUG_TELNET -DEBUG= -# -MPATH=-DMUD_LIB='"$(MUD_LIB)"' -DBINDIR='"$(BINDIR)"' -DERQ_DIR='"$(ERQ_DIR)"' -# -CFLAGS= -Dlint $(OPTIMIZE) $(DEBUG) $(WARN) $(MPATH) $(PROFIL) -# -LIBS=-lm -lcrypt -luser32 -lwinmm -lkernel32 -lwsock32 -# -LDFLAGS= -# -#Note that, if you use smalloc with SBRK_OK(which is the default), and -#don't link statically, it could happen that the system malloc is linked -#along with the one from smalloc; this combination is bound to cause crashes. -MFLAGS = "BINDIR=$(BINDIR)" "MUD_LIB=$(MUD_LIB)" -# -SRC = access_check.c actions.c array.c backend.c call_out.c closure.c comm.c \ - dumpstat.c ed.c efuns.c gcollect.c hash.c heartbeat.c interpret.c \ - parser.c lex.c main.c mapping.c mempools.c object.c otable.c parse.c \ - pkg-alists.c pkg-mccp.c pkg-mysql.c pkg-pcre.c pkg-pgsql.c \ - pkg-sqlite.c pkg-tls.c ptmalloc.c port.c ptrtable.c md5.c \ - random.c regexp.c mregex.c sha1.c simulate.c simul_efun.c stdstrings.c \ - stralloc.c strfuns.c structs.c sprintf.c swap.c wiz_list.c xalloc.c -OBJ = access_check.o actions.o array.o backend.o call_out.o closure.o comm.o \ - dumpstat.o ed.o efuns.o gcollect.o hash.o heartbeat.o interpret.o \ - parser.o lex.o main.o mapping.o mempools.o object.o otable.o parse.o \ - pkg-alists.o pkg-mccp.o pkg-mysql.o pkg-pcre.o pkg-pgsql.o \ - pkg-sqlite.o pkg-tls.o ptmalloc.o port.o ptrtable.o md5.o\ - random.o regexp.o mregex.o sha1.o simulate.o simul_efun.o stdstrings.o \ - stralloc.o strfuns.o structs.o sprintf.o swap.o wiz_list.o xalloc.o - -ldmud: $(OBJ) - $(CC) $(OPTIMIZE) $(LDFLAGS) $(OBJ) -o $@ $(LIBS) - -install: ldmud - $(mkinstalldirs) $(BINDIR) - $(INSTALL) -c $? $(BINDIR)/parse - -install-utils: - (cd util; $(MAKE) $(MFLAGS) install) - -utils: - (cd util; $(MAKE) $(MFLAGS)) - -parse: ldmud - -$(MV) parse parse.old - $(CP) ldmud parse - -lint: *.c - lint *.c - -clean: - $(RM) $(YACCTAB)h $(YACCTAB)c make_func.c *.o mkfunc.exe - $(RM) dftables.exe pcre/chartables.c - $(RM) stdstrings.c stdstrings.h - $(RM) efun_defs.c instrs.h lang.y lang.h lang.c y.output tags TAGS - $(RM) parse core mudlib/core mudlib/debug.log lpmud.log ldmud - (cd util ; echo "Cleaning in util." ; $(MAKE) clean) - -distclean: clean - $(RM) ldmud config.status machine.h Makefile config.cache config.log - $(RM) config.h config.status config.status.old - $(RM) util/Makefile util/erq/Makefile util/xerq/Makefile - -tags: $(SRC) - ctags $(SRC) - -TAGS: $(SRC) - etags $(SRC) - -make_func.c: make_func.y - $(YACC) make_func.y - $(MV) $(YACCTAB)c make_func.c - - -mkfunc.o : mkfunc.c make_func.c driver.h config.h machine.h port.h - $(CC) $(CFLAGS) -DYACC='"$(YACC)"' -c mkfunc.c - -mkfunc: mkfunc.o hash.o exec.h - $(CC) $(OPTIMIZE) $(LDFLAGS) mkfunc.o hash.o -o mkfunc - -dftables.o : pcre/dftables.c pcre/maketables.c pcre/config.h - $(CC) $(CFLAGS) -c pcre/dftables.c -o dftables.o - -dftables : dftables.o - $(CC) $(OPTIMIZE) (LDFLAGS) dftables.o -o dftables - -lang.y: mkfunc prolang.y config.h - $(RM) lang.y - ./mkfunc lang - -efun_defs.c instrs.h: func_spec mkfunc config.h - $(RM) instrs.h - $(RM) efun_defs.c - ./mkfunc instrs - -stdstrings.c stdstrings.h: string_spec mkfunc config.h - $(RM) stdstrings.c - $(RM) stdstrings.h - ./mkfunc strings - -lang.c lang.h: lang.y - $(YACC) -d -v lang.y - $(MV) $(YACCTAB)c lang.c - - $(MV) $(YACCTAB)h lang.h - -pcre/chartables.c : dftables - ./dftables > pcre/chartables.c - -#-------------------------------------------------------- -# Dependencies, manual and automatic. - -# --- DO NOT MODIFY THIS LINE -- AUTO-DEPENDS FOLLOW --- -access_check.o : xalloc.h filestat.h comm.h access_check.h driver.h \ - svalue.h simulate.h typedefs.h config.h port.h strfuns.h sent.h exec.h \ - hosts/unix.h hosts/be/be.h machine.h - -actions.o : ../mudlib/sys/driver_hook.h ../mudlib/sys/commands.h xalloc.h \ - wiz_list.h svalue.h simulate.h sent.h stdstrings.h object.h mstrings.h \ - mapping.h interpret.h exec.h efuns.h dumpstat.h comm.h closure.h \ - backend.h array.h actions.h typedefs.h driver.h strfuns.h instrs.h \ - main.h port.h config.h hosts/unix.h hosts/be/be.h machine.h - -array.o : xalloc.h wiz_list.h swap.h svalue.h simulate.h stdstrings.h \ - rxcache.h regexp.h object.h mstrings.h mempools.h mapping.h main.h \ - interpret.h closure.h backend.h array.h my-alloca.h typedefs.h driver.h \ - strfuns.h sent.h exec.h instrs.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -backend.o : ../mudlib/sys/debug_message.h ../mudlib/sys/driver_hook.h \ - xalloc.h wiz_list.h swap.h svalue.h stdstrings.h simulate.h rxcache.h \ - regexp.h random.h otable.h object.h mstrings.h mapping.h main.h lex.h \ - interpret.h heartbeat.h gcollect.h filestat.h exec.h ed.h comm.h \ - closure.h call_out.h array.h actions.h backend.h my-alloca.h typedefs.h \ - driver.h strfuns.h sent.h instrs.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -bitstrings.o : xalloc.h svalue.h simulate.h mstrings.h main.h lex.h \ - interpret.h bitstrings.h typedefs.h driver.h strfuns.h sent.h exec.h \ - instrs.h port.h config.h hosts/unix.h hosts/be/be.h machine.h - -call_out.o : ../mudlib/sys/debug_info.h xalloc.h wiz_list.h swap.h svalue.h \ - strfuns.h stdstrings.h simulate.h object.h mstrings.h main.h \ - interpret.h gcollect.h exec.h comm.h closure.h backend.h array.h \ - actions.h call_out.h typedefs.h driver.h sent.h instrs.h port.h \ - config.h hosts/unix.h hosts/be/be.h machine.h - -closure.o : xalloc.h switch.h swap.h svalue.h stdstrings.h simul_efun.h \ - simulate.h prolang.h object.h mstrings.h main.h lex.h lang.h \ - interpret.h instrs.h exec.h backend.h array.h closure.h my-alloca.h \ - typedefs.h driver.h ptrtable.h strfuns.h sent.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h - -comm.o : util/erq/erq.h ../mudlib/sys/input_to.h \ - ../mudlib/sys/driver_hook.h xalloc.h wiz_list.h swap.h svalue.h \ - stdstrings.h simulate.h sent.h object.h mstrings.h main.h interpret.h \ - gcollect.h filestat.h exec.h ed.h closure.h backend.h array.h actions.h \ - access_check.h comm.h telnet.h my-alloca.h typedefs.h driver.h \ - strfuns.h instrs.h config.h port.h hosts/unix.h hosts/be/be.h machine.h - -dumpstat.o : svalue.h smalloc.h stdstrings.h simulate.h ptrtable.h object.h \ - mstrings.h mapping.h filestat.h exec.h closure.h array.h dumpstat.h \ - typedefs.h driver.h strfuns.h sent.h instrs.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h - -ed.o : xalloc.h svalue.h stdstrings.h simulate.h rxcache.h regexp.h \ - object.h mstrings.h main.h interpret.h gcollect.h filestat.h comm.h \ - closure.h actions.h ed.h typedefs.h driver.h strfuns.h sent.h exec.h \ - instrs.h port.h config.h hosts/unix.h hosts/be/be.h machine.h - -efuns.o : ../mudlib/sys/time.h ../mudlib/sys/strings.h \ - ../mudlib/sys/objectinfo.h ../mudlib/sys/debug_info.h xalloc.h \ - wiz_list.h svalue.h swap.h strfuns.h smalloc.h simulate.h stdstrings.h \ - rxcache.h random.h ptrtable.h otable.h object.h mstrings.h md5.h \ - mapping.h main.h interpret.h instrs.h heartbeat.h dumpstat.h comm.h \ - closure.h call_out.h backend.h array.h actions.h efuns.h my-rusage.h \ - my-alloca.h typedefs.h driver.h sent.h exec.h regexp.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h - -files.o : ../mudlib/sys/files.h xalloc.h svalue.h stdstrings.h simulate.h \ - mstrings.h main.h lex.h interpret.h filestat.h comm.h array.h files.h \ - my-alloca.h typedefs.h driver.h strfuns.h sent.h exec.h instrs.h port.h \ - config.h hosts/unix.h hosts/be/be.h machine.h - -gcollect.o : ../mudlib/sys/driver_hook.h xalloc.h wiz_list.h swap.h \ - stdstrings.h smalloc.h simul_efun.h simulate.h sent.h rxcache.h \ - prolang.h parse.h otable.h object.h mstrings.h mapping.h main.h lex.h \ - interpret.h instrs.h heartbeat.h filestat.h exec.h ed.h comm.h \ - closure.h call_out.h backend.h array.h actions.h gcollect.h typedefs.h \ - driver.h svalue.h ptrtable.h strfuns.h regexp.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h - -hash.o : hash.h - -heartbeat.o : ../mudlib/sys/debug_info.h xalloc.h wiz_list.h svalue.h \ - strfuns.h simulate.h sent.h object.h mstrings.h interpret.h gcollect.h \ - comm.h backend.h array.h actions.h heartbeat.h typedefs.h driver.h \ - exec.h instrs.h main.h port.h config.h hosts/unix.h hosts/be/be.h \ - machine.h - -interpret.o : ../mudlib/sys/trace.h ../mudlib/sys/debug_info.h \ - ../mudlib/sys/driver_hook.h xalloc.h wiz_list.h switch.h swap.h \ - svalue.h sprintf.h smalloc.h stdstrings.h simul_efun.h simulate.h \ - sent.h ptrtable.h prolang.h parse.h otable.h object.h mstrings.h \ - mapping.h main.h lex.h instrs.h heartbeat.h gcollect.h filestat.h \ - exec.h efuns.h ed.h comm.h closure.h call_out.h backend.h array.h \ - actions.h interpret.h my-alloca.h typedefs.h driver.h strfuns.h port.h \ - config.h hosts/unix.h hosts/be/be.h machine.h - -lex.o : efun_defs.c ../mudlib/sys/driver_hook.h xalloc.h wiz_list.h \ - svalue.h strfuns.h stdstrings.h simul_efun.h simulate.h prolang.h \ - patchlevel.h object.h mstrings.h mempools.h main.h lang.h interpret.h \ - instrs.h hash.h gcollect.h filestat.h exec.h comm.h closure.h backend.h \ - array.h lex.h my-alloca.h typedefs.h driver.h ptrtable.h sent.h port.h \ - config.h hosts/unix.h hosts/be/be.h machine.h - -main.o : xalloc.h wiz_list.h swap.h svalue.h stdstrings.h simul_efun.h \ - simulate.h rxcache.h random.h pcre/pcre.h patchlevel.h otable.h \ - object.h mstrings.h mapping.h lex.h interpret.h gcollect.h filestat.h \ - comm.h array.h backend.h main.h my-alloca.h typedefs.h driver.h \ - ptrtable.h exec.h strfuns.h sent.h regexp.h instrs.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h - -mapping.o : xalloc.h wiz_list.h svalue.h smalloc.h simulate.h object.h \ - mstrings.h main.h interpret.h gcollect.h closure.h backend.h array.h \ - mapping.h my-alloca.h typedefs.h driver.h strfuns.h sent.h exec.h \ - instrs.h port.h config.h hosts/unix.h hosts/be/be.h machine.h - -md5.o : strfuns.h md5.h machine.h typedefs.h driver.h port.h config.h \ - hosts/unix.h hosts/be/be.h - -mempools.o : xalloc.h gcollect.h mempools.h driver.h typedefs.h port.h \ - config.h hosts/unix.h hosts/be/be.h machine.h - -mkfunc.o : make_func.c ../mudlib/sys/driver_hook.h hash.h exec.h \ - my-alloca.h driver.h typedefs.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -mstrings.o : ../mudlib/sys/debug_info.h xalloc.h svalue.h strfuns.h \ - stdstrings.h simulate.h main.h hash.h gcollect.h mstrings.h driver.h \ - typedefs.h sent.h exec.h port.h config.h hosts/unix.h hosts/be/be.h \ - machine.h - -object.o : ../mudlib/sys/inherit_list.h ../mudlib/sys/include_list.h \ - ../mudlib/sys/functionlist.h ../mudlib/sys/driver_hook.h xalloc.h \ - wiz_list.h svalue.h swap.h strfuns.h stdstrings.h simul_efun.h \ - simulate.h sent.h random.h ptrtable.h prolang.h otable.h mstrings.h \ - mempools.h mapping.h main.h instrs.h interpret.h filestat.h exec.h \ - comm.h closure.h backend.h array.h actions.h object.h my-alloca.h \ - typedefs.h driver.h ../mudlib/sys/lpctypes.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h - -otable.o : ../mudlib/sys/debug_info.h xalloc.h svalue.h simulate.h \ - strfuns.h object.h mstrings.h hash.h gcollect.h backend.h otable.h \ - typedefs.h driver.h sent.h exec.h instrs.h main.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h - -parse.o : xalloc.h wiz_list.h svalue.h stdstrings.h simulate.h object.h \ - mstrings.h main.h interpret.h instrs.h gcollect.h closure.h array.h \ - actions.h parse.h typedefs.h driver.h strfuns.h sent.h exec.h port.h \ - config.h hosts/unix.h hosts/be/be.h machine.h - -parser.o : lang.c pkg-alists.h ../mudlib/sys/driver_hook.h xalloc.h \ - wiz_list.h switch.h swap.h svalue.h stdstrings.h simul_efun.h \ - simulate.h object.h mstrings.h mapping.h main.h lex.h instrs.h \ - interpret.h gcollect.h exec.h closure.h backend.h array.h prolang.h \ - my-alloca.h typedefs.h driver.h ptrtable.h strfuns.h sent.h port.h \ - config.h hosts/unix.h hosts/be/be.h machine.h - -pcre-get.o : pcre/get.c driver.h pcre/internal.h port.h config.h \ - pcre/pcre.h pcre/config.h hosts/unix.h hosts/be/be.h machine.h - -pcre-maketables.o : pcre/maketables.c driver.h pcre/internal.h port.h \ - config.h pcre/pcre.h pcre/config.h hosts/unix.h hosts/be/be.h machine.h - -pcre-pcre.o : pcre/pcre.c driver.h pcre/chartables.c pcre/internal.h port.h \ - config.h pcre/pcre.h pcre/config.h hosts/unix.h hosts/be/be.h machine.h - -pcre-study.o : pcre/study.c driver.h pcre/internal.h port.h config.h \ - pcre/pcre.h pcre/config.h hosts/unix.h hosts/be/be.h machine.h - -dftables.o : pcre/maketables.c pcre/internal.h pcre/pcre.h pcre/config.h - -pkg-alists.o : xalloc.h svalue.h simulate.h mstrings.h main.h interpret.h \ - array.h my-alloca.h pkg-alists.h typedefs.h driver.h strfuns.h sent.h \ - exec.h instrs.h port.h config.h hosts/unix.h hosts/be/be.h machine.h - -pkg-mysql.o : xalloc.h svalue.h simulate.h mstrings.h interpret.h array.h \ - pkg-mysql.h my-alloca.h typedefs.h driver.h strfuns.h sent.h exec.h \ - instrs.h port.h config.h hosts/unix.h hosts/be/be.h machine.h - -port.o : hosts/crypt.c main.h backend.h my-rusage.h driver.h typedefs.h \ - port.h config.h hosts/unix.h hosts/be/be.h machine.h - -ptrtable.o : simulate.h mempools.h ptrtable.h driver.h svalue.h strfuns.h \ - sent.h exec.h typedefs.h port.h config.h hosts/unix.h hosts/be/be.h \ - machine.h - -random.o : random.h driver.h port.h config.h hosts/unix.h hosts/be/be.h \ - machine.h - -regexp.o : main.h xalloc.h simulate.h comm.h regexp.h driver.h typedefs.h \ - svalue.h strfuns.h sent.h exec.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -rxcache.o : ../mudlib/sys/debug_info.h xalloc.h svalue.h strfuns.h regexp.h \ - mstrings.h hash.h gcollect.h rxcache.h driver.h typedefs.h port.h \ - config.h hosts/unix.h hosts/be/be.h machine.h - -simul_efun.o : xalloc.h swap.h svalue.h stdstrings.h simulate.h ptrtable.h \ - object.h mstrings.h lex.h interpret.h instrs.h gcollect.h exec.h \ - array.h simul_efun.h my-alloca.h typedefs.h driver.h strfuns.h sent.h \ - port.h config.h hosts/unix.h hosts/be/be.h machine.h - -simulate.o : ../mudlib/sys/rtlimits.h ../mudlib/sys/files.h \ - ../mudlib/sys/driver_hook.h ../mudlib/sys/debug_info.h xalloc.h \ - wiz_list.h svalue.h swap.h strfuns.h stdstrings.h smalloc.h \ - simul_efun.h sent.h rxcache.h prolang.h otable.h object.h mstrings.h \ - mapping.h main.h lex.h instrs.h interpret.h heartbeat.h gcollect.h \ - filestat.h exec.h ed.h dumpstat.h comm.h closure.h call_out.h backend.h \ - array.h actions.h simulate.h my-alloca.h typedefs.h driver.h ptrtable.h \ - regexp.h port.h config.h hosts/unix.h hosts/be/be.h machine.h - -sprintf.o : xalloc.h swap.h svalue.h stdstrings.h simul_efun.h simulate.h \ - sent.h random.h ptrtable.h object.h mstrings.h mapping.h main.h \ - instrs.h interpret.h exec.h comm.h closure.h array.h actions.h \ - sprintf.h my-alloca.h typedefs.h driver.h strfuns.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h - -stdstrings.o : mstrings.h stdstrings.h typedefs.h driver.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h - -strfuns.o : xalloc.h svalue.h stdstrings.h simulate.h mstrings.h comm.h \ - strfuns.h my-alloca.h typedefs.h driver.h sent.h exec.h port.h config.h \ - hosts/unix.h hosts/be/be.h machine.h - -swap.o : ../mudlib/sys/debug_info.h xalloc.h wiz_list.h svalue.h strfuns.h \ - stdstrings.h simul_efun.h simulate.h random.h prolang.h otable.h \ - object.h mstrings.h mapping.h main.h interpret.h gcollect.h exec.h \ - comm.h backend.h array.h swap.h typedefs.h driver.h ptrtable.h sent.h \ - instrs.h port.h config.h hosts/unix.h hosts/be/be.h machine.h - -wiz_list.o : xalloc.h svalue.h stdstrings.h simulate.h object.h mstrings.h \ - mapping.h main.h interpret.h gcollect.h backend.h array.h \ - ../mudlib/sys/wizlist.h wiz_list.h my-alloca.h typedefs.h driver.h \ - strfuns.h sent.h exec.h instrs.h port.h config.h hosts/unix.h \ - hosts/be/be.h machine.h - -xalloc.o : smalloc.c main.h simulate.h interpret.h xalloc.h driver.h \ - ../mudlib/sys/debug_info.h object.h exec.h svalue.h stdstrings.h \ - mstrings.h gcollect.h backend.h smalloc.h typedefs.h strfuns.h sent.h \ - instrs.h port.h config.h hosts/unix.h hosts/be/be.h machine.h - -# --- DO NOT MODIFY THIS LINE -- AUTO-DEPENDS PRECEDE --- diff --git a/src/hosts/win32/Readme.rtf b/src/hosts/win32/Readme.rtf deleted file mode 100644 index fd8eb46e68c2f16fb3030eb86289e56d78072a5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3660 zcmb_fZExE)5Z>nk{SOC!X#ymQ?WAw(u&rx`u0WD?v4MUOP|y-36QM|zq~aJw|NEY! zBqvhb?Mn+ZameGnJa_lp`D^MzF-wK<D$Qk4O!;RJtC#cX*R-%Egq6mJX<GP=@}4di zw16-zq*KM4Z@8MJg|n3~X_2jk^D@k7v8`5C$J=@T@U2s#Jv!|k&{9>>)0N!NH7khn zXa9Biyi=AIwfi!sPUW|!Prjy^)z-n+)X99BmQG4DO;@^+(>J*1ptLaMY<fCNYvJ-# ztJ!>-IyFC=rnMFd?z5}&DM1<%^zig_PS;XP;U!(!0G|u%=;Hjc$>XO_%0S}aG?^!_ zk8^oDe}2}z?rb7rRt}-VhidPQbvBo4<tevWQ%Ms@nM^l1tTlBmg3NIMyOjvanrJty z<xaXit)0D9IYc)qtUINXk)xA@K6u|iuWf=>CMu>dFkOl5N>XN>lUZvSPGq)HrX<%Q z;ge4P=O6fQ5BBr3bT!TiiiE*j$k5dLp6pHH{EXg9Bc0IQll?D06tuMsa5c{Yt;MY* zK}Lp+bvKlua*zcdgw}u!X@IB$PF39m=>VdPNA0^{d)dws=j$9@(A39QtwzT4;QH-? zRb4F)Ay3xjtjUsV3@fDEsaxrKv^!NF+iEnZMhJ<(3Q&f*-FSNaJVsD8z7N0*su^{^ zB9R5C9i3C&dY4&aka(`M4MOT{GAsz)g@<m@+kzukY|7ILZP&^G9+uC9iT}MQq~1ct zlub>l#dsr3=%KOHpu0HU3SDIlgtg6tPIh5kEs+%IIW0y)y#VezH$9p~vKP?eSxu)G zbai2Ey%O2Y@wvQJnH&L$erB*s83?XQ=g`?;B`-=zUTir*dwUtZJIS`?MwwZXYfZ=m zda^P3BtrH8q81O|2Z{)#`*K7Z=x@qWB1y21`k{yFl)<4uKDYs`+d_UVoowr^7GX`d z0))EKeW10)6GU#40mGd2t<#zBVQF%$R^1<i2fNl;!ch<$#K^C0qjNOA2e)vIa+-#( zQblQs%*7vgGrXnyKtMh*`JKR!AOY$#1X&`Mvd3%JM166vNAN)aaX@mf`Dj-`=$wGj zLbi@2+-W+leqrD~2m6`3_A|VNDj@u8OaSA@A7V$hcU*fwdZKgueSA6xwI74q>G-!v zr?W5dSU#i`l4%P9J0Q1pje&$Z1v_B4<+wFSIfyx1OFzug4)jiK_p1l7qr1^54?}R; zUv|T8vj?#`VUfu{qP1*R7ypyy3(=UYl`cgkTe6{p-gG+?2iaXIb236Ck$3Vi8I=Tm z>e<jqk<$ch9k`vi|LZK7^py#c;d(+dd#fd!XBOk5mP!Q*0#6u0<kdh!LQC$N8092L z4R&t1Vr_B!^2Mv^gvC3!v@N+>JWWEgLLSkdfCr<GYT-R-Jx?&);b5QmN+{ivL=VF- z1D)pg!0SAcb1ydBAV&F$m*W|<|K$>RbeY&Nt2RnAvoU%M)w^v8uBVS6HKr+EzYs!> zF>rz_(_lNZMc6QMoeu}=5bB>#PJnR3J>e6qNsv!aoF^^s97c$DB#teIi}%4;0so#Q zQ#$wq-sChpeKkAkv@br=i^CnP(q!O43<Y)<3kf)?^7l0U`Yswm0P~wTCryXJV=4$E zblUOKde&#Cb73!H!{-=!ocZA)^^Lk)sN@}7H$sE%zF<iTl*<Yz9Q=9x4@#Wv7+%6O zvv`j#KE@UxtZx`Vm`zyYWFZ<IBGC)&LGkTw7BhH<7c7Kc5)NaLsr`UQNE_VYD7p_k zMB{kGq-V~F1F&cussXe2!CDAU*KPMaDxl~IFEpLk-FlfvhYF=JH;34u>(P{jDw8p2 zM~@{dk*z^+k3?g#AL+dmH<C>bFX+3og*zZ03-5;G2(2H#k9LUdYE77%m<IkD5L{dm zMoV_mcV72q=sQaB-P&PVDC``UP42|-o_c)8J%N-QytB3x=67&A*z7ysCx+@^?r+UY kBz=-9Td(b7EJqJuW}z|cU2kS@7=4WRg7wqWCr_XJ3#oJH!T<mO diff --git a/src/hosts/win32/config.h b/src/hosts/win32/config.h deleted file mode 100644 index 2142ccc..0000000 --- a/src/hosts/win32/config.h +++ /dev/null @@ -1,548 +0,0 @@ -/* DO NOT EDIT! - * - * This file is created automatically by configure from the template - * in config.h.in. - */ - -#ifndef CONFIG_H__ -#define CONFIG_H__ 1 - -/* Should code for the external request demon be included? - */ -#define ERQ_DEMON - -/* Maximum sizes for an erq send or reply. - */ -#define ERQ_MAX_REPLY 1024 -#define ERQ_MAX_SEND 1024 - -/* #define ACCESS_CONTROL if you want the driver to do any access control. - * TODO: Make this a runtime option. - */ -#define ACCESS_CONTROL - -/* file for access permissions data */ -/* TODO: Make this a runtime option */ -#define ACCESS_FILE "ACCESS.ALLOW" - -/* logfile to show valid and rejected connections - * simple not define this for NO logs - * TODO: Make this a runtime option. - */ -#undef ACCESS_LOG - -/* - * Max size of a file allowed to be read by 'read_file()'. - */ -#define READ_FILE_MAX_SIZE 50000 - -/* If an object is left alone for a certain time, then the - * function clean_up will be called. This function can do anything, - * like destructing the object. If the function isn't defined by the - * object, then nothing will happen. - * - * This time should be substantially longer than the swapping time. - */ -#define TIME_TO_CLEAN_UP 10800 - -/* - * How long time until an unused object is swapped out. - * Machine with too many players and too little memory: 900 (15 minutes) - * Machine with few players and lot of memory: 10000 - * Machine with infinite memory: 0 (never swap). - */ -#define TIME_TO_SWAP 900 -#define TIME_TO_SWAP_VARIABLES 2000 - -/* - * How many seconds until an object is reset again. - * Set this value high if big system, otherwise low. - * No castles: 1800 (30 minutes) - * >100 castles:10000 (almost 3 hours). - */ -#define TIME_TO_RESET 2700 - -/* - * Define the maximum stack size of the stack machine. This stack will also - * contain all local variables and arguments. - */ -#define EVALUATOR_STACK_SIZE 2000 - -/* - * Define the maximum call depth for functions. - * MAX_USER_TRACE is used for for normal program execution, the full - * MAX_TRACE is only available in error handling. - */ -#define MAX_USER_TRACE 90 -#define MAX_TRACE 100 - -/* - * Define the size of the compiler stack. This defines how complex - * expressions the compiler can parse. The value should be big enough. - */ -#define COMPILER_STACK_SIZE 400 - -/* - * Maximum number of bits in a bit field. They are stored in printable - * strings, 6 bits per byte. - * The limit is more based on considerations of speed than memory - * consumption. - */ -#define MAX_BITS 6144 - -/* - * Define what port number the game is to use. - */ -#define PORTNO 7680 - -/* Maximum numbers of ports the GD accepts connections to. - */ -#define MAXNUMPORTS 20 - -/* - * Max number of local variables in a function. - */ -#define MAX_LOCAL 50 - -/* Maximum number of evaluated nodes/loop. - * If this is exceeded, the current function is halted. - * ls() can take about 30000 for large directories. - */ -#define MAX_COST 1000000 - -/* Define ALLOW_FILENAME_SPACES if the driver should accept space characters - * in filenames. If it is not defined, a hardcoded test for space characters - * is activated. - */ -#undef ALLOW_FILENAME_SPACES - - -/* Define SHARE_VARIABLES if a clone's variables are to be assigned - * from the current blueprint's variables. Undefine it if clones - * should be initialized by __INIT(). - */ -#undef SHARE_VARIABLES - -/* CATCH_RESERVED_COST is added to the eval cost for the time executing code - * guarded by a catch() statement, so that an eval_cost-too-big error can - * still be caught and handled. - * - * To catch an eval_cost too big error in an object that called recursive - * master functions, CATCH_RESERVED_COST should be greater than - * MASTER_RESERVED_COST * 2. - * TODO: Check that at runtime. - */ -#define CATCH_RESERVED_COST 20000 - -/* MASTER_RESERVED_COST is the total reserve available for master applies. - * It is halved for every recursion into another master apply. - */ -#define MASTER_RESERVED_COST 0x2000 /* must be power of 2 */ -/* TODO: Check that at runtime */ - -/* - * Where to swap out objects. This file is not used if TIME_TO_SWAP is 0. - * If the mudlib is mounted via nfs but your /tmp isn't, and isn't purged - * periodically either, it's a good idea to place the swap file there. - * The hostname will be appended to the filename defined here. - */ -#define SWAP_FILE "LP_SWAP.3" - -/* Where to save the WIZLIST information. - * If not defined, and neither given on the commandline, the driver will - * not read the WIZLIST file. - */ -#define WIZLIST_FILE "WIZLIST" - -/* This is the maximum array size allowed for one single array. - * If 0, any size is allowed. - */ -#define MAX_ARRAY_SIZE 0 - -/* This is the maximum array size allowed for one single mapping. - * If 0, any size is allowed. - */ -#define MAX_MAPPING_SIZE 0 - -/* This is the maximum number of callouts allowed at one time. - * If 0, any number is allowed. - */ -#define MAX_CALLOUTS 0 - -/* - * If this is defined, expensive operations like string additions - * receive additional evalcosts depending on the amount of data handled. - */ - -#undef DYNAMIC_COSTS - -/* - * Maximum number of players in the game. - */ -#define MAX_PLAYERS 70 - -/* - * When uploading files, we want fast response; however, normal players - * shouldn't be able to hog the system in this way. Define ALLOWED_ED_CMDS - * to be the ratio of the no of ed cmds executed per player cmd, and - * MAX_CMDS_PER_BEAT to be the max no of buffered player commands the - * system will accept in each heartbeat interval. - */ - -#define ALLOWED_ED_CMDS 20 -/* TODO: ALLOWED_ED_CMDS: make this a runtime option */ - -#define MAX_CMDS_PER_BEAT 5 /* TODO: not implemented yet :-( */ - -/* - * Reserve an extra memory area from malloc(), to free when we run out - * of memory to get some warning and start Armageddon. - * If this value is 0, no area will be reserved. - */ -#define RESERVED_USER_SIZE 800000 -#define RESERVED_MASTER_SIZE 100000 -#define RESERVED_SYSTEM_SIZE 200000 - -/* Define the size of the shared string hash table. This number needn't - * be prime, probably between 1000 and 30000; if you set it to about 1/5 - * of the number of distinct strings you have, you will get a hit ratio - * (number of comparisons to find a string) very close to 1, as found strings - * are automatically moved to the head of a hash chain. You will never - * need more, and you will still get good results with a smaller table. - * If the size is a power of two, hashing will be faster. - */ - -#define HTABLE_SIZE 16384 - -/* Define the size of the table of defines, reserved words, identifiers - * and efun names. Should be either several times smaller than HTABLE_SIZE - * or identical with it. - */ -#define ITABLE_SIZE 256 - -/* Object hash table size. - * Define this like you did with the strings; probably set to about 1/4 of - * the number of objects in a game, as the distribution of accesses to - * objects is somewhat more uniform than that of strings. - */ - -#define OTABLE_SIZE 1024 - -/* Maximum size of an expanded preprocessor definition. - */ - -#define DEFMAX 65000 - -/* the number of apply_low cache entries will be 2^APPLY_CACHE_BITS. - */ -#define APPLY_CACHE_BITS 12 - -/* The parameters of the regular expression/result cache. - * The expression cache uses a hashtable of RXCACHE_TABLE entries. - * Undefine RXCACHE_TABLE to disable the all regexp caching. - */ - -#define RXCACHE_TABLE 8192 - -/* Define COMPAT_MODE if you are using the 2.4.5 mudlib or one of its - * derivatives. - * TODO: Make this a runtime option. - */ -#define COMPAT_MODE - -/* Define STRICT_EUIDS if the driver is to enforce the use of euids, - * ie. load_object() and clone_object() require the current object to - * have a non-zero euid. - */ -#undef STRICT_EUIDS - -/* Define USE_PARSE_COMMAND if you want the efun parse_command(). - */ -#define USE_PARSE_COMMAND - -/* Define USE_SET_LIGHT if you want the efun set_light() and the - * simple 2.4.5 light system. - */ -#define USE_SET_LIGHT - -/* Define USE_SET_IS_WIZARD if you want the efun set_is_wizard(). - */ -#define USE_SET_IS_WIZARD - -/* Define USE_PROCESS_STRING if you want the efun process_string(). - */ -#define USE_PROCESS_STRING - -/* Define INITIALIZATION_BY___INIT if you want all initializations of variables - * to be suspended till the object is created ( as supposed to initialization - * at compile time; the latter is more memory efficient for loading and faster - * at cloning, while the former allows to use efuns, e.g. shutdown(). - */ -#undef INITIALIZATION_BY___INIT - -/* Define USE_SYSTEM_CRYPT if you want crypt() to be implemented by your - * operating system (assuming it offers this function). This makes your - * programm smaller and may even let you take advantage of improvements - * of your OS, but may also prohibit transporting encrypted date like - * passwords between different systems. - * Undefine USE_SYSTEM_CRYPT if you want to use the driver's portable - * crypt() implementation. - */ -#define USE_SYSTEM_CRYPT - -/* The name of the master object. - */ -#define MASTER_NAME "kernel/master" - -/* The input escape character. - */ -#define INPUT_ESCAPE "!" - -/* - * Define MAX_BYTE_TRANSFER to the number of bytes you allow to be read - * and written with read_bytes and write_bytes - */ - -#define MAX_BYTE_TRANSFER 50000 - -/* Define this if the mud are to catch incoming udp messages on a - * specific port. If == -1 it will not be used unless the mud is started - * with the -u### flag. Where ### is the portnumber for the udp port. - * If undefined the -u flag will be ignored. - */ -#define CATCH_UDP_PORT 7683 -#define UDP_SEND - -/* Define this if you want IPv6 support (assuming that your host - * actually offers this. - */ -#undef USE_IPV6 - -/* Define this if you want alist support. - */ -#undef USE_ALISTS - -/* Define this if you want to allow call_other()s on arrays of objects. - */ -#define USE_ARRAY_CALLS - -/* Define this if you want PCRE instead of traditional regexps. - */ - -#define USE_PCRE - -/* Define this if you want to use builtin PCRE (ignored when PCRE - * is disabled as a whole). - */ -#undef USE_BUILTIN_PCRE - -/* Define this if you want MCCP (Mud Control Compression Protocol). - */ -#define USE_MCCP - -/* Define this if you want TLS (Transport Layer Security) over Telnet. - */ -#undef USE_TLS - -/* Define this if you want mySQL support (assuming that your host - * actually offers this. - */ -#undef USE_MYSQL - -/* Maximum size of a socket send buffer. - */ -#define SET_BUFFER_SIZE_MAX 65536 - -/* Runtime statistics: - * COMM_STAT: count number and size of outgoing packets. - * APPLY_CACHE_STAT: count number of hits and misses in the apply cache. - */ -#define COMM_STAT -#define APPLY_CACHE_STAT - -/* Which memory manager to use. Possible defines are - * MALLOC_smalloc: Satoria's malloc. Fastest, uses the least memory, - * supports garbage collection. - * MALLOC_sysmalloc: the normal system malloc() - * MALLOC_ptmalloc: ptmalloc from www.malloc.de - threadsafe. - */ - -#define MALLOC_smalloc - -/* If MIN_MALLOCED is > 0, - * the gamedriver will reserve this amount of memory on startup for - * large blocks, thus reducing the large block fragmentation. The value - * therefore should be a significantly large multiple of the large - * chunk size. - * As a rule of thumb, reserve enough memory to cover the first couple - * of days of uptime. - */ -#define MIN_MALLOCED 0 - -/* If MIN_SMALL_MALLOCED is > 0, - * the gamedriver will reserve this amount of memory on startup for - * small blocks, thus reducing the large block fragmentation. The value - * therefore should be a significantly large multiple of the small - * chunk size. - * As a rule of thumb, reserve enough memory to cover the first couple - * of days of uptime. - */ -#define MIN_SMALL_MALLOCED 0 - -/* This value gives the upper limit for the total allocated memory - * (useful for systems with no functioning process limit). - * A value of 0 means 'unlimited'. - */ -#define MAX_MALLOCED 0x4000000 - -/* Define this to let the memory allocator request memory from the system - * directly using sbrk() (assuming the system supports it). - * If not defined, the memory allocator will use malloc(). - * Supported by: MALLOC_smalloc - */ -#define MALLOC_SBRK - -/* Define this to annotate all allocations with a magic word to find - * simple misuses of memory (like multiple frees). - * Supported by: MALLOC_smalloc - */ -#define MALLOC_CHECK - -/* Define this to annotate all allocations with file:line of the driver - * source responsible for it. - * Supported by: MALLOC_smalloc - */ -#undef MALLOC_TRACE - -/* Define this to annotate all allocations with file:line of the lpc program - * responsible for it. - * Supported by: MALLOC_smalloc - */ -#undef MALLOC_LPC_TRACE - -/* Define this to log all calls to esbrk() (the system memory allocator). - * Works best if MALLOC_TRACE, or also MALLOC_LPC_TRACE, are defined. - * Supported by: MALLOC_smalloc - */ -#undef MALLOC_SBRK_TRACE - -/* Trace the most recently executed bytecode instructions? - */ -#define TRACE_CODE - -/* If using TRACE_CODE , how many instructions should be kept? */ -#define TOTAL_TRACE_LENGTH 0x1000 - -/* If you want to use threads to write the data to the sockets - * define USE_PTHREADS. To limit the memory usage of each thread - * define PTHREAD_WRITE_MAX_SIZE to a value greater than zero. - * The implementation will discard the oldest not yet written - * data blocks to keep memoty usage under the limit. - */ -#undef USE_PTHREADS -#define PTHREAD_WRITE_MAX_SIZE 100000 - -/*----------------------------------------------------------------*/ -/* The following macros activate various debugging and profiling - * code segments. - */ - -/* Enable basic run time sanity checks. This will use more time - * and space, but nevertheless you are strongly encouraged to keep - * it defined. - */ -#define DEBUG - -/* The DEBUG level for the ERQ daemon: 0 means 'no debug', 1 means - * 'standard debug', 2 means 'verbose debug'. - */ -#define ERQ_DEBUG 0 - -/* Enable debug output from the LPC compiler. - */ -/* #define YYDEBUG 1 */ - -/* Disable inlining. - */ -/* #define NO_INLINES */ - -/* Enable the shared string checking (enables commandline option - * --check-strings). - */ -#define CHECK_STRINGS - -/* Shared strings are never really freed. - */ -/* #define KEEP_STRINGS */ - -/* Activate debug prints in the telnet machine. - */ -/* #define DEBUG_TELNET */ - -/* Activate allocation debug prints in the smalloc module. - */ -/* #define DEBUG_SMALLOC_ALLOCS */ - -/* Trace changes to the tot_alloc_object and tot_alloc_object_size - * statistics, in order to find the status bugs (enables commandline - * option --check-object-stat). Will produce a decent amount of - * output on stderr. - */ -#define CHECK_OBJECT_STAT - -/* Enable the automatic data cleanup from the backend. - * TODO: Remove this macro once it is proven stable. - */ -#define NEW_CLEANUP - -/* Activate total mapping size consistency check code. It has a small - * impact on the execution speed. This define was used to find - * the inaccuracy in the mapping statistic. - */ -/* #define CHECK_MAPPING_TOTAL */ - -/* Activate object refcount check code. It will produce a decent - * amount of log output. It will also fatal() the driver as soon - * as it detects an inconsistency in the list of destructed objects. - */ -/* #define CHECK_OBJECT_REF */ - -/* Activate object referencing checking code during the GC. It will - * print error messages to gcout when an object or program is - * referenced as something else. No penalty for using. - * Requires MALLOC_TRACE to work. Incompatible with DUMP_GC_REFS. - */ -#ifdef MALLOC_TRACE -# define CHECK_OBJECT_GC_REF -#endif - -/* Sometimes the GC stumbles over invalid references to memory - * blocks (namely 'Program referenced as something else'). Define - * this macro to get a detailed dump of all found references - * (Warning: LOTS of output!). Incompatible with CHECK_OBJECT_GC_REF. - */ -/* #define DUMP_GC_REFS */ - -/* Enable usage statistics of VM instructions. - * For profiling of the VM instructions themselves, see the Profiling - * Options in the Makefile. - */ -/* #define OPCPROF */ - -#ifdef OPCPROF -/* With OPCPROF, the dump of the statistics include the names - * of the instructions. - */ -/* #define VERBOSE_OPCPROF */ -#endif - -/* Define this if you want structs supported. - */ -#define USE_STRUCTS - -/* Define this if you want the new inline closure syntax supported. - * (f-020528) - */ -#undef USE_NEW_INLINES - -#endif /* CONFIG_H__ */ diff --git a/src/hosts/win32/machine.h b/src/hosts/win32/machine.h deleted file mode 100644 index 6f65a08..0000000 --- a/src/hosts/win32/machine.h +++ /dev/null @@ -1,270 +0,0 @@ -/* machine.h. Generated automatically by configure. */ -/* machine.h.in. Generated automatically from configure.in by autoheader. */ - -#ifndef MACHINE_H -#define MACHINE_H - - -/* Define if using alloca.c. */ -/* #undef C_ALLOCA */ - -/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. - This function is required for alloca.c support on those systems. */ -/* #undef CRAY_STACKSEG_END */ - -/* Define if you have alloca, as a function or macro. */ -#define HAVE_ALLOCA 1 - -/* Define if you have <alloca.h> and it should be used (not on Ultrix). */ -/* #undef HAVE_ALLOCA_H */ - -/* Define as __inline if that's what the C compiler calls it. */ -/* #undef inline */ - -/* Define to `int' if <sys/types.h> doesn't define. */ -/* #undef pid_t */ - -/* Define as the return type of signal handlers (int or void). */ -#define RETSIGTYPE void - -/* Set in response to the signal handler return type, since not all - * compilers understand direct definition comparisons - */ -#define RETSIGTYPE_VOID 1 - -/* Define to `unsigned' if <sys/types.h> doesn't define. */ -/* #undef size_t */ - -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at run-time. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown - */ -/* #undef STACK_DIRECTION */ - -/* Define if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* does the compiler provide inline functions? */ -#define HAS_INLINE 1 - -/* Is the library function inet_ntoa() compatible with the compiler? - * TODO: Is there any platform where this is not the case? - */ -#define INET_NTOA_OK 1 - -/* A mask that allows to extract an unsigned char from a signed */ -#define CHARBIT_MASK 0xff - -#define RENAME_HANDLES_DIRECTORIES 1 - -/* Does the system have a getrusage call? */ -#define HAVE_GETRUSAGE 1 -/* If so, is it restricted to user and system time? */ -/* #undef GETRUSAGE_RESTRICTED */ -/* Is it available as a subfunction of syscall() ? */ -/* #undef GETRUSAGE_VIA_SYSCALL */ -/* Can ru_utime / ru_stime be accessed as a timeval with tv_sec and tv_usec ? */ -#define RUSAGE_USEC 1 - -/* the atari strtol() used to consider characters '9' < c < 'A' to be numeric */ -/* #undef STRTOL_BROKEN */ - -/* needs the first argument of strtol be declared as const ? */ -#define STRTOL_CONST_CHARP 1 - -/* Define if you have bcopy, and it handles overlapping ranges correctly. */ -#define OVERLAPPING_BCOPY 1 - -#define MALLOC_ALIGN 8 - -/* does the compiler know of a 'ssize_t' type? */ -#define HAVE_SSIZE_T 1 - -/* does the compiler know of a 'long long' type? */ -#define HAVE_LONG_LONG 1 - -/* does the compiler know of a 'bool' type? */ -/* #undef HAVE_BOOL */ - -/* what kind of pointer is used by malloc() et al */ -#define POINTER void * -#define FREE_RETURNS_VOID 1 - -/* can we define our own malloc() safely? */ -/* #undef SBRK_OK */ - -/* The following is needed for smalloc without SBRK_OK to use memory - * efficiently. smalloc will malloc blocks that are a large power of - * two, minus EXTERN_MALLOC_OVERHEAD. If you have no idea what number to - * choose, compile & run util/overhead.c - */ -#define EXTERN_MALLOC_OVERHEAD 4 - -/* How to set a socket non-blocking */ -/* #undef USE_IOCTL_FIONBIO */ -#define USE_FCNTL_O_NDELAY 1 -#define USE_FCNTL_FNDELAY 1 - -/* Can F_SETOWN be used on a socket? */ -/* #undef USE_FCNTL_SETOWN */ - -/* Can SO_OOBINLINE be used on a socket? */ -#define USE_OOBINLINE 1 - -/* Does the machine offer IPv6? */ -#define HAS_IPV6 1 - -/* Does the machine offer mySQL? */ -/* #undef HAS_MYSQL */ - -/* define the erq include file. */ -#define ERQ_INCLUDE "util/erq/erq.h" - -/* define the host-specific include file */ -/* #undef HOST_INCLUDE */ - -/* The number of bytes in a char *. */ -#define SIZEOF_CHAR_P 4 - -/* The number of bytes in a int. */ -#define SIZEOF_INT 4 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/* The number of bytes in a long long. */ -#define SIZEOF_LONG_LONG 8 - -/* The number of bytes in a short. */ -#define SIZEOF_SHORT 2 - -/* Define if you have the _crypt function. */ -/* #undef HAVE__CRYPT */ - -/* Define if you have the bzero function. */ -#define HAVE_BZERO 1 - -/* Define if you have the crypt function. */ -#define HAVE_CRYPT 1 - -/* Define if you have the fchmod function. */ -#define HAVE_FCHMOD 1 - -/* Define if you have the fcntl function. */ -#define HAVE_FCNTL 1 - -/* Define if you have the getcwd function. */ -#define HAVE_GETCWD 1 - -/* Define if you have the getdomainname function. */ -#define HAVE_GETDOMAINNAME 1 - -/* Define if you have the getrusage function. */ -#define HAVE_GETRUSAGE 1 - -/* Define if you have the gettimeofday function. */ -#define HAVE_GETTIMEOFDAY 1 - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY 1 - -/* Define if you have the memmem function. */ -/* #undef HAVE_MEMMEM */ - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE 1 - -/* Define if you have the memset function. */ -#define HAVE_MEMSET 1 - -/* Define if you have the strchr function. */ -#define HAVE_STRCHR 1 - -/* Define if you have the strcspn function. */ -#define HAVE_STRCSPN 1 - -/* Define if you have the strdup function. */ -#define HAVE_STRDUP 1 - -/* Define if you have the strrchr function. */ -#define HAVE_STRRCHR 1 - -/* Define if you have the sysconf function. */ -#define HAVE_SYSCONF 1 - -/* Define if you have the wait3 function. */ -/* ANDERS */ -#define HAVE_WAIT3 1 - -/* Define if you have the waitpid function. */ -#define HAVE_WAITPID 1 - -/* Define if you have the <bstring.h> header file. */ -/* #undef HAVE_BSTRING_H */ - -/* Define if you have the <crypt.h> header file. */ -/* ANDERS */ -#define HAVE_CRYPT_H 1 - -/* Define if you have the <dirent.h> header file. */ -#define HAVE_DIRENT_H 1 - -/* Define if you have the <libc.h> header file. */ -/* #undef HAVE_LIBC_H */ - -/* Define if you have the <limits.h> header file. */ -#define HAVE_LIMITS_H 1 - -/* Define if you have the <memory.h> header file. */ -#define HAVE_MEMORY_H 1 - -/* Define if you have the <ndir.h> header file. */ -/* #undef HAVE_NDIR_H */ - -/* Define if you have the <netdb.h> header file. */ -#define HAVE_NETDB_H 1 - -/* Define if you have the <stdlib.h> header file. */ -#define HAVE_STDLIB_H 1 - -/* Define if you have the <string.h> header file. */ -#define HAVE_STRING_H 1 - -/* Define if you have the <sys/dir.h> header file. */ -/* #undef HAVE_SYS_DIR_H */ - -/* Define if you have the <sys/ndir.h> header file. */ -/* #undef HAVE_SYS_NDIR_H */ - -/* Define if you have the <sys/param.h> header file. */ -#define HAVE_SYS_PARAM_H 1 - -/* Define if you have the <sys/rusage.h> header file. */ -/* #undef HAVE_SYS_RUSAGE_H */ - -/* Define if you have the <sys/termios.h> header file. */ -#define HAVE_SYS_TERMIOS_H 1 - -/* Define if you have the <sys/time.h> header file. */ -#define HAVE_SYS_TIME_H 1 - -/* Define if you have the <unistd.h> header file. */ -#define HAVE_UNISTD_H 1 - -/* Define if you have the <values.h> header file. */ -/* #undef HAVE_VALUES_H */ - -/* Define if you have the m library (-lm). */ -#define HAVE_LIBM 1 - -/* Define if you have the nsl library (-lnsl). */ -/* #undef HAVE_LIBNSL */ - -/* Define if you have the socket library (-lsocket). */ -/* #undef HAVE_LIBSOCKET */ - -#endif - diff --git a/src/hosts/win32/tubmud.bmp b/src/hosts/win32/tubmud.bmp deleted file mode 100644 index e51f138c4b8f36cb4150fe78724f497e0f050039..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101470 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 diff --git a/src/machine.h.in b/src/machine.h.in index 9813637..4f7dc32 100644 --- a/src/machine.h.in +++ b/src/machine.h.in @@ -33,6 +33,9 @@ /* Is it available as a subfunction of syscall()? */ #undef GETRUSAGE_VIA_SYSCALL +/* Does the machine offer libgcrypt? */ +#undef HAS_GCRYPT + /* Does the machine offer GnuTLS? */ #undef HAS_GNUTLS @@ -69,12 +72,6 @@ /* Does the machine offer PostgreSQL? */ #undef HAS_PGSQL -/* Does the machine offer pthreads? */ -#undef HAS_PTHREADS - -/* Does the machine offer pthread_atfork()? */ -#undef HAS_PTHREAD_ATFORK - /* Does the machine offer SQLite3? */ #undef HAS_SQLITE3 @@ -272,9 +269,6 @@ /* Define to 1 if you have the `_crypt' function. */ #undef HAVE__CRYPT -/* define the host-specific include file */ -#undef HOST_INCLUDE - /* Is the library function inet_ntoa() compatible with the compiler? */ #undef INET_NTOA_OK diff --git a/src/port.c b/src/port.c index c2525ca..a1ab31a 100644 --- a/src/port.c +++ b/src/port.c @@ -355,18 +355,6 @@ move_memory (char *dest, char *src, size_t n) #endif /* !HAVE_MEMMOVE */ /*-------------------------------------------------------------------------*/ -#if (!defined(HAVE_CRYPT) && !defined(HAVE__CRYPT)) || !defined(USE_SYSTEM_CRYPT) -#include "hosts/crypt.c" -#endif - -#if 0 /* If you can't get crypt to compile, you can use this dummy */ -char * crypt(char *pass, char *salt) -{ - return pass; -} -#endif - -/*-------------------------------------------------------------------------*/ #if !defined(HAVE_GETRUSAGE) #include <sys/times.h> @@ -424,4 +412,3 @@ getrusage (int who, struct rusage *rusage) { #endif /* CYGWIN */ /***************************************************************************/ - diff --git a/src/port.h b/src/port.h index f8ae7f1..79a2991 100644 --- a/src/port.h +++ b/src/port.h @@ -11,8 +11,7 @@ * features, includes the most common system includes and, more * important, the host specific includes. port.h knows about the * architectures the driver has been ported to and includes - * their files automatically. This process can be bypassed by - * defining an include file in the macro HOST_INCLUDE. + * their files automatically. * * Not everything system dependent is defined here, some stuff * are kept in separate my-foo.h files. @@ -564,18 +563,6 @@ typedef char CBool; #define ALARM_HANDLER_FIRST_CALL(name) name(0) /*------------------------------------------------------------------ - * The host specific includes - */ - -#if defined(HOST_INCLUDE) -# include HOST_INCLUDE -#elif defined(__BEOS__) -# include "hosts/be/be.h" -#else -# include "hosts/unix.h" -#endif - -/*------------------------------------------------------------------ * At last, the functions provided in port.c */ @@ -606,7 +593,6 @@ extern void move_memory(char *, char *, size_t); #endif #if ((!defined(HAVE_CRYPT) && !defined(HAVE__CRYPT))) || \ - !defined(USE_SYSTEM_CRYPT) || \ (defined(sgi) && !defined(_MODERN_C)) || defined(ultrix) \ || defined(sun) extern char *crypt(const char *, const char *); diff --git a/src/settings/default b/src/settings/default index 50ebaf5..48d9b32 100755 --- a/src/settings/default +++ b/src/settings/default @@ -355,16 +355,6 @@ enable_use_process_string=yes enable_share_variables=no -# Define USE_SYSTEM_CRYPT if you want crypt() to be implemented by your -# operating system (assuming it offers this function). This makes your -# programm smaller and may even let you take advantage of improvements -# of your OS, but may also prohibit transporting encrypted date like -# passwords between different systems. -# Undefine USE_SYSTEM_CRYPT if you want to use the driver's portable -# crypt() implementation. - -enable_use_system_crypt=yes - # Enable support for mySQL (assuming your system supports it). # # 'no' : mySQL support is not compiled in -- 1.6.1 0002-Removed-use-system-crypt-from-configure.patch (3,462 bytes)
From 2cdcf9e42e6742a8b4010f4e9a8e657b53948909 Mon Sep 17 00:00:00 2001 From: zesstra <zesstra@zesstra.de> Date: Tue, 14 Apr 2009 22:50:55 +0200 Subject: [PATCH 02/12] Removed --use-system-crypt from configure. Signed-off-by: zesstra <zesstra@zesstra.de> --- src/autoconf/configure.in | 45 ++++++++++++++++++--------------------------- 1 files changed, 18 insertions(+), 27 deletions(-) diff --git a/src/autoconf/configure.in b/src/autoconf/configure.in index 9f369a7..e031ec4 100644 --- a/src/autoconf/configure.in +++ b/src/autoconf/configure.in @@ -112,7 +112,6 @@ AC_MY_ARG_ENABLE(compat-mode,no,,[Enable compat mode]) AC_MY_ARG_ENABLE(strict-euids,no,,[Enforce euids for loading objects]) AC_MY_ARG_ENABLE(filename-spaces,no,,[Allow space characters in filenames]) AC_MY_ARG_ENABLE(share-variables,no,,[Enable clone initialization from blueprint variable values]) -AC_MY_ARG_ENABLE(use-system-crypt,yes,,[Use crypt() from libc]) AC_MY_ARG_ENABLE(use-ipv6,no,,[Enables support for IPv6]) AC_MY_ARG_ENABLE(use-alists,no,,[Enables alist support]) AC_MY_ARG_ENABLE(use-mccp,no,,[Enables MCCP support]) @@ -379,7 +378,6 @@ AC_CDEF_FROM_ENABLE(compat_mode) AC_CDEF_FROM_ENABLE(strict_euids) AC_CDEF_FROM_ENABLE(filename_spaces) AC_CDEF_FROM_ENABLE(share_variables) -AC_CDEF_FROM_ENABLE(use_system_crypt) AC_CDEF_FROM_ENABLE(use_alists) AC_CDEF_FROM_ENABLE(use_mccp) AC_CDEF_FROM_ENABLE(use_ipv6) @@ -718,32 +716,26 @@ if test "$lp_cv_need_lib_resolv" = "yes"; then fi # --- Check if we need the crypto libraries --- - -if test "x$enable_use_system_crypt" = "x" || test "x$enable_use_system_crypt" = "xyes"; then - AC_CHECK_FUNCS(crypt _crypt) - - for lp_lib in crypt crypto; do - if test "$ac_cv_func_crypt" != "yes" -a "$ac_cv_func__crypt" != "yes"; then - # Try linking with lib$lp_lib - unset ac_cv_func_crypt - unset ac_cv_func__crypt - lp_save_libs="$LIBS" - AC_CHECK_LIB($lp_lib,main, LIBS="$LIBS -l$lp_lib") - - if test "$SAVE_LIBS" != "$LIBS" ; then - AC_CHECK_FUNCS(crypt _crypt) - if test "$ac_cv_func_crypt" != "yes" -a "$ac_cv_func__crypt" != "yes"; then - # They are not in this library - LIBS="$lp_save_libs" - else - eval "lp_cv_need_lib_${lp_lib}=yes" - fi +AC_CHECK_FUNCS(crypt _crypt) +for lp_lib in crypt crypto; do + if test "$ac_cv_func_crypt" != "yes" -a "$ac_cv_func__crypt" != "yes"; then + # Try linking with lib$lp_lib + unset ac_cv_func_crypt + unset ac_cv_func__crypt + lp_save_libs="$LIBS" + AC_CHECK_LIB($lp_lib,main, LIBS="$LIBS -l$lp_lib") + + if test "$SAVE_LIBS" != "$LIBS" ; then + AC_CHECK_FUNCS(crypt _crypt) + if test "$ac_cv_func_crypt" != "yes" -a "$ac_cv_func__crypt" != "yes"; then + # They are not in this library + LIBS="$lp_save_libs" + else + eval "lp_cv_need_lib_${lp_lib}=yes" fi fi - done - -fi - + fi +done AC_CACHE_CHECK(if inet_ntoa() ok,lp_cv_func_inet_ntoa_ok, AC_TRY_RUN([ @@ -2720,7 +2712,6 @@ AC_SUBST(cdef_compat_mode) AC_SUBST(cdef_strict_euids) AC_SUBST(cdef_filename_spaces) AC_SUBST(cdef_share_variables) -AC_SUBST(cdef_use_system_crypt) AC_SUBST(cdef_use_ipv6) AC_SUBST(cdef_use_mysql) AC_SUBST(cdef_use_pgsql) -- 1.6.1 | ||||
|
Some extra debugging: slaballoc: no reorder: this 00002b8f445428e8 free 22, no next slaballoc: alloc (80 + 16) 96 bytes -> [3] slaballoc: block 00002b8f44568ed0 from freelist (next 00002b8f44568f30), slab 00002b8f44567d60 free 15 slaballoc: alloc (120 + 16) 136 bytes -> [8] slaballoc: freshmem 00002b8f444fd8d8 from 00002b8f444fc310..00002b8f44500688 slaballoc: free 00002b8f43552858, offset 861, small 1 slaballoc: -> slab 00002b8f43550d70 [6], freelist 00002b8f43552d80, 22 free slaballoc: no reorder: this 00002b8f43550d70 free 23, no next slaballoc: alloc (80 + 16) 96 bytes -> [3] slaballoc: block 00002b8f44568f30 from freelist (next 00002b8f44568f90), slab 00002b8f44567d60 free 14 2009.04.13 23:41:57 [xerq] select() returns 1, time() 1239680517 2009.04.13 23:41:57 [xerq] New command from driver. [xerq] read: Success 2009.04.13 23:41:57 [xerq] Demon exiting. |
|
Well, thanks for the report. Unfortunately, this doesn't tell too much so far. We need at least a stack trace when the driver segfaults or a core dump. You could start the driver in a gdb session and list the stack trace after the segfault with 'bt full' or issue a 'ulimit -c unlimited' in the shell before you start the driver. Then a core dump will be written upon crashes in the / of the mudlib (which you can load into gdb and get the stack trace). Some additional comments: - The compiler settings from the INSTALL are an example from _my_ machine. The compiler settings you need for generating 64bit executables with your gcc may be different. Especially if you don't have any Intel Core-Duo processor, you should NOT use -mtune=core2. - Are you using a plain 3.3.718 (without any patches/modifications)? - Could you add the output of 'file' for the crashing ldmud executable and the ouput of 'gcc -v'? - if you change compiler settings altering the architecture of the executable, please issue a 'make distclean' before calling 'configure'. Not doing this may create all sorts of problems leading to crashes. - You may add a -ggdb3 for maximum debug information to the DEBUG variable in the Makefile. - If the problem is completely reproducable, you could attempt to make a minimal test case (including minimal needed mudlib) so that we can try to reproduce it as well. |
|
Hello! - Compiler settings. I'm not sure what to use, this is beyond me right now. - Version. I've used both a vanilla version and my own version with two patches. I am seeing the same crash on a vanilla 3.3.718 as my patched version. I will include results from both versions just in case. - ldmud: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.4, dynamically linked (uses shared libs), not stripped Using built-in specs. Target: x86_64-suse-linux Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.2.1 --enable-ssp --disable-libssp --disable-libgcj --with-slibdir=/lib64 --with-system-zlib --enable-shared --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --program-suffix=-4.2 --enable-version-specific-runtime-libs --without-system-libunwind --with-cpu=generic --host=x86_64-suse-linux Thread model: posix gcc version 4.2.1 (SUSE Linux) - Distclean - i will try this but i've used a brand new download of ldmud and recieved the same result. - I will try the -ggdb3 next. |
|
Here is the gdb output from the current crash, without the ggdb3 flag. df:/home/dragonfire/bin # gdb -c ../lib/core ldmud GNU gdb 6.6.50.20070726-cvs Copyright (C) 2007 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-suse-linux"... Using host libthread_db library "/lib64/libthread_db.so.1". Reading symbols from /lib64/libnsl.so.1...done. Loaded symbols for /lib64/libnsl.so.1 Reading symbols from /lib64/libm.so.6...done. Loaded symbols for /lib64/libm.so.6 Reading symbols from /usr/lib64/libidn.so.11...done. Loaded symbols for /usr/lib64/libidn.so.11 Reading symbols from /usr/lib64/libpcre.so.0...done. Loaded symbols for /usr/lib64/libpcre.so.0 Reading symbols from /lib64/libz.so.1...done. Loaded symbols for /lib64/libz.so.1 Reading symbols from /lib64/libc.so.6...done. Loaded symbols for /lib64/libc.so.6 Reading symbols from /lib64/ld-linux-x86-64.so.2...done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 Core was generated by `/home/dragonfire/bin/ldmud --debug-file DF.debug.log'. Program terminated with signal 11, Segmentation fault. #0 0x00000000004930d0 in f_functionlist (sp=0x76a120) at object.c:1883 1883 flags = fun[j]; (gdb) |
|
As I mentioned yesterday I have a development mudlib. I'm getting a different gdb result from this. Here it is: df:/home/dragonfiredev/bin # gdb -c ../dev-lib/core ldmud GNU gdb 6.6.50.20070726-cvs Copyright (C) 2007 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-suse-linux"... Using host libthread_db library "/lib64/libthread_db.so.1". warning: core file may not match specified executable file. Reading symbols from /lib64/libnsl.so.1...done. Loaded symbols for /lib64/libnsl.so.1 Reading symbols from /lib64/libm.so.6...done. Loaded symbols for /lib64/libm.so.6 Reading symbols from /usr/lib64/libidn.so.11...done. Loaded symbols for /usr/lib64/libidn.so.11 Reading symbols from /usr/lib64/libpcre.so.0...done. Loaded symbols for /usr/lib64/libpcre.so.0 Reading symbols from /usr/lib64/libmysqlclient.so.15...done. Loaded symbols for /usr/lib64/libmysqlclient.so.15 Reading symbols from /lib64/libz.so.1...done. Loaded symbols for /lib64/libz.so.1 Reading symbols from /lib64/libc.so.6...done. Loaded symbols for /lib64/libc.so.6 Reading symbols from /lib64/libcrypt.so.1...done. Loaded symbols for /lib64/libcrypt.so.1 Reading symbols from /usr/lib64/libssl.so.0.9.8...done. Loaded symbols for /usr/lib64/libssl.so.0.9.8 Reading symbols from /usr/lib64/libcrypto.so.0.9.8...done. Loaded symbols for /usr/lib64/libcrypto.so.0.9.8 Reading symbols from /lib64/ld-linux-x86-64.so.2...done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 Reading symbols from /lib64/libdl.so.2...done. Loaded symbols for /lib64/libdl.so.2 Core was generated by `/home/dragonfiredev/bin/dev-ldmud -d --debug-file /home/dragonfiredev/DF.debug.'. Program terminated with signal 11, Segmentation fault. #0 0x00000000004c6570 in crypt (buf=0x2b881f1eb061 "", salt=0x2b881f11a3fa "2wSDC4Eu8m3YM") at hosts/crypt.c:543 543 ll = out[0]; l2c(ll,b); |
|
Ok, 'gcc -v' tells, that your gcc creates executables for the x86_64 architecture by default, without any special compiler settings/options. You can leave them just as they are and don't change anything. In fact, you have to change them if you want executables for the (32bit) i386 architecture, in many cases it will be -m32. -ggdb3 won't change anything concerning the crash itself, but it adds information used in a debugger session (live or post-mortem by using a core dump). You may have to install 'gdb' for getting a stack trace then. |
|
The crash in Note 0000624:0001028 seems to be the same one I described in bug 0000559. That one was fixed in revision 2492 in the trunk of the driver. The other one in crypt() is unknown to me so far. hosts/crypt.c implements crypt() in a portable way (e.g. for systems which don't have its own crypt()). But: most modern systems, and certainly your Suse-Linux include a crypt() implementation in its glibc. I suggest to use it by NOT using --enable-use-system-crypt=no. So either make it a --enable-use-system-crypt=yes or just delete the configure option from your settings. I guess, that crash was probably not noticed for a long time, because nearly nobody used the crypt()-implementation we include in the driver. (That said, it doesn't crash on my system.) BTW: If you get a core dump, please keep exactly the same executable around which generated it (see gdb warning 'warning: core file may not match specified executable file.'). Otherwise a core dump looses much of its usefulness. (I usually archive the core dump and the corresponding executable in one directory or tar archive.) |
|
(gdb) bt #0 0x00000000004937e8 in f_functionlist (sp=0x76a3c0) at object.c:1883 0000001 0x0000000000455d88 in eval_instruction ( first_instruction=0x2b2fa18c7baa "b\037", initial_sp=0x76a360) at interpret.c:8148 0000002 0x000000000046d1c5 in apply_low (fun=0x2b2fa1853ac0, ob=0x2b2fa18a6968, num_arg=0, b_ign_prot=false, allowRefs=false) at interpret.c:16949 0000003 0x000000000046d350 in int_apply (fun=0x2b2fa1853ac0, ob=0x2b2fa18a6968, num_arg=0, b_ign_prot=false, b_use_default=true) at interpret.c:17027 0000004 0x0000000000468c95 in eval_instruction ( first_instruction=0x2b2fa18589db "b", initial_sp=0x76a320) at interpret.c:16297 0000005 0x000000000046efb7 in int_call_lambda (lsvp=0x76a320, num_arg=0, allowRefs=false) at interpret.c:18030 0000006 0x0000000000473435 in v_funcall (sp=0x76a320, num_arg=1) at interpret.c:20451 0000007 0x00000000004563db in eval_instruction ( first_instruction=0x2b2fa187702a "a\003\001\037", initial_sp=0x76a300) at interpret.c:8297 0000008 0x000000000046eb96 in int_call_lambda (lsvp=0x76a2b0, num_arg=3, allowRefs=false) at interpret.c:17913 0000009 0x0000000000473435 in v_funcall (sp=0x76a2e0, num_arg=4) at interpret.c:20451 0000010 0x00000000004563db in eval_instruction ( ---Type <return> to continue, or q <return> to quit--- first_instruction=0x2b2f9fb06bd3 "b", initial_sp=0x76a290) at interpret.c:8297 0000011 0x000000000046efb7 in int_call_lambda (lsvp=0x8784e0, num_arg=0, allowRefs=false) at interpret.c:18030 0000012 0x0000000000492053 in reset_object (ob=0x2b2fa18a6968, arg=4) at object.c:880 0000013 0x00000000004ce529 in load_object (lname=0x7fff0b095f10 "std/room", create_super=true, depth=1, isMasterObj=false, chain=0x7fff0b095f70) at simulate.c:2158 #14 0x00000000004ce0f6 in load_object (lname=0x832640 "std/room/objects", create_super=false, depth=0, isMasterObj=false, chain=0x0) at simulate.c:2045 #15 0x00000000004cedc7 in lookfor_object (str=0x2b2f9fb04e90, bLoad=true) at simulate.c:2426 #16 0x00000000004d2c84 in f_load_object (sp=0x76a260) at simulate.c:4499 #17 0x0000000000455b86 in eval_instruction ( first_instruction=0x2b2fa18774fa "a\001\001\037", initial_sp=0x76a250) at interpret.c:8098 #18 0x000000000046cdac in apply_low (fun=0x2b2f9faf9d38, ob=0x2b2f9fb21d20, num_arg=1, b_ign_prot=true, allowRefs=false) at interpret.c:16836 #19 0x000000000046d350 in int_apply (fun=0x2b2f9faf9d38, ob=0x2b2f9fb21d20, num_arg=1, b_ign_prot=true, b_use_default=false) at interpret.c:17027 #20 0x000000000046d7a0 in sapply_int (fun=0x2b2f9faf9d38, ob=0x2b2f9fb21d20, ---Type <return> to continue, or q <return> to quit--- num_arg=1, b_find_static=true, b_use_default=false) at interpret.c:17188 #21 0x000000000046e015 in apply_master_ob (fun=0x2b2f9faf9d38, num_arg=1, external=false) at interpret.c:17491 #22 0x0000000000411254 in preload_objects (eflag=0) at backend.c:1288 #23 0x000000000047f1e6 in main (argc=3, argv=0x7fff0b098338) at main.c:620 (gdb) |
|
uploaded a full backtrace from my production lib and from my dev lib since they are producing slightly different output. |
|
Ok, I can reproduce the crash in the crypt() from hosts/crypt.c after all (did start the wrong executable in my first test *gna*), which is a NULL pointer dereference and doesn't seem to happen on the i386 platform. I will investigate it this evening. For the moment as immediate bugfixes: use the system crypt() for this issue. For the other crash in f_functionlist() you may either use the current trunk in our svn or extract patch for r2492 from it. (If you don't know how to do this, I could send you the patch after work, but knowing our subversion repository may be advantagous anyway. *g*) |
|
Im trying to use the latest trunk but it freaks out immediately on make. It seems to not like lines like this "@cdef_use_gcrypt@ USE_GCRYPT" in config.h df:/home/dragonfire/ldmud-3.3.718-latest/src # make ./mk-patchlevel.sh gcc -std=gnu99 -I/usr/include/pgsql -I/usr/include/mysql -g -Wall -Wparentheses -Wshadow -DMUD_LIB='"/home/dragonfire/lib"' -DBINDIR='"/home/dragonfire/bin"' -DERQ_DIR='"/home/dragonfire/libexec"' -c -o access_check.o access_check.c In file included from driver.h:15, from access_check.c:92: config.h:348: error: stray â@â in program Am I missing a step in preparing the trunk version before compiling? |
|
There is a script called autogen.sh, that should be executed to regenerate the configure script. |
|
des_set_key() assumes that longs are 4 byte long. If the longs are 8 bytes long, the function overwrites 128 bytes following one of its buffers. Unfortunately, a pointer is located after that buffer and overwritten. This leads to a crash upon dereferencing it. des_set_key() is designed to work in 4-byte long blocks (Shifts, Ands) and uses 16 iterations to write a 128 char long buffer in two 4-char long writes per iteration. The immediate solution would be to use a datatype with a length of 4 instead of longs. But as we think of removing hosts/ altogether for some time, I suggest not to fix this code, but remove it. POSIX requires a crypt(), so there should be no negative consequences to always use the system crypt(). |
|
Thanks for the responses. After running autogen.sh my production lib will compile well but still crashes on crypt. Zesstra I'm gathering that your solution is to use the system crypt but I'm not sure how to do this. Do I need to modify the crypt.c or modify my mudlib? |
|
No, just delete the --enable-use-system-crypt=no from your configure call in the script you use to call configure. |
|
This appears to have resolved my problems! The mud has been running error free for about 4 hours -- migrated the sql databases and tested those. Thank you very much for your help and consulting. |
|
I attached two patches, which removes hosts/. |
|
The possibility for not using the system supplied crypt() (that means: our own from hosts/) was removed in r2565 along with the whole hosts/ directory. |
Date Modified | Username | Field | Change |
---|---|---|---|
2009-04-13 21:13 | wedsall | New Issue | |
2009-04-13 21:43 | wedsall | Note Added: 0001025 | |
2009-04-14 02:54 | zesstra | Note Added: 0001026 | |
2009-04-14 07:22 | wedsall | Note Added: 0001027 | |
2009-04-14 07:23 | wedsall | Note Added: 0001028 | |
2009-04-14 07:27 | wedsall | Note Added: 0001029 | |
2009-04-14 07:35 | zesstra | Note Added: 0001030 | |
2009-04-14 07:35 | zesstra | Status | new => acknowledged |
2009-04-14 07:35 | zesstra | OS | => GNU/Linux |
2009-04-14 07:35 | zesstra | OS Version | => 2.6.22.5 |
2009-04-14 07:35 | zesstra | Platform | => x86_64 |
2009-04-14 07:56 | zesstra | Note Added: 0001031 | |
2009-04-14 07:56 | wedsall | Note Added: 0001032 | |
2009-04-14 08:10 | wedsall | File Added: bt.full | |
2009-04-14 08:10 | wedsall | File Added: bt.full-dev | |
2009-04-14 08:11 | wedsall | Note Added: 0001033 | |
2009-04-14 08:15 | zesstra | Note Added: 0001034 | |
2009-04-14 08:15 | zesstra | Status | acknowledged => confirmed |
2009-04-14 11:26 | wedsall | Note Added: 0001035 | |
2009-04-14 11:35 | Gnomi | Note Added: 0001036 | |
2009-04-14 11:53 | zesstra | Relationship added | related to 0000625 |
2009-04-14 12:08 | zesstra | Note Added: 0001037 | |
2009-04-14 12:08 | zesstra | Assigned To | => zesstra |
2009-04-14 12:08 | zesstra | Status | confirmed => assigned |
2009-04-14 12:10 | zesstra | Priority | normal => low |
2009-04-14 12:10 | zesstra | Category | Compilation, Installation => Portability |
2009-04-14 12:10 | zesstra | Target Version | => 3.3.719 |
2009-04-14 12:10 | zesstra | Summary | x86_64 segmentation fault while starting => Crash in included crypt() implementation on platforms with sizeof(long)==8 (e.g. x86_64) |
2009-04-14 12:10 | zesstra | Project | LDMud => LDMud 3.3 |
2009-04-14 12:39 | wedsall | Note Added: 0001038 | |
2009-04-14 13:07 | zesstra | Note Added: 0001039 | |
2009-04-14 22:40 | wedsall | Note Added: 0001040 | |
2009-04-16 12:20 | zesstra | File Added: 0001-Removed-support-for-obsolete-platforms-in-hosts.patch | |
2009-04-16 12:20 | zesstra | File Added: 0002-Removed-use-system-crypt-from-configure.patch | |
2009-04-16 12:21 | zesstra | Note Added: 0001046 | |
2009-05-06 14:25 | zesstra | Note Added: 0001084 | |
2009-05-06 14:25 | zesstra | Status | assigned => resolved |
2009-05-06 14:25 | zesstra | Fixed in Version | => 3.3.719 |
2009-05-06 14:25 | zesstra | Resolution | open => fixed |