amd64 port of transcode broke
sean at mcneil.com
Wed Apr 13 14:16:55 PDT 2005
On Wed, 2005-04-13 at 20:38 +0000, Chuck Robey wrote:
> Sean McNeil wrote:
> > On Wed, 2005-04-13 at 20:06 +0000, Chuck Robey wrote:
> >>The port of multimedia/transcode is busted. That won't surprise you
> > Actually, from your error below it is not transcode that is busted, but
> > your libXaw.
> >>unduly, but the error is one I would very much like to learn about, so
> >>if you can help, please please do. The error from the build listing (I
> >>always capture build listings) is:
> >>/bin/sh /usr/local/bin/libtool13 --mode=link cc -Wall
> >>-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O2
> >> -fno-strict-aliasing -pipe -L/usr/local/lib -L/usr/X11R6/lib -o
> >>filter_subtitler.la -rpath /usr/local/lib/transcode -modu
> >>le -avoid-version filter_subtitler.lo load_ppml_file.lo load_font.lo
> >>frame_list.lo object_list.lo x11.lo text_processing.lo
> >> load_pictures.lo parser.lo external_programs.lo color_processor.lo
> >>-L/usr/X11R6/lib -lSM -lICE -lXext -lX11 -lXpm -lXaw -
> >>lXt -lm -L/usr/local/lib -Wl,--rpath -Wl,/usr/local/lib -lfreetype -lz
> >>-L/usr/local/lib -liconv -liconv -lm -lz
> >>rm -fr .libs/filter_subtitler.la .libs/filter_subtitler.*
> >>cc -shared -Wl,--rpath -Wl,/usr/local/lib/transcode
> >>filter_subtitler.lo load_ppml_file.lo load_font.lo frame_list.lo obje
> >>ct_list.lo x11.lo text_processing.lo load_pictures.lo parser.lo
> >>external_programs.lo color_processor.lo -L/usr/local/lib -
> >>L/usr/X11R6/lib -lSM -lICE -lXext -lX11 -lXpm -lXaw -lXt -lm -lfreetype
> >>-lz -liconv -liconv -lm -lz -Wl,-soname -Wl,filter
> >>_subtitler.so -o .libs/filter_subtitler.so
> >>/usr/bin/ld: /usr/X11R6/lib/libXaw.a(Simple.o): relocation R_X86_64_32
> >>can not be used when making a shared object; recompi
> >>le with -fPIC
> >>/usr/X11R6/lib/libXaw.a: could not read symbols: Bad value
> >>gmake: *** [filter_subtitler.la] Error 1
> > You are missing a shared library. It should have picked up libXaw.so,
> > not libXaw.a. You should reinstall the port that has libXaw - for me, I
> > use xorg-libraries-6.8.2. The file(s) should
> > be /usr/X11R6/lib/libXaw.so*. Check that they exist and have proper
> > symlinks.
> Well, yes and no.
> You got it right, I had some funny business, and a bad link to
> libXaw.so.8, so I went into /usr/X11R6/lib and fixed it up, then
> reinit'ed ldconfig, and checked it with ldconfig -r, it's all right now.
> There IS a libXaw.a. Unfortunately, you don't get a prize for being
> right, because after that, I cleaned it up to start from scratch, and
> the EXACT same error pops up.
Of course there IS a libXaw.a. It is complaining about it. There
exists a symbol in the libXaw.a library that is using relocation
R_X86_64_32 and that is not compatible with position-independent code
(PIC). Shared libraries must be build with all-PIC.
> > This is an error indicating that you are mixing PIC and non-PIC code
> > together. Everything that goes into a shared library for amd64 needs to
> > be compiled -fPIC, but libXaw.a is not built that way.
> Well that's fascinating, any notion where you got that info?
>From years of experience :) Specifically with compilers and other
> As an experiment, I will go ahead and use the /usr/ports/x11/libXaw port
> to reinstall libXaw again.
I'm not sure where you are getting that port. I have no such port in my
ports directory. Are you, perchance, using some older repository of the
ports collection? If so, I would strongly suggest that you cvsup to a
more recent one as amd64 support in ports is not all that old. I would
suggest you try the following and make sure that the library is coming
from only one source:
find /var/db/pkg/ -name "+CONTENTS" -print0 | xargs -0 grep libXaw\.so
More information about the freebsd-amd64