Reply by Kenneth Porter May 24, 20012001-05-24
On Wed, 23 May 2001 17:25:25 -0000, Robert K Yu wrote:

> I'm using the using the ADSP-21xxx linker version
> 2.3.0.0 which came with VisualDSP++. When I try
> to use the -e (eliminate unused symbols) option
> on a very simple C project (see below) and the "stock"
> ADSP-21160.ldf straight out of the VisualDSP directory,
> the linker quits with the following message:
>
> [Error E2007] LinkProject.cpp:0 No object Needed??

The linker is deliberately dumb here. It needs to know a root symbol to
keep, and from that it determines what else is connected to it.
Everything else is eligible to be discarded. If you don't specify the
root symbol, the linker has an empty "in use" tree, so it figures it
can discard everything.

IIRC, you need to specify a symbol from the C++ startup code to anchor
your code, and you need to specify which segments are eligible for
pruning.



Reply by Robert K Yu May 23, 20012001-05-23

hi everyone,

I'm using the using the ADSP-21xxx linker version
2.3.0.0 which came with VisualDSP++. When I try
to use the -e (eliminate unused symbols) option
on a very simple C project (see below) and the "stock"
ADSP-21160.ldf straight out of the VisualDSP directory,
the linker quits with the following message:

[Error E2007] LinkProject.cpp:0 No object Needed??
Linker finished with 1 error(s) 0 warning(s)
cc21k: Fatal Error: Link failed
Tool failed with exit/exception code: 1.

I get the same effect if I remove the "-e" flag and
add "ELIMINATE()" to the .ldf.

If I use "-ev" (eliminate verbose), the linker quits
without even a diagnostic message.

does anyone know what I'm doing wrong?

thanks
-Rob

the example program is compiled with "-g -21160rev0":
void main()
{
float a;
a = 1.0;
a += 1.0;
}