Сборка общего libc.so для System V ABI под GNU ABI

Мне нужно собрать общий libc.so для системы System V ABI из системы GNU ABI из источников. Я пытаюсь собрать glibc2.16, если это важно.

Мой компилятор gcc был собран с опцией по умолчанию --hash-style, установленной на "sysv". Каждое приложение, созданное с его помощью, имеет System V ABI. Каждый, но не libc.

Попытался добавить C*FLAGS -Wl,- hash-style=sysv, но это не сработало. Настройка была выполнена, но создание остановлено с ошибками:

glibc cannot be compiled without optimization

Я обнаружил, что это из-за порядка опций gcc. Итак, я решил поставить необходимые варианты самостоятельно. Найдено --hash-style = как в Makeconfig, так и в configure.in. Поменял это на sysv. Все библиотеки (ld.so и другие) были в конечном итоге собраны в соответствии с System V. Все, кроме libc.so.

Знаете, как собрать именно libc.so? Спасибо!

1 ответ

Решение

После разных комбинаций вариантов конфигурации я получил ответ. Правильные команды конфигурации:

Для систем x32:

../configure --prefix=... --enable-kernel=2.4.0 --with-cpu=i686 --build=i686-unknown-linux-gnu CC="gcc -i686" CXX="g++ -i686"

Для систем x64:

../configure --prefix=... --enable-kernel=2.4.0 --with-cpu=i686 --build=i686-unknown-linux-gnu CC="gcc -m32" CXX="g++ -m32"

И вам нужно экспортировать CFLAGS со следующим значением:

export CFLAGS="-mtune=native -O2 -pipe"
Другие вопросы по тегам