1This file provides platform specific portability notes which don't
2belong in README.txt. Usually ImageMagick compiles fine according to the
3procedures described in README.txt, but sometimes a platform related
4oddity causes a failure.
5
6Cygwin
7======
8
9  Problem
10
11    PerlMagick fails to link.
12
13  Indications
14
15    libperl.a is not found.
16
17  Solution
18
19    Configure like
20
21      ./configure --enable-shared
22
23    or
24
25      ./configure --enable-shared --with-modules
26
27  Cygwin doesn't normally come with a libperl.a but it does come with the
28  equivalent DLL.  Using a shared build gets PerlMagick over the hurdle.
29
30
31SGI Irix
32=========
33
34  Problem
35
36    How to successfully configure ImageMagick using SGI's commercial
37    compiler (e.g. IRIX C/C++ v7.3.1.X)?
38
39  Indications
40
41    Compiling C++ code fails with the error:
42    #error directive:  This header file requires the -LANG:std option
43
44  Solution
45
46    Configure like
47
48      CC=cc CFLAGS="-O2 -OPT:Olimit=0" CXX=CC \
49      CXXFLAGS="-LANG:std -Wl,-woff,84 -O2" CXXCPP="CC -LANG:std -E" \
50      ./configure --with-modules --with-threads ...
51
52    with the following in /etc/compiler.defaults
53
54      -DEFAULT:abi=n32:isa=mips3
55
56
57Linux 6.1
58=========
59
60  Problem
61
62    When '-rpath /somedir' is added to LDFLAGS in order to tell the
63    linker to apply a run-time linker path, configure fails.
64
65  Indications
66
67    The configure script prints the error message
68
69      checking for executable suffix...
70                                  configure: error: cannot compute EXEEXT:
71
72    and the error message
73
74      gcc: unrecognized option `-rpath'
75
76    is written to config.log
77
78  Solution
79
80    Use 'LDFLAGS=-Wl,-rpath,/somedir' instead to pass the options through
81    to the linker.
82
83
84FreeBSD 3.X and 4.X
85===================
86
87  Problem
88
89    ImageMagick does not run after it is installed. The system does not
90    see an installed shared library until the 'ldconfig' command has
91    been executed (as root) using the correct options.
92
93  Indications
94
95    System fails to find shared library needed by ImageMagick.
96
97  Solution
98
99    Either reboot the system (which automatically runs ldconfig) or
100    execute
101
102      /sbin/ldconfig -m ${PREFIX}/lib
103
104    where ${PREFIX} is the prefix used when configuring ImageMagick
105    (default /usr/local).
106
107
108Digital Unix and OSF/1
109======================
110
111  Problem
112
113    Digital Unix provides an outdated JPEG shared library as part of the
114    system.
115
116  Indications
117
118    ImageMagick fails to link.
119
120  Solution
121
122    Ensure that the JPEG library you installed is used. Be sure to
123    install the JPEG library as a shared library.
124
125
126Solaris 2.X
127============
128
129  Problem
130
131    An outdated delegate library is used rather than the one just
132    installed.
133
134  Indications
135
136    o Failure to link due to unresolved symbols
137    o Failure to run properly
138    o The command 'ldd `which convert`' lists the wrong library.
139
140  Solution
141
142    If the problem library is a shared library (.so extension) then
143    install your own library as a shared library. Then add the required
144    -L and -R options to find your shared library at both link and run
145    time. For example, if your library is installed in /usr/local/lib:
146
147      configure LDFLAGS='-L/usr/local/lib -R/usr/local/lib'
148
149  Problem
150
151    An outdated libtiff.so (libtiff.so.3) is installed in
152    /usr/openwin/lib. This library may be used by accident rather than
153    the intended libtiff.so, or libtiff.a. In particular, the linker
154    generally considers linking against a shared library before it
155    considers static libraries, so the system libtiff.so may be used
156    even though there is an installed libtiff.a earlier in the linker
157    search path.
158
159  Indications
160
161    ImageMagick fails to link or load TIFF files.
162
163  Solution
164
165    o Install libtiff as a shared library, and make sure that LDFLAGS
166      contains the required -L and -R options to find your shared
167      library at both link and run time. For example, if libtiff.so is
168      installed in /usr/local/lib:
169
170      configure LDFLAGS='-L/usr/local/lib -R/usr/local/lib'
171
172    or
173
174    o Remove /usr/openwin/lib/libtiff.so.3. Note that if you take this
175      step, some tools like 'imagetool' and 'pageview' will stop working.
176
177  Problem
178
179    When using gcc 3.0.X, configure decides that the compiler is insufficient
180    to compile Magick++.
181
182  Indications
183
184    Fails ISO C++ test.
185
186  Solution
187
188    The problem is due to gcc provided headers undefining
189    Solaris-provided defines for 64-bit versions of stdio functions. The
190    solution is to either configure with --disable-largefile or edit the
191    installed g++-v3/bits/std_cstdio.h to bracket the offending undefs
192    (for fgetpos, fopen, freopen, fsetpos, & tmpfile) like:
193
194    #if _FILE_OFFSET_BITS != 64
195    #undef fopen
196    #endif
197
198       or
199
200    Install gcc 3.1 (or later) instead.
201
202  Problem
203
204    A static library was used in a shared library build.
205
206  Indications
207
208    Linker prints a warning similar to:
209
210    "ld: fatal: relocations remain against allocatable but non-writable
211     sections"
212
213  Solution
214
215    All libraries used in a shared library build *must* also be shared
216    libraries. Check all libraries referenced in the libtool link
217    command line and verify that all of the referenced libraries are
218    indeed shared libraries. All system libraries are available as
219    shared libraries so it is likely that any static library is locally
220    installed.
221
222AIX 5.X
223============
224
225  Problem
226
227    The builkd dependacy files are not created.
228
229  Indications
230
231    The build fails with missing .deps/source.PLO errors.
232
233  Solution
234
235    Add --disable-dependency-tracking to your configure command line.
236
237