Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PATCH] Module installation with Visual C++ #1844

Closed
p5pRT opened this issue Apr 15, 2000 · 5 comments
Closed

[PATCH] Module installation with Visual C++ #1844

p5pRT opened this issue Apr 15, 2000 · 5 comments

Comments

@p5pRT
Copy link

p5pRT commented Apr 15, 2000

Migrated from rt.perl.org#3107 (status was 'resolved')

Searchable as RT3107$

@p5pRT
Copy link
Author

p5pRT commented Apr 15, 2000

From joe@ispsoft.de

When installing an XS module under Win32, I typically get
warnings like these​:

  Note (probably harmless)​: No library found for oldnames.lib

The reason is that the library search path doesn't recognice
the environment variable LIB, which points to the Visual C++
libraries. The following patch fixes the problems in a
conservative way, that should be acceptable.

C​:\WINNT\Profiles\jwi\Desktop>diff -cb c​:\Perl\lib\ExtUtils\Liblist.pm.orig c​:\P
erl\lib\ExtUtils\Liblist.pm
*** c​:\Perl\lib\ExtUtils\Liblist.pm.orig Sat Apr 15 20​:03​:40 2000
--- c​:\Perl\lib\ExtUtils\Liblist.pm Sat Apr 15 20​:03​:45 2000
***************
*** 230,235 ****
--- 230,239 ----
  # add "$Config{installarchlib}/CORE" to default search path
  push @​libpath, "$Config{installarchlib}/CORE";

+ if ($VC and exists($ENV{LIB}) and defined($ENV{LIB})) {
+ push(@​libpath, split(/;/, $ENV{LIB}));
+ }
+
  foreach (Text​::ParseWords​::quotewords('\s+', 0, $potential_libs)){

  $thislib = $_;

Perl Info

Flags:
    category=library
    severity=medium

Site configuration information for perl v5.6.0:

Configured by jwi at Fri Mar 24 12:36:06 2000.

Summary of my perl5 (revision 5 version 6 subversion 0) configuration:
  Platform:
    osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread
    uname=''
    config_args='undef'
    hint=recommended, useposix=true, d_sigaction=undef
    usethreads=undef use5005threads=undef useithreads=define usemultiplicity=define
    useperlio=undef d_sfio=undef uselargefiles=undef 
    use64bitint=undef use64bitall=undef uselongdouble=undef usesocks=undef
  Compiler:
    cc='cl', optimize='-O1 -MD -DNDEBUG', gccversion=
    cppflags='-DWIN32'
    ccflags ='-O1 -MD -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT  -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DPERL_MSVCRT_READFIX'
    stdchar='char', d_stdstdio=define, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=10
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=4
    alignbytes=8, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='link', ldflags ='-nologo -nodefaultlib -release  -libpath:"C:\Perl\lib\CORE"  -machine:x86'
    libpth="d:\prg\Bolero\REPOSI~1\LIB" "C:\Perl\lib\CORE"
    libs=  oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib  comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib  netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib  version.lib odbc32.lib odbccp32.lib msvcrt.lib
    libc=msvcrt.lib, so=dll, useshrplib=yes, libperl=perl56.lib
  Dynamic Linking:
    dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -release  -libpath:"C:\Perl\lib\CORE"  -machine:x86'

Locally applied patches:
    ACTIVEPERL_LOCAL_PATCHES_ENTRY


@INC for perl v5.6.0:
    C:/Perl/lib
    C:/Perl/site/lib
    .


Environment for perl v5.6.0:
    HOME (unset)
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=C:\Perl\bin\;d:\prg\Bolero\bin;C:\WINNT\system32;C:\WINNT;C:\WINNT\system32\nls\ENGLISH;C:\WINNT\system32\nls;d:\prg\Bolero\REPOSI~1\BIN;d:\prg\Bolero\REPOSI~1\PGM;;d:\prg\cygnus\cygwin-b20\h-i586-cygwin32\bin;d:\perl-5.6\bin;d:\prg\sag\Tamino\Tamino 1.2.1.5\bin;D:\prg\MVS\Common\Tools\WinNT;D:\prg\MVS\Common\MSDev98\Bin;D:\prg\MVS\Common\Tools;D:\prg\MVS\VC98\bin
    PERL_BADLANG (unset)
    SHELL (unset)


@p5pRT
Copy link
Author

p5pRT commented Apr 15, 2000

From [Unknown Contact. See original ticket]

Jochen Wiedmann writes​:

When installing an XS module under Win32, I typically get
warnings like these​:

Note (probably harmless)​: No library found for oldnames.lib

+ if ($VC and exists($ENV{LIB}) and defined($ENV{LIB})) {
+ push(@​libpath, split(/;/, $ENV{LIB}));
+ }
+

Why do you want to pollute all Perl modules (one by one) with all this
bruhaha? Why not set correct libpth in Config.pm?

Ilya

@p5pRT
Copy link
Author

p5pRT commented Apr 15, 2000

From [Unknown Contact. See original ticket]

On Sat, 15 Apr 2000, Ilya Zakharevich wrote​:

Why do you want to pollute all Perl modules (one by one) with all this
bruhaha? Why not set correct libpth in Config.pm?

I wonder what you consider the sense of Config.pm? IMO that's not a
file that Joe User is supposed to edit manually. The file should
conserve the settings from compile time. Nothing more, nothing less.

My wish is, that about 80% of the Windows users can install my XS modules
smoothly. These 80% are using ActivePerl and Visual C++. If you would
guarantee that, you would save me about 30 or 40 mails per year. And
my patch is conservative (it checks for VC++, it puts the lib directories
to the end of the search path).

Jochen

@p5pRT
Copy link
Author

p5pRT commented Apr 15, 2000

From [Unknown Contact. See original ticket]

On Sun, Apr 16, 2000 at 12​:34​:45AM +0200, Jochen Wiedmann wrote​:

On Sat, 15 Apr 2000, Ilya Zakharevich wrote​:

Why do you want to pollute all Perl modules (one by one) with all this
bruhaha? Why not set correct libpth in Config.pm?

I wonder what you consider the sense of Config.pm?

It keeps the configuration of the given computer.

IMO that's not a file that Joe User is supposed to edit manually.

Of course not. But the installer for a binary distribution should
insure that the contents of this file is meaningful. For example, see
binary installer for OS/2, which edits Config.pm.

Ilya

@p5pRT
Copy link
Author

p5pRT commented Apr 16, 2000

From [Unknown Contact. See original ticket]

Jochen Wiedmann <joe@​ispsoft.de> writes​:

So ExtUtils​::Liblist does seem a reasonable place for this.
Win32 part of MakeMaker perhaps even more so.

Jochen

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant