Skip to content

a1325b902d breaks build on OpenBSD #18536

Closed
@jkeenan

Description

@jkeenan

After a recent commit we have begun to experience build and test failures on OpenBSD.

See, for example, either of these smoke-test reports:

https://perl5.test-smoke.org/report/5001906 (@cguevara)
v5.33.6-42-g6dc0bc8817
openbsd 6.8 using clang version OpenBSD Clang 10.0.1

https://perl5.test-smoke.org/report/5001921 (@jkeenan)
v5.33.6-44-g874732f8cc
openbsd 6.6 using cc version 4.2.1 Compatible OpenBSD Clang 8.0.1

Some individual smoke-runs are getting through make successfully, but then encountering test failures. Some are not even making it all the way through make. Here are excerpts from the smokecurrent.log for 5001921:

[2021-02-07 00:31:30+0000] make ...
[2021-02-07 00:31:30+0000] [make ]
[2021-02-07 00:36:18+0000] Unable to make anything but miniperl in this configuration
[2021-02-07 00:36:18+0000] TSTENV = minitest
[2021-02-07 00:36:18+0000]
[2021-02-07 00:36:18+0000] You may see some irrelevant test failures if you have been unable
[2021-02-07 00:36:18+0000] You may see some irrelevant test failures if you have been unable
[2021-02-07 00:36:18+0000] to build lib/Config.pm, or the Unicode data files.
[2021-02-07 00:36:18+0000] to build lib/Config.pm, or the Unicode data files.

...
[2021-02-07 00:39:22+0000] Error while reading test-results: 1
[2021-02-07 00:39:22+0000]     You may see some irrelevant test failures if you have been unable
[2021-02-07 00:39:22+0000]     to build lib/Config.pm, or the Unicode data files.
[2021-02-07 00:39:22+0000]     t/re/pat ....................... FAILED--no leader found
[2021-02-07 00:39:22+0000]     t/re/regex_sets ................ FAILED--no leader found
[2021-02-07 00:39:22+0000]     t/re/script_run ................ FAILED--no leader found
[2021-02-07 00:39:22+0000]     t/op/split_unicode ............. FAILED--no leader found
[2021-02-07 00:39:22+0000]     t/op/tr ........................ FAILED--no leader found

I decided to explore the build failures first. On my OpenBSD-6.6 VM, I then built blead at HEAD:

# On OpenBSD-6.6
$ git describe
v5.33.6-44-g874732f8cc
$ sh ./Configure -des -Dusedevel Duseithreads -Doptimize="-O2 -pipe -fstack-protector -fno-strict-aliasing" \
  && make minitest_prep
...
# terminates with:
Compiling Perl properties
Creating Perl synonyms
Writing tables
*** Signal SIGSEGV in . (makefile:392 'uni.data')
*** Error 1 in target 'minitest_prep' (ignored)
 
You may see some irrelevant test failures if you have been unable
to build lib/Config.pm, or the Unicode data files.
 
cd t && (rm -f perl; /bin/ln -s ../miniperl perl)

So the problems are showing up even before we attempt to test minitest. But proceeding:

$ make minitest
 
You may see some irrelevant test failures if you have been unable
to build lib/Config.pm, or the Unicode data files.
 
cd t && (rm -f perl; /bin/ln -s ../miniperl perl)
cd t &&   ./perl -Ilib -I. TEST base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t opbasic/*.t op/*.t uni/*.t perf/*.t </dev/tty
t/base/cond .................... ok
...
t/re/overload .................. ok
t/re/pat ....................... Can't locate unicore/Name.pm in @INC (you may need to install the unicore::Name module) (@INC contains: ../lib . ../ext/re /home/jkeenan/gitwork/perl/cpan/AutoLoader/lib /home/jkeenan/gitwork/perl/dist/Carp/lib /home/jkeenan/gitwork/perl/dist/PathTools /home/jkeenan/gitwork/perl/dist/PathTools/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-Install/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-MakeMaker/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-Manifest/lib /home/jkeenan/gitwork/perl/cpan/File-Path/lib /home/jkeenan/gitwork/perl/ext/re /home/jkeenan/gitwork/perl/dist/Term-ReadLine/lib /home/jkeenan/gitwork/perl/dist/Exporter/lib /home/jkeenan/gitwork/perl/ext/File-Find/lib /home/jkeenan/gitwork/perl/cpan/Text-Tabs/lib /home/jkeenan/gitwork/perl/dist/constant/lib /home/jkeenan/gitwork/perl/cpan/version/lib /home/jkeenan/gitwork/perl/cpan/Getopt-Long/lib /home/jkeenan/gitwork/perl/cpan/Text-ParseWords/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-PL2Bat/lib /home/jkeenan/gitwork/perl/lib .. . .) at ../lib/_charnames.pm line 10.
BEGIN failed--compilation aborted at ../lib/_charnames.pm line 10.
Compilation failed in require at re/pat.t line 1364.
BEGIN failed--compilation aborted at re/pat.t line 1364.
FAILED--no leader found
t/re/pat_advanced .............. skipped
t/re/reg_posixcc ............... ok
t/re/regex_sets ................ Can't locate unicore/Name.pm in @INC (you may need to install the unicore::Name module) (@INC contains: ../lib . ../ext/re /home/jkeenan/gitwork/perl/cpan/AutoLoader/lib /home/jkeenan/gitwork/perl/dist/Carp/lib /home/jkeenan/gitwork/perl/dist/PathTools /home/jkeenan/gitwork/perl/dist/PathTools/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-Install/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-MakeMaker/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-Manifest/lib /home/jkeenan/gitwork/perl/cpan/File-Path/lib /home/jkeenan/gitwork/perl/ext/re /home/jkeenan/gitwork/perl/dist/Term-ReadLine/lib /home/jkeenan/gitwork/perl/dist/Exporter/lib /home/jkeenan/gitwork/perl/ext/File-Find/lib /home/jkeenan/gitwork/perl/cpan/Text-Tabs/lib /home/jkeenan/gitwork/perl/dist/constant/lib /home/jkeenan/gitwork/perl/cpan/version/lib /home/jkeenan/gitwork/perl/cpan/Getopt-Long/lib /home/jkeenan/gitwork/perl/cpan/Text-ParseWords/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-PL2Bat/lib /home/jkeenan/gitwork/perl/lib .. . .) at ../lib/_charnames.pm line 10.
BEGIN failed--compilation aborted at ../lib/_charnames.pm line 10.
Compilation failed in require at re/regex_sets.t line 58.
BEGIN failed--compilation aborted at re/regex_sets.t line 58.
FAILED--no leader found
t/re/regex_sets_compat ......... skipped
...
\t/re/rt122747 .................. skipped
t/re/rxcode .................... ok
t/re/script_run ................ Can't locate unicore/Name.pm in @INC (you may need to install the unicore::Name module) (@INC contains: ../lib /home/jkeenan/gitwork/perl/cpan/AutoLoader/lib /home/jkeenan/gitwork/perl/dist/Carp/lib /home/jkeenan/gitwork/perl/dist/PathTools /home/jkeenan/gitwork/perl/dist/PathTools/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-Install/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-MakeMaker/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-Manifest/lib /home/jkeenan/gitwork/perl/cpan/File-Path/lib /home/jkeenan/gitwork/perl/ext/re /home/jkeenan/gitwork/perl/dist/Term-ReadLine/lib /home/jkeenan/gitwork/perl/dist/Exporter/lib /home/jkeenan/gitwork/perl/ext/File-Find/lib /home/jkeenan/gitwork/perl/cpan/Text-Tabs/lib /home/jkeenan/gitwork/perl/dist/constant/lib /home/jkeenan/gitwork/perl/cpan/version/lib /home/jkeenan/gitwork/perl/cpan/Getopt-Long/lib /home/jkeenan/gitwork/perl/cpan/Text-ParseWords/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-PL2Bat/lib /home/jkeenan/gitwork/perl/lib .. . .) at ../lib/_charnames.pm line 10.
BEGIN failed--compilation aborted at ../lib/_charnames.pm line 10.
Compilation failed in require at re/script_run.t line 24.
BEGIN failed--compilation aborted at re/script_run.t line 24.
FAILED--no leader found
t/re/speed ..................... skipped
...
t/op/split ..................... ok
t/op/split_unicode ............. Can't locate unicore/Name.pm in @INC (you may need to install the unicore::Name module) (@INC contains: /home/jkeenan/gitwork/perl/cpan/AutoLoader/lib /home/jkeenan/gitwork/perl/dist/Carp/lib /home/jkeenan/gitwork/perl/dist/PathTools /home/jkeenan/gitwork/perl/dist/PathTools/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-Install/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-MakeMaker/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-Manifest/lib /home/jkeenan/gitwork/perl/cpan/File-Path/lib /home/jkeenan/gitwork/perl/ext/re /home/jkeenan/gitwork/perl/dist/Term-ReadLine/lib /home/jkeenan/gitwork/perl/dist/Exporter/lib /home/jkeenan/gitwork/perl/ext/File-Find/lib /home/jkeenan/gitwork/perl/cpan/Text-Tabs/lib /home/jkeenan/gitwork/perl/dist/constant/lib /home/jkeenan/gitwork/perl/cpan/version/lib /home/jkeenan/gitwork/perl/cpan/Getopt-Long/lib /home/jkeenan/gitwork/perl/cpan/Text-ParseWords/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-PL2Bat/lib /home/jkeenan/gitwork/perl/lib .. . .) at /home/jkeenan/gitwork/perl/lib/charnames.pm line 5.
BEGIN failed--compilation aborted at /home/jkeenan/gitwork/perl/lib/charnames.pm line 5.
Compilation failed in require at op/split_unicode.t line 13.
BEGIN failed--compilation aborted at op/split_unicode.t line 13.
FAILED--no leader found
t/op/sprintf ................... ok
...
t/op/time_loop ................. ok
t/op/tr ........................ Can't locate unicore/Name.pm in @INC (you may need to install the unicore::Name module) (@INC contains: ../lib /home/jkeenan/gitwork/perl/cpan/AutoLoader/lib /home/jkeenan/gitwork/perl/dist/Carp/lib /home/jkeenan/gitwork/perl/dist/PathTools /home/jkeenan/gitwork/perl/dist/PathTools/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-Install/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-MakeMaker/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-Manifest/lib /home/jkeenan/gitwork/perl/cpan/File-Path/lib /home/jkeenan/gitwork/perl/ext/re /home/jkeenan/gitwork/perl/dist/Term-ReadLine/lib /home/jkeenan/gitwork/perl/dist/Exporter/lib /home/jkeenan/gitwork/perl/ext/File-Find/lib /home/jkeenan/gitwork/perl/cpan/Text-Tabs/lib /home/jkeenan/gitwork/perl/dist/constant/lib /home/jkeenan/gitwork/perl/cpan/version/lib /home/jkeenan/gitwork/perl/cpan/Getopt-Long/lib /home/jkeenan/gitwork/perl/cpan/Text-ParseWords/lib /home/jkeenan/gitwork/perl/cpan/ExtUtils-PL2Bat/lib /home/jkeenan/gitwork/perl/lib .. . .) at ../lib/_charnames.pm line 10.
BEGIN failed--compilation aborted at ../lib/_charnames.pm line 10.
Compilation failed in require at op/tr.t line 512.
BEGIN failed--compilation aborted at op/tr.t line 512.
FAILED--no leader found
t/op/tr_latin1 ................. ok
...
t/perf/taint ................... skipped
Failed 5 tests out of 323, 98.45% okay.
	op/split_unicode.t
	op/tr.t
	re/pat.t
	re/regex_sets.t
	re/script_run.t
...
Elapsed: 150 sec
u=0.37  s=1.09  cu=35.39  cs=34.59  scripts=323  tests=90848
*** Error 1 in /home/jkeenan/gitwork/perl (makefile:817 'minitest')

The test failures above are similar to what I got in the smoke-test runs.

I got the same failures in make minitest_prep on unthreaded builds.

I then manually bisected and attempted threaded builds.

$ git checkout 99dbf64538
...
$ git describe
v5.33.6-34-g99dbf64538

make minitest_prep completed without any evidence of shortcoming. make minitest PASSed.

Next:

$ git checkout a1325b902d57aa7a99bed3d2ec0fa5ce42836207
Previous HEAD position was 99dbf64538 Rename CxTRYBLOCK() to CxEVALBLOCK()
HEAD is now at a1325b902d Initial attempt at feature 'try'
$ git describe
v5.33.6-35-ga1325b902d

$ sh ./Configure -des -Dusedevel Duseithreads -Doptimize="-O2 -pipe -fstack-protector -fno-strict-aliasing" && make minitest_prep
...
Creating Perl synonyms
Writing tables
*** Signal SIGSEGV in . (makefile:392 'uni.data')
*** Error 1 in target 'minitest_prep' (ignored)
 
You may see some irrelevant test failures if you have been unable
to build lib/Config.pm, or the Unicode data files.
 
cd t && (rm -f perl; /bin/ln -s ../miniperl perl)

make minitest then failed in the files reported above.

Calling in the bomb squad: @leonerd, @khwilliamson, @afresh1

Thank you very much.
Jim Keenan

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions