A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/Perl/perl5/issues/19890 below:

Commit 996e6b9e17 breaks build with -Accflags="-DNO_LOCALE_NUMERIC" · Issue #19890 · Perl/perl5 · GitHub

When I compile with this ./Configure switch:

-Accflags="-DNO_LOCALE_NUMERIC"

... compilation fails on both OpenBSD and FreeBSD (using clang10 on both OSes) at this point:

$ sh ./Configure -des -Dusedevel -Accflags="-DNO_LOCALE_NUMERIC" && make miniperl | tee $P5P_DIR/make-output/`extract-sha`.openbsd.clang10.unthreaded.onlynolocalenumeric.makeminiperl.output.txt
...
cc -c -DPERL_CORE -DNO_LOCALE_NUMERIC -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -std=c99 -O2 -Wall -Werror=pointer-arith -Werror=vla -Wextra -Wno-long-long -Wno-declaration-after-statement -Wc++-compat -Wwrite-strings locale.c
locale.c:2293:13: error: use of undeclared identifier 'toggled'
        if (toggled) {
            ^
1 error generated.
*** Error 1 in /home/jkeenan/gitwork/perl (makefile:246 'locale.o': @`sh  cflags "optimize='-O2'" locale.o`  locale.c)

The above was observed on OpenBSD-6.9 at commit 7b92fe4. I have reproduced it on FreeBSD-12 as well. I originally spotted this problem in this smoke-test report: https://perl5.test-smoke.org/report/5019634. I customarily smoke-test on OpenBSD with -Accflags="-DNO_LOCALE_NUMERIC -DNO_LOCALE_COLLATE" because that is closer to the "system perl" configuration options used by @afresh1.

On an older Linux installation, with the same configuration I get:

$ uname -mrs
Linux 5.10.13-x86_64-linode141 x86_64
$ ./Configure -des -Dusedevel -Accflags="-DNO_LOCALE_NUMERIC" && make miniperl
...
cc -c -DPERL_CORE -std=gnu99 -DNO_LOCALE_NUMERIC -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -Wall -Werror=pointer-arith -Werror=vla -Wextra -Wno-long-long -Wno-declaration-after-statement -Wc++-compat -Wwrite-strings locale.c
locale.c: In function ‘Perl_setlocale’:
locale.c:2293:13: error: ‘toggled’ undeclared (first use in this function)
         if (toggled) {
             ^
locale.c:2293:13: note: each undeclared identifier is reported only once for each function it appears in
locale.c: At top level:
locale.c:1113:1: warning: ‘S_calculate_LC_ALL’ defined but not used [-Wunused-function]
 S_calculate_LC_ALL(pTHX_ const char ** individ_locales)
 ^
locale.c:1300:1: warning: ‘S_new_numeric’ defined but not used [-Wunused-function]
 S_new_numeric(pTHX_ const char *newnum)
 ^
locale.c:1264:1: warning: ‘S_set_numeric_radix’ defined but not used [-Wunused-function]
 S_set_numeric_radix(pTHX_ const bool use_locale)
 ^
make: *** [locale.o] Error 1
makefile:250: recipe for target 'locale.o' failed

The line in locale.c at which make failed was recently added:

commit 996e6b9e17bebd710ff658cdb123da073ac0ee97
Author:     Karl Williamson <khw@cpan.org>
AuthorDate: Sun Feb 21 06:01:20 2021 -0700
Commit:     Karl Williamson <khw@cpan.org>
CommitDate: Sun Jun 19 13:29:35 2022 -0600

    locale.c: Use low level macros at low level
    
    Implementing Perl_setlocale, we can safely use the internal macros that
    the public ones expand to call, without the overhead those public macros
    impose (which they do to be more immune from improper calls from outside
    code).

@khwilliamson, can you take a look?


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4