delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2012/07/11/11:08:19

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-5.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE
X-Spam-Check-By: sourceware.org
MIME-Version: 1.0
In-Reply-To: <CAGvSfex6-P9PB6UJ56EPRMCjQUqKmgv=NygwXy1Jzq0r3C-o=g@mail.gmail.com>
References: <CAHiT=DEgVMRvLZ2J64FEdhXRBe6VYR0fypsWpk8_aj0bHYsWGQ AT mail DOT gmail DOT com> <CAGvSfex6-P9PB6UJ56EPRMCjQUqKmgv=NygwXy1Jzq0r3C-o=g AT mail DOT gmail DOT com>
Date: Wed, 11 Jul 2012 10:07:51 -0500
Message-ID: <CAHiT=DHsH_sZ9MPyc7o=t2m_Xb_XnD6KLXeMZ686oa3_-yYQCw@mail.gmail.com>
Subject: Re: perl-5.14.2 switch
From: Reini Urban <rurban AT x-ray DOT at>
To: "Yaakov (Cygwin/X)" <yselkowitz AT users DOT sourceforge DOT net>
Cc: cygwin AT cygwin DOT com
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On Wed, Jul 11, 2012 at 4:53 AM, Yaakov (Cygwin/X)  wrote:
> On Tue, Jul 10, 2012 at 1:01 PM, Reini Urban wrote:
>> I'll be switching perl from 5.10 to 5.14 in the next days.
>
> Another issue:
>
> $Config{static_ext} is defined as Win32CORE.  The problem is that any
> use of ExtUtils::Embed then requires Win32CORE; its bootstrap call is
> included by xsinit and the static library added to ldopts, resulting
> in the w32_* functions being exported by any EU::E module.

Yes, same as for the Cygwin:: functions.

> Where this really breaks things is where a EU::E module is linked with
> libtool (as in gnumeric's perl-loader plugin): the xsinit-generated
> code calls boot_Win32CORE() but libtool will drop any static link
> libraries when creating a shared library/module, meaning the link
> fails with an unresolved reference to said function.
>
> AFAICS, static_ext should be empty; packages which actually need the
> w32_* symbols can add Win32CORE as an argument to the EU::E functions.

I see the problem, but I'm afraid that I cannot move Win32CORE from
static to dynamic now.
Generally we must have the ability to support both types of exts,
static and dynamic. Some internal exts are also static, such as
Cygwin, Internals, utf8, UNIVERSAL, DynaLoader, PerlIO, mro and
partially version, attributes, Tie::Hash::NamedCapture. But they are
included in libperl.

Previously I solved this by adding Win32CORE.o to libperl itself.
Should I do that?
-- 
Reini Urban
http://cpanel.net/   http://www.perl-compiler.org/

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


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