This is the mail archive of the cygwin 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]

Re: Bash/strtoimax error on setup


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


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