пересборка пакета glibc в режиме кросскомпиляции

Автор Евгения, 13 января 2019, 18:54:53

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Евгения

Помогите, пожалуйста, хоть чуть-чуть разобраться. Я совсем новичок. Мне нужно пересобрать gllibc под mips32 r1 .  Сейчас есть репозиторий с пакетом glibc под  mips32 r2 . При его использовании возникает проблема с плавучкой - синус 10 не считается. Таким образом, мне нужно пересобрать gllibc под mips32 r1 и с правильной поддержкой fp,  по умолчанию используется ABI o32, умеющий поддерживать fp32 и fp64, необходимо исключить fp64 (чтобы был строго o32 fp32).  для этого нужно указать два ключа, видимо по типу -march=mips32 -mfp32  но где и как их указывать я не понимаю....

Olej

Цитата: Евгения от 13 января 2019, 18:54:53но где и как их указывать я не понимаю....
Это опции (ключи) компилятора gcc.
Если вы используете готовый make, то вам нужно делать исправления в Makefile.
Но ... если вы новичок в этом деле, то сборка glibc будет совсем непростым занятием, "на грани фола"  >:(

Евгения

Ну всё-таки мне нужно с этим разобраться, а как передать опции компилятору? я думала, что нужно что-то поменять в файлах каталога debian пакета glibc... где можно найти информацию об этом, читаю wiki debian, пока ничегор не нашла конкретного

Olej

Цитата: Евгения от 15 января 2019, 17:26:20а как передать опции компилятору? я думала, что нужно что-то поменять в файлах каталога debian пакета glibc... где можно найти информацию об этом, читаю wiki debian, пока ничегор не нашла конкретного
Вообще то, опции самому компилятору gcc передаются элементарно, типа:

$ gcc ...  mips32 -mfp32 ...

Это не значит, что такие опции нужно вам прописывать - это я вам наугад написал что-то из ваших опций, чтобы только показать синтаксис.

Сам набор требуемых вам опций вы найдёте, перечитав описание всех опций gcc:

$ man gcc

Там много!!! даже очень много ... Но это нужно читать, выписывать и выбирать то, что себе нужно.

Проверить компиляцию (на соответствие и непротиворечивость опций) вы можете запустив одиночный файл компиляции из вашего дерева файлов.

Но сложность ваша в том, что сборка сложных комплексных проектов происходит командой make, а скрипт сборки для неё прописывается в файле Makefile (смотрите в вашем каталоге).
Там опции gcc будут задаваться переменными среды компиляции ... что-то типа:

XXX=yyy
...
gcc ... -march=$(XXX)

Разобраться с этим трудно, но, в принципе, можно.

P.S. Иногда в ./confugure или Makefile универсальных проектов предполагается параметр-опция, указывающая сразу на платформу сборки. Внимательно переройте документацию на ваш проект.

Евгения

Ну вот в Makefile нет в открытом виде параметра gcc, там фигурирует переменная СС, но изначально она пустая....и передаётся вроде бы пустой

Olej

Цитата: Евгения от 15 января 2019, 18:47:54Ну вот в Makefile нет в открытом виде параметра gcc, там фигурирует переменная СС, но изначально она пустая....и передаётся вроде бы пустой
Вот CC - это и есть gcc.
И никакая она не пустая - у make есть целый ряд (и их немало) предопределённых переменных, CC - одна их них.

P.S. Можете кой-чего почитать об этом здесь, я когда-то писал для студентов: Разработка программных проектов в Linux.