From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8000 invoked by alias); 20 Apr 2012 17:32:54 -0000 Received: (qmail 7989 invoked by uid 22791); 20 Apr 2012 17:32:53 -0000 X-SWARE-Spam-Status: No, hits=-5.6 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,TW_RW X-Spam-Check-By: sourceware.org Received: from mail-pz0-f42.google.com (HELO mail-pz0-f42.google.com) (209.85.210.42) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 20 Apr 2012 17:32:39 +0000 Received: by dang27 with SMTP id g27so16276361dan.15 for ; Fri, 20 Apr 2012 10:32:39 -0700 (PDT) Received: by 10.68.225.104 with SMTP id rj8mr14146661pbc.135.1334943159418; Fri, 20 Apr 2012 10:32:39 -0700 (PDT) Received: from [172.23.176.68] ([120.196.125.174]) by mx.google.com with ESMTPS id qk9sm5164381pbc.63.2012.04.20.10.32.38 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 20 Apr 2012 10:32:38 -0700 (PDT) Message-ID: <4F919DA6.7000700@gmail.com> Date: Fri, 20 Apr 2012 17:32:00 -0000 From: De-Jian Zhao User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20120312 Thunderbird/11.0 MIME-Version: 1.0 To: cygwin@cygwin.com Subject: Re: Why /usr/bin/*.dll must be executable? References: <4F915E65.8070608@gmail.com> <4F918C2A.2080300@gmail.com> <20120420162718.GK22155@calimero.vinschen.de> In-Reply-To: <20120420162718.GK22155@calimero.vinschen.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-IsSubscribed: yes Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com X-SW-Source: 2012-04/txt/msg00437.txt.bz2 On 2012-4-21 0:27, Corinna Vinschen wrote: > 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: >>>> Hi, >>>> >>>> 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 > thing. Can Windows see the rwx bits assigned by Cygwin to the files? I tried removing the x bit of an executable file blastall.exe (chmod a-x blastall.exe); the file can not be executed under Cygwin, but still can be executed under cmd console of Windows. It seems that Windows does not honor the rwx bits assigned by Cygwin. Is there a detailed description of the starting process of Cygwin system? Or, how does Cygwin interact with *.dll files? After starting Cygwin, I ran "chmod a-x /usr/bin/cygperl5_10.dll" and perl could not be started any more. This could be cured by ran "chmod a+x /usr/bin/cygperl5_10.dll". It seems to me that the Cygwin binary executables will communicate with their corresponding *.dll files when executed. The *.dll provide the required functions and subroutines and that's enough. There is no need to mark *.dll with an x bit. I have no strong background of computer science. Maybe there is some basic knowledge beyond my imagination. Hope you can help disclose it to me. Thanks. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple