Автор Тема: пересборка пакета glibc в режиме кросскомпиляции  (Прочитано 1621 раз)

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

Оффлайн Евгения

  • Пользователь
  • *
  • Topic Author
  • Сообщений: 12
Помогите, пожалуйста, хоть чуть-чуть разобраться. Я совсем новичок. Мне нужно пересобрать gllibc под mips32 r1 .  Сейчас есть репозиторий с пакетом glibc под  mips32 r2 . При его использовании возникает проблема с плавучкой - синус 10 не считается. Таким образом, мне нужно пересобрать gllibc под mips32 r1 и с правильной поддержкой fp,  по умолчанию используется ABI o32, умеющий поддерживать fp32 и fp64, необходимо исключить fp64 (чтобы был строго o32 fp32).  для этого нужно указать два ключа, видимо по типу -march=mips32 -mfp32  но где и как их указывать я не понимаю....
« Последнее редактирование: 13 Январь 2019, 18:59:09 от Евгения »
 

Оффлайн Olej

  • Старожил
  • ****
  • Сообщений: 521
но где и как их указывать я не понимаю....
Это опции (ключи) компилятора gcc.
Если вы используете готовый make, то вам нужно делать исправления в Makefile.
Но ... если вы новичок в этом деле, то сборка glibc будет совсем непростым занятием, "на грани фола"  >:(
 

Оффлайн Евгения

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

Оффлайн Olej

  • Старожил
  • ****
  • Сообщений: 521
а как передать опции компилятору? я думала, что нужно что-то поменять в файлах каталога debian пакета glibc... где можно найти информацию об этом, читаю wiki debian, пока ничегор не нашла конкретного
Вообще то, опции самому компилятору gcc передаются элементарно, типа:
$ gcc ...  mips32 -mfp32 ...
Это не значит, что такие опции нужно вам прописывать - это я вам наугад написал что-то из ваших опций, чтобы только показать синтаксис.

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

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

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

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

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

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

Оффлайн Евгения

  • Пользователь
  • *
  • Topic Author
  • Сообщений: 12
Ну вот в Makefile нет в открытом виде параметра gcc, там фигурирует переменная СС, но изначально она пустая....и передаётся вроде бы пустой
 

Оффлайн Olej

  • Старожил
  • ****
  • Сообщений: 521
Ну вот в Makefile нет в открытом виде параметра gcc, там фигурирует переменная СС, но изначально она пустая....и передаётся вроде бы пустой
Вот CC - это и есть gcc.
И никакая она не пустая - у make есть целый ряд (и их немало) предопределённых переменных, CC - одна их них.

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

Теги:
 

Пересборка ядра

Автор wwnet

Ответов: 5
Просмотров: 758
Последний ответ 15 Июль 2019, 12:15:43
от ecc83