delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2008/04/24/00:57:58

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)" <yselkowitz AT users DOT sourceforge DOT net>
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: <announce DOT 48038853 DOT 7090707 AT cwilson DOT fastmail DOT fm> <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>
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

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019