Я - стажер, которому предложили перенести тестовое приложение из Solaris в Red Hat. Приложение написано на Аде. Это прекрасно работает на стороне Unix. Я скомпилировал его на стороне Linux, но теперь он дает мне ошибку в сегменте. Я запустил отладчик, чтобы увидеть, где была ошибка, и получил это:
Warning: In non-Ada task, selecting an Ada task.
=> runtime tasking structures have not yet been initialized.
<non-Ada task> with thread id 0b7fe46c0
process received signal "Segmentation fault" [11]
task #1 stopped in _dl_allocate_tls
at 0870b71b: mov edx, [edi] ;edx := [edi]
Эта ошибка сегмента происходит до того, как будут сделаны какие-либо вызовы или что-либо инициализировано. Мне сказали, что «задания» в ada запускаются до остальной части программы, и проблема может быть в задаче, которая выполняется.
Но вот кикер. Эта программа просто генерирует некоторый код для использования другой программой. ДРУГАЯ программа, скомпилированная под linux, выдает тот же тип ошибки seg с тем же типом сообщения об ошибке. Это наводит меня на мысль, что может быть какая-то небольшая хитрость, которую я могу использовать, чтобы исправить все это, но у меня просто недостаточно знаний о Unix, Linux и Ada, чтобы понять это самостоятельно.