[ECOS] raw output to serial port and dataflash + legacy API questions

Andrew Lunn andrew@lunn.ch
Mon May 11 19:04:00 GMT 2009

> > 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)).

I _think_ this just stops the warning. The symbol itself is not
changed. This attribute is most often used for parameters passed to a
function where for backward compatibility etc, you don't reference one
of the parameters passed in.

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

I don't think so.

> 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.

This might suggest you are not using --function-sections and
--data-sections. Using these options the compiler puts each function
and variable into its own section and so allows the linker to do finer
grain garbage discard. Without these options it can only throw away
complete files when all symbols in a file are not used. With these
options it can throw away individual unused functions and variables.


Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

More information about the Ecos-discuss mailing list