Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.96k stars 555 forks source link

Can't load './XSTest.bundle' for module XSTest: dlopen(./XSTest.bundle, 1): no suitable image found. #17859

Open hakonhagland opened 4 years ago

hakonhagland commented 4 years ago

I am trying to install Alien::GSL on macOS Catalina 10.15 using cpanm Alien::GSL and it aborts with error:

==> Found dependencies: ExtUtils::ParseXS
--> Working on ExtUtils::ParseXS
Fetching http://www.cpan.org/authors/id/S/SM/SMUELLER/ExtUtils-ParseXS-3.35.tar.gz ... OK
Configuring ExtUtils-ParseXS-3.35 ... OK
Building and testing ExtUtils-ParseXS-3.35 ... FAIL
! Installing ExtUtils::ParseXS failed. See /Users/hakonhaegland/.cpanm/work/1591973800.3440/build.log for details. Retry with --force to force install it.
! Installing the dependencies failed: Installed version (3.18) of ExtUtils::ParseXS is not in range '3.30'
! Bailing out the installation for Alien-Build-2.25.

I downloaded the ExtUtils::ParseXS distribution from metacpan:

wget https://cpan.metacpan.org/authors/id/S/SM/SMUELLER/ExtUtils-ParseXS-3.35.tar.gz 

and run

tar zxvf ExtUtils-ParseXS-3.35.tar.gz
cd ExtUtils-ParseXS-3.35
perl Makefile.PL
make
make test

and observed that the first test t/001-basic.t failed. Reproduced below:

 perl -Mblib t/001-basic.t
1..17
ok 1 - require ExtUtils::ParseXS;
ok 2 - Test that output contains some text
ok 3 - Create an output file
cc -iwithsysroot /System/Library/Perl/5.18/darwin-thread-multi-2level/CORE -c -arch x86_64 -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector -Os -o XSTest.o XSTest.c
ok 4 - ExtUtils::CBuilder::compile() returned true value
ok 5 - Make sure XSTest.o exists
env LD_RUN_PATH=/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE cc -arch x86_64 -bundle -undefined dynamic_lookup -fstack-protector -o XSTest.bundle XSTest.o
ok 6 - ExtUtils::CBuilder::link() returned true value
ok 7 - Make sure XSTest.bundle exists
not ok 8 - No error message recorded, as expected
#   Failed test 'No error message recorded, as expected'
#   at t/001-basic.t line 61.
#          got: 'Can't load './XSTest.bundle' for module XSTest: dlopen(./XSTest.bundle, 1): no suitable image found.  Did find:
#   file system relative paths not allowed in hardened programs at /System/Library/Perl/5.18/darwin-thread-multi-2level/DynaLoader.pm line 194.
#  at t/001-basic.t line 60.
# Compilation failed in require at t/001-basic.t line 60.
# '
#     expected: ''
Undefined subroutine &XSTest::is_even called at t/001-basic.t line 62.
# Looks like you planned 17 tests but ran 8.
# Looks like you failed 1 test of 8 run.
# Looks like your test exited with 2 just after 8.

Output from perlbug -vd :

---
Flags:
    category=core
    severity=low
---
Site configuration information for perl 5.18.4:

Configured by _securityagent at Fri Feb 28 22:44:30 PST 2020.

Summary of my perl5 (revision 5 version 18 subversion 4) configuration:

  Platform:
    osname=darwin, osvers=19.0, archname=darwin-thread-multi-2level
    uname='darwin osx310.apple.com 19.0 darwin kernel version 18.0.0: tue jul 9 11:12:08 pdt 2019; root:xnu-4903.201.2.100.7~1release_x86_64 x86_64 '
    config_args='-ds -e -Dprefix=/usr -Dccflags=-g  -pipe  -Dldflags= -Dman3ext=3pm -Duseithreads -Duseshrplib -Dinc_version_list=none -Dcc=cc'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-arch x86_64 -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector',
    optimize='-Os',
    cppflags='-g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector'
    ccversion='', gccversion='4.2.1 Compatible Apple LLVM 11.0.3 (clang-1103.0.29.20) (-macos10.15-objc-selector-opts)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags ='-arch x86_64 -fstack-protector'
    libpth=/usr/lib /usr/local/lib
    libs= 
    perllibs=
    libc=, so=dylib, useshrplib=true, libperl=libperl.dylib
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags='-arch x86_64 -bundle -undefined dynamic_lookup -fstack-protector'

Locally applied patches:
    /Library/Perl/Updates/<version> comes before system perl directories
    installprivlib and installarchlib points to the Updates directory

---
@INC for perl 5.18.4:
    /Library/Perl/5.18/darwin-thread-multi-2level
    /Library/Perl/5.18
    /Network/Library/Perl/5.18/darwin-thread-multi-2level
    /Network/Library/Perl/5.18
    /Library/Perl/Updates/5.18.4/darwin-thread-multi-2level
    /Library/Perl/Updates/5.18.4
    /System/Library/Perl/5.18/darwin-thread-multi-2level
    /System/Library/Perl/5.18
    /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level
    /System/Library/Perl/Extras/5.18
    .

---
Environment for perl 5.18.4:
    DYLD_LIBRARY_PATH (unset)
    HOME=/Users/hakonhaegland
    LANG (unset)
    LANGUAGE (unset)
    LC_CTYPE=UTF-8
    LC_TERMINAL=iTerm2
    LC_TERMINAL_VERSION=3.3.11
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/Users/hakonhaegland/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/mysql-8.0.19-macos10.15-x86_64/bin
    PERL_BADLANG (unset)
    SHELL=/bin/zsh

Complete configuration data for perl 5.18.4:

Author=''
CONFIG='true'
Date='$Date'
Header=''
Id='$Id'
LANG='C'
LC_ALL='C'
Locker=''
Log='$Log'
PATCHLEVEL='18'
PERL_API_REVISION='5'
PERL_API_SUBVERSION='0'
PERL_API_VERSION='18'
PERL_CONFIG_SH='true'
PERL_PATCHLEVEL=''
PERL_REVISION='5'
PERL_SUBVERSION='4'
PERL_VERSION='18'
RCSfile='$RCSfile'
Revision='$Revision'
SUBVERSION='4'
Source=''
State=''
_a='.a'
_exe=''
_o='.o'
_v_='5.18'
afs='false'
afsroot='/afs'
alignbytes='8'
ansi2knr=''
aphostname='/bin/hostname'
api_revision='5'
api_subversion='0'
api_version='18'
api_versionstring='5.18.0'
ar='ar'
archflags='-arch x86_64'
archlib='/System/Library/Perl/5.18/darwin-thread-multi-2level'
archlibexp='/System/Library/Perl/5.18/darwin-thread-multi-2level'
archname='darwin-thread-multi-2level'
archname64=''
archobjs=''
asctime_r_proto='REENTRANT_PROTO_B_SB'
awk='awk'
baserev='5.0'
bash=''
bin='/usr/bin'
bin_ELF=''
binexp='/usr/bin'
bison='bison'
bootstrap_charset=''
byacc='byacc'
byteorder='12345678'
c='\c'
castflags='0'
cat='cat'
cc='cc'
cccdlflags=' '
ccdlflags=' '
ccflags='-arch x86_64 -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector'
ccflags_nolargefiles='-arch x86_64 -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector'
ccflags_uselargefiles=''
ccname='gcc'
ccsymbols=''
ccversion=''
cf_by='_securityagent'
cf_email='_securityagent@osx310.apple.com'
cf_time='Fri Feb 28 22:44:30 PST 2020'
charbits='8'
charsize='1'
chgrp=''
chmod='chmod'
chown=''
clocktype='clock_t'
comm='comm'
compress=''
config_arg0='/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Binaries/perl/install/TempContent/Objects/5.18/perl/Configure'
config_arg1='-ds'
config_arg10='-Dcc=cc'
config_arg2='-e'
config_arg3='-Dprefix=/usr'
config_arg4='-Dccflags=-g  -pipe '
config_arg5='-Dldflags='
config_arg6='-Dman3ext=3pm'
config_arg7='-Duseithreads'
config_arg8='-Duseshrplib'
config_arg9='-Dinc_version_list=none'
config_argc='10'
config_args='-ds -e -Dprefix=/usr -Dccflags=-g  -pipe  -Dldflags= -Dman3ext=3pm -Duseithreads -Duseshrplib -Dinc_version_list=none -Dcc=cc'
contains='grep'
cp='cp'
cpio=''
cpp='cpp'
cpp_stuff='42'
cppccsymbols=''
cppflags='-g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector'
cpplast='-'
cppminus='-'
cpprun='cc -E'
cppstdin='cc -E'
cppsymbols='_LP64=1 __GNUC_MINOR__=2 __GNUC__=4 __LITTLE_ENDIAN__=1 __LP64__=1 __MACH__=1 __PIC__=2 __STDC__=1 __amd64=1 __amd64__=1 __pic__=2 __x86_64=1 __x86_64__=1'
crypt_r_proto='0'
cryptlib=''
csh='csh'
ctermid_r_proto='REENTRANT_PROTO_B_B'
ctime_r_proto='REENTRANT_PROTO_B_SB'
d_Gconvert='sprintf((b),"%.*g",(n),(x))'
d_PRIEUldbl='define'
d_PRIFUldbl='define'
d_PRIGUldbl='define'
d_PRIXU64='define'
d_PRId64='define'
d_PRIeldbl='define'
d_PRIfldbl='define'
d_PRIgldbl='define'
d_PRIi64='define'
d_PRIo64='define'
d_PRIu64='define'
d_PRIx64='define'
d_SCNfldbl='define'
d__fwalk=''
d_access='define'
d_accessx=''
d_aintl=''
d_alarm='define'
d_archlib='define'
d_asctime64=''
d_asctime_r='define'
d_atolf=''
d_atoll='define'
d_attribute_deprecated='define'
d_attribute_format='define'
d_attribute_malloc='define'
d_attribute_nonnull='define'
d_attribute_noreturn='define'
d_attribute_pure='define'
d_attribute_unused='define'
d_attribute_warn_unused_result='define'
d_bcmp='define'
d_bcopy='define'
d_bsd='define'
d_bsdgetpgrp=''
d_bsdsetpgrp=''
d_builtin_choose_expr='define'
d_builtin_expect='define'
d_bzero='define'
d_c99_variadic_macros='define'
d_casti32=''
d_castneg='define'
d_charvspr=''
d_chown='define'
d_chroot='define'
d_chsize=''
d_class=''
d_clearenv=''
d_closedir='define'
d_cmsghdr_s='define'
d_const='define'
d_copysignl='define'
d_cplusplus=''
d_crypt='define'
d_crypt_r=''
d_csh='define'
d_ctermid='define'
d_ctermid_r='define'
d_ctime64=''
d_ctime_r='define'
d_cuserid=''
d_dbl_dig='define'
d_dbminitproto=''
d_difftime='define'
d_difftime64=''
d_dir_dd_fd=''
d_dirfd='define'
d_dirnamlen='define'
d_dlerror='define'
d_dlopen='define'
d_dlsymun=''
d_dosuid=''
d_drand48_r=''
d_drand48proto='define'
d_dup2='define'
d_eaccess=''
d_endgrent='define'
d_endgrent_r=''
d_endhent='define'
d_endhostent_r=''
d_endnent='define'
d_endnetent_r=''
d_endpent='define'
d_endprotoent_r=''
d_endpwent='define'
d_endpwent_r=''
d_endsent='define'
d_endservent_r=''
d_eofnblk='define'
d_eunice=''
d_faststdio='define'
d_fchdir='define'
d_fchmod='define'
d_fchown='define'
d_fcntl='define'
d_fcntl_can_lock='define'
d_fd_macros='define'
d_fd_set='define'
d_fds_bits='define'
d_fgetpos='define'
d_finite='define'
d_finitel=''
d_flexfnam='define'
d_flock='define'
d_flockproto='define'
d_fork='define'
d_fp_class=''
d_fpathconf='define'
d_fpclass=''
d_fpclassify=''
d_fpclassl=''
d_fpos64_t=''
d_frexpl='define'
d_fs_data_s=''
d_fseeko='define'
d_fsetpos='define'
d_fstatfs='define'
d_fstatvfs='define'
d_fsync='define'
d_ftello='define'
d_ftime=''
d_futimes='define'
d_gdbm_ndbm_h_uses_prototypes=''
d_gdbmndbm_h_uses_prototypes=''
d_getaddrinfo='define'
d_getcwd='define'
d_getespwnam=''
d_getfsstat='define'
d_getgrent='define'
d_getgrent_r=''
d_getgrgid_r='define'
d_getgrnam_r='define'
d_getgrps='define'
d_gethbyaddr='define'
d_gethbyname='define'
d_gethent='define'
d_gethname='define'
d_gethostbyaddr_r=''
d_gethostbyname_r=''
d_gethostent_r=''
d_gethostprotos='define'
d_getitimer='define'
d_getlogin='define'
d_getlogin_r='define'
d_getmnt=''
d_getmntent=''
d_getnameinfo='define'
d_getnbyaddr='define'
d_getnbyname='define'
d_getnent='define'
d_getnetbyaddr_r=''
d_getnetbyname_r=''
d_getnetent_r=''
d_getnetprotos='define'
d_getpagsz='define'
d_getpbyname='define'
d_getpbynumber='define'
d_getpent='define'
d_getpgid='define'
d_getpgrp='define'
d_getpgrp2=''
d_getppid='define'
d_getprior='define'
d_getprotobyname_r=''
d_getprotobynumber_r=''
d_getprotoent_r=''
d_getprotoprotos='define'
d_getprpwnam=''
d_getpwent='define'
d_getpwent_r=''
d_getpwnam_r='define'
d_getpwuid_r='define'
d_getsbyname='define'
d_getsbyport='define'
d_getsent='define'
d_getservbyname_r=''
d_getservbyport_r=''
d_getservent_r=''
d_getservprotos='define'
d_getspnam=''
d_getspnam_r=''
d_gettimeod='define'
d_gmtime64=''
d_gmtime_r='define'
d_gnulibc=''
d_grpasswd='define'
d_hasmntopt=''
d_htonl='define'
d_ilogbl='define'
d_inc_version_list=''
d_index=''
d_inetaton='define'
d_inetntop='define'
d_inetpton='define'
d_int64_t='define'
d_ip_mreq='define'
d_ip_mreq_source='define'
d_ipv6_mreq='define'
d_ipv6_mreq_source=''
d_isascii='define'
d_isblank='define'
d_isfinite=''
d_isinf='define'
d_isnan='define'
d_isnanl=''
d_killpg='define'
d_lchown='define'
d_ldbl_dig='define'
d_libm_lib_version=''
d_link='define'
d_localtime64=''
d_localtime_r='define'
d_localtime_r_needs_tzset=''
d_locconv='define'
d_lockf='define'
d_longdbl='define'
d_longlong='define'
d_lseekproto='define'
d_lstat='define'
d_madvise='define'
d_malloc_good_size='define'
d_malloc_size='define'
d_mblen='define'
d_mbstowcs='define'
d_mbtowc='define'
d_memchr='define'
d_memcmp='define'
d_memcpy='define'
d_memmove='define'
d_memset='define'
d_mkdir='define'
d_mkdtemp='define'
d_mkfifo='define'
d_mkstemp='define'
d_mkstemps='define'
d_mktime='define'
d_mktime64=''
d_mmap='define'
d_modfl='define'
d_modfl_pow32_bug=''
d_modflproto='define'
d_mprotect='define'
d_msg='define'
d_msg_ctrunc='define'
d_msg_dontroute='define'
d_msg_oob='define'
d_msg_peek='define'
d_msg_proxy=''
d_msgctl='define'
d_msgget='define'
d_msghdr_s='define'
d_msgrcv='define'
d_msgsnd='define'
d_msync='define'
d_munmap='define'
d_mymalloc=''
d_ndbm='define'
d_ndbm_h_uses_prototypes='define'
d_nice='define'
d_nl_langinfo='define'
d_nv_preserves_uv=''
d_nv_zero_is_allbits_zero='define'
d_off64_t=''
d_old_pthread_create_joinable=''
d_oldpthreads=''
d_oldsock=''
d_open3='define'
d_pathconf='define'
d_pause='define'
d_perl_otherlibdirs=''
d_phostname=''
d_pipe='define'
d_poll=''
d_portable='define'
d_prctl=''
d_prctl_set_name=''
d_printf_format_null='define'
d_procselfexe=''
d_pseudofork=''
d_pthread_atfork='define'
d_pthread_attr_setscope='define'
d_pthread_yield=''
d_pwage=''
d_pwchange='define'
d_pwclass='define'
d_pwcomment=''
d_pwexpire='define'
d_pwgecos='define'
d_pwpasswd='define'
d_pwquota=''
d_qgcvt=''
d_quad='define'
d_random_r=''
d_readdir='define'
d_readdir64_r=''
d_readdir_r='define'
d_readlink='define'
d_readv='define'
d_recvmsg='define'
d_rename='define'
d_rewinddir='define'
d_rmdir='define'
d_safebcpy=''
d_safemcpy=''
d_sanemcmp='define'
d_sbrkproto='define'
d_scalbnl='define'
d_sched_yield='define'
d_scm_rights='define'
d_seekdir='define'
d_select='define'
d_sem='define'
d_semctl='define'
d_semctl_semid_ds='define'
d_semctl_semun='define'
d_semget='define'
d_semop='define'
d_sendmsg='define'
d_setegid='define'
d_seteuid='define'
d_setgrent='define'
d_setgrent_r=''
d_setgrps='define'
d_sethent='define'
d_sethostent_r=''
d_setitimer='define'
d_setlinebuf='define'
d_setlocale='define'
d_setlocale_r=''
d_setnent='define'
d_setnetent_r=''
d_setpent='define'
d_setpgid='define'
d_setpgrp='define'
d_setpgrp2=''
d_setprior='define'
d_setproctitle=''
d_setprotoent_r=''
d_setpwent='define'
d_setpwent_r=''
d_setregid='define'
d_setresgid=''
d_setresuid=''
d_setreuid='define'
d_setrgid='define'
d_setruid='define'
d_setsent='define'
d_setservent_r=''
d_setsid='define'
d_setvbuf='define'
d_sfio=''
d_shm='define'
d_shmat='define'
d_shmatprototype='define'
d_shmctl='define'
d_shmdt='define'
d_shmget='define'
d_sigaction='define'
d_signbit='define'
d_sigprocmask='define'
d_sigsetjmp='define'
d_sin6_scope_id='define'
d_sitearch='define'
d_snprintf='define'
d_sockaddr_in6='define'
d_sockaddr_sa_len='define'
d_sockatmark='define'
d_sockatmarkproto='define'
d_socket='define'
d_socklen_t='define'
d_sockpair='define'
d_socks5_init=''
d_sprintf_returns_strlen='define'
d_sqrtl='define'
d_srand48_r=''
d_srandom_r=''
d_sresgproto=''
d_sresuproto=''
d_statblks='define'
d_statfs_f_flags='define'
d_statfs_s='define'
d_static_inline='define'
d_statvfs='define'
d_stdio_cnt_lval='define'
d_stdio_ptr_lval='define'
d_stdio_ptr_lval_nochange_cnt='define'
d_stdio_ptr_lval_sets_cnt=''
d_stdio_stream_array=''
d_stdiobase='define'
d_stdstdio='define'
d_strchr='define'
d_strcoll='define'
d_strctcpy='define'
d_strerrm='strerror(e)'
d_strerror='define'
d_strerror_r='define'
d_strftime='define'
d_strlcat='define'
d_strlcpy='define'
d_strtod='define'
d_strtol='define'
d_strtold='define'
d_strtoll='define'
d_strtoq='define'
d_strtoul='define'
d_strtoull='define'
d_strtouq='define'
d_strxfrm='define'
d_suidsafe=''
d_symlink='define'
d_syscall='define'
d_syscallproto='define'
d_sysconf='define'
d_sysernlst=''
d_syserrlst='define'
d_system='define'
d_tcgetpgrp='define'
d_tcsetpgrp='define'
d_telldir='define'
d_telldirproto='define'
d_time='define'
d_timegm='define'
d_times='define'
d_tm_tm_gmtoff='define'
d_tm_tm_zone='define'
d_tmpnam_r=''
d_truncate='define'
d_ttyname_r='define'
d_tzname='define'
d_u32align='define'
d_ualarm='define'
d_umask='define'
d_uname='define'
d_union_semun='define'
d_unordered=''
d_unsetenv='define'
d_usleep='define'
d_usleepproto='define'
d_ustat=''
d_vendorarch='define'
d_vendorbin='define'
d_vendorlib='define'
d_vendorscript='define'
d_vfork='define'
d_void_closedir=''
d_voidsig='define'
d_voidtty=''
d_volatile='define'
d_vprintf='define'
d_vsnprintf='define'
d_wait4='define'
d_waitpid='define'
d_wcstombs='define'
d_wctomb='define'
d_writev='define'
d_xenix=''
date='date'
db_hashtype='int'
db_prefixtype='int'
db_version_major='1'
db_version_minor='0'
db_version_patch='0'
defvoidused='15'
direntrytype='struct dirent'
dlext='bundle'
dlsrc='dl_dlopen.xs'
doublesize='8'
drand01='drand48()'
drand48_r_proto='0'
dtrace='/usr/sbin/dtrace'
dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
eagain='EAGAIN'
ebcdic=''
echo='echo'
egrep='egrep'
emacs=''
endgrent_r_proto='0'
endhostent_r_proto='0'
endnetent_r_proto='0'
endprotoent_r_proto='0'
endpwent_r_proto='0'
endservent_r_proto='0'
eunicefix=':'
exe_ext=''
expr='expr'
extensions='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize XS/APItest XS/Typemap arybase attributes mro re threads threads/shared Archive/Extract Archive/Tar Attribute/Handlers AutoLoader B/Debug B/Deparse B/Lint CGI CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML CPANPLUS CPANPLUS/Dist/Build Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/ParseXS File/CheckTree File/Fetch File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Log/Message Log/Message/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/Build Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata Module/Pluggable NEXT Net/Ping Object/Accessor Package/Constants Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/LaTeX Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Term/UI Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings if lib libnet parent perlfaq podlators'
extern_C='extern'
extras=''
extrasarch='/System/Library/Perl/Extras/5.18/darwin-thread-multi-2level'
extraslib='/System/Library/Perl/Extras/5.18'
fflushNULL='define'
fflushall=''
find=''
firstmakefile='GNUmakefile'
flex=''
fpossize='8'
fpostype='fpos_t'
freetype='void'
from=':'
full_ar='/usr/bin/ar'
full_csh='/bin/csh'
full_sed='/usr/bin/sed'
gccansipedantic=''
gccosandvers=''
gccversion='4.2.1 Compatible Apple LLVM 11.0.3 (clang-1103.0.29.20) (-macos10.15-objc-selector-opts)'
getgrent_r_proto='0'
getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR'
getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR'
gethostbyaddr_r_proto='0'
gethostbyname_r_proto='0'
gethostent_r_proto='0'
getlogin_r_proto='REENTRANT_PROTO_I_BW'
getnetbyaddr_r_proto='0'
getnetbyname_r_proto='0'
getnetent_r_proto='0'
getprotobyname_r_proto='0'
getprotobynumber_r_proto='0'
getprotoent_r_proto='0'
getpwent_r_proto='0'
getpwnam_r_proto='REENTRANT_PROTO_I_CSBWR'
getpwuid_r_proto='REENTRANT_PROTO_I_TSBWR'
getservbyname_r_proto='0'
getservbyport_r_proto='0'
getservent_r_proto='0'
getspnam_r_proto='0'
gidformat='"u"'
gidsign='1'
gidsize='4'
gidtype='gid_t'
git_branch=''
git_commit_id=''
git_commit_id_title=''
git_describe=''
git_uncommitted_changes=''
glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
gmake='gmake'
gmtime_r_proto='REENTRANT_PROTO_S_TS'
gnulibc_version=''
grep='grep'
groupcat='cat /etc/group'
groupstype='gid_t'
gzip='gzip'
h_fcntl='false'
h_sysfile='true'
hint='recommended'
hostcat='cat /etc/hosts'
html1dir=' '
html1direxp=''
html3dir=' '
html3direxp=''
i16size='2'
i16type='short'
i32size='4'
i32type='int'
i64size='8'
i64type='long'
i8size='1'
i8type='signed char'
i_arpainet='define'
i_assert='define'
i_bsdioctl=''
i_crypt=''
i_db='define'
i_dbm=''
i_dirent='define'
i_dld=''
i_dlfcn='define'
i_fcntl=''
i_float='define'
i_fp=''
i_fp_class=''
i_gdbm=''
i_gdbm_ndbm=''
i_gdbmndbm=''
i_grp='define'
i_ieeefp=''
i_inttypes='define'
i_langinfo='define'
i_libutil=''
i_limits='define'
i_locale='define'
i_machcthr=''
i_malloc=''
i_mallocmalloc='define'
i_math='define'
i_memory=''
i_mntent=''
i_ndbm='define'
i_netdb='define'
i_neterrno=''
i_netinettcp='define'
i_niin='define'
i_poll=''
i_prot=''
i_pthread='define'
i_pwd='define'
i_rpcsvcdbm=''
i_sfio=''
i_sgtty=''
i_shadow=''
i_socks=''
i_stdarg='define'
i_stdbool='define'
i_stddef='define'
i_stdlib='define'
i_string='define'
i_sunmath=''
i_sysaccess=''
i_sysdir='define'
i_sysfile='define'
i_sysfilio='define'
i_sysin=''
i_sysioctl='define'
i_syslog='define'
i_sysmman='define'
i_sysmode=''
i_sysmount='define'
i_sysndir=''
i_sysparam='define'
i_syspoll='define'
i_sysresrc='define'
i_syssecrt=''
i_sysselct='define'
i_syssockio='define'
i_sysstat='define'
i_sysstatfs=''
i_sysstatvfs='define'
i_systime='define'
i_systimek=''
i_systimes='define'
i_systypes='define'
i_sysuio='define'
i_sysun='define'
i_sysutsname='define'
i_sysvfs=''
i_syswait='define'
i_termio=''
i_termios='define'
i_time=''
i_unistd='define'
i_ustat=''
i_utime='define'
i_values=''
i_varargs=''
i_varhdr='stdarg.h'
i_vfork=''
ignore_versioned_solibs=''
inc_version_list=' '
inc_version_list_init='0'
incpath=''
inews=''
initialinstalllocation='/usr/bin'
installarchlib='/Library/Perl/Updates/5.18.4/darwin-thread-multi-2level'
installbin='/usr/bin'
installextrasarch='/System/Library/Perl/Extras/5.18/darwin-thread-multi-2level'
installextraslib='/System/Library/Perl/Extras/5.18'
installhtml1dir=''
installhtml3dir=''
installman1dir='/usr/share/man/man1'
installman3dir='/usr/share/man/man3'
installprefix='/'
installprefixexp='/'
installprivlib='/Library/Perl/Updates/5.18.4'
installscript='/usr/bin'
installsitearch='/Library/Perl/5.18/darwin-thread-multi-2level'
installsitebin='/usr/local/bin'
installsitehtml1dir=''
installsitehtml3dir=''
installsitelib='/Library/Perl/5.18'
installsiteman1dir='/usr/local/share/man/man1'
installsiteman3dir='/usr/local/share/man/man3'
installsitescript='/usr/local/bin'
installstyle='lib/perl5'
installupdatesarch='/Library/Perl/Updates/5.18.4/darwin-thread-multi-2level'
installupdateslib='/Library/Perl/Updates/5.18.4'
installusrbinperl='define'
installvendorarch='/Network/Library/Perl/5.18/darwin-thread-multi-2level'
installvendorbin='/usr/local/bin'
installvendorhtml1dir=''
installvendorhtml3dir=''
installvendorlib='/Network/Library/Perl/5.18'
installvendorman1dir='/usr/local/share/man/man1'
installvendorman3dir='/usr/local/share/man/man3'
installvendorscript='/usr/local/bin'
intsize='4'
issymlink='test -h'
ivdformat='"ld"'
ivsize='8'
ivtype='long'
known_extensions='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize VMS/DCLsym VMS/Stdio Win32 Win32API/File Win32CORE XS/APItest XS/Typemap arybase attributes mro re threads threads/shared '
ksh=''
ld='cc'
ld_can_script=''
lddlflags='-arch x86_64 -bundle -undefined dynamic_lookup -fstack-protector'
ldflags='-arch x86_64 -fstack-protector'
ldflags_nolargefiles='-arch x86_64 -fstack-protector'
ldflags_uselargefiles=''
ldlibpthname='DYLD_LIBRARY_PATH'
less='less'
lib_ext='.a'
libc=''
libperl='libperl.dylib'
libpth='/usr/lib /usr/local/lib'
libs=' '
libs_nolargefiles=' '
libsdirs=''
libsfiles=''
libsfound=''
libspath=' /usr/lib /usr/local/lib'
libswanted='c_s'
libswanted_nolargefiles='c_s'
libswanted_uselargefiles=''
line=''
lint=''
lkflags=''
ln='ln'
lns='/bin/ln -s'
localtime_r_proto='REENTRANT_PROTO_S_TS'
locincpth=''
loclibpth=''
longdblsize='16'
longlongsize='8'
longsize='8'
lp=''
lpr=''
ls='ls'
lseeksize='8'
lseektype='off_t'
mad=''
madlyh=''
madlyobj=''
madlysrc=''
mail=''
mailx=''
make='make'
make_set_make='#'
malloc_cflags='ccflags="-DUSE_PERL_SBRK -DPERL_SBRK_VIA_MALLOC $ccflags"'
mallocobj=''
mallocsrc=''
malloctype='void *'
man1dir='/usr/share/man/man1'
man1direxp='/usr/share/man/man1'
man1ext='1'
man3dir='/usr/share/man/man3'
man3direxp='/usr/share/man/man3'
man3ext='3pm'
mips_type=''
mistrustnm=''
mkdir='mkdir'
mmaptype='void *'
modetype='mode_t'
more='more'
multiarch='define'
mv=''
myarchname='i386-darwin'
mydomain='.apple.com'
myhostname='osx310'
myuname='darwin osx310.apple.com 19.0 darwin kernel version 18.0.0: tue jul 9 11:12:08 pdt 2019; root:xnu-4903.201.2.100.7~1release_x86_64 x86_64 '
n=''
need_va_copy='define'
netdb_hlen_type='size_t'
netdb_host_type='char *'
netdb_name_type='const char *'
netdb_net_type='in_addr_t'
nm='nm'
nm_opt=''
nm_so_opt=''
nonxs_ext='Archive/Extract Archive/Tar Attribute/Handlers AutoLoader B/Debug B/Deparse B/Lint CGI CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML CPANPLUS CPANPLUS/Dist/Build Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/ParseXS File/CheckTree File/Fetch File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Log/Message Log/Message/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/Build Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata Module/Pluggable NEXT Net/Ping Object/Accessor Package/Constants Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/LaTeX Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Term/UI Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings if lib libnet parent perlfaq podlators'
nroff='nroff'
nvEUformat='"E"'
nvFUformat='"F"'
nvGUformat='"G"'
nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
nv_preserves_uv_bits='53'
nveformat='"e"'
nvfformat='"f"'
nvgformat='"g"'
nvsize='8'
nvtype='double'
o_nonblock='O_NONBLOCK'
obj_ext='.o'
old_pthread_create_joinable=''
optimize='-Os'
orderlib='false'
osname='darwin'
osvers='19.0'
otherlibdirs=' '
package='perl5'
pager='/usr/bin/less -R'
passcat='cat /etc/passwd'
patchlevel='18'
path_sep=':'
perl='perl'
perl5='/usr/bin/perl'
perl_patchlevel=''
perl_revision='5'
perl_static_inline='static __inline__'
perl_subversion='4'
perl_version='18'
perladmin='_securityagent@osx310.apple.com'
perllibs=''
perlpath='/usr/bin/perl'
pg='pg'
phostname='hostname'
pidtype='pid_t'
plibpth=''
pmake=''
pr=''
prefix='/'
prefixexp='/'
privlib='/System/Library/Perl/5.18'
privlibexp='/System/Library/Perl/5.18'
procselfexe=''
prototype='define'
ptrsize='8'
quadkind='2'
quadtype='long'
randbits='48'
randfunc='drand48'
random_r_proto='0'
randseedtype='long'
ranlib='ranlib'
rd_nodata='-1'
readdir64_r_proto='0'
readdir_r_proto='REENTRANT_PROTO_I_TSR'
revision='5'
rm='rm'
rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
rmail=''
run=''
runnm='false'
sGMTIME_max='67768036191676799'
sGMTIME_min='-62167219200'
sLOCALTIME_max='67768036191705599'
sLOCALTIME_min='-62167190822'
sPRIEUldbl='"LE"'
sPRIFUldbl='"LF"'
sPRIGUldbl='"LG"'
sPRIXU64='"lX"'
sPRId64='"ld"'
sPRIeldbl='"Le"'
sPRIfldbl='"Lf"'
sPRIgldbl='"Lg"'
sPRIi64='"li"'
sPRIo64='"lo"'
sPRIu64='"lu"'
sPRIx64='"lx"'
sSCNfldbl='"Lf"'
sched_yield='sched_yield()'
scriptdir='/usr/bin'
scriptdirexp='/usr/bin'
sed='sed'
seedfunc='srand48'
selectminbits='32'
selecttype='fd_set *'
sendmail=''
setgrent_r_proto='0'
sethostent_r_proto='0'
setlocale_r_proto='0'
setnetent_r_proto='0'
setprotoent_r_proto='0'
setpwent_r_proto='0'
setservent_r_proto='0'
sh='/bin/sh'
shar=''
sharpbang='#!'
shmattype='void *'
shortsize='2'
shrpenv='env LD_RUN_PATH=/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE'
shsharp='true'
sig_count='32'
sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2 IOT '
sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "URG", "STOP", "TSTP", "CONT", "CHLD", "TTIN", "TTOU", "IO", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "INFO", "USR1", "USR2", "IOT", 0'
sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 6 '
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 6, 0'
sig_size='33'
signal_t='void'
sitearch='/Library/Perl/5.18/darwin-thread-multi-2level'
sitearchexp='/Library/Perl/5.18/darwin-thread-multi-2level'
sitebin='/usr/local/bin'
sitebinexp='/usr/local/bin'
sitehtml1dir=''
sitehtml1direxp=''
sitehtml3dir=''
sitehtml3direxp=''
sitelib='/Library/Perl/5.18'
sitelib_stem='/Library/Perl/5.18'
sitelibexp='/Library/Perl/5.18'
siteman1dir='/usr/local/share/man/man1'
siteman1direxp='/usr/local/share/man/man1'
siteman3dir='/usr/local/share/man/man3'
siteman3direxp='/usr/local/share/man/man3'
siteprefix='/usr/local'
siteprefixexp='/usr/local'
sitescript='/usr/local/bin'
sitescriptexp='/usr/local/bin'
sizesize='8'
sizetype='size_t'
sleep=''
smail=''
so='dylib'
sockethdr=''
socketlib=''
socksizetype='socklen_t'
sort='sort'
spackage='Perl5'
spitshell='cat'
srand48_r_proto='0'
srandom_r_proto='0'
src='/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Binaries/perl/install/TempContent/Objects/5.18/perl'
ssizetype='ssize_t'
st_ino_sign='1'
st_ino_size='8'
startperl='#!/usr/bin/perl'
startsh='#!/bin/sh'
static_ext=' '
stdchar='char'
stdio_base='((fp)->_ub._base ? (fp)->_ub._base : (fp)->_bf._base)'
stdio_bufsiz='((fp)->_ub._base ? (fp)->_ub._size : (fp)->_bf._size)'
stdio_cnt='((fp)->_r)'
stdio_filbuf=''
stdio_ptr='((fp)->_p)'
stdio_stream_array=''
strerror_r_proto='REENTRANT_PROTO_I_IBW'
strings='/AppleInternal/BuildRoot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.Internal.sdk/usr/include/string.h'
submit=''
subversion='4'
sysman='/usr/share/man/man1'
tail=''
tar=''
targetarch=''
tbl=''
tee=''
test='test'
timeincl='/AppleInternal/BuildRoot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.Internal.sdk/usr/include/sys/time.h '
timetype='time_t'
tmpnam_r_proto='0'
to=':'
touch='touch'
tr='tr'
trnl='\n'
troff=''
ttyname_r_proto='REENTRANT_PROTO_I_IBW'
u16size='2'
u16type='unsigned short'
u32size='4'
u32type='unsigned int'
u64size='8'
u64type='unsigned long'
u8size='1'
u8type='unsigned char'
uidformat='"u"'
uidsign='1'
uidsize='4'
uidtype='uid_t'
uname='uname'
uniq='uniq'
updatesarch='/Library/Perl/Updates/5.18.4/darwin-thread-multi-2level'
updateslib='/Library/Perl/Updates/5.18.4'
uquadtype='unsigned long'
use5005threads=''
use64bitall='define'
use64bitint='define'
usecrosscompile=''
usedevel=''
usedl='define'
usedtrace='define'
usefaststdio=''
useithreads='define'
usekernprocpathname=''
uselargefiles='define'
uselongdouble=''
usemallocwrap='define'
usemorebits=''
usemultiplicity='define'
usemymalloc='n'
usenm='false'
usensgetexecutablepath='define'
useopcode='true'
useperlio='define'
useposix='true'
usereentrant='define'
userelocatableinc=''
usesfio='false'
useshrplib='true'
usesitecustomize=''
usesocks=''
usethreads='define'
usevendorprefix='define'
useversionedarchname=''
usevfork='true'
usrinc='/usr/include'
uuname=''
uvXUformat='"lX"'
uvoformat='"lo"'
uvsize='8'
uvtype='unsigned long'
uvuformat='"lu"'
uvxformat='"lx"'
vaproto='define'
vendorarch='/Network/Library/Perl/5.18/darwin-thread-multi-2level'
vendorarchexp='/Network/Library/Perl/5.18/darwin-thread-multi-2level'
vendorbin='/usr/local/bin'
vendorbinexp='/usr/local/bin'
vendorhtml1dir=' '
vendorhtml1direxp=''
vendorhtml3dir=' '
vendorhtml3direxp=''
vendorlib='/Network/Library/Perl/5.18'
vendorlib_stem='/Network/Library/Perl/5.18'
vendorlibexp='/Network/Library/Perl/5.18'
vendorman1dir='/usr/local/share/man/man1'
vendorman1direxp='/usr/local/share/man/man1'
vendorman3dir='/usr/local/share/man/man3'
vendorman3direxp='/usr/local/share/man/man3'
vendorprefix='/usr/local'
vendorprefixexp='/usr/local'
vendorscript='/usr/local/bin'
vendorscriptexp='/usr/local/bin'
version='5.18.4'
version_patchlevel_string='version 18 subversion 4'
versiononly=''
vi=''
voidflags='15'
xlibpth='/usr/lib/386 /lib/386'
yacc='yacc'
yaccflags=''
zcat=''
zip='zip'

Module: ExtUtils::ParseXS

Perl configuration

perl -V
Summary of my perl5 (revision 5 version 18 subversion 4) configuration:

  Platform:
    osname=darwin, osvers=19.0, archname=darwin-thread-multi-2level
    uname='darwin osx310.apple.com 19.0 darwin kernel version 18.0.0: tue jul 9 11:12:08 pdt 2019; root:xnu-4903.201.2.100.7~1release_x86_64 x86_64 '
    config_args='-ds -e -Dprefix=/usr -Dccflags=-g  -pipe  -Dldflags= -Dman3ext=3pm -Duseithreads -Duseshrplib -Dinc_version_list=none -Dcc=cc'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-arch x86_64 -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector',
    optimize='-Os',
    cppflags='-g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector'
    ccversion='', gccversion='4.2.1 Compatible Apple LLVM 11.0.3 (clang-1103.0.29.20) (-macos10.15-objc-selector-opts)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags ='-arch x86_64 -fstack-protector'
    libpth=/usr/lib /usr/local/lib
    libs=
    perllibs=
    libc=, so=dylib, useshrplib=true, libperl=libperl.dylib
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags='-arch x86_64 -bundle -undefined dynamic_lookup -fstack-protector'

Characteristics of this binary (from libperl):
  Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
                        PERL_DONT_CREATE_GVSV
                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
                        PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
                        PERL_PRESERVE_IVUV PERL_SAWAMPERSAND USE_64_BIT_ALL
                        USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
                        USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
                        USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
                        USE_REENTRANT_API
  Locally applied patches:
    /Library/Perl/Updates/<version> comes before system perl directories
    installprivlib and installarchlib points to the Updates directory
  Built under darwin
  Compiled at Feb 28 2020 22:56:25
  @INC:
    /Library/Perl/5.18/darwin-thread-multi-2level
    /Library/Perl/5.18
    /Network/Library/Perl/5.18/darwin-thread-multi-2level
    /Network/Library/Perl/5.18
    /Library/Perl/Updates/5.18.4/darwin-thread-multi-2level
    /Library/Perl/Updates/5.18.4
    /System/Library/Perl/5.18/darwin-thread-multi-2level
    /System/Library/Perl/5.18
    /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level
    /System/Library/Perl/Extras/5.18
    .
jkeenan commented 4 years ago

I am trying to install Alien::GSL on macOS Catalina 10.15 using cpanm Alien::GSL and it aborts with error:

==> Found dependencies: ExtUtils::ParseXS
--> Working on ExtUtils::ParseXS
Fetching http://www.cpan.org/authors/id/S/SM/SMUELLER/ExtUtils-ParseXS-3.35.tar.gz ... OK
Configuring ExtUtils-ParseXS-3.35 ... OK
Building and testing ExtUtils-ParseXS-3.35 ... FAIL
! Installing ExtUtils::ParseXS failed. See /Users/hakonhaegland/.cpanm/work/1591973800.3440/build.log for details. Retry with --force to force install it.
! Installing the dependencies failed: Installed version (3.18) of ExtUtils::ParseXS is not in range '3.30'
! Bailing out the installation for Alien-Build-2.25.

I downloaded the ExtUtils::ParseXS distribution from metacpan:

wget https://cpan.metacpan.org/authors/id/S/SM/SMUELLER/ExtUtils-ParseXS-3.35.tar.gz 

and run

tar zxvf ExtUtils-ParseXS-3.35.tar.gz
cd ExtUtils-ParseXS-3.35
perl Makefile.PL
make
make test

and observed that the first test t/001-basic.t failed. Reproduced below:

 perl -Mblib t/001-basic.t
1..17
ok 1 - require ExtUtils::ParseXS;
ok 2 - Test that output contains some text
ok 3 - Create an output file
cc -iwithsysroot /System/Library/Perl/5.18/darwin-thread-multi-2level/CORE -c -arch x86_64 -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector -Os -o XSTest.o XSTest.c
ok 4 - ExtUtils::CBuilder::compile() returned true value
ok 5 - Make sure XSTest.o exists
env LD_RUN_PATH=/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE cc -arch x86_64 -bundle -undefined dynamic_lookup -fstack-protector -o XSTest.bundle XSTest.o
ok 6 - ExtUtils::CBuilder::link() returned true value
ok 7 - Make sure XSTest.bundle exists
not ok 8 - No error message recorded, as expected
#   Failed test 'No error message recorded, as expected'
#   at t/001-basic.t line 61.
#          got: 'Can't load './XSTest.bundle' for module XSTest: dlopen(./XSTest.bundle, 1): no suitable image found.  Did find:
#     file system relative paths not allowed in hardened programs at /System/Library/Perl/5.18/darwin-thread-multi-2level/DynaLoader.pm line 194.
#  at t/001-basic.t line 60.
# Compilation failed in require at t/001-basic.t line 60.
# '
#     expected: ''
Undefined subroutine &XSTest::is_even called at t/001-basic.t line 62.
# Looks like you planned 17 tests but ran 8.
# Looks like you failed 1 test of 8 run.
# Looks like your test exited with 2 just after 8.

I'm a bit puzzled by your report. ExtUtils::ParseXS has been part of the Perl 5 core distribution since perl-5.8.9, so you shouldn't need to install it separately. For example, with a perlbrew perl, I get this:

$ perlbrew use perl-5.18.4
$ perl -v | head -2 | tail -1
This is perl 5, version 18, subversion 4 (v5.18.4) built for x86_64-linux
$ perl -MExtUtils::ParseXS -E 'say $ExtUtils::ParseXS::VERSION'
3.18

Can you clarify?

Thank you very much. Jim Keenan

hakonhagland commented 4 years ago

@jkeenan Yes you are right, I also have this:

$ perl -v | head -2 | tail -1
This is perl 5, version 18, subversion 4 (v5.18.4) built for darwin-thread-multi-2level
$ perl -MExtUtils::ParseXS -E 'say $ExtUtils::ParseXS::VERSION'
3.18

But notice that the version of ExtUtils::ParseXS is only version 3.18, when I do cpanm Alien::Build it requires at least version 3.30, see: https://metacpan.org/source/PLICEASE/Alien-Build-2.25/META.json#L34 I think that is why cpanm does not want to use the version that comes with the distribution.

hakonhagland commented 4 years ago
'Can't load './XSTest.bundle' for module XSTest: dlopen(./XSTest.bundle, 1): no suitable image found. 

Can this issue be related to macOS system integrity protection prevents programs in protected locations (like /usr) from calling a shared library that uses a relative reference to another shared library? See this answer for more information

I did some debugging to check more: If I create a new test file t/debug.t based on the failed test file like this:

use strict;
use Config;
use DynaLoader;
use ExtUtils::CBuilder;
use ExtUtils::ParseXS;
use File::Spec;

my ($source_file, $obj_file, $lib_file);
chdir('t') if -d 't';
#push @INC, File::Spec->rel2abs('.');
push @INC, '.';
use Carp; $SIG{__WARN__} = \&Carp::cluck;
my $pxs = ExtUtils::ParseXS->new;
# Try sending to filehandle
$source_file = 'XSTest.c';
# Try sending to file
$pxs->process_file(filename => 'XSTest.xs', output => $source_file, prototypes => 0);
my $quiet = 0;
my $b = ExtUtils::CBuilder->new(quiet => $quiet);
die "no compiler available" if ! $b->have_compiler;
$obj_file = $b->compile( source => $source_file );
my $module = 'XSTest';
$lib_file = $b->link( objects => $obj_file, module_name => $module );
require XSTest;

and then edit t/XSTest.pm to become:

package XSTest;
use feature qw(say);
use strict;
use warnings;
use Cwd qw(getcwd);
require DynaLoader;
our @ISA = qw(Exporter DynaLoader);
our $VERSION = '0.01';
$DynaLoader::dl_debug = 1;
bootstrap XSTest $VERSION;
1;

and now run

$ perl -Mblib t/debug.t
cc -iwithsysroot /System/Library/Perl/5.18/darwin-thread-multi-2level/CORE -c -arch x86_64 -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector -Os -o XSTest.o XSTest.c
env LD_RUN_PATH=/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE cc -arch x86_64 -bundle -undefined dynamic_lookup -fstack-protector -o XSTest.bundle XSTest.o
DynaLoader::bootstrap for XSTest (auto/XSTest/XSTest.bundle)
dl_findfile(-L/Users/hakonhaegland/perl/ExtUtils-ParseXS-3.35/blib/arch -L/Users/hakonhaegland/perl/ExtUtils-ParseXS-3.35/blib/lib -L/Library/Perl/5.18/darwin-thread-multi-2level -L/Library/Perl/5.18 -L/Network/Library/Perl/5.18/darwin-thread-multi-2level -L/Network/Library/Perl/5.18 -L/Library/Perl/Updates/5.18.4/darwin-thread-multi-2level -L/Library/Perl/Updates/5.18.4 -L/System/Library/Perl/5.18/darwin-thread-multi-2level -L/System/Library/Perl/5.18 -L/System/Library/Perl/Extras/5.18/darwin-thread-multi-2level -L/System/Library/Perl/Extras/5.18 -L. -L. XSTest)
 checking in /Users/hakonhaegland/perl/ExtUtils-ParseXS-3.35/blib/arch for XSTest.bundle
 checking in /Users/hakonhaegland/perl/ExtUtils-ParseXS-3.35/blib/arch for XSTest.dylib
 checking in /Users/hakonhaegland/perl/ExtUtils-ParseXS-3.35/blib/arch for libXSTest.dylib
 checking in /Users/hakonhaegland/perl/ExtUtils-ParseXS-3.35/blib/arch for XSTest
 checking in /Users/hakonhaegland/perl/ExtUtils-ParseXS-3.35/blib/lib for XSTest.bundle
 checking in /Users/hakonhaegland/perl/ExtUtils-ParseXS-3.35/blib/lib for XSTest.dylib
 checking in /Users/hakonhaegland/perl/ExtUtils-ParseXS-3.35/blib/lib for libXSTest.dylib
 checking in /Users/hakonhaegland/perl/ExtUtils-ParseXS-3.35/blib/lib for XSTest
 checking in /Library/Perl/5.18/darwin-thread-multi-2level for XSTest.bundle
 checking in /Library/Perl/5.18/darwin-thread-multi-2level for XSTest.dylib
 checking in /Library/Perl/5.18/darwin-thread-multi-2level for libXSTest.dylib
 checking in /Library/Perl/5.18/darwin-thread-multi-2level for XSTest
 checking in /Library/Perl/5.18 for XSTest.bundle
 checking in /Library/Perl/5.18 for XSTest.dylib
 checking in /Library/Perl/5.18 for libXSTest.dylib
 checking in /Library/Perl/5.18 for XSTest
 checking in /Library/Perl/Updates/5.18.4/darwin-thread-multi-2level for XSTest.bundle
 checking in /Library/Perl/Updates/5.18.4/darwin-thread-multi-2level for XSTest.dylib
 checking in /Library/Perl/Updates/5.18.4/darwin-thread-multi-2level for libXSTest.dylib
 checking in /Library/Perl/Updates/5.18.4/darwin-thread-multi-2level for XSTest
 checking in /Library/Perl/Updates/5.18.4 for XSTest.bundle
 checking in /Library/Perl/Updates/5.18.4 for XSTest.dylib
 checking in /Library/Perl/Updates/5.18.4 for libXSTest.dylib
 checking in /Library/Perl/Updates/5.18.4 for XSTest
 checking in /System/Library/Perl/5.18/darwin-thread-multi-2level for XSTest.bundle
 checking in /System/Library/Perl/5.18/darwin-thread-multi-2level for XSTest.dylib
 checking in /System/Library/Perl/5.18/darwin-thread-multi-2level for libXSTest.dylib
 checking in /System/Library/Perl/5.18/darwin-thread-multi-2level for XSTest
 checking in /System/Library/Perl/5.18 for XSTest.bundle
 checking in /System/Library/Perl/5.18 for XSTest.dylib
 checking in /System/Library/Perl/5.18 for libXSTest.dylib
 checking in /System/Library/Perl/5.18 for XSTest
 checking in /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level for XSTest.bundle
 checking in /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level for XSTest.dylib
 checking in /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level for libXSTest.dylib
 checking in /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level for XSTest
 checking in /System/Library/Perl/Extras/5.18 for XSTest.bundle
 checking in /System/Library/Perl/Extras/5.18 for XSTest.dylib
 checking in /System/Library/Perl/Extras/5.18 for libXSTest.dylib
 checking in /System/Library/Perl/Extras/5.18 for XSTest
 checking in . for XSTest.bundle
 dl_findfile ignored non-existent directory: /Network/Library/Perl/5.18/darwin-thread-multi-2level
 dl_findfile ignored non-existent directory: /Network/Library/Perl/5.18
dl_findfile found: ./XSTest.bundle
Can't load './XSTest.bundle' for module XSTest: dlopen(./XSTest.bundle, 1): no suitable image found.  Did find:
    file system relative paths not allowed in hardened programs at /System/Library/Perl/5.18/darwin-thread-multi-2level/DynaLoader.pm line 194.
 at t/debug.t line 28.
Compilation failed in require at t/debug.t line 28.

Notice the line:

checking in . for XSTest.bundle

shows that it searches in the current directory and then

dl_findfile found: ./XSTest.bundle

it finds it, but then

Can't load './XSTest.bundle' for module XSTest: dlopen(./XSTest.bundle, 1): no suitable image found.  Did find:
    file system relative paths not allowed in hardened programs at /System/Library/Perl/5.18/darwin-thread-multi-2level/DynaLoader.pm line 194.

Something prevented it from loading it..

jkeenan commented 4 years ago
'Can't load './XSTest.bundle' for module XSTest: dlopen(./XSTest.bundle, 1): no suitable image found. 

Can this issue be related to macOS system integrity protection prevents programs in protected locations (like /usr) from calling a shared library that uses a relative reference to another shared library? See this answer for more information

Quite possibly so -- but I don't currently have a Mac, so I've placed a distro-darwin label on this report so that people with Mac are prompted to look at it.

Thank you very much. Jim Keenan

haarg commented 4 years ago

17863 should fix this.

hakonhagland commented 4 years ago

@haarg Yes #17863 works! Thanks a lot!