Rating@Mail.ru

Форум по операционной системе GNU/Linux и свободному программному обеспечению


Текущее время: 18 дек 2017, 12:07

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 58 ]  На страницу Пред.  1, 2, 3, 4, 5, 6
Автор Сообщение
Непрочитанное сообщениеДобавлено: 14 июн 2017, 11:56 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 11 май 2017, 18:01
Сообщения: 99
Откуда: Щёлково, Московская обл.
Результат последней компиляции gcc-4.7.1 подсунутым в систему файлом futex.h к сожалению отрицательный. :-( На 303 минуте компилятор выдал ошибку:
Код:
../.././libgo/runtime/proc.c:117:4: ошибка: #error unknown case for SETCONTEXT_CLOBBERS_TLS
../.././libgo/runtime/proc.c: В функции <<runtime_gogo>>:]
../.././libgo/runtime/proc.c: В функции <<runtime_schedinit>>:n]
cc1: all warning being treated as errors
У кого какие будут предположения, предложения по дальнейшим действиям ?
Вот ссылка на текст файла proc.c
https://code.woboq.org/gcc/libgo/runtime/proc.c.html


Последний раз редактировалось perseus 14 июн 2017, 12:13, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
 
Непрочитанное сообщениеДобавлено: 14 июн 2017, 12:07 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10265
Откуда: Харьков
perseus писал(а):
Результат последней компиляции gcc-4.7.1 подсунутым в систему файлом futex.h к сожалению отрицательный. :-( На 303 минуте компилятор выдал ошибку:
Код:
../.././libgo/runtime/proc.c:117:4: ошибка: #error unknown case for SETCONTEXT_CLOBBERS_TLS
../.././libgo/runtime/proc.c: В функции <<runtime_gogo>>:]
../.././libgo/runtime/proc.c: В функции <<runtime_schedinit>>:n]
У кого какие будут предположения, предложения по дальнейшим действиям ?

Вы же должны сами себе понимать что:
- футексы - это такой новый фундаментальный примитив ядра Linux, каковыми являются классические мютекст или семафор...
- и в вашем ядре 2.4.х их нет ... "на дух" :lol:
- всё, что вы и можете собрать по максимуму - это очень ограниченная по функциональности программа, которая сможет (если повезёт! ;-) ) собирать Go-программы из очень ограниченного подмножества - без горутин, параллелизма
- в принципе, наблюдения (мои) за исполняющимися процессами Go-приложений, показывают, что самая элементарная программа Hello World на Go запускается в 3 или 4 потока (один из которых - динамический сборщик мусора)...
- но это классические потоки POSIX/Linu pthread_t
- так что горутины с футексами там вряд ли (!) требуются.
Это уже как повезёт! :lol:


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Непрочитанное сообщениеДобавлено: 14 июн 2017, 12:12 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 11 май 2017, 18:01
Сообщения: 99
Откуда: Щёлково, Московская обл.
Это понятно, как заставить собраться эту пусть и ограниченную версию gcc ?
Чисто спортивный интерес ;-) , пока собрать его не получается с поддержкой go :-?


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Непрочитанное сообщениеДобавлено: 14 июн 2017, 12:16 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10265
Откуда: Харьков
perseus писал(а):
Результат последней компиляции gcc-4.7.1 подсунутым в систему файлом futex.h к сожалению отрицательный. :-( На 303 минуте компилятор выдал ошибку:
Код:
../.././libgo/runtime/proc.c:117:4: ошибка: #error unknown case for SETCONTEXT_CLOBBERS_TLS
../.././libgo/runtime/proc.c: В функции <<runtime_gogo>>:]
../.././libgo/runtime/proc.c: В функции <<runtime_schedinit>>:n]
У кого какие будут предположения, предложения по дальнейшим действиям ?
Вот ссылка на текст файла proc.c
https://code.woboq.org/gcc/libgo/runtime/proc.c.html

У вас есть возможность попробовать только 2 варианта:

1. Показанное вами сообщение (ошибки) - это сообщение препроцессора (#define ... #error ... и т.д.) - для предотвращения работы в неправильном окружении, а оно у вас действительно неправильное. ;-)
Вы можете, на свой страх и риск, залезть в исходный код, файл ../.././libgo/runtime/proc.c и в строке 117 (или +/- несколько строк) забить комментарием (/* ... */) эти несколько строк препроцессора с проверкой.
Но то что получится - никто и ничего вам не может гарантировать!

2. Идти по пути статической сборки требуемого приложения Go на другом Linux с ядром 3.х/4.х (кросс-компиляция), с тем, чтобы добиться работоспособноти собранного приложения при переносе его в систему с ядром 2.4.
Тоже рискованный путь, ... но возможный и более вероятный.
P.S. По крайней мере, мы теперь знаем с вами, что в компилируемой Go-программе не могут появляться футесы, т.е. в коде прописываться горутины!


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Непрочитанное сообщениеДобавлено: 21 июн 2017, 12:23 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 11 май 2017, 18:01
Сообщения: 99
Откуда: Щёлково, Московская обл.
Цитата:
1. Показанное вами сообщение (ошибки) - это сообщение препроцессора (#define ... #error ... и т.д.) - для предотвращения работы в неправильном окружении, а оно у вас действительно неправильное. ;-)
Вы можете, на свой страх и риск, залезть в исходный код, файл ../.././libgo/runtime/proc.c и в строке 117 (или +/- несколько строк) забить комментарием (/* ... */) эти несколько строк препроцессора с проверкой.
Но то что получится - никто и ничего вам не может гарантировать!
Попробовал 1-й вариант. Попробовал в файле proc.c закоментировать выдачу предупреждения об ошибке. Результат отрицательный, поскольку далее в этом же файле задействуются две функции fixcontext и initcontext которые и определяются в директивах препроцессора в зависимости от окружения. Обойти их не получается. Выдаётся сообщение о неявном определении этих двух функций. :-?


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Непрочитанное сообщениеДобавлено: 21 июн 2017, 12:30 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10265
Откуда: Харьков
perseus писал(а):
Цитата:
1. Показанное вами сообщение (ошибки) - это сообщение препроцессора (#define ... #error ... и т.д.) - для предотвращения работы в неправильном окружении, а оно у вас действительно неправильное. ;-)
Вы можете, на свой страх и риск, залезть в исходный код, файл ../.././libgo/runtime/proc.c и в строке 117 (или +/- несколько строк) забить комментарием (/* ... */) эти несколько строк препроцессора с проверкой.
Но то что получится - никто и ничего вам не может гарантировать!
Попробовал 1-й вариант. Попробовал в файле proc.c закоментировать выдачу предупреждения об ошибке. Результат отрицательный, поскольку далее в этом же файле задействуются две функции fixcontext и initcontext которые и определяются в директивах препроцессора в зависимости от окружения. Обойти их не получается. Выдаётся сообщение о неявном определении этих двух функций. :-?

Постарайтесь, пока ... 1-2 дня, воздержаться от добавления новых сообщений - форум будет перенесен на новый хостинг, и сообщения после архивирования не будут перенесены.
См.: Achtung! Achtung!

P.S. Это ваше сообщение я попробую перенести вручную копированием в новый экземпляр.
... только как это сделать под чужим именем? .... даже с админ. правами.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Непрочитанное сообщениеДобавлено: 30 июн 2017, 18:37 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 11 май 2017, 18:01
Сообщения: 99
Откуда: Щёлково, Московская обл.
Цитата:
2. Идти по пути статической сборки требуемого приложения Go на другом Linux с ядром 3.х/4.х (кросс-компиляция), с тем, чтобы добиться работоспособноти собранного приложения при переносе его в систему с ядром 2.4.
Тоже рискованный путь, ... но возможный и более вероятный.
что и где можно почитать про кросс-компиляцию? Хочу попробовать этот вариант сборки gcc с поддержкой go для ядра linux-2.4


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Непрочитанное сообщениеДобавлено: 01 июл 2017, 14:13 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10265
Откуда: Харьков
perseus писал(а):
Цитата:
2. Идти по пути статической сборки требуемого приложения Go на другом Linux с ядром 3.х/4.х (кросс-компиляция), с тем, чтобы добиться работоспособноти собранного приложения при переносе его в систему с ядром 2.4.
Тоже рискованный путь, ... но возможный и более вероятный.
что и где можно почитать про кросс-компиляцию? Хочу попробовать этот вариант сборки gcc с поддержкой go для ядра linux-2.4

Вообще-то, кросс-компиляция - это сборка, чаще всего, под другое оборудование ... например под 64-бит на 32-бит системе, или наоборот ... или под другой класс процессора: ARM, MIPS - и зачастую это так и делается.
Но сборка под другой окружение (под ядро 2.4)? - это, наверное, тоже возможно ... собирают же под конкретные библиотеки, отличающиеся от стандартного окружения. Только "возможно" - это вовсе не гарантирует "успешно" ... если у вас там не хватает каких-то критических компонент - например, определённых системных вызовов Linux (новых).

1. Можно попробовать.
И я вам даже помогу и подскажу, в меру умений ... поучаствую.
Только обязательно это обсуждать в новой теме здесь в "Программирование", которую вам предлагаю создать ... что-то с названием типа "Кросс-компиляция".
(это только с тем, чтобы через какое-то время ... месяц, год ... можно было концы с концами свести и найти "где же мы такое подобное уже обсуждали" ;-) )

2. Почитать по кросс-компиляции можно и здесь на форуме ... когда-то попутно обсуждали:
Linux для embedded применений
(если что-то ещё попадётся на глаза, было ещё - добавлю сюда).
А вообще, по кросс-компиляции черпать информацию нужно именно в публикациях по embedded, встраиваемым системам - это их хлеб :lol: ... и на сегодня подавляющее число таких проектов используют Linux для встраивания, другие операционные платформы практически сдохли.
P.S. Добавляю ;-) , как и обещал:
Linux на платформах MIPS (кое-что полезное можно почерпнуть, много ссылок, например)
Там же указан перевод на русский целой книги Разработка и внедрение системы на встраиваемом Linux.
Там есть даже такой замечательный раздел целый как:
Цитата:
Глава 8, Сборка и отладка


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 58 ]  На страницу Пред.  1, 2, 3, 4, 5, 6

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
[ Time : 0.483s | 17 Queries | GZIP : On ]