You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/tools/kernel2minor/patches/110-fix_endian_conv.patch

34 lines
1.6 KiB
Diff

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

--- a/k2m_biops.h
+++ b/k2m_biops.h
@@ -10,7 +10,9 @@
*/
//нужна ли конвертация. устанавливавется автоматически в 1 для НЕ big_endian систем
-static int endian_need_conv = __BYTE_ORDER__ != __ORDER_BIG_ENDIAN__;
+static int big_endian;
+
+#define endian_need_conv (!!big_endian ^ (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__))
/* конвертор из одного байтового порядка в обратный
x обязательно должна быть переменной но не выражением !
--- a/kernel2minor.c
+++ b/kernel2minor.c
@@ -76,7 +76,7 @@ void print_help(void){
char *usage[] =
{ "-k", "Path to kernel file", kernel_file,
"-r", "Path to result file", res_file,
- "-e", "Enable endian convert", endian_need_conv ? "Yes" : "No",
+ "-e", "Enable endian convert to big-endian", big_endian ? "Yes" : "No",
"-c", "Use ECC", use_ecc ? "Yes" : "No",
"-s", "FLASH Unit(Chunk) size", chunk_size_str,
"-i", "Add image info block", add_image_info_block ? info_block_size_str : "No",
@@ -595,7 +595,7 @@ int main(int argc, char *argv[]){
case 'k': snprintf(kernel_file, sizeof(kernel_file) - 1, "%s", optarg); break;
case 'r': snprintf(res_file, sizeof(res_file) - 1, "%s", optarg); break;
case 'c': use_ecc = 1; break;
- case 'e': endian_need_conv = 1; break;
+ case 'e': big_endian = 1; break;
case 's': chunk_size = atoi(optarg); break;
case 'i': add_image_info_block = 1; align_size = atoi(optarg); break;
case 'p': strncpy(platform_name, optarg, sizeof(platform_name)); break;