Perl Win32::Shortcut screws up fork

Eric Blake ebb9@byu.net
Fri Jul 8 01:35:00 GMT 2005


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Brian Dessent on 7/7/2005 7:15 PM:
> This is a problem with the new bash version 3.0, which is dynamically
> linked to the readline, libiconv, and ncurses DLLs:
> 
> The prior version of bash, 2.05b-17, is statically linked:

The problem is that bash 3.0 has grown so much since 2.05b that statically
linking it roughly triples its size, it is already the biggest shell in
/bin, and it cannot be hardlinked to save disk space without complicating
future bash upgrades.  I suppose it may be possible to compile two
versions - the full-featured dynamically-linked bash.exe for interactive
use, and the minimally-configured statically-linked sh.exe (keep all POSIX
features like aliases, but strip all extensions like array variables) for
scripts.

Looking at ./configure --help, that would mean using:
- --disable-arith-for-command --disable-array-variables
- --disable-bang-history --disable-cond-command --disable-cond-regexp
- --disable-debugger --disable-directory-stack --disable-disabled-builtins
- --disable-dparen-arithmetic --disable-extended-glob --disable-help-builtin
- --disable-multibyte --disable-net-redirections
- --disable-process-substitution --disable-progcomp
- --disable-prompt-string-decoding --disable-select
- --disable-separate-helpfiles --enable-static-link

I dunno - shipping a static /bin/sh without the full features of bash is
once again going to lead to questions of why a shell script doesn't always
work when people use bash extensions.

> 
> This presents a somewhat serious problem for the rebaseall script.  It
> can be modified to exclude cyg{intl-3,iconv-2,readline6,ncurses-8}.dll
> but that is not a very good solution, because it means they will not be
> rebased.  These DLLs unfortunately are used by lots of programs and I
> fear not rebasing them is a poor solution.

Or, you could make rebaseall a #!/bin/ash script, which would require that
we never kill ash from the distribution, while freeing you from bash's
dynamic linking.

> 
> I think we will require a statically linked bash, or some kind of
> trickery in the rebaseall script.  One potential way around this might
> be for it to output a .cmd file (or .bat under 9x, grrr) and then exec()
> $COMSPEC to run the commands.  This would have the advantage of not
> requiring any Cygwin DLLs in use during the rebase, but it sounds more
> error prone and complicated.

Eww - outputting a .bat to do your work - that doesn't sound very appealing.

- --
Life is short - so eat dessert first!

Eric Blake             ebb9@byu.net
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD4DBQFCzdg084KuGfSFAYARAqiFAJi2Iur/PfoQASpJpV0Ou0Jt11bNAJ4mAC3b
Su5fKRP0rqGdQcDlzvBXaw==
=RMy7
-----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/



More information about the Cygwin mailing list