From 17bb5d7efa6ae20a166870921d3d8e87236e4f0a Mon Sep 17 00:00:00 2001
From: geos_one
Date: Thu, 14 Aug 2025 09:28:49 +0200
Subject: [PATCH] New upstream version 2.0-0.9
---
.github/FUNDING.yml | 3 -
.github/ISSUE_TEMPLATE/bug_report.md | 13 +-
.github/workflows/ci-build.yml | 42 +-
.github/workflows/ci-manual-asan.yml | 12 -
.github/workflows/ci-manual-full.yml | 12 -
.github/workflows/ci-manual-normal.yml | 12 -
.github/workflows/ci-master.yml | 73 -
.gitignore | 39 -
.tito/packages/.readme | 3 -
.tito/packages/dosemu2 | 1 -
.tito/tito.props | 6 -
.travis.yml | 2 +-
COPYING.DOSEMU | 42 +-
INSTALL | 7 +-
Makefile | 4 +-
Makefile.conf.in | 23 +-
README.md | 38 +-
THANKS | 11 +-
autogen.sh | 10 +-
ci_build.sh | 36 +-
ci_prereq.sh | 55 +-
ci_test.sh | 71 +-
ci_test_prereq.sh | 27 -
compiletime-settings.devel | 4 +-
configure.ac | 348 +-
debian/control | 20 +-
debian/docs | 1 +
debian/rules | 7 +-
default-configure | 28 +-
doc/README.html | 13 +-
doc/tweaks.html | 246 +-
dosemu2.spec | 119 -
dosemu2.spec.rpkg | 25 +-
etc/dosemu.conf | 197 +-
etc/global.conf | 114 +-
etc/locales.conf | 2 -
git-rev.sh | 6 +-
install-sh | 323 +
m4/m4_ax_prog_cc_for_build.m4 | 155 -
man/Makefile | 6 +-
man/dosemu.1.in | 47 +-
man/dosemu.bin.1.in | 74 +-
man/ru/dosemu.1.in | 41 +-
man/ru/dosemu.bin.1.in | 109 +-
plugin_list | 1 -
scripts/aconf.sh | 2 -
scripts/buildwithfdpp.sh | 4 +-
scripts/config.guess | 1480 ----
scripts/config.sub | 1801 -----
scripts/install-sh | 541 --
scripts/mkpluginhooks | 2 +-
scripts/plugctl.sh | 2 +-
src/Makefile | 2 +-
src/Makefile.common.inc | 1 -
src/Makefile.common.post | 69 +-
src/arch/linux/Makefile.main | 57 +-
src/arch/linux/async/Makefile | 4 +-
src/arch/linux/async/backtrace-symbols.c | 2 +-
src/arch/linux/async/debug.c | 49 +-
src/arch/linux/async/debug.h | 1 -
src/arch/linux/async/signal.c | 839 ++-
src/arch/linux/async/sigsegv.c | 553 ++
src/{base/lib => arch/linux}/mapping/Makefile | 2 +-
src/arch/linux/mapping/mapfile.c | 329 +
.../lib => arch/linux}/mapping/mapping.c | 742 +-
src/arch/linux/mapping/mapshm.c | 184 +
src/base/bios/int10.c | 133 +-
src/base/bios/int16.c | 12 +-
src/base/bios/pci_bios.c | 15 +-
src/base/bios/setup.c | 80 +-
src/base/bios/vgabios.c | 52 +-
src/base/bios/x86/Makefile | 52 +-
src/base/bios/x86/{bios.S => bios.s} | 121 +-
src/base/bios/x86/bios_offsets.h | 88 -
src/base/core/Makefile | 12 +-
src/base/core/coopth.c | 139 +-
src/base/core/dump.c | 6 +-
src/base/core/emu.c | 65 +-
src/base/core/int.c | 312 +-
src/base/core/lowmem.c | 27 +-
src/base/core/ports.c | 447 +-
src/base/core/priv.c | 78 +-
src/base/core/vint.c | 181 -
src/base/dev/dma/dma.c | 27 +-
src/base/dev/dma/dmaregs.h | 14 +-
src/base/dev/misc/8042.c | 13 +-
src/base/dev/misc/Makefile | 6 +-
src/base/dev/misc/chipset.c | 41 +-
src/base/dev/misc/cmos.c | 14 +-
src/base/dev/misc/joystick.c | 23 +-
src/base/dev/misc/kbd.c | 6 +-
src/base/dev/misc/lpt.c | 12 +-
src/base/dev/misc/pci.c | 33 +-
src/base/dev/misc/rtc.c | 49 +-
src/base/dev/misc/timers.c | 375 +-
src/base/dev/misc/virq.c | 196 -
src/base/dev/misc/vtmr.c | 496 --
src/base/dev/ne2k/ne2000.c | 91 +-
src/base/dev/pic/Makefile | 10 +-
src/base/dev/pic/i8259.c | 359 -
src/base/dev/pic/i8259.h | 23 -
src/base/dev/pic/i8259_common.c | 76 -
src/base/dev/pic/i8259_internal.h | 64 -
src/base/dev/pic/irq.c | 32 -
src/base/dev/pic/irq.h | 34 -
src/base/dev/pic/pic.c | 1152 ++-
src/base/dev/sb16/Makefile | 6 +-
src/base/dev/sb16/adlib.c | 25 +-
src/base/dev/sb16/dbadlib.c | 66 +-
src/base/dev/sb16/dspio.c | 161 +-
src/base/dev/sb16/dspio.h | 36 +-
src/base/dev/sb16/mpu401.c | 205 -
src/base/dev/sb16/mpu401.h | 42 -
src/base/dev/sb16/mt32.c | 128 -
src/base/dev/sb16/opl.c | 6 +-
src/base/dev/sb16/sb16.c | 291 +-
src/base/dev/sb16/sb16.h | 41 +
src/base/dev/sb16/softmpu/Makefile | 13 -
src/base/dev/sb16/softmpu/export.h | 58 -
src/base/dev/sb16/softmpu/mpu401.c | 638 --
src/base/dev/sb16/softmpu/pic.c | 161 -
src/base/dev/vga/attremu.c | 6 +-
src/base/dev/vga/crtcemu.c | 9 +-
src/base/dev/vga/dacemu.c | 8 +-
src/base/dev/vga/gfxemu.c | 6 +-
src/base/dev/vga/hercemu.c | 4 +-
src/base/dev/vga/miscemu.c | 10 +-
src/base/dev/vga/seqemu.c | 6 +-
src/base/dev/vga/vesa.c | 25 +-
src/base/dev/vga/vesabios.S | 4 +-
src/base/dev/vga/vesabios_offsets.h | 4 -
src/base/dev/vga/vesabios_pm.S | 2 -
src/base/dev/vga/vesabios_pm_offsets.h | 2 -
src/base/dev/vga/vgaemu.c | 297 +-
src/base/dev/vga/vgaemu_modelist.h | 4 -
src/base/dev/vga/vgafonts.c | 2 +-
src/base/emu-i386/Makefile | 9 +-
src/base/emu-i386/coopth_vm86.c | 74 +-
src/base/emu-i386/cpu.c | 175 +-
src/base/emu-i386/cputime.c | 143 +-
src/base/emu-i386/do_vm86.c | 127 +-
src/base/emu-i386/kvm.c | 604 +-
src/base/emu-i386/kvmmon.S | 18 -
src/base/emu-i386/kvmmon_offsets.h | 3 -
src/base/emu-i386/simx86/Makefile | 10 +-
src/base/emu-i386/simx86/codegen-arch.h | 1 -
src/base/emu-i386/simx86/codegen-sim.c | 168 +-
src/base/emu-i386/simx86/codegen-sim.h | 6 +
src/base/emu-i386/simx86/codegen-x86.c | 437 +-
src/base/emu-i386/simx86/codegen-x86.h | 21 +-
src/base/emu-i386/simx86/codegen.h | 20 +-
src/base/emu-i386/simx86/cpatch.c | 108 +-
src/base/emu-i386/simx86/cpatch.h | 24 +-
src/base/emu-i386/simx86/cpu-emu.c | 205 +-
src/base/emu-i386/simx86/econfig.h | 10 +-
src/base/emu-i386/simx86/emu86.h | 30 +-
src/base/emu-i386/simx86/fp87-sim.c | 486 +-
src/base/emu-i386/simx86/fp87-x86.c | 12 +-
src/base/emu-i386/simx86/host.h | 4 +-
src/base/emu-i386/simx86/interp.c | 1302 ++--
src/base/emu-i386/simx86/memory.c | 57 +-
src/base/emu-i386/simx86/modrm-gen.c | 2 +-
src/base/emu-i386/simx86/modrm-sim.c | 6 +-
src/base/emu-i386/simx86/protmode.c | 20 +-
src/base/emu-i386/simx86/protmode.h | 6 +-
src/base/emu-i386/simx86/sigsegv.c | 112 +-
src/base/emu-i386/simx86/softfloat/Makefile | 13 -
.../simx86/softfloat/softfloat-macros.h | 606 --
.../simx86/softfloat/softfloat-specialize.h | 993 ---
.../emu-i386/simx86/softfloat/softfloat.c | 6384 -----------------
.../emu-i386/simx86/softfloat/softfloat.h | 611 --
src/base/emu-i386/simx86/syncpu.h | 29 +-
src/base/emu-i386/simx86/tables.c | 2 +-
src/base/emu-i386/simx86/trees.c | 181 +-
src/base/init/Makefile | 4 +
src/base/init/config.c | 405 +-
src/base/init/dev_list.c | 20 +-
src/base/init/init.c | 238 +-
src/base/init/lexer.l | 26 +-
src/base/init/memcheck.c | 52 +-
src/base/init/parser.y | 228 +-
src/base/kbd_unicode/getfd.c | 2 +-
src/base/kbd_unicode/keyb_clients.c | 13 +-
src/base/kbd_unicode/keyb_none.c | 51 +-
src/base/kbd_unicode/keyb_raw.c | 24 +-
src/base/kbd_unicode/keymaps.c | 2 +-
src/base/kbd_unicode/prestroke.c | 15 +-
src/base/kbd_unicode/serv_backend.c | 2 +-
src/base/kbd_unicode/serv_xlat.c | 27 +-
src/base/lib/libpcl/pcl.h | 13 +-
src/base/lib/libpcl/pcl_ctx.c | 8 -
src/base/lib/libpcl/pcl_private.h | 2 +-
src/base/lib/mapping/mapashm.c | 141 -
src/base/lib/mapping/mapfile.c | 345 -
src/base/lib/mcontext/Makefile | 4 +-
src/base/lib/mcontext/aarch64-ucontext.h | 37 -
src/base/lib/mcontext/arm-ucontext.h | 4 -
src/base/lib/mcontext/asm.S | 110 +
src/base/lib/mcontext/asm.SS | 464 --
src/base/lib/mcontext/context.c | 14 -
src/base/lib/mcontext/mcontext.h | 9 +-
src/base/lib/mcontext/mips-ucontext.h | 77 -
src/base/lib/mcontext/power-ucontext.h | 37 -
src/base/lib/misc/Makefile | 3 +-
src/base/lib/misc/dlmalloc.c | 34 +-
src/base/lib/misc/pgalloc.c | 154 -
src/base/lib/misc/sequencr.c | 168 -
src/base/lib/misc/shlock.c | 250 -
src/base/lib/misc/smalloc.c | 253 +-
src/base/lib/misc/spscq.c | 111 -
src/base/lib/timer/Makefile | 10 -
src/base/lib/timer/evtimer.c | 186 -
src/base/lib/timer/evtimer_fd.c | 286 -
src/base/lib/translate/Makefile | 4 +-
src/base/lib/translate/dosemu_charset.c | 4 +-
src/base/lib/translate/translate.c | 1 -
src/base/lib/translate/translate_config.c | 2 +-
src/base/lib/translate/unicode_utils.c | 6 +-
src/base/misc/Makefile | 3 +-
src/base/misc/clipboard.c | 175 -
src/base/misc/disks.c | 785 +-
src/base/misc/dos2linux.c | 594 +-
src/base/misc/fatfs.c | 19 +-
src/base/misc/fatfs.h | 1 -
src/base/misc/hma.c | 62 +-
src/base/misc/ioctl.c | 252 +-
src/base/misc/utilities.c | 383 +-
src/base/mouse/mouse.c | 167 +-
src/base/mouse/mousedrv.c | 216 +-
src/base/mouse/mouseint.c | 4 +-
src/base/serial/Makefile | 2 +-
src/base/serial/commouse.c | 32 +-
src/base/serial/comredir.c | 253 -
src/base/serial/comredir.h | 8 -
src/base/serial/fossil.c | 80 +-
src/base/serial/int14.c | 32 +-
src/base/serial/nullmm.c | 137 -
src/base/serial/nullmm.h | 6 -
src/base/serial/ser_defs.h | 53 +-
src/base/serial/ser_init.c | 47 +-
src/base/serial/ser_irq.c | 65 +-
src/base/serial/ser_ports.c | 28 +-
src/base/serial/sermouse.c | 84 +-
src/base/serial/tty_io.c | 450 +-
src/base/sound/midi.c | 58 +-
src/base/sound/sndpcm.c | 19 +-
src/base/speaker/console_speaker.c | 2 +-
src/base/speaker/speaker.c | 17 +-
src/base/video/instremu.c | 1965 ++++-
src/base/video/render.c | 32 +-
src/base/video/text.c | 205 +-
src/base/video/video.c | 47 +-
src/bindist/bat/dosrc.d/3uhook.bat | 2 -
src/bindist/bat/dosrc.d/7mouse.bat | 2 +
src/bindist/bat/exechlp.bat | 7 +-
src/bindist/fdautoem.bat | 2 -
src/bindist/fdppauto.bat | 5 +-
src/bindist/fdppconf.sys | 11 +-
src/doc/HOWTO/tweaks.sgml | 80 -
src/doc/README/Makefile | 6 +-
src/doc/README/Windows | 13 +-
src/doc/tools/doSgmlTools.pl | 2 +-
src/dosemu | 91 +-
src/dosemu.systemwide | 2 +-
src/dosext/builtins/Makefile | 4 +-
src/dosext/builtins/blaster.c | 16 +-
src/dosext/builtins/builtins.c | 6 +-
src/dosext/builtins/commands.c | 62 +-
src/dosext/builtins/{emuconf.c => dosdbg.c} | 41 +-
src/dosext/builtins/{emuconf.h => dosdbg.h} | 0
src/dosext/builtins/emumouse.c | 137 +-
src/dosext/builtins/fossil.c | 54 -
src/dosext/builtins/fossil.h | 8 -
src/dosext/builtins/lredir.c | 6 +-
src/dosext/builtins/msetenv.c | 6 +-
src/dosext/builtins/system.c | 62 +-
src/dosext/builtins/system.h | 2 +-
src/dosext/builtins/unix.c | 22 +-
src/dosext/builtins/xmode.c | 34 +-
src/dosext/dpmi/Makefile | 5 +-
src/dosext/dpmi/coopth_pm.c | 24 +-
src/dosext/dpmi/coopth_pm.h | 6 +-
src/dosext/dpmi/djdpmi.h | 127 -
src/dosext/dpmi/dmemory.h | 32 +-
src/dosext/dpmi/dnative.c | 245 +
src/dosext/dpmi/dnative.h | 11 +
src/dosext/dpmi/dnative/Makefile | 11 -
src/dosext/dpmi/dnative/dnative.c | 315 -
src/dosext/dpmi/dnative/dnative.h | 53 -
src/dosext/dpmi/dnative/sigsegv.c | 1179 ---
src/dosext/dpmi/doslib/Makefile | 6 -
src/dosext/dpmi/doslib/dos.c | 172 -
src/dosext/dpmi/doslib/dos.h | 12 -
src/dosext/dpmi/doslib/dpmi.h | 149 -
src/dosext/dpmi/dpmi.c | 2544 +++----
src/dosext/dpmi/dpmi_api.c | 568 +-
src/dosext/dpmi/dpmi_api.h | 167 +-
src/dosext/dpmi/dpmisel.S | 127 +-
src/dosext/dpmi/dpmisel.h | 78 +-
src/dosext/dpmi/dpmisel_offsets.h | 74 -
src/dosext/dpmi/emu-ldt.c | 12 +-
src/dosext/dpmi/emudpmi.h | 108 +-
src/dosext/dpmi/memory.c | 602 +-
src/dosext/dpmi/msdos/Makefile | 5 +-
src/dosext/dpmi/msdos/callbacks.c | 24 +-
src/dosext/dpmi/msdos/callbacks.h | 8 +-
src/dosext/dpmi/msdos/emm.c | 12 +-
src/dosext/dpmi/msdos/emm_msdos.h | 14 +-
src/dosext/dpmi/msdos/hlpmisc.c | 11 -
src/dosext/dpmi/msdos/hlpmisc.h | 15 +-
src/dosext/dpmi/msdos/instr_dec.c | 460 +-
src/dosext/dpmi/msdos/instr_dec.h | 9 +-
src/dosext/dpmi/msdos/lio.c | 36 +-
src/dosext/dpmi/msdos/lio.h | 8 +-
src/dosext/dpmi/msdos/msdos.c | 356 +-
src/dosext/dpmi/msdos/msdos.h | 6 +-
src/dosext/dpmi/msdos/msdos_ldt.c | 43 +-
src/dosext/dpmi/msdos/msdos_ldt.h | 10 +-
src/dosext/dpmi/msdos/msdos_priv.h | 6 +-
src/dosext/dpmi/msdos/segreg.c | 24 +-
src/dosext/dpmi/msdos/segreg_priv.h | 4 +-
src/dosext/dpmi/msdos/xms.c | 133 +-
src/dosext/dpmi/msdoshlp.c | 160 +-
src/dosext/dpmi/msdoshlp.h | 36 +-
src/dosext/dpmi/stub/dpmi.h | 360 +
src/dosext/dpmi/vxd.c | 8 +-
src/dosext/dpmi/vxd.h | 4 +-
src/dosext/dpmi/windefs.h | 2 +-
src/dosext/drivers/aspi.c | 4 +-
src/dosext/drivers/cdrom.c | 8 +-
src/dosext/mfs/Makefile | 10 +-
src/dosext/mfs/lfn.c | 78 +-
src/dosext/mfs/lfn.h | 1 -
src/dosext/mfs/mangle.c | 30 +-
src/dosext/mfs/mangle.h | 1 +
src/dosext/mfs/mfs.c | 1046 ++-
src/dosext/mfs/mfs.h | 81 +-
src/dosext/mfs/mscdex.c | 26 +-
src/dosext/mfs/rlocks.c | 216 -
src/dosext/mfs/rlocks.h | 76 -
src/dosext/mfs/share.c | 514 --
src/dosext/mfs/share.h | 30 -
src/dosext/mfs/util.c | 27 +-
src/dosext/mfs/xattr.c | 137 -
src/dosext/mfs/xattr.h | 56 -
src/dosext/misc/emm.c | 2 +-
src/dosext/misc/xms.c | 359 +-
src/dosext/net/Makefile | 2 +-
src/dosext/net/ipx.c | 177 +-
src/dosext/net/ipx_wrp.h | 2 -
src/dosext/net/ipxglt.c | 8 +-
src/dosext/net/libpacket.c | 216 +-
src/dosext/net/pktnew.c | 78 +-
src/include/Asm/ldt.h | 4 +
src/include/Asm/processor-flags.h | 168 -
src/include/Linux/const.h | 36 -
src/include/Linux/kd.h | 190 -
src/include/Linux/magic.h | 107 -
src/include/Sys/kd.h | 34 -
src/include/bios.h | 5 +-
src/include/bitops.h | 139 +-
src/include/chipset.h | 6 -
src/include/clipboard.h | 34 -
src/include/cmos.h | 6 +-
src/include/coopth.h | 28 +-
src/include/coopth_be.h | 3 +-
src/include/coopth_pm.h | 16 -
src/include/cpu-emu.h | 50 +-
src/include/cpu.h | 461 +-
src/include/disks.h | 69 +-
src/include/dlmalloc.h | 8 +-
src/include/dnative.h | 16 -
src/include/dos.h | 16 -
src/include/dos2linux.h | 158 +-
src/include/dosemu_config.h | 38 +-
src/include/dosemu_debug.h | 2 -
src/include/doshelpers.h | 6 +-
src/include/dpmi.h | 16 -
src/include/emm.h | 14 +-
src/include/emu-ldt.h | 9 +
src/include/emu.h | 91 +-
src/include/emudpmi.h | 14 +-
src/include/evtimer.h | 20 -
src/include/fls.h | 43 -
src/include/generic-non-atomic.h | 171 -
src/include/hma.h | 2 +
src/include/instremu.h | 11 +-
src/include/int.h | 4 +-
src/include/iodev.h | 21 +-
src/include/ioselect.h | 21 -
src/include/ipx.h | 2 +
src/include/joystick.h | 13 -
src/include/keyboard/keyb_clients.h | 1 -
src/include/keyboard/keyb_server.h | 5 +-
src/include/keyboard/keyboard.h | 1 -
src/include/kvm.h | 30 +-
src/include/lowmem.h | 14 +-
src/include/mapping.h | 53 +-
src/include/memory.h | 38 +-
src/include/mhpdbg.h | 15 +-
src/include/mouse.h | 31 +-
src/include/msdoshlp.h | 16 -
src/include/ne2000.h | 1 +
src/include/pci.h | 1 -
src/include/pgalloc.h | 17 -
src/include/pic.h | 102 +-
src/include/pktdrvr.h | 18 +-
src/include/port.h | 98 +-
src/include/priv.h | 1 +
src/include/ringbuf.h | 3 -
src/include/sequencr.h | 16 -
src/include/serial.h | 9 +-
src/include/shlock.h | 7 -
src/include/sig.h | 189 +-
src/include/smalloc.h | 22 +-
src/include/sound/midi.h | 2 +-
src/include/sound/oplplug.h | 3 +-
src/include/sound/sound.h | 5 +-
src/include/spscq.h | 10 -
src/include/timers.h | 32 +-
src/include/translate/translate.h | 2 +
src/include/utilities.h | 73 +-
src/include/vgaemu.h | 30 +-
src/include/vgatext.h | 3 +-
src/include/video.h | 8 +-
src/include/vint.h | 13 -
src/include/virq.h | 16 -
src/include/vm86_compat.h | 39 +-
src/include/vtmr.h | 27 -
src/include/xms.h | 25 +-
src/plugin/X/Makefile | 8 +-
src/plugin/X/X.c | 102 +-
src/plugin/X/X.h | 2 +
src/plugin/X/X_speaker.c | 4 +-
src/plugin/X/configure.ac | 8 +-
src/plugin/X/keyb_X.c | 5 +-
src/plugin/Xkmaps/Makefile | 8 +-
src/plugin/Xkmaps/X_keymaps.c | 1 -
src/plugin/Xkmaps/X_keysyms.c | 5 +-
src/plugin/Xkmaps/configure.ac | 4 +-
src/plugin/alsa/Makefile | 6 +-
src/plugin/alsa/configure.ac | 4 +-
src/plugin/alsa/m4/alsa.m4 | 143 +
src/plugin/alsa/mid_o_alsa.c | 29 +-
src/plugin/alsa/snd_i_alsa.c | 5 +-
src/plugin/charsets/GB2312.c | 1 -
src/plugin/charsets/JIS0201.c | 1 -
src/plugin/charsets/JIS0208.c | 1 -
src/plugin/charsets/KSX1001.c | 1 -
src/plugin/charsets/ascii.c | 1 -
src/plugin/charsets/cp437.c | 1 -
src/plugin/charsets/cp850.c | 1 -
src/plugin/charsets/cp852.c | 1 -
src/plugin/charsets/ibm_ascii.c | 1 -
src/plugin/charsets/iso2022.c | 1 -
src/plugin/charsets/iso8859-1.c | 1 -
src/plugin/charsets/iso8859-2.c | 1 -
src/plugin/charsets/iso8859-3.c | 1 -
src/plugin/charsets/iso8859-4.c | 1 -
src/plugin/charsets/iso8859-5.c | 1 -
src/plugin/charsets/iso8859-6.c | 1 -
src/plugin/charsets/iso8859-7.c | 1 -
src/plugin/charsets/iso8859-8.c | 1 -
src/plugin/charsets/iso8859-9.c | 1 -
src/plugin/charsets/multibyte.c | 1 -
src/plugin/charsets/utf8.c | 1 -
src/plugin/charsets/vt100.c | 1 -
src/plugin/console/Makefile | 6 +-
src/plugin/console/console.c | 6 +-
src/plugin/console/detach.c | 2 +-
src/plugin/console/vbe.c | 4 +
src/plugin/console/vc.c | 12 +-
src/plugin/console/vga.c | 12 +-
src/plugin/debugger/Makefile | 10 +-
src/plugin/debugger/configure.ac | 11 -
.../lib/misc => plugin/debugger}/dis8086.c | 7 +-
src/plugin/debugger/dosdebug.c | 37 +-
src/plugin/debugger/mhpdbg.c | 37 +-
src/plugin/debugger/mhpdbgc.c | 290 +-
src/plugin/dj64/Makefile | 22 -
src/plugin/dj64/Makefile.conf.in | 10 -
src/plugin/dj64/coff.c | 172 -
src/plugin/dj64/coff.h | 8 -
src/plugin/dj64/config/plugin_config.h | 15 -
src/plugin/dj64/configure.ac | 6 -
src/plugin/dj64/djdev64.c | 319 -
src/plugin/dj64/elf.c | 158 -
src/plugin/dj64/elf.h | 750 --
src/plugin/dj64/elfp.h | 8 -
src/plugin/dj64/stub.c | 270 -
src/plugin/dj64/stub.h | 13 -
src/plugin/dj64/stub_ex.h | 7 -
src/plugin/dj64/stubinfo.h | 63 -
src/plugin/dj64/util.c | 45 -
src/plugin/dj64/util.h | 14 -
src/plugin/doscmd/Makefile | 8 +-
src/plugin/dosdrv/Makefile | 8 +-
src/plugin/dosdrv/ems.s | 2 +-
src/plugin/dosdrv/fossil.s | 102 +
src/plugin/dosdrv/xms.inc | 26 +-
src/plugin/extra_charsets/bg-mik.c | 1 -
src/plugin/extra_charsets/cp1125.c | 1 -
src/plugin/extra_charsets/cp1251.c | 1 -
src/plugin/extra_charsets/cp737.c | 1 -
src/plugin/extra_charsets/cp773.c | 1 -
src/plugin/extra_charsets/cp775.c | 1 -
src/plugin/extra_charsets/cp855.c | 1 -
src/plugin/extra_charsets/cp857.c | 1 -
src/plugin/extra_charsets/cp858.c | 1 -
src/plugin/extra_charsets/cp860.c | 1 -
src/plugin/extra_charsets/cp861.c | 1 -
src/plugin/extra_charsets/cp862.c | 1 -
src/plugin/extra_charsets/cp863.c | 1 -
src/plugin/extra_charsets/cp864.c | 1 -
src/plugin/extra_charsets/cp865.c | 1 -
src/plugin/extra_charsets/cp866.c | 1 -
src/plugin/extra_charsets/cp869.c | 1 -
src/plugin/extra_charsets/cp874.c | 1 -
src/plugin/extra_charsets/cp895.c | 1 -
src/plugin/extra_charsets/iso8859-10.c | 1 -
src/plugin/extra_charsets/iso8859-13.c | 1 -
src/plugin/extra_charsets/iso8859-14.c | 1 -
src/plugin/extra_charsets/iso8859-15.c | 1 -
src/plugin/extra_charsets/koi8-r.c | 1 -
src/plugin/extra_charsets/koi8-ru.c | 1 -
src/plugin/extra_charsets/koi8-u.c | 1 -
src/plugin/extra_charsets/mazovia.c | 1 -
src/plugin/fdpp/Makefile | 8 +-
src/plugin/fdpp/Makefile.conf.in | 17 +-
src/plugin/fdpp/boot.c | 62 +-
src/plugin/fdpp/boot.h | 7 +-
src/plugin/fdpp/configure.ac | 66 +-
src/plugin/fdpp/fdpp.c | 31 +-
src/plugin/fdpp/hooks.c | 125 +-
src/plugin/fdpp/hooks.h | 2 -
src/plugin/fluidsynth/Makefile | 8 +-
src/plugin/fluidsynth/configure.ac | 7 +
src/plugin/fluidsynth/mid_o_flus.c | 64 +-
src/plugin/gpm/Makefile | 6 +-
src/plugin/gpm/configure.ac | 1 +
src/plugin/gpm/mouse_gpm.c | 9 +-
src/plugin/ieee1284/Makefile | 6 +-
src/plugin/ieee1284/configure.ac | 1 +
src/plugin/ieee1284/opl2lpt.c | 3 +-
src/plugin/json/Makefile | 6 +-
src/plugin/json/configure.ac | 2 +
src/plugin/json/locale.c | 3 +-
src/plugin/ladspa/Makefile | 6 +-
src/plugin/libao/Makefile | 6 +-
src/plugin/libao/configure.ac | 4 +-
src/plugin/libao/m4/ao.m4 | 108 +
src/plugin/libao/snd_o_ao.c | 4 -
src/plugin/midimisc/Makefile | 16 +-
src/plugin/midimisc/fluid_midi.c | 4 +-
src/plugin/midimisc/mid_i_pipe.c | 12 +-
src/plugin/midimisc/mid_o_pipe.c | 6 +-
src/plugin/midimisc/mid_o_tmdty.c | 6 +-
src/plugin/modemu/atcmd.c | 8 +-
src/plugin/modemu/modemu.c | 7 +-
src/plugin/modemu/sock.c | 2 +-
src/plugin/modemu/sock.h | 2 +-
src/plugin/modemu/telopt.c | 2 +-
src/plugin/munt/Makefile | 6 +-
src/plugin/munt/configure.ac | 1 +
src/plugin/munt/munt.c | 11 +-
src/plugin/periph/Makefile | 25 +-
src/plugin/periph/{bootnorm.S => bootnorm.s} | 124 +-
src/plugin/periph/bootnorm_offsets.h | 1 -
src/plugin/periph/{bootsect.S => bootsect.s} | 4 +-
src/plugin/periph/bootsect_offsets.h | 1 -
src/plugin/periph/dexeconfig.c | 5 +-
src/plugin/periph/mkfatimage16.c | 13 +-
src/plugin/plugins.mak | 4 +-
src/plugin/sdl/Makefile | 8 +-
src/plugin/sdl/acinclude.m4 | 181 +
src/plugin/sdl/clip_SDL.c | 176 -
src/plugin/sdl/clip_SDL.h | 4 -
src/plugin/sdl/configure.ac | 21 +-
src/plugin/sdl/keyb_SDL.c | 18 +-
src/plugin/sdl/keyb_SDL.h | 14 +-
src/plugin/sdl/m4/sdl2.m4 | 202 +
src/plugin/sdl/sdl.c | 268 +-
src/plugin/sdl/sdl.h | 14 +-
src/plugin/sdl1/Makefile | 6 +-
src/plugin/sdl1/configure.ac | 4 +-
src/plugin/sdl1/m4/sdl.m4 | 185 +
src/plugin/sdl1/sdl.c | 4 +-
src/plugin/slirp/Makefile | 6 +-
src/plugin/slirp/configure.ac | 1 +
src/plugin/slirp/slirp.c | 3 +-
src/plugin/svgalib/Makefile | 6 +-
src/plugin/svgalib/configure.ac | 1 +
src/plugin/term/Makefile | 8 +-
src/plugin/term/Makefile.conf.in | 2 +-
src/plugin/term/clip_term.c | 95 -
src/plugin/term/configure.ac | 6 +-
src/plugin/term/keyb_slang.c | 59 +-
src/plugin/term/mouse_xterm.c | 2 +-
src/plugin/term/terminal.c | 11 +-
src/plugin/vde/Makefile | 6 +-
src/plugin/vde/configure.ac | 1 +
src/plugin/vde/vde.c | 14 +-
test/common_framework.py | 214 +-
test/cpu/Makefile | 24 +-
test/cpu/reffile.log | 4493 ------------
test/cpu/test-i386-code16.S | 4 -
test/cpu/test-i386-shift.h | 13 +-
test/cpu/test-i386-vm86.S | 4 -
test/cpu/test-i386.c | 8 +-
test/dosemu_tap_interface.sh | 27 -
test/ecm/dpmitest/Makefile | 2 +-
test/func_cpu_trap_flag.py | 91 +-
test/func_ds2_file_seek_read.py | 189 +-
test/func_ds2_file_seek_tell.py | 165 +-
test/func_ds3_file_access.py | 2 +-
test/func_ds3_lock_two_handles.py | 175 +-
test/func_ds3_share_open_access.py | 104 +-
test/func_ds3_share_open_twice.py | 269 +-
test/func_label_create.py | 676 --
test/func_lfn_voln_info.py | 75 -
test/func_lfs_disk_info.py | 144 -
test/func_lfs_file_info.py | 14 +-
test/func_libi86_testsuite.py | 75 -
test/func_memory_dpmi_dpmi10_ldt.py | 159 -
test/func_memory_dpmi_japheth.py | 158 -
test/func_memory_dpmi_leak_check.py | 89 -
test/func_memory_dpmi_leak_check_dos.py | 88 -
test/func_memory_hma.py | 601 --
test/func_memory_uma.py | 164 -
test/func_memory_xms.py | 216 -
test/func_mfs_truename.py | 176 +-
test/func_network.py | 88 -
test/func_pit_mode_2.py | 138 -
test/test_dos.py | 3021 ++++----
634 files changed, 19105 insertions(+), 52303 deletions(-)
delete mode 100644 .github/FUNDING.yml
delete mode 100644 .github/workflows/ci-manual-asan.yml
delete mode 100644 .github/workflows/ci-manual-full.yml
delete mode 100644 .github/workflows/ci-manual-normal.yml
delete mode 100644 .github/workflows/ci-master.yml
delete mode 100644 .gitignore
delete mode 100644 .tito/packages/.readme
delete mode 100644 .tito/packages/dosemu2
delete mode 100644 .tito/tito.props
delete mode 100755 ci_test_prereq.sh
delete mode 100644 dosemu2.spec
create mode 100755 install-sh
delete mode 100644 m4/m4_ax_prog_cc_for_build.m4
delete mode 100755 scripts/config.guess
delete mode 100755 scripts/config.sub
delete mode 100755 scripts/install-sh
create mode 100644 src/arch/linux/async/sigsegv.c
rename src/{base/lib => arch/linux}/mapping/Makefile (94%)
create mode 100644 src/arch/linux/mapping/mapfile.c
rename src/{base/lib => arch/linux}/mapping/mapping.c (59%)
create mode 100644 src/arch/linux/mapping/mapshm.c
rename src/base/bios/x86/{bios.S => bios.s} (94%)
delete mode 100644 src/base/bios/x86/bios_offsets.h
delete mode 100644 src/base/core/vint.c
delete mode 100644 src/base/dev/misc/virq.c
delete mode 100644 src/base/dev/misc/vtmr.c
delete mode 100644 src/base/dev/pic/i8259.c
delete mode 100644 src/base/dev/pic/i8259.h
delete mode 100644 src/base/dev/pic/i8259_common.c
delete mode 100644 src/base/dev/pic/i8259_internal.h
delete mode 100644 src/base/dev/pic/irq.c
delete mode 100644 src/base/dev/pic/irq.h
delete mode 100644 src/base/dev/sb16/mpu401.c
delete mode 100644 src/base/dev/sb16/mpu401.h
delete mode 100644 src/base/dev/sb16/mt32.c
delete mode 100644 src/base/dev/sb16/softmpu/Makefile
delete mode 100644 src/base/dev/sb16/softmpu/export.h
delete mode 100644 src/base/dev/sb16/softmpu/mpu401.c
delete mode 100644 src/base/dev/sb16/softmpu/pic.c
delete mode 100644 src/base/dev/vga/vesabios_offsets.h
delete mode 100644 src/base/dev/vga/vesabios_pm_offsets.h
delete mode 100644 src/base/emu-i386/kvmmon_offsets.h
delete mode 100644 src/base/emu-i386/simx86/softfloat/Makefile
delete mode 100644 src/base/emu-i386/simx86/softfloat/softfloat-macros.h
delete mode 100644 src/base/emu-i386/simx86/softfloat/softfloat-specialize.h
delete mode 100644 src/base/emu-i386/simx86/softfloat/softfloat.c
delete mode 100644 src/base/emu-i386/simx86/softfloat/softfloat.h
delete mode 100644 src/base/lib/mapping/mapashm.c
delete mode 100644 src/base/lib/mapping/mapfile.c
delete mode 100644 src/base/lib/mcontext/aarch64-ucontext.h
delete mode 100644 src/base/lib/mcontext/arm-ucontext.h
create mode 100644 src/base/lib/mcontext/asm.S
delete mode 100644 src/base/lib/mcontext/asm.SS
delete mode 100644 src/base/lib/mcontext/mips-ucontext.h
delete mode 100644 src/base/lib/mcontext/power-ucontext.h
delete mode 100644 src/base/lib/misc/pgalloc.c
delete mode 100644 src/base/lib/misc/sequencr.c
delete mode 100644 src/base/lib/misc/shlock.c
delete mode 100644 src/base/lib/misc/spscq.c
delete mode 100644 src/base/lib/timer/Makefile
delete mode 100644 src/base/lib/timer/evtimer.c
delete mode 100644 src/base/lib/timer/evtimer_fd.c
delete mode 100644 src/base/misc/clipboard.c
delete mode 100644 src/base/serial/comredir.c
delete mode 100644 src/base/serial/comredir.h
delete mode 100644 src/base/serial/nullmm.c
delete mode 100644 src/base/serial/nullmm.h
delete mode 100644 src/bindist/bat/dosrc.d/3uhook.bat
create mode 100644 src/bindist/bat/dosrc.d/7mouse.bat
rename src/dosext/builtins/{emuconf.c => dosdbg.c} (72%)
rename src/dosext/builtins/{emuconf.h => dosdbg.h} (100%)
delete mode 100644 src/dosext/builtins/fossil.c
delete mode 100644 src/dosext/builtins/fossil.h
delete mode 100644 src/dosext/dpmi/djdpmi.h
create mode 100644 src/dosext/dpmi/dnative.c
create mode 100644 src/dosext/dpmi/dnative.h
delete mode 100644 src/dosext/dpmi/dnative/Makefile
delete mode 100644 src/dosext/dpmi/dnative/dnative.c
delete mode 100644 src/dosext/dpmi/dnative/dnative.h
delete mode 100644 src/dosext/dpmi/dnative/sigsegv.c
delete mode 100644 src/dosext/dpmi/doslib/Makefile
delete mode 100644 src/dosext/dpmi/doslib/dos.c
delete mode 100644 src/dosext/dpmi/doslib/dos.h
delete mode 100644 src/dosext/dpmi/doslib/dpmi.h
delete mode 100644 src/dosext/dpmi/dpmisel_offsets.h
delete mode 100644 src/dosext/dpmi/msdos/hlpmisc.c
create mode 100644 src/dosext/dpmi/stub/dpmi.h
delete mode 100644 src/dosext/mfs/rlocks.c
delete mode 100644 src/dosext/mfs/rlocks.h
delete mode 100644 src/dosext/mfs/share.c
delete mode 100644 src/dosext/mfs/share.h
delete mode 100644 src/dosext/mfs/xattr.c
delete mode 100644 src/dosext/mfs/xattr.h
delete mode 100644 src/include/Asm/processor-flags.h
delete mode 100644 src/include/Linux/const.h
delete mode 100644 src/include/Linux/kd.h
delete mode 100644 src/include/Linux/magic.h
delete mode 100644 src/include/Sys/kd.h
delete mode 100644 src/include/clipboard.h
delete mode 100644 src/include/coopth_pm.h
delete mode 100644 src/include/dnative.h
delete mode 100644 src/include/dos.h
delete mode 100644 src/include/dpmi.h
delete mode 100644 src/include/evtimer.h
delete mode 100644 src/include/fls.h
delete mode 100644 src/include/generic-non-atomic.h
delete mode 100644 src/include/ioselect.h
delete mode 100644 src/include/msdoshlp.h
delete mode 100644 src/include/pgalloc.h
delete mode 100644 src/include/sequencr.h
delete mode 100644 src/include/shlock.h
delete mode 100644 src/include/spscq.h
delete mode 100644 src/include/vint.h
delete mode 100644 src/include/virq.h
delete mode 100644 src/include/vtmr.h
create mode 100644 src/plugin/alsa/m4/alsa.m4
rename src/{base/lib/misc => plugin/debugger}/dis8086.c (99%)
delete mode 100644 src/plugin/dj64/Makefile
delete mode 100644 src/plugin/dj64/Makefile.conf.in
delete mode 100644 src/plugin/dj64/coff.c
delete mode 100644 src/plugin/dj64/coff.h
delete mode 100644 src/plugin/dj64/config/plugin_config.h
delete mode 100644 src/plugin/dj64/configure.ac
delete mode 100644 src/plugin/dj64/djdev64.c
delete mode 100644 src/plugin/dj64/elf.c
delete mode 100644 src/plugin/dj64/elf.h
delete mode 100644 src/plugin/dj64/elfp.h
delete mode 100644 src/plugin/dj64/stub.c
delete mode 100644 src/plugin/dj64/stub.h
delete mode 100644 src/plugin/dj64/stub_ex.h
delete mode 100644 src/plugin/dj64/stubinfo.h
delete mode 100644 src/plugin/dj64/util.c
delete mode 100644 src/plugin/dj64/util.h
create mode 100644 src/plugin/dosdrv/fossil.s
create mode 100644 src/plugin/libao/m4/ao.m4
rename src/plugin/periph/{bootnorm.S => bootnorm.s} (56%)
delete mode 100644 src/plugin/periph/bootnorm_offsets.h
rename src/plugin/periph/{bootsect.S => bootsect.s} (98%)
delete mode 100644 src/plugin/periph/bootsect_offsets.h
create mode 100644 src/plugin/sdl/acinclude.m4
delete mode 100644 src/plugin/sdl/clip_SDL.c
delete mode 100644 src/plugin/sdl/clip_SDL.h
create mode 100644 src/plugin/sdl/m4/sdl2.m4
create mode 100644 src/plugin/sdl1/m4/sdl.m4
delete mode 100644 src/plugin/term/clip_term.c
delete mode 100644 test/cpu/reffile.log
delete mode 100755 test/dosemu_tap_interface.sh
delete mode 100644 test/func_label_create.py
delete mode 100644 test/func_lfn_voln_info.py
delete mode 100644 test/func_lfs_disk_info.py
delete mode 100644 test/func_libi86_testsuite.py
delete mode 100644 test/func_memory_dpmi_dpmi10_ldt.py
delete mode 100644 test/func_memory_dpmi_japheth.py
delete mode 100644 test/func_memory_dpmi_leak_check.py
delete mode 100644 test/func_memory_dpmi_leak_check_dos.py
delete mode 100644 test/func_memory_hma.py
delete mode 100644 test/func_memory_uma.py
delete mode 100644 test/func_memory_xms.py
delete mode 100644 test/func_network.py
delete mode 100644 test/func_pit_mode_2.py
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
deleted file mode 100644
index c701875..0000000
--- a/.github/FUNDING.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-# These are supported funding model platforms
-
-patreon: stsp
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 5f52617..f242f15 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -19,9 +19,7 @@ or provide the download URL.
**Attach the log**
It is located in ~/.dosemu/boot.log
-Unless you get the plain crash of dosemu2,
-you may need to enable some logging flags
-to make your report more useful.
+To make the log more useful, you may need to enable some logging flags.
See description of -D option in `man dosemu.bin`.
**A regression?**
@@ -29,15 +27,6 @@ If you happened to know this problem didn't
exist on dosemu1 or some earlier versions of
dosemu2, please write.
-**dosemu2 origins**
-Please describe where do you get dosemu2
-from (PPA, COPR, git sources). In case of a
-source build, please describe any configure-time
-customizations. In case of binary packages,
-please specify your distribution and make sure
-to install the debuginfo packages before creating
-the log file.
-
**Additional info**
Please write here if you did any dosemu2 setup
customizations, like installing any custom DOS
diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml
index c9887c4..ce6d0d2 100644
--- a/.github/workflows/ci-build.yml
+++ b/.github/workflows/ci-build.yml
@@ -1,37 +1,31 @@
name: Build
on:
- workflow_call:
- inputs:
- jobtype:
- required: true
- type: string
- subtype:
- required: true
- type: string
- runtype:
- required: true
- type: string
+ pull_request:
+ types:
+ - opened
+ - edited
+ - ready_for_review
+ - reopened
+ - synchronize
+ push:
jobs:
build:
+ if: contains(github.event.head_commit.message, '[skip ci]') == false
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-20.04
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v2
- name: package install
run: ./ci_prereq.sh
- name: build
- env:
- JOBTYPE: ${{ inputs.jobtype }}
- SUBTYPE: ${{ inputs.subtype }}
- RUNTYPE: ${{ inputs.runtype }}
run: ./ci_build.sh
- name: cache binaries
- uses: actions/cache@v4
+ uses: actions/cache@v2
env:
cache-name: test-binaries
with:
@@ -40,23 +34,13 @@ jobs:
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
- - name: Enable KVM group perms
- run: |
- echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
- sudo udevadm control --reload-rules
- sudo udevadm trigger --name-match=kvm
-
- name: test
id: test
- env:
- JOBTYPE: ${{ inputs.jobtype }}
- SUBTYPE: ${{ inputs.subtype }}
- RUNTYPE: ${{ inputs.runtype }}
run: ./ci_test.sh
- name: upload failure logs
if: ${{ always() && (steps.test.outcome == 'failure') }}
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v2
with:
name: failure-logs
path: test_*
diff --git a/.github/workflows/ci-manual-asan.yml b/.github/workflows/ci-manual-asan.yml
deleted file mode 100644
index f254d89..0000000
--- a/.github/workflows/ci-manual-asan.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-name: Manual ASAN
-on:
- workflow_dispatch:
-
-jobs:
- manual_asan:
- name: Manual (ASAN)
- uses: ./.github/workflows/ci-build.yml
- with:
- jobtype: 'manual'
- subtype: 'asan'
- runtype: 'simple'
diff --git a/.github/workflows/ci-manual-full.yml b/.github/workflows/ci-manual-full.yml
deleted file mode 100644
index b83c128..0000000
--- a/.github/workflows/ci-manual-full.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-name: Manual FULL
-on:
- workflow_dispatch:
-
-jobs:
- manual_full:
- name: Manual (FULL)
- uses: ./.github/workflows/ci-build.yml
- with:
- jobtype: 'manual'
- subtype: ''
- runtype: 'full'
diff --git a/.github/workflows/ci-manual-normal.yml b/.github/workflows/ci-manual-normal.yml
deleted file mode 100644
index 53f62ab..0000000
--- a/.github/workflows/ci-manual-normal.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-name: Manual Normal
-on:
- workflow_dispatch:
-
-jobs:
- manual_normal:
- name: Manual (Normal)
- uses: ./.github/workflows/ci-build.yml
- with:
- jobtype: 'manual'
- subtype: ''
- runtype: 'normal'
diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml
deleted file mode 100644
index 74c81bc..0000000
--- a/.github/workflows/ci-master.yml
+++ /dev/null
@@ -1,73 +0,0 @@
-name: Master
-
-on:
- schedule:
- - cron: '23 23 * * 0' # 23:23 Every Sunday
- pull_request:
- types:
- - opened
- - reopened
- - synchronize
- push:
-
-jobs:
-# scheduled_asan:
-# name: Scheduled (ASAN)
-# if: (github.event_name == 'schedule' &&
-# github.repository_owner == 'dosemu2')
-
-# uses: ./.github/workflows/ci-build.yml
-# with:
-# jobtype: 'schedule'
-# subtype: 'asan'
-# runtype: 'simple'
-
- scheduled_full:
- name: Scheduled (FULL)
- if: (github.event_name == 'schedule' &&
- github.repository_owner == 'dosemu2')
-
- uses: ./.github/workflows/ci-build.yml
- with:
- jobtype: 'schedule'
- subtype: ''
- runtype: 'full'
-
- triggered:
- name: Triggered
- if: (github.event_name != 'schedule' &&
- contains(github.event.head_commit.message, '[skip ci]') == false &&
- contains(github.event.head_commit.message, '[full ci]') == false &&
- contains(github.event.head_commit.message, '[asan ci]') == false)
-
- uses: ./.github/workflows/ci-build.yml
- with:
- jobtype: 'triggered'
- subtype: ''
- runtype: 'normal'
-
- triggered_asan:
- name: Triggered (ASAN)
- if: (github.event_name != 'schedule' &&
- contains(github.event.head_commit.message, '[skip ci]') == false &&
- contains(github.event.head_commit.message, '[full ci]') == false &&
- contains(github.event.head_commit.message, '[asan ci]') == true)
-
- uses: ./.github/workflows/ci-build.yml
- with:
- jobtype: 'triggered'
- subtype: 'asan'
- runtype: 'simple'
-
- triggered_full:
- name: Triggered (FULL)
- if: (github.event_name != 'schedule' &&
- contains(github.event.head_commit.message, '[skip ci]') == false &&
- contains(github.event.head_commit.message, '[full ci]') == true &&
- contains(github.event.head_commit.message, '[asan ci]') == false)
-
- uses: ./.github/workflows/ci-build.yml
- with:
- jobtype: 'triggered'
- subtype: ''
- runtype: 'full'
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 86f9af1..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,39 +0,0 @@
-/install-sh
-/config.status
-/config.sub
-*.d
-!dosrc.d
-*.o
-configure
-config.log
-aclocal.m4
-autom4te.cache
-Makefile.conf
-plugin_enable
-*.map
-*.xxd
-_*.h.in
-_*.h
-*.hh
-config.hh.in
-*.yy.c
-*.zz.c
-parser.c
-parser.h
-parser.output
-*.1
-dosemu_c.c
-global_c.c
-etc/Xfonts
-/etc/ttf/.uuid
-.tstamp
-/2.*
-/bin
-/commands
-/lib
-dosemu.desktop
-dosdebug
-hdinfo
-bios_symbols.c
-keysym_attributes.c
-make_attributes
diff --git a/.tito/packages/.readme b/.tito/packages/.readme
deleted file mode 100644
index b9411e2..0000000
--- a/.tito/packages/.readme
+++ /dev/null
@@ -1,3 +0,0 @@
-the .tito/packages directory contains metadata files
-named after their packages. Each file has the latest tagged
-version and the project's relative directory.
diff --git a/.tito/packages/dosemu2 b/.tito/packages/dosemu2
deleted file mode 100644
index 5a4bd26..0000000
--- a/.tito/packages/dosemu2
+++ /dev/null
@@ -1 +0,0 @@
-2.0pre9-2 ./
diff --git a/.tito/tito.props b/.tito/tito.props
deleted file mode 100644
index 9f6fd2b..0000000
--- a/.tito/tito.props
+++ /dev/null
@@ -1,6 +0,0 @@
-[buildconfig]
-builder = tito.builder.Builder
-tagger = tito.tagger.VersionTagger
-changelog_do_not_remove_cherrypick = 0
-changelog_format = %s (%ae)
-
diff --git a/.travis.yml b/.travis.yml
index 11dd5fc..a91c13b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,6 @@
language: c
-os: linux
+sudo: true
dist: focal
if: type = cron
diff --git a/COPYING.DOSEMU b/COPYING.DOSEMU
index 7b16464..b5f661e 100644
--- a/COPYING.DOSEMU
+++ b/COPYING.DOSEMU
@@ -17,10 +17,8 @@
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-2. All dosemu2 C sources (*.c) that have no explicit copyright statement,
- are copyrighted under GPLv2. Headers (*.h) without explicit
- copyrights are copyrighted similar to their respective .c
- counterparts, or, if no .c file with that name - under GPLv2+.
+2. All dosemu2 sources that have no explicit copyright statement,
+ are copyrighted under GPLv2.
3. Parts of the code not covered by the GPL are marked explicitly
within the code, and/or their copyrights are at the end of this
@@ -46,35 +44,7 @@
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
---- The QEMU emulator, before July 2013
- (src/base/dev/pic/*, src/base/dev/ne2k/ne2000.c)
-
-The following points clarify the QEMU license:
-
-1) QEMU as a whole is released under the GNU General Public License
-
-2) Parts of QEMU have specific licenses which are compatible with the
-GNU General Public License. Hence each source file contains its own
-licensing information.
-
-Many hardware device emulation sources are released under the BSD license.
-
-3) The Tiny Code Generator (TCG) is released under the BSD license
- (see license headers in files).
-
-4) QEMU is a trademark of Fabrice Bellard.
-
-Fabrice Bellard.
-
-dosemu2 note: in July 2013 QEMU license was updated to state GPLv2-only:
--1) QEMU as a whole is released under the GNU General Public License
-+1) QEMU as a whole is released under the GNU General Public License,
-+version 2.
-
-Therefore we take care to remove all changes done since that date,
-while porting QEMU sources to dosemu2.
-
---- The Mach DOS Emulator (mfs.c, emm.c, emufs.s)
+--- The Mach DOS Emulator
Copyright (c) 1991 Carnegie Mellon University
All Rights Reserved.
@@ -99,7 +69,7 @@ Carnegie Mellon requests users of this software to return to
any improvements or extensions that they make and grant Carnegie Mellon
the rights to redistribute these changes.
---- XFree86 (src/base/mouse/mouseint.c)
+--- XFree86 (mouse code)
Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
Copyright 1993 by David Dawes
@@ -123,14 +93,14 @@ RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
---- Doug Lea's malloc in src/base/lib/misc/dlmalloc.c
+--- Doug Lea's malloc in src/base/misc/dlmalloc.c
This is a version (aka dlmalloc) of malloc/free/realloc written by
Doug Lea and released to the public domain, as explained at
http://creativecommons.org/licenses/publicdomain. Send questions,
comments, complaints, performance data, etc to dl@cs.oswego.edu
---- The VGA fonts in src/base/dev/vga/vgafonts.c (copyleft_vgafonts.txt)
+--- The VGA fonts in src/env/video/vgafonts.c (copyleft_vgafonts.txt)
This *compilation* is (c) Copyright 1991,1992 Joseph (Yossi) Gil.
Permission is granted to use and redistribute the files comprising
diff --git a/INSTALL b/INSTALL
index 232e052..4e62fce 100644
--- a/INSTALL
+++ b/INSTALL
@@ -6,7 +6,7 @@ building and installing dosemu2 from sources
https://code.launchpad.net/~dosemu2/+archive/ubuntu/ppa
of from COPR:
https://copr.fedorainfracloud.org/coprs/stsp/dosemu2/
- - gcc >= 8.1 or clang >= 3.7.0
+ - gcc >= 3.3 or clang >= 3.7.0
- glibc >= 2.20
- linux >= 3.16 for x86-64, >= 4.7 recommended.
With older version than 3.16 there may be some problems
@@ -14,8 +14,11 @@ building and installing dosemu2 from sources
linux >= 4.3 for i386.
linux >= 4.11 if you want to run 32bit dosemu under x86_64 kernel
with multilib environment (you likely don't want to do this).
+ - x86 (i386/x86-64) target CPU
- bison and flex
- - SDL >= 2.0.6, >= 2.26.0 is required for copy/paste support.
+ - SDL >= 2.0.6, >= 2.0.15 is recommended (older versions may not have
+ scaling filters and KMS rendering working).
+ - udev >= 240 recommended for KVM (execution acceleration)
- libslirp >= 4.1.0 recommended for networking
- json-c >= 0.13 recommended
- development libraries: Xext, slang, gpm, alsa, fluidsynth,
diff --git a/Makefile b/Makefile
index e9ffc30..e26dfb7 100644
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@ endif
REALTOPDIR ?= $(abspath $(srcdir))
$(REALTOPDIR)/configure: $(REALTOPDIR)/configure.ac
- cd $(@D) && autoreconf --install -v -I m4
+ cd $(@D) && autoreconf -v -I m4
Makefile.conf config.status src/include/config.hh etc/dosemu.desktop: \
$(REALTOPDIR)/configure
@@ -62,7 +62,7 @@ rpm: dosemu2.spec.rpkg
rpkg local
deb:
- debuild -e CC=clang -i -us -uc -b
+ debuild -i -us -uc -b
changelog:
if [ -d $(top_srcdir)/.git -o -f $(top_srcdir)/.git ]; then \
diff --git a/Makefile.conf.in b/Makefile.conf.in
index e33cffa..62d358e 100644
--- a/Makefile.conf.in
+++ b/Makefile.conf.in
@@ -24,7 +24,7 @@ abs_top_srcdir:=@abs_top_srcdir@
abs_top_builddir:=@abs_top_builddir@
INCDIR=-I${top_builddir}/src/include -I${top_builddir}/src/plugin/include \
- -I${top_srcdir}/src/base/bios/x86 -I${top_srcdir}/src/include \
+ -I${top_builddir}/src/base/bios/x86 -I${top_srcdir}/src/include \
-I${top_srcdir}/src/base/lib
top_srcdir:=$(abs_top_srcdir)
srcdir = $(patsubst %/,%,$(abs_top_srcdir)/src/$(SUBDIR))
@@ -46,16 +46,12 @@ LD:=@CC@
AS:=@AS@
XAS:=@XAS@
AS_LD:=@AS_LD@
-XOBJCOPY:=@XOBJCOPY@
-CC_FOR_BUILD:=@CC_FOR_BUILD@
-CFLAGS_FOR_BUILD:=@CFLAGS_FOR_BUILD@
+OBJCOPY:=@OBJCOPY@
YACC:=@YACC@
# NOTE: we really need bison, yacc won't work any more
#YACC=bison -y
LEX:=@LEX@
-LN_S := @LN_S@
-LN_SFT := @LN_SFT@
# This gets defined even if we chose via ./include/config.h NOT to
# use the debugger
@@ -72,17 +68,8 @@ RANLIB:=@RANLIB@
PACKAGE_NAME:=@PACKAGE_TARNAME@
-USE_DL_PLUGINS := @USE_DL_PLUGINS@
-X86_EMULATOR := @X86_EMULATOR@
-X86_JIT := @X86_JIT@
-DNATIVE := @DNATIVE@
-KVM := @KVM@
-MCONTEXT := @MCONTEXT@
-USE_OFD_LOCKS := @USE_OFD_LOCKS@
-USE_XATTRS := @USE_XATTRS@
-USE_EVTIMER_FD := @USE_EVTIMER_FD@
-USE_OSS := @USE_OSS@
-USE_SOFTFLOAT := @USE_SOFTFLOAT@
+@USE_DL_PLUGINS@
+@X86_EMULATOR@
INSTALL:=@INSTALL@
REALTOPDIR:=$(top_srcdir)
@@ -107,7 +94,7 @@ BINPATH:=$(top_builddir)/$(THISVERSION)
RELEASE_DATE="@RELEASE_DATE@"
REVISION:=$(shell cd $(top_srcdir) && ./getversion -r)
-ifeq ($(USE_DL_PLUGINS),1)
+ifdef USE_DL_PLUGINS
DL_CFLAGS:=-fPIC
else
-include $(top_builddir)/src/plugin/*/Makefile.conf
diff --git a/README.md b/README.md
index 536c8e7..7bfde3d 100644
--- a/README.md
+++ b/README.md
@@ -17,40 +17,10 @@ https://github.com/dosemu2/dosemu2/issues
## Running
-Just type
-```
-dosemu
-```
-to run an emulator.
-
-Use
-```
-dosemu -E
-```
-to run `` and exit (add `-T` to not exit).
-
-Use
-```
-dosemu -K -E
-```
-or
-```
-dosemu --
-```
-to run DOS programs from unix directory.
-
-If you want to run the DOS program from a DOS directory, use this syntax:
-```
-dosemu -K :C:\\games\\carma -E carma.exe
-```
-This will run `carma.exe` from `c:\games\carma`. Note the leading colon
-after `-K`: it means that the DOS path, rather than unix path, is specified.
-You can actually specify both paths:
-```
-dosemu -K ~/dosgames:carma -E carma.exe
-```
-This creates the DOS drive for `~/dosgames`, then chdirs to `carma` and
-runs `carma.exe`.
+Just type `dosemu` to run an emulator.
+Use `dosemu -E ` to run `` and exit (add `-T` to not exit).
+Use `dosemu -K -E ` or `dosemu -K `
+to run DOS programs from unix directories.
## Configuring
diff --git a/THANKS b/THANKS
index 7659f38..247159c 100644
--- a/THANKS
+++ b/THANKS
@@ -4,22 +4,15 @@ Main contributors (with their github names):
Stas Sergeev @stsp
Bart Oldeman @bartoldeman
Andrew Bird @andrewbird
-C. Masloch @ecm-pushbx
Ryan C. Underwood @runderwo
Stuart Axon @stuaxo
-Special thanks for making dosemu2 feasible
-by sponsoring the initial development:
+Special thanks for making dosemu2 feasible:
Caylan Van Larson
Hans-Christian Koch
-Many thanks to our Patreon patrons:
-Jeffrey H. Ingber (@jharrison022)
-C. Masloch (@ecm-pushbx)
-doctorwhoguy@gmail.com (@PaddyMac)
-
Thanks for the good testing and bugreporting:
-Julius Schwartzenberg (@jschwartzenberg)
+Julius Schwartzenberg @jschwartzenberg
A big thanks goes to Linus Torvalds and Andy Lutomirski,
who helped in solving many dosemu2-specific problems in
diff --git a/autogen.sh b/autogen.sh
index b46a452..64826b2 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -2,18 +2,10 @@
DIR=$(dirname $0 | xargs realpath)
echo "Generating toplevel configure script in $DIR..."
-
-check_scr() {
- [ -f $DIR/$1 ] || cp $DIR/scripts/$1 $DIR/$1
-}
-
rm -f aclocal.m4
-if ! autoreconf -v -I m4 --install --force $DIR; then
+if ! autoreconf -I m4 --install --force $DIR; then
echo "Failure!"
exit 1
fi
-check_scr config.sub
-check_scr config.guess
-check_scr install-sh
echo
echo "Done, now run $DIR/default-configure"
diff --git a/ci_build.sh b/ci_build.sh
index 3b3e8a1..4e024f0 100755
--- a/ci_build.sh
+++ b/ci_build.sh
@@ -8,13 +8,6 @@ FDPPBRANCH=""
test -d ${LOCALFDPP} && exit 1
-if [ "${TRAVIS}" = "true" ] ; then
- echo "Travis seems to have some old version of clang in its local directory"
- PATH=$(echo ${PATH} | sed 's,:/usr/local/clang-7.0.0/bin,,g')
- export PATH
- echo PATH is ${PATH}
-fi
-
git clone --depth 1 --no-single-branch https://github.com/dosemu2/fdpp.git ${LOCALFDPP}
(
cd ${LOCALFDPP} || exit 2
@@ -27,37 +20,14 @@ git clone --depth 1 --no-single-branch https://github.com/dosemu2/fdpp.git ${LOC
echo "EXTRA_DEBUG = 1" >> local.mak
echo "USE_UBSAN = 1" >> local.mak
- # Install the build dependancies based FDPP's debian/control file
- sudo add-apt-repository ppa:stsp-0/nasm-segelf
- sudo add-apt-repository ppa:stsp-0/thunk-gen
- sudo apt update -q
- mk-build-deps --install --root-cmd sudo
-
- # Seems to miss this, perhaps the optional dependency confuses things
- if [ "${TRAVIS}" = "true" ] ; then
- sudo apt install binutils
- fi
-
- make
- sudo make install
+ make clean all install PREFIX=${LOCALFDPPINST}
)
-# Install the build dependancies based Dosemu's debian/control file
-sudo add-apt-repository -y ppa:dosemu2/ppa
-mk-build-deps --install --root-cmd sudo
-
-if [ "${SUBTYPE}" = "asan" ] ; then
- sed -i 's/asan off/asan on/g' compiletime-settings.devel
-fi
-CC=clang ./default-configure -d
+export PKG_CONFIG_PATH=${LOCALFDPPINST}/lib/pkgconfig
+./default-configure -d
make
# Install the FAT mount helper
sudo cp test/dosemu_fat_mount.sh /bin/.
sudo chown root.root /bin/dosemu_fat_mount.sh
sudo chmod 755 /bin/dosemu_fat_mount.sh
-
-# Install the TAP helper
-sudo cp test/dosemu_tap_interface.sh /bin/.
-sudo chown root.root /bin/dosemu_tap_interface.sh
-sudo chmod 755 /bin/dosemu_tap_interface.sh
diff --git a/ci_prereq.sh b/ci_prereq.sh
index 888bf1a..a4e482c 100755
--- a/ci_prereq.sh
+++ b/ci_prereq.sh
@@ -1,8 +1,55 @@
#!/bin/sh
-sudo apt-get update
+sudo add-apt-repository -y ppa:dosemu2/ppa
+sudo add-apt-repository -y ppa:jwt27/djgpp-toolchain
+sudo add-apt-repository -y ppa:tkchia/build-ia16
+
+sudo apt update -q
+
sudo apt install -y \
- devscripts \
- equivs \
+ acl \
+ comcom32 \
git \
- bash
+ bash \
+ autoconf \
+ autotools-dev \
+ automake \
+ coreutils \
+ linuxdoc-tools \
+ bison \
+ flex \
+ gawk \
+ sed \
+ libbsd-dev \
+ libx11-dev \
+ libxext-dev \
+ libslang2-dev \
+ xfonts-utils \
+ libgpm-dev \
+ libasound2-dev \
+ libsdl2-dev \
+ libsdl2-ttf-dev \
+ libfontconfig1-dev \
+ libsdl1.2-dev \
+ ladspa-sdk \
+ libfluidsynth-dev \
+ libao-dev \
+ libieee1284-3-dev \
+ libreadline-dev \
+ libjson-c-dev \
+ libslirp-dev \
+ binutils-dev \
+ libelf-dev \
+ pkg-config \
+ clang \
+ nasm \
+ python3-cpuinfo \
+ python3-pexpect \
+ gcc-djgpp \
+ qemu-system-common \
+ gdb \
+ valgrind \
+ gcc-ia16-elf \
+ libi86-ia16-elf \
+ gcc-multilib \
+ dos2unix
diff --git a/ci_test.sh b/ci_test.sh
index cddb7ed..122e152 100755
--- a/ci_test.sh
+++ b/ci_test.sh
@@ -1,36 +1,42 @@
-#!/bin/bash
+#!/bin/sh
-. ./ci_test_prereq.sh
+set -e
+
+# Get any test binaries we need
+TBINS="test-binaries"
+THOST="http://www.spheresystems.co.uk/test-binaries"
if [ "${TRAVIS}" = "true" ] ; then
export CI="true"
- export CI_BRANCH="${TRAVIS_BRANCH}"
if [ "${TRAVIS_EVENT_TYPE}" = "cron" ] ; then
- export RUNTYPE="full"
- else
- export RUNTYPE="simple"
+ export CI_EVENT="cron"
fi
+ export CI_BRANCH="${TRAVIS_BRANCH}"
elif [ "${GITHUB_ACTIONS}" = "true" ] ; then
# CI is already set
- export CI_BRANCH="$(echo ${GITHUB_REF} | cut -d/ -f3)"
- if [ "${GITHUB_EVENT_NAME}" = "push" ] && [ "${GITHUB_REPOSITORY_OWNER}" = "dosemu2" ] && [ "${CI_BRANCH}" = "devel" ] ; then
- export RUNTYPE="simple"
+ if [ "${GITHUB_EVENT_NAME}" = "scheduled" ] ; then
+ export CI_EVENT="cron"
fi
+ export CI_BRANCH="$(echo ${GITHUB_REF} | cut -d/ -f3)"
fi
-TBINS="test-binaries"
if [ "${CI}" = "true" ] ; then
[ -d "${HOME}"/cache ] || mkdir "${HOME}"/cache
[ -h "${TBINS}" ] || ln -s "${HOME}"/cache "${TBINS}"
else
[ -d "${TBINS}"] || mkdir "${TBINS}"
fi
-python3 test/test_dos.py --get-test-binaries
-if [ -f /dev/kvm ] ; then
- sudo setfacl -m u:${USER}:rw /dev/kvm
-fi
+(
+ cd "${TBINS}" || exit 1
+ [ -f DR-DOS-7.01.tar ] || wget ${THOST}/DR-DOS-7.01.tar
+ [ -f FR-DOS-1.20.tar ] || wget ${THOST}/FR-DOS-1.20.tar
+ [ -f MS-DOS-6.22.tar ] || wget ${THOST}/MS-DOS-6.22.tar
+
+ [ -f VARIOUS.tar ] || wget ${THOST}/VARIOUS.tar
+ [ -f TEST_EMM286.tar ] || wget ${THOST}/TEST_EMM286.tar
+)
echo
echo "====================================================="
@@ -43,35 +49,20 @@ echo "====================================================="
# single test example
# python3 test/test_dos.py FRDOS120TestCase.test_mfs_fcb_rename_wild_1
-if [ "${TRAVIS}" = "true" ] ; then
- ARGS="--require-attr=cputest"
+if [ "${CI_EVENT}" = "cron" ] ; then
+ if [ "${TRAVIS}" = "true" ] ; then
+ python3 test/test_dos.py --require-attr=cputest PPDOSGITTestCase MSDOS622TestCase FRDOS120TestCase
+ else
+ python3 test/test_dos.py
+ fi
else
- ARGS=""
+ if [ "${CI_BRANCH}" = "devel" ] ; then
+ python3 test/test_dos.py PPDOSGITTestCase MSDOS622TestCase
+ else
+ python3 test/test_dos.py PPDOSGITTestCase
+ fi
fi
-case "${RUNTYPE}" in
- "full")
- ARGS="${ARGS} PPDOSGITTestCase MSDOS622TestCase FRDOS130TestCase DRDOS701TestCase"
- ;;
- "normal")
- ARGS="${ARGS} PPDOSGITTestCase MSDOS622TestCase"
- export SKIP_UNCERTAIN=1
- ;;
- "simple")
- ARGS="${ARGS} PPDOSGITTestCase"
- export SKIP_EXPENSIVE=1
- export SKIP_UNCERTAIN=1
- ;;
-esac
-
-# CC is set on Travis and can confuse compilation during tests
-unset CC
-
-# Make cpu tests here so that we see any failures
-make -C test/cpu clean all
-
-python3 test/test_dos.py ${ARGS}
-
for i in test_*.*.*.log ; do
test -f $i || exit 0
done
diff --git a/ci_test_prereq.sh b/ci_test_prereq.sh
deleted file mode 100755
index 74e7225..0000000
--- a/ci_test_prereq.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-
-sudo add-apt-repository -y ppa:jwt27/djgpp-toolchain
-sudo add-apt-repository -y ppa:tkchia/build-ia16
-
-sudo apt update -q
-
-sudo apt install -y \
- acl \
- comcom64 \
- nasm \
- python3-cpuinfo \
- python3-pexpect \
- mtools \
- gcc-djgpp \
- djgpp-dev \
- qemu-system-common \
- gdb \
- valgrind \
- gcc-ia16-elf \
- libi86-ia16-elf \
- libi86-testsuite-ia16-elf \
- gcc-multilib \
- dos2unix \
- bridge-utils \
- libvirt-daemon \
- libvirt-daemon-system
diff --git a/compiletime-settings.devel b/compiletime-settings.devel
index d0f188d..fdee0ef 100644
--- a/compiletime-settings.devel
+++ b/compiletime-settings.devel
@@ -1,9 +1,7 @@
config {
experimental on
debug on
- asan off
- lsan off
- tsan off
+ asan on
ubsan on
optimize off
system-wa off
diff --git a/configure.ac b/configure.ac
index 3ecd739..f8adba2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -16,11 +16,10 @@ AC_PROG_CC
#AC_PROG_CC_C11([AC_DEFINE(HAVE_STD_C11)])
AC_DEFINE(HAVE_STD_C11)
AC_PROG_CPP
-AX_PROG_CC_FOR_BUILD
AC_USE_SYSTEM_EXTENSIONS
AC_MSG_CHECKING([for $CC actually being clang])
-if $CC -v 2>&1|grep 'clang' >/dev/null; then
+if "$CC" -v 2>&1|grep 'clang' >/dev/null; then
AC_MSG_RESULT([yes])
AC_MSG_CHECKING([for clang >= 3.7])
clang_ver=`$CC -v 2>&1 | grep version | sed 's/.*version //' | cut -d " " -f 1`
@@ -36,93 +35,46 @@ if $CC -v 2>&1|grep 'clang' >/dev/null; then
-Wno-address-of-packed-member"
LDFLAGS="$LDFLAGS -Wno-unused-command-line-argument"
use_clang="yes"
-
- AS="$CC"
- clang_as_as=1
- ASFLAGS="-xassembler -c -"
else
+ CCAS="$CC"
AC_MSG_RESULT([no])
use_clang="no"
AC_MSG_CHECKING([for $CC actually being c++])
- if $CC -v 2>&1 | grep "g++" | grep "COLLECT_GCC" >/dev/null; then
+ if "$CC" -v 2>&1 | grep "g++" | grep "COLLECT_GCC" >/dev/null; then
AC_MSG_RESULT([yes, using -fpermissive])
- DOSEMU_CFLAGS="$DOSEMU_CFLAGS -fpermissive -Wno-narrowing"
+ DOSEMU_CFLAGS="$DOSEMU_CFLAGS -fpermissive"
else
AC_MSG_RESULT([no])
DOSEMU_CFLAGS="$DOSEMU_CFLAGS -fplan9-extensions"
fi
fi
-CONFIG_HOST=`uname -s`
-AC_SUBST(CONFIG_HOST)
-machine=`$CC -dumpmachine | cut -d- -f1 | sed 's/i.86/i386/'`
-
+AC_PATH_PROG([AS], [as])
if test -z "$AS"; then
- AC_PATH_PROG([AS], [as])
- if test -z "$AS"; then
- AC_PATH_PROG([AS], [clang])
- if test -z "$AS"; then
- AC_MSG_ERROR(as not found)
- fi
- AC_MSG_NOTICE(Using clang as as...)
- clang_as_as=1
- ASFLAGS="-xassembler -c -"
- fi
+ AC_MSG_ERROR(as not found)
fi
-AC_PATH_PROGS([XAS], [i686-linux-gnu-as i386-elf-as])
+AC_PATH_PROG([XAS], [i386-elf-as])
if test -z "$XAS"; then
- if test "$CONFIG_HOST" = "Darwin"; then
- AC_MSG_ERROR([Please install i386-elf-binutils from https://github.com/nativeos/homebrew-i386-elf-toolchain])
- fi
- AC_PATH_PROG([XAS], [x86_64-linux-gnu-as])
- if test -z "$XAS"; then
- if test "$machine" = "i386" -o "$machine" = "x86_64"; then
- XAS="$AS"
- if test "$clang_as_as" = "1"; then
- XASFLAGS="$ASFLAGS -m32"
- else
- XASFLAGS="$ASFLAGS --32"
- fi
- else
- AC_MSG_ERROR([cross-assembler not found, please install binutils-i686-linux-gnu])
- fi
- else
- XASFLAGS="$ASFLAGS --32"
- fi
+ XAS="$AS"
+ XASFLAGS=--32
fi
-
-AC_PATH_PROGS([LD], [ld ld.lld])
+AC_PATH_PROG([LD], [ld])
if test -z "$LD"; then
AC_MSG_ERROR(ld not found)
fi
-AC_PATH_PROGS([AS_LD], [i686-linux-gnu-ld i386-elf-ld x86_64-linux-gnu-ld ld.lld ld])
+AC_PATH_PROG([AS_LD], [i386-elf-ld])
if test -z "$AS_LD"; then
AS_LD="$LD"
fi
-
-AC_PATH_PROG([OBJCOPY], [objcopy])
-O_VER=`$OBJCOPY -V | head -n 1 | grep "GNU objcopy"`
-if test -z "$O_VER"; then
- AC_MSG_WARN([rejecting BSD objcopy])
- OBJCOPY=""
-fi
+AC_PATH_PROGS([OBJCOPY], [i386-elf-objcopy objcopy])
if test -z "$OBJCOPY"; then
- AC_PATH_PROG([LOBJCOPY], [llvm-objcopy], [], [$PATH${PATH_SEPARATOR}/usr/local/opt/llvm/bin])
- if test -z "$LOBJCOPY"; then
- AC_MSG_ERROR(objcopy not found)
- fi
- OBJCOPY="$LOBJCOPY"
-fi
-
-AC_PATH_PROGS([XOBJCOPY], [i686-linux-gnu-objcopy x86_64-linux-gnu-objcopy objcopy])
-if test -z "$XOBJCOPY"; then
- XOBJCOPY="$OBJCOPY"
+ AC_MSG_ERROR(objcopy not found)
fi
AC_SUBST(AS)
AC_SUBST(XAS)
AC_SUBST(AS_LD)
-AC_SUBST(XOBJCOPY)
+AC_SUBST(OBJCOPY)
AC_ARG_WITH(target-bits-32, [AS_HELP_STRING([--with-target-bits-32],
[build for 32bit target (multilib in case of x86_64 host)])],
@@ -133,30 +85,20 @@ AC_ARG_WITH(target-bits-32, [AS_HELP_STRING([--with-target-bits-32],
)
AC_PROG_INSTALL
AC_PROG_LEX([noyywrap])
-if test -z "$LEX"; then
+if test -z "`echo $LEX | grep flex`" ; then
+ AC_CHECK_PROG(lex_ok, $LEX, "yes", "no")
+fi
+if test "$lex_ok" = "no"; then
AC_MSG_WARN(Your system doesn't seem to have lex or flex available.)
AC_MSG_ERROR(Install lex or flex and retry.)
fi
-
AC_PROG_LN_S
-AC_MSG_CHECKING([if $LN_S is a GNU ln])
-if $LN_S --help >/dev/null 2>&1; then
- AC_MSG_RESULT([yes, using -T])
- LN_SFT="$LN_S -f -T"
-else
- AC_MSG_RESULT([no, using -F])
- LN_SFT="$LN_S -f -F"
-fi
-AC_SUBST(LN_SFT)
-
-AC_CHECK_PROGS([MAKE], [gmake make])
-if test -z "$MAKE"; then
+AC_CHECK_PROG([MAKE], [make], ["yes"])
+if test "$MAKE" != "yes"; then
AC_MSG_ERROR(You don't have make installed)
fi
-# export MAKE to run from scripts
-export MAKE="$MAKE"
-AC_CHECK_PROGS([REALPATH], [realpath])
-if test -z "$REALPATH"; then
+AC_CHECK_PROG([REALPATH], [realpath], ["yes"])
+if test "$REALPATH" != "yes"; then
AC_MSG_ERROR(You don't have realpath installed)
fi
AC_PROG_RANLIB
@@ -174,7 +116,7 @@ AC_PROG_AWK
if test "$ac_cv_prog_AWK" != "gawk" ; then
AC_MSG_ERROR(Install gawk and retry.)
fi
-AC_CHECK_PROGS([PKG_CONFIG], [pkg-config])
+AC_CHECK_PROG(PKG_CONFIG, pkg-config, yes)
if test -z "$PKG_CONFIG"; then
AC_MSG_ERROR(Install pkg-config and retry.)
fi
@@ -207,6 +149,7 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
])],
[
AC_MSG_RESULT([yes])
+ AC_MSG_NOTICE(Compiling with x86 emulator)
AC_DEFINE(HAVE_ASSIGNABLE_STDERR)
],
[
@@ -214,70 +157,32 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
]
)
-AC_MSG_CHECKING([for optreset])
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([
- #include
- int main(void)
- {
- optreset = 1;
- return 0;
- }
- ])],
- [
- AC_MSG_RESULT([yes])
- AC_DEFINE(HAVE_OPTRESET)
- ],
- [
- AC_MSG_RESULT([no])
- ]
-)
-
AC_CHECK_LIB(rt, shm_open)
dnl below defines HAVE_xxx so needed even if AC_CHECK_LIB() succeeded
-AC_CHECK_FUNCS([shm_open memfd_create fopencookie sigtimedwait closefrom])
-AC_CHECK_FUNCS([setxattr], [
- USE_XATTRS=1
- AC_SUBST(USE_XATTRS)
-])
-AC_CHECK_FUNCS([timerfd_create], [
- USE_EVTIMER_FD=1
- AC_SUBST(USE_EVTIMER_FD)
-], [AC_CHECK_FUNCS([kqueue], [
- USE_EVTIMER_FD=1
- AC_SUBST(USE_EVTIMER_FD)
-])])
-AC_CHECK_FUNCS([mremap])
-AC_CHECK_FUNCS([fls])
+AC_CHECK_FUNCS([shm_open memfd_create renameat2])
-AC_CHECK_DECLS([F_OFD_SETLK], [
- USE_OFD_LOCKS=1
- AC_SUBST(USE_OFD_LOCKS)
- ],, [[#include ]]
-)
-AC_CHECK_DECLS([MREMAP_MAYMOVE],,, [[#include ]])
-AC_CHECK_DECLS([MADV_POPULATE_WRITE, MADV_COLD],,,
- [[#include ]])
-
-AC_CHECK_TYPES([__float80],, [
- if test "$machine" != "i386" -a "$machine" != "x86_64"; then
- USE_SOFTFLOAT=1
- AC_SUBST(USE_SOFTFLOAT)
- fi
- ]
+AC_CHECK_DECLS([F_OFD_SETLK],, [
+ AC_MSG_ERROR([F_OFD_SETLK not available, your glibc is too old])
+ ], [[#include ]]
)
-AC_CHECK_FUNC(strlcpy,, [
- PKG_CHECK_MODULES([LIBBSD], [libbsd], [
+PKG_CHECK_MODULES([LIBBSD], [libbsd], [
dnl re-check for proper arch (multilib)
AC_CHECK_LIB(bsd, strlcpy,, [AC_MSG_ERROR(libbsd not found)])
+ ], [
+ dnl extra check because on bsd these functions are available w/o lib
+ AC_CHECK_FUNC(strlcpy,, [AC_MSG_ERROR(libbsd not found)])
]
-)])
+)
dnl Here is where we do our stuff
AC_ARG_WITH(confdir, [AS_HELP_STRING([--with-confdir=dir],
[directory suffix under sysconfdir. default: dosemu])],
confdir="$withval", confdir="dosemu")
+AC_ARG_WITH(plugindir, [AS_HELP_STRING([--with-plugindir=dir],
+ [directory for dosemu plugins. default: ${libdir}/dosemu])],
+ plugindir="$withval", plugindir="${libdir}/dosemu")
AC_ARG_WITH(x11fontdir, [AS_HELP_STRING([--with-x11fontdir=dir],
[directory to install the VGA X11 font. default: ${datadir}/dosemu/Xfonts])],
x11fontdir="$withval", x11fontdir="${datadir}/dosemu/Xfonts")
@@ -288,10 +193,6 @@ AC_ARG_WITH(fdtarball, [AS_HELP_STRING([--with-fdtarball=file],
[path to FreeDOS tarball])],
fdtarball="$withval")
-# Hard-code this. It is evaluated at run-time as ../lib/dosemu,
-# so we do not use libdir here (which can be lib64 or something unrelated)
-plugindir="\${prefix}/lib/dosemu"
-
AC_SUBST(confdir)
AC_SUBST(plugindir)
AC_SUBST(x11fontdir)
@@ -301,14 +202,20 @@ AC_SUBST(fdtarball)
AC_DEFINE_DIR([SYSCONFDIR], [sysconfdir], [ System config dir ])
AC_DEFINE_DIR([CONFSUBDIR], [confdir], [ dosemu-specific config subdir ])
-AC_DEFINE_DIR([PREFIX], [prefix], [ prefix ])
+AC_DEFINE_DIR([DOSEMUPLUGINDIR], [plugindir], [ Directory for dosemu plugins ])
+AC_DEFINE_DIR([DATADIR], [datadir], [ Where data are placed to ])
AC_DEFINE_DIR([LIBEXECDIR], [libexecdir], [ Where extra executables are placed to ])
AC_DEFINE_DIR([SYSTEM_XFONTS_PATH], [x11fontdir], [ Directory for x11 fonts ])
+CONFIG_HOST='linux'
+AC_SUBST(CONFIG_HOST)
+
+machine=`"$CC" -dumpmachine | cut -d- -f1`
+
DOSEMU_CPPFLAGS="$DOSEMU_CPPFLAGS -imacros config.hh"
DOSEMU_CFLAGS="$DOSEMU_CFLAGS -Wall -Wstrict-prototypes -Wmissing-declarations \
-Wnested-externs -fms-extensions -pthread \
--Wno-unused-result -Wcast-qual -Wwrite-strings -Wstrict-aliasing=2 -Wundef"
+-Wno-unused-result -Wcast-qual -Wwrite-strings"
AX_CHECK_COMPILE_FLAG([-Waddress-of-packed-member],
[DOSEMU_CFLAGS="$DOSEMU_CFLAGS -Wno-address-of-packed-member"],, [-Werror])
AX_CHECK_COMPILE_FLAG([-Wstring-plus-int],
@@ -322,7 +229,7 @@ AC_ARG_ENABLE(dlplugins,
if test "$enable_dlplugins" != "no"; then
AC_MSG_NOTICE(Using dynamically loaded plugins...)
AC_DEFINE(USE_DL_PLUGINS)
- USE_DL_PLUGINS=1
+ USE_DL_PLUGINS="USE_DL_PLUGINS=1"
AC_SUBST(USE_DL_PLUGINS)
DOSBIN_LDFLAGS="-rdynamic"
AC_SUBST(DOSBIN_LDFLAGS)
@@ -355,45 +262,14 @@ AX_RESTORE_FLAGS([attr_check])
AC_DEFINE_UNQUOTED(SIG_PROTO_PFX, $SIG_PROTO_PFX)
dnl Check whether we have pthreads and whether to use it
-AC_CHECK_LIB(pthread, pthread_create,, [
- dnl see if the func is provided nevertheless (not needing -lpthread)
- AC_CHECK_FUNC(pthread_create,, [
+AC_CHECK_LIB(pthread, pthread_create,,[
AC_MSG_ERROR([No libpthread found, please install glibc-devel package])
]
-)])
-AC_CHECK_FUNC(pthread_cancel,, [
- AC_CHECK_HEADERS([bthread.h],, [
- AC_MSG_ERROR([pthread_cancel() missing, install libbthread])
- ])
-])
-AC_CHECK_LIB(bthread, pthread_cancel)
-
+)
AC_CHECK_FUNCS([pthread_getname_np pthread_setname_np])
-AC_CHECK_FUNCS([pthread_attr_setsigmask_np pthread_setattr_default_np])
-AC_CHECK_HEADER([wordexp.h],, [
- AC_MSG_ERROR([wordexp.h missing, install libwordexp])
-])
-AC_CHECK_LIB(wordexp, wordexp)
-
-AC_CHECK_HEADERS([scsi/sg.h linux/cdrom.h sys/io.h])
+AC_CHECK_HEADERS([sys/kd.h scsi/sg.h linux/cdrom.h])
AC_CHECK_HEADERS([netipx/ipx.h linux/ipx.h netpacket/packet.h])
-AC_CHECK_HEADERS([asm/ucontext.h],,, [
- #include
- #include
-])
-AC_CHECK_HEADERS([ucontext.h],, [
- AS_UNSET([ac_cv_header_ucontext_h])
- AC_CHECK_HEADER([ucontext.h],
- AC_DEFINE([_XOPEN_SOURCE], [500], [Use X/Open 5 with POSIX 1995]),
- AC_MSG_ERROR([Can't use ucontext.h]), [
- #define _XOPEN_SOURCE 500
-])])
-AC_CHECK_HEADERS([linux/signal.h],,, [#include ])
-AC_CHECK_HEADERS([sys/soundcard.h], [
- USE_OSS=1
- AC_SUBST(USE_OSS)
-])
DATE_FMT="%F %T %z"
test -n "$SOURCE_DATE_EPOCH" || SOURCE_DATE_EPOCH=`date +%s`
CONFIG_TIME=`date -u -d "@$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || date -u "+$DATE_FMT"`
@@ -477,9 +353,9 @@ AC_ARG_ENABLE(system_wa,
AS_HELP_STRING([--disable-system-wa], [compile without system-specific
work-arounds (mostly for linux kernel) that are not needed on this system]))
AS_IF([test "x$enable_system_wa" = "xno"], [
- AC_MSG_NOTICE(Disabling system-specific work-arounds)
+ AC_MSG_NOTICE(Disasbling system-specific work-arounds)
AC_DEFINE(DISABLE_SYSTEM_WA)
- AS_IF([test -z "$WARN_OUTDATED_WA" -a -n "$WARN_UNDISABLED_WA"], [
+ AS_IF([test -z "$WARN_OUTDATED_WA" -a -z "$NOWARN_UNDISABLED_WA"], [
AC_DEFINE(WARN_UNDISABLED_WA)])
])
AS_IF([test -n "$WARN_OUTDATED_WA"], [
@@ -491,7 +367,7 @@ dnl Do compilation for GDB
HAVE_LIBBFD=0
AC_ARG_ENABLE(debug,
AS_HELP_STRING([--enable-debug], [compile with debug info]))
-if test "$enable_debug" != "no"; then
+if test "$enable_debug" = "yes"; then
AC_MSG_NOTICE(Compiling with debug info...)
DOSEMU_CFLAGS="$DOSEMU_CFLAGS -ggdb3"
if test "$use_clang" = "yes" ; then
@@ -508,6 +384,7 @@ if test "$enable_debug" != "no"; then
if test "$ac_cv_lib_bfd_bfd_init" = "yes"; then
HAVE_LIBBFD=1
AC_DEFINE(HAVE_LIBBFD)
+ AC_DEFINE(HAVE_BACKTRACE)
fi
])
if test "$HAVE_LIBBFD" = "1"; then
@@ -521,7 +398,7 @@ if test "$enable_debug" != "no"; then
if test "$HAVE_LIBBFD" != "1"; then
DOSEMU_LDFLAGS="$DOSEMU_LDFLAGS -rdynamic"
fi
- AC_CHECK_FUNCS([backtrace backtrace_symbols])
+ AC_DEFINE(HAVE_BACKTRACE)
])
else
AC_MSG_NOTICE(Compiling without debug info...)
@@ -531,8 +408,6 @@ AC_ARG_ENABLE(profile,
AS_HELP_STRING([--enable-profile], [compile with profile info]))
AC_ARG_ENABLE(asan, [AS_HELP_STRING(--enable-asan, [enable address sanitizer])])
-AC_ARG_ENABLE(lsan, [AS_HELP_STRING(--enable-lsan, [enable leak sanitizer])])
-AC_ARG_ENABLE(tsan, [AS_HELP_STRING(--enable-tsan, [enable thread sanitizer])])
AC_ARG_ENABLE(ubsan, [AS_HELP_STRING(--enable-ubsan, [enable UB sanitizer])])
AC_SUBST(OPTIONALSUBDIRS)
@@ -546,21 +421,29 @@ dnl CPU emulator
AC_ARG_ENABLE(cpuemu, [AS_HELP_STRING([--disable-cpuemu],
[do NOT compile with optional x86 emulation code])])
if test "$enable_cpuemu" != "no"; then
- AC_MSG_NOTICE(Compiling with x86 emulator)
- AC_DEFINE(X86_EMULATOR)
- X86_EMULATOR=1
- AC_SUBST(X86_EMULATOR)
-
- if test "$machine" = "i386" -o "$machine" = "x86_64"; then
- AC_ARG_ENABLE(cpuemu_jit, [AS_HELP_STRING([--disable-cpuemu-jit],
- [do NOT compile with optional x86 JIT])])
- if test "$enable_cpuemu_jit" != "no"; then
- AC_MSG_NOTICE(Compiling with x86 JIT)
- AC_DEFINE(X86_JIT)
- X86_JIT=1
- AC_SUBST(X86_JIT)
- fi
- fi
+ AC_MSG_CHECKING([for __attribute__((force_align_arg_pointer))])
+ AX_SAVE_FLAGS([attr_check2])
+ CFLAGS="-Wall -Werror"
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+ void foo(void);
+ __attribute__((force_align_arg_pointer))
+ void foo(void)
+ {
+ }
+ ])],
+ [
+ AC_MSG_RESULT([supported])
+ AC_MSG_NOTICE(Compiling with x86 emulator)
+ AC_DEFINE_UNQUOTED(X86_EMULATOR)
+ X86_EMULATOR="X86_EMULATOR=1"
+ AC_SUBST(X86_EMULATOR)
+ ],
+ [
+ AC_MSG_RESULT([unsupported])
+ AC_MSG_WARN(Compiling without x86 emulator)
+ ]
+ )
+ AX_RESTORE_FLAGS([attr_check2])
fi
AC_ARG_WITH(target_cpu, [AS_HELP_STRING([--with-target-cpu=CPU],
@@ -573,72 +456,25 @@ else
target_cpu=$with_target_cpu
fi
-if test "$machine" = "i386" -o "$with_target_bits" = "32" -o \
- "$enable_profile" = "yes"; then
+if test "$machine" = "x86_64" -a "$with_target_bits" != "32" -a \
+ "$enable_profile" != "yes"; then
+ AC_MSG_NOTICE(Compiling as PIE for $machine...)
+ DOSEMU_CFLAGS="$DOSEMU_CFLAGS -fpie"
+ DOSEMU_LDFLAGS="$DOSEMU_LDFLAGS -pie"
+else
AC_MSG_NOTICE(Compiling as non-PIE...)
DOSEMU_CFLAGS="$DOSEMU_CFLAGS -fno-pie"
AX_CHECK_COMPILE_FLAG([-no-pie],
[DOSEMU_LDFLAGS="$DOSEMU_LDFLAGS -no-pie"])
-else
- AC_MSG_NOTICE(Compiling as PIE for $machine...)
- DOSEMU_CFLAGS="$DOSEMU_CFLAGS -fpie"
- DOSEMU_LDFLAGS="$DOSEMU_LDFLAGS -pie"
-fi
-
-if test "$CONFIG_HOST" = "Linux"; then
- if test "$machine" = "i386" -o "$machine" = "x86_64"; then
- AC_ARG_ENABLE(dnative, [AS_HELP_STRING([--disable-dnative],
- [do NOT compile with native DPMI support])])
- if test "$enable_dnative" != "no"; then
- AC_MSG_NOTICE([Enabling native DPMI support...])
- AC_DEFINE(DNATIVE)
- DNATIVE=1
- AC_SUBST(DNATIVE)
- fi
-
- AC_DEFINE(USE_KVM)
- KVM=1
- AC_SUBST(KVM)
- fi
-fi
-
-if test "$CONFIG_HOST" = "Darwin"; then
- DOSEMU_LDFLAGS="$DOSEMU_LDFLAGS -Wl,-undefined,dynamic_lookup"
-fi
-
-AC_ARG_ENABLE(mcontext,
- AS_HELP_STRING([--disable-mcontext], [disable fast context switch]))
-if test "$enable_mcontext" != "no"; then
- AC_MSG_NOTICE([Enabling fast context switching...])
- AC_DEFINE(MCONTEXT)
- MCONTEXT=1
- AC_SUBST(MCONTEXT)
fi
if test "$enable_asan" = "yes"; then
AX_CHECK_LINK_FLAG([-fsanitize=address], [
DOSEMU_CFLAGS="$DOSEMU_CFLAGS -fsanitize=address"
- # working around this bug:
- # https://github.com/google/sanitizers/issues/934
- # Linking to libstdc++ seems to be the cure.
- LDFLAGS="$LDFLAGS -fsanitize=address -lstdc++"
+ LDFLAGS="$LDFLAGS -fsanitize=address"
AC_MSG_NOTICE(enabling address sanitizer)
])
fi
-if test "$enable_lsan" = "yes"; then
- AX_CHECK_LINK_FLAG([-fsanitize=leak], [
- DOSEMU_CFLAGS="$DOSEMU_CFLAGS -fsanitize=leak"
- LDFLAGS="$LDFLAGS -fsanitize=leak"
- AC_MSG_NOTICE(enabling leak sanitizer)
- ])
-fi
-if test "$enable_tsan" = "yes"; then
- AX_CHECK_LINK_FLAG([-fsanitize=thread], [
- DOSEMU_CFLAGS="$DOSEMU_CFLAGS -fsanitize=thread"
- LDFLAGS="$LDFLAGS -fsanitize=thread"
- AC_MSG_NOTICE(enabling thread sanitizer)
- ])
-fi
if test "$enable_ubsan" = "yes"; then
AX_CHECK_LINK_FLAG([-fsanitize=undefined], [
DOSEMU_CFLAGS="$DOSEMU_CFLAGS -fsanitize=undefined -fno-sanitize=alignment"
@@ -728,9 +564,6 @@ fi
AH_TEMPLATE([HAVE_ASSIGNABLE_STDERR],
[ Define if stderr is not const ])
-AH_TEMPLATE([HAVE_OPTRESET],
-[ Define if optreset is available ])
-
AH_TEMPLATE([CONFIG_HOST],
[ Define the host for which Dosemu is configured ])
@@ -758,21 +591,12 @@ AH_TEMPLATE(HAVE_EXECINFO,
AH_TEMPLATE([USE_DL_PLUGINS],
[ DEFINE this, if you want dynamically loaded plugins ])
+AH_TEMPLATE([HAVE_BACKTRACE],
+[ Define this for backtrace() functionality ])
+
AH_TEMPLATE([X86_EMULATOR],
[ Define this to use the X86 CPU emulator ])
-AH_TEMPLATE([X86_JIT],
-[ Define this to use the X86 JIT ])
-
-AH_TEMPLATE([DNATIVE],
-[ Define this to enable native DPMI back-end ])
-
-AH_TEMPLATE([USE_KVM],
-[ Define this to enable kvm support ])
-
-AH_TEMPLATE([MCONTEXT],
-[ Define this to enable libmcontext use ])
-
AH_TEMPLATE([DISABLE_SYSTEM_WA],
[ Define this to disable system-specific work-arounds that are
unneeded on your system ])
diff --git a/debian/control b/debian/control
index d850d7e..f35af4b 100644
--- a/debian/control
+++ b/debian/control
@@ -5,15 +5,19 @@ Maintainer: Stas Sergeev
Standards-Version: 4.1.5
Build-Depends:
git (>= 2.0),
+ bash,
autoconf,
autotools-dev,
automake,
make,
+ coreutils,
linuxdoc-tools,
bison,
debhelper (>= 9~),
flex,
gawk,
+ sed,
+ findutils,
libx11-dev,
libxext-dev,
libslang2-dev,
@@ -22,6 +26,7 @@ Build-Depends:
libasound2-dev,
libsdl2-dev,
libsdl2-ttf-dev,
+ libsdl2-image-dev,
libfontconfig1-dev,
ladspa-sdk,
libfluidsynth-dev,
@@ -31,25 +36,22 @@ Build-Depends:
libbsd-dev,
libreadline-dev,
libjson-c-dev,
- libb64-dev,
binutils-dev,
pkg-config,
- fdpp-dev,
- dj64-dev,
- clang,
- binutils-i686-linux-gnu
+ fdpp-dev
Homepage: https://github.com/dosemu2/dosemu2
Package: dosemu2
Replaces: dosemu
Conflicts: dosemu
-Architecture: any
+Architecture: i386 amd64
Depends:
${misc:Depends},
${shlibs:Depends},
- fdpp,
- dj64,
- comcom64
+ udev (>= 240),
+ bash,
+ coreutils,
+ comcom32 (>= 0.1~alpha2)
Recommends:${shlibs-:Recommends}, ladspa-sdk, gdb, kbd, fluid-soundfont-gm,
install-freedos
Suggests: vde2, valgrind, install-otherdos
diff --git a/debian/docs b/debian/docs
index d7b4711..149589d 100644
--- a/debian/docs
+++ b/debian/docs
@@ -2,6 +2,7 @@ BUGS
CONTRIBUTING.md
COPYING
COPYING.DOSEMU
+INSTALL
NEWS.md
README.md
THANKS
diff --git a/debian/rules b/debian/rules
index 34785c0..5f12b5f 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,20 +1,19 @@
#!/usr/bin/make -f
export DH_ALWAYS_EXCLUDE=fonts.dir:fonts.alias
-export CC=clang
%:
dh $@ --parallel --builddirectory=build
override_dh_autoreconf:
- ./autogen.sh
+ dh_autoreconf autoreconf -- -f -i -I m4
override_dh_auto_configure:
dh_auto_configure -O--parallel -- \
+ --enable-debug --disable-xbacktrace \
+ --with-plugindir=/usr/lib/dosemu \
--with-x11fontdir=/usr/share/fonts/X11/misc
override_dh_shlibdeps:
dh_shlibdeps -X.so
dh_shlibdeps -- -dRecommends -pshlibs-
-
-override_dh_dwz:
diff --git a/default-configure b/default-configure
index b376f3d..4abe12a 100755
--- a/default-configure
+++ b/default-configure
@@ -23,7 +23,7 @@ if [ ! -f $CONF_FILE ]; then
fi
CONF=`cat $CONF_FILE`
-CONF=`printf "$CONF"| sed '/^config {/d' | sed '/^}/d' | tr '\n' ' ' `
+CONF=`echo -n "$CONF"| sed '/^config {/d' | sed '/^}/d' | tr '\n' ' ' `
SUFFIX=""
while [ "$#" != "0" ]; do
@@ -60,12 +60,6 @@ while [ "$1" != "" ]; do
asan)
if [ "$2" = "on" ]; then STRING="$STRING --enable-asan"; fi
;;
- lsan)
- if [ "$2" = "on" ]; then STRING="$STRING --enable-lsan"; fi
- ;;
- tsan)
- if [ "$2" = "on" ]; then STRING="$STRING --enable-tsan"; fi
- ;;
ubsan)
if [ "$2" = "on" ]; then STRING="$STRING --enable-ubsan"; fi
;;
@@ -135,29 +129,13 @@ while [ "$1" != "" ]; do
shift; shift;
done
-[ -f "$srcdir"/install-sh ] || "$srcdir"/autogen.sh || exit $?
-if [ -z "$MAKE" ]; then
- if [ `uname -s` = "FreeBSD" ]; then
- MAKE=gmake
- else
- MAKE=make
- fi
-fi
-if [ `uname -s` = "FreeBSD" ]; then
- export CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
- export LDFLAGS="${LDFLAGS} -L/usr/local/lib"
-fi
-${MAKE} "$srcdir"/configure
+[ -f "$srcdir"/configure ] || "$srcdir"/autogen.sh || exit $?
+make "$srcdir"/configure
STRING="$STRING --enable-plugins=$PLUGIN,$EXTRA_PLUGINS"
if [ -n "$FDPP_STR" ]; then
FDPP_STR=`echo $FDPP_STR | sed 's/^ *//'`
STRING="$STRING --with-plugin-options=fdpp,\"$FDPP_STR\""
fi
-
-if [ -z "$CC" ] && which ccache; then
- echo "Enabling ccache use"
- export CC="ccache cc"
-fi
echo exec "$srcdir"/configure $STRING $SUFFIX
eval exec "$srcdir"/configure $STRING $SUFFIX
diff --git a/doc/README.html b/doc/README.html
index 1512168..f9889ce 100644
--- a/doc/README.html
+++ b/doc/README.html
@@ -4343,14 +4343,15 @@ NAME="AEN650"
>In Windows, the mouse cursor is not always in sync with the native X
mouse cursor. This problem can be easily avoided by enabling mouse grab.
-There also exist an
+There also exist an alternative mouse driver specially written to
+work in ungrabbed mode:
alternative mouse driver
-specially written to work in ungrabbed mode under many emulators or
-on a real machine.
https://github.com/stsp/win31-mouse-driver/tree/master/out.
+This driver is not limited to use with dosemu2: it can be used with
+any other emulator and under bare-metal machine.
in your dosemu.conf or .dosemurc.
Solution: set
-
-in your dosemu.conf or .dosemurc.
-The only "explanation" we can provide, is a conspiracy theory that
-prehistoric is trying to slander third-party DOSes that put LoL/SDA
-to UMB.