--------------------------------------------------------------------------------
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
--------------------------------------------------------------------------------
_______________________________________________
package-announce mailing list
[email protected]
https://admin.fedoraproject.org/mailman/listinfo/package-announce

Reply via email to