Do this table linked, if you remove all functions, which use it?
It not, you can try the next method (Another hack).

extern(C) immutable int[] table_ = [1,2,3]; //table_.mangleof ==
"table_";

int foo()
{
       pragma(mangle, "table_") extern immutable int[] table;
       return table[1];
}

In this hack we "fooling" the compiler. We say, that "table_"
doesn't used in foo(). foo() use another extern array "table"
with overrided mangle (new feature)

On Tuesday, 14 May 2013 at 18:36:32 UTC, Dmitry Olshansky wrote:
14-May-2013 22:27, Nick Sabalausky пишет:
On Tue, 14 May 2013 18:59:22 +0400
Dmitry Olshansky <[email protected]> wrote:

Now is the challenge is how do I make it NOT link in tables if I
don't call the corresponding functions.


Don't some linkers do unreferenced symbol removal?

Interestingly it does ... for functions.

Maybe that's all
that's needed?


Might be - if that was my personal need I might set off to search some smart linker. But the thing will end up in the standard library and surely there it's stuck with ld/optlink.

Reply via email to