Re: PW#5-11: Policy on stripping static libraries
On 14 Jan, joost witteveen wrote:
>>
>> Debian Policy Weekly issue #5 :
>>
>> runtime pkg: shared lib stripped with --strip-unneeded
>> develop pkg: static lib stripped with --strip-debug
>> debug pkg: static lib unstripped
>
> I may be _way_ wrong here, but it seems to me that most people that do
> (real) development, also want to debug. So we could make the "debug pkg"
> unneeded by just allowing the develop pkg to contain the debug info.
> (Personally, I don't see much use for static libs without debug info).
I absolutely object.
People need to install -dev packages mostly because thay are compiling
programs that link some library, and therefore they need the symlink
lib.so -> lib.so.soname and some header files.
People that wants to create a statically linked program need an archive
library (humm, seems an assertion that needs to be re-checked; it's
historically true, but ... who knows? I'll do some tests trying to
build static executables from shared libs).
Therefore, -dev libraries have only:
* the symlink libname.so -> real.lib
* the static lib (ar archive) stripped with --strip-debug
* the headers exported by the api of the lib
Instead, the -dbg package, is required only from someone that is
debugging a program linked with that lib, just in case he wants to
debug the library itself, or simply follow/list the lib's flow (in these
cases he also needs the sources).
Actually only your libg++ holds shared libs for debugging, (and
installs them on top of /etc/ld.so.conf, which is IMO something not to
be done on a production system :-), while all the others (with two
exeptions) have a static archive with a different name (from the one in
the -dev package).
I have already proposed (well, I'm proposing it now :-) to build -dbg
packages in a different way:
* a shared unstripped lib, compiled with -DDEBUG, with the same
name.soname of the runtime lib, installed in a different dir
(/usr/lib/debug) which *ISN'T* in /etc/ld.so.conf
* a static version of the same debug objects (the above dubts
apply also here)
* the sources (.c or .cc or ...) corresponding to the objects in
the library, installed in /usr/src/<package>-<version>/
What do you think of this scheme?
Fabrizio
--
| fpolacco@icenet.fi fpolacco@debian.org fpolacco@pluto.linux.it
| Pluto Leader - Debian Developer & Happy Debian 1.3.1 User - vi-holic
| 6F7267F5 fingerprint 57 16 C4 ED C9 86 40 7B 1A 69 A1 66 EC FB D2 5E
> more than 35 months are needed to get rid of the millennium. [me]
>If NT is your answer, means you didn't understand the question.[som1]
Reply to: