g77 block data initialization
Mon Oct 19 11:19:00 GMT 1998
>>>>> "Skip" == Skip Egdorf <email@example.com> writes:
Skip> The main program is basically
Skip> PROGRAM MAIN
Skip> CALL STUFF
Skip> where STUFF is all the actual program. I am replacing this with
Skip> something like
Skip> #include <dlfcn.h>
Skip> main (int ac, char **av)
Skip> h1 = dlopen ("flib1.so", ...);
Skip> h2 = dlopen ("flib2.so", ...);
Skip> f = dlsym (h1, "STUFF_");
Uhm, why? What's the advantage over just linking the shared (or even
static) libraries as normal? [Note, BTW, if this is x86, that shared
objects consume a precious register, I believe -- can someone confirm
that, as we should probably note it in the doc?]
Skip> The egcs problem seems to be that the initialization performed
Skip> by the block-data programs ONLY happens in the FIRST archive
Skip> loaded. Any block datas in the second, third, ... libraries do
Skip> not seem to have their initializations performed.
To address any bug we'd need a runnable example and `g77 -v' output,
per manual. You are using EXTERNAL for the block data and making sure
that's resolved, aren't you?
Skip> Could someone
Skip> a) give a brief tutorial, or point at a brief tutorial on how
Skip> fortran block data is implemented in egcs? I'm stonewalled, not
Skip> knowing exactly what I am looking at or for.
If you can tell us what information is missing from the g77 manual,
perhaps we can fill it in. The second index entry (Block Data and
Libraries) seems to be the relevant one.
More information about the Gcc-bugs