public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Bernard Dautrevaux <Dautrevaux@microprocess.com>
To: 'Robert Collins' <robert.collins@itdomain.com.au>,
	cygwin@sources.redhat.com
Subject: RE: DLL naming conventions
Date: Mon, 04 Sep 2000 06:59:00 -0000	[thread overview]
Message-ID: <17B78BDF120BD411B70100500422FC6309E0C5@IIS000> (raw)

> -----Original Message-----
> From: Robert Collins [ mailto:robert.collins@itdomain.com.au ]
> Sent: Monday, September 04, 2000 2:44 PM
> To: cygwin@sources.redhat.com
> Subject: Re: DLL naming conventions
> 
> 
> ...
> 
> > > However, no modeless users (except for Paul) have 
> complained.  Perhaps
> > > Paul should become modal. :-)
> >
> > The problem iw that when you say "modal" you are really 
> saying that we
> > should have several sandboxes and that a programm from 
> sandbox "cygwin"
> > could not play with (i.e. call) a program with sandbox "pw32" or
> "mingw32";
> > that was exactly what render the Win32 Posix subsystem so 
> inattractive: it
> > can't mix with win32.
> >
> > Here the situation would only be slightly better: it may 
> work by chance
> and
> > suddenly fall apart in the wrong place (i.e. I added 
> something to mingw32
> > sandbox, and then a program from the cygwin sandbox no more works,
> assuming
> > I need to call some mingw32 program from cygwin bash...)
> >
> > I *know* that having cygpng.dll instead of libpng.dll is a 
> bit of a burden
> > for cygwin maintainers, but defining the convention and 
> using it to all
> new
> > ports should prevent the problem to suddenly arise when 
> there will be more
> > conflict than the apparently isolated zlib problem.
> 
> but this also means that mingw32 program won't use the cygwin compiled
> libpng if it is there? is that acceptable?

Not only acceptable but usually needed, as the mingw32 program will use (for
example) MSVCRT version of free() to free some memory allocated by CYGWIN
version of malloc() called from cygwin-compiled libpng; all this will have
one more than probable result: SEGFAULT ;-(

> -> if we are looking to keep the sandbox's separate then 
> yes.. but why care
> about running a (say) mingw32 program from cygwin bash...

Because perhaps some program that is not GPLed nor GPLable was ported from
UNIX to NT and thus cannot be using cygwin...

BTW this mean there must be a way to ensure that a program not compiled for
cygwin will not by error link against cygwin1.dll through some other DLL or
that program will become GPLed without its author being aware of it!...
Hopefully the program will crash without doing anything meaningful I think
so that's not too bad :-)

> -> if we are looking to let things cross the sandbox we 
> should decide _what_
> things, (ie bin/pipes, bin/pipes/libs, binaries only..) we are able to
> support and then make it as flexable as possible.

Anything tha'ts natively supported on WIN32 for inter-process-communication
should be usable and is for now I think, at least starting programs,
reading/writing files, sockets and probably pipes. 

Libs on the opposite are usually NOT mixable between environments. (note
that it's not even possible to link a program using MSVCRT.DLL with a
library built against CRTLIB.DLL, even if they are both almost
source-compatible, and not even possible to mix various versions of
MSVCRT.DLL); so we should not only forget about mixing
native/cygwin/mingw32/PW libraries but I would even favor forbidding it.

The only thing that is needed is that low-level native WIN32 DLLs should be
accessible from all "sandboxes" but the reverse is usually not possible
because the C runtime environments will be incompatible. We have exactly the
same problem on Linux: any program can access the kernel, but a
libc5-compatible library cannot call code from a libc6-compatible one and
vice-versa.

> 
> I think we need to make that decide first, and then the rest 
> falls into
> place....
> 

Sure :-)

> if we want full cross over from the sandboxes then the answer 
> should permit
> only porting layer/method to use another libraries. So a port 
> layer/method
> specific library naming convention is not acceptable. 

I presume you say: suppressing any barrier between sandboxes (i.e. on Linux
should be between libc5 and libc6); I do not think this is even possible.

> likewise if we want
> sandboxes then porting layer/method specific library file 
> names becomes
> mandatory.

This would be what we get now under Linux: programs compiled under libc5 and
libc6 are able to work together freely, but not to share code.

> 
> Personally I think that a mingw32 libpng should be useable by 
> cygwin gcc AND
> cygwin distributed binaries, given that they are the same 
> version... (and
> that should be part of the naming convention).

This would only work if libpng makes NO calls to the C Runtime Library (that
is do NOT depend on MSVCRT.DLL or CRTDLL.DLL); otherwise the program will
just crash.

Cheers,

		Bernard

--------------------------------------------
Bernard Dautrevaux
Microprocess Ingenierie
97 bis, rue de Colombes
92400 COURBEVOIE
FRANCE
Tel:	+33 (0) 1 47 68 80 80
Fax:	+33 (0) 1 47 88 97 85
e-mail:	dautrevaux@microprocess.com
		b.dautrevaux@usa.net
-------------------------------------------- 

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com

             reply	other threads:[~2000-09-04  6:59 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-09-04  6:59 Bernard Dautrevaux [this message]
  -- strict thread matches above, loose matches on Subject: below --
2000-09-05  8:56 Earnie Boyd
2000-09-05  5:37 Earnie Boyd
2000-09-05  7:32 ` Egor Duda
2000-09-05  7:40   ` Larry Hall (RFK Partners, Inc)
2000-09-06  2:28     ` Egor Duda
2000-09-04  8:38 Bernard Dautrevaux
2000-09-04 13:59 ` Robert Collins
2000-09-05 14:38   ` David A. Cobb
2000-09-05 14:52   ` David A. Cobb
2000-09-05 15:08     ` Robert Collins
2000-09-04  8:18 Bernard Dautrevaux
2000-09-04  6:11 Bernard Dautrevaux
2000-09-05 14:28 ` David A. Cobb
2000-09-04  5:31 Bernard Dautrevaux
2000-09-04  5:44 ` Robert Collins
2000-09-04  6:26   ` Corinna Vinschen
2000-09-04  7:23   ` Charles S. Wilson
2000-09-04  8:09     ` Charles S. Wilson
2000-09-04 11:03       ` Chris Faylor
2000-09-04 14:19     ` Robert Collins
2000-09-05 14:08     ` David A. Cobb
2000-09-01  4:49 Tor Lillqvist
2000-09-01  6:47 ` Charles S. Wilson
2000-09-02  6:56   ` Gary V. Vaughan
2000-09-02 11:36     ` Charles S. Wilson
2000-09-02 16:40       ` Gary V. Vaughan
2000-09-02 19:20         ` Chris Faylor
2000-09-02 21:23           ` Robert Collins
2000-09-02 22:56           ` Charles Wilson
2000-09-03  5:31           ` Gary V. Vaughan
2000-09-03  9:31             ` Chris Faylor
2000-09-03 10:32               ` Chris Faylor
2000-09-04  6:56               ` Gary V. Vaughan
2000-09-02 22:32         ` Charles Wilson
2000-09-03  5:29           ` Gary V. Vaughan
2000-09-03 12:40             ` Alexandre Oliva
2000-08-31 23:56 Bernard Dautrevaux
2000-09-01  6:40 ` Charles S. Wilson
2000-09-01  6:58   ` Larry Hall (RFK Partners, Inc)
2000-08-31 23:55 Bernard Dautrevaux
2000-08-31 12:41 Earnie Boyd
2000-08-31 12:43 ` Chris Faylor
2000-08-31 13:44   ` Charles Wilson
2000-08-31 14:14     ` Chris Faylor
2000-08-31 15:36       ` Charles S. Wilson
2000-08-31 15:44         ` Robert Collins
2000-08-31 15:51           ` Charles S. Wilson
2000-08-31 16:06             ` Robert Collins
2000-08-31 15:46         ` Tor Lillqvist
2000-08-31 17:19         ` Chris Faylor
2000-09-02  9:36           ` David A. Cobb
2000-09-02  9:43             ` Chris Faylor
2000-08-31 15:19     ` Michael Ring
2000-08-31  6:40 Earnie Boyd
2000-08-31  8:47 ` Charles S. Wilson
2000-08-31  8:56   ` Chris Faylor
2000-08-31  9:47     ` Egor Duda
2000-08-31 11:12       ` Chris Faylor
2000-08-31 11:33         ` Matt Minnis
2000-08-31 11:40           ` Chris Faylor
2000-08-31 13:01             ` Tor Lillqvist
2000-08-31  4:22 Bernard Dautrevaux
2000-08-30  9:45 Bernard Dautrevaux
2000-08-30 12:13 ` Charles Wilson
2000-08-30  3:36 Paul Sokolovsky
2000-08-30  7:26 ` Chris Faylor
2000-08-31  4:21   ` Re[2]: " Paul Sokolovsky
2000-08-31  8:56     ` Chris Faylor
2000-08-30  7:48 ` Charles Wilson
2000-08-30  7:52   ` Chris Faylor
2000-08-30  8:07     ` Norman Vine
2000-08-30  8:17       ` Charles Wilson
2000-08-30  8:19         ` Charles Wilson
2000-08-30 11:37         ` Chris Faylor
2000-08-30  8:11     ` Charles Wilson
2000-08-31  5:07   ` Re[2]: " Paul Sokolovsky
2000-08-31  8:58     ` Charles S. Wilson
2000-08-31 11:28     ` Re[2]: " Tor Lillqvist
2000-08-31 11:47       ` Chris Faylor
2000-08-31 12:07         ` Larry Hall (RFK Partners, Inc)
     [not found]   ` <20000831230822.R7695@demon.co.uk>
2000-08-31 18:58     ` Charles S. Wilson
2000-09-02  6:56       ` Gary V. Vaughan
2000-08-31 20:27 ` Charles S. Wilson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=17B78BDF120BD411B70100500422FC6309E0C5@IIS000 \
    --to=dautrevaux@microprocess.com \
    --cc=cygwin@sources.redhat.com \
    --cc=robert.collins@itdomain.com.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).