Mail Archives: cygwin/2008/04/24/00:57:58
-----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 -