Skip to content

Build with -Accflags=-DNO_LOCALE_MESSAGES broke at recent commit #21909

@jkeenan

Description

@jkeenan

In the discussion for #21892 and #21895, I have mentioned that, in order to test the impact of those two pull requests, I have been trying to compile the "base case", i.e.,, the "before" situation. Per discussion with @khwilliamson, I should be able to build perl with this configuration:

$ sh ./Configure -des -Dusedevel -Accflags=-DNO_LOCALE_MESSAGES && make test_prep

I can build successfully on FreeBSD-13 but have repeatedly failed on Linux. The build failures typically end with something like this:

...
cc -fstack-protector-strong -L/usr/local/lib -o miniperl \
    opmini.o perlmini.o universalmini.o av.o builtin.o caretx.o class.o deb.o doio.o doop.o dquote.o dump.o globals.o gv.o hv.o keywords.o locale.o mathoms.o mg.o mro_core.o numeric.o pad.o peep.o perlio.o perly.o pp.o pp_ctl.o pp_hot.o pp_pack.o pp_sort.o pp_sys.o reentr.o regcomp.o regcomp_debug.o regcomp_invlist.o regcomp_study.o regcomp_trie.o regexec.o run.o scope.o sv.o taint.o time64.o toke.o utf8.o util.o   miniperlmain.o  -lpthread -ldl -lm -lcrypt -lutil -lc 
/usr/bin/ld: locale.o: in function `S_langinfo_sv_i':
locale.c:(.text+0x1cdc): undefined reference to `emulate_langinfo'
collect2: error: ld returned 1 exit status
make: *** [makefile:390: lib/buildcustomize.pl] Error 1

I decided to see if bisection would help. I used this invocation:

$ perl Porting/bisect.pl \
-Dcc=gcc -Accflags=-DNO_LOCALE_MESSAGES \
--start=v5.39.1 \
--end=af9733f1e2 \
--test-build

Bisection ended like this:

gcc -fstack-protector-strong -L/usr/local/lib -o miniperl \
    opmini.o perlmini.o universalmini.o av.o builtin.o caretx.o class.o deb.o doio.o doop.o dquote.o dump.o globals.o gv.o hv.o keywords.o locale.o mathoms.o mg.o mro_core.o numeric.o pad.o peep.o perlio.o perly.o pp.o pp_ctl.o pp_hot.o pp_pack.o pp_sort.o pp_sys.o reentr.o regcomp.o regcomp_debug.o regcomp_invlist.o regcomp_study.o regcomp_trie.o regexec.o run.o scope.o sv.o taint.o time64.o toke.o utf8.o util.o   miniperlmain.o  -lpthread -ldl -lm -lcrypt -lutil -lc 
/usr/bin/ld: locale.o: in function `S_langinfo_sv_i':
/home/jkeenan/gitwork/perl2/locale.c:6175: undefined reference to `emulate_langinfo'
collect2: error: ld returned 1 exit status
make: *** [Makefile:390: lib/buildcustomize.pl] Error 1
make: *** Waiting for unfinished jobs....
HEAD is now at e6145c9691 locale.c: Fix typo
bad - could not build test_prep

... and pointed to this commit:

commit e6145c96910698f2944584752f4fcde8e1ba3365 (HEAD, refs/bisect/bad)
Author:     Karl Williamson <khw@cpan.org>
AuthorDate: Mon Jan 22 14:19:53 2024 -0700
Commit:     Karl Williamson <khw@cpan.org>
CommitDate: Mon Jan 22 14:21:52 2024 -0700

    locale.c: Fix typo
    
    This #define has a trailing underscore

@khwilliamson, can you take a look? Thanks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    build-time-warningsReplaces [META] Build-time warnings RT #133556type-buildRelates to building perl or a distribution we bundle.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions