[yocto] linux-yocto: doesn't maintain patch order from SRC_URI?

Darren Hart darren.hart at intel.com
Tue Nov 29 17:15:05 PST 2011


On 11/29/2011 04:41 PM, Darren Hart wrote:
> 
> 
> On 11/29/2011 03:14 PM, Bruce Ashfield wrote:
>> On 11-11-29 04:39 PM, Darren Hart wrote:
>>> I'm experimenting with Matt Fleming's EFI_STUB patches. The first 10 patches were working fine, but when I try to add the 11th, the do_patch fails. I found that it isn't trying to apply the patches in the order listed in the recipe - no in any other recognizable pattern for that matter.
>>>
>>
>> It's shell order. You really should just create a .scc file, put IT
>> on the SRC_URI and list the patches. You'll have no problems after
>> that.
>>
>> I do have a fix for this, but can't send it right now due to travel.
>>
>> You are using the compatibility mode for more than I originally intended
>> it for. So just dropping a .scc file into place will fix things
>> up nicely.
> 
> OK, I like that better than the monolith patch I plugged the leak with :-)

So I'm trying this:

$ cat linux-yocto-dvhart/efi-stub.scc
patch 0001-x86-Add-missing-bzImage-fields-to-struct-setup_heade.patch
patch 0002-x86-efi-Make-efi_call_phys_prelog-CONFIG_RELOCATABLE.patch
patch 0003-x86-Don-t-use-magic-strings-for-EFI-loader-signature.patch
patch 0004-efi.h-Add-struct-definition-for-boot-time-services.patch
patch 0005-efi.h-Add-efi_image_loaded_t.patch
patch 0006-efi.h-Add-allocation-types-for-boottime-allocate_pag.patch
patch 0007-efi.h-Add-graphics-protocol-guids.patch
patch 0008-efi.h-Add-boottime-locate_handle-search-types.patch
patch 0009-efi-Add-EFI-file-I-O-data-types.patch
patch 0010-x86-efi-EFI-boot-stub-support.patch
patch 0011-x86-efi-Break-up-large-initrd-reads.patch

And in the recipe:
SRC_URI += "file://efi-stub.scc"

In the meta-series I see:

# _mark efi_stub_947530aea4d2a819b340fe2b49d765de start
# _mark efi_stub_947530aea4d2a819b340fe2b49d765de end

But the patches do not get applied.

The Yocto Kernel Architecture and Use Manual does not appear to cover
this case. Do I need to do something more?

Thanks,

Darren



> 
> I understand I am using the compatibility mode more than the original
> intent - and in part I'm doing this on purpose. The "recipe-space"
> iterative development model is going to be the most familiar to OE
> developers and is the fastest way to prototype changes. We need to
> ensure it works well. Once I'm done here, I fully intend to push it into
> a proper in-tree scc file - but for now, it makes the most sense in
> recipe-space while we tweak it and the patches are under heavy development.
> 
> Thanks Bruce!
> 
> --
> Darren
> 
>>
>> Bruce
>>
>>> The recipe contains:
>>>
>>> # Add the efi-stub
>>> SRC_URI += "file://0001-x86-Add-missing-bzImage-fields-to-struct-setup_heade.patch \
>>>              file://0002-x86-efi-Make-efi_call_phys_prelog-CONFIG_RELOCATABLE.patch \
>>>              file://0003-x86-Don-t-use-magic-strings-for-EFI-loader-signature.patch \
>>>              file://0004-efi.h-Add-struct-definition-for-boot-time-services.patch \
>>>              file://0005-efi.h-Add-efi_image_loaded_t.patch \
>>>              file://0006-efi.h-Add-allocation-types-for-boottime-allocate_pag.patch \
>>>              file://0007-efi.h-Add-graphics-protocol-guids.patch \
>>>              file://0008-efi.h-Add-boottime-locate_handle-search-types.patch \
>>>              file://0009-efi-Add-EFI-file-I-O-data-types.patch \
>>>              file://0010-x86-efi-EFI-boot-stub-support.patch \
>>> 	    file://0011-x86-efi-Break-up-large-initrd-reads.patch \
>>>              "
>>>
>>> do_patch fails with:
>>> Log data follows:
>>> | Deleted branch meta-temp (was 620917d).
>>> | warning: could not find (or was already included): ktypes/yocto.scc
>>> | ./0-standard-yocto-61b5e146f9d113375883df8c51449722.sco: line 14: yocto_68b329da9893e34099c7d8ad5cb9c940: command not found
>>> | [INFO] validating against known patches  (standard-yocto-meta)
>>> error: arch/x86/boot/compressed/eboot.c: does not exist in index09 %)
>>> | To force apply this patch, use 'guilt push -f'
>>> | [ERROR] unable to complete push
>>> | pending patches are:
>>> | Patches directory doesn't exist, try guilt-init
>>> | ERROR. could not update git tree
>>> | ERROR: Function 'do_patch' failed (see /build/poky/ie/tmp/work/ie_phase1-poky-linux/linux-yocto-ie-3.0.4+git1+d51b0e743599a41a42e119f29f8dfa89854b3b5e_1+6b2c7d65b844e686eae7d5cccb9b638887afe28e-r4/temp/log.do_patch.2768 for further information)
>>>
>>> and meta/patches/standard/series contains:
>>>
>>> $ cat standard/series
>>> links/scratch/obj/0002-x86-efi-Make-efi_call_phys_prelog-CONFIG_RELOCATABLE.patch
>>> links/scratch/obj/0003-x86-Don-t-use-magic-strings-for-EFI-loader-signature.patch
>>> links/scratch/obj/0004-efi.h-Add-struct-definition-for-boot-time-services.patch
>>> links/scratch/obj/0005-efi.h-Add-efi_image_loaded_t.patch
>>> links/scratch/obj/0011-x86-efi-Break-up-large-initrd-reads.patch
>>>
>>> This needs to come after 10.
>>>
>>> links/scratch/obj/0007-efi.h-Add-graphics-protocol-guids.patch
>>> links/scratch/obj/0001-x86-Add-missing-bzImage-fields-to-struct-setup_heade.patch
>>> links/scratch/obj/0009-efi-Add-EFI-file-I-O-data-types.patch
>>> links/scratch/obj/0008-efi.h-Add-boottime-locate_handle-search-types.patch
>>> links/scratch/obj/0006-efi.h-Add-allocation-types-for-boottime-allocate_pag.patch
>>> links/scratch/obj/0010-x86-efi-EFI-boot-stub-support.patch
>>>
>>>
>>>
>>
> 


-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel



More information about the yocto mailing list