delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2014/05/29/22:37:14

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:to:from:subject:date:message-id:references
:mime-version:content-type:content-transfer-encoding
:in-reply-to; q=dns; s=default; b=Dv4Jx8uitz9f/2BSYjrjoryRLGro4w
1jQzr4eebApaxNUFouGZosSoRgwvpFvwIZmg/c2Hx3tw8bp7nIdcBleworaNY+22
guQgyXh3vhqa22tUPcmZATSFQOYyXM5APljLJJOl6XLEAntOX0uJ4NOgkMb0VKk/
/MHW9LwacUy8A=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:to:from:subject:date:message-id:references
:mime-version:content-type:content-transfer-encoding
:in-reply-to; s=default; bh=RK61GSGFWvXdMtZt7Z4pMZMmvKY=; b=kQBW
kJG+qL0MUHhVr5ulKLHF8tU32VvUpNBACeYK4DvfRnAEZM6y38DqojZ28QvCfiq8
Dy42gA7vZIZzUh0EJavVZ6Ot2kcJil1H+AxttT44O+149SQVH4Sjy/y0irOwwVmt
d+b1B7qF2MALxqTa8R6XJLKvHvM0XjweMZS+JGY=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.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
Authentication-Results: sourceware.org; auth=none
X-Virus-Found: No
X-Spam-SWARE-Status: No, score=0.9 required=5.0 tests=AWL,BAYES_50,RCVD_IN_DNSWL_NONE,RCVD_NUMERIC_HELO,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS,T_FSL_HELO_BARE_IP_2 autolearn=no version=3.3.2
X-HELO: plane.gmane.org
To: cygwin AT cygwin DOT com
From: Andrew DeFaria <Andrew AT DeFaria DOT com>
Subject: Re: Building cpan module that links with proprietary libs
Date: Thu, 29 May 2014 19:36:38 -0700
Lines: 62
Message-ID: <lm8qrq$nm3$1@ger.gmane.org>
References: <lm651o$5ss$1 AT ger DOT gmane DOT org> <CAEhDDbCjo_wO7xP9i9rfgqM82Z6h+bL0HDrV8bxwtbUryV=pNg AT mail DOT gmail DOT com> <lm7rtc$ofg$1 AT ger DOT gmane DOT org> <5387E20D DOT 7090806 AT cygwin DOT com>
Mime-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0
In-Reply-To: <5387E20D.7090806@cygwin.com>
X-IsSubscribed: yes

On 5/29/2014 6:42 PM, Larry Hall (Cygwin) wrote:

>> I had two archives two choose from. One was for Windows and contained the
>> .lib files. The other was for Linux and contains .a files. I first
>> tried the
>> Linux one but that failed with:
>>
>> g++  -shared P4.o  -o blib/arch/auto/P4/P4.dll lib/libp4.a      \
>>    /usr/lib/perl5/5.14/x86_64-cygwin-threads/CORE/cygperl5_14.dll
>> -L/cygdrive/a/p4perlBuild/p4api/lib -lclient -lrpc -lsupp
>> -lp4sslstub        \
>>
>> collect2: error: ld terminated with signal 11 [Segmentation fault],
>> core dumped
>> Makefile:531: recipe for target 'blib/arch/auto/P4/P4.dll' failed
>> make: *** [blib/arch/auto/P4/P4.dll] Error 1
>> Adefaria-lt:
>>
>> I can give you more output if you need it.
>
> No need.  Forgive me for saying this but I find it hard to believe that
> after all this time on the list Andrew that you don't know that trying to
> use Linux-compiled libraries on Cygwin isn't going to work.  But I guess
> my surprise is not that important here. ;-)

When I first when to get this to work I choose the Linux style of the 
package for p4api. I figured the Windows style was for ActiveState only 
and that'd probably not work. Hell ActiveState doesn't even use cpan, 
they use ppm. I didn't look inside for anything like .o, .a or .dll or 
.lib. I figured that it would have been source code and it would have 
been compiled as part of the make process. It wasn't until it failed 
that I saw the reference to .a's, etc. and looked into the p4api 
directory structure to see .lib's in the Windows copy and .a's in the 
Linux copy. Sure at *that* point I knew the Linux style will never work 
in this situation. So I tried to link with the Windows style .lib copy.

>>> It seems to be on the right track; "g++ -shared -o P4.dll" sounds
>>> good to me.
>
> You say that the libs were built by Visual Studio and the remainder of your
> comments make it clear that the libraries are C++ and not C code.

I don't believe I ever said it was just C code. If I did then I'm sorry.

> As a
> result, you will never get code compiled with g++ to link with these
> libraries.  There is no common ABI among C++ compilers.  Thus, the
> libraries
> and headers of one can't be used as input to the compiler of another, even
> on the same platform.  This only works for C code.  So you have to either
> build the proprietary libs with Cygwin's C++ compiler or write your own
> "shim" library that wraps the necessary calls and objects in a C API,
> compile that with VS, and link your program against the APIs in your
> library.

Being as this code is proprietary I doubt that Perforce will release it 
to me to compile but I will point them at this thread...'

Thanks.
-- 
Andrew DeFaria
http://defaria.com


--
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