delorie.com/archives/browse.cgi | search |
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
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |