| This file provides platform specific portability notes which don't |
| belong in README.txt. Usually ImageMagick compiles fine according to the |
| procedures described in README.txt, but sometimes a platform related |
| oddity causes a failure. |
| |
| Cygwin |
| ====== |
| |
| Problem |
| |
| PerlMagick fails to link. |
| |
| Indications |
| |
| libperl.a is not found. |
| |
| Solution |
| |
| Configure like |
| |
| ./configure --enable-shared |
| |
| or |
| |
| ./configure --enable-shared --with-modules |
| |
| Cygwin doesn't normally come with a libperl.a but it does come with the |
| equivalent DLL. Using a shared build gets PerlMagick over the hurdle. |
| |
| |
| SGI Irix |
| ========= |
| |
| Problem |
| |
| How to successfully configure ImageMagick using SGI's commercial |
| compiler (e.g. IRIX C/C++ v7.3.1.X)? |
| |
| Indications |
| |
| Compiling C++ code fails with the error: |
| #error directive: This header file requires the -LANG:std option |
| |
| Solution |
| |
| Configure like |
| |
| CC=cc CFLAGS="-O2 -OPT:Olimit=0" CXX=CC \ |
| CXXFLAGS="-LANG:std -Wl,-woff,84 -O2" CXXCPP="CC -LANG:std -E" \ |
| ./configure --with-modules --with-threads ... |
| |
| with the following in /etc/compiler.defaults |
| |
| -DEFAULT:abi=n32:isa=mips3 |
| |
| |
| Linux 6.1 |
| ========= |
| |
| Problem |
| |
| When '-rpath /somedir' is added to LDFLAGS in order to tell the |
| linker to apply a run-time linker path, configure fails. |
| |
| Indications |
| |
| The configure script prints the error message |
| |
| checking for executable suffix... |
| configure: error: cannot compute EXEEXT: |
| |
| and the error message |
| |
| gcc: unrecognized option `-rpath' |
| |
| is written to config.log |
| |
| Solution |
| |
| Use 'LDFLAGS=-Wl,-rpath,/somedir' instead to pass the options through |
| to the linker. |
| |
| |
| FreeBSD 3.X and 4.X |
| =================== |
| |
| Problem |
| |
| ImageMagick does not run after it is installed. The system does not |
| see an installed shared library until the 'ldconfig' command has |
| been executed (as root) using the correct options. |
| |
| Indications |
| |
| System fails to find shared library needed by ImageMagick. |
| |
| Solution |
| |
| Either reboot the system (which automatically runs ldconfig) or |
| execute |
| |
| /sbin/ldconfig -m ${PREFIX}/lib |
| |
| where ${PREFIX} is the prefix used when configuring ImageMagick |
| (default /usr/local). |
| |
| |
| Digital Unix and OSF/1 |
| ====================== |
| |
| Problem |
| |
| Digital Unix provides an outdated JPEG shared library as part of the |
| system. |
| |
| Indications |
| |
| ImageMagick fails to link. |
| |
| Solution |
| |
| Ensure that the JPEG library you installed is used. Be sure to |
| install the JPEG library as a shared library. |
| |
| |
| Solaris 2.X |
| ============ |
| |
| Problem |
| |
| An outdated delegate library is used rather than the one just |
| installed. |
| |
| Indications |
| |
| o Failure to link due to unresolved symbols |
| o Failure to run properly |
| o The command 'ldd `which convert`' lists the wrong library. |
| |
| Solution |
| |
| If the problem library is a shared library (.so extension) then |
| install your own library as a shared library. Then add the required |
| -L and -R options to find your shared library at both link and run |
| time. For example, if your library is installed in /usr/local/lib: |
| |
| configure LDFLAGS='-L/usr/local/lib -R/usr/local/lib' |
| |
| Problem |
| |
| An outdated libtiff.so (libtiff.so.3) is installed in |
| /usr/openwin/lib. This library may be used by accident rather than |
| the intended libtiff.so, or libtiff.a. In particular, the linker |
| generally considers linking against a shared library before it |
| considers static libraries, so the system libtiff.so may be used |
| even though there is an installed libtiff.a earlier in the linker |
| search path. |
| |
| Indications |
| |
| ImageMagick fails to link or load TIFF files. |
| |
| Solution |
| |
| o Install libtiff as a shared library, and make sure that LDFLAGS |
| contains the required -L and -R options to find your shared |
| library at both link and run time. For example, if libtiff.so is |
| installed in /usr/local/lib: |
| |
| configure LDFLAGS='-L/usr/local/lib -R/usr/local/lib' |
| |
| or |
| |
| o Remove /usr/openwin/lib/libtiff.so.3. Note that if you take this |
| step, some tools like 'imagetool' and 'pageview' will stop working. |
| |
| Problem |
| |
| When using gcc 3.0.X, configure decides that the compiler is insufficient |
| to compile Magick++. |
| |
| Indications |
| |
| Fails ISO C++ test. |
| |
| Solution |
| |
| The problem is due to gcc provided headers undefining |
| Solaris-provided defines for 64-bit versions of stdio functions. The |
| solution is to either configure with --disable-largefile or edit the |
| installed g++-v3/bits/std_cstdio.h to bracket the offending undefs |
| (for fgetpos, fopen, freopen, fsetpos, & tmpfile) like: |
| |
| #if _FILE_OFFSET_BITS != 64 |
| #undef fopen |
| #endif |
| |
| or |
| |
| Install gcc 3.1 (or later) instead. |
| |
| Problem |
| |
| A static library was used in a shared library build. |
| |
| Indications |
| |
| Linker prints a warning similar to: |
| |
| "ld: fatal: relocations remain against allocatable but non-writable |
| sections" |
| |
| Solution |
| |
| All libraries used in a shared library build *must* also be shared |
| libraries. Check all libraries referenced in the libtool link |
| command line and verify that all of the referenced libraries are |
| indeed shared libraries. All system libraries are available as |
| shared libraries so it is likely that any static library is locally |
| installed. |
| |
| AIX 5.X |
| ============ |
| |
| Problem |
| |
| The builkd dependacy files are not created. |
| |
| Indications |
| |
| The build fails with missing .deps/source.PLO errors. |
| |
| Solution |
| |
| Add --disable-dependency-tracking to your configure command line. |
| |