Reply 20 of 95, by wd
Maybe try an older cvs build or check-out the sources from a few days
or weeks ago.
Maybe try an older cvs build or check-out the sources from a few days
or weeks ago.
wd: How do I get these older sources?
Visit the end of the internet: www.groskreutz.de
using a clean build from 01.November.06 (11.01.06) the instabilities do not yet occur.
core=dynamic does not cause any problems.
Visit the end of the internet: www.groskreutz.de
pre-compiled binaries: http://builds.tharos-online.de/
Should be the -D parameter of cvs, something like "-D 2007-01-20".
But the prebuilds might be easier.
pre-compiled binaries: http://builds.tharos-online.de/
I'm pretty sure kruwi is using Linux 😀
yes I am ... .
Visit the end of the internet: www.groskreutz.de
SMC code? Try just before jan 18...there was a big dynamic core update on the 18th.
> there was a big dynamic core update
Dunno why the full core should be broken then. But maybe you
can determine the rough date when it's broken.
I actually find it difficult to access the older cvs-sources. Maybe someone could upload a linux-build (a clean one) or the sources (even better) from ~ 1-2 weeks ago?
Visit the end of the internet: www.groskreutz.de
cvs seems just fine, try something like
cvs -d:pserver:anonymous@dosbox.cvs.sourceforge.net:/cvsroot/dosbox co -D 2007-01-17 -P dosbox
OK. I have managed to access the cvs-repository and have compiled and installed the dosbox-cvs from 2007-1-17.
Everything works normally with this version of dosbox-cvs. Core=dynamic does not lead to any problems. Windows 3.1 runs pretty stable, as it has done ever before.
So, I think I am finally able to specify the problem: The "bug" only appears in cvs-versions 2007-1-18 and later.
I think I can by now almost definitely rule out that the problem is caused by a corrupted win3x installation. For me, this looks plainly like a post 2007-1-18 bug.
Visit the end of the internet: www.groskreutz.de
yep, sounds like your system does not like the SMC of dynamic core. What linux system are you using and is it 32bit or 64bit and what compiler (gcc 3.x or 4.x). That all means nothing to me of course, but maybe the devs can do something with this information 😀
I'm using the 32 bit version of opensuse 10.2 .
My system is a centrino laptop (M 740, 1.6 GHZ) with 1 GB RAM.
The gcc version is 4.1.3-29.i586
Visit the end of the internet: www.groskreutz.de
P.S.: What is SMC?
Visit the end of the internet: www.groskreutz.de
wrote:P.S.: What is SMC?
Self modifying code ...
2007-01-18 15:57 c2woody […]
2007-01-18 15:57 c2woody
* include/pic.h, src/cpu/core_dyn_x86.cpp,
src/cpu/core_dyn_x86/cache.h, src/cpu/core_dyn_x86/decoder.h,
src/cpu/core_dyn_x86/risc_x86.h, src/hardware/pic.cpp: avoid code
invalidation on certain types of self modification and adjust
cache sizes (dynamic core); add partial memory function inlining
for dynamic core memory access; remove a float div in the pic
Mirek
You could try uncommenting the #define X86_INLINED_MEMACCESS
at the top of src/cpu/core_dyn_x86/decoder.h and see if it works then.
Does it happen to anybody else? I've tried several versions and it is
as stable as before.
Ok, after I uncommented this line I tried to compile the sources and got the following error messages:
kruwi@linux-xi5p:~/Desktop/dosbox> ./configure
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make sets $(MAKE)... (cached) yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking for a BSD-compatible install... /usr/bin/install -c
checking for ranlib... ranlib
checking for sdl-config... /usr/bin/sdl-config
checking for SDL - version >= 1.2.0... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for size_t... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for unsigned char... yes
checking size of unsigned char... 1
checking for unsigned short... yes
checking size of unsigned short... 2
checking for unsigned int... yes
checking size of unsigned int... 4
checking for unsigned long... yes
checking size of unsigned long... 4
checking for unsigned long long... yes
checking size of unsigned long long... 8
checking for int *... yes
checking size of int *... 4
checking if environ can be included... yes
checking if environ can be linked... yes
checking for powf in -lm... yes
checking if compiler allows __attribute__... yes
checking if compiler allows __builtin_expect... yes
checking for ALSA CFLAGS...
checking for ALSA LDFLAGS... -lasound -lm -ldl -lpthread
checking for libasound headers version >= 0.9.0... found.
checking for snd_ctl_open in -lasound... yes
checking whether byte ordering is bigendian... no
checking for target cpu type... x86 compatible
checking whether x86 dynamic cpu core will be enabled... yes
checking whether fpu emulation will be enabled... yes
checking whether x86 assembly fpu core will be enabled... yes
checking whether to enable unaligned memory access... yes
checking png.h usability... yes
checking png.h presence... yes
checking for png.h... yes
checking for png_check_sig in -lpng... yes
checking SDL_net.h usability... yes
checking SDL_net.h presence... yes
checking for SDL_net.h... yes
checking for SDLNet_Init in -lSDL_net... yes
checking whether opengl display output will be enabled... checking for main in -lGL... yes
checking for main in -lopengl32... no
checking GL/gl.h usability... yes
checking GL/gl.h presence... yes
checking for GL/gl.h... yes
yes
checking SDL_sound.h usability... yes
checking SDL_sound.h presence... yes
checking for SDL_sound.h... yes
checking for Sound_Init in -lSDL_sound... yes
checking for Sound_Seek in -lSDL_sound... yes
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking for mprotect... yes
checking for setpriority support... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/cpu/Makefile
config.status: creating src/cpu/core_full/Makefile
config.status: creating src/cpu/core_normal/Makefile
config.status: creating src/cpu/core_dyn_x86/Makefile
config.status: creating src/debug/Makefile
config.status: creating src/dos/Makefile
config.status: creating src/fpu/Makefile
config.status: creating src/gui/Makefile
config.status: creating src/hardware/Makefile
config.status: creating src/hardware/serialport/Makefile
config.status: creating src/ints/Makefile
config.status: creating src/libs/Makefile
config.status: creating src/libs/zmbv/Makefile
config.status: creating src/misc/Makefile
config.status: creating src/shell/Makefile
config.status: creating src/platform/Makefile
config.status: creating src/platform/visualc/Makefile
config.status: creating visualc/Makefile
config.status: creating visualc_net/Makefile
config.status: creating include/Makefile
config.status: creating docs/Makefile
config.status: creating config.h
config.status: executing depfiles commands
kruwi@linux-xi5p:~/Desktop/dosbox> make
make all-recursive
make[1]: Entering directory `/home/kruwi/Desktop/dosbox'
Making all in src
make[2]: Entering directory `/home/kruwi/Desktop/dosbox/src'
Making all in cpu
make[3]: Entering directory `/home/kruwi/Desktop/dosbox/src/cpu'
Making all in core_full
make[4]: Entering directory `/home/kruwi/Desktop/dosbox/src/cpu/core_full'
make[4]: Für das Ziel »all« ist nichts zu tun.
make[4]: Leaving directory `/home/kruwi/Desktop/dosbox/src/cpu/core_full'
Making all in core_normal
make[4]: Entering directory `/home/kruwi/Desktop/dosbox/src/cpu/core_normal'
make[4]: Für das Ziel »all« ist nichts zu tun.
make[4]: Leaving directory `/home/kruwi/Desktop/dosbox/src/cpu/core_normal'
Making all in core_dyn_x86
make[4]: Entering directory `/home/kruwi/Desktop/dosbox/src/cpu/core_dyn_x86'
make[4]: Für das Ziel »all« ist nichts zu tun.
make[4]: Leaving directory `/home/kruwi/Desktop/dosbox/src/cpu/core_dyn_x86'
make[4]: Entering directory `/home/kruwi/Desktop/dosbox/src/cpu'
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -g -O2 -MT callback.o -MD -MP -MF ".deps/callback.Tpo" -c -o callback.o callback.cpp; \
then mv -f ".deps/callback.Tpo" ".deps/callback.Po"; else rm -f ".deps/callback.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -g -O2 -MT cpu.o -MD -MP -MF ".deps/cpu.Tpo" -c -o cpu.o cpu.cpp; \
then mv -f ".deps/cpu.Tpo" ".deps/cpu.Po"; else rm -f ".deps/cpu.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -g -O2 -MT flags.o -MD -MP -MF ".deps/flags.Tpo" -c -o flags.o flags.cpp; \
then mv -f ".deps/flags.Tpo" ".deps/flags.Po"; else rm -f ".deps/flags.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -g -O2 -MT modrm.o -MD -MP -MF ".deps/modrm.Tpo" -c -o modrm.o modrm.cpp; \
then mv -f ".deps/modrm.Tpo" ".deps/modrm.Po"; else rm -f ".deps/modrm.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -g -O2 -MT core_full.o -MD -MP -MF ".deps/core_full.Tpo" -c -o core_full.o core_full.cpp; \
then mv -f ".deps/core_full.Tpo" ".deps/core_full.Po"; else rm -f ".deps/core_full.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -g -O2 -MT paging.o -MD -MP -MF ".deps/paging.Tpo" -c -o paging.o paging.cpp; \
then mv -f ".deps/paging.Tpo" ".deps/paging.Po"; else rm -f ".deps/paging.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -g -O2 -MT core_normal.o -MD -MP -MF ".deps/core_normal.Tpo" -c -o core_normal.o core_normal.cpp; \
then mv -f ".deps/core_normal.Tpo" ".deps/core_normal.Po"; else rm -f ".deps/core_normal.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -g -O2 -MT core_simple.o -MD -MP -MF ".deps/core_simple.Tpo" -c -o core_simple.o core_simple.cpp; \
then mv -f ".deps/core_simple.Tpo" ".deps/core_simple.Po"; else rm -f ".deps/core_simple.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -g -O2 -MT core_dyn_x86.o -MD -MP -MF ".deps/core_dyn_x86.Tpo" -c -o core_dyn_x86.o core_dyn_x86.cpp; \
then mv -f ".deps/core_dyn_x86.Tpo" ".deps/core_dyn_x86.Po"; else rm -f ".deps/core_dyn_x86.Tpo"; exit 1; fi
core_dyn_x86/decoder.h:20: error: ‘define’ does not name a type
core_dyn_x86/decoder.h:33: error: ‘REP_Type’ does not name a type
core_dyn_x86/string.h: In function ‘void dyn_string(STRING_OP)’:
core_dyn_x86/string.h:34: error: ‘struct DynDecode’ has no member named ‘rep’
core_dyn_x86/string.h:75: error: ‘struct DynDecode’ has no member named ‘rep’
core_dyn_x86/string.h:84: error: ‘struct DynDecode’ has no member named ‘rep’
core_dyn_x86/string.h:146: error: ‘struct DynDecode’ has no member named ‘rep’
core_dyn_x86/decoder.h: In function ‘CacheBlock* CreateCacheBlock(CodePageHandler*, PhysPt, Bitu)’:
core_dyn_x86/decoder.h:1870: error: ‘struct DynDecode’ has no member named ‘rep’
core_dyn_x86/decoder.h:1870: error: ‘REP_NONE’ was not declared in this scope
core_dyn_x86/decoder.h:2376: error: ‘struct DynDecode’ has no member named ‘rep’
core_dyn_x86/decoder.h:2376: error: ‘REP_NZ’ was not declared in this scope
core_dyn_x86/decoder.h:2379: error: ‘struct DynDecode’ has no member named ‘rep’
core_dyn_x86/decoder.h:2379: error: ‘REP_Z’ was not declared in this scope
make[4]: *** [core_dyn_x86.o] Fehler 1
make[4]: Leaving directory `/home/kruwi/Desktop/dosbox/src/cpu'
make[3]: *** [all-recursive] Fehler 1
make[3]: Leaving directory `/home/kruwi/Desktop/dosbox/src/cpu'
make[2]: *** [all-recursive] Fehler 1
make[2]: Leaving directory `/home/kruwi/Desktop/dosbox/src'
make[1]: *** [all-recursive] Fehler 1
make[1]: Leaving directory `/home/kruwi/Desktop/dosbox'
make: *** [all] Fehler 2
Visit the end of the internet: www.groskreutz.de
Seems stable here (with SMC changes), though I only run some win3x MIDI apps for testing.
> Ok, after I uncommented
Sorry, i meant out-comment, should look like this.
#define X86_DYNFPU_DH_ENABLED
// #define X86_INLINED_MEMACCESS