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

Re: libc6-dbg



At Wed,  4 Aug 2004 01:49:54 +0200,
fabien.carrion@tremplin-utc.net wrote:
> Selon Daniel Jacobowitz <dan@debian.org>:
> 
> > On Fri, Jul 23, 2004 at 04:53:54PM +0900, GOTO Masanori wrote:
> > > Hi,
> > > 
> > > At Mon, 19 Jul 2004 15:32:34 +0200 (CEST),
> > > Fabien Carrion wrote:
> > > > I got a little suggestion for the package libc6-dbg. I used it for a
> > > > little while, and the principal limitation is that we can't debug
> > inside
> > > > the macros. So I would like to know if you planed to do an another
> > package
> > > > with the debugging symbols for the macros, I mean the gcc's options :
> > > > - -gdwarf-2 -g3
> > > 
> > > It's good idea for me.  I don't know we can use DWARF2 level3 on all
> > > architectures, though.
> > > 
> > > Daniel, how about adding this option?  If it's easy to add simply this
> > > option, I welcome to use it.
> > 
> > Sorry, I missed this message.
> > 
> > It's easy to add.  It will work on all platforms.  However:

Thanks follow up.  It's nice to work on all platforms.

> > (A) it will be a huge increase in disk space

I checked (A) built glibc with -gdwarf2 -g3.  But the build was failed
during i386-libc:

	/disk/hdc2/glibc/debian-build/glibc_2.3.2.ds1-16.test1/glibc-2.3.2.ds1
	/build-tree/i386-libc/elf/ld-linux.so.2 --library-path /disk/hdc2/glib
	c/debian-build/glibc_2.3.2.ds1-16.test1/glibc-2.3.2.ds1/build-tree/i38
	6-libc:/disk/hdc2/glibc/debian-build/glibc_2.3.2.ds1-16.test1/glibc-2.
	3.2.ds1/build-tree/i386-libc/math:/disk/hdc2/glibc/debian-build/glibc_
	2.3.2.ds1-16.test1/glibc-2.3.2.ds1/build-tree/i386-libc/elf:/disk/hdc2
	/glibc/debian-build/glibc_2.3.2.ds1-16.test1/glibc-2.3.2.ds1/build-tre
	e/i386-libc/dlfcn:/disk/hdc2/glibc/debian-build/glibc_2.3.2.ds1-16.tes
	t1/glibc-2.3.2.ds1/build-tree/i386-libc/nss:/disk/hdc2/glibc/debian-bu
	ild/glibc_2.3.2.ds1-16.test1/glibc-2.3.2.ds1/build-tree/i386-libc/nis:
	/disk/hdc2/glibc/debian-build/glibc_2.3.2.ds1-16.test1/glibc-2.3.2.ds1
	/build-tree/i386-libc/rt:/disk/hdc2/glibc/debian-build/glibc_2.3.2.ds1
	-16.test1/glibc-2.3.2.ds1/build-tree/i386-libc/resolv:/disk/hdc2/glibc
	/debian-build/glibc_2.3.2.ds1-16.test1/glibc-2.3.2.ds1/build-tree/i386
	-libc/crypt:/disk/hdc2/glibc/debian-build/glibc_2.3.2.ds1-16.test1/gli
	bc-2.3.2.ds1/build-tree/i386-libc/linuxthreads:/usr/lib/libfakeroot:/u
	sr/lib64/libfakeroot /disk/hdc2/glibc/debian-build/glibc_2.3.2.ds1-16.
	test1/glibc-2.3.2.ds1/build-tree/i386-libc/timezone/zic -d /disk/hdc2/
	glibc/debian-build/glibc_2.3.2.ds1-16.test1/glibc-2.3.2.ds1/debian/tmp
	-libc/usr/share/zoneinfo -L /dev/null -y ./yearistype africa
	make[3]: *** [/disk/hdc2/glibc/debian-build/glibc_2.3.2.ds1-16.test1/g
	libc-2.3.2.ds1/debian/tmp-libc/usr/share/zoneinfo/Africa/Algiers] Segm
	entation fault
	make[3]: Leaving directory `/disk/hdc2/glibc/debian-build/glibc_2.3.2.
	ds1-16.test1/glibc-2.3.2.ds1/build-tree/glibc-2.3.2/timezone'
	make[2]: *** [timezone/subdir_install] Error 2
	make[2]: Leaving directory `/disk/hdc2/glibc/debian-build/glibc_2.3.2.
	ds1-16.test1/glibc-2.3.2.ds1/build-tree/glibc-2.3.2'
	make[1]: *** [install] Error 2
	make[1]: Leaving directory `/disk/hdc2/glibc/debian-build/glibc_2.3.2.
	ds1-16.test1/glibc-2.3.2.ds1/build-tree/i386-libc'
	make: *** [/disk/hdc2/glibc/debian-build/glibc_2.3.2.ds1-16.test1/glib
	c-2.3.2.ds1/stamp-dir/install_libc] Error 2

It seems i386-libc was not correctly built.  I didn't investigate why
this build was failed.

This is intermediate result, but directory size becomes:

    gotom@moog:~/debian/glibc/cvs/build/glibc_2.3.2.ds1-16.test1/glibc-2.3.2.ds1> du -s build-tree
    6047220 build-tree
    gotom@moog:~/debian/glibc/cvs/build/glibc_2.3.2.ds1-16.test1/glibc-2.3.2.ds1> du -s build-tree/*
    116184  build-tree/glibc-2.3.2
    1814124 build-tree/i386-i686
    2385268 build-tree/i386-libc
    1731640 build-tree/i386-nptl

glibc 2.3.2.ds1-14 on i386 needs:

    gotom@moog:~/debian/glibc/cvs/build/glibc_2.3.2.ds1-14.release/glibc-2.3.2.ds1> du -s build-tree
    1430088 build-tree
    gotom@moog:~/debian/glibc/cvs/build/glibc_2.3.2.ds1-14.release/glibc-2.3.2.ds1> du -s build-tree/*
    124708  build-tree/glibc-2.3.2
    187780  build-tree/i386-i686
    930480  build-tree/i386-libc
    187116  build-tree/i386-nptl

It means we need more build space for glibc.  It's 4 times larger from
1.5GB to 6GB.  I guess it increases on other architectures.  Comparing
each file size:

	2.3.2.ds1-14	2.3.2.ds1-16
	 2033270	117063759	i386-i686/libc.so
	23105290	120783012	i386-libc/libc.so
	 2033441	109070250	i386-nptl/libc.so
	  131499	  5242995	i386-i686/elf/ld.so
	 1132410	  5984894	i386-libc/elf/ld.so
	  127268	  5156036	i386-nptl/elf/ld.so
	  162875	 16342311	i386-i686/nptl/libpthread.so*
	   47973	  5499013	i386-i686/nptl_db/libthread_db.so*

You can see the file size is _more than_ 4 times larger.  So, from the
above observations:

 (1) Considering disk space consumed by glibc build, it's too large.
 (2) Considering libc-dbg file size, it's also too much large size.

> > (B) is that really what the submitter needs?  Probably they want to
> > debug the macros in their source rather than in glibc's source...
> > If you need to debug that deep into glibc, you probably want to rebuild
> > it yourself anyway.

I fully agreed.

BTW, it's good idea to provide control "-g" level at a few point,
using (for example) CFLAGS_DEBUGLEVEL="-g" and so on.  There're some
places to describe "-g" level in debian glibc.

> I really need this feature, I want to debug in the libc macro. I don t know if 
> there is a need to do a special package. Basically I just tried to compile my 
> one package, but each time, it takes ages, and it never finished the 
> compilation, because there was no space left on the disk. I bet it does not 
> compile only one package, but various packages for various architectures.

If your reason is only "because there was no space left on the disk",
I would like to deny your request.  Only the thing you should do is:
adding a large disk to your machine.

I feel it's very interesting suggestion, and I would like to use this
option for personal glibc debugging build.  But I also think it's too
large to provide libc-dbg package with -gdwarf2 -g3.  Fabien, if you
want to insist to support -g3, please check the file size on all (11)
official architectures and report us the total size.  I think it
consumes a lot of disk spaces.  At least, from above result, I don't
apply your suggestion for libc6-dbg.

> So if there is no package made, I would like to have a link on a
> documentation on how to compile properly the libc6 package on a
> debian...

You need to know how to build debian packages as follows:

	apt-get build-dep libc6
	apt-get source libc6
	cd glibc-2.3.2.ds1
	debuild

Regards,
-- gotom




Reply to: