> Never seen anything like this. dlopen returns the error "Invalid
> Argument" when I try to open tmp.so so this is more than a warning.
> ld -o tmp.so -G -b64 -bexpall -bnoentry wrf_user_fortran_util_0_W.o
> ld: 0711-768 WARNING: Object wrf_user_fortran_util_0.o, section 31,
> function ._savef28:
> The branch at address 0x4 is not followed by a recognized no-op
> or TOC-reload instruction. The unrecognized instruction is
Bad object code. Recompile.
Branches in code are followed by a "TOC-reload" instruction (which the
linker fixes up during link-editing). The compiler should generate
the right code sequence, where the branch-and-link is followed by
a no-op; if the branch becomes an out-of-module call, the linker
replaces the no-op with a reload to restore R2 from the value saved
on the stack by the glue code (which is what accomplishes the necessary
work for the out-of-module call).
Oh...an out of module call is when your app calls something in a
shared library, by way of example.
If the compiler doesn't generate the right code, the linker complains
since an out of module call that doesn't restore R2 upon return will
completely hose your execution. Therefore, the compiler in this case
is doing the wrong thing. You may have to report a bug (assuming
the code is correct).
Gary R. Hook / AIX PartnerWorld for Developers / These opinions are MINE