[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