I made a mistake with the patch. I had a version of 3.4.1 release of toolchain in path which was of version 4.6.2 on which I was trying the changes. The 4.6.2 version was giving a warning saying "requested alignment for 'a' is greater than implemented alignment of 1" and the alignment was not happening properly.
I tried changing the BIGGEST_ALIGNMENT to 16 but applied the patch to the trunk version which already had the fix. Sorry for the mistake. -George- PS :- Changing the BIGGEST_ALIGNMENT to 16 removed the warning when tried in the 4.6.2 toolchain but it did not change the alignment in the output elf when the disassembly was checked. ________________________________________ From: Georg-Johann Lay [a...@gjlay.de] Sent: Monday, November 19, 2012 11:34 PM To: Weddington, Eric Cc: Thomas, George; avr-gcc-list@nongnu.org Subject: Re: [avr-gcc-list] Align attribute in gcc requiring alignment of 2 for Xmegas with USB. Weddington, Eric wrote: > >> >>> Section 20.13.7 of the Xmega manual speaks about the requirement of 16 >>> bit alignment. >>> >>> http://www.atmel.com/images/doc8331.pdf >>> >>> As the MAXIMUM_ALIGNMENT in avr.h is set to 1, it throws an error when >>> trying to compile. >>> >>> I have attached a patch which sets it to 2 by default in the compiler. I >>> have also attached a case which fails. >>> >>> Would this be an acceptable change ? >> Hi George, >> >> No, this would not be an acceptable change, because it is changing the >> data alignment for the whole compiler, when there is only a restriction on >> a data structure for a single peripheral for a small subset of the AVR >> processors. >> >> This is why the data attribute "aligned" exists. Just do this for your >> data structure: __attribute__ ((aligned (2))) > > Excuse me, perhaps I have this wrong... (It's still early for me). > > Does changing MAXIMUM_ALIGNMENT allow the aligned attribute to work? If we > don't change MAXIMUM_ALIGNMENT, are you saying that the aligned attribute > fails? See PR53448. In general, that is no issue in < 4.7 because only xmega needs align(2) and these versions don't support xmega. Besides that, 4.7 had quite some clean-up of w.r.t. ELF, e.g. avr/elf.h. Even if it works with changing MAXIMUM_ALIGNMENT, that's not the purpose of MAXIMUM_ALIGNMENT. Johann _______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org https://lists.nongnu.org/mailman/listinfo/avr-gcc-list