Commit Graph

687 Commits

Author SHA1 Message Date
Volker Ruppert
09778e275d Updated version number after release. 2024-03-10 09:45:03 +01:00
Volker Ruppert
9177c93e4e Preparing Bochs release 2.8. 2024-03-10 07:59:37 +01:00
Volker Ruppert
ead3c2e3f6 Renamed flag VER_SVN to VER_DEV and related changes. 2024-03-09 20:18:25 +01:00
Stanislav Shwartsman
cc87b23738 regen configure after AMX added 2024-01-10 20:23:55 +02:00
Vort
5147c20eaa
Enable static library linking for MinGW builds (#152)
This change allows to build Windows binaries without dependencies on
toolchain-specific libraries (like `libc++.dll`).
It allows to perform version updates by copying of single `bochs.exe`,
without the need for searching and distribution of linked DLLs.

---------

Co-authored-by: Volker Ruppert <Volker.Ruppert@t-online.de>
2023-12-03 09:00:23 +02:00
Volker Ruppert
af47384d96 Regenerated configure script and updated CHANGES. 2023-12-02 15:13:39 +01:00
Stanislav Shwartsman
ffc722f4e8
Porting #SF patch #565 Real Time Clock /CMOS fix (#4)
by Michele Giacomone

Detailed description:

  -Observed issues

   Due to some limitations only dates between 1980 and 2038 can be
   used in a reliable way.
   Also, bochs incorrectly assumes a linear correspondence between
   the data returned by the <time.h> functions localtime() and
   mktime(), and isn't setting the latter properly.
   Bochs keeps its internal time value dependent to these functions
   after setup, assuming that their internal settings won't change
   on the go - which is not the case.
   In my OS, and in my timezone, this leads to incorrect startup values
   for 5 months each year and unreliable values if the simulation is
   kept going for a long time. (a feedback between localtime() and
   mktime() is created which keeps shifting back the time)
   Also, the RTC simulation is not realistic since the clock fixes
   itself across DST changes, without updating any DST related flag,
   a behavior that no guest OS expects.

  -Proposed fix

   This is implemented in such way that no bochs' previous behavior
   is changed, a part from the broken ones, with legacy in mind
   == the user can keep using bochs exactly as before knowing nothing
      of this patch

   +Make the internal s.timeval variable a Bit64s, so it can fit all
    values that the cmos can correctly represent, reported below:
    MIN     setting  -62167219200 =>  0000/01/01 SAT  0:00:00
    MAX BCD setting  253402300799 =>  9999/12/31 FRI 23:59:59
    MAX BIN setting  745690751999 => 25599/12/31 FRI 23:59:59
    And then fix each reference to these so it can handle such values
    And make bochs correctly wrap around for under/overflows, so that
    only the most significant bits of the century are lost.

   +Do the same thing to the bochs time0 parameter, so all the above
    values can be chosen at startup (despite being now legal values,
    1 and 2 will still be treated as "local" and "utc"). Note that
    normally only BCD settings are valid since bochs' CMOS defaults
    to such operating mode - the only way to use the binary range
    is by loading a cmos memory map.

   +Make the internal s.timeval variable independent from external
    factors. This means providing a small set of time handling
    functions, contained in "iodev/utctime.h", which must work in
    any environment in which bochs compiles, accessing no external
    resource. This also means that after startup, s.timeval will only
    be changed internally, and no call to the OS time functions will
    be made.

   +Make the internal s.timeval variable timezone independent, to
    have a linear correlation between its values and valid CMOS
    settings. To make it easier, s.timeval is gonna be treated as
    if the current timezone was UTC: so,
     - if the user selects UTC as time0, s.timeval will become current
       time(NULL)
     - if the user selects localtime, s.timeval will be computed as
       the value which will display the same broken down time as
       localtime(&now)
     - if the user inputs a time formatted string the proper s.timeval
       to displayed will be easily calculated,
     - if the user inputs a starting time value, s.timeval will be
       computed as the value which will display the same broken down
       time as localtime(&user_input) to ensure the same operation as
       before.
    A "tz=utc" is displayed when bochs prints out the current time
    value, to warn users about the difference in meaning between the
    internally kept time value and the value they can set through
    the "time0=" parameter. This might be changed to communicate
    instead the time value they can input to get the same setting,
    but performing such calculation (except for the startup time)
    suffers from all the mktime()/localtime() problems listed above
    so I did not do it.
    The range of "time0" is automatically adjusted so all users in
    all time zones can set any legal value despite "time0=" having a
    local meaning.

  A thorough explanation of what I did and why can be found in the
  "iodev/utctime.h" library header.

---------

Co-authored-by: Stanislav Shwartsman <sshwarts@users.sourceforge.net>
Co-authored-by: Volker Ruppert <Volker.Ruppert@t-online.de>
2023-12-01 22:55:35 +01:00
Stanislav Shwartsman
280303d76c
initial code for UINTR implementation (#138)
First step into implementing UINTR - User Level Interrupts ISA extension
To be continued

---------

Co-authored-by: Stanislav Shwartsman <sshwarts@users.sourceforge.net>
2023-11-25 16:43:47 +02:00
Volker Ruppert
04941fd511 Added support for cross-compiling for win64 with plugins enabled. 2023-11-12 20:15:51 +01:00
Stanislav Shwartsman
fe53752ddf
rename USE_RAW_SERIAL -> BX_USE_RAW_SERIAL (#70) 2023-09-04 20:21:37 +03:00
Florian Weimer
10c5ff3f82 configure: Improve compatibility with strict(er) C99 compilers
C99 removed implicit function declarations from the language.  All
functions must be declared before they can be called.  There are a
few places in the configure script where the exit function is called
without including <stdlib.h>.  Instead, return from the main
function, avoiding the exit declaration issue.
2022-11-27 23:12:58 +01:00
Stanislav Shwartsman
cee5e6de4b update configure.in for autoconf 2.71
it also required configure.in to be renamed to configure.ac
2022-08-26 21:20:51 +03:00
Volker Ruppert
d684c5cd57 Added missing updates after release. 2021-08-08 16:03:16 +00:00
Volker Ruppert
c9c3416098 Regenerated configure script. 2021-08-01 21:45:35 +00:00
Volker Ruppert
50b0ab2895 Regenerated configure script and recompiled BIOS images for release. 2021-08-01 08:12:28 +00:00
Volker Ruppert
bf8dda4e06 Regenerated configure script. 2021-07-12 19:06:38 +00:00
Volker Ruppert
2eca0db8fd Fixed setting up BOCHS_BITS symbol (currently only used by NSIS installer). 2021-06-20 13:37:23 +00:00
Volker Ruppert
06894e5b5e Updates after pre-release, partly updated Bochs URL usage. 2021-06-13 08:02:33 +00:00
Volker Ruppert
426408cca6 Regenerated configure script for pre-release. 2021-06-13 05:16:36 +00:00
Volker Ruppert
9426ba987b Converted the win32config module to a plugin (using PLUGTYPE_CORE for now). 2021-03-26 19:12:09 +00:00
Volker Ruppert
de0a844b75 Regenerated configure script. 2021-03-23 10:06:13 +00:00
Volker Ruppert
4966843c90 Converted the textconfig module into a plugin, using PLUGTYPE_CORE for now.
It has been compiled and tested on Linux, with MinGW/MSYS and MSVC nmake.
TODO: Check whether or not the config interface choice "win32config" can be
a plugin, too. Possibly add a new plugin type for config interfaces.
2021-03-18 19:50:12 +00:00
Volker Ruppert
1f583e6e7f Regenerated configure script. 2021-02-09 08:24:20 +00:00
Volker Ruppert
81ecfcb10f Improved cross compiling support on Linux for Windows.
- In case of cross compiling of the win32 gui, use the environment variable
  WINDRES for the name of the resource compiler.
- Added example shortcut script for cross compiling on Linux for Windows.
2021-01-17 10:54:18 +00:00
Volker Ruppert
2ee6a0b0bf Regenerated configure script. 2021-01-02 20:50:37 +00:00
Stanislav Shwartsman
154c06b11b regen configure script 2021-01-02 13:48:17 +00:00
Volker Ruppert
c99bd49f34 Some work on the hdimage plugin support.
- Renamed vpc-img.* files to vpc.* and removed hack for image mode name conversion.
- Added suffix "_img" to all disk image mode plugin base names. This is important
  for the future implementation of a plugin enumeration at Bochs startup.
2020-12-30 17:56:27 +00:00
Volker Ruppert
b880fb2975 Rewrite of the hdimage plugin code.
- Common hdimage code, lowlevel cdrom code and the classes for the Bochs "own"
  image modes (e.g. flat, sparse, growing") are now a part of the Bochs core.
- All classes for image modes present in separate files are now built as
  plugins with the same self register mechanism as network, sound and usb
  modules. Defined new plugin type PLUGTYPE_HDIMAGE.
- Temporarily disabled the base image format detection of the undoable/volatile
  modes for the "external" modes in the plugins case.
- TODO: Bochs should know about all of the available plugins and their
  capabilities right after startup, but before the configuration stage.
2020-12-27 17:26:33 +00:00
Volker Ruppert
aaf8c9d4e4 Removed "svga" display library designed for the obsolete Linux SVGALib.
The latest release is from 2001 and it will not work on modern Linux systems.
Parts of the SVGALib code have been moved to the Linux kernel and the X11 and
SDL libraries are using it as a video driver.
2020-11-25 07:56:32 +00:00
Volker Ruppert
3f13ea21ca Disable the gui debugger if GTK+ is required but not found. 2020-09-03 15:19:37 +00:00
Volker Ruppert
b521611c68 Removed support for the 'tap' networking module from configure script.
The ethertap driver has been declared obsolete a long time ago and it has been
removed in Linux kernel version 3.x. The successor service TUN/TAP is supported
by Bochs. The source file and the BX_NETMOD_TAP symbol appearance may be removed
before next release.
2020-06-12 07:23:15 +00:00
Volker Ruppert
a1b44c72b8 In the plugins case, don't use vncsrv link options for bochs.exe.
Removed unused GUI_LINK_OPTS from gui Makefile.
2020-02-07 23:32:27 +00:00
Volker Ruppert
a6329d4a3e Some fixes in the build system.
- Fixed target name for 32-bit MSVC
- Don't probe for audio conversion libraries when configuring for MSVC
2020-02-01 18:05:54 +00:00
Volker Ruppert
7dd471210f Configure script fixes for the vncsrv gui.
- Added LibVNCServer detection in Cygwin when using --with-all-libs
- If pkg-config is installed, use it to set up variables for LibVNCServer
2020-02-01 15:07:56 +00:00
Volker Ruppert
260d1f68d4 Some fixes for configuration and compilation with MSYS2.
- Added case for "*-msys" to the existing "*.mingw*" cases.
- Fixed $JADE value in case the program is not installed.
- Fixed RedirectIOToConsole() function for MSYS with 64-bit gcc 9.2.
2020-01-31 16:43:25 +00:00
Volker Ruppert
55ee6a4b85 Regenerated after docbook changes. 2020-01-27 18:23:01 +00:00
Volker Ruppert
ef88b43248 Configure script regenerated after release 2020-01-05 12:59:23 +00:00
Volker Ruppert
08928b8b0c Regenerated for release 2020-01-05 07:37:34 +00:00
Volker Ruppert
2d950105cb Fixed retrieving release timestamp from README file when compiling from outside
of the source tree.
2020-01-02 17:48:18 +00:00
Volker Ruppert
58ebb5819f Releases (SVN flaG 0) now use the timestamp from README file instead of the
compilation time of main.cc for console and log file output.
2020-01-02 16:19:02 +00:00
Volker Ruppert
3146b45f59 Regenerated configure script 2020-01-01 19:03:42 +00:00
Volker Ruppert
b6c1a4a919 Regenerated configure script and recompiled BIOS images. 2019-12-30 13:18:39 +00:00
Volker Ruppert
70691fa532 Some fixes in the build system based on Debian patches for 2.6.10.
- The pthread library is not needed at all by the Windows ports.
- Link the ALSA and SDL sound modules only with required library.
- Fixed curses cross-compilation issue found by Debian.
- slirp/cksum.cc: NOTE for Debian.
2019-12-26 19:17:47 +00:00
Stanislav Shwartsman
b523a202f4 update configure script 2019-12-20 07:46:17 +00:00
Volker Ruppert
f1cd051748 Added 64-bit support to the NSIS installer script. 2019-12-13 22:25:50 +00:00
Volker Ruppert
b950a2e192 Removed legacy subsystem version number (was required for XP compatiblity). 2019-12-01 17:32:40 +00:00
Volker Ruppert
eb37ec33b1 Updates after release (version number, release tag, minor devel doc update) 2019-12-01 13:30:34 +00:00
Volker Ruppert
26d79038da Regenerated for release. 2019-12-01 07:59:22 +00:00
Volker Ruppert
16d9d04ee7 Changed the name of the 3rd part of the Bochs version number from "patch" to "revision". 2019-11-30 12:20:00 +00:00
Volker Ruppert
f206839636 Some work on the Bochs version number strings.
- Get rid of VER_STRING since it's the same as VERSION
- Add new defines VER_MAJOR, VER_MINOR, VER_PATCH and VER_SVN and use them for
  the version number on Windows.
- TODO: Add the capability to detect installed version to the Windows installer.
2019-11-14 10:34:39 +00:00