On Wednesday 31 August 2005 05:44 pm, Yaakov S wrote:
> Mike Frysinger wrote:
> >>* src/lib/Makefile.am, src/modules/filters/Makefile.am,
> >>src/modules/loaders/Makefile.am:
> >>    add '-no-undefined' to *_la_LDFLAGS;
> >
> > whats the point of this ?
>
> If this is absent, libtool refuses to build shared libraries on Cygwin,
> where all symbols must be resolved at link time.

ld manpage seems to indicate opposite behavior here for the '-no-undefined' 
flag ...

does the flag '--allow-shlib-undefined' work ?

> >>* src/lib/dynamic_filters.c, src/lib/image.c:
> >>    RTDL_LOCAL is not defined on Cygwin;
> >
> > then wouldnt the somewhat sane thing be to put this in an internal header
> > file:
> > #ifndef RTLD_LOCAL
> > # define RTLD_LOCAL 0
> > # warning "your crap box doesnt define RTLD_LOCAL !?"
> > #endif
>
> If that's how you'd rather deal with it, fine.

find attached a patch for this then, please test :)

> >>    #ifndef __imlib_TrimLoaderList, since with it in Cygwin, imlib2         
> >> can't
> >>find the modules
> >
> > going by the comment, this looks like a bug in cygwin ?  what files does
> > it consult if you try to do dlopen("libfoo") ?
>
> In Cygwin, the imlib2 modules are called bumpmap.dll, colormod.dll,
> bmp.dll, etc.  In addition, there are corresponding .dll.a import
> libraries and .la libtool files in the same directory.

then why not fix __imlib_TrimLoaderList ?  i dont have cygwin to test against, 
but what if you change the ".so" test in that func to ".dll" ?
-mike
Index: src/lib/image.h
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/imlib2/src/lib/image.h,v
retrieving revision 1.3
diff -u -p -r1.3 image.h
--- src/lib/image.h	23 Feb 2005 03:12:04 -0000	1.3
+++ src/lib/image.h	1 Sep 2005 02:11:03 -0000
@@ -11,6 +11,11 @@
 # include <dlfcn.h>
 # include <Imlib2.h>
 
+# ifndef RTLD_LOCAL
+#  define RTLD_LOCAL 0
+#  warning "your crap box doesnt define RTLD_LOCAL !?"
+# endif
+
 typedef struct _imlibimage              ImlibImage;
 # ifdef BUILD_X11
 typedef struct _imlibimagepixmap        ImlibImagePixmap;

Reply via email to