delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2005/05/21/22:49:48

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
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: <20050522024920.6281.qmail@web31715.mail.mud.yahoo.com>
Date: Sat, 21 May 2005 19:49:20 -0700 (PDT)
From: Sunil <funtoos AT yahoo DOT com>
Subject: dlopen and cygcheck inconsistency
To: cygwin AT cygwin DOT com, kde-cygwin AT kde DOT org
MIME-Version: 1.0

Hi,

cygcheck also searches the `basename <arg1>` for
dependent DLLs while dlopen requires PATH to be set to
open the DLL. One of them should be corrected to make
life consistent. example is as follows:

$ cygcheck /usr/lib/gstreamer-0.8/cyggstossaudio.dll
C:/cygwin/lib/gstreamer-0.8/cyggstossaudio.dll
  C:/cygwin/lib/gstreamer-0.8\cyggstaudio.dll
    C:\cygwin\bin\cygwin1.dll
      C:\WINDOWS\System32\ADVAPI32.DLL
        C:\WINDOWS\System32\ntdll.dll
        C:\WINDOWS\System32\KERNEL32.dll
        C:\WINDOWS\System32\RPCRT4.dll
    C:\cygwin\bin\cygglib-2.0-0.dll
      C:\cygwin\bin\cygiconv-2.dll
      C:\cygwin\bin\cygintl-3.dll
    C:\cygwin\bin\cyggobject-2.0-0.dll
    C:\cygwin\bin\cyggstreamer-0.8-1.dll
      C:\cygwin\bin\cyggmodule-2.0-0.dll
      C:\cygwin\bin\cyggthread-2.0-0.dll
      C:\cygwin\bin\cygpopt-0.dll
      C:\cygwin\bin\cygxml2-2.dll
        C:\cygwin\bin\cygz.dll
  C:\cygwin\bin\cyggstinterfaces-0.8-0.dll

dlopen on /usr/lib/gstreamer-0.8/cyggstossaudio.dll
fails(with win32 error 126) if /usr/lib/gstreamer-0.8
is not in PATH, probably because cyggstaudio.dll is in
there.

if I run the program with
PATH=/usr/lib/gstreamer-0.8:$PATH <prog>, it dlopen()s
the DLL fine.

I think either cygcheck is misleading in this case or
dlopen should check for basename of its argument to
open the dependent DLLs as well. I am speculating that
its the former.

Thanks,
Sunil
PS: One more thing, errno is set to 13 (permission
denied) after dlopen fails (although dlerror() pointed
to 126). Is that right?

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019