Nano Hash - криптовалюты, майнинг, программирование

как исправить скрипт настройки для префикса цепочки инструментов хоста x86_64-mu-linux-gnu?

при переносе проекта vpp в buildroot система упаковки обнаруживает новое/необычное/нестандартное имя хоста:

checking host system type... x86_64-mu-linux-gnu

в то время как в buildroot, когда выбран x86_64, набор инструментов по умолчанию

x86_64-linux

создается и символически ссылается на частную цепочку инструментов buildroot с именем one

x86_64-buildroot-linux-uclibc

что является совершенно нормальной практикой для сборок кросс-компиляции.

x86_64-mu-linux-gnu также не является префиксом для набора инструментов компилятора, вместо этого configure ищет

x86_64-mu-linux-gcc, x86_64-mu-linux-gcc.br_real, x86_64-mu-linux-ar, etc

вопрос в том:

как лучше всего исправить это «волшебное» наименование (особенно, чтобы избавиться от центрального суффикса «-mu») в обычное, используемое внутри цепочки инструментов buildroot?

был бы очень признателен, если бы было предложено что-то альтернативное созданию набора символических ссылок. (желательно фиксировать внутри скриптовой системы configure)


  • для быстрого обновления файл, ответственный за генерацию необычного суффикса, оказался: github.com/vpp-dev/vpp/blob/master/build-root/Makefile, где полное необычное название платформы жестко закодировано в строке 179. 17.05.2017

Ответы:


1

вот полный исходный блок из Makefile с вопрос о:

# OS to configure for.  configure --host will be set to $(ARCH)-$(OS)            
# Allow per-platform overrides                                                   

OS = $(strip $($(PLATFORM)_os))                                                  
ifeq ($(OS),)                                                                    
  OS = mu-linux                                                                  
endif 

решение проблемы и причина обнаружения неправильного имени суффикса:

  1. vpp ожидает, что вы экспортируете переменную PLATFORM, определяющую архитектуру (например: i686, arm64, ppc64, x86_64 и т. д.)

пример:

PLATFORM=$(ARCH)
  1. при компиляции кросс-платформенного проекта vpp ожидается, что будет настроена специальная переменная, идентифицирующая ОС, которую вы собираетесь скомпилировать для целевой платформы, и эта идентификация сложна

    • имя переменной будет синтезом имени арки, за которым следует суффикс "_os". значение переменной должно быть именем ОС.

    • что касается Linux, работающего на x86_64, вам необходимо экспортировать переменную с именем "x86_64_os" с назначенным значением "linux".

пример:

x86_64_os=linux

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

$(ARCH)_os=linux
  1. результирующий пример команды сборки будет выглядеть примерно так:

    PLATFORM=$(ARCH) $(ARCH)_os=linux make bootstrap
    
  2. в случае, если вы не сможете определить ОС своего набора инструментов, среда компиляции проекта определит mu-linux как основную ОС и не сможет обнаружить соответствующий набор инструментов.

17.05.2017
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..