[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: dosemu 64-bit compile? - SOLVED

Zoltan Boszormenyi írta:
Frank Cox írta:
On Wed, 14 Nov 2007 00:42:37 +0530
Saurabh Bathe <sbathe gmail com> wrote:

AFAIK, edit the makefile for  dosemu.

Thank you very much for your answer.

After doing the " rpmbuild --rebuild dosemu-1.4.0-1.src.rpm" step that errored out as described in my previous message, I had a file named dosemu-1.4.0.tgz in my ~/rpmbuild/SOURCES directory. I un-tarred that and after poking around a bit I found a file named compiletime-settings. I changed the line in that file
that said  libdir ${prefix}/lib to  libdir ${prefix}/lib64

I then recreated dosemu-1.4.0.tgz in the ~/rpmbuild/SOURCES directory so it now contained the modified compiletime-settings file. After that, doing a "rpm
-bb ~/rpmbuild/SPECS/dosemu.spec" created the file that I wanted,
dosemu-1.4.0-1.x86_64.rpm. I installed it and it appears to work as expected.

This 64-bit DOSEMU compile runs substantially slower than the 32-bit compile
that I used previously on this computer.  I have several rather large
PowerBASIC/DOS programs that are, in fact, the main reason why I use DOSEMU.

Up until a couple of days ago, I had Fedora 7/i386 on this computer. I just happen to still have the numbers when compiling one of those programs with

With F7/i386: 1686600 lines per minute -- total time to compile the program:
0.2 seconds

With F8/x86_64: 230400 lines per minute -- total time to compile the program:
1.6 seconds.

The F8/x86_64 DOSEMU is running approximately 13 times slower.

I understand that DOSEMU has to do more work to run on a x86_64 architecture. However, I'm wondering if there is something that I missed or something that I
should do (compiler options?) that would give it a bit more oomph.

You can try v86-64, it's a v86 mode emulation for x86-64 kernels.

The latest version of v86dev needs the first attached patch to compile,
also dosemu on F8 needs the second patch to successfully compile.
But after these they work together. Protected mode DOS games work
and they even produce sound :-)

diff -durp v86dev-20070607/vm86.c v86dev-20070607-2.6.23/vm86.c
--- v86dev-20070607/vm86.c	2007-06-07 09:26:25.000000000 +0200
+++ v86dev-20070607-2.6.23/vm86.c	2007-11-14 08:33:07.000000000 +0100
@@ -32,6 +32,8 @@
  *		  Vladimir M. Shelyugin <vladimir32 gmail com>
+#include <linux/module.h>
+#include <linux/device.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/syscalls.h>
@@ -45,6 +47,7 @@
 #include <linux/mman.h>
 #include <linux/gfp.h>
 #include <linux/vmalloc.h>
+#include <linux/fs.h>
 #include <linux/file.h>
 #include <linux/utsname.h>
 #include <linux/personality.h>
@@ -2104,12 +2107,11 @@ int v86_init_module(void)
 void v86_cleanup_module(void)
-    int ret;
     if (v86_dev)
 	device_destroy(v86_class, MKDEV(v86_major, 0));
     if (v86_class)
-    ret = unregister_chrdev(v86_major, "v86");
+    unregister_chrdev(v86_major, "v86");
--- dosemu-1.4.0/src/tools/periph/dexeconfig.c.old	2007-05-04 07:59:48.000000000 +0200
+++ dosemu-1.4.0/src/tools/periph/dexeconfig.c	2007-11-14 08:54:34.000000000 +0100
@@ -238,7 +238,7 @@
-  fc = open(cfile, O_WRONLY | O_CREAT | O_TRUNC);
+  fc = open(cfile, O_WRONLY | O_CREAT | O_TRUNC, S_IWUSR | S_IRUSR);
   if (fc < 0) {
     perror("cannot open config file");

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]