Главная
>
Смешные картинки
>
гик
гик
Прикольные гаджеты. Научный, инженерный и айтишный юмор Подписчиков: 4988 Сообщений: 17147 Рейтинг постов: 195,851.7пидоры помогите программирование geek компилятор
Помогите написать багрепорт гнушникам
Вообщем сижу уже 9й день мучаюсь с компилятором m68k-linux-gnu-g++.Я обнаржуил, что при компиляции по дефолту используется long в качестве всех числовых операций (например аргумент указан как short, а в ассемблере туда пишется long, т.е. все дела округляются по 4 байта, вместо нужных 2х) отсюда много косяков с оптимизацией.
Поэтому я нашел флаг -mshort, который говорит компилятору опираться на short. В таком режиме даже переменные int становятся short, что меня более чем устраивает.
Проблема в том, что компилятор испытывает трудности в таком режиме, если включить оптимизацию. А если быть точнее вылетает с внутренней ошибкой internal compiler error: in immed_wide_int_const_1, которую хрен знает как исправить.
Я всегда придерживаюсь правила, что любую проблему в своих проектах должен решать сам, но тут я реально не могу ничего поделать.
Я даже попытался (потратил 3 дня) настроить и использовать компилятор от AmigaOS, еле сумев заставить всё линковаться в нужном мне формате (ромы для Sega Mega Drive). Но этот вариант быстро отпал, потому что после всех танцев с бубном (я тупо свой линкер написал, потому что старый нормально ничего линковать не умел) оказалось, что этот компилятор совершенно не умеет оптимизировать код и по всем ассемблерным файлам понатыканы переходы в конструкторы и деструкторы, внутри которых просто выход из функции (rts). И это еще не самое страшное.
Я ассемблер m68k знаю, поэтому я вижу, где код нормально оптимизирован, а где кринж.
Вообщем принял решение написать баг-репорт на компилятор m68k-linux-gnu-g++ и тут тоже возникла проблема: Я понятия не имею как это делается. Местная инструкция написана на боярском, перевод на русский свет не проливает (либо я такое быдло, потому и не понимаю).
По-сему запрашиваю помощь у пидоров пограммистов: Помогите написать багрепорт на компилятор. Ткните мне хотя бы краткую инструкцию для чайников.
Прикладываю скрин проблемы и краткую выжимку спамящей ошибки.
(и да, я пытался исправить код и там что-то связано с массивами + аргументами в функциях/методах)
/usr/lib/ccache/m68k-linux-gnu-g++-12 -DENABLE_GAME -I/home/segaman/Programming/SEGA/SuperCyborg/src -I/home/segaman/Programming/SEGA/SuperCyborg/src/onionpower/src -I/home/segaman/Programming/SEGA/SuperCyborg/src/onionpower/include -I/home/segaman/Programming/SEGA/SuperCyborg/src/SuperCyborg -mcpu=68000 -march=68000 -mshort -Wall -fno-builtin -fno-use-cxa-atexit -fno-rtti -Wl,-flto -fuse-linker-plugin -fno-web -fno-gcse -fomit-frame-pointer -fno-asynchronous-unwind-tables -fno-exceptions -O3 -g -std=gnu++17 -MD -MT src/CMakeFiles/SuperCyborg.dir/onionpower/src/exception-handler/stackinspector.cpp.o -MF src/CMakeFiles/SuperCyborg.dir/onionpower/src/exception-handler/stackinspector.cpp.o.d -o src/CMakeFiles/SuperCyborg.dir/onionpower/src/exception-handler/stackinspector.cpp.o -c /home/segaman/Programming/SEGA/SuperCyborg/src/onionpower/src/exception-handler/stackinspector.cpp
during GIMPLE pass: ivopts
/home/segaman/Programming/SEGA/SuperCyborg/src/onionpower/src/exception-handler/stackinspector.cpp: In function ‘void System::Exception::SI::_printHelp()’:
/home/segaman/Programming/SEGA/SuperCyborg/src/onionpower/src/exception-handler/stackinspector.cpp:145:6: internal compiler error: in immed_wide_int_const_1, at emit-rtl.cc:659
145 | void SI::_printHelp()
| ^~
0x7ff372f2f249 __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7ff372f2f304 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
geek компьютер старый компьютер Игры старые игры
Приветствую любителей старых игр и компов
Собрал я таки 478 по серьезнее. продемонстрирую на что он способен.
Вот ссыль на предыдущий пост:
https://joyreactor.cc/post/5727957
Характеристики следующие:Материнская плата Epox EP-4PDA3I 3
Процессор intel pentium 4 (3.00 ГГЦ)
Видеокарта geforce 7300 gt (512 МБ)
Оперативной памяти 2 ГБ
Звук creative sb live 5.1
Хард на 120 ГБ (IDE)
3dmark 06 (для теста целерон поменял на пень. в остальном без изменений)
Время игр)Графон максимум, разрешение 1280х800mafia the city of lost heaven (2002)
doom 3 (2004)sniper elite (2005)
grand theft auto: san andreas (2004)
half-life 2 (2004)
Теперь высокие настройки, разрешение 1280х800
сталкер тень чернобыля (2007)
сталкер зов припяти (2009)
portal (2007)1280х800 средние
call of duty modern warfare (2007)
flatout 2 (2006)
half-life 2 episode one (2006)
half-life 2 episode two (2007)
call of duty 2 (2005)
Теперь разрешение 1024х768
need for speed most wanted (2005) высокие настройки
need for speed prostreet (2007) средняя графика
the elder scrolls skyrim legendary edition (2013) низкие настройки
dirt 2 (2009) низкие настройки
800х600 низкие
medal of honor airborne (2007)
mafia 2 (2010) 1280х800 минимальные настройки (ради рубрики, на 1024х768 выдаёт 15 кадров)
Похоже надо искать проц мощнее, теперь упор в него.
В планах допинать 286й на 20 МГц. найти бы на него оперативу. билл 640 кб не хватает.
Спасибо за внимание.
Отличный комментарий!