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: