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 AmigaOS, MorphOS and Atari (TOS, MiNT, Jaguar).

Valid HTML 4.01!
Release
vbcc main
Downloading instructions
Current vbcc binary archives
Current vbcc target archives
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)

Misc
vbcc benchmarks

Links
vbcc home page
vbcc/Amiga bugtracking system
vasm
vlink
11-Jan-2008: vbcc 0.8j patch 2.

The amigalib functions DeleteExtIO() and DeleteStdIO() didn't allow passing a NULL-pointer argument.

Either download the patch-archives (grey) and extract it in vbcc: or download the full archives. This patch includes patch 1.

Patch for vbcc_target_m68k-amigaos
vbcc_target_m68k-amigaos_upd.lha extract to vbcc:
Patch for vbcc_target_ppc-amigaos
vbcc_target_ppc-amigaos_upd.lha extract to vbcc:
Patch for vbcc_target_ppc-morphos
vbcc_target_ppc-morphos_upd.lha extract to vbcc:
Patch for vbcc_target_ppc-powerup
vbcc_target_ppc-powerup_upd.lha extract to vbcc:
Patch for vbcc_target_ppc-warpos
vbcc_target_ppc-warpos_upd.lha extract to vbcc:
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.


23-Dec-2006: X-mas special.

While experimenting with my EFIKA boards I created a compiler target for PPC-Openfirmware (SmartFirmware in this case). It enables you to run plain ANSI-C programs directly under Openfirmware, without the need for booting a real OS. Not much tested. Use it at your own risk.

Requires a binary archive with vbccppc being installed. The config file is called "ofppc".

vbcc_target_ppc-openfirm.lha Compiler target for SmartFirmware/PowerPC.


06-Jul-2006: vbcc 0.8j patch 1.

Due to an unnoticed problem by replacing PhxAss with vasmm68k in the build-process the _LVO symbols were no longer assembled and were missing in amiga.lib.

Either download the patch-archive (grey) and extract it in vbcc: or download the full archive.

Patch for vbcc_target_m68k-amigaos
vbcc_target_m68k-amigaos_upd.lha : extract to vbcc:
vbcc_target_m68k-amigaos.lha Compiler target AmigaOS 2.x/3.x M680x0.


05-Jun-2006: vbcc 0.8j release.
Changes since last release:
  • New: Real bitfield support, including packed bitfields. In the past a bitfield was simply treated as an int.
  • New: PPC code generator supports C99 variable-length arrays (like 68k and i386 code generator).
  • New: Option -use-commons in PPC code generator makes better use of common symbols. Also use common symbols in small-data and baserel32 modes.
  • New: Config files for MorphOS, PowerUp and OS4 (vclib and newlib) include -use-commons option by default now.
  • New: Preprocessor supports the __AMIGADATE__ macro.
  • New: vclib: Flush output buffers from interactive streams when reading input from another interactive stream. This is not required by ISO-C, but to make vclib more compatible to other clib implementations.
  • New: vclib: Small data math libraries for PowerUp, AmigaOS4 and MorphOS.
  • New: vasm: Supports include directories, include files, macros, conditional assembly and local symbols. This finally allows to compile the whole vclib on any host platform, without the need for PhxAss.
  • New: vasmx86: The 80x86 CPU is supported. First vbcc/AROS versions are being tested, but not ready for the public at the moment.
  • New: vlink: Target elf32amiga was splitted into elf32powerup and elf32morphos (OS4 uses standard elf32ppcbe executables). The latter one will make sure that .sdata and .sbss sections are not merged to save space in the object file. MorphOS guarantees to load .sbss sections directly behind .sdata.
  • Fixed an internal error when a struct is redeclared with different identifiers.
  • Fixed crash when nesting too many #pragma pack() directives.
  • #pragma pack() worked incorrectly. It should only enforce the demanded alignment when the natural alignment of the element is higher.
  • PPC code generator: Function pointers in small-data mode were incorrectly referenced in the small-data section.
  • PPC code generator: Crash when passing a 64-bit argument in an if(0) clause.
  • PPC code generator (WarpOS/PowerOpen-ABI): Memory was freed twice when compiling an "if (0 && condition)" line.
  • PPC code generator (WarpOS/PowerOpen-ABI): __saveds no longer restores rtoc register.
  • PPC code generator: Better small-data support. Makes sure that unitialized data goes into .sbss instead of .sdata.
  • M68k code generator: Fixed "target-error: illegal use of register" when switch statement is used with a 64 bit argument.
  • M68k code generator: Illegal instruction in full optimization mode, when copying a string pointer.
  • M68k code generator: Illegal instruction in mathieee (soft-float) mode.
  • Preprocessor: Fixed crash with unexpected ' character following an #include directive.
  • vclib: Fixed wrong sign returned by 68000 32-bit modulo operation.
  • vasmppc: Maximum offset into a small-data section was erroneously limited to 32767 bytes. Fixed for whole 64k range.
  • fd2pragma: Fixed WarpOS inline generation, which produced illegal varargs prototypes like __W3D_RequestModeTags(...).

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

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 eight 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.19 2017/08/14 10:44:46 frank Exp $