#318149 TESTED #1 [test-only] sisyphus rpm.git=4.13.0.1-alt37
#324286 EPERM #2 sisyphus rpm.git=4.13.0.1-alt38 apt.git=0.5.15lorg2-alt85
А зачем нужно вот это? +#if defined(__loongarch64) + strcpy(un.machine, "loongarch64"); +#endif
(Ответ для Gleb F-Malinovskiy на комментарий #3) > А зачем нужно вот это? > > +#if defined(__loongarch64) > + strcpy(un.machine, "loongarch64"); > +#endif Чтобы работало.
(Ответ для Gleb F-Malinovskiy на комментарий #3) > А зачем нужно вот это? > > +#if defined(__loongarch64) > + strcpy(un.machine, "loongarch64"); > +#endif Функция defaultMachine (в файле lib/rpmrc.c) чуть менее чем полностью состоит из кода вида: # if defined(__linux__) && defined(__riscv__) if (rstreq(un.machine, "riscv")) { if (sizeof(long) == 4) strcpy(un.machine, "riscv32"); else if (sizeof(long) == 8) strcpy(un.machine, "riscv64"); else if (sizeof(long) == 16) strcpy(un.machine, "riscv128"); } # endif /* riscv */
(Ответ для Alexey Sheplyakov на комментарий #5) > (Ответ для Gleb F-Malinovskiy на комментарий #3) > > А зачем нужно вот это? > > > > +#if defined(__loongarch64) > > + strcpy(un.machine, "loongarch64"); > > +#endif > > Функция defaultMachine (в файле lib/rpmrc.c) чуть менее чем полностью > состоит из кода вида: > > # if defined(__linux__) && defined(__riscv__) > if (rstreq(un.machine, "riscv")) { > if (sizeof(long) == 4) > strcpy(un.machine, "riscv32"); > else if (sizeof(long) == 8) > strcpy(un.machine, "riscv64"); > else if (sizeof(long) == 16) > strcpy(un.machine, "riscv128"); > } > # endif /* riscv */ А причина существования функции defaultMachine в том, что название архитектуры с точки зрения ядра (Linux) и rpm не всегда совпадают. Ядру, например, безразлично, какой там ABI в userspace, а для rpm это архиважно.
(In reply to Alexey Sheplyakov from comment #4) > Чтобы работало. А без этого разве не работает? Вы в целом ответили на вопросы, ответ на которые я знаю, а на мой вопрос не очень ответили. Мне кажется очевидным, что если на loongarch64 будут какие-то изменения такого типа, то и этот код придётся менять, а сейчас этот код заменяет loongarch64 на loongarch64. Ну пусть будет, вреда никакого.