Este é realmente um comando muito curto diff. Ele diz para remover a linha //#define DEBUG
e substituí-la por #define DEBUG
.
Neste formato de comparação, as linhas que começam com um único -
são removidas e aquelas com +
são adicionadas. As outras linhas são para contexto e o @@
informa o deslocamento para o arquivo e o número de linhas referenciadas. (E as linhas triplas +++
---
informam qual arquivo foi modificado.)
As duas razões comuns para um patch não se aplicar são:
- As linhas afetadas reais foram alteradas ou
- O contexto em torno dessas linhas foi alterado (possivelmente, mudou demais , porque o patch geralmente usa um algoritmo "difuso".
Nesse caso, provavelmente é mais fácil examinar a seção do código manualmente (no arquivo linux-user/flatload.c
, como você pode ver na primeira linha), e ver se há um #define DEBUG
em qualquer lugar com comentários, e, em seguida, remova os caracteres de comentário //
.
Olhando para o código eu mesmo, vejo que o problema é provavelmente a razão # 3 - o patch é mutilado porque foi renderizado de uma maneira que não deveria ser. Veja essa linha que diz apenas #include
? Na fonte original , diz #include <target_flat.h>
. O software de blog em que você encontrou o patch provavelmente decidiu que <target_flat.h>
é uma tag HTML suspeita e silenciosamente a excluiu, e o autor não percebeu.