]> granicus.if.org Git - imagemagick/blob - Platforms.txt
Added checks for exceptions.
[imagemagick] / Platforms.txt
1 This file provides platform specific portability notes which don't
2 belong in README.txt. Usually ImageMagick compiles fine according to the
3 procedures described in README.txt, but sometimes a platform related
4 oddity causes a failure.
5
6 Cygwin
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
31 SGI 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
57 Linux 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
84 FreeBSD 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
108 Digital 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
126 Solaris 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     
222 AIX 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