ffi 1.11.1 → 1.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/{appveyor.yml → .appveyor.yml} +1 -1
- data/.gitmodules +2 -2
- data/CHANGELOG.md +16 -0
- data/Rakefile +1 -0
- data/ext/ffi_c/Call.c +3 -3
- data/ext/ffi_c/Call.h +2 -2
- data/ext/ffi_c/Function.c +4 -4
- data/ext/ffi_c/LongDouble.c +7 -7
- data/ext/ffi_c/libffi.darwin.mk +1 -1
- data/ext/ffi_c/libffi/.appveyor.yml +29 -13
- data/ext/ffi_c/libffi/.gitattributes +4 -0
- data/ext/ffi_c/libffi/.travis.yml +31 -2
- data/ext/ffi_c/libffi/.travis/build-in-container.sh +22 -0
- data/ext/ffi_c/libffi/.travis/build.sh +83 -7
- data/ext/ffi_c/libffi/.travis/install.sh +32 -11
- data/ext/ffi_c/libffi/LICENSE +1 -1
- data/ext/ffi_c/libffi/LICENSE-BUILDTOOLS +5 -4
- data/ext/ffi_c/libffi/Makefile.am +30 -38
- data/ext/ffi_c/libffi/README.md +15 -6
- data/ext/ffi_c/libffi/configure.ac +1 -1
- data/ext/ffi_c/libffi/configure.host +21 -7
- data/ext/ffi_c/libffi/include/ffi.h.in +4 -0
- data/ext/ffi_c/libffi/include/ffi_common.h +4 -0
- data/ext/ffi_c/libffi/m4/asmcfi.m4 +1 -1
- data/ext/ffi_c/libffi/make_sunver.pl +333 -0
- data/ext/ffi_c/libffi/msvc_build/aarch64/Ffi_staticLib.sln +33 -0
- data/ext/ffi_c/libffi/msvc_build/aarch64/Ffi_staticLib.vcxproj +130 -0
- data/ext/ffi_c/libffi/msvc_build/aarch64/Ffi_staticLib.vcxproj.filters +57 -0
- data/ext/ffi_c/libffi/msvc_build/aarch64/Ffi_staticLib.vcxproj.user +4 -0
- data/ext/ffi_c/libffi/msvc_build/aarch64/aarch64_include/ffi.h +511 -0
- data/ext/ffi_c/libffi/msvcc.sh +27 -2
- data/ext/ffi_c/libffi/src/aarch64/ffi.c +124 -56
- data/ext/ffi_c/libffi/src/aarch64/ffitarget.h +13 -2
- data/ext/ffi_c/libffi/src/aarch64/sysv.S +8 -6
- data/ext/ffi_c/libffi/src/aarch64/win64_armasm.S +506 -0
- data/ext/ffi_c/libffi/src/arm/ffi.c +40 -5
- data/ext/ffi_c/libffi/src/arm/ffitarget.h +8 -1
- data/ext/ffi_c/libffi/src/arm/sysv.S +2 -0
- data/ext/ffi_c/libffi/src/arm/sysv_msvc_arm32.S +311 -0
- data/ext/ffi_c/libffi/src/closures.c +32 -8
- data/ext/ffi_c/libffi/src/pa/linux.S +23 -2
- data/ext/ffi_c/libffi/src/powerpc/ffi.c +3 -2
- data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +58 -25
- data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +1 -1
- data/ext/ffi_c/libffi/src/prep_cif.c +4 -2
- data/ext/ffi_c/libffi/src/x86/ffi.c +13 -6
- data/ext/ffi_c/libffi/src/x86/ffi64.c +5 -3
- data/ext/ffi_c/libffi/src/x86/ffiw64.c +6 -3
- data/ext/ffi_c/libffi/src/x86/sysv.S +2 -2
- data/ext/ffi_c/libffi/src/x86/sysv_intel.S +995 -0
- data/ext/ffi_c/libffi/src/x86/win64.S +5 -0
- data/ext/ffi_c/libffi/testsuite/Makefile.am +111 -109
- data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +26 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +9 -8
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +1 -1
- data/ffi.gemspec +1 -1
- data/lib/ffi/library.rb +5 -5
- data/lib/ffi/platform.rb +4 -1
- data/lib/ffi/platform/aarch64-freebsd/types.conf +89 -89
- data/lib/ffi/platform/aarch64-freebsd12/types.conf +89 -89
- data/lib/ffi/platform/aarch64-linux/types.conf +81 -81
- data/lib/ffi/platform/arm-freebsd/types.conf +87 -87
- data/lib/ffi/platform/arm-freebsd12/types.conf +87 -87
- data/lib/ffi/platform/arm-linux/types.conf +79 -79
- data/lib/ffi/platform/i386-cygwin/types.conf +1 -1
- data/lib/ffi/platform/i386-darwin/types.conf +63 -63
- data/lib/ffi/platform/i386-freebsd/types.conf +87 -87
- data/lib/ffi/platform/i386-freebsd12/types.conf +87 -87
- data/lib/ffi/platform/i386-gnu/types.conf +84 -84
- data/lib/ffi/platform/i386-linux/types.conf +77 -77
- data/lib/ffi/platform/i386-netbsd/types.conf +87 -87
- data/lib/ffi/platform/i386-openbsd/types.conf +89 -89
- data/lib/ffi/platform/i386-solaris/types.conf +96 -96
- data/lib/ffi/platform/i386-windows/types.conf +84 -84
- data/lib/ffi/platform/ia64-linux/types.conf +79 -79
- data/lib/ffi/platform/mips-linux/types.conf +79 -79
- data/lib/ffi/platform/mips64-linux/types.conf +81 -81
- data/lib/ffi/platform/mips64el-linux/types.conf +81 -81
- data/lib/ffi/platform/mipsel-linux/types.conf +79 -79
- data/lib/ffi/platform/mipsisa32r6-linux/types.conf +79 -79
- data/lib/ffi/platform/mipsisa32r6el-linux/types.conf +79 -79
- data/lib/ffi/platform/mipsisa64r6-linux/types.conf +81 -81
- data/lib/ffi/platform/mipsisa64r6el-linux/types.conf +81 -81
- data/lib/ffi/platform/powerpc-aix/types.conf +155 -155
- data/lib/ffi/platform/powerpc-darwin/types.conf +63 -63
- data/lib/ffi/platform/powerpc-linux/types.conf +77 -77
- data/lib/ffi/platform/powerpc64-linux/types.conf +81 -81
- data/lib/ffi/platform/s390-linux/types.conf +79 -79
- data/lib/ffi/platform/s390x-linux/types.conf +79 -79
- data/lib/ffi/platform/sparc-linux/types.conf +79 -79
- data/lib/ffi/platform/sparc-solaris/types.conf +103 -103
- data/lib/ffi/platform/sparc64-linux/types.conf +79 -79
- data/lib/ffi/platform/sparcv9-solaris/types.conf +103 -103
- data/lib/ffi/platform/x86_64-cygwin/types.conf +1 -1
- data/lib/ffi/platform/x86_64-darwin/types.conf +84 -84
- data/lib/ffi/platform/x86_64-dragonflybsd/types.conf +148 -0
- data/lib/ffi/platform/x86_64-freebsd/types.conf +89 -89
- data/lib/ffi/platform/x86_64-freebsd12/types.conf +139 -109
- data/lib/ffi/platform/x86_64-linux/types.conf +86 -77
- data/lib/ffi/platform/x86_64-netbsd/types.conf +89 -89
- data/lib/ffi/platform/x86_64-openbsd/types.conf +86 -86
- data/lib/ffi/platform/x86_64-solaris/types.conf +96 -96
- data/lib/ffi/platform/x86_64-windows/types.conf +99 -99
- data/lib/ffi/tools/types_generator.rb +5 -4
- data/lib/ffi/version.rb +1 -1
- metadata +19 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 04c74309ebb2a5097fc2451c48a5e7fee0b8860936802ba3bb451acb772b768a
|
|
4
|
+
data.tar.gz: 4c15514c883db50211a359ab0a08126c0feac0530e2328fbe96abc7dbd242724
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1bae5351b7b33d23817ee245894ff31f0c1afffbca4f4ffff42975ea4a61eeab84c0020de2ad0aa81db578379acc7a3bf8713f3415e2d8755809b1ffa32ea1c0
|
|
7
|
+
data.tar.gz: 569166da61cfacb4d96a1bd079eb14533766b0663da2f6cd16845cfbaa8cd41bb736835ffdab339babce31f861e8f2a3a815c43b4e9315fcc4f9890b71aa441a
|
data/.gitmodules
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
1.11.2 / 2019-11-11
|
|
2
|
+
-------------------
|
|
3
|
+
|
|
4
|
+
Added:
|
|
5
|
+
* Add DragonFlyBSD as a platform. #724
|
|
6
|
+
|
|
7
|
+
Changed:
|
|
8
|
+
* Sort all types.conf files, so that files and changes are easier to compare.
|
|
9
|
+
* Regenerated type conf for freebsd12 and x86_64-linux targets. #722
|
|
10
|
+
* Remove MACOSX_DEPLOYMENT_TARGET that was targeting very old version 10.4. #647
|
|
11
|
+
* Fix library name mangling for non glibc Linux/UNIX. #727
|
|
12
|
+
* Fix compiler warnings raised by ruby-2.7
|
|
13
|
+
* Update libffi to latest master.
|
|
14
|
+
|
|
15
|
+
|
|
1
16
|
1.11.1 / 2019-05-20
|
|
2
17
|
-------------------
|
|
3
18
|
|
|
@@ -8,6 +23,7 @@ Changed:
|
|
|
8
23
|
|
|
9
24
|
1.11.0 / 2019-05-17
|
|
10
25
|
-------------------
|
|
26
|
+
This version was yanked on 2019-05-20 to fix an install issue on ruby-1.9.3. #700
|
|
11
27
|
|
|
12
28
|
Added:
|
|
13
29
|
* Add ability to disable or force use of system libffi. #669
|
data/Rakefile
CHANGED
data/ext/ffi_c/Call.c
CHANGED
|
@@ -355,15 +355,15 @@ call_blocking_function(void* data)
|
|
|
355
355
|
}
|
|
356
356
|
|
|
357
357
|
VALUE
|
|
358
|
-
rbffi_do_blocking_call(
|
|
358
|
+
rbffi_do_blocking_call(VALUE data)
|
|
359
359
|
{
|
|
360
|
-
rb_thread_call_without_gvl(call_blocking_function, data, (void *) -1, NULL);
|
|
360
|
+
rb_thread_call_without_gvl(call_blocking_function, (void*)data, (void *) -1, NULL);
|
|
361
361
|
|
|
362
362
|
return Qnil;
|
|
363
363
|
}
|
|
364
364
|
|
|
365
365
|
VALUE
|
|
366
|
-
rbffi_save_frame_exception(
|
|
366
|
+
rbffi_save_frame_exception(VALUE data, VALUE exc)
|
|
367
367
|
{
|
|
368
368
|
rbffi_frame_t* frame = (rbffi_frame_t *) data;
|
|
369
369
|
frame->exc = exc;
|
data/ext/ffi_c/Call.h
CHANGED
|
@@ -96,8 +96,8 @@ typedef struct rbffi_blocking_call {
|
|
|
96
96
|
void* params;
|
|
97
97
|
} rbffi_blocking_call_t;
|
|
98
98
|
|
|
99
|
-
VALUE rbffi_do_blocking_call(
|
|
100
|
-
VALUE rbffi_save_frame_exception(
|
|
99
|
+
VALUE rbffi_do_blocking_call(VALUE data);
|
|
100
|
+
VALUE rbffi_save_frame_exception(VALUE data, VALUE exc);
|
|
101
101
|
|
|
102
102
|
#ifdef __cplusplus
|
|
103
103
|
}
|
data/ext/ffi_c/Function.c
CHANGED
|
@@ -88,8 +88,8 @@ static VALUE function_init(VALUE self, VALUE rbFunctionInfo, VALUE rbProc);
|
|
|
88
88
|
static void callback_invoke(ffi_cif* cif, void* retval, void** parameters, void* user_data);
|
|
89
89
|
static bool callback_prep(void* ctx, void* code, Closure* closure, char* errmsg, size_t errmsgsize);
|
|
90
90
|
static void* callback_with_gvl(void* data);
|
|
91
|
-
static VALUE invoke_callback(
|
|
92
|
-
static VALUE save_callback_exception(
|
|
91
|
+
static VALUE invoke_callback(VALUE data);
|
|
92
|
+
static VALUE save_callback_exception(VALUE data, VALUE exc);
|
|
93
93
|
|
|
94
94
|
#define DEFER_ASYNC_CALLBACK 1
|
|
95
95
|
|
|
@@ -658,7 +658,7 @@ callback_with_gvl(void* data)
|
|
|
658
658
|
}
|
|
659
659
|
|
|
660
660
|
static VALUE
|
|
661
|
-
invoke_callback(
|
|
661
|
+
invoke_callback(VALUE data)
|
|
662
662
|
{
|
|
663
663
|
struct gvl_callback* cb = (struct gvl_callback *) data;
|
|
664
664
|
|
|
@@ -848,7 +848,7 @@ invoke_callback(void* data)
|
|
|
848
848
|
}
|
|
849
849
|
|
|
850
850
|
static VALUE
|
|
851
|
-
save_callback_exception(
|
|
851
|
+
save_callback_exception(VALUE data, VALUE exc)
|
|
852
852
|
{
|
|
853
853
|
struct gvl_callback* cb = (struct gvl_callback *) data;
|
|
854
854
|
|
data/ext/ffi_c/LongDouble.c
CHANGED
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
|
|
10
10
|
static VALUE rb_cBigDecimal = Qnil;
|
|
11
11
|
static VALUE bigdecimal_load(VALUE unused);
|
|
12
|
-
static VALUE bigdecimal_failed(VALUE value);
|
|
12
|
+
static VALUE bigdecimal_failed(VALUE value, VALUE exc);
|
|
13
13
|
|
|
14
|
-
VALUE
|
|
14
|
+
VALUE
|
|
15
15
|
rbffi_longdouble_new(long double ld)
|
|
16
16
|
{
|
|
17
17
|
if (!RTEST(rb_cBigDecimal)) {
|
|
@@ -28,13 +28,13 @@ rbffi_longdouble_new(long double ld)
|
|
|
28
28
|
return rb_float_new(ld);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
long double
|
|
31
|
+
long double
|
|
32
32
|
rbffi_num2longdouble(VALUE value)
|
|
33
33
|
{
|
|
34
34
|
if (TYPE(value) == T_FLOAT) {
|
|
35
35
|
return rb_num2dbl(value);
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
|
|
38
38
|
if (!RTEST(rb_cBigDecimal) && rb_const_defined(rb_cObject, rb_intern("BigDecimal"))) {
|
|
39
39
|
rb_cBigDecimal = rb_const_get(rb_cObject, rb_intern("BigDecimal"));
|
|
40
40
|
}
|
|
@@ -49,15 +49,15 @@ rbffi_num2longdouble(VALUE value)
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
|
|
52
|
-
static VALUE
|
|
52
|
+
static VALUE
|
|
53
53
|
bigdecimal_load(VALUE unused)
|
|
54
54
|
{
|
|
55
55
|
rb_require("bigdecimal");
|
|
56
56
|
return rb_const_get(rb_cObject, rb_intern("BigDecimal"));
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
static VALUE
|
|
60
|
-
bigdecimal_failed(VALUE value)
|
|
59
|
+
static VALUE
|
|
60
|
+
bigdecimal_failed(VALUE value, VALUE exc)
|
|
61
61
|
{
|
|
62
62
|
return value;
|
|
63
63
|
}
|
data/ext/ffi_c/libffi.darwin.mk
CHANGED
|
@@ -58,7 +58,7 @@ build_ffi = \
|
|
|
58
58
|
env CC="$(CCACHE) $(CC)" CFLAGS="-arch $(1) $(LIBFFI_CFLAGS)" LDFLAGS="-arch $(1)" \
|
|
59
59
|
$(LIBFFI_CONFIGURE) --host=$(1)-apple-darwin > /dev/null; \
|
|
60
60
|
fi); \
|
|
61
|
-
|
|
61
|
+
$(MAKE) -C "$(BUILD_DIR)"/libffi-$(1)
|
|
62
62
|
|
|
63
63
|
target_ffi = "$(BUILD_DIR)"/libffi-$(1)/.libs/libffi_convenience.a:; $(call build_ffi,$(1))
|
|
64
64
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
shallow_clone: true
|
|
2
2
|
|
|
3
|
-
# We're currently only testing
|
|
3
|
+
# We're currently only testing libffi built with Microsoft's
|
|
4
4
|
# tools.
|
|
5
5
|
# This matrix should be expanded to include at least:
|
|
6
6
|
# 32- and 64-bit gcc/cygwin
|
|
@@ -8,9 +8,12 @@ shallow_clone: true
|
|
|
8
8
|
# 32- and 64-bit clang/mingw
|
|
9
9
|
# and perhaps more.
|
|
10
10
|
|
|
11
|
-
image: Visual Studio
|
|
11
|
+
image: Visual Studio 2017
|
|
12
12
|
platform:
|
|
13
13
|
- x64
|
|
14
|
+
- x86
|
|
15
|
+
- arm
|
|
16
|
+
- arm64
|
|
14
17
|
|
|
15
18
|
environment:
|
|
16
19
|
global:
|
|
@@ -18,33 +21,46 @@ environment:
|
|
|
18
21
|
CYG_CACHE: C:/cygwin/var/cache/setup
|
|
19
22
|
CYG_MIRROR: http://mirrors.kernel.org/sourceware/cygwin/
|
|
20
23
|
matrix:
|
|
21
|
-
- VSVER:
|
|
24
|
+
- VSVER: 15
|
|
22
25
|
|
|
23
26
|
install:
|
|
24
27
|
- ps: >-
|
|
25
28
|
If ($env:Platform -Match "x86") {
|
|
26
29
|
$env:VCVARS_PLATFORM="x86"
|
|
27
|
-
$env:BUILD="
|
|
28
|
-
$env:HOST="
|
|
30
|
+
$env:BUILD="i686-pc-cygwin"
|
|
31
|
+
$env:HOST="i686-pc-cygwin"
|
|
32
|
+
$env:MSVCC="/cygdrive/c/projects/libffi/msvcc.sh"
|
|
33
|
+
$env:SRC_ARCHITECTURE="x86"
|
|
34
|
+
} ElseIf ($env:Platform -Match "arm64") {
|
|
35
|
+
$env:VCVARS_PLATFORM="x86_arm64"
|
|
36
|
+
$env:BUILD="i686-pc-cygwin"
|
|
37
|
+
$env:HOST="aarch64-w64-cygwin"
|
|
38
|
+
$env:MSVCC="/cygdrive/c/projects/libffi/msvcc.sh -marm64"
|
|
39
|
+
$env:SRC_ARCHITECTURE="aarch64"
|
|
40
|
+
} ElseIf ($env:Platform -Match "arm") {
|
|
41
|
+
$env:VCVARS_PLATFORM="x86_arm"
|
|
42
|
+
$env:BUILD="i686-pc-cygwin"
|
|
43
|
+
$env:HOST="arm-w32-cygwin"
|
|
44
|
+
$env:MSVCC="/cygdrive/c/projects/libffi/msvcc.sh -marm"
|
|
45
|
+
$env:SRC_ARCHITECTURE="arm"
|
|
29
46
|
} Else {
|
|
30
47
|
$env:VCVARS_PLATFORM="amd64"
|
|
31
48
|
$env:BUILD="x86_64-w64-cygwin"
|
|
32
49
|
$env:HOST="x86_64-w64-cygwin"
|
|
50
|
+
$env:MSVCC="/cygdrive/c/projects/libffi/msvcc.sh -m64"
|
|
51
|
+
$env:SRC_ARCHITECTURE="x86"
|
|
33
52
|
}
|
|
34
53
|
- 'appveyor DownloadFile https://cygwin.com/setup-x86.exe -FileName setup.exe'
|
|
35
54
|
- 'setup.exe -qnNdO -R "%CYG_ROOT%" -s "%CYG_MIRROR%" -l "%CYG_CACHE%" -P dejagnu >NUL'
|
|
36
55
|
- '%CYG_ROOT%/bin/bash -lc "cygcheck -dc cygwin"'
|
|
56
|
+
- echo call VsDevCmd to set VS150COMNTOOLS
|
|
57
|
+
- call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat"
|
|
37
58
|
- ps: $env:VSCOMNTOOLS=(Get-Content ("env:VS" + "$env:VSVER" + "0COMNTOOLS"))
|
|
38
59
|
- echo "Using Visual Studio %VSVER%.0 at %VSCOMNTOOLS%"
|
|
39
|
-
- call "%VSCOMNTOOLS
|
|
60
|
+
- call "%VSCOMNTOOLS%..\..\vc\Auxiliary\Build\vcvarsall.bat" %VCVARS_PLATFORM%
|
|
40
61
|
|
|
41
62
|
build_script:
|
|
42
63
|
- c:\cygwin\bin\sh -lc "(cd $OLDPWD; ./autogen.sh;)"
|
|
43
|
-
- c:\cygwin\bin\sh -lc "(cd $OLDPWD; ./configure CC='
|
|
44
|
-
- c:\cygwin\bin\sh -lc "(cd $OLDPWD; cp src
|
|
64
|
+
- c:\cygwin\bin\sh -lc "(cd $OLDPWD; ./configure CC='%MSVCC%' CXX='%MSVCC%' LD='link' CPP='cl -nologo -EP' CXXCPP='cl -nologo -EP' CPPFLAGS='-DFFI_BUILDING_DLL' AR='/cygdrive/c/projects/libffi/.travis/ar-lib lib' NM='dumpbin -symbols' STRIP=':' --build=$BUILD --host=$HOST;)"
|
|
65
|
+
- c:\cygwin\bin\sh -lc "(cd $OLDPWD; cp src/%SRC_ARCHITECTURE%/ffitarget.h include; make; find .;)"
|
|
45
66
|
- c:\cygwin\bin\sh -lc "(cd $OLDPWD; cp `find . -name 'libffi-?.dll'` $HOST/testsuite/; make check; cat `find ./ -name libffi.log`)"
|
|
46
|
-
|
|
47
|
-
# FIXME: "make check" currently fails. It just looks like msvcc needs
|
|
48
|
-
# to learn about -L and -l options. If you add "make check; cat `find
|
|
49
|
-
# ./ -name libffi.log" to the end of that build command you'll see
|
|
50
|
-
# what I mean.
|
|
@@ -3,10 +3,38 @@ sudo: required
|
|
|
3
3
|
|
|
4
4
|
language: cpp
|
|
5
5
|
|
|
6
|
+
# For qemu-powered targets, get the list of supported processors from
|
|
7
|
+
# travis by setting QEMU_CPU=help, then set -mcpu= for the compilers
|
|
8
|
+
# accordingly.
|
|
9
|
+
|
|
6
10
|
matrix:
|
|
7
11
|
include:
|
|
8
12
|
- os: osx
|
|
9
|
-
env: HOST=
|
|
13
|
+
env: HOST=aarch64-apple-darwin13
|
|
14
|
+
- os: osx
|
|
15
|
+
env: HOST=x86_64-apple-darwin10
|
|
16
|
+
- os: linux
|
|
17
|
+
env: HOST=sh4-linux-gnu CONFIGURE_OPTIONS=--disable-shared QEMU_LD_PREFIX=/usr/sh4-linux-gnu
|
|
18
|
+
- os: linux
|
|
19
|
+
env: HOST=alpha-linux-gnu CONFIGURE_OPTIONS=--disable-shared QEMU_LD_PREFIX=/usr/alpha-linux-gnu
|
|
20
|
+
- os: linux
|
|
21
|
+
env: HOST=m68k-linux-gnu MEVAL='export CC="m68k-linux-gnu-gcc-8 -mcpu=547x" && CXX="m68k-linux-gnu-g++-8 -mcpu=547x"' CONFIGURE_OPTIONS=--disable-shared QEMU_LD_PREFIX=/usr/m68k-linux-gnu QEMU_CPU=cfv4e
|
|
22
|
+
- os: linux
|
|
23
|
+
env: HOST=s390x-linux-gnu MEVAL='export CC="s390x-linux-gnu-gcc-8" && CXX="s390x-linux-gnu-g++-8"' CONFIGURE_OPTIONS=--disable-shared QEMU_LD_PREFIX=/usr/s390x-linux-gnu QEMU_CPU=max
|
|
24
|
+
- os: linux
|
|
25
|
+
env: HOST=arm32v7-linux-gnu LIBFFI_TEST_OPTIMIZATION="-O0"
|
|
26
|
+
- os: linux
|
|
27
|
+
env: HOST=arm32v7-linux-gnu LIBFFI_TEST_OPTIMIZATION="-O2"
|
|
28
|
+
- os: linux
|
|
29
|
+
env: HOST=arm32v7-linux-gnu LIBFFI_TEST_OPTIMIZATION="-O2 -fomit-frame-pointer"
|
|
30
|
+
- os: linux
|
|
31
|
+
env: HOST=sparc64-linux-gnu
|
|
32
|
+
- os: linux
|
|
33
|
+
env: HOST=aarch64-linux-gnu
|
|
34
|
+
- os: linux
|
|
35
|
+
env: HOST=powerpc64le-unknown-linux-gnu
|
|
36
|
+
- os: linux
|
|
37
|
+
env: HOST=mips64el-linux-gnu
|
|
10
38
|
- os: linux
|
|
11
39
|
compiler: gcc
|
|
12
40
|
env: HOST=i386-pc-linux-gnu MEVAL='export CC="$CC -m32" && CXX="$CXX -m32"'
|
|
@@ -27,8 +55,9 @@ before_install:
|
|
|
27
55
|
- if test x"$MEVAL" != x; then eval ${MEVAL}; fi
|
|
28
56
|
|
|
29
57
|
install:
|
|
30
|
-
- ./.travis/install.sh
|
|
58
|
+
- travis_wait 30 ./.travis/install.sh
|
|
31
59
|
|
|
32
60
|
script:
|
|
33
61
|
- if ! test x"$MEVAL" = x; then eval ${MEVAL}; fi
|
|
62
|
+
- travis_wait 45 sleep infinity &
|
|
34
63
|
- ./.travis/build.sh
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
cd /opt
|
|
4
|
+
|
|
5
|
+
export QEMU_LD_PREFIX=/usr/${HOST}
|
|
6
|
+
|
|
7
|
+
./configure ${HOST+--host=$HOST --disable-shared}
|
|
8
|
+
make
|
|
9
|
+
make dist
|
|
10
|
+
make check RUNTESTFLAGS="-a $RUNTESTFLAGS"
|
|
11
|
+
EXITCODE=$?
|
|
12
|
+
gzip -c -9 */testsuite/libffi.log > libffi.log.gz
|
|
13
|
+
echo ================================================================
|
|
14
|
+
echo The logs are too long for travis to handle, so we compress and
|
|
15
|
+
echo uuencode them. Download, decode and uncompress if you need to
|
|
16
|
+
echo read them.
|
|
17
|
+
echo ================================================================
|
|
18
|
+
uuencode libffi.log.gz -
|
|
19
|
+
echo ================================================================
|
|
20
|
+
echo ================================================================
|
|
21
|
+
exit $EXITCODE
|
|
22
|
+
|
|
@@ -1,7 +1,28 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
set -x
|
|
4
|
+
|
|
5
|
+
if [ -z ${QEMU_CPU+x} ]; then
|
|
6
|
+
export SET_QEMU_CPU=
|
|
7
|
+
else
|
|
8
|
+
export SET_QEMU_CPU="-e QEMU_CPU=${QEMU_CPU}"
|
|
9
|
+
fi
|
|
10
|
+
|
|
11
|
+
# Default to podman where available, docker otherwise.
|
|
12
|
+
# Override by setting the DOCKER environment variable.
|
|
13
|
+
if test -z "$DOCKER"; then
|
|
14
|
+
which podman > /dev/null 2>&1
|
|
15
|
+
if [ $? != 0 ]; then
|
|
16
|
+
export DOCKER=docker
|
|
17
|
+
else
|
|
18
|
+
export DOCKER=podman
|
|
19
|
+
fi
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
function build_cfarm()
|
|
23
|
+
{
|
|
24
|
+
curl -u ${CFARM_AUTH} https://cfarm-test-libffi-libffi.apps.home.labdroid.net/test?host=${HOST}\&commit=${TRAVIS_COMMIT}
|
|
25
|
+
}
|
|
5
26
|
|
|
6
27
|
function build_linux()
|
|
7
28
|
{
|
|
@@ -10,25 +31,80 @@ function build_linux()
|
|
|
10
31
|
make
|
|
11
32
|
make dist
|
|
12
33
|
make check RUNTESTFLAGS="-a $RUNTESTFLAGS"
|
|
13
|
-
|
|
34
|
+
EXITCODE=$?
|
|
35
|
+
|
|
36
|
+
gzip -c -9 */testsuite/libffi.log > libffi.log.gz
|
|
37
|
+
echo ================================================================
|
|
38
|
+
echo The logs are too long for travis to handle, so we compress and
|
|
39
|
+
echo uuencode them. Download, decode and uncompress if you need to
|
|
40
|
+
echo read them. For example, if you select and save this text
|
|
41
|
+
echo as libffi.uu, run: 'cat libffi.uu | uudecode | gzip -d | less'.
|
|
42
|
+
echo ================================================================
|
|
43
|
+
uuencode libffi.log.gz -
|
|
44
|
+
echo ================================================================
|
|
45
|
+
echo ================================================================
|
|
46
|
+
|
|
47
|
+
exit $EXITCODE
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function build_foreign_linux()
|
|
51
|
+
{
|
|
52
|
+
${DOCKER} run --rm -t -i -v `pwd`:/opt ${SET_QEMU_CPU} -e LIBFFI_TEST_OPTIMIZATION="${LIBFFI_TEST_OPTIMIZATION}" $2 bash -c /opt/.travis/build-in-container.sh
|
|
53
|
+
exit $?
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function build_cross_linux()
|
|
57
|
+
{
|
|
58
|
+
${DOCKER} run --rm -t -i -v `pwd`:/opt ${SET_QEMU_CPU} -e HOST="${HOST}" -e CC="${HOST}-gcc-8 ${GCC_OPTIONS}" -e CXX="${HOST}-g++-8 ${GCC_OPTIONS}" -e LIBFFI_TEST_OPTIMIZATION="${LIBFFI_TEST_OPTIMIZATION}" moxielogic/cross-ci-build-container:latest bash -c /opt/.travis/build-in-container.sh
|
|
59
|
+
exit $?
|
|
14
60
|
}
|
|
15
61
|
|
|
16
62
|
function build_ios()
|
|
17
63
|
{
|
|
18
64
|
which python
|
|
19
65
|
# export PYTHON_BIN=/usr/local/bin/python
|
|
20
|
-
./generate-darwin-source-and-headers.py
|
|
66
|
+
./generate-darwin-source-and-headers.py --only-ios
|
|
67
|
+
xcodebuild -showsdks
|
|
68
|
+
xcodebuild -project libffi.xcodeproj -target "libffi-iOS" -configuration Release -sdk iphoneos11.4
|
|
69
|
+
exit $?
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function build_macosx()
|
|
73
|
+
{
|
|
74
|
+
which python
|
|
75
|
+
# export PYTHON_BIN=/usr/local/bin/python
|
|
76
|
+
./generate-darwin-source-and-headers.py --only-osx
|
|
21
77
|
xcodebuild -showsdks
|
|
22
|
-
xcodebuild -project libffi.xcodeproj -target "libffi-
|
|
23
|
-
|
|
78
|
+
xcodebuild -project libffi.xcodeproj -target "libffi-Mac" -configuration Release -sdk macosx10.13
|
|
79
|
+
exit $?
|
|
24
80
|
}
|
|
25
81
|
|
|
26
|
-
./autogen.sh
|
|
27
82
|
case "$HOST" in
|
|
28
83
|
arm-apple-darwin*)
|
|
84
|
+
./autogen.sh
|
|
29
85
|
build_ios
|
|
30
86
|
;;
|
|
87
|
+
x86_64-apple-darwin*)
|
|
88
|
+
./autogen.sh
|
|
89
|
+
build_macosx
|
|
90
|
+
;;
|
|
91
|
+
arm32v7-linux-gnu)
|
|
92
|
+
./autogen.sh
|
|
93
|
+
build_foreign_linux arm moxielogic/arm32v7-ci-build-container:latest
|
|
94
|
+
;;
|
|
95
|
+
aarch64-linux-gnu| powerpc64le-unknown-linux-gnu | mips64el-linux-gnu | sparc64-linux-gnu)
|
|
96
|
+
build_cfarm
|
|
97
|
+
;;
|
|
98
|
+
m68k-linux-gnu )
|
|
99
|
+
./autogen.sh
|
|
100
|
+
GCC_OPTIONS=-mcpu=547x build_cross_linux
|
|
101
|
+
;;
|
|
102
|
+
alpha-linux-gnu | sh4-linux-gnu | s390x-linux-gnu )
|
|
103
|
+
./autogen.sh
|
|
104
|
+
build_cross_linux
|
|
105
|
+
;;
|
|
31
106
|
*)
|
|
107
|
+
./autogen.sh
|
|
32
108
|
build_linux
|
|
33
109
|
;;
|
|
34
110
|
esac
|