On Mon, Jan 22, 2018 at 12:11 PM, Alexander Kapshuk
<alexander.kaps...@gmail.com> wrote:
> On Mon, Jan 22, 2018 at 5:51 PM, Corbin Bird <corbinb...@charter.net> wrote:
>> Anyone else getting this error? ( kernel 4.9.77 )
>>
>>>   CC      fs/ext4/mballoc.o
>>>   CC      fs/ext4/block_validity.o
>>>   CC      fs/ext4/move_extent.o
>>>   CC      fs/ext4/mmp.o
>>>   CC      fs/ext4/indirect.o
>>> fs/ext4/indirect.o: warning: objtool: ext4_clear_blocks()+0x242: can't
>>> find jump dest instruction at .text+0x56c
>>>   CC      fs/ext4/extents_status.o
>>> /bin/sh: line 1: 31735 Segmentation fault      ./tools/objtool/objtool
>>> check "fs/ext4/extents_status.o"
>>> make[2]: *** [scripts/Makefile.build:294: fs/ext4/extents_status.o]
>>> Error 139
>>> make[1]: *** [scripts/Makefile.build:544: fs/ext4] Error 2
>>> make: *** [Makefile:995: fs] Error 2
>>
>> Corbin
>>
>>
>
> Based on the output you supplied, objtool isn't happy with
> fs/ext4/indirect.o and fs/ext4/extents_status.o.
> Did you do 'make clean' prior to building the kernel?
> If you did, it might be worth doing a 'make mrproper' before
> rebuilding the kernel.
> Don't forget to back up your .config before running mrproper.
>

While this is going to cause a bit more building, I personally tend to
redirect kernel build output.  I add O=/var/tmp/linux to all my make
commands, which leaves /usr/src untouched and builds faster besides
(tmpfs).

The main downsides to this are:
1.  Make can't re-use objects from previous builds, so rebuilds will
go slower.  Though, IMO this is worthwhile if re-using those objects
causes issues (which I assume is due to imperfect makefiles).
2.  When building packages that install kernel modules the prepared
sources won't exist.  This requires going back and re-preparing them
(make O=/var/tmp/linux modules_prepare).  For packages like zfs-kmod
that use Module.symvers this is even more painful as you can only get
that by rebuilding the whole thing.

-- 
Rich

Reply via email to