05-Aug-2011: vbcc 0.9b release.|
Changes since last release:
- New: C99 designated struct initializers.
- New: C99 initialization of auto variables with non-constant
- New: Common Atari M68k target for TOS and MiNT, supporting 32 and
16 bit integer.
- New: Atari ColdFire support.
- New: The compiler for AmigaOS2.x, AmigaOS3.x and MorphOS does
automatic stack extension to 64k now.
- New: Amiga version string $VER: in binaries.
- In a function using VLA variables with multiple exit points the
return code could be trashed.
- Fixed bug in jump-optimization: threading jumps to jumps could
produce a temporarily slightly damaged flowgraph that interferes
with other jump optimizations.
- Uninitialized variable in for-statement made the
for-loop disappear in some environments.
- Fixed missing check when moving common ICs to predecessor. For
example the optimizer didn't see that a variable, whose address is
passed into a subroutine, is modified.
- Restoring of registers across function calls was sometimes done
- Fixed a bug with function declarations that contain closing
parentheses after the parameter list.
- Sometimes, mainly under MorphOS 2.x, a duplicate case label
warning was erroneously generated,
causing bad switch-code.
- Changed an internal error to a normal one if jumps to non-existent
labels are discovered during optimizing.
- Fixed bug with recursive exiting on errors during some cleanup.
- Disallow a shortcut between int and float.
- Fixed problem with 64-bit library functions and adressing
- Fixed internal error with bitfield type checking.
- Fixed compiler crash with unsupported gcc attributes.
- C99: Fixed warning with union initializers in C99 mode.
- C99: Fixed wrong stack calculation for variables declared in a
- M68k codegen: Fixed bug with missing offset-labels for
- M68k codegen: Fixed bug with float constants pushed on stack
- M68k codegen: Fixed lots of illegal ISA-A Coldfire
- M68k codegen: Fixed floating point to unsigned integer
- M68k codegen: Fixed missing saving of FPU regs around
long long to float conversion calls.
- M68k codegen: Optimize size of floating points constants.
- M68k codegen: Sometimes generated FBcc instead of
Bcc for 64-bit comparisons, when the function contained
- M68k 16bit codegen: Fixed internal error when pushing small
- M68k 16bit codegen: Do not crash after shift operations.
- PPC codegen: Support bitfields with non-standard types
(M68k already did that).
- i386 codegen: Fixed float-integer conversion.
- vprof: Updated our profiler to work with the new (6 years old)
- config: Made the default library search path last in the list
to allow overriding.
- config: The OS4 vclib and newlib config files automatically
search for shared objects in SObjs: to link with.
- config: OS4 linker script accepts .ctors.* and
- Frontend: Fixed -static option, which had no effect
on user libraries.
- vclib: -stack-check caused a linking error, because
vclib was calling the wrong exit function for most targets.
- vclib: Moved errno into the startup code for warpos to
be compatible to aos68k and improve linking of mixed executables.
vlink also got a new option -da to support that.
- vclib: setlocale() accepts setting the default
"C" locale. All Amiga targets will import the current
locale settings from the locale.library when
setlocale() is called with locale="".
(Patch submitted by Stefan A. Haubenthal.)
- vclib: vsnprintf() only used size-1 bytes of
- vclib: getenv() crashed under Kickstart 1.x.
- vclib: Kickstart 1.x compatibility (still uses OS2.x/OS3.x
functions when available). Comes with a 1.x compatible startup code
and a new config file called kick13.
- vclib: Make sure the softfloat versions of log() and
log10() divide by zero at runtime to generate a proper
infinity or NaN.
- vclib: Added missing isnan() and isinf()
prototypes in math.h.
- vclib: Harry Sintonen fixed a problem with exp() and
pow() in the FPSP060 code of m040.lib, which
produced wrong results unter MorphOS' FPU emulation.
- libauto/libraauto (OS4): Included much more libraries and classes
to open automatically.
- TinyGL support (libGL.a) for MorphOS.
- Comes with vasm 1.5b and vlink 0.14 with many more bug fixes and
improvements. Refer to the appropriate change list for details.
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.9b.
You need to pick the appropriate binary archive for your host
platform. Then you can add as many target archives as you
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
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
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.
AmigaOS 2.x/3.x 68020+ binaries.
AmigaOS 4.x binaries.
Additional PowerUp binaries.
For use under AmigaOS/68k.
Additional WarpOS binaries.
For use under AmigaOS/68k.
Atari MiNT binaries.
Compiler target AmigaOS 2.x/3.x M680x0.
Compiler target Atari TOS/MiNT M680x0.
Compiler target Atari TOS/MiNT M680x0 (without Amiga install script).
Compiler target Atari TOS/MiNT ColdFire.
Compiler target Atari TOS/MiNT ColdFire (without Amiga install script).
Compiler target AmigaOS 4.x PowerPC.
Compiler target MorphOS PowerPC.
Compiler target PowerUp PowerPC.
Compiler target WarpOS PowerPC.
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.
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, because all configs from the target archives contain Amiga
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
and for Amiga/Atari-specific problems, including assembler, linker,
startup-codes and linker-libraries, contact
Frank Wille ().