[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Changed library interface causing FTBFS of cernlib?



On Wed, Feb 25, 2004 at 12:37:10PM -0500, Kevin B. McCarty wrote:
> On Mon, 23 Feb 2004, Branden Robinson wrote:
> 
> > On Mon, Feb 23, 2004 at 06:24:31AM -0500, Kevin B. McCarty wrote:
> [...]
> > > Presumably there was some reason that earlier, these extra libs were
> > > only required on powerpc?
> > 
> > I don't think that is a valid premise.  I think they probably were.
> 
> Sorry, I should have been clearer.  In my understanding, as of X 4.2.1,
> the extra libraries like libICE.so and libSM.so needed to be explicitly
> linked (via the arguments to gcc) only on powerpc;

This is the first I've heard of this.  If it is true, I have no idea
why.

> on other arches the linker was able to figure out to link them in
> automatically via the lib dependencies of libXm.so (Lesstif).

I didn't think the linker worked this way; I thought you always had to
provide explicit linkage for every object you required, static or
dynamic; direct or transitive dependency.

> That is, on any arch other than powerpc, the linker flags would look
> like "-lXm ... -lX11" and on powerpc, they needed to look like "-lXm
> ...  -lX11 -lSM -lICE".  If that understanding is wrong (I wouldn't be
> surprised if it is, as it was derived from the cernlib upstream lib
> dependency script), please correct me again.

I don't know if it's right, but I'd be surprised if it were.

Then again, I'm not a toolchain wizard, and toolchain wizards are subtle
and quick to anger, so I will not speculate too much.

> >From what James Troup said in a followup, it looks like the weird errors
> were due not to a new requirement that libSM and libICE be explicitly
> linked in, but rather due to a problem that left apt or dpkg thinking
> libice6 was installed even though it was actually not.  So I guess the
> -lSM -lICE flags are still not explicitly required, and my question
> becomes, is it _better_ to include those flags even if not explicitly
> required?

As I understand the way you're supposed to handle linkage, yes.  The
only library that is implicitly linked is the C library.

> > Yes, given the above linkage, you need to Build-Depend on:
> > libxp-dev, libxt-dev, libxext-dev, libxpm-dev, libx11-dev, libsm-dev,
> > libice-dev.
> 
> Cernlib depends upon libXp, libXext, libXpm, libSM and libICE only through
> Lesstif, not explicitly.

In days past, libXm also depended on libXt.  If ldd says that is no
longer true, though, then I won't contradict it.

> So I presume that I should Build-Depend upon:
> 
> lesstif2-dev|lesstif-dev, x-dev|xlibs-dev, libx11-dev|xlibs-dev, 
> libxt-dev|xlibs-dev
> 
> (where in each case the alternative is for woody back-portability); does 
> that seem correct?

Almost.  You should version each of the xlibs-dev dependencies to (<<
4.3.0).

Also, you should put spaces on each side of your pipe characters.  :)

-- 
G. Branden Robinson                |    Damnit, we're all going to die;
Debian GNU/Linux                   |    let's die doing something *useful*!
branden@debian.org                 |    -- Hal Clement, on comments that
http://people.debian.org/~branden/ |       space exploration is dangerous

Attachment: signature.asc
Description: Digital signature


Reply to: