| >> <<< Note 2075.1 by WIBBIN::NOYCE "Pulling weeds, pickin' stones" >>>
>>This is a duplicate of #2030 -- see replies .6 and .9
I don't wish to belabor the point, but I want to make sure that I'm
not missing something.
In 2030, the solution is to compile all c modules that use the
psect with /extern=common. As I understand it, this will result in
all modules having the same incorrect length, but will still work.
In my case (and this is information I am just now providing), the
customer is linking a c module against a shareable image created
by a basic program, so I do not have the option of compiling everything
with /extern=common. So far, the only workaround that I have found
is to compile the c code with /nooptimize.
Is this a reliable workaround?
Also, can you shed a bit more light on the nature of the problem? Is it
simply a matter of using /extern=common creating a psect that is too large,
or are there other factors to consider. I expect that the csc will see
more of this, and it would be nice to be able to fully explain the
situation to our customers (and for us to fully understand the situation).
Thanks,
Jerry
|
|
I'd *strongly* look at using a process or global section, and get rid
of the COMMON. (The COMMON can cause maintenance problems, and quite
regularly requires relinking. Sections do not.) Alternatively, have
the C code locate the virtual address of the COMMON at run-time, and
use pointers. (I can point you at some of my previous anti-COMMON
rants, if you'd like. :-)
|