Автор Тема: работоспособность SASM в АльтОбразовании  (Прочитано 2357 раз)

Оффлайн Andrey_79

  • Участник
  • *
  • Сообщений: 240
Добрых суток!
Установил из Центра приложений SASM 3.14
Попробовал запустить простейший "демо" код, который не требует подключения никаких библиотек, однако не взлетело:
[22:03:17] Внимание! В ходе построения обнаружены ошибки:
/tmp/SASM/program.asm:7: error: instruction not supported in 32-bit mode
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: невозможно найти crt1.o: Нет такого файла или каталога
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: невозможно найти crti.o: Нет такого файла или каталога
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: невозможно найти /tmp/SASM/program.o: Нет такого файла или каталога
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: невозможно найти /tmp/SASM/macro.o: Нет такого файла или каталога
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: пропускается несовместимый /usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/libgcc.a при поиске -lgcc
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: невозможно найти -lgcc: Нет такого файла или каталога
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: пропускается несовместимый /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 при поиске libgcc_s.so.1
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: пропускается несовместимый /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 при поиске libgcc_s.so.1
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: невозможно найти libgcc_s.so.1: Нет такого файла или каталога
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: пропускается несовместимый /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 при поиске libgcc_s.so.1
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: пропускается несовместимый /usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/libgcc.a при поиске -lgcc
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: невозможно найти -lgcc: Нет такого файла или каталога
collect2: ошибка: выполнение ld завершилось с кодом возврата 

указанные пакеты (например libgcc) установлены. В чём может быть проблема? как лечить?

Upd: Как альтернатива, пробовали запускать программы через терминал, но там не хватает библиотек, а как подгружать библиотеки для ассамблера для компилятора, который работает в терминале тоже не понятно
« Последнее редактирование: 27.02.2025 22:46:08 от Andrey_79 »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 135
    • Домашняя страница
Система 64-битная?
Андрей Черепанов (cas@)

Оффлайн Andrey_79

  • Участник
  • *
  • Сообщений: 240
да. Система 64-разрядная...
Ночью уже думал об этом. Что надо ставить 32-х разрядную, если есть потребность в SASM для x86_32 разряда

Оффлайн alxl

  • Участник
  • *
  • Сообщений: 203
А чем 64 битный не устраивает?

Оффлайн Andrey_79

  • Участник
  • *
  • Сообщений: 240
А чем 64 битный не устраивает?


учебная программа в Университете требует от ребёнка работы с 32-х разрядной :-o 

Оффлайн alxl

  • Участник
  • *
  • Сообщений: 203
после установки пакетов cross-gcc-libs-i586-linux-gnu, cross-glibc-i586, i586-glibc-core.32bit, i586-glibc-devel.32bit, i586-glibc-nss.32bit, i586-glibc-pthread.32bit, i586-glibc-utils.32bit, i586-gcc.32bit ассемблер успешно скомпилировал 32 битную программу.
Возможно не все это нужно. Просто я устанавливал все это по очереди, пока не заработало. А некоторые пакеты еще по зависимостям подтянулись.

Оффлайн Andrey_79

  • Участник
  • *
  • Сообщений: 240
после установки пакетов cross-gcc-libs-i586-linux-gnu, cross-glibc-i586, i586-glibc-core.32bit, i586-glibc-devel.32bit, i586-glibc-nss.32bit, i586-glibc-pthread.32bit, i586-glibc-utils.32bit, i586-gcc.32bit ассемблер успешно скомпилировал 32 битную программу.
Возможно не все это нужно. Просто я устанавливал все это по очереди, пока не заработало. А некоторые пакеты еще по зависимостям подтянулись.


Спасибо, попробуем

Оффлайн Andrey_79

  • Участник
  • *
  • Сообщений: 240
ассемблер успешно скомпилировал 32 битную программу.

В настройках SASM, в подменю "построение" в любом случае надо выбирать x64, а не x86?

Оффлайн Andrey_79

  • Участник
  • *
  • Сообщений: 240
Пока что ничего не изменилось. Но, может, в настройках для построения надо выбирать x64, а не x86, как я это делаю сейчас

i586-gcc.32bit
все пакеты поставил, некоторые подтянули ещё зависимости, кроме этого.
По нему возвращается  '''Невозможно найти пакет i586-gcc.32bit'''
« Последнее редактирование: 28.02.2025 13:27:30 от Andrey_79 »

Оффлайн alxl

  • Участник
  • *
  • Сообщений: 203
надо выбирать x64, а не x86
нет, нужно оставить 32 бита.
Невозможно найти пакет i586-gcc.32bit
а списки пакетов в репозитории обновлены? Ну и еще у меня установлена система на сизифусе. Возможно в более ранних версиях этот пакет имеет другое имя. можно попробовать поиском в синаптике i586-gcc поискать

Оффлайн Andrey_79

  • Участник
  • *
  • Сообщений: 240
из synaptic подтянул потеряшку.

Однако, для SASM 3.14, установленного из Центра плирожений так ничего и не изменилось.

Установил SASM 3.12, который подтягивается командой apt-get install sasm. 
В этой версии 32-х битная сборка компилируется. Вчера начинал с того, что установил 3.12, но она тоже падала в ошибку. Затем посмотрел, что в Центре приложений лежит более поздняя и попробовал поставить оттуда.   

Надеюсь, что ребёнку хватит 3.12. Вечером проверим.

Оффлайн Andrey_79

  • Участник
  • *
  • Сообщений: 240
списки пакетов в репозитории обновлены
apt-get update выполняю регулярно

Оффлайн Andrey_79

  • Участник
  • *
  • Сообщений: 240
В итоге пока проблема решена частично.
В версии 3.12 удалось компилировать программки под 32, но в этой версии нет нужных модулей.
Вернулся на версию 3.14, но тут падает ещё больше ошибок. Написал Дмитрию (разработчику IDE SASM), он предложил: "проверьте, что установлены все необходимые зависимости: gcc-multilib, gdb, nasm"...
Из указанных зависимостей не хватает только gcc-multilib ...  С этим пакетом, я так понимаю, Альт Линукс, вообще, не дружит.
Есть лаконичное сообщение на форуме от уважаемого Андрея Черепанова: "Собрать в hasher для i586"...
Это единственный вариант замены gcc-multilib? 

Оффлайн Andrey_79

  • Участник
  • *
  • Сообщений: 240
Ура! Всё получилось.
Правда, пока на моём компьютере, где стоит Рабочая станция.   
Для этого переключил систему на Сизифа, затем подтянул и i586-gcc.32bit...
После этого всё заработало как надо.

Всем спасибо!

PS Думаю, в альт Образовании похожий фокус смогу проделать 

Upd: в Образовании пока этот фокус не прошёл.  Возможно конфликтуют пакеты, которые я подтягивал из p10, с теми, которые нужны из сизифуса.

Не взлетает:
[22:35:06] Внимание! В ходе построения обнаружены ошибки:
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: невозможно найти crt1.o: Нет такого файла или каталога
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: невозможно найти crti.o: Нет такого файла или каталога
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: невозможно найти /tmp/SASM/macro.o: Нет такого файла или каталога
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: пропускается несовместимый /usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/libgcc.a при поиске -lgcc
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: невозможно найти -lgcc: Нет такого файла или каталога
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: пропускается несовместимый /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 при поиске libgcc_s.so.1
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: пропускается несовместимый /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 при поиске libgcc_s.so.1
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: невозможно найти libgcc_s.so.1: Нет такого файла или каталога
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: пропускается несовместимый /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 при поиске libgcc_s.so.1
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: пропускается несовместимый /usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/libgcc.a при поиске -lgcc
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: невозможно найти -lgcc: Нет такого файла или каталога
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
 

« Последнее редактирование: 02.03.2025 22:39:12 от Andrey_79 »

Оффлайн alxl

  • Участник
  • *
  • Сообщений: 203
На первый взгляд это из-за несоответствия версий   32 битной и 64 битной библиотеки. Хотя я в этом не уверен. Можно попробовать обновить систему до 11 версии. Она сейчас мало чем от сизифуса отличается, а значит и программы будут соответствующие.