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

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: