LINUX.ORG.RU

История изменений

Исправление PPP328, (текущая версия) :

А, всё, my bad, забыли старые .S файлы почистить. Всё решено.

Наш шаблон экспорта (вдруг кому пригодится):

/*! \brief Генерирует текстовое представление ASM-файла
 * \param[in] filename Имя исходного файла
 * \param[in] varname Имя переменной
 * \return Статическая строка */
static const char * _assembler_generate(const char * filename,
                                        const char * varname) {
    static char s_text[VLH_ASM_FILESIZE];
    sprintf(
        s_text,
        "#if defined(__MINGW32__) || defined(__MINGW64__)\n"
        "#    define VAL_TYPE(S)\n"
        "#    define VAL_NAME(S) _ ## S\n"
        "#else\n"
        "#    define VAL_TYPE(S) .type S, @object\n"
        "#    define VAL_NAME(S) S\n"
        "#endif\n"
        "\n"
        "/* Для ARM нужно заменить @ на # */\n"
        "\n"
        ".section .rodata\n"
        "      .global VAL_NAME(%s)\n"
        "      VAL_TYPE(%s)\n"
        "      .align  4\n"
        "VAL_NAME(%s):\n"
        "     .incbin \"%s\"\n"
        "    .byte 0\n"
        "VAL_NAME(%s_end):\n"
        "     .global VAL_NAME(%s_size)\n"
        "     VAL_TYPE(%s_size)\n"
        "     .align  4\n"
        "VAL_NAME(%s_size):\n"
        "     .int    VAL_NAME(%s_end) - VAL_NAME(%s)\n",
        varname,
        varname,
        varname,
        filename,
        varname,
        varname,
        varname,
        varname,
        varname,
        varname
    );
    return s_text;
}

Исходная версия PPP328, :

А, всё, my bad, забыли старые .S файлы почистить. Всё решено.