Fedora 18 Update: avr-libc-1.8.0-1.fc18

updates at fedoraproject.org updates at fedoraproject.org
Tue Nov 27 05:34:03 UTC 2012


--------------------------------------------------------------------------------
Fedora Update Notification
FEDORA-2012-18369
2012-11-17 02:17:29
--------------------------------------------------------------------------------

Name        : avr-libc
Product     : Fedora 18
Version     : 1.8.0
Release     : 1.fc18
URL         : http://www.nongnu.org/avr-libc/
Summary     : C library for use with GCC on Atmel AVR microcontrollers
Description :
AVR Libc is a Free Software project whose goal is to provide a high quality C
library for use with GCC on Atmel AVR microcontrollers.

AVR Libc is licensed under a single unified license. This so-called modified
Berkeley license is intented to be compatible with most Free Software licenses
like the GPL, yet impose as little restrictions for the use of the library in
closed-source commercial applications as possible.

--------------------------------------------------------------------------------
Update Information:

- avr-binutils updated to 2.23.1 with avr format option for avr-size
- avr-gcc updated to 4.7.2 with better optimization and more supported MCUs
- avr-libc updated to 1.8.0 with PROGMEM fixes

Some projects use PROGMEM attribute incorrectly. New avr-gcc version no longer tolerates that, so if you are affected, check your PROGMEM usage.

- there's no such thing like PROGMEM variable, it's just some pointer and it depends how(where) you use such variable

- PROGMEM just tells compiler where to put initialization data, nothing more, nothing less. So it should be only there, where you initialize your variable.

- PROGMEM is no type attribute, so when you use it with type definition, nothing happens.

- variable working with PROGMEM data must be always 'const'

Wrong PROGMEM usage:
const char PROGMEM *foo;
typedef char PROGMEM *progchar;
void foo(const char *PROGMEM abc);

The only correct usage:
const char *progstring;
const char *progstring PROGMEM = "hello world";

Because PROGMEM does not affect type declaration, avr-libc dropped all prog_char, prog_* types. If you need them for some reason, use #define __PROG_TYPES_COMPAT__ (two underlines before and after, autoformating removed them). You still need to make sure, you have PROGMEM where needed (hint grep your code for "prog_.*=" and make sure you have PROGMEM specified where you initialize with data) and also make sure that all variables are 'const'.

const char *s can contain both standard and progmem data, so it's good for better readability to define your own "progmem" types, it won't affect the code, but you'll immediately see that such variable is supposed to work with progmem data. 

--------------------------------------------------------------------------------
References:

  [ 1 ] Bug #851660 - avr-size missing -C (avr) option
        https://bugzilla.redhat.com/show_bug.cgi?id=851660
--------------------------------------------------------------------------------

This update can be installed with the "yum" update program.  Use 
su -c 'yum update avr-libc' at the command line.
For more information, refer to "Managing Software with yum",
available at http://docs.fedoraproject.org/yum/.

All packages are signed with the Fedora Project GPG key.  More details on the
GPG keys used by the Fedora Project can be found at
https://fedoraproject.org/keys
--------------------------------------------------------------------------------


More information about the package-announce mailing list