How to install GNU C/C++ on openVMS/Alpha The development of GNU C and C++ for openVMS/Alpha is still in progress, so be patient with bugs. What you need: unzip.exe Install it as a foreign command $ unzip :== $unzip.exe --------------------------------------- GNU-C gcc-driver-bin.zip c-includes.zip gas-970202.zip gcc-970207.zip gmake-bin.zip c-demos.zip Create a directory for GNU specific stuff, 'set def' to this directory and unpack gcc-driver-bin.zip there. $ unzip -d gcc-driver-bin.zip Execute gcc_startup.com $ @gcc_startup This won't be completely successful but creates the necessary logicals, most important gnu:[00000] If you're used to gcc installation on the vax, note that the logical isn't named gnu_cc: but gnu: Next, unzip all other zip-files in gnu:[000000] $ set def gnu:[000000] $ unzip -d c-includes.zip $ unzip -d gas-970202.zip $ unzip -d gcc-970207.zip $ unzip -d gmake-bin.zip Install the GNU Assembler and GNU Make as foreign commands $ gas :== $gnu:[000000]gcc-as.exe $ gmake :== $gnu:[000000]make.exe Now execute $ @gcc_startup again. That's it ! To test the installation with a simple (but famous) program, unzip c-demos in a scratch directory $ unzip -d c-demos.zip $ set def [.c-demos] $ make $ run test As you can see from the makefile.vms, all necessary defaults are built into gnu make. If you want to control compilation and linking yourself, remember to link with gnu:[000000]libgcc.olb/lib and add gnu:[000000]crt0.obj as the last file ! Known bugs: The current exception handling and debug code generation is broken, always compile with /cc1="-fno-exceptions -g0". I hope this will change RSN, but don't ask me for a fixed date. Using VAX F-float/G-float representation is buggy, compile with /float=ieee to use IEEE floating points. The GNU C extension of taking addresses of labels with the '&&' doesn't work. varargs handling with 6 or more named arguments is broken. Compiling with /opt=3 might crash the compiler. Not all VMS specific include files are provided, please tell me what you're missing ! --------------------------------------- GNU-C++ Get gxx-970207.zip and cxx-includes.zip, unpack both in gnu:[000000] $ set def gnu:[000000] $ unzip -d gxx-970207.zip $ unzip -d cxx-includes.zip This will allow you to compile C++ programs, but you haven't got a library yet. Get libgxx-bin.zip and libgxx-inc.zip and unpack them in gnu:[000000] $ set def gnu:[000000] $ unzip -d libgxx-bin.zip $ unzip -d libgxx-inc.zip To test the installation with a simple program, unzip cxx-demos in a scratch directory $ unzip -d cxx-demos.zip $ set def [.cxx-demos] $ make $ run test As you can see from the makefile.vms, all necessary defaults are built into gnu make. If you want to control compilation and linking yourself, remember to link with gnu:[000000]crtbegin.obj as the first object file and add gnu:[000000]crtend.obj,gnu:[000000]gxx_main.obj the last files ! Without them, static constructors and destructors will not be called. Known Bugs: See GNU C known bugs ! Exception handling doesn't work yet