Bug 16741

Summary: winegcc: Could not find g++
Product: WINE@Etersoft Reporter: Vitaly Lipatov <lav>
Component: СборкаAssignee: Vitaly Lipatov <lav>
Status: RESOLVED FIXED QA Contact:
Severity: minor    
Priority: P4 CC: dtimoshkov
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:

Description Vitaly Lipatov 2023-10-05 22:40:11 MSK
В ряде случаев выполнение winegcc вызывает поиск g++
$ winegcc /tmp/1.c
winegcc: Could not find g++

При том что он присутствует:
$ g++
x86_64-alt-linux-g++: fatal error: no input files
compilation terminated.

Вот что выдаёт strace:

newfstatat(AT_FDCWD, "/usr/src/bin/x86_64-alt-linux-gcc", 0x7ffd9a394900, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/bin/x86_64-alt-linux-gcc", 0x7ffd9a394900, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/bin/x86_64-alt-linux-gcc", {st_mode=S_IFREG|0755, st_size=1035224, ...}, 0) = 0
newfstatat(AT_FDCWD, "/usr/src/bin/x86_64-alt-linux-gcc", 0x7ffd9a394900, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/bin/x86_64-alt-linux-gcc", 0x7ffd9a394900, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/bin/x86_64-alt-linux-gcc", {st_mode=S_IFREG|0755, st_size=1035224, ...}, 0) = 0
newfstatat(AT_FDCWD, "/usr/src/bin/clang++", 0x7ffd9a394900, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/bin/clang++", 0x7ffd9a394900, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/bin/clang++", 0x7ffd9a394900, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/X11R6/bin/clang++", 0x7ffd9a394900, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/games/clang++", 0x7ffd9a394900, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/src/bin/clang", 0x7ffd9a394900, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/bin/clang", 0x7ffd9a394900, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/bin/clang", 0x7ffd9a394900, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/X11R6/bin/clang", 0x7ffd9a394900, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/games/clang", 0x7ffd9a394900, 0) = -1 ENOENT (No such file or directory)
write(2, "winegcc: ", 9winegcc: )                = 9
write(2, "Could not find g++\n", 19Could not find g++
Comment 1 Vitaly Lipatov 2023-10-05 22:54:53 MSK
Добавление clang исправляет ситуацию.
Дмитрий:
«winegcc ищет то, с чем его самого собирали»

Тогда сделаю соответствующие зависимости в пакет devel-tools:

-# due winegcc requires
-Requires: gcc gcc-c++ glibc-devel libstdc++-devel
+# winegcc requires
+Requires: glibc-devel libstdc++-devel
+
+%if_with clang
+Requires: %llvm_br
+%else
+Requires: gcc gcc-c++
+%endif
+
+%if_with mingw
+Requires: %llvm_br
+%endif