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).

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)

vbcc docs (pdf)

vbcc home page
16-Oct-2009: vbcc 0.9a release.
Changes since last release:
  • Using vasm 1.4b and vlink 0.12f with many improvements and bug fixes.
  • The compiler itself is for the first time compiled with optimization enabled. So it is a little bit faster and smaller.
  • Included vbccm68ks (16 bit integer) in distribution, which is required for the Atari TOS target.
  • Fixed alignment bug on incomplete structure initialization.
  • Problem with incorrect constant folding during optimization fixed.
  • Fixed bug with conversion into a non-scalar at -O1.
  • -stack-check referenced the obsolete symbol __exit.
  • A problem with a misplaced return-label during flowgraph optimization (-O1 and up) was fixed. The bug showed up in a forever-loop, which was left with return-instructions only, and could result in an infinite loop or a corrupted stack frame.
  • Prevent infinite recursion during program cleanup.
  • The 68k config files aos68k, tos and mint do no longer have to set optimization options. The OPT directive is completely supported by vasmm68k_mot since 1.3d.
  • M68k code generator: Fixed many ColdFire bugs. But the ColdFire support is still far from being perfect.
  • M68k code generator: Fixed "target error: illegal use of registers", which could be caused by case statements, since V0.9, and during jumptable generation.
  • M68k code generator: Generated illegal data constants when -const-in-data and -sd were specified together.
  • M68k code generator: Fixed a crash, which could occur with constant pointers (e.g. *(int *)0x1234=x) in certain situations.
  • M68k code generator: Calling a constant address no longer leads to an internal error.
  • M68k code generator: Fixed a wrong condition code test when converting to smaller integral types.
  • PPC code generator: Using a wrong IC pointer in ALLOCREG/FREEREG caused illegal memory accesses.
  • vclib: strtod() fixed: the endptr (when given) was incorrect.
  • vclib: ctype.h was wrong for all 68k targets (toupper()/tolower() inlines didn't work).
  • vasmm68k: Got a noticeable performance improvement on parsing the input source by a factor between 3 and 30.
  • vasmm68k: M68k cpu settings were lost when assembling a source vbcc generated with -g option.
  • vasmm68k: Wrong M68k optimization of move.w #0,An into suba.w An,An left garbage in the MSW.
  • vlink: Erroneously prefered a symbol from a library over a symbol with the same name from the referencing object module.
  • vlink: Fixed problem with merging common symbols from serveral modules.
  • vlink: Fixed an error when the resulting ELF executable (OS4) only requires a single segment.

In such a complex project there will of course be bugs. Most, especially the serious, bug fixes will be available immediately as a patch. The rest comes with the next release, or by request from the author (see below).
Downloading vbcc 0.9a.

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_bin_mint.tar.gz Atari MiNT binaries.
vbcc_target_m68k-amigaos.lha Compiler target AmigaOS 2.x/3.x M680x0.
vbcc_target_m68k-ataritos.lha Compiler target Atari TOS M680x0.
vbcc_target_m68k-atarimint.lha Compiler target Atari MiNT M680x0.
vbcc_target_ppc-amigaos.lha Compiler target AmigaOS 4.x PowerPC.
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.
vbcc_target_m68k-ataritos.zip Compiler target Atari TOS M680x0 (without Amiga install script).
vbcc_target_m68k-atarimint.zip Compiler target Atari MiNT M680x0 (without Amiga install script).
vbcc_unix_config.tar.gz Default config files for all targets with Unix/MiNT paths.

Installation procedure for AmigaOS/MorphOS: Just click the Install icon. Or refer to chapter 1.3.3 of the documentation for a manual installation.

Installing procedure for MiNT: Refer to the Unix installation instructions in chapter 1.3.1 of the vbcc manual. You may want to download the Unix default config files from above, because all configs from the target archives contain Amiga paths.

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 $