Hi,
I want to add support generating .debug files that are linked from .so files so that we can have one set of binaries, no matter whether a person is a developer or end-user and yet have no additional disk space or bandwidth costs. This is really just a RFC about changes I've made to the DLL makefiles, before I start copying and pasting them to the other areas. Am I on the right lines here? Do I need to add a configure check for objcopy? Do I need a configure check for the --add-gnu-debuglink option?
Rob
On Wed, 24 Nov 2004 11:24:01 -0600, Robert Shearman wrote:
I want to add support generating .debug files that are linked from .so files so that we can have one set of binaries, no matter whether a person is a developer or end-user and yet have no additional disk space or bandwidth costs.
Cool. Though this does mean yet more packages on the web page.
Also this only works with gdb, no? And currently unless something truly terrible happens Wine will never core dump, it'll trap the exception and launch winedbg which I think does not support .gnu_debuglink
Is the plan to add support for that to winedbg?
This is really just a RFC about changes I've made to the DLL makefiles, before I start copying and pasting them to the other areas. Am I on the right lines here? Do I need to add a configure check for objcopy? Do I need a configure check for the --add-gnu-debuglink option?
Yes, this is a very recent feature only available in new toolchains. It only recently started stabilising too so it'd be nice if there was a way to disable it.
thanks -mike
Mike Hearn wrote:
On Wed, 24 Nov 2004 11:24:01 -0600, Robert Shearman wrote:
I want to add support generating .debug files that are linked from .so files so that we can have one set of binaries, no matter whether a person is a developer or end-user and yet have no additional disk space or bandwidth costs.
Cool. Though this does mean yet more packages on the web page.
Theoretically, you will only need the debuginfo packages if you have a crash and want to debug it. It will not be something that most users install.
Also this only works with gdb, no? And currently unless something truly terrible happens Wine will never core dump, it'll trap the exception and launch winedbg which I think does not support .gnu_debuglink
Is the plan to add support for that to winedbg?
It is already there. I added support for it a few months ago.
This is really just a RFC about changes I've made to the DLL makefiles, before I start copying and pasting them to the other areas. Am I on the right lines here? Do I need to add a configure check for objcopy? Do I need a configure check for the --add-gnu-debuglink option?
Yes, this is a very recent feature only available in new toolchains. It only recently started stabilising too so it'd be nice if there was a way to disable it.
I wasn't very clear about what I wanted with the makefiles. Basically, this will be an optional post-build step. The way I am leaning towards at the moment is that "make install" will install with full debugging information, but "make install && make install-debuginfo" will strip the debug info into separate files and install it. AFAIK, the feature has been stable for a year and a few distros are making full use of it. Fedora definitely provides -debug packages that have the separate debug information.
Rob
On Wed, 2004-11-24 at 12:33 -0600, Robert Shearman wrote:
It is already there. I added support for it a few months ago.
Oops, sorry.
I wasn't very clear about what I wanted with the makefiles. Basically, this will be an optional post-build step. The way I am leaning towards at the moment is that "make install" will install with full debugging information, but "make install && make install-debuginfo" will strip the debug info into separate files and install it. AFAIK, the feature has been stable for a year and a few distros are making full use of it. Fedora definitely provides -debug packages that have the separate debug information.
Right, but for a while (this may even be still true) it messed up gdb pretty badly. I suppose winedbg is unlikely to suffer the same problems though.
Would "make install && make install-debuginfo" put binaries with full debugging info both embedded and separate on the system then? Also, as Fedora ships -debuginfo rpms for everything presumably it doesn't actually require build system changes, does RPM have some method of doing this automatically? If so, why do we need explicit support for it?
thanks -mike
Mike Hearn wrote:
On Wed, 2004-11-24 at 12:33 -0600, Robert Shearman wrote:
I wasn't very clear about what I wanted with the makefiles. Basically, this will be an optional post-build step. The way I am leaning towards at the moment is that "make install" will install with full debugging information, but "make install && make install-debuginfo" will strip the debug info into separate files and install it. AFAIK, the feature has been stable for a year and a few distros are making full use of it. Fedora definitely provides -debug packages that have the separate debug information.
Right, but for a while (this may even be still true) it messed up gdb pretty badly. I suppose winedbg is unlikely to suffer the same problems though.
I'm not sure what you mean by "it messed up gdb pretty badly", but I've done some tests with notepad.exe.so, and winedbg seemed to get the symbols correct. The actual change to add this was fairly minor, so any bugs are likely to be in the toolchain rather than the debugger.
Would "make install && make install-debuginfo" put binaries with full debugging info both embedded and separate on the system then?
"make install && make install_debuginfo" will install the debugging info both embedded and separate. "make install_debuginfo && make install" will only install the separate. This is one of the quirks I would like some feedback on and no doubt some people will have opinions on the best way to solve this.
Also, as Fedora ships -debuginfo rpms for everything presumably it doesn't actually require build system changes, does RPM have some method of doing this automatically? If so, why do we need explicit support for it?
I have no idea. I'm not a package maintainer. Besides, not everyone uses .rpm packages to distribute packages, including us at CodeWeavers.
Rob
Robert Shearman rob@codeweavers.com writes:
"make install && make install_debuginfo" will install the debugging info both embedded and separate. "make install_debuginfo && make install" will only install the separate. This is one of the quirks I would like some feedback on and no doubt some people will have opinions on the best way to solve this.
That's not the right approach, make install should never modify the existing build tree. I think this would be more appropriate as part of a packaging script rather than as a makefile target.