comparison 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
comparison
equal deleted inserted replaced
7995:89dd4531b26a 7996:6a7db240b3a3
355 355
356 if (! error_state) 356 if (! error_state)
357 { 357 {
358 if (oct_file) 358 if (oct_file)
359 { 359 {
360 void *function = oct_file.search (fcn_name, xmangle_name); 360 void *function = oct_file.search (fcn_name, name_mangler);
361
362 if (! function)
363 {
364 // FIXME -- can we determine this C mangling scheme
365 // automatically at run time or configure time?
366
367 function = oct_file.search (fcn_name, name_uscore_mangler);
368 }
361 369
362 if (function) 370 if (function)
363 { 371 {
364 octave_dld_fcn_getter f 372 octave_dld_fcn_getter f
365 = FCN_PTR_CAST (octave_dld_fcn_getter, function); 373 = FCN_PTR_CAST (octave_dld_fcn_getter, function);
525 { 533 {
526 return (instance_ok ()) ? instance->do_remove_mex (fcn_name, shl) : false; 534 return (instance_ok ()) ? instance->do_remove_mex (fcn_name, shl) : false;
527 } 535 }
528 536
529 std::string 537 std::string
530 octave_dynamic_loader::mangle_name (const std::string& name) 538 octave_dynamic_loader::name_mangler (const std::string& name)
531 { 539 {
532 #if defined (CXX_PREPENDS_UNDERSCORE) 540 return "G" + name;
533 std::string retval ("_FS");
534 #else
535 std::string retval ("FS");
536 #endif
537 retval.append (name);
538 retval.append ("_");
539 retval.append (STRINGIFY (CXX_ABI));
540 return retval;
541 } 541 }
542 542
543 std::string 543 std::string
544 octave_dynamic_loader::xmangle_name (const std::string& name) 544 octave_dynamic_loader::name_uscore_mangler (const std::string& name)
545 { 545 {
546 #if defined (CXX_PREPENDS_UNDERSCORE) 546 return "_G" + name;
547 std::string retval ("_G");
548 #else
549 std::string retval ("G");
550 #endif
551 retval.append (name);
552 retval.append ("_");
553 retval.append (STRINGIFY (CXX_ABI));
554 return retval;
555 } 547 }
556 548
557 std::string 549 std::string
558 octave_dynamic_loader::mex_mangler (const std::string&) 550 octave_dynamic_loader::mex_mangler (const std::string&)
559 { 551 {