La receta de Bitbake no aplica el parche como se esperaba

Tengo un tarball src.tar.gz cuyo contenido está descomprimido en src / y un parche de estas fuentes generado con este comando:

$ diff -Nurp src/ src_mod/ > my.patch

El encabezado del parche comienza con estas tres líneas:

 diff -Nurp src/path/to/file src_PATCHED/path/to/file
 --- src/path/to/file  2012-10-22 05:52:59.000000000 +0200
 +++ src_PATCHED/path/to/file  2016-03-14 12:27:52.892802283 +0100

Mi receta de bitbake hace referencia a archivos de ruta y tarball usando este SRC_URI:

SRC_URI = " \
    file://my.patch \
    file://src.tar.gz \
"

Las tareas do_fetch y do_unpack funcionan según lo esperado, dejando my.patch y src / inside $ {S}, es decir:

${S}/my.path
${S}/src.tar.gz

Pero la tarea do_patch falla con este mensaje de ERROR:

ERROR: Command Error: exit status: 1  Output:
Applying patch my.patch
can't find file to patch at input line 4
Perhaps you used the wrong -p or --strip option?

He probado diferentes alternativas, por ejemplo, estableciendo el atributo "patchdir" como se muestra a continuación:

SRC_URI = " \
    file://my.patch;patchdir=${S}/src \
    file://src.tar.gz \
"

Esperaba que "patchdir" fuera lo mismo que usar "patch -d dir". Pero no funciona como se esperaba, siempre devuelve el mismo mensaje de ERROR.

¿Que estoy haciendo mal?

Respuestas a la pregunta(2)

Su respuesta a la pregunta