blob: ad237f19bc9e9ed28f4b43e7a91363bae185242d [file] [log] [blame]
cristy3ed852e2009-09-05 21:47:34 +00001This 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