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