Menu

Small Device C Compiler (SDCC) / News: Recent posts

SDCC 4.5.0 released

The SDCC 4.5.0 release is available in our SourceForge File release system:
https://sourceforge.net/projects/sdcc/files/
There, you can find the source package, and binaries for x86 and amd64 Windows, amd64 macOS, and amd64 GNU/Linux.

In addition to many, many bug fixes, notable features added since the 4.4.0 release are:

  • Full atomic_flag support for msc51 and ds390 ports.
  • Experimental f8 port.
  • ISO C2y case range expressions.
  • ISO C2y _Generic selection expression with a type operand
  • K&R-style function syntax (preliminarily with the semantics of non-K&R ISO-style functions)
  • ISO C23 enums with user-specified underlying type
  • struct / union in initializers... read more
Posted by Philipp Klaus Krause 2025-01-28

SDCC 4.4.0 released

The official release for SDCC 4.4.0 is available in our SourceForge
File release system:
https://sourceforge.net/projects/sdcc/files/

In addition to the source package, binaries are available for x86 Windows, amd64 macOS, and amd64 GNU/Linux.

In addition to various bug fixes, notable features added since the
4.3.0 release are:

  • Optimizations for rotations.
  • struct / union parameters for hc08, s08 and mos6502.
  • Many bug fixes for -ms08 --stack-auto.
  • struct / union return support for hc08 and s08 (caller side only).
  • Generalized constant propagation.
  • New command line option --syntax-only to only parse the input.
  • Added C99 header inttypes.h
  • Added library functions imaxabs, imaxdiv, llabs, strtoimax, strtoll, strtoull, strtoumax, wcsncmp, wcstoimax, wcstol, wcstoll, wcstoul, wcstoull, wcstoumax
  • New r800 port to better support the ASCII Corp R800 and Zilog Z280.
  • Changed the default calling convention for r2k, r2ka, r3ka, tlcs90, ez80-z80 from version 0 to 1 (this is an ABI break, and will require changes to user-written asm functions or their declarations).
  • Improved optimizations for code speed for stm8, pdk, z80 (and related).
  • New mos65c02 port to better support the WDC 65C02.... read more
Posted by Philipp Klaus Krause 2024-01-29

Small Device C Compiler 4.3.0 released

The official release for SDCC 4.3.0 is available in our SourceForge
File release system:
https://sourceforge.net/projects/sdcc/files/

In addition to the source package, binaries are available for amd64 Windows, amd64 macOS, and amd64 GNU/Linux.

In addition to various bug fixes, notable features added since the 4.2.0 release are:

  • C2X bit-precise integer types and bit-fields thereof for (except for pic14, pic16).
  • Added all new general mnemonics from ASxxxx 5.40 except for .bank and enabled for all ports
  • sm83: sdasgb now can output cycles in listing and sz80 has accurate cycles for this processor except for branching
  • struct / union return (except for ds390, hc08, s08, mos6502, pic14, pic16).
  • div standard library function family.
  • struct / union parameters (except for hc08, s08, mos6502, pic14, pic16).
  • C2X nullptr.
  • Many fixes for the type system and _Generic.
  • Adopted more of GCC, QuickC and tinycc tests.
  • C2X char8_t.
  • C2X memalignment.
  • C2X unreachable.
  • C2X typeof, typeof_unqual.
  • C2X auto.
  • C2X keywords bool, true, false, alignas, alignof, static_assert.
  • C90-C17 function declarators without prototypes.
  • C99 variably modified types.
  • C2X bit and byte utilities.
  • call_once.
  • _sdcc_external_startup renamed to __sdcc_external_startup and supported for all ports.
  • makeshift support for long double as another alias for float.... read more
Posted by Philipp Klaus Krause 2023-07-07

Small Device C Compiler 4.2.0 released

A new release of SDCC, the portable optimizing compiler for STM8, MCS-51, DS390, HC08, S08, Z80, Z180, Rabbit, SM83, eZ80 in Z80 mode, Z80N, TLCS-90, 6502, Padauk and PIC microprocessors is now available. Sources, documentation and binaries for GNU/Linux amd64, Windows amd64, macOS amd64 and Windows x86 are available.

SDCC 4.2.0 Most Notable New Feature List:

  • C23 memset_explicit
  • Support for --oldralloc has been removed from the z80, z180, tlcs90, z80n, ez80_z80, r2k, r2ka, r3ka backends.
  • gbz80 port now uses more efficient block-initalization of global variables (users of a custom crt0 need to adapt theirs).
  • Full support for __z88dk_callee for the z80, z180, gbz80, tlcs90, z80n, ez80_z80, r2k, r2ka, r3ka, stm8 backends.
  • Support for __raisonance, __iar and __cosmic calling conventions for stm8.
  • Support for a new __sdcccall(1) calling convention in the stm8 port AS NEW DEFAULT.
  • Support for a new __sdcccall(1) calling convention in the gbz80 port AS NEW DEFAULT.
  • Support for a new __sdcccall(1) calling convention in the z80, z80n and z180 ports AS NEW DEFAULT.
  • Support for a new __sdcccall(1) calling convention in the r2k, r2ka, r3k, tlcs90 and ez80_z80 ports.
  • Removed support for --profile for gbz80, z80, z180, tlcs90, z80n, ez80_z80, r2k, r2ka, r3ka backends.
  • The z80n port Z80N Core minimum version has been raised from 1.0 to 2.0.
  • Improved rematerialization support in the stm8, gbz80, z80, z180, tlcs90, z80n, ez80_z80, r2k, r2ka, r3ka backends.
  • The gbz80 port was renamed to sm83.
  • New in-development mos6502 port. ... read more
Posted by Philipp Klaus Krause 2022-03-08

Small Device C Compiler version 4.1.0 released

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, Z180, Rabbit 2000, GBZ80, eZ80 in Z80 mode, TLCS-90, HC08, STM8, Padauk and PIC microprocessors is now available. Sources, documentation and binaries for GNU/Linux amd64, Windows amd64, macOS amd64 and Windows x86 are available.

SDCC 4.1.0 New Feature List:

  • New z80n port for the Spectrum Next CPU (a Z80 variant).
  • Much better register allocation in the gbz80 backend.
  • Workarounds for Rabbit wait state bugs in the r2k backend.
  • New r2ka port to better support Rabbit 2000A, 2000B, 2000C, 3000.
  • Default crt0 and --data-loc for Rabbits suitable for typical Rabbit hardware configurations, such as the RCMs.
  • Many improvements in code generation for z80 and related ports.
  • Rabbit register definition headers for Rabbit 2000, 2000A, 2000B, 2000C, 3000, 3000A.
  • C23 digit separators.... read more
Posted by Erik Petrich 2021-03-08

Small Device C Compiler 4.0.0 released

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, Z180, Rabbit 2000, GBZ80, eZ80 in Z80 mode, TLCS-90,
HC08, STM8, Padauk and PIC microprocessors is now available. Sources, documentation and binaries for GNU/Linux amd64, Windows amd64, macOS amd64 and Windows x86 are available.

SDCC 4.0.0 New Feature List:

  • The pdk15 backend now passes the regression tests (both with and without --stack-auto), and is thus considered stable.
  • New in-development pdk13 backend for Padauk µC with 13-bit wide program memory.
  • C2X memccpy(), strdup(), strndup().
  • Better tail call optimization.
  • Many fixes in the pic14 backend.
  • C2X u8 character constants.
  • C2X bool, static_assert, alignof, alignas.
  • C2X attributes on statements.
  • C2X attribute declarations.
  • Support for extended ASCII characters in sdas, sdld
  • Compiler support for UCNs and non-ASCII utf8 in identifiers
Posted by Philipp Klaus Krause 2020-01-30

Small Device C Compiler 3.9.0 released

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, Z180, Rabbit 2000, GBZ80, eZ80, TLCS-90,
HC08, STM8, Padauk and PIC microprocessors is now available. Sources, documentation and binaries for GNU/Linux amd64, Windows amd64, macOS amd64 and Windows x86 are available.

SDCC 3.9.0 Feature List:

  • Support for struct / union assignment.
  • Optimizations in the stm8 backend relevant to soft float increase Whetstone score by two thirds.
  • Improvements in rematerialization in the stm8 backend improve code generation for struct, union and arrays.
  • New stack allocator reduces stack space usage for the stm8, z80, z180, gbz80, r2k, r3ka, tlcs90 backends.
  • New ez80_z80 backend for eZ80 in Z80 mode.
  • Removed deprecated sdcclib utility.
  • New pdk14 backend for Padauk µC with 14-bit wide program memory.
  • New in-development pdk15 backend for Padauk µC with 15-bit wide program memory.... read more
Posted by Philipp Klaus Krause 2019-04-15

Small Device C Compiler 3.8.0 released

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, Z180, Rabbit 2000, GBZ80, TLCS-90, HC08, STM8 and PIC microprocessors is now available ( http://sdcc.sourceforge.net ). Sources, documentation and binaries for GNU/Linux amd64, Windows amd64, macOS amd64 and Windows x86 are available.

SDCC 3.8.0 Feature List:

  • Additional general utility function: bsearch().
  • Support for rematerialization in the stm8 backend reduces register pressure and stack usage.
  • Merged upstream GNU binutils 2.30
  • All Python code is now fully compatible with both Python 2.7 and Python 3.6, so Python 3 can be used instead of Python 2.
  • Regression testing for diagnostics.
  • Improved handling of local bool variables in the mcs51 backend substantially reduces code size.
  • Large memory model for stm8 for 24-bit codespace allows using more than 32KB of Flash for code.
  • New optimizations for calls to some standard library function (printf(), puts(), strcpy()).
  • The type of true and false from stdbool.h change from int to bool.
  • New C2X mode (--std-c2x, --std-sdcc2x, #pragma std_c2x) adds support for one-argument static_assert variant.
  • Intermingling of declarations and statements (ISO C99).
  • Support headers for AX8052 devices.
  • Adopted GCC 8.2 regression tests (execute part of the GCC C torture tests).... read more
Posted by Philipp Klaus Krause 2018-10-13

Small Device C Compiler 3.6.0 released

A new release of SDCC, the portable optimizing compiler suite for Intel MCS51 based (8031, 8032, 8051, 8052, etc.), Maxim (formerly Dallas) DS80C390 variants, Freescale (formerly Motorola) HC08 based (hc08, s08), Zilog Z80 based (z80, z180, gbz80, Rabbit 2000/3000, Rabbit 3000A, TLCS-90), STMicroelectronics STM8 and Microchip PIC16 and PIC18 microprocessors is now available. Sources, documentation and binaries compiled for x86 Linux, x86 and x64 MS Windows and Mac OS X universal binaries are available at http://sdcc.sourceforge.net .... read more

Posted by Maarten Brock 2016-06-12

Small Device C Compiler 3.5.0 released

A new release of SDCC, the portable optimizing compiler suite for Intel MCS51 based (8031, 8032, 8051, 8052, etc.), Maxim (formerly Dallas) DS80C390 variants, Freescale (formerly Motorola) HC08 based (hc08, s08), Zilog Z80 based (z80, z180, gbz80, Rabbit 2000/3000, Rabbit 3000A, TLCS-90), STMicroelectronics STM8 and Microchip PIC16 and PIC18 microprocessors is now available. Sources, documentation and binaries compiled for x86 Linux, x86 and x64 MS Windows and Mac OS X universal binaries are available at http://sdcc.sourceforge.net .... read more

Posted by Maarten Brock 2015-06-24

Small Device C Compiler 3.4.0 released

A new release of SDCC, the portable optimizing compiler suite for Intel MCS51 based (8031, 8032, 8051, 8052, etc.), Maxim (formerly Dallas) DS80C390 variants, Freescale (formerly Motorola) HC08 based (hc08, s08), Zilog Z80 based (z80, z180, gbz80, Rabbit 2000/3000, Rabbit 3000A, TLCS-90), STMicroelectronics STM8 and Microchip PIC16 and PIC18 microprocessors is now available. Sources, documentation and binaries compiled for x86 Linux, x86 and x64 MS Windows and Mac OS X universal binaries are available at http://sdcc.sourceforge.net .... read more

Posted by Maarten Brock 2014-04-11

Small Device C Compiler 3.3.0 released

A new release of SDCC, the portable optimizing compiler suite for Intel MCS51 based (8031, 8032, 8051, 8052, etc.), Maxim (formerly Dallas) DS80C390 variants, Freescale (formerly Motorola) HC08 based (hc08, s08), Zilog Z80 based (z80, z180, gbz80, Rabbit 2000/3000, Rabbit 3000A) and Microchip PIC16 and PIC18 microprocessors is now available. Sources, documentation and binaries compiled for x86 Linux, x86 and x64 MS Windows and Mac OS X universal binaries are available ( http://sdcc.sourceforge.net ).... read more

Posted by Maarten Brock 2013-05-19

Small Device C Compiler 3.2.0 released

A new release of SDCC, the portable optimizing compiler suite for Intel MCS51 based (8031, 8032, 8051, 8052, etc.), Maxim (formerly Dallas) DS80C390 variants, Freescale (formerly Motorola) HC08 based (hc08, s08), Zilog Z80 based (z80, z180, gbz80, Rabbit 2000/3000, Rabbit 3000A) and Microchip PIC16 and PIC18 microprocessors is now available (http://sdcc.sourceforge.net).
Sources, documentation and binaries compiled for x86 Linux, x86 MS Windows and Mac OS X universal binaries are available.... read more

Posted by Borut Ražem 2012-07-09

Small Device C Compiler 3.1.0 released

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, Z180, Rabbit 2000, HC08 and PIC microprocessors is now available (http://sdcc.sourceforge.net).
Sources, documentation and binaries compiled for x86 Linux, x86 MS Windows and PPC Mac OS X are available.

SDCC 3.1.0 Feature List

* include/pic, non-free/include/pic, lib/pic, non-free/lib/pic renamed to */pic14
* implemented --fomit-frame-pointer for mcs51
* support for use of sdcc in z88dk (--reserve-regs-iy and --no-optsdcc-in-asm options; smallc calling convention)
* new register allocator in the z80 and gbz80 ports (optimal when using --opt-code-size and a sufficiently high value for --max-allocs-per-node for the z80 port)
* C99 designated initializers
* added strxfrm() and strcoll() functions; strerror() is the only string handling function still missing
* added support for pic18f2xk22/pic18f4xk22 family (requires gputils > 0.14.0 and --enable-new-pics configure flag)
* added support for enhanced core pic14 devices (requires gputils > 0.14.0 and --enable-new-pics configure flag)
* setjmp() / longjmp() for the z80 port
* _Bool / bool for the hc08, pic16 and pic14 ports
* sdcpp synchronized with GNU cpp 4.6.1
* z180 port
* very basic (no integer constants, multiplication, division, shifts or use as return value) support for data types long long, unsigned long long, int_fast64_t, int_least64_t, int64_t, uint_fast64_t, uint_least64_t, uint64_t in the z80, z180, r2k and gbz80 ports
* r2k port for the Rabbit 2000 and Rabbit 3000... read more

Posted by Borut Ražem 2011-11-27

Small Device C Compiler 3.0.0 released

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, HC08, and PIC microprocessors is now available (http://sdcc.sourceforge.net).
Sources, documentation and binaries compiled for x86 Linux, x86 MS Windows and PPC Mac OS X are available.

SDCC 3.0.0 Feature List

* sdcpp synchronized with GNU cpp 4.5.0
* changed z80 and gb targets object file extension to .rel
* special sdcc keywords which are not preceded by a double underscore are deprecated in sdcc version 3.0.0 and higher. See section ANSI-Compliance in sdccman
* xa51 and avr targets are disabled by default in sdcc version 3.0.0 and higher
* introduced new memory model huge for mcs51 to use bankswitching for all functions
* removed generation of GameBoy binary image file format, rrgb map file format and no$gmb sym file format from sdld linker. Utility makebin generates GameBoy binary image file format, utility as2gbmap utility converts sdas map file to rrgb map and no$gmb sym file formas.
* implemented __builtin_offsetof
* asxxxx / aslink renamed to sdas / sdld and synchronized with ASXXXX V2.0
* majority of sdcc run time library released under GPL+LE license (see http://sourceforge.net/apps/trac/sdcc/wiki/Files%20and%20Licenses\)
* introduced --use-non-free command line option
* non free (non GPL compatible) header and library files moved to non-free directory
* deprecated --no-pack-iram command line option... read more

Posted by Borut Ražem 2010-11-01

Small Device C Compiler 2.9.0 released

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, HC08, and PIC microprocessors is now available (http://sdcc.sourceforge.net). Sources, documentation and binaries compiled for x86 Linux, x86 MS Windows and PPC Mac OS X are available.

SDCC 2.9.0 Feature List:

* sdcpp synchronized with GNU cpp 4.3.3
* Integer constants written in binary (prefix 0b or 0B, followed by a sequence of 0 and 1digits) are now supported as a SDCC extension.
* pic16 *printf() library functions return int
* disabled support of undocumented and not standard compliant 'b' binary format specifier ("%b", "%hb" and "%lb") in pic16 *printf() and printf_tiny() library functions
* fixed initialization of unnamed bitfields members of objects of structure and union type
* many optimizations to reduce code size and increase speed in the Z80 backend
* added support for ar format libraries to adcc asxxxx
* libraries, included in sdcc packages, are in ar format
* sdcc asxxxx license changed to GPLv3
* added support for many PIC16 devices... read more

Posted by Borut Ražem 2009-03-22

Small Device C Compiler 2.8.0 released

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, HC08, and PIC microprocessors is now available (http://sdcc.sourceforge.net). Sources, documentation and binaries compiled for x86 Linux, x86 MS Windows and universal Mac OS X are available.

SDCC 2.8.0 Feature List:

* added predefined preprocessor macro SDCC_REVISION holding SDCC's subversion revision number
* added preprocessor macros SDCC_PARMS_IN_BANK1, SDCC_FLOAT_REENT and SDCC_INT_LONG_REENT
* sdcpp synchronized with GNU cpp 4.2.3
* multiple infiles for sdcclib
* added option --acall-ajmp: replaces lcall/ljmp with acall/ajmp
* added support for many PIC devices
* sdcc executables on Mac OS X are built as universal binaries, so that they can run on both ppc and i386 Mac OS X
* added --Werror command line option
* Windows installer enhancements
* generation of cdb debug info for as-z80 and link-z80
* generation of cdb debug info for variables in pdata for mcs51
* Tail call optimization for functions that take no parameters on Z80
* Improved multiplication of unsigned chars on Z80
* ISO/IEC 9899 standard compliant integer promotion of integer function arguments if --std-cXX is defined in command line ... read more

Posted by Borut Ražem 2008-03-30

Small Device C Compiler 2.7.0 released

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, HC08, and PIC microprocessors is now available (http://sdcc.sourceforge.net). Sources, documentation and binaries compiled for x86 Linux, x86 MS Windows and PPC Mac OS X are available.

SDCC 2.7.0 Feature List:

* enabled Z80 floating point support
* ucSim simulator and SDCDB debugger native WIN32 port
* added gnu readline support to sdcdb
* removed deprecated pragmas
* sdcpp preprocessor synchronized with GNU cpp 4.1.2
* use memory buffers instead of temporary files
* added --fdollars-in-identifier command line option
* added --funsigned-char command line option
* SDCC libraries are --std-c99 compatible
* added --fverbose-asm command line option
* Z80 assembler is now case sensitive
* a default heap is added and automatically initialized
* initialized variables with an absolute address are allocated and initialized
* support for inline functions; consider it alpha quality... read more

Posted by Borut Ražem 2007-05-31

Small Device C Compiler 2.6.0 released

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, PIC, and HC08 microprocessors is now available. Sources, documentation and binaries compiled for x86 Linux, x86 Microsoft Windows and PPC Mac OS X are available.

This release improves the compiler's conformance to the C standard. Significant progress was also made on the PIC (both 14- and 16-bit) backends. For the 8051 SDCC has seen the addition of a new memory model, code banking and bit variables. Numerous feature requests and bug fixes are included as well.... read more

Posted by Borut Ražem 2006-08-03

Small Device C Compiler 2.5.0 released

A new release of SDCC, the portable optimising compiler for 8051, DS390, Z80, PIC (16-bit), and HC08 microprocessors is now available. Binaries are available for Linux and Microsoft Windows.

This release improves the compiler's conformance to the C standard. Significant progress was also made on the PIC (16-bit) and HC08 backends. Numerous smaller feature requests and bug fixes are included as well.

Posted by Erik Petrich 2005-05-14

Small Device C Compiler 2.4.0 released

A new release of SDCC, the portable optimising compiler for 8051, DS390, and Z80 microprocessors is now available. Included is preliminary support for the HC08, Pic 14, and Pic 16 series. Binaries are available for Linux, Mac OS X, and Microsoft Windows.

Posted by Michael Hope 2004-02-26

Small Device C Compiler v2.3.0 released

This is the latest stable release. Includes over six months of bug fixes, complete support for the Z80, support for the DS390, a set of regression tests, improved documentation, and initial support for the PIC and AVR targets. Binaries are available for Linux/x86, Linux/ppc, and win32.

Posted by Michael Hope 2001-10-02
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.