This is the mail archive of the
mailing list for the Cygwin project.
Re: Why /usr/bin/*.dll must be executable?
On Apr 21 00:17, De-Jian Zhao wrote:
> On 2012-4-20 21:07, VÃclav Zeman wrote:
> >On 20 April 2012 15:02, De-Jian Zhao wrote:
> >>When I type "cyg" and Tab, many executables starting with "cyg" are listed
> >>(Display all 262 possibilities? (y or n) y). I find that many of them are
> >>*.dll libraries under /usr/bin/. This is inconvenient to find the real
> >>executable applications (*.exe). Since *.dll files are only libraries, they
> >>are not necessary to have the attribute of "x". Thus, I run the command
> >>"chmod a-x /usr/bin/*.dll". Unexpectedly, cygwin is corrupted. I closed the
> >>terminal and failed to restart Cygwin. I started my older version of Cygwin
> >>(I did not deleted it after installing a new version), and added "x" to the
> >>previous *.dll files. The dead Cygwin revived.
> >>I am confused why /usr/bin/*.dll should be executable. I thought they were
> >>only library files. When I tried to run a dll file, bash says "cannot
> >>execute binary file". Are there some hidden stories?
> >DLLs are executables thus they need the +x bit. This is a Windows thing.
> If this is a windows thing, removing the x bit should not affect
> Cygwin. Instead, Cygwin is corrupted after removing the x bit.
Windows requires the x bit for DLLs to be loadable as executable code
into the address space of a process. As VÃclav wrote, it's a Windows
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Project Co-Leader cygwin AT cygwin DOT com
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple