X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Message-ID: <4810133F.8090903@users.sourceforge.net> Date: Wed, 23 Apr 2008 23:57:35 -0500 From: "Yaakov (Cygwin Ports)" User-Agent: Thunderbird 2.0.0.12 (Windows/20080213) MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2 References: <480445AC DOT 7000005 AT users DOT sourceforge DOT net> <48044C3C DOT 5060504 AT cwilson DOT fastmail DOT fm> <480FB2BA DOT 208 AT users DOT sourceforge DOT net> <48100654 DOT 1050609 AT cwilson DOT fastmail DOT fm> In-Reply-To: <48100654.1050609@cwilson.fastmail.fm> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: 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 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Charles Wilson wrote: | What's puzzling is there is no *error* message from the compiler -- just | warnings. | |> strip: './foo.exe': No such file | | But obviously something went wrong. | | I wonder of the string length warning is from the pre-processor, and | then the compiler itself dies (dumps core?) without issuing an error | message. | | Does the problem -- missing wrappers -- *always* occur paired with the | string length warning? I can easily see the following; | (1) the size of the wrapper script is very close to 4K | (2) there are several embedded paths | (3) sometimes, those paths are long enough to push the total script | length over 4K -- and gcc-3.4.x is rude enough to fail silently. | If so, I could easily split the the script generation into two separate | strings... OK, I figured it out: libtool-2.2 adds CFLAGS to LTCFLAGS, which it uses to compile the lt-foo.c files. Many configure scripts add to CFLAGS, but usually after all the standard initializations. With 1.5, or with 2.2 and LT_OUTPUT, libtool would be generated before CFLAGS is altered beyond the default (-O2 -pipe with cygport). But with 2.2 without LT_OUTPUT, the package CFLAGS are added to LTCFLAGS, sometimes with disastrous consequences. The broken case was being compiled with the following CFLAGS: CFLAGS = ... -Wall -Werror -pedantic -std=c99 -D_POSIX_C_SOURCE=200112L * -Wall produces the _setmode warning; * -std=c99 produces the realpath and ptr2int warnings; * -pedantic produces the string length warning; * -Werror makes sure that the build fails, but libtool doesn't catch it. This is definitely a regression from 1.5, the problems being: * libtool should generate lt-foo.c files without warnings, or at least compile it with sane CFLAGS that work no matter what. * libtool should catch if the lt-foo.c compile fails; I think I have also found a separate case of breakage when the CXX tag is enabled, in which case LTCC is mysteriously undefined. The results: ./libtool: line 7737: -O2: command not found strip: './foo.exe': No such file ./libtool: line 7748: $func_ltwrapper_scriptname_result: ambiguous redirect Hopefully this gives you enough to figure out where these bugs really are. Yaakov -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Cygwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEAREIAAYFAkgQEz4ACgkQpiWmPGlmQSMlCACcCUE3QzUDDTl1cgpeRQOIPhMf N4gAoNCWgSfvzFeCu7YqtqqYJROcy46L =cdxV -----END PGP SIGNATURE----- -- 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/