public inbox for ecos-devel@sourceware.org
 help / color / mirror / Atom feed
From: Evgeniy Dushistov <dushistov@mail.ru>
To: Dave Milter <davemilter@gmail.com>,
	ecos-discuss@ecos.sourceware.org,
		ecos-devel@ecos.sourceware.org
Subject: Re: [ECOS] raw output to serial port and dataflash + legacy API 	questions
Date: Mon, 11 May 2009 18:35:00 -0000	[thread overview]
Message-ID: <20090511181726.GA29238@rain> (raw)
In-Reply-To: <20090511175743.GA4940@lunn.ch>

On Mon, May 11, 2009 at 07:57:43PM +0200, Andrew Lunn wrote:
> > For example, you write this code in some ".c" file:
> > 
> > __externC cyg_spi_at91_device_t spi_dataflash_dev0;
> > 
> > CYG_DATAFLASH_FLASH_DRIVER( cyg_eb55_dataflash,
> >                             &spi_dataflash_dev0,
> >                             0x08000000,
> >                             0,
> >                             16 );
> > 
> > this file contains only definitions of variables,
> > no code. For some reasons linker will remove
> > such kind of object file in the resulting binary, and also all the stuff like dataflash module, because
> > without this file there are no links to dataflash module functions.
> > 
> > I suppose, this is bug either in build system of ecos, or in arm-eabi toolchain.
> > 
> > The workaround for this issue, that I used, is simple. I add after
> > CYG_DATAFLASH_FLASH_DRIVER the dummy function:
> > 
> > CYG_DATAFLASH_FLASH_DRIVER( cyg_eb55_dataflash,
> >                              0,
> >                              16 );
> >  
> > +void cyg_eb55_dataflash_func(int p)
> > +{
> > +}
> > +
> 
> If something is not referenced, the linker will throw it away. It is
> unwanted bloat.
> 

The variable that is not referenced is marked as __attribute__((used)).

So compiler doesn't inform linker that there is no need to throw it
away?

And as you see, actually I not add reference to variable in
workaround, I add function to which add reference.
So reference count to flash driver descriptions hasn't changed,
but linker do not remove it.

-- 
/Evgeniy

  reply	other threads:[~2009-05-11 18:35 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <2a382c6e0905070357u76683dacqfe8bd885c9260671@mail.gmail.com>
2009-05-11 17:44 ` Evgeniy Dushistov
2009-05-11 17:57   ` Andrew Lunn
2009-05-11 18:35     ` Evgeniy Dushistov [this message]
2009-05-11 19:04       ` Andrew Lunn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090511181726.GA29238@rain \
    --to=dushistov@mail.ru \
    --cc=davemilter@gmail.com \
    --cc=ecos-devel@ecos.sourceware.org \
    --cc=ecos-discuss@ecos.sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).