chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] Re: cygchicken


From: Brandon J. Van Every
Subject: Re: [Chicken-users] Re: cygchicken
Date: Fri, 14 Jul 2006 17:54:15 -0700
User-agent: Thunderbird 1.5.0.4 (Windows/20060516)

John Cowan wrote:

Brandon J. Van Every scripsit:
  

   * Generic GCC is hard-coded to always look in /usr/lib and /lib when 
searching for libraries. This is a problem when using "mingw" mode 
because Cygwin libraries are installed in /usr/lib. The linker should 
never search in the Cygwin-specific lib directory when linking "mingw" 
binaries. However, since the Cygwin-specific lib directory is the same 
directory as one of GCC's hard-coded directories, this has the potential 
to happen and cause problems.

   * Whether in "cygwin" or "mingw" mode, Cygwin GCC's linker adds the 
"cyg" prefix to DLL basenames during its library search phase. This 
should not happen in "mingw" mode.

The solution to the first problem involves moving files around and 
fixing GCC's specs file. The solution to the second problem is a simple 
fix to the specs file.
    

Since you seem to understand this problem, can you push the report
upstream to the Cygwin people?

I simply copied what was in the FAQ.  You might talk to the FAQ people about pushing to Cygwin.  It's not something I'm concerned about; I used it as an example of why you don't want to mess with -mno-cygwin.


  
The Cygwin CMake build of csi, does "csi -R srfi-1" just fine.  So it 
seems that either cygwin-default-dynamic-load-libraries is not being 
utilized, or that something somewhere is happy enough to use / convert 
to "lib" as the prefix.
    

The units are inside libchicken; they are separate only from the point
of view of the Scheme programmer, who needs to use (aka require-extension)
them explicitly so that they don't contaminate the Scheme interaction
namespace.  This is very different from the eggs, which are DLLs.
  

Well I'm not really understanding or interested in the problem; that is, whether the name cygchicken can break stuff.  I'd feel differently if something was indeed provably broken.  I don't like trying to understand code I don't use, just to find out if something *might* break.  I've got plenty of stuff I already know I need to fix, or develop from scratch.

  
I do not know who should take responsibility for DLL Hell.  I think most 
Windows developers deal with this by being careful to keep their own 
"known good" DLLs in their own application directories.  Renaming 
libraries isn't typically the Windows way, but then, Cygwin isn't 
Windows.
    

That works well at run time, but is not so good at link time, as
The cyg- prefix is an ugly compromise made necessary because
Cygwin-MinGW cross-compiling is not treated entirely separately,
as other kinds of cross-compilers are.
  

Well that's a Cygwin user's problem though.  People who take MinGW seriously use either www.mingw.org or Dev-Cpp distributions, and are far more likely to develop in "the Windows way."


Cheers,
Brandon Van Every


reply via email to

[Prev in Thread] Current Thread [Next in Thread]