Mercurial > hg > octave-lyh
diff src/dynamic-ld.cc @ 7996:6a7db240b3a3
configure.in: eliminate CXX_ABI and OCTAVE_CXX_PREPEND_UNDERSCORE
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 30 Jul 2008 14:13:45 -0400 |
parents | 1b63f8da772d |
children | 9dddbad47122 |
line wrap: on
line diff
--- a/src/dynamic-ld.cc +++ b/src/dynamic-ld.cc @@ -357,7 +357,15 @@ { if (oct_file) { - void *function = oct_file.search (fcn_name, xmangle_name); + void *function = oct_file.search (fcn_name, name_mangler); + + if (! function) + { + // FIXME -- can we determine this C mangling scheme + // automatically at run time or configure time? + + function = oct_file.search (fcn_name, name_uscore_mangler); + } if (function) { @@ -527,31 +535,15 @@ } std::string -octave_dynamic_loader::mangle_name (const std::string& name) +octave_dynamic_loader::name_mangler (const std::string& name) { -#if defined (CXX_PREPENDS_UNDERSCORE) - std::string retval ("_FS"); -#else - std::string retval ("FS"); -#endif - retval.append (name); - retval.append ("_"); - retval.append (STRINGIFY (CXX_ABI)); - return retval; + return "G" + name; } std::string -octave_dynamic_loader::xmangle_name (const std::string& name) +octave_dynamic_loader::name_uscore_mangler (const std::string& name) { -#if defined (CXX_PREPENDS_UNDERSCORE) - std::string retval ("_G"); -#else - std::string retval ("G"); -#endif - retval.append (name); - retval.append ("_"); - retval.append (STRINGIFY (CXX_ABI)); - return retval; + return "_G" + name; } std::string