From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28290 invoked by alias); 23 Jul 2015 00:58:05 -0000 Mailing-List: contact cygwin-apps-help@cygwin.com; run by ezmlm Precedence: bulk Sender: cygwin-apps-owner@cygwin.com List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Mail-Followup-To: cygwin-apps@cygwin.com Received: (qmail 28274 invoked by uid 89); 23 Jul 2015 00:58:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.3 required=5.0 tests=BAYES_40,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW autolearn=no version=3.3.2 X-HELO: mail-wi0-f177.google.com Received: from mail-wi0-f177.google.com (HELO mail-wi0-f177.google.com) (209.85.212.177) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Thu, 23 Jul 2015 00:58:03 +0000 Received: by wibud3 with SMTP id ud3so196127497wib.0 for ; Wed, 22 Jul 2015 17:58:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :subject:references:in-reply-to:content-type :content-transfer-encoding; bh=u7Zs41tUibM2nILbXAMI2J7hVlRiMRO/N4bZMiWWnB8=; b=chABINQFk6al4KcGb+7+tgMklFLRlR4HDSHDxE/Sdc5hW3rfgMB4I/8IM58DD4U0tn 8wiks/iP/J+xmo/7MyRBH/pKx8gncPWJ2oTqQ1xzv5DQA1cF5pGO//qlAaebK4x+XPm9 7rAHtT/6O/wSFV5rZkGBYteT6GW04Qn8wm1jzrMdK3YX3Ubp2Fg7tdFgI0MAeW6iJwBY 0zX3D8MwxHWWcxZSuazEQSX5fZHxTTZsWo5/68//l3faHSJ9GGvc8K7h/2LKESHnawJ1 XAj8SoPljq8b/hrSRLElYq6HurM6QAeBuHwFMfDDlFB7NJecfzD+VxGjTI2y+FUy5fjC XwDw== X-Gm-Message-State: ALoCoQlT8803QObDvsybLbPg/V0W/Wn0FidvWC7ufBMsIbQSULALkLRQ6gaDYl/5Ro4u5w3E9+bk X-Received: by 10.180.215.101 with SMTP id oh5mr11295068wic.6.1437613079961; Wed, 22 Jul 2015 17:57:59 -0700 (PDT) Received: from ?IPv6:2001:470:6c46:1:12c3:7bff:fe9d:8df0? ([2001:470:6c46:1:12c3:7bff:fe9d:8df0]) by smtp.googlemail.com with ESMTPSA id di7sm5860362wib.23.2015.07.22.17.57.58 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 22 Jul 2015 17:57:58 -0700 (PDT) Message-ID: <55B03C16.1060009@asokolov.org> Date: Thu, 23 Jul 2015 00:58:00 -0000 From: Alexey Sokolov User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: cygwin-apps@cygwin.com Subject: Re: [ITP] znc 1.6.0 References: <55AB5EC2.2060400@asokolov.org> <20150719100317.GD19825@calimero.vinschen.de> <55ABA522.9000008@asokolov.org> <87d1zogku1.fsf@Rainer.invalid> <55ABEC90.3040106@asokolov.org> <55ABECDD.9040805@asokolov.org> <87zj2sezel.fsf@Rainer.invalid> <55AC0089.2090304@asokolov.org> <20150720074442.GJ3864@calimero.vinschen.de> <55AD44E9.8070207@asokolov.org> <20150721071221.GZ3864@calimero.vinschen.de> <55AED4D4.1040403@tiscali.co.uk> <55AED687.8070607@asokolov.org> <55AEDB8E.6070507@asokolov.org> <55B0213A.5070005@tiscali.co.uk> In-Reply-To: <55B0213A.5070005@tiscali.co.uk> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2015-07/txt/msg00176.txt.bz2 23.07.2015 00:03, David Stacey : > On 22/07/2015 00:53, Alexey Sokolov wrote: >> David, how did you try to build it? What was the exact error message? >> What do you change in Makefile.in to get it working? > > Attempting to compile znc-1.6.0-3 with cygport under Cygwin x86. It's > worth saying that my Cygwin installation is about a month old, but that > shouldn't matter. > > cygport ./znc.cygport prep compile > > Nothing out of the ordinary there. This gives the following error: > > configure.ac:255: Something is trying to use the C compiler. Since > this is a C++ project, this should not happen! > autom4te-2.69: /usr/bin/m4 failed with exit status: 1 > > So, for the sake of not falling at the first hurdle, I skipped the > autoreconf step by adding the following lines to znc.cygport: > > src_compile() { > cd ${B} > cygconf > cygmake -j 1 V=1 > } > > I'll leave it to you to have a more detailed poke around as to why > atoreconf is failing. Hm, I'm not sure why autoreconf would do this (works for me though), but autoreconf is not required for ZNC anyway, as release tarballs already have ./configure script. So, for protection against possible broken autoreconfs I'll add such src_compile to znc.cygport. > Anyway, with that in place we get a little > further. The first hint that anything is wrong comes when we try to link > the perl module: > > /usr/lib/gcc/i686-pc-cygwin/4.9.2/../../../../i686-pc-cygwin/bin/ld: > cannot find -lznc-1.6 > > That's because there's no 'libznc-1.6.dll.a' to link against. You need > to add the following to your link command when producing the shared DLL: > > -Wl,--out-implib=libznc-1.6.dll.a > > Again, I'll leave it to you to get this into the Makefile in a nice way. > I'd reiterate what others have said: This should be called libznc#.dll, > where '#' is a number that increments when the ABI breaks. This is our > naming convention; please adhere to it. You should add this 'dll.a' file > to your devel package. For the sake of changing as little of your > Makefiles as possible, I left it as libznc-1.6.dll.a. > > Building again, we don't actually get any further. When linking the perl > module, there are a stack of linker errors: > > modperl.o: In function `ZN10CPerlTimerD2Ev': > /usr/src/debug/znc-1.6.0-3/modules/modperl.cpp:277: undefined > reference to `CTimer::GetModule() const' > > and screenfulls of similar output. This is because your arguments to the > linker are in the wrong order. This doesn't matter on Linux, but it does > on Cygwin. You need to put the '-lznc-1.6' after your object files. This > gets the perl module compiling, and you'll have exactly the same > problems with the python. I gave up at this point; I didn't attempt to > test the binaries produced. > > The problem I have with this is that I see no way that this could ever > have compiled under Cygwin. How are you building this? > https://github.com/znc/znc-cygwin contains all the patches and build scripts. On push, build on AppVeyor is triggered, it spawns 2 Windows VMs. On one VM it installs fresh Cygwin x86, and on another one it installs fresh Cygwin x86_64. Step by step procedure is defined in https://github.com/znc/znc-cygwin/blob/master/appveyor.yml https://ci.appveyor.com/project/DarthGandalf/znc-cygwin/build/0.0.0.0.1-branch-master-build-13/job/ljcyqwn2v0im9aik#L399 contains logs how znc-1.6.0-3.i686 is built. Autoreconf is not failing, modperl builds fine without libznc.dll.a and link to cygznc-1.6.dll directly, linker has every reference defined... I'm surprised why it's not building for you at all. ZNC has been working in Cygwin for years, if compiled from source. Do you have any special CXXFLAGS/LDFLAGS/CXX/etc set in your environment? E.g. -Wl,--as-needed in LDFLAGS might cause the error about having '-lznc-1.6' after object files, and it's not specific to Cygwin. But I agree, order of arguments should be fixed to support --as-needed (in upstream though) I don't know if there are any options which would cause linker to require .dll.a. I can generate libznc.dll.a (or cygznc.dll.a) if you insist, of course. Regarding libznc#.dll: Yes, that number increments when ABI breaks (e.g. from 1.6 to 1.7). If upstream agrees to break ABI simultaneously with changing 2 first digits of version, why name of dll should be different from version? cygssl-1.0.0.dll is not a single number either. > I hope the above doesn't come across as too critical - these comments > are intended to be constructive, and I hope you find them helpful. > Yes, thanks for the comments!