Ошибка libgpg при сборке.

Автор delirium, 10 ноября 2022, 11:42

0 Пользователи и 1 гость просматривают эту тему.

delirium

Приветствую.
Есть задачка, собрать старый LO (7.0.4) под windows. Почему не последний, это отдельная и долгая тема....
При сборке выдает ошибку:

config.status: creating po/Makefile

        libgpg-error v1.27 has been configured as follows:

        Revision: c1668f6  (49510)
        Platform: x86_64-w64-mingw32

***
***  Please note that your compiler does not support the GCC style
***  aligned attribute.  Using this software may evoke bus errors.
***
Making all in m4
Making all in src
cl: командная строка warning D9002: пропуск неизвестного параметра "-O0"
mkheader.c
./gpg-error.h.in:437: note: including './syscfg/lock-obj-pub.mingw32.h'
mkerrcodes.c
libtool: compile:  windres -O COFF --target=pe-x86-64 "--preprocessor=G:/distr/LObuild/libocore/workdir/LinkTarget/Executable/cpp.exe -+ -DRC_INVOKED -DWINAPI_FAMILY=0 -IG:/distr/LObuild/libocore/include  -IC:/PROGRA~2/WI3CF2~1/10/Include/10.0.19041.0/ucrt -IC:/PROGRA~2/WI3CF2~1/10/include -IC:/PROGRA~2/MICROS~3/2019/BUILDT~1/VC/Tools/MSVC/1428~1.299/Include -IC:/PROGRA~2/WI3CF2~1/10/Include/10.0.19041.0/um -IC:/PROGRA~2/WI3CF2~1/10/Include/10.0.19041.0/shared -IC:/PROGRA~1/Java/JDK-17~1.5/include/win32 -IC:/PROGRA~1/Java/JDK-17~1.5/include" -DHAVE_CONFIG_H -I. -I.. -DLOCALEDIR=/usr/local/share/locale -i versioninfo.rc -o versioninfo.obj
/bin/sh: G:/distr/LObuild/libocore/workdir/LinkTarget/Executable/cpp.exe -+ -DRC_INVOKED -DWINAPI_FAMILY=0 -IG:/distr/LObuild/libocore/include  -IC:/PROGRA~2/WI3CF2~1/10/Include/10.0.19041.0/ucrt -IC:/PROGRA~2/WI3CF2~1/10/include -IC:/PROGRA~2/MICROS~3/2019/BUILDT~1/VC/Tools/MSVC/1428~1.299/Include -IC:/PROGRA~2/WI3CF2~1/10/Include/10.0.19041.0/um -IC:/PROGRA~2/WI3CF2~1/10/Include/10.0.19041.0/shared -IC:/PROGRA~1/Java/JDK-17~1.5/include/win32 -IC:/PROGRA~1/Java/JDK-17~1.5/include: No such file or directory
windres: preprocessing failed.
make[5]: *** [Makefile:1244: versioninfo.lo] Error 1
make[4]: *** [Makefile:577: all] Error 2
make[3]: *** [Makefile:474: all-recursive] Error 1
make[2]: *** [Makefile:405: all] Error 2
make[1]: *** [G:/distr/LObuild/libocore/external/libgpg-error/ExternalProject_libgpg-error.mk:23: G:/distr/LObuild/libocore/workdir/ExternalProject/libgpg-error/build] Error 1
make: *** [Makefile:282: build] Error 2

Может кто помнит, как это исправить ? Или чего ему еще нудно ? Может надо использовать более старые версии cygwin,JDK и т.д.
И чего ему именно его родной libgpg-error нужен ? В составе cygwin уже идет libgpg-error0 и libgpg-error-devil

Заранее спасибо !

mikekaganski

#1
Черри-пикните 07f1ec0af02a9ab6c1bf6e6478092ee50495afa7.

Цитата: delirium от 10 ноября 2022, 11:42В составе cygwin уже идет libgpg-error0 и libgpg-error-devil

Ничего из cygwin в LibreOffice не используется, потому что мы не используем эмуляцию Unix. cygwin нужен только как среда сборки, чтобы не заморачиваться с полностью независимым тулчайном.

Вопрос: а почему не воспользоваться готовыми сборками? (Наверное, есть причина, но на всякий случай - вдруг очевидное решение упустили.)
С уважением,
Михаил Каганский

delirium

Цитата: mikekaganski от 10 ноября 2022, 12:52Черри-пикните 07f1ec0af02a9ab6c1bf6e6478092ee50495afa7

Выдает:
$ git cherry-pick 07f1ec0af02a9ab6c1bf6e6478092ee50495afa7
Auto-merging solenv/gbuild/platform/com_MSC_defs.mk
CONFLICT (content): Merge conflict in solenv/gbuild/platform/com_MSC_defs.mk
error: could not apply 07f1ec0af02a... avoid windres preprocessor quoting-messups with current cygwin

Или я что то не так делаю ?

Цитата: mikekaganski от 10 ноября 2022, 12:52Ничего из cygwin в LibreOffice не используется, потому что мы не используем эмуляцию Unix. cygwin нужен только как среда сборки, чтобы не заморачиваться с полностью независимым тулчайном.

Спасибо. За ответ.
Цитата: mikekaganski от 10 ноября 2022, 12:52Вопрос: а почему не воспользоваться готовыми сборками? (Наверное, есть причина, но на всякий случай - вдруг очевидное решение упустили.)

Так долгая и сложная история. Хотят не просто ту же версию что под linux. А что бы собиралось именно из тех же исходников, что и линуксовая версия.



mikekaganski

Цитата: delirium от 10 ноября 2022, 14:25Выдает:
error: could not apply 07f1ec0af02a... avoid windres preprocessor quoting-messups with current cygwin

Конфликтует... Что делают в случае конфликта при бэкпорте патча в старую ветку? Разрешают конфликты ;)

Но этот патч был бэкпортирован в разные старые ветки (см. Cherry picks здесь), так что Вы можете попробовать отменить и черри-пикнуть 15d36bdb2069cb531cabd9b3b9ffb0fb913a6bd0. Или 3589180bfa67bc2ef411a56c9e8bb161f6c59902 (но мне кажется, что первая лучше подходит для случая).

Цитата: delirium от 10 ноября 2022, 14:25Хотят не просто ту же версию что под linux. А что бы собиралось именно из тех же исходников, что и линуксовая версия.

А вот тут не понял. У нас нет разных исходников для Linux и Windows.
С уважением,
Михаил Каганский

delirium

Черри-пикнулся только: 15d36bdb2069cb531cabd9b3b9ffb0fb913a6bd0

Но после него уже другая ошибка:

checking for gawk... (cached) gawk
checking for x86_64-w64-mingw32-gcc... (cached) G:/distr/LObuild/libocore/workdir/LinkTarget/Executable/gcc-wrapper.exe
checking whether the compiler supports GNU C... (cached) no
checking whether G:/distr/LObuild/libocore/workdir/LinkTarget/Executable/gcc-wrapper.exe accepts -g... (cached) yes
checking for G:/distr/LObuild/libocore/workdir/LinkTarget/Executable/gcc-wrapper.exe option to enable C11 features... (cached) unsupported
checking for G:/distr/LObuild/libocore/workdir/LinkTarget/Executable/gcc-wrapper.exe option to enable C99 features... (cached) unsupported
checking for G:/distr/LObuild/libocore/workdir/LinkTarget/Executable/gcc-wrapper.exe option to enable C89 features... (cached) unsupported
checking whether G:/distr/LObuild/libocore/workdir/LinkTarget/Executable/gcc-wrapper.exe understands -c and -o together... (cached) yes
checking dependency style of G:/distr/LObuild/libocore/workdir/LinkTarget/Executable/gcc-wrapper.exe... (cached) none
checking how to run the C preprocessor... G:/distr/LObuild/libocore/workdir/LinkTarget/Executable/gcc-wrapper.exe -E
configure: error: No C-89 compiler found
make[1]: *** [G:/distr/LObuild/libocore/external/libassuan/ExternalProject_libassuan.mk:27: G:/distr/LObuild/libocore/workdir/ExternalProject/libassuan/build] Error 1
make: *** [Makefile:282: build] Error 2

mikekaganski

https://gerrit.libreoffice.org/c/core/+/127641 выглядит релевантным, попробуйте 3b46c8653c6a54b279893ea3b8b4b4394ac8ba3e
С уважением,
Михаил Каганский

delirium

Уже гораздо лучше. Я уж думал что все получилось... Но нет. После второго черри-пика ругается на:

Примечание: включение файла:              C:/PROGRA~2/WI3CF2~1/10/Include/10.0.19041.0/ucrt\corecrt_memory.h
Примечание: включение файла:       G:/distr/LObuild/libocore/include\rtl/alloc.h
make[1]: *** [G:/distr/LObuild/libocore/solenv/gbuild/LinkTarget.mk:351: G:/distr/LObuild/libocore/workdir/GenCxxObject/YaccTarget/connectivity/source/parse/sqlbison.o] Error 2
make[1]: *** Waiting for unfinished jobs....
Примечание: включение файла:      G:/distr/LObuild/libocore/include\com/sun/star/uno/Reference.h

mikekaganski

Недостаточно контекста.
С уважением,
Михаил Каганский

delirium

А, да... Сорри. Выше не увидел.

Примечание: включение файла:         C:/PROGRA~2/WI3CF2~1/10/Include/10.0.19041.0/ucrt\stdio.h
Примечание: включение файла:         C:/PROGRA~2/MICROS~3/2019/BUILDT~1/VC/Tools/MSVC/1428~1.299/Include\cstdlib
Примечание: включение файла:          C:/PROGRA~2/WI3CF2~1/10/Include/10.0.19041.0/ucrt\corecrt_wstdio.h
Примечание: включение файла:          C:/PROGRA~2/WI3CF2~1/10/Include/10.0.19041.0/ucrt\math.hПримечание: включение файла:           C:/PROGRA~2/WI3CF2~1/10/Include/10.0.19041.0/ucrt\cor
ecrt_stdio_config.h

G:/distr/LObuild/libocore/workdir/YaccTarget/connectivity/source/parse/sqlbison.cxx(5484): error C2065: yyn: необъявленный идентификаторПримечание: включение файла:           C:/PROGRA~2
/WI3CF2~1/10/Include/10.0.19041.0/ucrt\corecrt_math.h

G:/distr/LObuild/libocore/workdir/YaccTarget/connectivity/source/parse/sqlbison.cxx(5490): error C2065: yyn: необъявленный идентификатор
Примечание: включение файла:   G:/distr/LObuild/libocore/include\vcl/svapp.hxx
Примечание: включение файла:    G:/distr/LObuild/libocore/include\rtl/string.hxx
Примечание: включение файла:   G:/distr/LObuild/libocore/include\unotools/configmgr.hxx
G:/distr/LObuild/libocore/workdir/YaccTarget/connectivity/source/parse/sqlbison.cxx(5500): error C2065: yyn: необъявленный идентификатор
G:/distr/LObuild/libocore/workdir/YaccTarget/connectivity/source/parse/sqlbison.cxx(5510): error C2065: yyn: необъявленный идентификатор
Примечание: включение файла:           C:/PROGRA~2/WI3CF2~1/10/Include/10.0.19041.0/ucrt\corecrt_math_defines.h
G:/distr/LObuild/libocore/workdir/YaccTarget/connectivity/source/parse/sqlbison.cxx(5518): error C2065: yyn: необъявленный идентификатор
Примечание: включение файла:    C:/PROGRA~2/MICROS~3/2019/BUILDT~1/VC/Tools/MSVC/1428~1.299/Include\cassert
Примечание: включение файла:     C:/PROGRA~2/MICROS~3/2019/BUILDT~1/VC/Tools/MSVC/1428~1.299/Include\cassert
Примечание: включение файла:   G:/distr/LObuild/libocore/include\unotools/localedatawrapper.hxx
Примечание: включение файла:     C:/PROGRA~2/WI3CF2~1/10/Include/10.0.19041.0/ucrt\assert.h
:

Куча сообщений вида:
/workdir/YaccTarget/connectivity/source/parse/sqlbison.cxx(5756): error C2065: yyn: необъявленный идентификатор

mikekaganski

https://gerrit.libreoffice.org/c/core/+/122082 => 3a2614b5ffeacade5ef023116dd2b87f48d368ae или 774c446a4b555f910a62f24e34f5dddc2edd2a59
С уважением,
Михаил Каганский

delirium

Прошел дальше...
Теперь ругается на:
 ERROR: ERROR: msm file not found: Microsoft_VC141_CRT_x64.msm ! at G:/distr/LObuild/libocore/solenv/bin/modules/installer/windows/update.pm line 456

Хотя все компоненты VC141 стоит... ???

mikekaganski

https://wiki.documentfoundation.org/Development/BuildingOnWindows#Install_Visual_Studio:

ЦитироватьInstall Visual Studio
...
check that all of the following components are selected individually:
...
  • C++ 20xx Redistributable MSMs (only required to build MSI installer)
...
The redistributable MSMs (only required to build MSI installer) are not part of the workload selection in 2019 and later, but need to be picked from the individual component selection.
С уважением,
Михаил Каганский

delirium

Это стоит конечно.
Правда не полный VS, а VS Build tools. Но я не думаю что в этом дело...

mikekaganski

Может быть, у Вас ещё стоит VS 2017, в котором выбран набор x86, но не x64? configure проверяет наличие *x86.msm для определения используемой версии merge module, а используется x64.msm - может быть, в этом проблема.

Проверьте в Program Files (x86)\Microsoft Visual Studio, какие вообще там есть *.msm и где.
С уважением,
Михаил Каганский

delirium

Он почему то в конфиге путь на V142 прописывает:
./config.status:S["MSM_PATH"]="C:/PROGRA~2/MICROS~3/2019/BUILDT~1/VC/redist/MSVC/v142/MERGEM~1/"

а ищет файл Microsoft_VC141_CRT_x64.msm, который в другой папке соответственно.

Может что из за того, что стоят и 141 и 142, и он путь для 142 берет...

Пока вылечил тупым переносом файлов из 141 в 142. Вроде прокатило )