Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make DynaLoader on MacOS check library existence with dlopen #18407

Merged
merged 1 commit into from
Dec 22, 2020

Conversation

Leont
Copy link
Contributor

@Leont Leont commented Dec 17, 2020

A number of system libraries no longer exist as actual files on Big Sur, even though dlopen will pretend they do, so now we fall back to dlopen if a library file can not be found.

CI suggests this works on Big Sur but this probably needs human confirmation that it will fix the issue from someone who actually runs Big Sur before being merged.

@hakonhagland
Copy link
Contributor

Thanks! The test passes here:

$ git clone https://github.com/Perl/perl5.git
$ cd perl5
$  git fetch origin pull/18407/head:bigsur
$ git checkout bigsur
$ sh Configure -de -Dusedevel
[...]
$ make
[...]
$ make test
[...]
ext/B/t/strict ................................................... ok
ext/B/t/sv_stash ................................................. ok
ext/B/t/terse .................................................... ok
ext/B/t/walkoptree ............................................... ok
ext/B/t/xref ..................................................... ok
ext/Devel-Peek/t/Peek ............................................ ok
ext/DynaLoader/t/DynaLoader ...................................... ok
ext/Errno/t/Errno ................................................ ok
ext/Fcntl/t/autoload ............................................. ok
ext/Fcntl/t/fcntl ................................................ ok
ext/Fcntl/t/mode ................................................. ok

@hakonhagland
Copy link
Contributor

But ext/POSIX/t/time.t still fails:

ext/POSIX/t/termios .............................................. ok
ext/POSIX/t/time ................................................. Cannot setlocale(LC_CTYPE) back to orig: No such file or directory at t/time.t line 89.
# Looks like your test exited with 2 just after 14.
FAILED--expected 19 tests, saw 14
ext/POSIX/t/unimplemented ........................................ ok
[...]
Failed 1 test out of 2452, 99.96% okay.
	../ext/POSIX/t/time.t
### Since not all tests were successful, you may want to run some of
### them individually and examine any diagnostic messages they produce.
### See the INSTALL document's section on "make test".
### You have a good chance to get more information by running
###   ./perl harness
### in the 't' directory since most (>=80%) of the tests succeeded.
### You may have to set your dynamic library search path,
### DYLD_LIBRARY_PATH, to point to the build directory:
###   setenv DYLD_LIBRARY_PATH `pwd`; cd t; ./perl harness
###   DYLD_LIBRARY_PATH=`pwd`; export DYLD_LIBRARY_PATH; cd t; ./perl harness
###   export DYLD_LIBRARY_PATH=`pwd`; cd t; ./perl harness
### for csh-style shells, like tcsh; or for traditional/modern
### Bourne-style shells, like bash, ksh, and zsh, respectively.
Elapsed: 2183 sec
u=13.09  s=8.11  cu=713.08  cs=109.96  scripts=2452  tests=1184898
make: *** [test] Error 1

Maybe this failure should be reported in a separate issue?

@Leont
Copy link
Contributor Author

Leont commented Dec 17, 2020

Maybe this failure should be reported in a separate issue?

Yes, you probably should.

Edit. On second thought, I think the problem there is obvious, and I don't know why nothing else failed on it. I'll push a fix on this branch.

@karenetheridge karenetheridge marked this pull request as draft December 17, 2020 20:21
@Leont Leont force-pushed the el-sur-dynaloader branch 4 times, most recently from b695efe to 4ba2f8a Compare December 18, 2020 00:21
@Leont
Copy link
Contributor Author

Leont commented Dec 18, 2020

@hakonhagland could you please build and install this branch, and then install Compress::Raw::Zlib on it? If that works we have the fixes we need to get a 5.32.1 out.

@hakonhagland
Copy link
Contributor

could you please build and install this branch, and then install Compress::Raw::Zlib on it?

@Leont Yes, I tried to add -Dprefix=/Users/hakonhaegland/perls to install to my home directory, but it seems it just ignored that option and installed to /usr/local/ instead. Anyway, everything seems to work besides that:

$ git fetch origin pull/18407/head:bigsur3
$ git checkout bigsur3
$ sh Configure -de -Dusedevel -Dprefix=/Users/hakonhaegland/perls
[...]
$ make
[...]
$ make test
[...]
$ make install
$ /usr/local/bin/cpan5.33.5 Compress::Raw::Zlib
Loading internal logger. Log::Log4perl recommended for better logging
Reading '/Users/hakonhaegland/.cpan/Metadata'
  Database was generated on Wed, 26 Aug 2020 09:55:49 GMT
Fetching with HTTP::Tiny:
http://mirrors.nic.cz/CPAN/authors/01mailrc.txt.gz
Reading '/Users/hakonhaegland/.cpan/sources/authors/01mailrc.txt.gz'
............................................................................DONE
Fetching with HTTP::Tiny:
http://mirrors.nic.cz/CPAN/modules/02packages.details.txt.gz
Reading '/Users/hakonhaegland/.cpan/sources/modules/02packages.details.txt.gz'
  Database was generated on Fri, 18 Dec 2020 10:55:36 GMT
  HTTP::Date not available
............................................................................DONE
Fetching with HTTP::Tiny:
http://mirrors.nic.cz/CPAN/modules/03modlist.data.gz
Reading '/Users/hakonhaegland/.cpan/sources/modules/03modlist.data.gz'
DONE
Writing /Users/hakonhaegland/.cpan/Metadata
Compress::Raw::Zlib is up to date (2.096).

@Leont
Copy link
Contributor Author

Leont commented Dec 18, 2020

Compress::Raw::Zlib is up to date (2.096).

That does say that much I'm afraid. Does Curses install as well?

@hakonhagland
Copy link
Contributor

No Curses does not install:

$ /usr/local/bin/cpan5.33.5 Curses
Loading internal logger. Log::Log4perl recommended for better logging
Reading '/Users/hakonhaegland/.cpan/Metadata'
  Database was generated on Fri, 18 Dec 2020 10:55:36 GMT
Running install for module 'Curses'
Fetching with HTTP::Tiny:
http://mirrors.nic.cz/CPAN/authors/id/G/GI/GIRAFFED/Curses-1.37.tar.gz
Fetching with HTTP::Tiny:
http://mirrors.nic.cz/CPAN/authors/id/G/GI/GIRAFFED/CHECKSUMS
Checksum for /Users/hakonhaegland/.cpan/sources/authors/id/G/GI/GIRAFFED/Curses-1.37.tar.gz ok
'YAML' not installed, will not store persistent state
Configuring G/GI/GIRAFFED/Curses-1.37.tar.gz with Makefile.PL
GEN    function:  not applicable
PANELS functions: not enabled
MENUS  functions: not enabled
FORMS  functions: not enabled

Making a guess for -I and -L/-l options...
Guesses:
  includes:    ''
  libs:        '-lcurses'
  Curses type: irrelevant
Making a guess for "c-config.h"...
Choosing hints file 'hints/c-darwin.h'
Checking if your kit is complete...
Looks good
Warning (mostly harmless): No library found for -lcurses
Generating a Unix-style Makefile
Writing Makefile for Curses
Writing MYMETA.yml and MYMETA.json
  GIRAFFED/Curses-1.37.tar.gz
  /usr/local/bin/perl5.33.5 Makefile.PL -- OK
Running make for G/GI/GIRAFFED/Curses-1.37.tar.gz
cp Curses.pm blib/lib/Curses.pm
Running Mkbootstrap for Curses ()
chmod 644 "Curses.bs"
"/usr/local/bin/perl5.33.5" -MExtUtils::Command::MM -e 'cp_nonempty' -- Curses.bs blib/arch/auto/Curses/Curses.bs 644
"/usr/local/bin/perl5.33.5" test.syms
Checking capabilities of the Ncurses libraries.
Set CURSES_VERBOSE environment variable to see the details of the tests.

Doing test compiles with the compile command 'cc -DSYM="_C_SYM_"  -fno-common -DPERL_DARWIN -mmacosx-version-min=11.1 -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -DPERL_USE_SAFE_PUTENV -Wno-error=implicit-function-declaration -o _C_FILE_ _C_FILE_.c  -L/usr/local/lib >/dev/null 2>&1'
function 'waddch' NOT found
function 'wechochar' NOT found
function 'waddchstr' NOT found
function 'waddchnstr' NOT found
function 'waddstr' NOT found
function 'waddnstr' NOT found
function 'wattroff' NOT found
function 'wattron' NOT found
function 'wattrset' NOT found
function 'wstandend' NOT found
function 'wstandout' NOT found
function 'wattr_get' NOT found
function 'wattr_off' NOT found
function 'wattr_on' NOT found
function 'wattr_set' NOT found
function 'wchgat' NOT found
function 'COLOR_PAIR' found
function 'PAIR_NUMBER' found
function 'beep' NOT found
function 'flash' NOT found
function 'wbkgd' NOT found
function 'wbkgdset' NOT found
function 'getbkgd' NOT found
function 'wborder' NOT found
function 'box' NOT found
function 'whline' NOT found
function 'wvline' NOT found
function 'werase' NOT found
function 'wclear' NOT found
function 'wclrtobot' NOT found
function 'wclrtoeol' NOT found
function 'start_color' NOT found
function 'init_pair' NOT found
function 'init_color' NOT found
function 'has_colors' NOT found
function 'can_change_color' NOT found
function 'color_content' NOT found
function 'pair_content' NOT found
function 'wdelch' NOT found
function 'wdeleteln' NOT found
function 'winsdelln' NOT found
function 'winsertln' NOT found
function 'wgetch' NOT found
function 'ungetch' NOT found
function 'has_key' NOT found
function 'KEY_F' found
function 'wgetstr' NOT found
function 'wgetnstr' NOT found
function 'getyx' NOT found
function 'getparyx' NOT found
function 'getbegyx' NOT found
function 'getmaxyx' NOT found
function 'winch' NOT found
function 'winchstr' NOT found
function 'winchnstr' NOT found
function 'initscr' NOT found
function 'endwin' NOT found
function 'isendwin' NOT found
function 'newterm' NOT found
function 'set_term' NOT found
function 'delscreen' NOT found
function 'cbreak' NOT found
function 'cbreak' returns void
function 'nocbreak' NOT found
function 'nocbreak' returns void
function 'echo' NOT found
function 'echo' returns void
function 'noecho' NOT found
function 'noecho' returns void
function 'halfdelay' NOT found
function 'intrflush' NOT found
function 'keypad' NOT found
function 'meta' NOT found
function 'nodelay' NOT found
function 'notimeout' NOT found
function 'raw' NOT found
function 'raw' returns void
function 'noraw' NOT found
function 'noraw' returns void
function 'qiflush' NOT found
function 'noqiflush' NOT found
function 'wtimeout' NOT found
function 'typeahead' NOT found
function 'winsch' NOT found
function 'winsstr' NOT found
function 'winsnstr' NOT found
function 'winstr' NOT found
function 'winnstr' NOT found
function 'def_prog_mode' NOT found
function 'def_shell_mode' NOT found
function 'reset_prog_mode' NOT found
function 'reset_shell_mode' NOT found
function 'resetty' NOT found
function 'savetty' NOT found
function 'getsyx' NOT found
function 'getsyx' returns void
function 'setsyx' NOT found
function 'setsyx' returns void
function 'curs_set' NOT found
function 'napms' NOT found
function 'wmove' NOT found
function 'clearok' NOT found
function 'idlok' NOT found
function 'idlok' returns void
function 'idcok' NOT found
function 'immedok' NOT found
function 'leaveok' NOT found
function 'wsetscrreg' NOT found
function 'scrollok' NOT found
function 'nl' NOT found
function 'nl' returns void
function 'nonl' NOT found
function 'nonl' returns void
function 'overlay' NOT found
function 'overwrite' NOT found
function 'copywin' NOT found
function 'newpad' NOT found
function 'subpad' NOT found
function 'prefresh' NOT found
function 'pnoutrefresh' NOT found
function 'pechochar' NOT found
function 'wrefresh' NOT found
function 'wnoutrefresh' NOT found
function 'doupdate' NOT found
function 'redrawwin' NOT found
function 'wredrawln' NOT found
function 'scr_dump' NOT found
function 'scr_restore' NOT found
function 'scr_init' NOT found
function 'scr_set' NOT found
function 'scroll' NOT found
function 'wscrl' NOT found
function 'slk_init' NOT found
function 'slk_set' NOT found
function 'slk_refresh' NOT found
function 'slk_noutrefresh' NOT found
function 'slk_label' NOT found
function 'slk_clear' NOT found
function 'slk_restore' NOT found
function 'slk_touch' NOT found
function 'slk_attron' NOT found
function 'slk_attrset' NOT found
function 'slk_attr' NOT found
function 'slk_attroff' NOT found
function 'slk_color' NOT found
function 'baudrate' NOT found
function 'erasechar' NOT found
function 'has_ic' NOT found
function 'has_il' NOT found
function 'killchar' NOT found
function 'termattrs' NOT found
function 'termname' NOT found
function 'touchwin' NOT found
function 'untouchwin' NOT found
function 'wtouchln' NOT found
function 'is_linetouched' NOT found
function 'is_wintouched' NOT found
function 'unctrl' NOT found
function 'keyname' NOT found
function 'filter' NOT found
function 'filter' returns void
function 'use_env' NOT found
function 'putwin' NOT found
function 'getwin' NOT found
function 'delay_output' NOT found
function 'flushinp' NOT found
function 'newwin' NOT found
function 'delwin' NOT found
function 'mvwin' NOT found
function 'subwin' NOT found
function 'derwin' NOT found
function 'mvderwin' NOT found
function 'dupwin' NOT found
function 'wsyncup' NOT found
function 'syncok' NOT found
function 'wcursyncup' NOT found
function 'wsyncdown' NOT found
function 'getmouse' NOT found
function 'ungetmouse' NOT found
function 'mousemask' NOT found
function 'wenclose' NOT found
function 'wmouse_trafo' NOT found
function 'mouseinterval' NOT found
function 'BUTTON_RELEASE' found
function 'BUTTON_PRESS' found
function 'BUTTON_CLICK' found
function 'BUTTON_DOUBLE_CLICK' found
function 'BUTTON_TRIPLE_CLICK' found
function 'BUTTON_RESERVED_EVENT' found
Negative repeat count does nothing at test.syms line 272, <IN> line 196.
function 'use_default_colors' NOT found
function 'assume_default_colors' NOT found
Negative repeat count does nothing at test.syms line 272, <IN> line 198.
function 'define_key' NOT found
function 'keybound' NOT found
function 'keyok' NOT found
function 'resizeterm' NOT found
function 'wresize' NOT found
function 'getmaxy' NOT found
function 'getmaxx' NOT found
function 'flusok' NOT found
function 'getcap' NOT found
function 'touchoverlap' NOT found
function 'new_panel' NOT found
function 'bottom_panel' NOT found
function 'top_panel' NOT found
function 'show_panel' NOT found
function 'update_panels' NOT found
function 'hide_panel' NOT found
function 'panel_window' NOT found
function 'replace_panel' NOT found
function 'move_panel' NOT found
function 'panel_hidden' NOT found
function 'panel_above' NOT found
function 'panel_below' NOT found
function 'set_panel_userptr' NOT found
function 'panel_userptr' NOT found
function 'del_panel' NOT found
function 'set_menu_fore' NOT found
function 'menu_fore' NOT found
function 'set_menu_back' NOT found
function 'menu_back' NOT found
function 'set_menu_grey' NOT found
function 'menu_grey' NOT found
function 'set_menu_pad' NOT found
function 'menu_pad' NOT found
function 'pos_menu_cursor' NOT found
function 'menu_driver' NOT found
function 'set_menu_format' NOT found
function 'menu_format' NOT found
function 'set_menu_items' NOT found
function 'menu_items' NOT found
function 'item_count' NOT found
function 'set_menu_mark' NOT found
function 'menu_mark' NOT found
function 'new_menu' NOT found
function 'free_menu' NOT found
function 'menu_opts' NOT found
function 'set_menu_opts' NOT found
function 'menu_opts_on' NOT found
function 'menu_opts_off' NOT found
function 'set_menu_pattern' NOT found
function 'menu_pattern' NOT found
function 'post_menu' NOT found
function 'unpost_menu' NOT found
function 'set_menu_userptr' NOT found
function 'menu_userptr' NOT found
function 'set_menu_win' NOT found
function 'menu_win' NOT found
function 'set_menu_sub' NOT found
function 'menu_sub' NOT found
function 'scale_menu' NOT found
function 'set_current_item' NOT found
function 'current_item' NOT found
function 'set_top_row' NOT found
function 'top_row' NOT found
function 'item_index' NOT found
function 'item_name' NOT found
function 'item_description' NOT found
function 'new_item' NOT found
function 'free_item' NOT found
function 'set_item_opts' NOT found
function 'item_opts_on' NOT found
function 'item_opts_off' NOT found
function 'item_opts' NOT found
function 'item_userptr' NOT found
function 'set_item_userptr' NOT found
function 'set_item_value' NOT found
function 'item_value' NOT found
function 'item_visible' NOT found
function 'menu_request_name' NOT found
function 'menu_request_by_name' NOT found
Negative repeat count does nothing at test.syms line 272, <IN> line 277.
function 'set_menu_spacing' NOT found
function 'menu_spacing' NOT found
function 'pos_form_cursor' NOT found
function 'data_ahead' NOT found
function 'data_behind' NOT found
function 'form_driver' NOT found
function 'set_form_fields' NOT found
function 'form_fields' NOT found
function 'field_count' NOT found
function 'move_field' NOT found
function 'new_form' NOT found
function 'free_form' NOT found
function 'set_new_page' NOT found
function 'new_page' NOT found
function 'set_form_opts' NOT found
function 'form_opts_on' NOT found
function 'form_opts_off' NOT found
function 'form_opts' NOT found
function 'set_current_field' NOT found
function 'current_field' NOT found
function 'set_form_page' NOT found
function 'form_page' NOT found
function 'field_index' NOT found
function 'post_form' NOT found
function 'unpost_form' NOT found
function 'set_form_userptr' NOT found
function 'form_userptr' NOT found
function 'set_form_win' NOT found
function 'form_win' NOT found
function 'set_form_sub' NOT found
function 'form_sub' NOT found
function 'scale_form' NOT found
function 'set_field_fore' NOT found
function 'field_fore' NOT found
function 'set_field_back' NOT found
function 'field_back' NOT found
function 'set_field_pad' NOT found
function 'field_pad' NOT found
function 'set_field_buffer' NOT found
function 'field_buffer' NOT found
function 'set_field_status' NOT found
function 'field_status' NOT found
function 'set_max_field' NOT found
function 'field_info' NOT found
function 'dynamic_field_info' NOT found
function 'set_field_just' NOT found
function 'field_just' NOT found
function 'new_field' NOT found
function 'dup_field' NOT found
function 'link_field' NOT found
function 'free_field' NOT found
function 'set_field_opts' NOT found
function 'field_opts_on' NOT found
function 'field_opts_off' NOT found
function 'field_opts' NOT found
function 'set_field_userptr' NOT found
function 'field_userptr' NOT found
function 'field_arg' NOT found
function 'form_request_name' NOT found
function 'form_request_by_name' NOT found
Negative repeat count does nothing at test.syms line 272, <IN> line 337.
variable 'LINES' found
variable 'COLS' found
variable 'stdscr' found
variable 'curscr' found
variable 'COLORS' found
variable 'COLOR_PAIRS' found
typedef 'attr_t' found
typedef 'bool' found
typedef 'chtype' found
typedef 'MEVENT' found
typedef 'mmask_t' found
typedef 'SCREEN' found
function 'waddnwstr' NOT found
function 'wget_wch' NOT found
function 'wgetn_wstr' NOT found
function 'winnwstr' NOT found
function 'wins_nwstr' NOT found
function 'unget_wch' NOT found
cc -c   -fno-common -DPERL_DARWIN -mmacosx-version-min=11.1 -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -DPERL_USE_SAFE_PUTENV -Wno-error=implicit-function-declaration -O3   -DVERSION=\"1.37\" -DXS_VERSION=\"1.37\"  "-I/usr/local/lib/perl5/5.33.5/darwin-2level/CORE"   Curses.c
rm -f blib/arch/auto/Curses/Curses.bundle
cc  -mmacosx-version-min=11.1 -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector-strong  Curses.o  -o blib/arch/auto/Curses/Curses.bundle  \
	      \

chmod 755 blib/arch/auto/Curses/Curses.bundle
Manifying 1 pod document
  GIRAFFED/Curses-1.37.tar.gz
  /usr/bin/make -- OK
The current configuration of allow_installing_outdated_dists is 'ask/yes', but for this option we would need 'CPAN::DistnameInfo' installed. Please install 'CPAN::DistnameInfo' as soon as possible. As long as we are not equipped with 'CPAN::DistnameInfo' this option does not take effect
Running make test for GIRAFFED/Curses-1.37.tar.gz
"/usr/local/bin/perl5.33.5" -MExtUtils::Command::MM -e 'cp_nonempty' -- Curses.bs blib/arch/auto/Curses/Curses.bs 644
PERL_DL_NONLAZY=1 "/usr/local/bin/perl5.33.5" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00-load.t .. 1/1
#   Failed test 'use Curses;'
#   at t/00-load.t line 6.
#     Tried to use 'Curses'.
#     Error:  Can't load '/Users/hakonhaegland/.cpan/build/Curses-1.37-0/blib/arch/auto/Curses/Curses.bundle' for module Curses: dlopen(/Users/hakonhaegland/.cpan/build/Curses-1.37-0/blib/arch/auto/Curses/Curses.bundle, 2): Symbol not found: _COLORS
#   Referenced from: /Users/hakonhaegland/.cpan/build/Curses-1.37-0/blib/arch/auto/Curses/Curses.bundle
#   Expected in: flat namespace
#  in /Users/hakonhaegland/.cpan/build/Curses-1.37-0/blib/arch/auto/Curses/Curses.bundle at /usr/local/lib/perl5/5.33.5/darwin-2level/DynaLoader.pm line 197.
#  at t/00-load.t line 6.
# Compilation failed in require at t/00-load.t line 6.
# BEGIN failed--compilation aborted at t/00-load.t line 6.
# Testing Curses 1.37, Perl 5.033005
# Looks like you failed 1 test of 1.
t/00-load.t .. Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests

Test Summary Report
-------------------
t/00-load.t (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
Files=1, Tests=1,  1 wallclock secs ( 0.04 usr  0.02 sys +  0.09 cusr  0.03 csys =  0.18 CPU)
Result: FAIL
Failed 1/1 test programs. 1/1 subtests failed.
make: *** [test_dynamic] Error 1
  GIRAFFED/Curses-1.37.tar.gz
  /usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
  reports GIRAFFED/Curses-1.37.tar.gz

@Leont
Copy link
Contributor Author

Leont commented Dec 18, 2020

And now?

@hakonhagland
Copy link
Contributor

It works now:

$ git clone https://github.com/Perl/perl5.git
$  cd perl5
$ git fetch origin pull/18407/head:bigsur
$ git checkout bigsur
$ sh Configure -Dprefix=/Users/hakonhaegland/perls -de -Dusedevel
$ make
$ make test
[...]
t/porting/readme ................................................. ok
t/porting/regen .................................................. ok
t/porting/ss_dup ................................................. ok
t/porting/test_bootstrap ......................................... ok
t/porting/utils .................................................. ok
All tests successful.
Elapsed: 3180 sec
u=12.40  s=8.08  cu=688.83  cs=104.59  scripts=2452  tests=1184689
$ make install
$  /Users/hakonhaegland/perls/bin/cpan5.33.5 Curses
Loading internal logger. Log::Log4perl recommended for better logging
Reading '/Users/hakonhaegland/.cpan/Metadata'
  Database was generated on Fri, 18 Dec 2020 10:55:36 GMT
Running install for module 'Curses'
Checksum for /Users/hakonhaegland/.cpan/sources/authors/id/G/GI/GIRAFFED/Curses-1.37.tar.gz ok
'YAML' not installed, will not store persistent state
Configuring G/GI/GIRAFFED/Curses-1.37.tar.gz with Makefile.PL
GEN    function:  not applicable
PANELS functions: not enabled
MENUS  functions: not enabled
FORMS  functions: not enabled

Making a guess for -I and -L/-l options...
Guesses:
  includes:    ''
  libs:        '-lcurses'
  Curses type: irrelevant
Making a guess for "c-config.h"...
Choosing hints file 'hints/c-darwin.h'
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Curses
Writing MYMETA.yml and MYMETA.json
  GIRAFFED/Curses-1.37.tar.gz
  /Users/hakonhaegland/perls/bin/perl5.33.5 Makefile.PL -- OK
Running make for G/GI/GIRAFFED/Curses-1.37.tar.gz
cp Curses.pm blib/lib/Curses.pm
Running Mkbootstrap for Curses ()
chmod 644 "Curses.bs"
"/Users/hakonhaegland/perls/bin/perl5.33.5" -MExtUtils::Command::MM -e 'cp_nonempty' -- Curses.bs blib/arch/auto/Curses/Curses.bs 644
"/Users/hakonhaegland/perls/bin/perl5.33.5" test.syms
Checking capabilities of the Ncurses libraries.
Set CURSES_VERBOSE environment variable to see the details of the tests.

Doing test compiles with the compile command 'cc -DSYM="_C_SYM_"  -fno-common -DPERL_DARWIN -mmacosx-version-min=11.1 -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -DPERL_USE_SAFE_PUTENV -Wno-error=implicit-function-declaration -o _C_FILE_ _C_FILE_.c  -L/usr/local/lib -lcurses>/dev/null 2>&1'
function 'waddch' found
function 'wechochar' found
function 'waddchstr' found
function 'waddchnstr' found
function 'waddstr' found
function 'waddnstr' found
function 'wattroff' found
function 'wattron' found
function 'wattrset' found
function 'wstandend' found
function 'wstandout' found
function 'wattr_get' found
function 'wattr_off' found
function 'wattr_on' found
function 'wattr_set' found
function 'wchgat' found
function 'COLOR_PAIR' found
function 'PAIR_NUMBER' found
function 'beep' found
function 'flash' found
function 'wbkgd' found
function 'wbkgdset' found
function 'getbkgd' found
function 'wborder' found
function 'box' found
function 'whline' found
function 'wvline' found
function 'werase' found
function 'wclear' found
function 'wclrtobot' found
function 'wclrtoeol' found
function 'start_color' found
function 'init_pair' found
function 'init_color' found
function 'has_colors' found
function 'can_change_color' found
function 'color_content' found
function 'pair_content' found
function 'wdelch' found
function 'wdeleteln' found
function 'winsdelln' found
function 'winsertln' found
function 'wgetch' found
function 'ungetch' found
function 'has_key' found
function 'KEY_F' found
function 'wgetstr' found
function 'wgetnstr' found
function 'getyx' found
function 'getparyx' found
function 'getbegyx' found
function 'getmaxyx' found
function 'winch' found
function 'winchstr' found
function 'winchnstr' found
function 'initscr' found
function 'endwin' found
function 'isendwin' found
function 'newterm' found
function 'set_term' found
function 'delscreen' found
function 'cbreak' found
function 'cbreak' returns int
function 'nocbreak' found
function 'nocbreak' returns int
function 'echo' found
function 'echo' returns int
function 'noecho' found
function 'noecho' returns int
function 'halfdelay' found
function 'intrflush' found
function 'keypad' found
function 'meta' found
function 'nodelay' found
function 'notimeout' found
function 'raw' found
function 'raw' returns int
function 'noraw' found
function 'noraw' returns int
function 'qiflush' found
function 'noqiflush' found
function 'wtimeout' found
function 'typeahead' found
function 'winsch' found
function 'winsstr' found
function 'winsnstr' found
function 'winstr' found
function 'winnstr' found
function 'def_prog_mode' found
function 'def_shell_mode' found
function 'reset_prog_mode' found
function 'reset_shell_mode' found
function 'resetty' found
function 'savetty' found
function 'getsyx' found
function 'getsyx' returns void
function 'setsyx' found
function 'setsyx' returns void
function 'curs_set' found
function 'napms' found
function 'wmove' found
function 'clearok' found
function 'idlok' found
function 'idlok' returns int
function 'idcok' found
function 'immedok' found
function 'leaveok' found
function 'wsetscrreg' found
function 'scrollok' found
function 'nl' found
function 'nl' returns int
function 'nonl' found
function 'nonl' returns int
function 'overlay' found
function 'overwrite' found
function 'copywin' found
function 'newpad' found
function 'subpad' found
function 'prefresh' found
function 'pnoutrefresh' found
function 'pechochar' found
function 'wrefresh' found
function 'wnoutrefresh' found
function 'doupdate' found
function 'redrawwin' found
function 'wredrawln' found
function 'scr_dump' found
function 'scr_restore' found
function 'scr_init' found
function 'scr_set' found
function 'scroll' found
function 'wscrl' found
function 'slk_init' found
function 'slk_set' found
function 'slk_refresh' found
function 'slk_noutrefresh' found
function 'slk_label' found
function 'slk_clear' found
function 'slk_restore' found
function 'slk_touch' found
function 'slk_attron' found
function 'slk_attrset' found
function 'slk_attr' found
function 'slk_attroff' found
function 'slk_color' found
function 'baudrate' found
function 'erasechar' found
function 'has_ic' found
function 'has_il' found
function 'killchar' found
function 'termattrs' found
function 'termname' found
function 'touchwin' found
function 'untouchwin' found
function 'wtouchln' found
function 'is_linetouched' found
function 'is_wintouched' found
function 'unctrl' found
function 'keyname' found
function 'filter' found
function 'filter' returns void
function 'use_env' found
function 'putwin' found
function 'getwin' found
function 'delay_output' found
function 'flushinp' found
function 'newwin' found
function 'delwin' found
function 'mvwin' found
function 'subwin' found
function 'derwin' found
function 'mvderwin' found
function 'dupwin' found
function 'wsyncup' found
function 'syncok' found
function 'wcursyncup' found
function 'wsyncdown' found
function 'getmouse' found
function 'ungetmouse' found
function 'mousemask' found
function 'wenclose' found
function 'wmouse_trafo' found
function 'mouseinterval' found
function 'BUTTON_RELEASE' found
function 'BUTTON_PRESS' found
function 'BUTTON_CLICK' found
function 'BUTTON_DOUBLE_CLICK' found
function 'BUTTON_TRIPLE_CLICK' found
function 'BUTTON_RESERVED_EVENT' found
Negative repeat count does nothing at test.syms line 272, <IN> line 196.
function 'use_default_colors' found
function 'assume_default_colors' found
Negative repeat count does nothing at test.syms line 272, <IN> line 198.
function 'define_key' found
function 'keybound' found
function 'keyok' found
function 'resizeterm' found
function 'wresize' found
function 'getmaxy' found
function 'getmaxx' found
function 'flusok' NOT found
function 'getcap' NOT found
function 'touchoverlap' NOT found
function 'new_panel' NOT found
function 'bottom_panel' NOT found
function 'top_panel' NOT found
function 'show_panel' NOT found
function 'update_panels' NOT found
function 'hide_panel' NOT found
function 'panel_window' NOT found
function 'replace_panel' NOT found
function 'move_panel' NOT found
function 'panel_hidden' NOT found
function 'panel_above' NOT found
function 'panel_below' NOT found
function 'set_panel_userptr' NOT found
function 'panel_userptr' NOT found
function 'del_panel' NOT found
function 'set_menu_fore' NOT found
function 'menu_fore' NOT found
function 'set_menu_back' NOT found
function 'menu_back' NOT found
function 'set_menu_grey' NOT found
function 'menu_grey' NOT found
function 'set_menu_pad' NOT found
function 'menu_pad' NOT found
function 'pos_menu_cursor' NOT found
function 'menu_driver' NOT found
function 'set_menu_format' NOT found
function 'menu_format' NOT found
function 'set_menu_items' NOT found
function 'menu_items' NOT found
function 'item_count' NOT found
function 'set_menu_mark' NOT found
function 'menu_mark' NOT found
function 'new_menu' NOT found
function 'free_menu' NOT found
function 'menu_opts' NOT found
function 'set_menu_opts' NOT found
function 'menu_opts_on' NOT found
function 'menu_opts_off' NOT found
function 'set_menu_pattern' NOT found
function 'menu_pattern' NOT found
function 'post_menu' NOT found
function 'unpost_menu' NOT found
function 'set_menu_userptr' NOT found
function 'menu_userptr' NOT found
function 'set_menu_win' NOT found
function 'menu_win' NOT found
function 'set_menu_sub' NOT found
function 'menu_sub' NOT found
function 'scale_menu' NOT found
function 'set_current_item' NOT found
function 'current_item' NOT found
function 'set_top_row' NOT found
function 'top_row' NOT found
function 'item_index' NOT found
function 'item_name' NOT found
function 'item_description' NOT found
function 'new_item' NOT found
function 'free_item' NOT found
function 'set_item_opts' NOT found
function 'item_opts_on' NOT found
function 'item_opts_off' NOT found
function 'item_opts' NOT found
function 'item_userptr' NOT found
function 'set_item_userptr' NOT found
function 'set_item_value' NOT found
function 'item_value' NOT found
function 'item_visible' NOT found
function 'menu_request_name' NOT found
function 'menu_request_by_name' NOT found
Negative repeat count does nothing at test.syms line 272, <IN> line 277.
function 'set_menu_spacing' NOT found
function 'menu_spacing' NOT found
function 'pos_form_cursor' NOT found
function 'data_ahead' NOT found
function 'data_behind' NOT found
function 'form_driver' NOT found
function 'set_form_fields' NOT found
function 'form_fields' NOT found
function 'field_count' NOT found
function 'move_field' NOT found
function 'new_form' NOT found
function 'free_form' NOT found
function 'set_new_page' NOT found
function 'new_page' NOT found
function 'set_form_opts' NOT found
function 'form_opts_on' NOT found
function 'form_opts_off' NOT found
function 'form_opts' NOT found
function 'set_current_field' NOT found
function 'current_field' NOT found
function 'set_form_page' NOT found
function 'form_page' NOT found
function 'field_index' NOT found
function 'post_form' NOT found
function 'unpost_form' NOT found
function 'set_form_userptr' NOT found
function 'form_userptr' NOT found
function 'set_form_win' NOT found
function 'form_win' NOT found
function 'set_form_sub' NOT found
function 'form_sub' NOT found
function 'scale_form' NOT found
function 'set_field_fore' NOT found
function 'field_fore' NOT found
function 'set_field_back' NOT found
function 'field_back' NOT found
function 'set_field_pad' NOT found
function 'field_pad' NOT found
function 'set_field_buffer' NOT found
function 'field_buffer' NOT found
function 'set_field_status' NOT found
function 'field_status' NOT found
function 'set_max_field' NOT found
function 'field_info' NOT found
function 'dynamic_field_info' NOT found
function 'set_field_just' NOT found
function 'field_just' NOT found
function 'new_field' NOT found
function 'dup_field' NOT found
function 'link_field' NOT found
function 'free_field' NOT found
function 'set_field_opts' NOT found
function 'field_opts_on' NOT found
function 'field_opts_off' NOT found
function 'field_opts' NOT found
function 'set_field_userptr' NOT found
function 'field_userptr' NOT found
function 'field_arg' NOT found
function 'form_request_name' NOT found
function 'form_request_by_name' NOT found
Negative repeat count does nothing at test.syms line 272, <IN> line 337.
variable 'LINES' found
variable 'COLS' found
variable 'stdscr' found
variable 'curscr' found
variable 'COLORS' found
variable 'COLOR_PAIRS' found
typedef 'attr_t' found
typedef 'bool' found
typedef 'chtype' found
typedef 'MEVENT' found
typedef 'mmask_t' found
typedef 'SCREEN' found
function 'waddnwstr' found
function 'wget_wch' found
function 'wgetn_wstr' found
function 'winnwstr' found
function 'wins_nwstr' found
function 'unget_wch' found
cc -c   -fno-common -DPERL_DARWIN -mmacosx-version-min=11.1 -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -DPERL_USE_SAFE_PUTENV -Wno-error=implicit-function-declaration -O3   -DVERSION=\"1.37\" -DXS_VERSION=\"1.37\"  "-I/Users/hakonhaegland/perls/lib/5.33.5/darwin-2level/CORE"   Curses.c
rm -f blib/arch/auto/Curses/Curses.bundle
LD_RUN_PATH="/usr/lib" cc  -mmacosx-version-min=11.1 -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector-strong  Curses.o  -o blib/arch/auto/Curses/Curses.bundle  \
	   -lcurses   \

chmod 755 blib/arch/auto/Curses/Curses.bundle
Manifying 1 pod document
  GIRAFFED/Curses-1.37.tar.gz
  /usr/bin/make -- OK
The current configuration of allow_installing_outdated_dists is 'ask/yes', but for this option we would need 'CPAN::DistnameInfo' installed. Please install 'CPAN::DistnameInfo' as soon as possible. As long as we are not equipped with 'CPAN::DistnameInfo' this option does not take effect
Running make test for GIRAFFED/Curses-1.37.tar.gz
"/Users/hakonhaegland/perls/bin/perl5.33.5" -MExtUtils::Command::MM -e 'cp_nonempty' -- Curses.bs blib/arch/auto/Curses/Curses.bs 644
PERL_DL_NONLAZY=1 "/Users/hakonhaegland/perls/bin/perl5.33.5" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00-load.t .. 1/1 # Testing Curses 1.37, Perl 5.033005
t/00-load.t .. ok
All tests successful.
Files=1, Tests=1,  1 wallclock secs ( 0.04 usr  0.02 sys +  0.10 cusr  0.04 csys =  0.20 CPU)
Result: PASS
  GIRAFFED/Curses-1.37.tar.gz
  /usr/bin/make test -- OK
Running make install for GIRAFFED/Curses-1.37.tar.gz
"/Users/hakonhaegland/perls/bin/perl5.33.5" -MExtUtils::Command::MM -e 'cp_nonempty' -- Curses.bs blib/arch/auto/Curses/Curses.bs 644
Manifying 1 pod document
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /Users/hakonhaegland/perls/lib/site_perl/5.33.5/darwin-2level/auto/Curses/Curses.bundle
Installing /Users/hakonhaegland/perls/lib/site_perl/5.33.5/darwin-2level/Curses.pm
Installing /Users/hakonhaegland/perls/man/man3/Curses.3
Appending installation info to /Users/hakonhaegland/perls/lib/5.33.5/darwin-2level/perllocal.pod
  GIRAFFED/Curses-1.37.tar.gz
  /usr/bin/make install  -- OK

@hakonhagland
Copy link
Contributor

@Leont See also Can't install XML::Parser on M1 Mac with homebrew perl 5.32. Do you know which commit fixed the issue with adding explicit linker flags in Big Sur for MakeMaker?

@Leont Leont removed do not merge Don't merge this PR, at least for now hasConflicts labels Dec 22, 2020
@Leont Leont marked this pull request as ready for review December 22, 2020 14:44
A number of system libraries no longer exist as actual files, even
though dlopen will pretend they do, so now we fall back to dlopen if
a library file can not be found.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants