Estou tentando hackear o kernel do Linux e adicionar/modificar alguns arquivos de cabeçalho no formato include/linux
. No entanto, quando eu gero o arquivo de patch usando diff
:
diff -uprN -X linux/Documentation/dontdiff \
linux-5.15 linux-srctree > patch.p1
Encontro alterações em include/linux
não incluídas em patch.p1
. Em seguida, examino dontdiff
o arquivo e encontro as seguintes linhas (em torno da linha 158), o que significa que ele exclui include/linux
do arquivo de patch.
*lex.*.c
linux
logo_*.c
Então, por que dontdiff
inclui linux
? Como salvar alterações em arquivos de patch para cabeçalhos include/linux
? Muito obrigado.
Os patches do kernel geralmente são produzidos por
git
— as alterações são feitas na árvore de trabalho egit diff
usadas lá, ou confirmadas e extraídas do(s) commit(s) comgit format-patch
. Provavelmentedontdiff
não é muito usado; as exclusões são entregues por.gitignore
, o que é mais expressivo do que listas de padrões paradiff -X
.No seu cenário, a opção mais simples é provavelmente remover a
linux
linha dedontdiff
. A longo prazo, se possível, tente trabalhar em um clone do repositório git relevante e produza seus patches usandogit
.Eu suspeito que o motivo
linux
incluídodontdiff
é que o processo de construção pode produzir um binário chamadolinux
(geralmente évmlinux
, mas oum
“arch” vincula isso alinux
). A.gitignore
entrada foi adicionadaarch/um
e modificada posteriormente para ser aplicada apenas à raiz da árvore junto com várias outras entradas .