Version 9 (modified by 18 years ago) ( diff ) | ,
---|
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 CSD1:
ftp://ftp.netlabs.org/pub/gcc/gcc-3.3.5-csd1.zip - The wlink and emxomfld for GCC. (sorry, ilink doesn't do the trick for the nasm code yet)
- 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/. If you get compiler errors in the SDL headers, the patch at the bottom of this page will help you. - Checkout of the latest libc trunk.
- Later: Latest Qt3:
ftp://ftp.netlabs.org/pub/qt3/
Unpack this into tools/os2.x86/qt/v3.x.y/. - The current BCC port requires that
\tmp
exists. - ...
Building VirtualBox
- Load the gcc environment (gccenv.cmd).
- Make sure the environment variables
USER
orUSERNAME
is set to something sensible. - Change to the root directory of the sources and execute
kBuild\envos2.cmd
SET VBOX_OSE=1
- 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
- To build type
kmk
The default is to a release build, should you wish to do a debug or profile build addBUILD_TYPE=debug
orBUILD_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:
- Change directory to
out\os2.x86\release\bin
- Add this directory to the
BEGINLIBPATH
variable (full path, remember). - 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