It's not perfect, but I've managed to get BlitzMax running on my AMD64 system!
I use Gentoo GNU/Linux which, being source based and entirely optimised for the host system, provides the best 64bit compatibility of any GNU/Linux system. These instructions are Gentoo proprietary but I expect similar distributions provide compatibility libs too.
1. First off you need BlitzMax. No need to run any installers, just extract the files to a directory. I chose /home/trickyric/Programming/BlitzMax to avoid the possibility of file access restrictions. At the time of this writing 1.18 is the current full package, with 1.24 being the current update, so while you're at it you may as well extract the update file in there too - though note you cannot run it at this stage.
2. BlitzMax requires some 32bit development libs for both its compiler and updater to function. It also requires 32bit OpenGL libs for the graphical and sound processing. Since you're running AMD64, chances are you have 64bit libs instead. Gentoo however provides some nifty compatibility libs to emerge.
I emerged emul-linux-x86-compat and emul-linux-x86-sdl to get my system going, but I already had other compatibility libs present which may also be needed. Compat provides things like the libstdc++ library and sdl provides the simple directmedia libraries for OpenGL. Other libs I expect are needed that were already present on this system are emul-linux-x86-baselibs, emul-linux-x86-soundlibs, and emul-linux-x86-xlibs. I also have emul-linux-x86-gtklibs, emul-linux-x86-medialibs, and emul-linux-x86-qtlibs which I doubt are required but worth noting just in case.
3. Finally, BlitzMax has been hard coded to look for g++ 3.3. Why? No idea, perhaps because the developers can't be sure more recent versions provide the exact same functionality? 3.3 is masked as unstable in Gentoo's portage tree for AMD64, so it wouldn't be advised to install. Instead it's common practice to place a symlink to your current version. On AMD64 this is a little trickier but trial and error suggests /usr/x86_64-pc-linux-gnu/gcc-bin/<current version>/x86_64-pc-linux-gnu-g++ is the best place to point to. At the time of this writing 4.1.2 is the current stable, so that's where I'm pointing.
# ln -s /usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2/x86_64-pc-linux-gnu-g++ /usr/bin/g++-3.3
4. With the compatibility libs installed and a symlink tricking BlitzMax into thinking g++ 3.3 is on the system, all should now work. Run the update you copied accross to update the software, and attempt to run and build a BlitzMax sample.
Note that for me, BlitzMax still returns "Skipping incompatible..." errors during build, but these errors don't appear to effect execution. I can only assume the linker is first finding the 64bit libs, skipping them, and then finding the 32bit compatibility libs we installed. Thus while your output will most likely dump an array of errors, they're all safe to ignore. Any confirmation of this would be appreciated.
Have fun with BlitzMax on AMD64!
I use Gentoo GNU/Linux which, being source based and entirely optimised for the host system, provides the best 64bit compatibility of any GNU/Linux system. These instructions are Gentoo proprietary but I expect similar distributions provide compatibility libs too.
1. First off you need BlitzMax. No need to run any installers, just extract the files to a directory. I chose /home/trickyric/Programming/BlitzMax to avoid the possibility of file access restrictions. At the time of this writing 1.18 is the current full package, with 1.24 being the current update, so while you're at it you may as well extract the update file in there too - though note you cannot run it at this stage.
2. BlitzMax requires some 32bit development libs for both its compiler and updater to function. It also requires 32bit OpenGL libs for the graphical and sound processing. Since you're running AMD64, chances are you have 64bit libs instead. Gentoo however provides some nifty compatibility libs to emerge.
I emerged emul-linux-x86-compat and emul-linux-x86-sdl to get my system going, but I already had other compatibility libs present which may also be needed. Compat provides things like the libstdc++ library and sdl provides the simple directmedia libraries for OpenGL. Other libs I expect are needed that were already present on this system are emul-linux-x86-baselibs, emul-linux-x86-soundlibs, and emul-linux-x86-xlibs. I also have emul-linux-x86-gtklibs, emul-linux-x86-medialibs, and emul-linux-x86-qtlibs which I doubt are required but worth noting just in case.
3. Finally, BlitzMax has been hard coded to look for g++ 3.3. Why? No idea, perhaps because the developers can't be sure more recent versions provide the exact same functionality? 3.3 is masked as unstable in Gentoo's portage tree for AMD64, so it wouldn't be advised to install. Instead it's common practice to place a symlink to your current version. On AMD64 this is a little trickier but trial and error suggests /usr/x86_64-pc-linux-gnu/gcc-bin/<current version>/x86_64-pc-linux-gnu-g++ is the best place to point to. At the time of this writing 4.1.2 is the current stable, so that's where I'm pointing.
# ln -s /usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2/x86_64-pc-linux-gnu-g++ /usr/bin/g++-3.3
4. With the compatibility libs installed and a symlink tricking BlitzMax into thinking g++ 3.3 is on the system, all should now work. Run the update you copied accross to update the software, and attempt to run and build a BlitzMax sample.
Note that for me, BlitzMax still returns "Skipping incompatible..." errors during build, but these errors don't appear to effect execution. I can only assume the linker is first finding the 64bit libs, skipping them, and then finding the 32bit compatibility libs we installed. Thus while your output will most likely dump an array of errors, they're all safe to ignore. Any confirmation of this would be appreciated.
Have fun with BlitzMax on AMD64!