| delorie.com/archives/browse.cgi | search |
| Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
| List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
| List-Archive: | <http://sources.redhat.com/ml/cygwin/> |
| List-Post: | <mailto:cygwin AT cygwin DOT com> |
| List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs> |
| Sender: | cygwin-owner AT cygwin DOT com |
| Delivered-To: | mailing list cygwin AT cygwin DOT com |
| Message-ID: | <3C17B526.60915DD9@freeler.nl> |
| Date: | Wed, 12 Dec 2001 20:51:02 +0100 |
| From: | Teun Burgers <a DOT rburgers AT freeler DOT nl> |
| X-Mailer: | Mozilla 4.78 [en] (Win98; U) |
| X-Accept-Language: | en |
| MIME-Version: | 1.0 |
| To: | cygwin AT cygwin DOT com |
| CC: | Robert Collins <robert DOT collins AT itdomain DOT com DOT au> |
| Subject: | Re: gcc -mno-cygwin creates cygwin executables! |
| References: | <3C17011D AT freeler-webmail-01> <04ea01c18303$55406a70$0200a8c0 AT lifelesswks> |
To sum up this thread:
consider the following program:
main () {
pthread_create();
}
gcc -mno-cygwin -o zz.exe zz.c -lpthread will compile and build.
A cygcheck on zz.exe reveals that libcygwin.a is linked in. The
problem with this is that a configure script with CC='gcc -mno-cygwin'
will incorrectly find that libpthread.a is available with
AC_SEARCH_LIBS(pthread_create, -lpthread)
This comes about since gcc -mno-cygwin searches for libs in /usr/lib
and libpthread.a is a symlink to libcygwin.a
One way to fix this would be to break out the thread functions of
libcygwin.a into a separate libpthread.a. When you then link with
gcc -mno-cygwin, libcygwin.a is not linked in and the link will fail.
Apparantly for performance and technical reasons this is not
recommendable.
This has to do with libcygwin.a depending on the pthread functions.
Another would be to put the libpthread.a symlink in a directory that gcc
-mno-cygwin
doesn't search, e.g. /usr/lib/cygwin, and add this library to the specs
for cygwin
links.
What would be the problem with this approach?
There are 2 other alternatives that fix the configure problem:
1) How about making libpthread.a a dummy library with just one .o file
with a dummy (empty) function? This does fix this particular
configure problem, but might have side effects since the pthread
symbols
are no longer in libpthread.a
2) include the pthread symbols in both libcygwin.a and libpthread.a?
Robert Collins wrote:
> Hmm. Why not put the win32 api checks in the configure script ahead of
> pthread?
What do you mean with that?
Teun
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |