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

Testing version 2.09 on old PPC Mac OS X 10.4.11, Tiger, fails #400

Open
ballapete opened this issue Dec 2, 2024 · 2 comments
Open

Testing version 2.09 on old PPC Mac OS X 10.4.11, Tiger, fails #400

ballapete opened this issue Dec 2, 2024 · 2 comments
Labels
🐞Bug Stuff that doesn't work 🚉Platform Specific Stuff that happens on only one type of system

Comments

@ballapete
Copy link

The tests are performed form the MacPorts package manager:

--->  Testing p5.34-ffi-platypus
Executing:  cd "/opt/local/var/macports/build/_Volumes_BSD-Linux_ports_perll_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/_Volumes_BSD-Linux_ports_perll_p5-ffi-platypus/p5.34-ffi-platypus/work/FFI-Platypus-2.09/blib/lib:/opt/local/var/macports/build/_Volumes_BSD-Linux_ports_perll_p5-ffi-platypus/p5.34-ffi-platypus/work/FFI-Platypus-2.09/blib/arch
# PERL_DL_NONLAZY=1
# PERL_USE_UNSAFE_INC=1
# SHELL=/bin/sh
# 
# 
# 
# PERL5LIB path
# /opt/local/var/macports/build/_Volumes_BSD-Linux_ports_perll_p5-ffi-platypus/p5.34-ffi-platypus/work/FFI-Platypus-2.09/blib/lib
# /opt/local/var/macports/build/_Volumes_BSD-Linux_ports_perll_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.84
# 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.80
# 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.34
# constant              1.33
# forks                 0.36
# parent                0.238
# 
# 
# 
# 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=ffi
# 
# 
# 
# 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, intptr_t, long, ptrdiff_t, senum, signed int, signed long, ssize_t, time_t, wchar_t, wint_t
#   sint64   : blkcnt_t, int64_t, intmax_t, long long, off_t, signed long long
#   sint8    : char, int8_t, signed char
#   uint16   : mode_t, nlink_t, uint16_t, unsigned short, ushort
#   uint32   : bool, enum, gid_t, ino_t, size_t, uid_t, uint, uint32_t, uintptr_t, ulong, unsigned int, unsigned long
#   uint64   : uint64_t, uintmax_t, unsigned long long
#   uint8    : uchar, uint8_t, unsigned char
# 
# 
# 
# ABIs:
#   aix                  1
#   darwin               2
#   default_abi          2
# 
# 
# 
# Probes:
#   abi                  1
#   longdouble           1
#   alloca               1
#   recordvalue          1
#   bigendian            1
#   variadic             1
# 
# 
# 
# [PLATFORM]
# osname            : darwin
# cc                : /usr/bin/cc
# cxx               : c++
# cxxld             : env MACOSX_DEPLOYMENT_TARGET=10.3 /usr/bin/cc
# for               : gfortran
# ld                : env MACOSX_DEPLOYMENT_TARGET=10.3 /usr/bin/cc
# ccflags           : -fno-common -DPERL_DARWIN -pipe -Os -fno-strict-aliasing -I/opt/local/include -D_FORTIFY_SOURCE=2 -DPERL_USE_SAFE_PUTENV -O3 -I/opt/local/var/macports/build/_Volumes_BSD-Linux_ports_perll_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
# object suffix     : .o
# library prefix    : lib
# library suffix    : .dylib,.bundle
# cc mm works       : -MM
# 
# 
# 
t/00_diag.t .............................. ok
    # Failed test 'foo1 found'
    # at t/ffi_build.t line 164.
    # Failed test 'foo2 found'
    # at t/ffi_build.t line 165.
    # [build log follows]
    # +c++ -fno-common -DPERL_DARWIN -pipe -Os -fno-strict-aliasing -I/opt/local/include -D_FORTIFY_SOURCE=2 -DPERL_USE_SAFE_PUTENV -O3 -I/opt/local/var/macports/build/_Volumes_BSD-Linux_ports_perll_p5-ffi-platypus/p5.34-ffi-platypus/work/FFI-Platypus-2.09/blib/lib/auto/share/dist/FFI-Platypus/include -c corpus/ffi_build/project-cxx/foo1.cxx -o corpus/ffi_build/project-cxx/tmpbuild.7859.1733092852/foo1.o
    # +c++ -fno-common -DPERL_DARWIN -pipe -Os -fno-strict-aliasing -I/opt/local/include -D_FORTIFY_SOURCE=2 -DPERL_USE_SAFE_PUTENV -O3 -I/opt/local/var/macports/build/_Volumes_BSD-Linux_ports_perll_p5-ffi-platypus/p5.34-ffi-platypus/work/FFI-Platypus-2.09/blib/lib/auto/share/dist/FFI-Platypus/include -c corpus/ffi_build/project-cxx/foo2.cpp -o corpus/ffi_build/project-cxx/tmpbuild.7859.1733092852/foo2.o
    # +env MACOSX_DEPLOYMENT_TARGET=10.3 /usr/bin/cc -dynamiclib -undefined dynamic_lookup -L/opt/local/lib -Wl,-headerpad_max_install_names corpus/ffi_build/project-cxx/tmpbuild.7859.1733092852/foo1.o corpus/ffi_build/project-cxx/tmpbuild.7859.1733092852/foo2.o -install_name @rpath//opt/local/var/macports/build/_Volumes_BSD-Linux_ports_perll_p5-ffi-platypus/p5.34-ffi-platypus/work/FFI-Platypus-2.09/.tmp/tmpbuild._ADz6t/libfoo.dylib -o /opt/local/var/macports/build/_Volumes_BSD-Linux_ports_perll_p5-ffi-platypus/p5.34-ffi-platypus/work/FFI-Platypus-2.09/.tmp/tmpbuild._ADz6t/libfoo.dylib

# Failed test 'build c++'
# at t/ffi_build.t line 196.
t/ffi_build.t ............................ 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/5 subtests 
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 .............. skipped: Unable to detect wide string details: This type plugin needs wcsnlen from libc, and cannot find it
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 ......... skipped: Unable to detect wide string details: This type plugin needs wcsnlen from libc, and cannot find it
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 .................. skipped: Test requires support for double complex
t/type_complex_float.t ................... skipped: Test requires support for float complex
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

Test Summary Report
-------------------
t/ffi_build.t                          (Wstat: 256 (exited 1) Tests: 5 Failed: 1)
  Failed test:  4
  Non-zero exit status: 1
Files=72, Tests=310, 196 wallclock secs ( 2.58 usr  1.39 sys + 109.09 cusr 22.42 csys = 135.48 CPU)
Result: FAIL
Failed 1/72 test programs. 1/310 subtests failed.

What is the cause of the final FAIL result? Missing wcsnlen? Or missing double complex/float complex Perl Modules? Or all?

The double complex data type seems to be provided by Math::Complex_C, could be float complex, too. On https://metacpan.org/pod/FFI::Platypus any additional modules are not mentioned…

@plicease
Copy link
Member

plicease commented Dec 4, 2024

That test is testing that it can find extern "C" functions in a C++ dynamic library. It looks like the dylib built okay.

I actually have an old G5 that I dual boot 10.4, 10.5 and Debian. I'll have to see if I can reproduce.

@plicease
Copy link
Member

plicease commented Dec 4, 2024

btw- thanks for your work on MacPorts and especially PPC OS X. I switched from HomeBrew because I was able to use MacPorts on these older macs and preferred it to brew so now I use it on the modern Macs as well.

@plicease plicease added 🐞Bug Stuff that doesn't work 🚉Platform Specific Stuff that happens on only one type of system labels Dec 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐞Bug Stuff that doesn't work 🚉Platform Specific Stuff that happens on only one type of system
Development

No branches or pull requests

2 participants