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 From: ericblake AT comcast DOT net (Eric Blake) To: Aaron Humphrey , cygwin AT cygwin DOT com Subject: Re: Bash/strtoimax error on setup Date: Sun, 17 Jul 2005 20:48:25 +0000 Message-Id: <071720052048.1530.42DAC4190000998F000005FA22007456720A050E040D0C079D0A@comcast.net> X-Authenticated-Sender: ZXJpY2JsYWtlQGNvbWNhc3QubmV0 > I was just updating my Cygwin installation. When it was done, I > noticed that there was a dialog box on the screen, labeled "Error > Starting Program", saying "The BASH.EXE file is linked to missing > export CYGWIN1.DLL:strtoimax." The Setup window had completed the > installation by that point, and all of the postinstall files seemed to > marked as .done. (The dialog box will not go away, no matter how many > times I click "OK", and it's always on top.) Bash-3.0-8 requires cygwin-1.5.18 or newer, in order to satisfy the strtoimax entry point. But according to your cygcheck output, you now have that version: > Cygwin DLL version info: > DLL version: 1.5.18 > bash 3.0-8 My guess is that you were upgrading cygwin and bash at the same time, and that you had some cygwin process running during the upgrade. Because cygwin was in use, it could not get replaced right away (and after all the popups about missing strtoimax for anything that tried to run the new bash, you probably also got a later popup window telling you that in-use files were replaced and you needed to reboot), so the new bash postinstall script could not copy bash to /bin/sh because the new bash couldn't run with the old locked cygwin. I'm also guessing that you rebooted as requested before producing the cygtrace output, but now that /etc/postinstall/bash.sh was marked .done, you didn't realize that /bin/sh had still not been copied. Upgrades really should not be done while cygwin1.dll is in use, and it will be nice when the next version of setup.exe is released which can warn that cygwin is in use to prevent problems like this. > > When I started up bash, it said "BASH: /usr/bin/kpsexpland: /bin/sh: > bad interpreter: No such file or directory", and it's true that I > don't seem to have a /bin/sh. I can fix that by linking /bin/bash.exe > to /bin/sh, but I'm curious as to what might have caused this...I > thought the ash/bash upgrade was all settled. > Actually, it is better to copy than to link, because if you hard link /bin/sh to bash, then bash cannot be used to upgrade /bin/sh (because it is in use), whereas a copy can be freely upgraded. For now, the easiest course of action is probably just using setup.exe to reinstall the latest version of bash. -- Eric Blake volunteer cygwin bash maintainer -- 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/