Ignore:
Timestamp:
Apr 22, 2007, 10:57:48 AM (18 years ago)
Author:
bird
Message:

Applied patch from Paul (aka Creeping).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/essentials/dev-lang/perl/lib/ExtUtils/Mksymlists.pm

    r3187 r3188  
    103103    print DEF "DATA LOADONCALL NONSHARED MULTIPLE\n";
    104104    print DEF "EXPORTS\n  ";
    105     print DEF join("\n  ",@{$data->{DL_VARS}}, "\n") if @{$data->{DL_VARS}};
    106     print DEF join("\n  ",@{$data->{FUNCLIST}}, "\n") if @{$data->{FUNCLIST}};
     105    my @syms;
     106    # Export public symbols both with and without underscores to
     107    # ensure compatibility between DLLs from different compilers
     108    # NOTE: DynaLoader itself only uses the names without underscores,
     109    # so this is only to cover the case when the extension DLL may be
     110    # linked to directly from C. GSAR 97-07-10
     111    if ($Config::Config{'cc'} =~ /^bcc/i) {
     112        for (@{$data->{DL_VARS}}, @{$data->{FUNCLIST}}) {
     113            push @syms, "_$_", "$_ = _$_";
     114        }
     115    }
     116    else {
     117        for (@{$data->{DL_VARS}}, @{$data->{FUNCLIST}}) {
     118            push @syms, "_$_";
     119        }
     120    }
     121    print DEF join("\n  ",@syms, "\n") if @syms;
     122#    print DEF join("\n  ",@{$data->{DL_VARS}}, "\n ") if @{$data->{DL_VARS}};
     123#    print DEF join("\n  ",@{$data->{FUNCLIST}}, "\n") if @{$data->{FUNCLIST}};
    107124    if (%{$data->{IMPORTS}}) {
    108125        print DEF "IMPORTS\n";
Note: See TracChangeset for help on using the changeset viewer.