delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/04/10/15:55:12

X-Spam-Check-By: sourceware.org
Date: Mon, 10 Apr 2006 15:55:02 -0400 (EDT)
From: Igor Peshansky <pechtcha AT cs DOT nyu DOT edu>
Reply-To: cygwin AT cygwin DOT com
To: cygwin AT cygwin DOT com
Subject: Re: Cygwin backwards compatibility break with WinMain and GetCommandLine (was Re: WinMain() not getting cl...)
In-Reply-To: <20060411141921.GA15620@trixie.casa.cgf.cx>
Message-ID: <Pine.GSO.4.63.0604101550550.20193@access1.cims.nyu.edu>
References: <20060404184447 DOT GA4824 AT tela DOT daveroth DOT dyndns DOT org> <20060410013414 DOT GA20557 AT trixie DOT casa DOT cgf DOT cx> <Pine DOT GSO DOT 4 DOT 63 DOT 0604100927270 DOT 20193 AT access1 DOT cims DOT nyu DOT edu> <20060410173850 DOT GA19752 AT trixie DOT casa DOT cgf DOT cx> <Pine DOT GSO DOT 4 DOT 63 DOT 0604101352460 DOT 20193 AT access1 DOT cims DOT nyu DOT edu> <443AA212 DOT DF9AB154 AT dessent DOT net> <Pine DOT GSO DOT 4 DOT 63 DOT 0604101447170 DOT 20193 AT access1 DOT cims DOT nyu DOT edu> <20060411141921 DOT GA15620 AT trixie DOT casa DOT cgf DOT cx>
MIME-Version: 1.0
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT 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

On Tue, 11 Apr 2006, Christopher Faylor wrote:

> On Mon, Apr 10, 2006 at 02:52:04PM -0400, Igor Peshansky wrote:
> >On Mon, 10 Apr 2006, Brian Dessent wrote:
> >> Igor Peshansky wrote:
> >>>If GetCommandLine lives in libcygwin.a, then programs linked on older
> >>>versions of Cygwin will not link that function in, and thus won't work
> >>>with the new DLL.  Programs linking with the new version of Cygwin will
> >>>have that function, but due to API changes, may not work with older
> >>>DLLs.  Or am I missing something?
> >>
> >>It should work out like this:
> >>
> >>Linked against <1.5.20, Run against >=1.5.19: calls kernel32's GCL()
> >>and won't work
> >>
> >>Linked against <1.5.20, Run against <1.5.19: calls kernel32's GCL() but
> >>the win environment exists, success
> >>
> >>Linked against >=1.5.20, Run against any version: calls libcygwin's
> >>static GCL(), which works in any circumstance
> >
> >I'm worried about the case
> >
> >Linked against >=1.5.20, Run against <=1.5.19: calls libcygwin's static
> >GCL, which works, but fails because 1.5.20 (or 1.5.21, etc) has an
> >extra API function that now gets invoked by the code, but is missing
> >from 1.5.19 and earlier -- BOOM.
> >
> >IOW, the infamous "Procedure entry point ...  couldn't be found" popup.
>
> So you're thinking that a program which has had no other changes, and
> hasn't been recompiled, is going to somehow pull in newer functions from
> cygwin1.dll?

Huh?  That's the point -- it *has* to be recompiled to get the new
GetCommandLine implementation from cygwin.a...

> Please provide examples of how that could happen.

I compile program A (which uses GCL) under 1.5.18 and release it.  It
doesn't work properly on 1.5.20+ (because it calls the kernel's GCL).  I
then recompile it under 1.5.20 to pull in the new libcygwin.a.  However,
this also pulls in whatever new functions are in cygwin1.dll, so that
program A now doesn't work with <1.5.20.  Am I missing something?
	Igor
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_	    pechtcha AT cs DOT nyu DOT edu | igor AT watson DOT ibm DOT com
ZZZzz /,`.-'`'    -.  ;-;;,_		Igor Peshansky, Ph.D. (name changed!)
     |,4-  ) )-,_. ,\ (  `'-'		old name: Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"Las! je suis sot... -Mais non, tu ne l'es pas, puisque tu t'en rends compte."
"But no -- you are no fool; you call yourself a fool, there's proof enough in
that!" -- Rostand, "Cyrano de Bergerac"

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