Автор Тема: 32 битные приложения  (Прочитано 567 раз)

Оффлайн magicwolf

  • Начинающий
  • *
  • Сообщений: 22
32 битные приложения
« : 02.03.2023 14:34:59 »
Если возможность компилировать 32-битные приложения через опции компилятора gcc/g++ -m32 или -mx32 на Alt 10 платформы arm,intel,e2k?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: 32 битные приложения
« Ответ #1 : 02.03.2023 15:04:37 »
man gcc говорит, что умеет

Оффлайн Olej

  • Давно тут
  • **
  • Сообщений: 201
Re: 32 битные приложения
« Ответ #2 : 02.03.2023 15:32:54 »
Если возможность компилировать 32-битные приложения через опции компилятора gcc/g++ -m32 или -mx32 на Alt 10 платформы arm,intel,e2k?
Да, это всё возможно.
Ещё проще это (максимальную кросплатформенность) обеспечить для кода на языке Go (GoLang) ... с тем же компилятором GCC, например, как вариант.

Оффлайн magicwolf

  • Начинающий
  • *
  • Сообщений: 22
Re: 32 битные приложения
« Ответ #3 : 02.03.2023 15:52:17 »
Пробую на байкале-м пишет:
:-1: ошибка: error: unrecognized command-line option ‘-m32’
Вставляю в .pro:
QMAKE_CFLAGS += -m32
QMAKE_CXXFLAGS += -m32

Оффлайн Olej

  • Давно тут
  • **
  • Сообщений: 201
Re: 32 битные приложения
« Ответ #4 : 02.03.2023 15:57:16 »
Вставляю в .pro:
QMAKE_CFLAGS += -m32
QMAKE_CXXFLAGS += -m32
Ну так это же не GCC ... Qt ?

Оффлайн magicwolf

  • Начинающий
  • *
  • Сообщений: 22
Re: 32 битные приложения
« Ответ #5 : 02.03.2023 16:18:10 »
Да Qt. Но потом в makefile появляется:
CFLAGS        = -pipe -m32 -g -Wall -Wextra -fPIC $(DEFINES)
CXXFLAGS      = -pipe -m32 -g -Wall -Wextra -fPIC $(DEFINES)

Оффлайн Olej

  • Давно тут
  • **
  • Сообщений: 201
Re: 32 битные приложения
« Ответ #6 : 02.03.2023 16:27:44 »
CFLAGS        = -pipe -m32 -g -Wall -Wextra -fPIC $(DEFINES)
CXXFLAGS      = -pipe -m32 -g -Wall -Wextra -fPIC $(DEFINES)
1. Возможно эти переменные (и не только эти) используются и кроме GCC, на других фазах конфигурирования... Ищите (в сети) подсказки относительно Qt.
2. У вас должны быть для сборки в Linux библиотеки (может и ещё чтто-то из компонент) для 32-бит версии. По дефаулту они в Linux не устанавливаются, нужно устанавливать дополнительно.
 

Оффлайн Olej

  • Давно тут
  • **
  • Сообщений: 201
Re: 32 битные приложения
« Ответ #7 : 02.03.2023 16:30:18 »
arm,intel,e2k
А если вы хотите собирать под ARM, то всё становится гораздо сложнее - вам нужно вручную доустановить все tools-компоненты (GCC и др.) для сборки под платформы ARM.
 

Оффлайн magicwolf

  • Начинающий
  • *
  • Сообщений: 22
Re: 32 битные приложения
« Ответ #8 : 02.03.2023 16:31:39 »
Спасибо понятно. Но где бы найти названия пакетов (если они вообще есть), я бы до установил...

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: 32 битные приложения
« Ответ #9 : 02.03.2023 16:46:43 »
Спасибо понятно. Но где бы найти названия пакетов (если они вообще есть), я бы до установил...

gcc-aarch64-linux-gnu
gcc-arm-linux-gnueabihf
gcc-riscv64-linux-gnu
gcc-loongarch64-linux-gnu

А для e2k надо спрашивать компилятор у МЦСТ при покупке компьютера с эльбрусом.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: 32 битные приложения
« Ответ #10 : 02.03.2023 16:58:34 »
m32 опция работает только в x86 архитектурх

Цитата: man gcc
  x86 Options -mtune=cpu-type  -march=cpu-type -mtune-ctrl=feature-list  -mdump-tune-features  -mno-default -mfpmath=unit 
          ...
-mcall-ms2sysv-xlogues -mindirect-branch=choice  -mfunction-return=choice -mindirect-branch-register
...
  ARM Options -mapcs-frame  -mno-apcs-frame -mabi=name
....
 -masm-syntax-unified -mrestrict-it -mverbose-cost-dump -mpure-code -mcmse -mfdpic
« Последнее редактирование: 02.03.2023 17:01:01 от ruslandh »

Оффлайн Olej

  • Давно тут
  • **
  • Сообщений: 201
Re: 32 битные приложения
« Ответ #11 : 02.03.2023 17:22:39 »
gcc-aarch64-linux-gnu
gcc-arm-linux-gnueabihf
gcc-riscv64-linux-gnu
gcc-loongarch64-linux-gnu
Там у ARM процессоров - великое разнообразие архитектур и моделей. И нужно выбрать и установить tools только для своей модели.
А у GCC - великое множество опций для каждой из архитектур, везде свои...
Набирайте:
$ man gcc
...
И читать вам не перечитать  ;-) - там несколько десятков страниц.
А лучше взять книжное руководство по GCC.
« Последнее редактирование: 02.03.2023 17:25:13 от Olej »

Оффлайн Olej

  • Давно тут
  • **
  • Сообщений: 201
Re: 32 битные приложения
« Ответ #12 : 02.03.2023 17:27:19 »
Спасибо понятно.
Могу сразу предупредить (я эти вещи делал, и не один год): это всё возможно, но будет очень не просто ... здесь "на халяву не прохиливает"  :-\

Оффлайн magicwolf

  • Начинающий
  • *
  • Сообщений: 22
Re: 32 битные приложения
« Ответ #13 : 02.03.2023 18:04:03 »
gcc-aarch64-linux-gnu
gcc-arm-linux-gnueabihf
gcc-riscv64-linux-gnu
gcc-loongarch64-linux-gnu
Вроде это 64 битные пакеты?! А мне надо 32-битные.

А для e2k надо спрашивать компилятор у МЦСТ при покупке компьютера с эльбрусом.
Есть alt linux для e2k, скорее всего gcc на него есть.

m32 опция работает только в x86 архитектурх
Спасибо! Да действительно работает, но не линкуется:
:-1: ошибка: skipping incompatible /usr/lib64/gcc/x86_64-alt-linux/10/libstdc++.so when searching for -lstdc++
Видимо или конфликт библиотек или какой-то либы не хватает.
Т.е. на сборке для байкала-м ни как нельзя собрать 32-битный код? Вроде же есть 32-битные процессора arm.

Там у ARM процессоров - великое разнообразие архитектур и моделей. И нужно выбрать и установить tools только для своей модели.
Да, согласен, но если скомпилированых пакетов нет репозитории, тогда надо как-то видимо искать исходники?

И читать вам не перечитать   - там несколько десятков страниц.
Там надо смотреть опции для процессоров arm, и к сожалению, нужных ключей нет.

А лучше взять книжное руководство по GCC.
Спасибо посмотрим, но это общая инфо, не факт, что в данном конкретном случае как-то поможет.

"на халяву не прохиливает" 
Что делать, не мытьем, так катаньем.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: 32 битные приложения
« Ответ #14 : 02.03.2023 18:26:12 »
Вроде это 64 битные пакеты?! А мне надо 32-битные.

32-битный хост? На i586 дистрибутив что ли?