View Issue Details

IDProjectCategoryView StatusLast Update
0000585LDMudRuntimepublic2008-12-29 06:11
Reporter_xtian_ Assigned Tozesstra  
PrioritynormalSeveritycrashReproducibilitysometimes
Status closedResolutionno change required 
Platform64bitOSdebianOS Versionlenny
Summary0000585: 64bit crash(es) on loading objects
DescriptionOn my home 64bit machine I seem to encounter a lot of crashes when trying to let the interpreter load LPC code that has some (partly trivial) errors.

The latest one was:


Variable s not declared ! before end of line.

Program received signal SIGSEGV, Segmentation fault.
0x0000000000487c66 in yyparse () at prolang.y:10821
10821 $$.type = V_VARIABLE(i)->type;



I can't tell if these segfaults have the same reason or not, please let me know how I can report additional information to isolate the problem. (debug runtime parameters for the driver?)
TagsNo tags attached.
Attached Files
config.h (20,133 bytes)
Makefile (25,419 bytes)   
# 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 -std=gnu99
#
YACC = bison -y
YACCTAB = y.tab.
#
RM = rm -f
MV = mv
CP = cp
#
# some standard stuff...
prefix= /home/mud
exec_prefix= ${prefix}
#
#
# Set MUD_LIB to the directory which contains the mud data.
MUD_LIB = /home/mud/mudlib
# Set MUD_LIB_INCLUDE to the directory where the driver include files
# shall live.
MUD_LIB_INCLUDE = ${prefix}/include
#
# Set BINDIR to the directory where you want to install the executables.
BINDIR = ${exec_prefix}/bin
#
# Set ERQ_DIR to directory which contains the stuff which ERQ can
# execute (hopefully) savely. Was formerly defined in config.h!
ERQ_DIR= /home/mud/erq
#
# Set MANDIR to the directory where to install the manpages.
MANDIR= ${prefix}/share/man
#
# Typical profiling, warning and optimizing options.
#   -p -DMARK: together they enable customized profiling of VM instructions.
#              MARK needs to be defined to a statement taking the
#              instruction code as parameter; additionally interpret.c will
#              #include "profile.h" for additional custom declarations.
#
#   Additional profiling can be activated in config.h .
#PROFIL=-pg -DMARK
#PROFIL=-pg
PROFIL=

# Enable warnings from the compiler, if wanted.
NO_WARN= # no warning options - will work with all compilers :-)
GCC_WARN= -Wall -Wshadow -Wparentheses # gcc settings
CFG_WARN=  -Wall -Wparentheses -Wshadow # Warn options discovered by configure

WARN= $(CFG_WARN)


# 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.

HIGH_OPTIMIZE = -O4 -fomit-frame-pointer  -g # high optimization
MED_OPTIMIZE= -O2 -g # medium optimization
LOW_OPTIMIZE = -O -g # minimal optimization
NO_OPTIMIZE= -g # no optimization; for frequent recompilations.

OPTIMIZE= $(MED_OPTIMIZE)

#
# Debugging options:
#   Debugging options should be set in config.h to guarantee a clean
#   recompile.
#DEBUG = -DDEBUG # -DDEBUG_TELNET
DEBUG=
#
MPATH=-DMUD_LIB='"$(MUD_LIB)"' -DBINDIR='"$(BINDIR)"' -DERQ_DIR='"$(ERQ_DIR)"'
#
CFLAGS= -mcpu=x86-64 -march=x86-64 $(OPTIMIZE) $(DEBUG) $(WARN) $(MPATH) $(PROFIL)
#
LIBS=-lnsl -lm  -lcrypt 
#
LDFLAGS=$(PROFIL) 
#
#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 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-idna.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 
OBJ = access_check.o actions.o array.o backend.o bitstrings.o call_out.o \
      closure.o comm.o \
      dumpstat.o ed.o efuns.o files.o gcollect.o hash.o heartbeat.o \
      interpret.o \
      lex.o main.o mapping.o md5.o mempools.o mregex.o mstrings.o object.o \
      otable.o \
      parser.o parse.o pkg-alists.o pkg-idna.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 \
      random.o regexp.o sha1.o simulate.o simul_efun.o stdstrings.o \
      strfuns.o structs.o sprintf.o swap.o wiz_list.o xalloc.o  

all: make-patchlevel ldmud

ldmud: $(OBJ)
	$(CC) $(OPTIMIZE) $(LDFLAGS) $(OBJ) -o $@ $(LIBS)

docs: ldmud
	-help2man --name=ldmud -N --help-option=--longhelp --include=ldmud-man.txt --output=../doc/man/ldmud.1 ./ldmud
	
install-all: install-driver install-headers install-utils

install: install-driver
	@echo "To install header files, use 'make install-headers'."
	@echo "To install utility programs (incl. erq), use 'make install-utils'."
	@echo "To install everything in one go, use 'make install-all'."

install-driver: ldmud docs
	$(mkinstalldirs) $(BINDIR) $(MANDIR)/man1
	$(INSTALL) -c ldmud $(BINDIR)/ldmud
	$(INSTALL) -c ../doc/man/ldmud.1 $(MANDIR)/man1/ldmud.1

install-headers: 
	$(mkinstalldirs) $(MUD_LIB_INCLUDE)
	$(INSTALL) -c ../mudlib/sys/* $(MUD_LIB_INCLUDE)

install-utils:
	(cd util; $(MAKE) $(MFLAGS) install)

utils:
	(cd util; $(MAKE) $(MFLAGS))

lint: *.c
	lint *.c

clean:
	$(RM) $(YACCTAB)h $(YACCTAB)c make_func.c *.o mkfunc
	$(RM) dftables 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) ldmud core mudlib/core mudlib/debug.log lpmud.log
	(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 util/indent/Makefile

tags: $(SRC)
	ctags $(SRC)

TAGS: $(SRC)
	etags $(SRC)

patchlevel.h : make-patchlevel

make-patchlevel:
	./mk-patchlevel.sh

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) -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 machine.h
	$(RM) instrs.h
	$(RM) efun_defs.c
	./mkfunc instrs

stdstrings.c stdstrings.h: string_spec mkfunc config.h machine.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

#--------------------------------------------------------
# The dependency generation uses the program 'mkdepend' and assumes GNUmake.

# Generated source files (overlaps with of SRC) which need to be
# present for mkdepend to work.
    GENSRC = make_func.c stdstrings.c lang.c instrs.h pcre/chartables.c

# Macros for MkDepend:
    SKELETON = $(SRC) 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

depend: $(SRC) $(GENSRC)
	@$(SHELL) -ec "if type mkdepend > /dev/null 2>&1; then \
          echo Updating dependencies.; \
          mkdepend $(SKELETON) -I. -Ipcre -Iptmalloc $(EXCEPT) -m -p .c:%n.o -fMakefile; \
          mkdepend $(SKELETON) -I. -Ipcre -Iptmalloc $(EXCEPT) $(SELECT) -m -p .c:%n.o -fMakefile; \
          echo Updating dependencies in Makefile.in.; \
          mkdepend $(SKELETON) -I. -Ipcre -Iptmalloc $(EXCEPT) -m -p .c:%n.o -fMakefile.in; \
          mkdepend $(SKELETON) -I. -Ipcre -Iptmalloc $(EXCEPT) $(SELECT) -m -p .c:%n.o -fMakefile.in; \
        else\
          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"


#--------------------------------------------------------
# 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 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

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

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

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

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

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

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

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

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

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

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

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

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

hash.o : hash.h

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

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

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

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

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

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 : ../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

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

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

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

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

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

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

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

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

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

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-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

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

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

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

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

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

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

random.o : random.h driver.h port.h config.h hosts/unix.h hosts/be/be.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

sha1.o : sha1.h my-stdint.h driver.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 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

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

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

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

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

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

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

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

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 ---
actions.o : stdstrings.h

array.o : stdstrings.h

backend.o : stdstrings.h

call_out.o : stdstrings.h

closure.o : stdstrings.h instrs.h

comm.o : stdstrings.h

dumpstat.o : stdstrings.h instrs.h

ed.o : stdstrings.h

efuns.o : stdstrings.h

files.o : stdstrings.h

gcollect.o : stdstrings.h instrs.h

interpret.o : stdstrings.h instrs.h

lex.o : efun_defs.c stdstrings.h lang.h instrs.h

main.o : stdstrings.h

mkfunc.o : make_func.c

mstrings.o : stdstrings.h

object.o : stdstrings.h instrs.h

parse.o : stdstrings.h

parser.o : lang.c stdstrings.h instrs.h

pkg-mysql.o : stdstrings.h instrs.h

pkg-pgsql.o : stdstrings.h instrs.h

pkg-sqlite.o : stdstrings.h

simul_efun.o : stdstrings.h

simulate.o : stdstrings.h

sprintf.o : stdstrings.h

stdstrings.o : stdstrings.h

strfuns.o : stdstrings.h

structs.o : stdstrings.h

swap.o : stdstrings.h

wiz_list.o : stdstrings.h

xalloc.o : stdstrings.h

# --- DO NOT MODIFY THIS LINE -- SELECTED AUTO-DEPENDS PRECEDE ---
Makefile (25,419 bytes)   
External Data (URL)

Relationships

child of 0000555 closed LDMud 3.5 Complete support for 64bit (LP64) architectures 

Activities

zesstra

2008-12-03 03:52

administrator   ~0000808

Interesting. I don't have any issues like that on my 64 bit platform, so we need more information, starting with:
* which platform (processur architecture) do you use?
* which minimal code fragment triggers the crashes reproducibly on your system?
* which configure options do you use (you may attach your config.h here instead). If you use some custom compiler options, please give them as well.
* do you have a stack trace or core dump available?

For getting a useful core dump:
* allow core dumps with 'ulimit -c unlimited' in the shell before launching the driver. The driver needs write permissions as well (core dumps are then usually written to the current directory, but can be collected in a central place like /etc/cores/).
* In order for core dumps to be useful, the executable has to contain
debugging symbols. You get them by configuring the driver with
'--enable-debug', which is luckily enabled by default. (Unfortunately,
compiler optimizations may make debugging very difficult, so please do
not use a setting higher than 'med' for --with-optimize, 'no' or 'low'
would be even better if you can afford it.) I assume you compile with
gcc. In that case you could maximise available debugging information
by changing -g to -ggdb3 in the Makefile before compiling.

If you get a core dump, please archive the binary which produced it as well. Without it the core dump will usually be useless.

zesstra

2008-12-04 13:19

administrator   ~0000809

After a personal discussion yesterday we came to the conclusion, that it is probably an issue of a screwed up machine.h because of a possible change of architecture between configure and make. Xtian is now testing if the problems vanish. Setting this to 'feedback' state for the meantime.

zesstra

2008-12-29 06:11

administrator   ~0000837

Xtian reported that he had not further occurances of this issue, so our initial guess was very likely true. Closing for now.
(I added a section about compiling the driver for 64 bit platforms to INSTALL with a warning not to change compiler options (which control the ABI) in the Makefile after running configure.)

Issue History

Date Modified Username Field Change
2008-12-03 02:31 _xtian_ New Issue
2008-12-03 03:52 zesstra Note Added: 0000808
2008-12-03 03:52 zesstra Relationship added child of 0000555
2008-12-03 09:33 _xtian_ File Added: config.h
2008-12-03 09:34 _xtian_ File Added: Makefile
2008-12-04 13:19 zesstra Note Added: 0000809
2008-12-04 13:19 zesstra Assigned To => zesstra
2008-12-04 13:19 zesstra Status new => feedback
2008-12-29 06:11 zesstra Status feedback => closed
2008-12-29 06:11 zesstra Note Added: 0000837
2008-12-29 06:11 zesstra Resolution open => no change required