On 4/29/13 3:10 PM, Richard Purdie wrote:
On Sat, 2013-04-27 at 17:15 -0400, Chris Larson wrote:

On Thu, Apr 25, 2013 at 7:12 AM, Phil Blundell <[email protected]> wrote:

         I'm not quite sure what the right way to fix (2) is.  I
         suppose in an
         ideal world the -dbg packages would be separated in the same
         way the
         parent binary packages are, but that doesn't look entirely
         straightforward to arrange.

I had implemented something along these lines back in oe classic, when
I was at MontaVista.  See
http://git.openembedded.org/openembedded/tree/classes/package_dbg.bbclass for 
that implementation. I haven't touched it or tried using it in some time, 
however.

I have to admit I've been wondering if we shouldn't overhaul the -dbg
part of the system a bit. There are a few things I've been wondering
about:

a) Should we ditch FILES_${PN}-dbg and have it auto constructed from
any .debug directories? This would be a rather nice automation/cleanup.
I can't see a pressing reason not to do this.

b) Consider splitting it to a -dbg package per package where there are
debug files as per above. There are pros and cons to this and I'm torn,
see c).

c) Consider splitting the debug source into a separate package. If we
did do b), the question is where should the sources go?

I think that the proposal for automatically generating a -dbg per regular package is a good one. Then the sources can go into -dbg-source or something similar.. (source-dbg so it still ends in dbg).

This will give us the most flexibility to limit the amount of code that HAS to be installed onto a target to do basic crash dumping, if not full debug on the target.

In the bigger picture we have various dependency chain issues as the
-dbg and -dev dependency changes are horrible. The question has always
been whether X-dbg or X-dev should be usable to pull in sensible
dependencies.

Thinking about the scenarios you might use these in:

a) A binary from package X segfaults. You want to get good gdb data for
why. You therefore install X-dbg. X links against Y. You therefore want
the symbols/code for Y too so you can trace into the problem which may
be in Y.

This is the one that is sketchy to me. I think the rrecommend is a good idea here. If you recommend everything that the main package (that you based on) needs that you should be able to do this. By splitting the size of the -dbg into smaller units then the -dbg recommends should be limited as well. I say recommend vs depend simply because the there are cases where I only want the symbols for one binary, I don't care about it's dependencies.

The question though is should the source also be a recommend or suggest?

b) You want to compile against X, you install X-dev. You expect anything
X needs to link with (e.g. through any .pc file) to also be present.

c) You want to rebuild X and hence install X-dev to ensure the build
dependencies are present.

I think this very much reasonable on the -dev front. If I install a -dev package, I expect the system to be able to compile software without additional manual steps.

d) There was once an idea that you could do something like install
core-image-minimal-dev to get the equivalent of core-image-minimal with
dev-pkgs. I think we've found better ways to do this kind of thing now?

In a/b/c, the usability fail is if you try to gdb/compile, find a
dependency missing, install it and repeat this cycle several times over.

Ya, the issue though is there are more use cases for debug then for the -dev case. So I'm comfortable with slight differences in behavior between the two.

--Mark

Given d) is dead, thankfully, does that let us rip some code out and
improve the dependencies?

Cheers,

Richard






_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core



_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to