[LLVMdev] Linkage warning in current trunk

Jonathan Ragan-Kelley jrk at csail.mit.edu
Wed Dec 28 10:02:09 PST 2011


Building on OS X 10.7.1 with the standard toolchain, I have seen the
following linker warnings going back a number of versions in trunk
whenever I build an executable linked with LLVM:

    ld: warning: direct access in llvm::fouts()     to global weak
symbol llvm::formatted_raw_ostream::~formatted_raw_ostream() means the
weak symbol cannot be overridden at runtime. This was likely caused by
different translation units being compiled with different visibility
settings.
    ld: warning: direct access in llvm::ferrs()     to global weak
symbol llvm::formatted_raw_ostream::~formatted_raw_ostream() means the
weak symbol cannot be overridden at runtime. This was likely caused by
different translation units being compiled with different visibility
settings.
    ld: warning: direct access in llvm::fdbgs()     to global weak
symbol llvm::formatted_raw_ostream::~formatted_raw_ostream() means the
weak symbol cannot be overridden at runtime. This was likely caused by
different translation units being compiled with different visibility
settings.

My code makes no references to the fouts/ferrs/fdbgs accessors—the
only references are in include/llvm/Support/FormattedStream.h and
lib/Support/FormattedStream.cpp.

This happens with a clean build of both LLVM and my project—I don't
believe it's an outdated header anywhere (at least outside LLVM).

(The only potential oddity: this project uses the OCaml bindings.)




More information about the llvm-dev mailing list