FreeBSD 11.4-RELEASE-p9 При сборке из портов получаю ошибку
===> Building for perl5-5.36.0_2
......
cc -c -DPERL_CORE -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -DUSE_THREAD_SAFE_LOCALE -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -std=c99 -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -Wall -Werror=pointer-arith -Werror=vla -Wextra -Wno-long-long -Wno-declaration-after-statement -Wc++-compat -Wwrite-strings -DPIC -fPIC locale.c
locale.c:5615:55: error: use of undeclared identifier 'PL_C_locale_obj'
if (cur_obj != LC_GLOBAL_LOCALE && cur_obj != PL_C_locale_obj) {
При ручной установке из дистрибутива проблема не наблюдается.
Как обойти (решить проблему)? Установив perl вручную, при обновлении любого другого пакета portupgrade снова пытается собирать perl из порта и выдает ошибку.
>[оверквотинг удален]
> cc -c -DPERL_CORE -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -DUSE_THREAD_SAFE_LOCALE -fno-strict-aliasing
> -pipe -fstack-protector-strong -I/usr/local/include -std=c99 -O2 -pipe -fstack-protector-strong
> -fno-strict-aliasing -Wall -Werror=pointer-arith -Werror=vla -Wextra -Wno-long-long
> -Wno-declaration-after-statement -Wc++-compat -Wwrite-strings -DPIC -fPIC locale.c
> locale.c:5615:55: error: use of undeclared identifier 'PL_C_locale_obj'
> if (cur_obj != LC_GLOBAL_LOCALE
> && cur_obj != PL_C_locale_obj) {
> При ручной установке из дистрибутива проблема не наблюдается.
> Как обойти (решить проблему)? Установив perl вручную, при обновлении любого другого пакета
> portupgrade снова пытается собирать perl из порта и выдает ошибку.FreeBSD 11.4 errata fix branch (not officially supported).
1.go to /usr/ports/lang/per5.34(36)
2.run "make config" and deselect PERL_MALLOC option
3.now retry make install
>[оверквотинг удален]
>> locale.c:5615:55: error: use of undeclared identifier 'PL_C_locale_obj'
>> if (cur_obj != LC_GLOBAL_LOCALE
>> && cur_obj != PL_C_locale_obj) {
>> При ручной установке из дистрибутива проблема не наблюдается.
>> Как обойти (решить проблему)? Установив perl вручную, при обновлении любого другого пакета
>> portupgrade снова пытается собирать perl из порта и выдает ошибку.
> FreeBSD 11.4 errata fix branch (not officially supported).
> 1.go to /usr/ports/lang/per5.34(36)
> 2.run "make config" and deselect PERL_MALLOC option
> 3.now retry make installОпция PERL_MALLOC отключена, ошибка не ушла, при сборке make проблема повторяется
cc -c -DPERL_CORE -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -DUSE_THREAD_SAFE_LOCALE -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -std=c99 -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -Wall -Werror=pointer-arith -Werror=vla -Wextra -Wno-long-long -Wno-declaration-after-statement -Wc++-compat -Wwrite-strings -DPIC -fPIC locale.c
locale.c:5615:55: error: use of undeclared identifier 'PL_C_locale_obj'
if (cur_obj != LC_GLOBAL_LOCALE && cur_obj != PL_C_locale_obj) {
^
1 error generated.
*** Error code 1Stop.
make[2]: stopped in /usr/ports/lang/perl5.36/work/perl-5.36.0
*** Error code 1
>[оверквотинг удален]
>> locale.c:5615:55: error: use of undeclared identifier 'PL_C_locale_obj'
>> if (cur_obj != LC_GLOBAL_LOCALE
>> && cur_obj != PL_C_locale_obj) {для FreeBSD 11.*
в Makefile порта надо удалить
-Accflags='-DUSE_THREAD_SAFE_LOCALEпричины описаны тут:
https://reviews.freebsd.org/D32008#change-ObvyK8B4FtcE
>>[оверквотинг удален]
>>> locale.c:5615:55: error: use of undeclared identifier 'PL_C_locale_obj'
>>> if (cur_obj != LC_GLOBAL_LOCALE
>>> && cur_obj != PL_C_locale_obj) {
> для FreeBSD 11.*
> в Makefile порта надо удалить
> -Accflags='-DUSE_THREAD_SAFE_LOCALE
> причины описаны тут:
> https://reviews.freebsd.org/D32008#change-ObvyK8B4FtcE[Solved] Спасибо, вопрос закрыт.