chapel-lang/chapel — pull request #152 by gbtitus (2014-08-14 17:30:07+00:00)
Title: Avoid C/C++ ELF section disagreement for chpl_qthread_done_initializing.

As it stood, the definition of chpl_qthread_done_initializing in the .h
file here resulted in that symbol being assigned to the uninitialized
.bss ELF section when the .h file was compiled by g++ (for example, for
runtime/src/qio/auxFilesys/hdfs/qio_plugin_hdfs_stubs.cc), and to the
"common" meta-section when it was compiled by gcc. The .bss section
entry for this symbol in the resulting qio_plugin_hdfs.o then caused
that file to get linked into user programs, which resulted in a gripe
when the gcc-driven linker couldn't find __gxx_personality_v0, a symbol
which is defined in libstdc++, which isn't searched during gcc-driven
linking.

Fix this by defining this symbol as extern (extern "C" for C++) in the
.h file, and move the actual definition into the .c file.