This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Concurrent versions of cygwin1.dll on one system


Hi all,

Reading the FAQ, it seems it's impossible to have 2 versions of
cygwin1.dll running on one system:
(see http://cygwin.com/faq/faq_4.html#SEC51)

I was wondering if there was a way around this.

My problem is this: I'm pushing a cygwin application to desktops in
my company. I'm distributing cygwin1.dll as part of that package,
because most users don't have cygwin installed. A few users, tho, are
running Cygwin already, some with a different version. Which results
in above mentioned error message.
The app actually runs as a different NT user than the console-login.
('local system account' vs. 'logged in domain user'), but that
doesn't seem to make any difference.

Is there any way to run multiple versions of the cygwin1.dll?
The solutions I came up with are:
1. Use a manual shared memory key, so I can load my
   version of cygwin1.dll with a different shared region.
2. Let different NT users use different memory segments by default.
3. Or maybe, even while  bundling a cygwin1.dll with my application, it
   could try to load an existing dll before it tries to load the one
   in the current dir?

If anyone thinks any of these solutions are feasible, or if anyone
can come up with another solution to my problem, my gratefulness and
respect for that person would live on until my death...

Sincerely,

Ivo Janssen
cygwin@ivo.nu


-----
http://cygwin.com/faq/faq_4.html#SEC51

* Is it OK to have multiple copies of the DLL?

You should only have one copy of the Cygwin DLL on your system. If
you have multiple versions, they will conflict and cause problems.

If you get the error "shared region is corrupted" or "shared region
version mismatch" it means you have multiple versions of cygwin1.dll
running at the same time. This could happen, for example, if you
update cygwin1.dll without exiting all Cygwin apps (including inetd)
beforehand.

If you're trying to find multiple versions of the DLL that are
causing this problem, reboot first, in case DLL's still loaded in
memory are the cause. Then use the Windows System find utility to
search your whole machine, not just components in your PATH (as
'type' would do) or cygwin-mounted filesystems (as Cygwin 'find'
would do).
-----



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]