Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com X-Injected-Via-Gmane: http://gmane.org/ To: cygwin AT cygwin DOT com From: Nicholas Wourms Subject: Re: Building the GNU cgicc library... Date: Sun, 10 Aug 2003 17:42:06 -0400 Lines: 71 Message-ID: <3F36BC2E.2070707@myrealbox.com> References: <407DF7D68DD30440B5CEB70ED234D1CF038B01A9 AT excuswa100 DOT americas DOT unity> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet AT sea DOT gmane DOT org User-Agent: Mozilla/5.0 (Windows; U; Win 9x 4.90; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en In-Reply-To: <407DF7D68DD30440B5CEB70ED234D1CF038B01A9@excuswa100.americas.unity> X-Enigmail-Version: 0.76.5.0 X-Enigmail-Supports: pgp-inline, pgp-mime Bakken, Luke wrote: > Hi all, > > Just trying to get cgicc 3.2.2 built on cygwin... > > Here's my environment: > Windows XP Professional Ver 5.1 Build 2600 Service Pack 1 > Cygwin DLL version info: > DLL version: 1.3.22 > g++ (GCC) 3.2 20020927 (prerelease) > > Using this and the latest cgicc library sources (3.2.2), I get the > following errors: > > ---------- > > /bin/bash ../libtool --mode=link g++ -Wall -W -pedantic -g -O2 -o > libcgicc.la -rpath /usr/lib -version-info 5:0:0 CgiEnvironment. > lo CgiInput.lo CgiUtils.lo Cgicc.lo FormEntry.lo FormFile.lo > HTMLAttribute.lo HTMLAttributeList.lo HTMLDoctype.lo HTMLElement.lo HTM > LElementList.lo HTTPContentHeader.lo HTTPCookie.lo HTTPHTMLHeader.lo > HTTPHeader.lo HTTPPlainHeader.lo HTTPRedirectHeader.lo HTTPResp > onseHeader.lo HTTPStatusHeader.lo MStreamable.lo > libtool: link: warning: undefined symbols not allowed in i686-pc-cygwin > shared libraries ^^^^^^^^^^^^^^^^^^^^ This may (or may not) be your problem, but your library is being built as a static archive eventhough you requested a shared library. A first glance, the errors you listed later on could indicate a compiler error. I noticed that, since last year, there have been quite a few C++ PR fixes, including some for Cygwin. However, I can advise you on a possible way to fix the build so that it builds a shared library properly, which might resolve the problem. Edit the makefile in that library's source directory and look for the line which contains the "-version-info 5:0:0" string. Append "-no-undefined" after that string to get something like "-version-info 5:0:0 -no-undefined". Then make clean and rebuild. This lib may or may not be trying to use external symbols (from another dll other than cygwin1.dll). If it still complains about undefined symbols, you will need to figure out what external libraries it is trying to use and add them to the following line: libcgicc_la_LIBADD= If this fixes it for you, file a bug report with the program's author. Even if it doesn't, the package author can probably help you fix up the build system so that it will build properly. Either way, make sure you convey the following points for building a cygwin target: 1)When building libtool shared libraries, you must pass "-no-undefined" at link time. 2)When building libtool shared libraries, you must pass *ALL* dependency libs(if any) at linktime (i.e. -lz, -lncurses, etc). 3)Using the latest libtool available is generally a good idea. If you are feeling bold, you can try to fix the package and reautotoolize it yourself. However, that process is way too complex for me to go into right now, as there can be many subtle pitfalls. In fact, so much so that a book was written to cover the process of using those tools (although it is woefully out of date). If you feel so inclined, do a google search for "autobook" to read the online version. Good luck. HTH, Nicholas -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/