http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59888
--- Comment #4 from Iain Sandoe <iains at gcc dot gnu.org> --- So, essentially, the complaint from the darwin linker is that it does not want to see a relocation in the .const section (which is part of the text segment). It might be argued that this is right/wrong - but it is at least reasonable - the relevant segment should be marked read-only .. but typical darwin relocs can be re-written lazily (as and when the symbol is required). the hack, proof-of-principle, solution above was to move the reference to the .const_data section. Whether this is a back-end fault or perhaps a constraint of darwin not present for binutils-ld I cannot tell immediately and would welcome input from the Fortran maintainers as to the decoration intended for the indirect reference produced for c_funloc (defined_function).