Zoltan Boszormenyi írta:
Frank Cox írta:
On Wed, 14 Nov 2007 00:42:37 +0530
Saurabh Bathe <sbathe@xxxxxxxxx> 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.
PERFORMANCE
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
PowerBASIC/DOS under DOSEMU:
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.
http://v86-64.sourceforge.net/
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@xxxxxxxxx>
*/
+#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)
class_destroy(v86_class);
- ret = unregister_chrdev(v86_major, "v86");
+ unregister_chrdev(v86_major, "v86");
vm86_cleanup();
}
--- 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 @@
exit(1);
}
close(fd);
- 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");
exit(1);