OS/2 build instructions

The OS/2 port is not yet completed. These instructions are here for those who wish to help out.

Prerequisites on OS/2

Building VirtualBox

  1. Load the gcc environment (gccenv.cmd).
  2. Make sure the environment variables USER or USERNAME is set to something sensible.
  3. Change to the root directory of the sources and execute
  5. Create symbolic links to the kLdr and os2ddk:
    kmk_ln -s <libc trunk>/libc/include/os2ddk src/VBox/Runtime/include/os2ddk
    kmk_ln -s <libc trunk>/kLdr src/VBox/Runtime/kLdr
  6. To build type
    The default is to a release build, should you wish to do a debug or profile build add BUILD_TYPE=debug or BUILD_TYPE=profile as argument to kmk or set it as an environment variable.

Running VirtualBox

Since this is work in progress there are just testcases and a VBoxBFE with display problems on some graphics cards at this point.

You can either run it without loading the driver and therefore without rawmode enabled by executing set VBOX_SUPLIB_FAKE=fake on the command line. The alternative is to copy VBoxDrv.sys from out\os2.x86\release\bin to your boot drive and add a DEVICE=c:\VBoxDrv.sys statement to your config.sys.

If you like to see the VBoxBFE SDL window and immediately hit an assertion, do this:

  1. Change directory to out\os2.x86\release\bin
  2. Add this directory to the BEGINLIBPATH variable (full path, remember).
  3. Execute .\VBoxBFE.exe -m 64 and you an BIOS error saying it can't read the boot drive. If you happen to have an knoppix iso or simliar around try boot it using the -cdrom and -boot d options.

The SDL patch

diff -rwu SDL/include/SDL_audio.h D:/coding/vbox/svn/trunk/tools/os2.x86/libsdl/v1.2.10-20060602/SDL/include/SDL_audio.h
--- SDL/include/SDL_audio.h	Mon May  1 03:03:00 2006
+++ D:/coding/vbox/svn/trunk/tools/os2.x86/libsdl/v1.2.10-20060602/SDL/include/SDL_audio.h	Sat Jan 13 06:47:04 2007
@@ -76,6 +76,8 @@
+/* A filter callback */
+typedef void (SDLCALL * SDL_AudioCVTFilterCall)(struct SDL_AudioCVT *cvt, Uint16 format);
 /* A structure to hold a set of audio conversion filters and buffers */
 typedef struct SDL_AudioCVT {
@@ -88,7 +90,7 @@
 	int    len_cvt;			/* Length of converted audio buffer */
 	int    len_mult;		/* buffer must be len*len_mult big */
 	double len_ratio; 	/* Given len, final size is len*len_ratio */
-	void (SDLCALL *filters[10])(struct SDL_AudioCVT *cvt, Uint16 format);
+	SDL_AudioCVTFilterCall filters[10];
 	int filter_index;		/* Current audio conversion function */
 } SDL_AudioCVT;
diff -rwu SDL/include/SDL_config_os2.h D:/coding/vbox/svn/trunk/tools/os2.x86/libsdl/v1.2.10-20060602/SDL/include/SDL_config_os2.h
--- SDL/include/SDL_config_os2.h	Mon May  1 03:03:00 2006
+++ D:/coding/vbox/svn/trunk/tools/os2.x86/libsdl/v1.2.10-20060602/SDL/include/SDL_config_os2.h	Sat Jan 13 06:44:38 2007
@@ -27,6 +27,9 @@
 /* This is a set of defines to configure the SDL features */
+#ifdef __GNUC__
+# include <stdint.h>
 typedef signed char         int8_t;
 typedef unsigned char       uint8_t;
 typedef signed short        int16_t;
@@ -37,6 +40,7 @@
 typedef unsigned long       uintptr_t;
 typedef signed long long    int64_t;
 typedef unsigned long long  uint64_t;
 #define SDL_HAS_64BIT_TYPE	1
ContactPrivacy policyTerms of Use