Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <42CDD834.7060503@byu.net> Date: Thu, 07 Jul 2005 19:34:44 -0600 From: Eric Blake User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317) MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: Perl Win32::Shortcut screws up fork References: <7231C15EAC2F164CA6DC326D97493C8BA1C3FA AT exchange35 DOT fed DOT cclrc DOT ac DOT uk> <42CDD3B8 DOT 69B6AB98 AT dessent DOT net> In-Reply-To: <42CDD3B8.69B6AB98@dessent.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes -----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 AT byu DOT 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/