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
04-Oct-2019: vbcc 0.9g release.
Changes since last release:
  • Implemented hash table with a default size of 1000. Can be controlled by -hash-size=.
  • Fixed bug with recursive struct definitions.
  • Fixed bug with C99 designated initializers.
  • Fixed C99 initializations of const objects.
  • Fixed bug with mixed dynamic initializations.
  • Fixed bug with partially initialized structs (C99).
  • Addded __noinline attribute.
  • m68k: General improvements of code generation.
  • m68k: Use ASR-sequence for signed division with a power of two.
  • m68k: Fixed peephole bug.
  • m68k: New attribute __fp0ret, to force float-return in fp0, disregarding a -no-fp-return option.
  • m68k: Fixed bug with unsigned short array indexes > 32767.
  • m68k: Allow 16-bit multiplication.
  • m68k: Fix for possible register clobbering in PUSH loops going up.
  • m68k: Avoid using the same reqister for Dr:Dq in DIV?L.L instructions.
  • m68k: Fixed pointer differences in 16-bit int backend (vbccm68ks).
  • m68k: Fixed bug with shiftisdiv on big-endian hosts.
  • PPC: Optimized memcmp() in vclib and as assembler-inline.
  • vclib: Fixed snprintf() and vsnprintf() for sizes exactly matching the source.
  • vclib atari: Made gem.h compile without warning in ANSI/C89 mode.
  • vclib kick13: Support for 16-bit int. New config files.
  • vclib kick13: Workaround for IEEE single to double precision conversion in mathieeedoubtrans.library.
  • Fixed some kick13 clib headers.

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.9g.

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, including an Installer script to work under AmigaOS/MorphOS. Target archives in tar.gz format are for Unix/MiNT, without Installer and config files. Target archives in zip format are recommended for Atari TOS systems, which use a different layout due to file system restrictions.

Other host platforms. vbcc is portable enough to run on all operating systems which offer a working ISO-C99 compiler, e.g. BSD, Linux, MacOS and Windows. The latest release source for vasm is available here and for vlink here. A recent vbcc source snapshot is available here, but it is only rarely updated (check the date).

This release's vbcc compiler source is available via the link below.

vbcc0_9g.tar.gz The vbcc V0.9g release source.
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-kick13.lha Compiler target Amiga Kickstart 1.2/1.3 M680x0.
vbcc_target_m68k-atari.lha Compiler target Atari TOS/MiNT M680x0.
vbcc_target_m68k-atari.tar.gz Compiler target Atari TOS/MiNT M680x0 (for Unix/MiNT hosts).
vbcc_target_m68k-atari.zip Compiler target Atari TOS/MiNT M680x0 (for TOS hosts).
vbcc_target_cf-atari.lha Compiler target Atari TOS/MiNT ColdFire.
vbcc_target_cf-atari.tar.gz Compiler target Atari TOS/MiNT ColdFire (for Unix/MiNT hosts).
vbcc_target_cf-atari.zip Compiler target Atari TOS/MiNT ColdFire (for TOS hosts).
vbcc_target_m68k-jaguar.lha Compiler target Atari Jaguar M68k.
vbcc_target_m68k-jaguar.tar.gz Compiler target Atari Jaguar M68k (for Unix/MiNT hosts).
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_unix_config.tar.gz Default config files for all targets with Unix installation 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.

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

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 $