[U-Boot] [PATCH v2 1/2] usb: composite: fix possible alignment issues

Tom Rini trini at konsulko.com
Fri Nov 22 18:10:39 UTC 2019


On Fri, Nov 22, 2019 at 06:32:13PM +0100, Heinrich Schuchardt wrote:
> On 11/22/19 1:14 PM, Marek Vasut wrote:
> > On 11/22/19 12:58 PM, Heinrich Schuchardt wrote:
> > > On 11/22/19 8:47 AM, Simon Goldschmidt wrote:
> > > > On Fri, Nov 22, 2019 at 7:50 AM Heinrich Schuchardt
> > > > <xypron.glpk at gmx.de> wrote:
> > > > > 
> > > > > On 11/22/19 1:25 AM, Marek Vasut wrote:
> > > > > > On 11/21/19 10:15 PM, Simon Goldschmidt wrote:
> > > > > > > Since upgrading to gcc9, warnings are issued:
> > > > > > > "taking address of packed member of ‘...’ may result in an unaligned
> > > > > > > pointer value"
> > > > > > > 
> > > > > > > Fix this by converting two functions to use unaligned access since
> > > > > > > packed
> > > > > > > structures may be on an unaligned address, depending on USB hardware.
> > > > > > > 
> > > > > > > Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt at gmail.com>
> > > > > > 
> > > > > > Applied both, thanks.
> > > > > > 
> > > > > 
> > > > > With these two patches applied to origin/master GCC 9.2.1 does not
> > > > > produce warnings anymore but for tbs2910_defconfig:
> > > > > 
> > > > > u-boot.imx exceeds file size limit:
> > > > >      limit:  0x5fc00 bytes
> > > > >      actual: 0x60c00 bytes
> > > > >      excess: 0x1000 bytes
> > > > > make: *** [Makefile:1159: u-boot.imx] Error 1
> > > > > make: *** Deleting file 'u-boot.imx'
> > > > > 
> > > > > So irrespective of my patches for the USB keyboard we need to address
> > > > > the size limit on TBS2910.
> > > > 
> > > > Is that due to my cleanup patches? Can you compare the size by compiling
> > > > without them? That should work if you leave away the -Werror switch.
> > > > 
> > > > Regards,
> > > > Simon
> > > 
> > > GCC 9.2.1 without your patches but with -Wno-address-of-packed-member:
> > > 
> > > u-boot.imx exceeds file size limit:
> > >    limit:  0x5fc00 bytes
> > >    actual: 0x60c00 bytes
> > >    excess: 0x1000 bytes
> > 
> > I see, so you have additional options added to the build which trigger
> > the size issue. It would be nice to mention that up front. Do you use
> > any other extra options ?
> > 
> 
> Dear Marek,
> 
> Simon asked me to determine if origin/master exceeds the u-boot.imx size
> limit when compiled without his patches. The only way to do so is to
> suppress the build warnings.
> 
> -Wno-address-of-packed-member is the only option I added to
> origin/master. This option suppresses the build error that we get
> without Simon's patches.

For the record, with gcc 7.2, these types of fixes result in:
               u-boot: add: 0/0, grow: 2/0 bytes: 36/0 (36)
                 function                                   old     new   delta
                 collect_langs                               76     100     +24
                 composite_setup                           2440    2452     +12
               spl-u-boot-spl: add: 0/0, grow: 2/0 bytes: 36/0 (36)
                 function                                   old     new   delta
                 collect_langs                               76     100     +24
                 composite_setup                           2440    2452     +12

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20191122/cb0ea46b/attachment.sig>


More information about the U-Boot mailing list