Форум программистов, компьютерный форум, киберфорум
Go (Golang)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 10.05.2024
Сообщений: 6

Адаптация кросскомпиляция для mipsle целевой системы

14.08.2024, 14:16. Показов 748. Ответов 0

Студворк — интернет-сервис помощи студентам
Приветствую!
Пытаюсь провести адаптацию исходного кода Golang для того что бы программа скомпилированная на ПК без проблем работала и на довольно старом устройстве с линуксом и mipsle архитектурой.
Лезу конечно в дебри в которых сам мало разбираюсь. Но тем не менее определенные положительные результаты имеются.
Компиляция тестовых простых программ производится на данный момент на хакинтоше macOS Sonoma 14.2.1
Bash
1
GOARCH=mipsle GOOS=linux go build
Используется go1.23rc1 из исходников с добавлением отладочных сообщений для понимания что где не так.

Изначально любой простейший бинарник не целевой выпадал в панику.
Методом проб и ошибок было определено что проблемой скорее всего является несовместимость касательно POLL / EPOLL. Есть так же видимо вопросы по работе со временем и прочее еще не известное.
Выборочно часть строк лога strace который выводил на дальнейшие правки:
Bash
1
2
epoll_ctl(-1, EPOLL_CTL_ADD, 3, 0x8c90a8) = -1 EBADF (Bad file descriptor)
socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = -1 EINVAL (Invalid argument)
Тем не менее завести работу бинарников с элементарными функциями удалось без вылетов в панику.
А именно в netpoll_epoll.go закомментированы netpollinit(), netpollopen, netpollclose.
При таких раскладах начинает работать бинарник на целевой системе.
Однако не работает самое интересное - сетевые соединения по tcp протоколу (i/o timeout). При этом соединение по udp происходит успешно.

Вопрос к знатокам: В какую сторону копать? Насколько "отключка" EPOLL влияет на способность нормально работать по tcp протоколу? Причем целевая mipsel таки имеет поддержку и epoll и естественно работу с протоколом tcp. Другое дело что возможно древнюю реализацию не совместимую слёту с текущим Go. Либо продолжать копать именно реализацию tcp что бы адаптировать ее под старую целевую? udp помоему тоже не с чистого листа заработала. Есть разница в значениях syscall (например syscall.SOCK_DGRAM from sock_posix.go = 1, syscall.SOCK_STREAM from sock_posix.go = 2 хотя общепринято на сегодня наоборот). Нет поддержки ipv6 на целевой но это по идее принудительно выключил в исходниках где нашел.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.08.2024, 14:16
Ответы с готовыми решениями:

Изменение кода, в зависимости от целевой системы
решил попробовать перенести на Android самописную RSS-читалку поскольку писалась она изначально для отслеживания новостей на музыкальном...

Какие системы используете, чтобы нагнать целевой трафик на сайт?
Добрый день. Какие системы используете, чтобы нагнать целевой трафик на сайт? Понятно, что есть Google Adwords и Yandex Direct....

Кросскомпиляция для Raspberry Pi B3+
Народ! Я в отчаянии! Неделю с другом пытаемся настроить. Поставил на виртуальную машину Ubuntu , на нее Qt, пытаюсь связать с малинкой...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.08.2024, 14:16
Помогаю со студенческими работами здесь

Кросскомпиляция из-под Linux для Linux32/64 и Win32/64
Сижу под Linux, хочу скомпилировать своё приложение под следущие OS: Linuxx32,Linuxx64, Windowsx32, Windowsx64. Для этого пытаюсь...

Симплекс метод для целевой фукнции
Помогите с решением задачи симплекс методом. а точнее с таблицами. Дана целевая функция F=2*X1-2*X2+3*X3 ограничения: ...

Email рассылка для целевой аудитории
Существует ли такой вид e-mail рассылки, чтобы письма отправлялись не всем подряд,а только заинтересованным людям, например исходя из того...

Макрос для Word :целевой документ и минидокументы
Всем привет! Изначальная задача - собрать в папке целевой документ и минидокументы. -В целевом есть несколько пустых разделов. ...

сборка Qt на windows для целевой машине на arm linux
возможно ли собрать Qt на windows (хост-машина) для кросс-компиляции под linux arm (целевая машина) если да, то какие компиляторы и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru