Bug 41425

Summary: fpc при указании опции -Xg падает с ошибкой
Product: Sisyphus Reporter: Артём Курашов <saahriktu>
Component: fpcAssignee: Andrey Cherepanov <cas>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: cas, shilovps
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Артём Курашов 2021-11-24 12:45:58 MSK
В ALT p10 fpc при указании опции -Xg падает с ошибкой
---
Ошибка: Hе удается вызвать компоновщик, переход на внешнюю компоновку
Фатально: Пpи компиляции модyля произошло 1 ошибок, работа прервана
Фатально: Компиляция прервана
---
При детальном анализе выясняется, что он падает при выполнении objcopy.bfd, которого в ALT p10 нет. После создания симлинка fpc с опцией -Xg начинает падать при попытке выполнения отсутствующего strip.bfd.

Таким образом, команды
---
ln -s /usr/bin/objcopy /usr/bin/objcopy.bfd
ln -s /usr/bin/strip /usr/bin/strip.bfd
---
устраняют проблему.
Comment 1 Pavel Shilov 2023-01-17 09:54:34 MSK
Произвел проверку на платформе:
* workstation-10-x86-64

Версия пакета:
* fpc-3.2.2-alt4.x86_64

Шаги воспроизведения: 
1. Создать пример файла example.pas с содержимым:
program one;

uses crt;

BEGIN
	writeln('    *');
	writeln('   **');
	writeln('  ***');
	writeln(' ****');
END.
2. Запустить компиляцию: 
 $ fpc -Xg 1.pas

Фактический результат: 
Выводится ошибка
$ fpc -Xg 1.pas
Компилятор Free Pascal версии 3.2.2 [2022/06/20] для x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
Целевая ОС: Linux for x86-64
Компиляция 1.pas
1.pas(4,5) Заметка: Локальная пеpеменная "i" не использyется
Компоновка 1
1.pas(11,1) Ошибка: Hе удается вызвать компоновщик, переход на внешнюю компоновку
1.pas(11,1) Фатально: Пpи компиляции модyля произошло 1 ошибок, работа прервана
Фатально: Компиляция прервана
Error: /usr/bin/ppcx64 returned an error exitcode

Ожидаемый результат: Файл скомпилирован
$ fpc -Xg 1.pas
Компилятор Free Pascal версии 3.2.2 [2022/06/20] для x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
Целевая ОС: Linux for x86-64
Компиляция 1.pas
Компоновка 1
11 строк скомпилиpовано, 0.3 сек.

При создании символических ссылок:
# ln -s /usr/bin/objcopy /usr/bin/objcopy.bfd
# ln -s /usr/bin/strip /usr/bin/strip.bfd

Компиляция завершается без ошибок.