vbcc logo

vbcc is a highly optimizing portable and retargetable ISO C compiler. It supports ISO C according to ISO/IEC 9899:1989 and a subset of the new standard ISO/IEC 9899:1999 (C99).

This is the support site for Amiga (AmigaOS, MorphOS) and Atari (TOS, MiNT, Jaguar).

Release
vbcc main
Downloading instructions
Current vbcc binary archives
Current vbcc target archives
vbcc 0.9h release
vbcc 0.9g release
vbcc 0.9f release
vbcc 0.9e release
vbcc 0.9d release
vbcc 0.9b release
vbcc 0.9a release
vbcc 0.9 release
vbcc 0.8j release
vbcc 0.8i release
vbcc 0.8h release
vbcc 0.8g release
Old vbcc releases (0.8-0.8f)

Docs
vbcc docs (pdf)

Links
vbcc home page
vasm
vlink
28-Nov-2004: vbcc 0.8g patch 3.
  • The minimal startup code from vbcc_target_m68k-amigaos, minstart.o, didn't work with latest vlink.
  • New OS3.5 functions for workbench.library and icon.librarary were missing.
Either download the required patch-archives (grey) and extract them in vbcc:, or download the full archives.
vbcc_target_m68k-amigaos_upd.lha : extract this archive into vbcc:
vbcc_target_ppc-powerup_upd.lha : extract this archive into vbcc:
vbcc_target_ppc-warpos_upd.lha : extract this archive into vbcc:
vbcc_target_m68k-amigaos.lha Compiler target AmigaOS 2.x/3.x M680x0.
vbcc_target_ppc-powerup.lha Compiler target PowerUp PowerPC.
vbcc_target_ppc-warpos.lha Compiler target WarpOS PowerPC.


27-Nov-2004: vbcc 0.8g patch 2.

M68k varargs inlines for calling OS functions must not be used (problem caused by fd2pragma). The problem occured when compiling in C99 mode (-c99 option), e.g. with MUI_NewObject().

Instructions: Either download the patches (grey) or reinstall the full archives. You only have to pick the patches/archives which you really need.

The patch makes "patch 1", from the 26th of November, obsolete. You only need to apply this one.

Patch for vbcc_bin_amigaos68k
vc.config : copy this into vbcc:config/
Patch for vbcc_bin_powerup
aos68k_powerup : copy this into vbcc:config/
Patch for vbcc_bin_warpos
aos68k_warpos : copy this into vbcc:config/
Patch for vbcc_target_m68k-amigaos
aos68k : copy this into vbcc:config/
vbcc_bin_amigaos68k.lha AmigaOS 2.x/3.x 68020+ binaries.
vbcc_bin_powerup.lha Additional PowerUp binaries. For use under AmigaOS/68k.
vbcc_bin_warpos.lha Additional WarpOS binaries. For use under AmigaOS/68k.
vbcc_target_m68k-amigaos.lha Compiler target AmigaOS 2.x/3.x M680x0.


26-Nov-2004: vbcc 0.8g patch 1.

There was a bug in the aos68k config file, which doesn't explicitly enable the amigahunk target format for vlink. This is a problem when using vbcc_target_m68k-amigaos on any other than AmigaOS/68k hosts.

18:16 CET: fixed aos68k again. Sorry for inconvenience.

Patch for vbcc_target_m68k-amigaos
aos68k : copy this into vbcc:config/
Full archive:
vbcc_target_m68k-amigaos.lha Compiler target AmigaOS 2.x/3.x M680x0.


23-Nov-2004: vbcc 0.8g release.
After a long, much too long, time, this is a full vbcc release again. Here is only a short extract of all the modifications:
  • Many bug fixes in vbcc's compiler core and its code generators. Especially debugged the -O1 optimizer mode.
  • Improved code quality from optimizer and backends.
  • Preliminary support for C99 variable-length arrays (only implemented in M68k backend at the moment).
  • AmigaOS 4 support, including modifications for the special OS4-ABI calls, which require new attributes (__aos4libcall).
  • __linearvarargs attribute. Introduced for OS4, but also helps to simplify OS call inlines for MorphOS.
  • #pragma pack() support, similar to gcc.
  • Fixed preprocessor #include bugs ("file.h" and <file.h> at once).
  • Removed -use-lmw option from all PPC config files, as it degrades performance.
  • New installation and release structure. You will install a binary archive for your system and then pick the target archives you need.
  • Renamed most of the targets and assignments, making it more logical.
  • Introduction of a new, portable multi-target, multi-file-format assembler, supporting different syntax flavours (e.g. Motorola and MIT), called "vasm". vasm replaces pasm for PowerPC and the unportable PhxAss for M68k. pasm is still supported for PowerPC assembler developers, of course.
  • Bug fixes in vlink.
  • vlink can write absolute ELF executables, controlled by a GNU-ld compatible linker script (required for OS4).
  • vlink supports new file formats: elf32m68k, elf32i386, IHEX, VOBJ and ataritos.
  • Better support for common symbols and base-relative relocations. Added some new ELF relocations to vlink.
  • New constructor/destructor handling in vlink.
  • vlink got a new relocation handling, making it possible to convert any relocation, from many different CPUs, to and from the internal representation format.
  • Bug fixes in vclib, mlib and the startup codes.
In such a complex project there will be bugs of course. But bug fixes will come immediately. The next release is not another three years away!
Downloading vbcc 0.8g.

You need to pick the appropriate binary archive for your host platform. Then you can add as many target archives as you need.

Example: If you own a Pegasos running MorphOS and would like to develop programs for MorphOS and AmigaOS/68k, you have to pick the vbcc_bin_morphos archive for the binaries as well as the target archives vbcc_target_ppc-morphos and vbcc_target_m68k-amigaos. Install the binary archive first, using the provided Amiga installer, then add the targets.

The PowerUp and WarpOS binary archives are additional, which means that you need to have a base binary archive already installed. Typically this would be the vbcc_bin_amigaos68k archive.

All target archives are lha-packed, while the Atari targets are also available as zip-archives to make unpacking easier for Atari users.

Other host platforms. vbcc is portable enough to run under all operating systems which offer a working ANSI-C compiler, e.g. BSD, Linux, MacOS and Windows. If you need a port for your system, try to contact the authors.

vbcc_bin_amigaos68k.lha AmigaOS 2.x/3.x 68020+ binaries.
vbcc_bin_amigaosppc.lha AmigaOS 4.x binaries.
vbcc_bin_morphos.lha MorphOS binaries.
vbcc_bin_powerup.lha Additional PowerUp binaries. For use under AmigaOS/68k.
vbcc_bin_warpos.lha Additional WarpOS binaries. For use under AmigaOS/68k.
vbcc_target_m68k-amigaos.lha Compiler target AmigaOS 2.x/3.x M680x0.
vbcc_target_ppc-amigaos.lha Compiler target AmigaOS 4.x PowerPC.
Warning! Make sure your amiga_compiler.h from the official OS4 SDK is up to date! Line 266 and 267 have to look like this:
#define APICALL __aos4libcall __linearvarargs
#define VARARGS68K __linearvarargs
vbcc_target_ppc-morphos.lha Compiler target MorphOS PowerPC.
vbcc_target_ppc-powerup.lha Compiler target PowerUp PowerPC.
vbcc_target_ppc-warpos.lha Compiler target WarpOS PowerPC.

Please support vbcc by contacting the authors if you find any bugs or problems. Supporting nine different architectures makes testing extremely time consuming, so this release is probably not free of bugs.

For problems with the compiler core contact Dr. Volker Barthelmann (vbemail), and for Amiga/Atari-specific problems, including assembler, linker, startup-codes and linker-libraries, contact Frank Wille (fwemail).

$Id: index.php,v 1.26 2023/09/30 11:59:02 frank Exp $