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

Re: Changed library interface causing FTBFS of cernlib?



On Mon, Feb 23, 2004 at 06:24:31AM -0500, Kevin B. McCarty wrote:
> Hi,
> I've gotten a bunch of FTBFSes for cernlib 2003.09.03-4 which I assume are 
> related to the new X release.  The problem is that when linking a program 
> with these flags,

Yes, I'm getting a few strange reports like this.  To be honest I don't
yet know if it's a package bug or some sort of weirdness inflicted on
the buildds due to kludge necessary to work around the fact that
xlibs-dev is now an architecture-independent pseudopackage.

> /usr/bin/ld: warning: libICE.so.6, needed by 
> /usr/lib/gcc-lib/ia64-linux/3.3.3/../../../libXm.so, not found (try using -rpath or -rpath-link)
[...]
> This always worked before (with X 4.2.1-xx).  So, a few questions:
> 
> 1) To fix this, the only thing I should have to do is change my linker 
> flags as below, is that correct?
> 
> -L/usr/X11R6/lib -lXm -lXt -lXp -lXext -lX11 -lSM -lICE -lXpm -lnsl -lcrypt -ldl -lg2c
>                                              ^^^^^^^^^^^^^^^^
> added flags ---------------------------------------'
[...]
> correction: assuming my library dependency checking script (attached) is
> correct, having run it on an shlib directory filled with symlinks to 
> the libs in /usr/X11R6/lib, the linkage for Lesstif programs should be:
> 
> -L/usr/X11R6/lib -lXm -lXp -lXt -lXext -lXpm -lX11 -lSM -lICE
> 
> is that right?

Well, let's see:

libXp.so:
	libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x6ffa5000)
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x6feac000)
	libc.so.6 => /lib/libc.so.6 (0x6fd4e000)
	libdl.so.2 => /lib/libdl.so.2 (0x6fd2b000)
	/lib/ld.so.1 => /lib/ld.so.1 (0x08000000)
libXt.so:
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x6fe88000)
	libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x6fe5e000)
	libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x6fe26000)
	libc.so.6 => /lib/libc.so.6 (0x6fcc8000)
	libdl.so.2 => /lib/libdl.so.2 (0x6fca5000)
	/lib/ld.so.1 => /lib/ld.so.1 (0x08000000)
libXext.so:
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x6fed5000)
	libc.so.6 => /lib/libc.so.6 (0x6fd77000)
	libdl.so.2 => /lib/libdl.so.2 (0x6fd54000)
	/lib/ld.so.1 => /lib/ld.so.1 (0x08000000)
libXpm.so:
	libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x6fed6000)
	libc.so.6 => /lib/libc.so.6 (0x6fd78000)
	libdl.so.2 => /lib/libdl.so.2 (0x6fd55000)
	/lib/ld.so.1 => /lib/ld.so.1 (0x08000000)
libX11.so:
	libdl.so.2 => /lib/libdl.so.2 (0x6fee4000)
	libc.so.6 => /lib/libc.so.6 (0x6fd86000)
	/lib/ld.so.1 => /lib/ld.so.1 (0x08000000)
libSM.so:
	libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x6ff9e000)
	libc.so.6 => /lib/libc.so.6 (0x6fe40000)
	/lib/ld.so.1 => /lib/ld.so.1 (0x08000000)
libICE.so:
	libc.so.6 => /lib/libc.so.6 (0x6fe6a000)
	/lib/ld.so.1 => /lib/ld.so.1 (0x08000000)

So, what you have looks about right.

> 2) Will this cause any problems with backwards compatibility for
> X <= 4.2.1-xx (e.g. for woody backports)?

Shouldn't.  These libraries have changed very little internally, and
they certainly haven't changed their interdependencies.  E.g., libICE
did not used to use symbols from libX11.

> 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.

> 3) Do I need to Build-Depend on any additional X packages other than 
> xlibs-dev now?

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.

If you application uses X protocol headers directly, you should also
Build-Depend on x-dev.  If it doesn't, don't worry about it.

You can drop the dependency on xlibs-dev entirely:

Package: xlibs-dev
Status: install ok installed
Priority: optional
Section: libdevel
Installed-Size: 208
Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
Source: xfree86
Version: 4.3.0-2
Depends: libice-dev, libsm-dev, libx11-dev, libxext-dev, libxi-dev, libxmu-dev, libxmuu-dev, libxp-dev, libxpm-dev, libxrandr-dev, libxt-dev, libxtrap-dev, libxtst-dev, libxv-dev, pm-dev, x-dev, xlibs-static-dev
Description: X Window System client library development files pseudopackage
 This package smooths upgrades from Debian 3.0 by depending on libice-dev,
 libsm-dev, libx11-dev, libxext-dev, libxi-dev, libxmu-dev, libxmuu-dev,
 libxp-dev, libxpm-dev, libxrandr-dev, libxt-dev, libxtrap-dev, libxtst-dev,
 libxv-dev, pm-dev, x-dev, and xlibs-static-dev.  This pseudopackage is only
 depended upon by packages that haven't yet corrected their dependencies to
 reflect the new library arrangement.

> 4) less important for practical purposes, but I'm curious: what changed?

As far as I know, nothing apart from the package split, which is
copiously documented in the XFree86 package changelog.

> Also, if there is a FAQ regarding this for which I should RTFM, let me 
> know.

Not yet.  Once I understand what is causing the strange failures people
are seeing, I will prepare one, and likely post it to
debian-devel-announce.

-- 
G. Branden Robinson                |     You don't just decide to break
Debian GNU/Linux                   |     Kubrick's code of silence and then
branden@debian.org                 |     get drawn away from it to a
http://people.debian.org/~branden/ |     discussion about cough medicine.

Attachment: signature.asc
Description: Digital signature


Reply to: