• 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

    • OS/2 running on Intel hardware… ;-)
    • GCC 3.3.5 CSD3:
      ftp://ftp.netlabs.org/pub/gcc/GCC-3.3.5-csd3.zip
    • Use wlink as the linker:
      ftp://ftp.netlabs.org/pub/gcc/wl-hll-r1.zip
      Make sure you set EMXOMFLD_LINKER=wl.exe and EMXOMFLD_TYPE=WLINK.
    • SDL:
      ftp://ftp.netlabs.org/pub/sdl/sdl-1.2.10-bin-20060602.zip
      Unpack this into tools/os2.x86/libsdl/v1.2.10-20060602/ or alternatively set the PATH_SDK_LIBSDL environment variable to point to a directory where you unpacked the archive to. If you get compiler errors in the SDL headers, the patch at the bottom of this page will help you.
    • glib 1.2 + libIDL 0.6:
      http://hobbes.nmsu.edu/cgi-bin/h-search?key=glibidl_20070521.zip
      Unpack this into tools/os2.x86/glibidl/ or alternatively set VBOX_PATH_GLIB and VBOX_PATH_LIBIDL environment variables to point to the glibidl/gcc335/ subdirectory of the unpacked archive.
    • Checkout of the latest libc trunk.
    • Latest Qt3 trunk:
      http://svn.netlabs.org/repos/qt3/trunk/
      Checkout this into a directory, build according to the build instructions and set the QTDIR environment variable to point to the directory you checked it out into.
    • The current BCC port requires that \tmp exists.
    • Subversion: http://www.smedley.info/os2ports/index.php?page=subversion
    • The xerces and xalan sources we use together with the appropriate kBuild makefiles can be found here: http://virtualbox.org/download/testcase/xerces-and-xalan-vbox-src.tar.bz2
      Untar them into the VirtualBox trunk directory.

    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
        kBuild\envos2.cmd
      
    4. SET VBOX_OSE=1
    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
        kmk
      

      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 @@
       #define AUDIO_S16SYS	AUDIO_S16MSB
       #endif
      
      +/* 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>
      +#else
       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;
      +#endif
      
       #define SDL_HAS_64BIT_TYPE	1
      
    

    © 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette