2001.12.04 12:26 "Fix for MacOS 10.1", by Karin Kosina

Hi,

I have just tried to build libtiff (up-to-date from CVS) on MacOS 10.1, and found that DSO support doesn't work. I am attaching a patch that fixes those problems. Sorry if this is off topic, but I was not able to find the address to send patches to.

JFYI: The problem I encountered is due to the linker-update from 10.0.x to 10.1. The "-twolevel_namespace" option (which enables two-pass linking, and is on by default in 10.1) requires the "-undefined error" switch. Besides, you were using "gcc" for the configure test, which is not default on OS X (the compiler there is basically a gcc version, but is called "cc"). This should also work on MacOS 10.0.x, of course.

On a related note, there should be three variables for the DSO extension -- something like @DSOSUF_FULL_VERSION@ in addition to @DSOSUF_VERSION@ and @DSOSUF@. At the moment, you are using @DSOSUF_VERSION@ to get libtiff.3.5.7.so (or libtiff.3.5.7.dylib in the darwin case), and @DSOSUF@ for libtiff.3.so -- and then, at "make install", you create a symlink named libtiff.so. This is not correct on some platforms (at least MacOS X, since here this should read libtiff.dylib).

Anyway, it doesn't hurt to have that additional symlink ;) -- but I've changed the @DSOSUF@ variable to be ".dylib", not "3.dylib" for now since some other program's configure scripts expect to find libtiff.dylib.

Please let me know if you accept the patch; we are requiring libtiff in our texturing library, and would have to distribute the correct configure/Makefile.in files for MacOS X ourselves otherwise.

Best regards,
#!/kyrah

Karin "kyrah" Kosina  (gpg - public key 0x1FE281EB)     http://kyrah.net
Coin3D (by Systems In Motion)                      http://www.coin3d.org
+-----------------------------------><---------------------------------+
In the beginning was the word, and the word was content-type: text/plain

Index: configure
===================================================================
RCS file: /cvsroot/osrs/libtiff/configure,v
retrieving revision 1.20
diff -u -u -r1.20 configure
--- configure  2001/11/15 17:21:05     1.20
+++ configure       2001/12/04 11:59:15
@@ -1194,11 +1194,11 @@
      esac
    ;;
     *-darwin*)
-        DSOSUF=${DIST_MAJOR}.dylib
+        DSOSUF=dylib
         DSOSUF_VERSION=${DIST_MAJOR}.${DIST_MINOR}.${DIST_POINT}.dylib
         LIBCOPTS='-fno-common'
-          DSOLD=gcc
-        DSOOPTS='-dynamiclib -undefined suppress'
+        DSOLD="${CCOMPILER} ${ENVOPTS}"
+        DSOOPTS='-dynamiclib -undefined error'
         DSO=DARWIN
         ;;
     *-linux*)
Index: libtiff/Makefile.in
===================================================================
RCS file: /cvsroot/osrs/libtiff/libtiff/Makefile.in,v
retrieving revision 1.16
diff -u -u -r1.16 Makefile.in
--- libtiff/Makefile.in  2001/09/09 15:56:04     1.16
+++ libtiff/Makefile.in     2001/12/04 11:59:16
@@ -211,7 +211,7 @@
  fi
      touch $@
 DARWINdso: ${OBJS}
-    ${CC} -dynamiclib -undefined suppress \
+        ${CC} -dynamiclib -undefined error \
      -install_name libtiff.@DSOSUF@ \
        -o libtiff.@DSOSUF_VERSION@  ${OBJS} \
          @LIBJPEG@ @LIBGZ@ @MACHDEPLIBS@