perlffi / alien-ffi Goto Github PK
View Code? Open in Web Editor NEWBuild and make available libffi
Build and make available libffi
There shouldn't be any subs in lib/Alien/FFI.pm
. All of this stuff can be computed inside the alienfile
.
Getting SIGILL
failure in FFI-Platypus
, as seen here
https://gist.github.com/plicease/b066e3d3f7f1f4758b7d93f6c5921499
but I suspect the bug is in libffi (or possibly, but unlikely in Alien::FFI). I have no way of being sure, but I suspect it may be related to this report on the libffi-discuss mailing list.
https://cygwin.com/ml/libffi-discuss/2018/msg00033.html
Over at the Linux From Scratch site, we've been seeing users get bitten
by a bug in libffi where it thinks certain Intel processors have
capabilites they actually don't which results in Illegal Instruction
errors. Specifically, gcc, or at least the most recent version of it,
is employing the vmovq instruction on CPUs that don't support it,
e.g., Celeron G530 and G640T:
http://lists.linuxfromscratch.org/pipermail/lfs-support/2018-May/051993.html
http://lists.linuxfromscratch.org/pipermail/lfs-support/2018-May/052029.html
Solved here:
http://lists.linuxfromscratch.org/pipermail/lfs-support/2018-May/052008.html
So, libffi needs to disable support for avx and aes instructions on
Intel CPUs that don't support them. Just thought I'd send you a heads
up on this issue.
I added some diagnostics to FFI-Platypus
to get some CPU information from /proc/cpuinfo
on platforms that have /proc
.
All of the failures seem to be with this configuration:
# CPU Info:
# model name : Intel(R) Pentium(R) CPU G840 @ 2.80GHz
# flags : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 rdtscp constant_tsc xtopology nonstop_tsc cpuid pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt xsave hypervisor lahf_lm
# address sizes : 36 bits physical, 48 bits virtual
My own 32bit tests have of course been on a much newer CPU that doesn't reproduce the failure.
Hello,
Cannot build the package on Apple Silicon.
t/00_diag.t .. ok
t/xs.t ....... 2/?
# Failed test 'xs'
# at t/xs.t line 11.
# XSLoader failed
# Can't load '/Users/alex/.cpanm/work/1650534422.89143/Alien-FFI-0.25/_alien/tmp/test-alien-BQAjcV/auto/main/main.bundle' for module main: dlopen(/Users/alex/.cpanm/work/1650534422.89143/Alien-FFI-0.25/_alien/tmp/test-alien-BQAjcV/auto/main/main.bundle, 0x0002): symbol not found in flat namespace '_ffi_call' at /Users/alex/perl5/perlbrew/perls/perl-5.34.1/lib/5.34.1/darwin-2level/DynaLoader.pm line 197.
# at /Users/alex/perl5/perlbrew/perls/perl-5.34.1/lib/site_perl/5.34.1/Test/Alien.pm line 422.
# Compilation failed in require at /Users/alex/perl5/perlbrew/perls/perl-5.34.1/lib/site_perl/5.34.1/Test/Alien.pm line 422.
# BEGIN failed--compilation aborted at /Users/alex/perl5/perlbrew/perls/perl-5.34.1/lib/site_perl/5.34.1/Test/Alien.pm line 422.
t/xs.t ....... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/3 subtests
MacOS 12.3.1, perl 5.36.1
Thanks,
Alex
/bin/sh ./libtool --tag=CC --mode=link gcc -O3 -fomit-frame-pointer -fstrict-aliasing -ffast-math -march=core2 -Wall -fexceptions -o libffi_convenience.la src/prep_cif.lo src/types.lo src/raw_api.lo src/java_raw_api.l
o src/closures.lo src/x86/ffi.lo src/x86/win64.lo
libtool: link: ar cru .libs/libffi_convenience.a src/.libs/prep_cif.o src/.libs/types.o src/.libs/raw_api.o src/.libs/java_raw_api.o src/.libs/closures.o src/x86/.libs/ffi.o src/x86/.libs/win64.o
libtool: link: ranlib .libs/libffi_convenience.a
libtool: link: ( cd ".libs" && rm -f "libffi_convenience.la" && cp -pR "../libffi_convenience.la" "libffi_convenience.la" )
/bin/sh ./libtool --tag=CC --mode=link gcc -O3 -fomit-frame-pointer -fstrict-aliasing -ffast-math -march=core2 -Wall -fexceptions -no-undefined -version-info `grep -v '^#' ../libtool-version` -no-undefined -bindir "N:/h
ome/ollisg/perl5/strawberry/x64/5.20.0/lib/perl5/auto/share/dist/Alien-FFI/bin" -o libffi.la -rpath N:/home/ollisg/perl5/strawberry/x64/5.20.0/lib/perl5/auto/share/dist/Alien-FFI/lib/../lib src/prep_cif.lo src/types.lo src/r
aw_api.lo src/java_raw_api.lo src/closures.lo src/x86/ffi.lo src/x86/win64.lo
libtool: link: gcc -shared src/.libs/prep_cif.o src/.libs/types.o src/.libs/raw_api.o src/.libs/java_raw_api.o src/.libs/closures.o src/x86/.libs/ffi.o src/x86/.libs/win64.o -O3 -march=core2 -o .libs/libffi-6.dll -Wl,--
enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libffi.dll.a
libtool: link: ar cru .libs/libffi.a src/prep_cif.o src/types.o src/raw_api.o src/java_raw_api.o src/closures.o src/x86/ffi.o src/x86/win64.o
libtool: link: ranlib .libs/libffi.a
t/xs.t .......
# Seeded srand with seed '20170316' from local date.
ok 1 - Alien::FFI responds to: cflags libs dynamic_libs bin_dir
# detect module name Test::Alien::XS::Mod0
# parse xs /tmp/2j7Kasu7iS/test.xs => /tmp/2j7Kasu7iS/test.c
#
# compile /tmp/2j7Kasu7iS/test.c
# cc -I/home/ollisg/perl5/perlbrew/perls/perl-5.18.2g/lib/5.18.2/OpenBSD.amd64-openbsd/CORE -DPIC -fPIC -I/home/ollisg/dev/Alien-FFI/.build/1rOzOUTI7x/blib/lib/auto/share/dist/Alien-FFI/lib/libffi-3.2.1/include -c -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -g3 -o /tmp/2j7Kasu7iS/test.o /tmp/2j7Kasu7iS/test.c
# link /tmp/2j7Kasu7iS/test.o
# cc -shared -fPIC -L/usr/local/lib -fstack-protector -o /tmp/2j7Kasu7iS/test.so /tmp/2j7Kasu7iS/test.o -L/home/ollisg/dev/Alien-FFI/.build/1rOzOUTI7x/blib/lib/auto/share/dist/Alien-FFI/lib -lffi /usr/lib/libpthread.a
# created lib /tmp/2j7Kasu7iS/test.so
ok 2 - xs
All 2 subtests passed
Test Summary Report
-------------------
t/xs.t (Wstat: 139 Tests: 2 Failed: 0)
Non-zero wait status: 139
Parse errors: No plan found in TAP output
Files=3, Tests=4, 3 wallclock secs ( 0.01 usr 0.01 sys + 0.55 cusr 0.22 csys = 0.79 CPU)
Result: FAIL
Failed 1/3 test programs. 0/4 subtests failed.
*** Error 255 in /home/ollisg/dev/Alien-FFI/.build/1rOzOUTI7x (Makefile:858 'test_dynamic')
error running make test
no plan is due to SIGSEGV.
Getting a build failure on Solaris x86. The build reports syntax issues in ./include/ffi.h
, then
make: Fatal error: Command failed for target `src/prep_cif.lo'
Build log:
Running make for P/PL/PLICEASE/Alien-FFI-0.25.tar.gz
make[1]: Entering directory `/tmp/vRC37cNT/.cpan/build/Alien-FFI-0.25-0'
cp lib/Alien/FFI.pm blib/lib/Alien/FFI.pm
"/perlrepos/perl/5.28.1/solaris_x86_10_64/bin/perl5.28.1" -MAlien::Build::MM=cmd -e prefix site /home/lthemick/sandbox/app/perl5lib/perl-5.28.1/solaris_x86/lib/perl5/i86pc-solaris-thread-multi-64 /home/lthemick/sandbox/app/perl5lib/perl-5.28.1/solaris_x86/lib/perl5/i86pc-solaris-thread-multi-64 /home/lthemick/sandbox/app/perl5lib/perl-5.28.1/solaris_x86/lib/perl5/i86pc-solaris-thread-multi-64
Alien::Build::Plugin::PkgConfig::Negotiate> Using PkgConfig plugin: PkgConfig::PP
main> prefix /home/lthemick/sandbox/app/perl5lib/perl-5.28.1/solaris_x86/lib/perl5/i86pc-solaris-thread-multi-64/auto/share/dist/Alien-FFI
"/perlrepos/perl/5.28.1/solaris_x86_10_64/bin/perl5.28.1" -MAlien::Build::MM=cmd -e version 0.25
Alien::Build::Plugin::PkgConfig::Negotiate> Using PkgConfig plugin: PkgConfig::PP
"/perlrepos/perl/5.28.1/solaris_x86_10_64/bin/perl5.28.1" -MAlien::Build::MM=cmd -e download
Alien::Build::Plugin::PkgConfig::Negotiate> Using PkgConfig plugin: PkgConfig::PP
Alien::Build::Plugin::Core::Download> decoding html
Alien::Build::Plugin::Core::Download> candidate *https://sourceware.org/pub/libffi/libffi-3.3.tar.gz
Alien::Build::Plugin::Core::Download> candidate https://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz
Alien::Build::Plugin::Core::Download> candidate https://sourceware.org/pub/libffi/libffi-3.2.tar.gz
Alien::Build::Plugin::Core::Download> candidate https://sourceware.org/pub/libffi/libffi-3.1.tar.gz
Alien::Build::Plugin::Core::Download> candidate https://sourceware.org/pub/libffi/libffi-3.0.13.tar.gz
Alien::Build::Plugin::Core::Download> candidate https://sourceware.org/pub/libffi/libffi-3.0.12.tar.gz
Alien::Build::Plugin::Core::Download> candidate https://sourceware.org/pub/libffi/libffi-3.0.11.tar.gz
Alien::Build::Plugin::Core::Download> candidate https://sourceware.org/pub/libffi/libffi-3.0.10.tar.gz
Alien::Build::Plugin::Core::Download> candidate ...
Alien::Build::Plugin::Core::Download> setting version based on archive to 3.3
Alien::Build::Plugin::Core::Download> downloaded libffi-3.3.tar.gz
"/perlrepos/perl/5.28.1/solaris_x86_10_64/bin/perl5.28.1" -MAlien::Build::MM=cmd -e build
Alien::Build::Plugin::PkgConfig::Negotiate> Using PkgConfig plugin: PkgConfig::PP
Alien::Build::CommandSequence> + ./configure --prefix=/home/lthemick/sandbox/app/perl5lib/perl-5.28.1/solaris_x86/lib/perl5/i86pc-solaris-thread-multi-64/auto/share/dist/Alien-FFI --with-pic --disable-shared --enable-static --disable-builddir
configure: loading site script /tmp/8rjfvnWjHU/config.site
checking build system type... i386-pc-solaris2.10
checking host system type... i386-pc-solaris2.10
checking target system type... i386-pc-solaris2.10
checking for gsed... sed
checking for a BSD-compatible install... ./install-sh -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gcc... no
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... no
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking whether cc understands -c and -o together... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of cc... none
checking for g++... no
checking for c++... no
checking for gpp... no
checking for aCC... no
checking for CC... CC
checking whether we are using the GNU C++ compiler... no
checking whether CC accepts -g... yes
checking dependency style of CC... none
checking dependency style of cc... none
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/xpg4/bin/grep
checking for egrep... /usr/xpg4/bin/grep -E
checking for fgrep... /usr/xpg4/bin/grep -F
checking for non-GNU ld... /usr/ccs/bin/ld
checking if the linker (/usr/ccs/bin/ld) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... /usr/ccs/bin/nm -p
checking the name lister (/usr/ccs/bin/nm -p) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 786240
checking how to convert i386-pc-solaris2.10 file names to i386-pc-solaris2.10 format... func_convert_file_noop
checking how to convert i386-pc-solaris2.10 file names to toolchain format... func_convert_file_noop
checking for /usr/ccs/bin/ld option to reload object files... -r
checking for objdump... no
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/ccs/bin/nm -p output from cc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... cc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking for cc option to produce PIC... -KPIC -DPIC
checking if cc PIC flag -KPIC -DPIC works... yes
checking if cc static flag -Bstatic works... no
checking if cc supports -c -o file.o... yes
checking if cc supports -c -o file.o... (cached) yes
checking whether the cc linker (/usr/ccs/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... solaris2.10 ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... no
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... CC -E
checking whether the CC linker (/usr/ccs/bin/ld) supports shared libraries... yes
checking for CC option to produce PIC... -KPIC -DPIC
checking if CC PIC flag -KPIC -DPIC works... yes
checking if CC static flag -Bstatic works... no
checking if CC supports -c -o file.o... yes
checking if CC supports -c -o file.o... (cached) yes
checking whether the CC linker (/usr/ccs/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... solaris2.10 ld.so
checking how to hardcode library paths into programs... immediate
checking size of size_t... 4
checking for C compiler vendor... sun
checking whether C compiler accepts -native -fast -xO5 -dalign... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking for mmap... yes
checking for mkostemp... no
checking for sys/mman.h... (cached) yes
checking for mmap... (cached) yes
checking whether read-only mmap of a plain file works... yes
checking whether mmap from /dev/zero works... yes
checking for MAP_ANON(YMOUS)... yes
checking whether mmap with MAP_ANON(YMOUS) works... yes
checking for ANSI C header files... (cached) yes
checking for memcpy... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking size of double... 8
checking size of long double... 12
checking whether byte ordering is bigendian... no
checking assembler .cfi pseudo-op support... no
checking assembler supports pc related relocs... yes
checking for _ prefix in compiled symbols... no
checking for non-GNU ld... (cached) /usr/ccs/bin/ld
checking if the linker (/usr/ccs/bin/ld) is GNU ld... (cached) no
configure: versioning on shared library symbols is no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating include/Makefile
config.status: creating include/ffi.h
config.status: creating Makefile
config.status: creating testsuite/Makefile
config.status: creating man/Makefile
config.status: creating doc/Makefile
config.status: creating libffi.pc
config.status: creating fficonfig.h
config.status: executing buildir commands
config.status: skipping top_srcdir/Makefile - not created
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing include commands
config.status: executing src commands
Alien::Build::CommandSequence> + make
make[2]: Entering directory `/tmp/vRC37cNT/.cpan/build/Alien-FFI-0.25-0/_alien/build_qdnr/libffi-3.3'
make all-recursive
make[3]: Entering directory `/tmp/vRC37cNT/.cpan/build/Alien-FFI-0.25-0/_alien/build_qdnr/libffi-3.3'
Making all in include
make[4]: Entering directory `/tmp/vRC37cNT/.cpan/build/Alien-FFI-0.25-0/_alien/build_qdnr/libffi-3.3/include'
make[4]: Leaving directory `/tmp/vRC37cNT/.cpan/build/Alien-FFI-0.25-0/_alien/build_qdnr/libffi-3.3/include'
Making all in testsuite
make[4]: Entering directory `/tmp/vRC37cNT/.cpan/build/Alien-FFI-0.25-0/_alien/build_qdnr/libffi-3.3/testsuite'
make[4]: Leaving directory `/tmp/vRC37cNT/.cpan/build/Alien-FFI-0.25-0/_alien/build_qdnr/libffi-3.3/testsuite'
Making all in man
make[4]: Entering directory `/tmp/vRC37cNT/.cpan/build/Alien-FFI-0.25-0/_alien/build_qdnr/libffi-3.3/man'
make[4]: Leaving directory `/tmp/vRC37cNT/.cpan/build/Alien-FFI-0.25-0/_alien/build_qdnr/libffi-3.3/man'
Making all in doc
make[4]: Entering directory `/tmp/vRC37cNT/.cpan/build/Alien-FFI-0.25-0/_alien/build_qdnr/libffi-3.3/doc'
make[4]: Leaving directory `/tmp/vRC37cNT/.cpan/build/Alien-FFI-0.25-0/_alien/build_qdnr/libffi-3.3/doc'
make[4]: Entering directory `/tmp/vRC37cNT/.cpan/build/Alien-FFI-0.25-0/_alien/build_qdnr/libffi-3.3'
source='src/prep_cif.c' object='src/prep_cif.lo' libtool=yes \
DEPDIR=.deps depmode=none /bin/bash ./depcomp \
/bin/bash ./libtool --tag=CC --mode=compile cc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -native -fast -xO5 -dalign -c -o src/prep_cif.lo src/prep_cif.c
libtool: compile: cc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -native -fast -xO5 -dalign -c src/prep_cif.c -KPIC -DPIC -o src/prep_cif.o
"./include/ffi.h", line 295: syntax error before or at: __attribute__
"./include/ffi.h", line 295: warning: old-style declaration or incorrect type for: __attribute__
"./include/ffi.h", line 295: warning: syntax error: empty declaration
"./include/ffi.h", line 297: syntax error before or at: __attribute__
"./include/ffi.h", line 297: warning: old-style declaration or incorrect type for: __attribute__
"./include/ffi.h", line 297: identifier redefined: __attribute__
current : function() returning int
previous: function() returning int : "./include/ffi.h", line 295
"./include/ffi.h", line 297: warning: syntax error: empty declaration
"./include/ffi.h", line 299: syntax error before or at: __attribute__
"./include/ffi.h", line 299: warning: old-style declaration or incorrect type for: __attribute__
"./include/ffi.h", line 299: identifier redefined: __attribute__
current : function() returning int
previous: function() returning int : "./include/ffi.h", line 297
"./include/ffi.h", line 299: warning: syntax error: empty declaration
cc: acomp failed for src/prep_cif.c
*** Error code 1
make: Fatal error: Command failed for target `src/prep_cif.lo'
Current working directory /tmp/vRC37cNT/.cpan/build/Alien-FFI-0.25-0/_alien/build_qdnr/libffi-3.3
*** Error code 1
The following command caused the error:
fail=; \
if (target_option=k; case ${target_option-} in ?) ;; *) echo "am__make_running_with_option: internal error: invalid" "target option '${target_option-}' specified" >&2; exit 1;; esac; has_opt=no; sane_makeflags=$MAKEFLAGS; if { if test -z '3'; then false; elif test -n ''; then true; elif test -n '' && test -n ''; then true; else false; fi; }; then sane_makeflags=$MFLAGS; else case $MAKEFLAGS in *\\[\ \ ]*) bs=\\; sane_makeflags=`printf '%s\n' "$MAKEFLAGS" | sed "s/$bs$bs[$bs $bs ]*//g"`;; esac; fi; skip_next=no; strip_trailopt () { flg=`printf '%s\n' "$flg" | sed "s/$1.*$//"`; }; for flg in $sane_makeflags; do test $skip_next = yes && { skip_next=no; continue; }; case $flg in *=*|--*) continue;; -*I) strip_trailopt 'I'; skip_next=yes;; -*I?*) strip_trailopt 'I';; -*O) strip_trailopt 'O'; skip_next=yes;; -*O?*) strip_trailopt 'O';; -*l) strip_trailopt 'l'; skip_next=yes;; -*l?*) strip_trailopt 'l';; -[dEDm]) skip_next=yes;; -[JT]) skip_next=yes;; esac; case $flg in *$target_option*) has_opt=yes; break;; esac; done; test $has_opt = yes); then \
failcom='fail=yes'; \
else \
failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo all-recursive | sed s/-recursive//`; \
case "all-recursive" in \
distclean-* | maintainer-clean-*) list='include testsuite man doc' ;; \
*) list='include testsuite man doc' ;; \
esac; \
for subdir in $list; do \
echo "Making $target in $subdir"; \
if test "$subdir" = "."; then \
dot_seen=yes; \
local_target="$target-am"; \
else \
local_target="$target"; \
fi; \
(CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make $local_target) \
|| eval $failcom; \
done; \
if test "$dot_seen" = "no"; then \
make "$target-am" || exit 1; \
fi; test -z "$fail"
make: Fatal error: Command failed for target `all-recursive'
Current working directory /tmp/vRC37cNT/.cpan/build/Alien-FFI-0.25-0/_alien/build_qdnr/libffi-3.3
*** Error code 1
make: Fatal error: Command failed for target `all'
Current working directory /tmp/vRC37cNT/.cpan/build/Alien-FFI-0.25-0/_alien/build_qdnr/libffi-3.3
external command failed at /home/lthemick/sandbox/app/perl5lib/perl-5.28.1/solaris_x86/lib/perl5/Alien/Build/CommandSequence.pm line 87.
make[1]: *** [_alien/mm/build] Error 1
make[1]: Leaving directory `/tmp/vRC37cNT/.cpan/build/Alien-FFI-0.25-0'
PLICEASE/Alien-FFI-0.25.tar.gz
/tools/gmake/3.81/app/SunOS_5.10_i386_SunS_5.8/bin/make -- NOT OK
Reported here: PerlAlien/Alien-Build#195 (comment)
by @shawnlaffan . Work around is to use the libffi that comes with Strawberry, but I'd like to fix this.
build_TBtP/libffi-3.3/msvcc.sh -m64 -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -I. -I./include -Iinclude -I./src -c -o src/x86/win64_intel.lo src/x86/win64_intel.S
libtool: compile: C:/Users/ollisg/.cpanm/work/1576105620.23268/Alien-FFI-0.23/_alien/build_TBtP/libffi-3.3/msvcc.sh -m64 -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -I. -I./include -Iinclude -I./src -c src/x86/win64_intel.S -o src/x86/win64_intel.obj
C:/Users/ollisg/.cpanm/work/1576105620.23268/Alien-FFI-0.23/_alien/build_TBtP/libffi-3.3/msvcc.sh: line 174: cygpath: command not found
C:/Users/ollisg/.cpanm/work/1576105620.23268/Alien-FFI-0.23/_alien/build_TBtP/libffi-3.3/msvcc.sh: line 174: cygpath: command not found
C:/Users/ollisg/.cpanm/work/1576105620.23268/Alien-FFI-0.23/_alien/build_TBtP/libffi-3.3/msvcc.sh: line 174: cygpath: command not found
C:/Users/ollisg/.cpanm/work/1576105620.23268/Alien-FFI-0.23/_alien/build_TBtP/libffi-3.3/msvcc.sh: line 174: cygpath: command not found
C:/Users/ollisg/.cpanm/work/1576105620.23268/Alien-FFI-0.23/_alien/build_TBtP/libffi-3.3/msvcc.sh: line 174: cygpath: command not found
C:/Users/ollisg/.cpanm/work/1576105620.23268/Alien-FFI-0.23/_alien/build_TBtP/libffi-3.3/msvcc.sh: line 174: cygpath: command not found
C:/Users/ollisg/.cpanm/work/1576105620.23268/Alien-FFI-0.23/_alien/build_TBtP/libffi-3.3/msvcc.sh: line 174: cygpath: command not found
C:/Users/ollisg/.cpanm/work/1576105620.23268/Alien-FFI-0.23/_alien/build_TBtP/libffi-3.3/msvcc.sh: line 174: cygpath: command not found
C:/Users/ollisg/.cpanm/work/1576105620.23268/Alien-FFI-0.23/_alien/build_TBtP/libffi-3.3/msvcc.sh: line 174: cygpath: command not found
win64_intel.S
src/x86/win64_intel.S(2): fatal error C1083: Cannot open include file: 'fficonfig.h': No such file or directory
make[2]: *** [src/x86/win64_intel.lo] Error 1
make[2]: Leaving directory `/c/Users/ollisg/.cpanm/work/1576105620.23268/Alien-FFI-0.23/_alien/build_TBtP/libffi-3.3'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/c/Users/ollisg/.cpanm/work/1576105620.23268/Alien-FFI-0.23/_alien/build_TBtP/libffi-3.3'
make: *** [all] Error 2
external command failed at D:/lang/perl/vc/x64/5.31.6/site/lib/Alien/Build/CommandSequence.pm line 87.
NMAKE : fatal error U1077: 'D:\lang\perl\vc\x64\5.31.6\bin\perl.exe' : return code '0x2'
Stop.
FAIL
! Installing Alien::FFI failed. See C:\Users\ollisg\.cpanm\work\1576105620.23268\build.log for details. Retry with --force to force install it.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.