[sane-devel] Re: Darwin/MacOSX

Henning Meier-Geinitz henning@meier-geinitz.de
Fri, 29 Nov 2002 15:15:21 +0100


Hi,

On Thu, Nov 28, 2002 at 09:12:03PM +0900, Peter O'Gorman wrote:
> Note that a dlopen compatibility library is needed, I suggest using 
> dlcompat <http://www.opendarwin.org/projects/dlcompat>, but I am a 
> little biased :)

Thanks for the patch. So now we at least know how to detect a AmcOS X
sytsem :-)

However, the dynamic loading issue is still unclear for me:

> +#  ifdef __APPLE__
> +#   define POSTFIX ".%u.so"
> +#  else
>  #   define POSTFIX ".so.%u"
> +#  endif

That's the third version of how MacOS shared libraries are stored.
1) libsane-something.so(.version)
2) libsane-something.dylib.version
3) (yours) libsane-something(.version).so

I'm pretty much confused by this stuff. Can we support all of these
versions? Why are there different approaches at all?
 
> +++ sane-backends-1.0.9/backend/Makefile.in     Sun Nov 24 19:40:38 2002
> @@ -139,7 +139,7 @@
>  libsane-%.la: %.lo %-s.lo $(EXTRA) $(LIBOBJS)
>         @$(LIBTOOL) $(MLINK) $(CC) -export-dynamic -o $@ $($*_LIBS) \
>         $(LDFLAGS) $(BACKENDLIBS) $^ -rpath $(libsanedir) \
> -       -version-info $(V_MAJOR):$(V_REV):$(V_MINOR)
> +       -version-info $(V_MAJOR):$(V_REV):$(V_MINOR) -module

What's the meaning of "-module"? Is it a flag for gcc, ld or libtool?

> +++ sane-backends-1.0.9/configure       Sun Nov 24 19:40:38 2002
> @@ -6571,7 +6571,7 @@
>      #        cross-compilation, but unfortunately the echo tests do not
>      #        yet detect zsh echo's removal of \ escapes.  Also zsh 
> mangles
>      #       `"' quotes if we put them in here... so don't!
> -    archive_cmds='$nonopt $(test .$module = .yes && echo -bundle || 
> echo -dynamiclib) $allow_undefined_flag -o $lib $libobjs 
> $deplibs$linker_flags -install_name $rpath/$soname $verstring'
> +    archive_cmds='$nonopt $(test .$module = .yes && echo -bundle || 
> echo -dynamiclib) $allow_undefined_flag -o $lib $libobjs 
> $deplibs$linker_flags $(test .$module = .yes || (echo -install_name 
> $rpath/$soname $verstring))'

I guess this should be fixed in libtool. If it already is, I'll try to
use a new libtool version in sane-backends.

Bye,
  Henning