Discussion:
linux-yocto: doesn't maintain patch order from SRC_URI?
Darren Hart
2011-11-29 21:39:09 UTC
Permalink
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.

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
Bruce Ashfield
2011-11-29 23:14:05 UTC
Permalink
Post by Darren Hart
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.

Bruce
Post by Darren Hart
# 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 \
"
| 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
| 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)
$ 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
2011-11-30 00:41:54 UTC
Permalink
Post by Bruce Ashfield
Post by Darren Hart
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 :-)

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
Post by Bruce Ashfield
Bruce
Post by Darren Hart
# 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 \
"
| 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
| 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)
$ 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
Bruce Ashfield
2011-11-30 00:56:22 UTC
Permalink
Post by Darren Hart
Post by Bruce Ashfield
Post by Darren Hart
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 :-)
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.
Agreed. There's nothing wrong with this model, and you are just doing
something that I hadn't tried until now. The fixes were simple, so I
definitely wouldn't leave this broken. As I said in my other email, I'm
just now looking at how to integrate this nicely and not duplicate SRC_URI
parsing code.

Cheers,

Bruce
Post by Darren Hart
Thanks Bruce!
--
Darren
Post by Bruce Ashfield
Bruce
Post by Darren Hart
# 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 \
"
| 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
| 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)
$ 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
2011-11-30 01:15:05 UTC
Permalink
Post by Darren Hart
Post by Bruce Ashfield
Post by Darren Hart
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
Post by Darren Hart
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
Post by Bruce Ashfield
Bruce
Post by Darren Hart
# 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 \
"
| 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
| 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)
$ 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
Darren Hart
2011-11-30 01:21:59 UTC
Permalink
Post by Darren Hart
Post by Darren Hart
Post by Bruce Ashfield
Post by Darren Hart
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 :-)
$ 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
SRC_URI += "file://efi-stub.scc"
# _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?
Ah, I need to include the patches explicitly too. That makes sense from
a bitbake perspective. OK, I'm rolling again, nice.
--
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel
Bruce Ashfield
2011-11-30 19:11:02 UTC
Permalink
Post by Darren Hart
Post by Darren Hart
Post by Darren Hart
Post by Bruce Ashfield
Post by Darren Hart
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 :-)
$ 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
SRC_URI += "file://efi-stub.scc"
# _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?
Ah, I need to include the patches explicitly too. That makes sense from
a bitbake perspective. OK, I'm rolling again, nice.
Glad to hear you got to this, after I sent that email and headed for some sleep,
I realized that I forgot to point out that detail.

Cheers

Bruce
Post by Darren Hart
--
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel
_______________________________________________
yocto mailing list
https://lists.yoctoproject.org/listinfo/yocto
--
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end"
Darren Hart
2011-11-30 00:46:06 UTC
Permalink
Post by Bruce Ashfield
Post by Darren Hart
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.
Oh, how is this shell order?

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

This is the order I would expect and seems to match shell order...

--
Darren
Post by Bruce Ashfield
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.
Bruce
Post by Darren Hart
# 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 \
"
| 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
| 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)
$ 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
Bruce Ashfield
2011-11-30 00:55:09 UTC
Permalink
Post by Darren Hart
Post by Bruce Ashfield
Post by Darren Hart
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.
Oh, how is this shell order?
s/shell/modification time order/

There's a find that locates the patches. The order returned by find
is what is returned used to generate an auto-scc file that is then
used to merge with the rest of the infrastructure.

I did a couple of minor changes here, sorting the patch location,
and support for directories of patches. But there's only so far
that I'm going to go for now.

What I'm trying to implement is a mode that the core patch class
will simply dump me a list of patches, that way I don't duplicate any
code, but can feed that into the scripts. I'm not there yet, but am
still working on it, since we can work around this for now, I'll try
and get this right before pushing out any changes.

Cheers,

Bruce
Post by Darren Hart
$ ls *patch
0001-x86-Add-missing-bzImage-fields-to-struct-setup_heade.patch
0002-x86-efi-Make-efi_call_phys_prelog-CONFIG_RELOCATABLE.patch
0003-x86-Don-t-use-magic-strings-for-EFI-loader-signature.patch
0004-efi.h-Add-struct-definition-for-boot-time-services.patch
0005-efi.h-Add-efi_image_loaded_t.patch
0006-efi.h-Add-allocation-types-for-boottime-allocate_pag.patch
0007-efi.h-Add-graphics-protocol-guids.patch
0008-efi.h-Add-boottime-locate_handle-search-types.patch
0009-efi-Add-EFI-file-I-O-data-types.patch
0010-x86-efi-EFI-boot-stub-support.patch
0011-x86-efi-Break-up-large-initrd-reads.patch
This is the order I would expect and seems to match shell order...
--
Darren
Post by Bruce Ashfield
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.
Bruce
Post by Darren Hart
# 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 \
"
| 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
| 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)
$ 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
Loading...