Сборка общего 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"