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
06-Aug-2005: vbcc 0.8i release.
Changes since last release:
  • New: PowerPC code generator: -baserel32os4 option enables an OS4-specific base-relative addressing mode, using 32-bit offsets to base register r2 (pointing to the beginning of the .data section).
  • New: PowerPC code generator: -baserel32mos option enables a MorphOS-specific base-relative addressing mode, using 32-bit offsets to base register r13 (pointing to .sdata + 32768).
  • New: vclib finally got the C99 functions snprintf() and vsnprintf().
  • Fixed -O3 optimizer bug in hennessy/queens benchmark.
  • Fixed -O2 optimizer bug with const-pointers in a lopp.
  • Fixed -O3 optimizer bug in gcc-testsuite 920501-6.
  • Fixed -O3 optimizer bug in vbcc-testsuite test14, which optimized the function to nothing.
  • Fixed other optimizer bugs which I forgot.
  • 64-bit logical shift right didn't work with shift-counts > 32.
  • fabs() was missing in WarpOS m.lib.
  • New proto and inline headers for WarpOS and PowerUp.
  • WarpOS libraries and headers use Warp3DPPC instead of Warp3D (which is 68k). Include Warp3DPPC inlines in proto/warp3d.h
  • M68k code generator: references _LinkerDB instead of _DATA_BAS_ (old PhxAss symbol) when a function has a __saveds attribute.
  • MorphOS inlines have to include emul/emulregs.h even when not required by vbcc, but 3rd-party code may depend on it.
  • The __ctype[] array in ctype.h got a const attribute.
  • atoi(), strtoul(), strtol(), etc. erroneously read "1a" as 20.
  • vlink: Empty .a archives are no longer rejected (OS4 newlib libm.a).
  • vlink: Fixed section-assignment using a linker script, which caused a section in some rare cases not being recognized by the linker (e.g. OS4 newlib startup.o).
  • vlink: Supports the new relocations required by -baserel32os4 and -baserel32mos.
  • vasm68k: Fixed floating point constant conversion when running on little-endian hosts.
  • vasmppc: Didn't allow comments behind a mnemonic without operands.
  • vasmppc: Fixed a crash when a register-indirect addressing mode was not correctly recognized, e.g. in symbol@l+0(r3).
  • vasm: Hunk-format/EHF output module accessed already deallocated memory.
  • fd2pragma: P96 support, PPC0/2-ABI (for Warp3DPPC) fixed.
  • fd2pragma: MorphOS (sysv) and (sysv,r12base) support for FD files.
  • fd2pragma: Do not create inline code for MUI_NewObject(), NewObject() and PM_MakeItem(). Otherwise the compiler's preprocessor gets confused.

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.8i.

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