On Mon, Feb 10, 2014 at 4:03 PM, Allan McRae <[email protected]> wrote: > On 10/02/14 20:56, Steven Noonan wrote: >> On Sun, Feb 9, 2014 at 8:32 PM, Allan McRae <[email protected]> wrote: >>> On 10/02/14 09:26, Steven Noonan wrote: >>>> I noticed when I built a kernel package with options 'strip' and 'debug' >>>> that >>>> the debug package was missing the debug information for the kernel modules. >>>> This patch adds kernel modules to the targets for 'strip' and is compatible >>>> with the split-out debug information packages. >>>> >>>> v2: Correct logic error -- did a 'continue' after the 2nd-level case >>>> statement >>>> instead of in the default case. >>>> v3: Oops, forgot to terminate outer case. Ran this version through the test >>>> suite and all tests passed. >>>> >>> >>> For future reference, put comments like these .... >>> >>>> Signed-off-by: Steven Noonan <[email protected]> >>>> --- >>> >>> ... under this line. That way they are ignored when committing the patch. >> >> I'll bear that in mind, thanks for pointing it out. >> >>> >>>> scripts/makepkg.sh.in | 7 +++++++ >>>> 1 file changed, 7 insertions(+) >>>> >>>> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in >>>> index 940e947..027fcc3 100644 >>>> --- a/scripts/makepkg.sh.in >>>> +++ b/scripts/makepkg.sh.in >>>> @@ -1659,6 +1659,13 @@ tidy_install() { >>>> strip_flags="$STRIP_SHARED";; >>>> *application/x-archive*) # Libraries (.a) >>>> strip_flags="$STRIP_STATIC";; >>>> + *application/x-object*) >>>> + case "$binary" in >>>> + *.ko) # >>>> Kernel module >>>> + >>>> strip_flags="$STRIP_SHARED";; >>>> + *) >>>> + continue;; >>>> + esac;; >>> >>> This looks fine to me. >>> >>> I notice the Arch Linux kernel package uses options=('!strip'). I am >>> lead to believe that stripping vmlinux lead to issues with building >>> modules. Also the Arch PKGBUILD compresses the modules before it gets >>> to stripping the files. >> >> I maintain the Arch Linux EC2 kernel, and I'm doing adventurous things >> with the packaging to make debugging a bit easier. I am looking at >> enabling CONFIG_DEBUG_INFO and adding -debug packages. That will >> indeed require removing the compression stage for the modules. In my >> experience this has had no negative impact. In fact, tools like 'perf' >> look for separate debug symbols. >> >> As for module builds, you're correct: >> >> MODPOST 1 modules >> FATAL: vmlinux has no symtab? >> /usr/src/linux-3.13.2-1-ec2/scripts/Makefile.modpost:90: recipe for >> target '__modpost' failed >> make[1]: *** [__modpost] Error 1 >> >> The build still fails even if the -debug packages are installed alongside. >> >> >> I'd argue however that this doesn't impact this patch directly -- >> splitting debug symbols from the kernel modules is OK, but stripping >> vmlinux is not. This could be worked around by: >> >> 1. Moving vmlinux into linux-headers. vmlinux is kind of an oddball >> (only item in /usr/src/linux for the main package) -- maybe I'm >> missing context as to why it's in the 'linux' package? it seems like >> you'd need the -headers package for a module build anyway, so it can't >> be there just for module builds. >> 2. Change linux-headers to use options=('!strip'). This also avoids >> the strange side effect of having a -debug for linux *and* >> linux-headers. >> >> I just tested the above and successfully built a module. So I guess >> the question is if vmlinux really needs to be in the primary package >> (and I'd be curious to know why, if so). >> > > That makes sense to me. Can you create a feature request on the Arch > bug tracker to implement this. > > Anyway - now that I am more clear on the situation, I think your patch > makes a lot of sense and will pull it. >
Thanks, Allan! I've submitted the feature request: https://bugs.archlinux.org/task/38869
