Le Wed, 7 Dec 2011 22:07:11 -0800 (PST),
Darrell Anderson <humanreadable(a)yahoo.com> a écrit :
Some progress.
:) I merges some *magick related patches
from Fedora.
I finally found a way to build GraphicsMagick 1.1.15 in
Slackware 13.1. I had to create a gcc43 patch and a patch to
explicitly include libpng12/png.h rather than
libpng14/png.h. Slackware 13.1 includes both but defaults to
libpng14.
With or without GraphicsMagick 1.1.15, the build fails as
before with all of the /usr/lib/libMagickCore.so: undefined
reference errors.
Adding -l/usr/lib/libMagickWand.so to the LDFLAGS does not
help.
When I remove ImageMagick and have GraphicsMagick 1.1.15
installed then KOffice builds. Yet only chalk and
krossrunner build.
An hour and 20 minutes for the build and the build is
incorrect. :(
When I run the readelf command against
ImageMagick /usr/lib/libMagick* libraries, looking for any that
contain references to DrawSetStrokeLineCap, I see the following:
readelf --symbols --wide /usr/lib/libMagick* | grep
DrawSetStrokeLineCap
readelf: Error: Not an ELF file - it has the wrong magic bytes at the
start readelf: Error: /usr/lib/libMagick++.la: Failed to read file
header 1978: 00000000 0 FUNC GLOBAL DEFAULT UND
DrawSetStrokeLineCap 1978: 00000000 0 FUNC GLOBAL DEFAULT UND
DrawSetStrokeLineCap 1978: 00000000 0 FUNC GLOBAL DEFAULT UND
DrawSetStrokeLineCap readelf: Error: Not an ELF file - it has the
wrong magic bytes at the start readelf:
Error: /usr/lib/libMagickCore.la: Failed to read file header 1598:
00000000 0 NOTYPE GLOBAL DEFAULT UND DrawSetStrokeLineCap 1598:
00000000 0 NOTYPE GLOBAL DEFAULT UND DrawSetStrokeLineCap 1598:
00000000 0 NOTYPE GLOBAL DEFAULT UND DrawSetStrokeLineCap
readelf: Error: Not an ELF file - it has the wrong magic bytes at the
start readelf: Error: /usr/lib/libMagickWand.la: Failed to read file
header 871: 00076880 335 FUNC GLOBAL DEFAULT 10
DrawSetStrokeLineCap 871: 00076880 335 FUNC GLOBAL DEFAULT 10
DrawSetStrokeLineCap 871: 00076880 335 FUNC GLOBAL DEFAULT 10
DrawSetStrokeLineCap
I selected the DrawSetStrokeLineCap symbol arbitrarily from the build
log failures.
When I run the ld command against those three ImageMagick libraries,
I see the following:
ld /usr/lib/libMagick++.so
ld: warning: cannot find entry symbol _start; not setting start
address
ld /usr/lib/libMagickWand.so
ld: warning: cannot find entry symbol _start; not setting start
address
ld /usr/lib/libMagickCore.so
ld: warning: cannot find entry symbol _start; not setting start
address /usr/lib/libMagickCore.so: undefined reference to
`DrawPathStart' /usr/lib/libMagickCore.so: undefined reference to
`DrawSetViewbox' /usr/lib/libMagickCore.so: undefined reference to
`DrawSetFont' /usr/lib/libMagickCore.so: undefined reference to
`DrawSetStrokeColor' /usr/lib/libMagickCore.so: undefined reference
to `DrawColor' /usr/lib/libMagickCore.so: undefined reference to
`DrawPopPattern' /usr/lib/libMagickCore.so: undefined reference to
`DrawSetFillPatternURL' /usr/lib/libMagickCore.so: undefined
reference to `DrawSetStrokeDashArray' /usr/lib/libMagickCore.so:
undefined reference to `DrawAllocateWand' /usr/lib/libMagickCore.so:
undefined reference to `PushDrawingWand' /usr/lib/libMagickCore.so:
undefined reference to `DrawPathClose' /usr/lib/libMagickCore.so:
undefined reference to
`PixelSetRedQuantum' /usr/lib/libMagickCore.so: undefined reference
to `DrawScale' /usr/lib/libMagickCore.so: undefined reference to
`DrawSetTextUnderColor' /usr/lib/libMagickCore.so: undefined
reference to `DrawLine' /usr/lib/libMagickCore.so: undefined
reference to `PopDrawingWand' /usr/lib/libMagickCore.so: undefined
reference to `DestroyPixelWand' /usr/lib/libMagickCore.so: undefined
reference to `DrawSetFontSize' /usr/lib/libMagickCore.so: undefined
reference to `DrawTranslate' /usr/lib/libMagickCore.so: undefined
reference to `DrawPathMoveToAbsolute' /usr/lib/libMagickCore.so:
undefined reference to `DrawAnnotation' /usr/lib/libMagickCore.so:
undefined reference to
`DrawSetStrokeAntialias' /usr/lib/libMagickCore.so: undefined
reference to `DrawPushDefs' /usr/lib/libMagickCore.so: undefined
reference to `DrawPathFinish' /usr/lib/libMagickCore.so: undefined
reference to `DestroyMagickWand' /usr/lib/libMagickCore.so: undefined
reference to `DrawRoundRectangle' /usr/lib/libMagickCore.so:
undefined reference to `DrawPopDefs' /usr/lib/libMagickCore.so:
undefined reference to
`PixelSetQuantumColor' /usr/lib/libMagickCore.so: undefined reference
to `DrawSetFillColor' /usr/lib/libMagickCore.so: undefined reference
to `DrawComposite' /usr/lib/libMagickCore.so: undefined reference to
`DrawSetClipPath' /usr/lib/libMagickCore.so: undefined reference to
`DrawRender' /usr/lib/libMagickCore.so: undefined reference to
`DrawEllipse' /usr/lib/libMagickCore.so: undefined reference to
`DrawComment' /usr/lib/libMagickCore.so: undefined reference to
`DrawPathLineToAbsolute' /usr/lib/libMagickCore.so: undefined
reference to `PixelSetBlueQuantum' /usr/lib/libMagickCore.so:
undefined reference to
`DrawSetStrokeLineJoin' /usr/lib/libMagickCore.so: undefined
reference to `DrawPushPattern' /usr/lib/libMagickCore.so: undefined
reference to `PixelSetColor' /usr/lib/libMagickCore.so: undefined
reference to `DrawPushClipPath' /usr/lib/libMagickCore.so: undefined
reference to `DrawSetStrokeLineCap' /usr/lib/libMagickCore.so:
undefined reference to `DrawArc' /usr/lib/libMagickCore.so: undefined
reference to `NewMagickWandFromImage' /usr/lib/libMagickCore.so:
undefined reference to
`PixelSetOpacityQuantum' /usr/lib/libMagickCore.so: undefined
reference to `DrawPopClipPath' /usr/lib/libMagickCore.so: undefined
reference to `DrawSetClipRule' /usr/lib/libMagickCore.so: undefined
reference to `NewPixelWand' /usr/lib/libMagickCore.so: undefined
reference to `DrawRotate' /usr/lib/libMagickCore.so: undefined
reference to `DrawRectangle' /usr/lib/libMagickCore.so: undefined
reference to `DestroyDrawingWand' /usr/lib/libMagickCore.so:
undefined reference to
`DrawSetStrokeWidth' /usr/lib/libMagickCore.so: undefined reference
to `DrawPathEllipticArcAbsolute' /usr/lib/libMagickCore.so: undefined
reference to `DrawSetStrokePatternURL' /usr/lib/libMagickCore.so:
undefined reference to `PixelSetGreenQuantum'
I'm thinking the problem is not how koffice links to ImageMagick, but
ImageMagick itself.
I grabbed the sources for ImageMagick-6.5.3-3, which is the version
that came with Slackware 13.0. (I had to add a patch to force using
libpng12 rather than libpng14.) I rebuilt the package and ran the ld
command against all three libraries. No 'undefined reference' errors.
Something changed between 6.5.3-3 and 6.5.9-6. Something in 6.5.9-6
does not build correctly.
The library seems to have a missing NEEDED for the
library which
provides the functions (which appears to be libMagickWand.so).
You can read the dynamic library part of an ELF library by the command
$ readelf -d <library>.so
Any ideas what? Something in the config options? Compiler flags? My
searching the web revealed nothing.
I have no 'undefined reference' error
with Slackware64 13.37 and its
provided ImageMagick 6.6.6_10. But strangely libMagickCore.so doesn't
specify libMagickWand.so in it's NEEDED list (not even in the ldd
result); seems that the 6.6.6_10 libMagickCore.so doesn't use
libMagickWand.so at all.
Darrell
---------------------------------------------------------------------
To unsubscribe, e-mail:
trinity-devel-unsubscribe(a)lists.pearsoncomputing.net For additional
commands, e-mail: trinity-devel-help(a)lists.pearsoncomputing.net Read
list messsages on the Web archive:
http://trinity-devel.pearsoncomputing.net/ Please remember not to
top-post:
http://trinity.pearsoncomputing.net/mailing_lists/#top-posting