[MacPorts] #71294: p5.34-ffi-platypus @2.90.0 tests using perl5.34 @5.34.3_1 with /usr/bin/cc – shouldn't it use the same tools as MacPorts does?
MacPorts
noreply at macports.org
Tue Nov 12 13:17:29 UTC 2024
#71294: p5.34-ffi-platypus @2.90.0 tests using perl5.34 @5.34.3_1 with /usr/bin/cc
– shouldn't it use the same tools as MacPorts does?
------------------------+--------------------------------
Reporter: ballapete | Owner: (none)
Type: request | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.10.2
Keywords: highsierra | Port: p5.34-ffi-platypus
------------------------+--------------------------------
The test goes like this:
{{{
---> Computing dependencies for p5.34-ffi-platypus.
---> Testing p5.34-ffi-platypus
Executing: cd
"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5
-ffi-platypus/p5.34-ffi-platypus/work/FFI-Platypus-2.09" && /usr/bin/make
test
"/opt/local/bin/perl5.34" -MExtUtils::Command::MM -e 'cp_nonempty' --
lib/FFI/Platypus.bs blib/arch/auto/FFI/Platypus/Platypus.bs 644
CC t/ffi/align.c
CC t/ffi/align_array.c
CC t/ffi/align_fixed.c
CC t/ffi/align_string.c
CC t/ffi/basic.c
CC t/ffi/closure.c
CC t/ffi/color.c
CC t/ffi/complex_double.c
CC t/ffi/complex_float.c
CC t/ffi/double.c
CC t/ffi/float.c
CC t/ffi/gh117.c
CC t/ffi/gh174.c
CC t/ffi/longdouble.c
CC t/ffi/memcmp4.c
CC t/ffi/meta.c
CC t/ffi/pointer.c
CC t/ffi/record.c
CC t/ffi/sint16.c
CC t/ffi/sint32.c
CC t/ffi/sint64.c
CC t/ffi/sint8.c
CC t/ffi/string.c
CC t/ffi/string_array.c
CC t/ffi/uint16.c
CC t/ffi/uint32.c
CC t/ffi/uint64.c
CC t/ffi/uint8.c
CC t/ffi/variadic.c
LD t/ffi/libtest.dylib
PERL_DL_NONLAZY=1 "/opt/local/bin/perl5.34" "-MExtUtils::Command::MM"
"-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0,
'blib/lib', 'blib/arch')" t/*.t
#
#
#
# HARNESS_ACTIVE=1
# HARNESS_VERSION=3.50
# LANG=en_US.UTF-8
#
PERL5LIB=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5
-ffi-platypus/p5.34-ffi-platypus/work/FFI-
Platypus-2.09/blib/lib:/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5
-ffi-platypus/p5.34-ffi-platypus/work/FFI-Platypus-2.09/blib/arch
# PERL_DL_NONLAZY=1
# PERL_USE_UNSAFE_INC=1
#
#
#
# PERL5LIB path
#
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5
-ffi-platypus/p5.34-ffi-platypus/work/FFI-Platypus-2.09/blib/lib
#
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5
-ffi-platypus/p5.34-ffi-platypus/work/FFI-Platypus-2.09/blib/arch
#
#
#
# perl 5.034003 darwin darwin-thread-multi-2level
# Alien::Base 2.83
# Alien::FFI 0.27
# Capture::Tiny 0.48
# Devel::Hide 0.0015
# ExtUtils::CBuilder 0.280236
# ExtUtils::MakeMaker 7.70
# ExtUtils::ParseXS 3.43
# FFI::CheckLib 0.31
# File::Spec::Functions 3.75
# IPC::Cmd 1.04
# JSON::PP 4.16
# List::Util 1.68
# Math::LongDouble 0.25
# PkgConfig 0.25026
# Test2::API 1.302204
# Test2::V0 1.302204
# autodie 2.37
# constant 1.33
# forks 0.36
# parent 0.242
#
#
#
# mode : already-installed
# Alien::FFI->VERSION = 0.27
# Alien::FFI->install_type = system
# Alien::FFI->cflags =
# Alien::FFI->libs = -L/opt/local/lib -lffi
# Alien::FFI->version = 3.4.6
#
#
#
# ffi.platypus.memory.strdup_impl =libc
# ffi.platypus.memory.strndup_impl=libc
#
#
#
# Types:
# complex_double : double complex
# complex_float : float complex
# complex_longdouble : long double complex
# double : double
# float : float
# longdouble : long double
# sint16 : int16_t, short, signed short
# sint32 : blksize_t, dev_t, int, int32_t, senum, signed int, wchar_t,
wint_t
# sint64 : blkcnt_t, int64_t, intmax_t, intptr_t, long, long long,
off_t, ptrdiff_t, signed long, signed long long, ssize_t, time_t
# sint8 : char, int8_t, signed char
# uint16 : mode_t, nlink_t, uint16_t, unsigned short, ushort
# uint32 : enum, gid_t, uid_t, uint, uint32_t, unsigned int
# uint64 : ino_t, size_t, uint64_t, uintmax_t, uintptr_t, ulong,
unsigned long, unsigned long long
# uint8 : bool, uchar, uint8_t, unsigned char
#
#
#
# ABIs:
# default_abi 2
# efi64 3
# gnuw64 4
# unix64 2
# win64 3
#
#
#
# Probes:
# alloca 1
# abi 1
# recordvalue 1
# strnlen 1
# bigendian64 0
# longdouble 1
# complex 1
# variadic 1
# bigendian 0
#
#
#
# [PLATFORM]
# osname : darwin
# cc : /usr/bin/cc
# cxx : c++
# cxxld : /usr/bin/cc
# for : gfortran
# ld : /usr/bin/cc
# ccflags : -fno-common -DPERL_DARWIN -pipe -Os -fno-strict-
aliasing -fstack-protector-strong -I/opt/local/include
-DPERL_USE_SAFE_PUTENV -O3
-I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_perl_p5
-ffi-platypus/p5.34-ffi-platypus/work/FFI-
Platypus-2.09/blib/lib/auto/share/dist/FFI-Platypus/include
# ldflags : -dynamiclib -undefined dynamic_lookup
-L/opt/local/lib -Wl,-headerpad_max_install_names -fstack-protector-strong
# object suffix : .o
# library prefix : lib
# library suffix : .dylib,.bundle
# cc mm works : -MM
#
#
#
t/00_diag.t .............................. ok
t/ffi_build.t ............................ ok
t/ffi_build_file_base.t .................. ok
t/ffi_build_file_c.t ..................... ok
t/ffi_build_file_cxx.t ................... ok
t/ffi_build_file_library.t ............... ok
t/ffi_build_file_object.t ................ ok
t/ffi_build_mm.t ......................... ok
t/ffi_build_platform.t ................... ok
t/ffi_build_plugin.t ..................... ok
t/ffi_build_plugindata.t ................. ok
t/ffi_platypus.t ......................... ok
t/ffi_platypus_api.t ..................... ok
t/ffi_platypus_buffer.t .................. ok
t/ffi_platypus_bundle.t .................. ok
t/ffi_platypus_closure.t ................. ok
t/ffi_platypus_constant.t ................ ok
t/ffi_platypus_dl.t ...................... ok
t/ffi_platypus_function.t ................ ok
t/ffi_platypus_function_wrapper.t ........ ok
t/ffi_platypus_internal.t ................ ok
t/ffi_platypus_lang.t .................... ok
t/ffi_platypus_lang_asm.t ................ ok
t/ffi_platypus_lang_c.t .................. ok
t/ffi_platypus_lang_win32.t .............. ok
t/ffi_platypus_legacy.t .................. ok
t/ffi_platypus_memory.t .................. ok
t/ffi_platypus_record.t .................. ok
t/ffi_platypus_record_meta.t ............. ok
t/ffi_platypus_record_tiearray.t ......... ok
t/ffi_platypus_shareconfig.t ............. ok
t/ffi_platypus_type.t .................... ok
t/ffi_platypus_type_pointersizebuffer.t .. ok
t/ffi_platypus_type_stringarray.t ........ ok
t/ffi_platypus_type_stringpointer.t ...... ok
t/ffi_platypus_type_widestring.t ......... ok
t/ffi_platypus_typeparser.t .............. ok
t/ffi_platypus_typeparser_version0.t ..... ok
t/ffi_platypus_typeparser_version1.t ..... ok
t/ffi_platypus_typeparser_version2.t ..... ok
t/ffi_probe.t ............................ ok
t/ffi_probe_runner.t ..................... ok
t/ffi_probe_runner_builder.t ............. ok
t/ffi_probe_runner_result.t .............. ok
t/ffi_temp.t ............................. ok
t/forks.t ................................ ok
t/gh117.t ................................ ok
t/gh129.t ................................ ok
t/gh323.t ................................ ok
t/memory.t ............................... skipped: tested only in CI
t/threads.t .............................. ok
t/type_complex_double.t .................. ok
t/type_complex_float.t ................... ok
t/type_custom.t .......................... ok
t/type_double.t .......................... ok
t/type_float.t ........................... ok
t/type_longdouble.t ...................... ok
t/type_longdouble__array.t ............... ok
t/type_longdouble__hide.t ................ ok
t/type_longdouble__ptr.t ................. ok
t/type_opaque.t .......................... ok
t/type_record.t .......................... ok
t/type_record_value.t .................... ok
t/type_sint16.t .......................... ok
t/type_sint32.t .......................... ok
t/type_sint64.t .......................... ok
t/type_sint8.t ........................... ok
t/type_string.t .......................... ok
t/type_uint16.t .......................... ok
t/type_uint32.t .......................... ok
t/type_uint64.t .......................... ok
t/type_uint8.t ........................... ok
All tests successful.
Files=72, Tests=325, 24 wallclock secs ( 0.45 usr 0.16 sys + 18.55 cusr
3.38 csys = 22.54 CPU)
Result: PASS
}}}
Test passes, but seems to use inadequate means, the system's default C
compiler, while `port` uses `Clang` to build:
{{{
335 :debug:configure CC='/usr/bin/clang'
341 :debug:configure CXX='/usr/bin/clang++'
}}}
There are also differences in other flags used:
{{{
338 :debug:configure CFLAGS='-pipe -Os -arch x86_64'
342 :debug:configure CXXFLAGS='-pipe -Os -stdlib=libc++ -arch x86_64'
344 :debug:configure F90FLAGS='-pipe -Os -m64'
345 :debug:configure FCFLAGS='-pipe -Os -m64'
346 :debug:configure FFLAGS='-pipe -Os -m64'
349 :debug:configure LDFLAGS='-L/opt/local/lib
-Wl,-headerpad_max_install_names -arch x86_64'
}}}
`Perl Portfile` contains:
{{{
59 if {${perl5.major} >= 5.24} {
60 # Use a new enough compiler that perl_tsa_mutex_lock gets
compiled in,
61 # since perl modules may try to use it if they get
compiled with a
62 # newer compiler. See
https://github.com/Perl/perl5/issues/18991
}}}
There are more `Perl modules` that a require a C compiler and use "some"
flags, options, switches… (need to investigate today/tomorrow) Shouldn't
all these modules use the same tools and setups/configurtions as Perl
itself?
--
Ticket URL: <https://trac.macports.org/ticket/71294>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list