delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2001/12/09/10:26:55

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Date: Sun, 9 Dec 2001 16:28:56 +0100
From: "Gerrit P. Haase @ cygwin" <gp AT familiehaase DOT de>
X-Mailer: The Bat! (v1.53t) Business
Reply-To: cygwin AT cygwin DOT com
Organization: Esse keine toten Tiere
X-Priority: 3 (Normal)
Message-ID: <18164870789.20011209162856@familiehaase.de>
To: "Pierre A. Humblet" <Pierre DOT Humblet AT ieee DOT org>
CC: cygwin AT cygwin DOT com
Subject: Re: Problem with "perl -MExtUtils::Embed -e ldopts"
In-Reply-To: <3.0.5.32.20011208162816.0082ea00@pop.ne.mediaone.net>
References: <3 DOT 0 DOT 5 DOT 32 DOT 20011208162816 DOT 0082ea00 AT pop DOT ne DOT mediaone DOT net>
MIME-Version: 1.0
X-Sender: 320081107336-0001 AT t-dialin DOT net

------------B014FECF478938
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hallo Pierre,

Am 2001-12-08 um 22:28 schriebst du:

> I have a package that uses perl itself to configure a makefile to
> use perl libraries. The command and its output are
 
>> perl  -MExtUtils::Embed -e ldopts
> Note (probably harmless): No library found for -lperl
>  -s  -s -L/usr/local/lib
> /usr/lib/perl5/5.6.1/cygwin-multi/auto/DynaLoader/DynaLoader.a
> -L/usr/lib/perl5/5.6.1/cygwin-multi/CORE -lcrypt

> 3 observations:
> 1) The "harmless note" suggests that the perl library is not where expected.
>    Should it be -lperl5_6_1 or is there a missing link? 
> 2) The -s causes the linker to drop the symbol table [when the command 
>    output is blindly used in a makefile]. Not nice while debugging!
> 3) why list /usr/local/lib?

> While not a show stopper, can this be fixed in future releases? 
> Thanks.

1.
This is from ExtUtils::Embed::ldopts:
    my $libperl;
    if ($^O eq 'MSWin32') {
        $libperl = $Config{libperl};
    }
    else {
        $libperl = (grep(/^-l\w*perl\w*$/, @link_args))[0] || "-lperl";
    }

It seems that it doesn't work as it should.
I have patched this for now (attached), I'll look to get this in perl
included if it is still broken in bleadperl.

$ perl  -MExtUtils::Embed -e ldopts
 -s  -s -L/usr/local/lib /usr/lib/perl5/5.6.1/cygwin-multi/auto/DynaLoader/DynaLoader.a -L/usr/lib/perl5/5.6.1/cygwin-multi/CORE -lperl5_6_1 -lcrypt

Alternative: create a symlink libperl.a -> libperl5_6_1.a

2. Cygwin Perl is built with -s flag, that strips the binaries, if you want
to have symbols in your module you will need symbols in perl, that means
you will have to rebuild perl yourself with symbols, that is: change nothing
at the source and do: ./Configure -Doptimize='-g' which turns on DEBUGGING.
(Note that Cygwin Perl is also build with '-Dmultiplicity').

I really don'y know why the '-s' flag is passed twice here.
Probable because there are several flags involved (ldflags & ccdlflags)

3. I didn't add /usr/local/lib to the linkline, it is done somewhere automagically.

You may change the values in Config.pm.
ldflags=''
then you get:
$ perl  -MExtUtils::Embed -e ldopts
 -s  /usr/lib/perl5/5.6.1/cygwin-multi/auto/DynaLoader/DynaLoader.a -L/usr/lib/perl5/5.6.1/cygwin-multi/CORE -lperl5_6_1 -lcrypt

ccdlflags=''
$ perl  -MExtUtils::Embed -e ldopts
  /usr/lib/perl5/5.6.1/cygwin-multi/auto/DynaLoader/DynaLoader.a -L/usr/lib/perl5/5.6.1/cygwin-multi/CORE -lperl5_6_1 -lcrypt

but as stated above I don't know if it is sufficient, maybe you need to
rebuild perl to get the symbols.

Ciao,

Gerrit P. Haase                                   mailto:gp AT familiehaase DOT de
-- 
=^..^=
------------B014FECF478938
Content-Type: application/octet-stream; name="Embed.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Embed.patch"

LS0tIHBlcmw1LzUuNi4xL0V4dFV0aWxzL0VtYmVkLnBtLm9yaWcJU3VuIERlYyAgOSAxNToyMzoy
MiAyMDAxCisrKyBwZXJsNS81LjYuMS9FeHRVdGlscy9FbWJlZC5wbQlTdW4gRGVjICA5IDE1OjIy
OjQxIDIwMDEKQEAgLTIwNyw5ICsyMDcsMTMgQEAKICAgICBpZiAoJF5PIGVxICdNU1dpbjMyJykg
ewogCSRsaWJwZXJsID0gJENvbmZpZ3tsaWJwZXJsfTsKICAgICB9CisgICAgZWxzaWYgKCReTyBl
cSAnY3lnd2luJykgeworCSRsaWJwZXJsID0gIi1scGVybDVfNl8xIjsgICAgIAorICAgIH0KICAg
ICBlbHNlIHsKIAkkbGlicGVybCA9IChncmVwKC9eLWxcdypwZXJsXHcqJC8sIEBsaW5rX2FyZ3Mp
KVswXSB8fCAiLWxwZXJsIjsKICAgICB9CisKIAogICAgIG15ICRscGF0aCA9IEZpbGU6OlNwZWMt
PmNhdGRpcigkQ29uZmlne2FyY2hsaWJleHB9LCAnQ09SRScpOwogICAgICRscGF0aCA9IHFxWyIk
bHBhdGgiXSBpZiAkXk8gZXEgJ01TV2luMzInOwotLS0gcGVybDUvNS42LjEvY3lnd2luLW11bHRp
L0V4dFV0aWxzL0VtYmVkLnBtLm9yaWcJU3VuIERlYyAgOSAxNToyMzoxMCAyMDAxCisrKyBwZXJs
NS81LjYuMS9jeWd3aW4tbXVsdGkvRXh0VXRpbHMvRW1iZWQucG0JU3VuIERlYyAgOSAxNToyMjo0
NyAyMDAxCkBAIC0yMDcsNiArMjA3LDkgQEAKICAgICBpZiAoJF5PIGVxICdNU1dpbjMyJykgewog
CSRsaWJwZXJsID0gJENvbmZpZ3tsaWJwZXJsfTsKICAgICB9CisgICAgZWxzaWYgKCReTyBlcSAn
Y3lnd2luJykgeworCSRsaWJwZXJsID0gIi1scGVybDVfNl8xIjsgICAgIAorICAgIH0KICAgICBl
bHNlIHsKIAkkbGlicGVybCA9IChncmVwKC9eLWxcdypwZXJsXHcqJC8sIEBsaW5rX2FyZ3MpKVsw
XSB8fCAiLWxwZXJsIjsKICAgICB9Cg==


------------B014FECF478938
Content-Type: text/plain; charset=us-ascii

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/
------------B014FECF478938--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019