ffi 1.9.18-x86-mingw32 → 1.9.21-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of ffi might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/README.md +3 -2
- data/Rakefile +14 -4
- data/ext/ffi_c/AbstractMemory.c +6 -1
- data/ext/ffi_c/Platform.c +10 -2
- data/ext/ffi_c/extconf.rb +7 -2
- data/ext/ffi_c/libffi.bsd.mk +9 -3
- data/ext/ffi_c/libffi.darwin.mk +14 -4
- data/ext/ffi_c/libffi.gnu.mk +2 -1
- data/ext/ffi_c/libffi.mk +9 -4
- data/ext/ffi_c/libffi/ChangeLog.libffi +2 -2
- data/ext/ffi_c/libffi/{ChangeLog → ChangeLog.libffi-3.1} +1402 -2
- data/ext/ffi_c/libffi/ChangeLog.v1 +1 -1
- data/ext/ffi_c/libffi/LICENSE +1 -1
- data/ext/ffi_c/libffi/Makefile.am +166 -157
- data/ext/ffi_c/libffi/Makefile.in +923 -938
- data/ext/ffi_c/libffi/README +164 -52
- data/ext/ffi_c/libffi/acinclude.m4 +381 -0
- data/ext/ffi_c/libffi/aclocal.m4 +645 -384
- data/ext/ffi_c/libffi/autogen.sh +2 -0
- data/ext/ffi_c/libffi/autom4te.cache/output.0 +21972 -0
- data/ext/ffi_c/libffi/autom4te.cache/output.1 +21972 -0
- data/ext/ffi_c/libffi/autom4te.cache/output.2 +21972 -0
- data/ext/ffi_c/libffi/autom4te.cache/output.3 +21972 -0
- data/ext/ffi_c/libffi/autom4te.cache/requests +331 -0
- data/ext/ffi_c/libffi/autom4te.cache/traces.0 +4010 -0
- data/ext/ffi_c/libffi/autom4te.cache/traces.1 +1005 -0
- data/ext/ffi_c/libffi/autom4te.cache/traces.2 +4010 -0
- data/ext/ffi_c/libffi/autom4te.cache/traces.3 +4010 -0
- data/ext/ffi_c/libffi/compile +218 -14
- data/ext/ffi_c/libffi/config.guess +329 -368
- data/ext/ffi_c/libffi/config.sub +232 -112
- data/ext/ffi_c/libffi/configure +6970 -2189
- data/ext/ffi_c/libffi/configure.ac +148 -256
- data/ext/ffi_c/libffi/configure.host +265 -4
- data/ext/ffi_c/libffi/depcomp +346 -185
- data/ext/ffi_c/libffi/doc/Makefile.am +3 -0
- data/ext/ffi_c/libffi/doc/Makefile.in +811 -0
- data/ext/ffi_c/libffi/doc/libffi.texi +430 -45
- data/ext/ffi_c/libffi/{mdate-sh → doc/mdate-sh} +40 -13
- data/ext/ffi_c/libffi/{texinfo.tex → doc/texinfo.tex} +3990 -1121
- data/ext/ffi_c/libffi/doc/version.texi +4 -4
- data/ext/ffi_c/libffi/fficonfig.h.in +24 -13
- data/ext/ffi_c/libffi/fficonfig.h.in~ +210 -0
- data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +207 -0
- data/ext/ffi_c/libffi/include/Makefile.am +3 -3
- data/ext/ffi_c/libffi/include/Makefile.in +188 -71
- data/ext/ffi_c/libffi/include/ffi.h.in +107 -50
- data/ext/ffi_c/libffi/include/ffi_cfi.h +55 -0
- data/ext/ffi_c/libffi/include/ffi_common.h +32 -11
- data/ext/ffi_c/libffi/install-sh +190 -202
- data/ext/ffi_c/libffi/libffi.map.in +80 -0
- data/ext/ffi_c/libffi/libffi.pc.in +3 -2
- data/ext/ffi_c/libffi/libffi.xcodeproj/project.pbxproj +637 -0
- data/ext/ffi_c/libffi/libtool-ldflags +106 -0
- data/ext/ffi_c/libffi/libtool-version +1 -1
- data/ext/ffi_c/libffi/ltmain.sh +3553 -2033
- data/ext/ffi_c/libffi/m4/asmcfi.m4 +13 -0
- data/ext/ffi_c/libffi/m4/ax_append_flag.m4 +69 -0
- data/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +13 -8
- data/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +31 -104
- data/ext/ffi_c/libffi/m4/{ax_check_compiler_flags.m4 → ax_check_compile_flag.m4} +30 -34
- data/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +32 -11
- data/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +6 -5
- data/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +31 -21
- data/ext/ffi_c/libffi/m4/libtool.m4 +1691 -1135
- data/ext/ffi_c/libffi/m4/ltoptions.m4 +104 -36
- data/ext/ffi_c/libffi/m4/ltsugar.m4 +4 -3
- data/ext/ffi_c/libffi/m4/ltversion.m4 +6 -6
- data/ext/ffi_c/libffi/m4/lt~obsolete.m4 +4 -3
- data/ext/ffi_c/libffi/man/Makefile.am +2 -2
- data/ext/ffi_c/libffi/man/Makefile.in +141 -49
- data/ext/ffi_c/libffi/man/ffi.3 +10 -0
- data/ext/ffi_c/libffi/man/ffi_prep_cif.3 +6 -4
- data/ext/ffi_c/libffi/man/ffi_prep_cif_var.3 +73 -0
- data/ext/ffi_c/libffi/missing +150 -311
- data/ext/ffi_c/libffi/msvcc.sh +72 -9
- data/ext/ffi_c/libffi/src/aarch64/ffi.c +941 -0
- data/ext/ffi_c/libffi/src/aarch64/ffitarget.h +81 -0
- data/ext/ffi_c/libffi/src/aarch64/internal.h +67 -0
- data/ext/ffi_c/libffi/src/aarch64/sysv.S +438 -0
- data/ext/ffi_c/libffi/src/alpha/ffi.c +335 -98
- data/ext/ffi_c/libffi/src/alpha/ffitarget.h +10 -1
- data/ext/ffi_c/libffi/src/alpha/internal.h +23 -0
- data/ext/ffi_c/libffi/src/alpha/osf.S +161 -266
- data/ext/ffi_c/libffi/src/arc/arcompact.S +135 -0
- data/ext/ffi_c/libffi/src/arc/ffi.c +266 -0
- data/ext/ffi_c/libffi/src/arc/ffitarget.h +53 -0
- data/ext/ffi_c/libffi/src/arm/ffi.c +597 -517
- data/ext/ffi_c/libffi/src/arm/ffitarget.h +24 -7
- data/ext/ffi_c/libffi/src/arm/internal.h +7 -0
- data/ext/ffi_c/libffi/src/arm/sysv.S +303 -417
- data/ext/ffi_c/libffi/src/avr32/ffitarget.h +6 -1
- data/ext/ffi_c/libffi/src/bfin/ffi.c +196 -0
- data/ext/ffi_c/libffi/src/bfin/ffitarget.h +43 -0
- data/ext/ffi_c/libffi/src/bfin/sysv.S +179 -0
- data/ext/ffi_c/libffi/src/closures.c +319 -44
- data/ext/ffi_c/libffi/src/cris/ffi.c +10 -7
- data/ext/ffi_c/libffi/src/cris/ffitarget.h +6 -1
- data/ext/ffi_c/libffi/src/debug.c +6 -1
- data/ext/ffi_c/libffi/src/dlmalloc.c +16 -11
- data/ext/ffi_c/libffi/src/frv/ffi.c +1 -1
- data/ext/ffi_c/libffi/src/frv/ffitarget.h +6 -1
- data/ext/ffi_c/libffi/src/ia64/ffi.c +11 -7
- data/ext/ffi_c/libffi/src/ia64/ffitarget.h +6 -1
- data/ext/ffi_c/libffi/src/java_raw_api.c +23 -5
- data/ext/ffi_c/libffi/src/m32r/ffi.c +1 -1
- data/ext/ffi_c/libffi/src/m32r/ffitarget.h +6 -1
- data/ext/ffi_c/libffi/src/m68k/ffi.c +87 -13
- data/ext/ffi_c/libffi/src/m68k/ffitarget.h +6 -1
- data/ext/ffi_c/libffi/src/m68k/sysv.S +119 -32
- data/ext/ffi_c/libffi/src/m88k/ffi.c +400 -0
- data/ext/ffi_c/libffi/src/m88k/ffitarget.h +49 -0
- data/ext/ffi_c/libffi/src/m88k/obsd.S +209 -0
- data/ext/ffi_c/libffi/src/metag/ffi.c +330 -0
- data/ext/ffi_c/libffi/{fficonfig.hw → src/metag/ffitarget.h} +22 -26
- data/ext/ffi_c/libffi/src/metag/sysv.S +311 -0
- data/ext/ffi_c/libffi/src/microblaze/ffi.c +321 -0
- data/ext/ffi_c/libffi/src/microblaze/ffitarget.h +53 -0
- data/ext/ffi_c/libffi/src/microblaze/sysv.S +302 -0
- data/ext/ffi_c/libffi/src/mips/ffi.c +95 -28
- data/ext/ffi_c/libffi/src/mips/ffitarget.h +9 -2
- data/ext/ffi_c/libffi/src/mips/n32.S +126 -56
- data/ext/ffi_c/libffi/src/mips/o32.S +148 -27
- data/ext/ffi_c/libffi/src/moxie/eabi.S +55 -82
- data/ext/ffi_c/libffi/src/moxie/ffi.c +40 -44
- data/ext/ffi_c/libffi/src/moxie/ffitarget.h +52 -0
- data/ext/ffi_c/libffi/src/nios2/ffi.c +304 -0
- data/ext/ffi_c/libffi/src/nios2/ffitarget.h +52 -0
- data/ext/ffi_c/libffi/src/nios2/sysv.S +136 -0
- data/ext/ffi_c/libffi/src/or1k/ffi.c +328 -0
- data/ext/ffi_c/libffi/src/or1k/ffitarget.h +58 -0
- data/ext/ffi_c/libffi/src/or1k/sysv.S +107 -0
- data/ext/ffi_c/libffi/src/pa/ffitarget.h +8 -1
- data/ext/ffi_c/libffi/src/powerpc/aix.S +6 -6
- data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +3 -1
- data/ext/ffi_c/libffi/src/powerpc/asm.h +2 -2
- data/ext/ffi_c/libffi/src/powerpc/darwin.S +2 -7
- data/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +22 -26
- data/ext/ffi_c/libffi/src/powerpc/ffi.c +103 -1378
- data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +25 -25
- data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +945 -0
- data/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +94 -0
- data/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +923 -0
- data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +100 -44
- data/ext/ffi_c/libffi/src/powerpc/linux64.S +100 -59
- data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +360 -108
- data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +138 -68
- data/ext/ffi_c/libffi/src/powerpc/sysv.S +68 -112
- data/ext/ffi_c/libffi/src/prep_cif.c +108 -24
- data/ext/ffi_c/libffi/src/raw_api.c +18 -5
- data/ext/ffi_c/libffi/src/s390/ffi.c +294 -318
- data/ext/ffi_c/libffi/src/s390/ffitarget.h +9 -1
- data/ext/ffi_c/libffi/src/s390/internal.h +11 -0
- data/ext/ffi_c/libffi/src/s390/sysv.S +257 -366
- data/ext/ffi_c/libffi/src/sh/ffi.c +4 -3
- data/ext/ffi_c/libffi/src/sh/ffitarget.h +6 -1
- data/ext/ffi_c/libffi/src/sh64/ffi.c +3 -2
- data/ext/ffi_c/libffi/src/sh64/ffitarget.h +6 -1
- data/ext/ffi_c/libffi/src/sparc/ffi.c +326 -527
- data/ext/ffi_c/libffi/src/sparc/ffi64.c +608 -0
- data/ext/ffi_c/libffi/src/sparc/ffitarget.h +20 -7
- data/ext/ffi_c/libffi/src/sparc/internal.h +26 -0
- data/ext/ffi_c/libffi/src/sparc/v8.S +364 -234
- data/ext/ffi_c/libffi/src/sparc/v9.S +340 -207
- data/ext/ffi_c/libffi/src/tile/ffi.c +355 -0
- data/ext/ffi_c/libffi/src/tile/ffitarget.h +65 -0
- data/ext/ffi_c/libffi/src/tile/tile.S +360 -0
- data/ext/ffi_c/libffi/src/types.c +43 -14
- data/ext/ffi_c/libffi/src/vax/elfbsd.S +195 -0
- data/ext/ffi_c/libffi/src/vax/ffi.c +276 -0
- data/ext/ffi_c/libffi/src/vax/ffitarget.h +49 -0
- data/ext/ffi_c/libffi/src/x86/asmnames.h +30 -0
- data/ext/ffi_c/libffi/src/x86/ffi.c +589 -500
- data/ext/ffi_c/libffi/src/x86/ffi64.c +338 -116
- data/ext/ffi_c/libffi/src/x86/ffitarget.h +55 -35
- data/ext/ffi_c/libffi/src/x86/ffiw64.c +287 -0
- data/ext/ffi_c/libffi/src/x86/internal.h +29 -0
- data/ext/ffi_c/libffi/src/x86/internal64.h +22 -0
- data/ext/ffi_c/libffi/src/x86/sysv.S +975 -400
- data/ext/ffi_c/libffi/src/x86/unix64.S +398 -299
- data/ext/ffi_c/libffi/src/x86/win64.S +222 -458
- data/ext/ffi_c/libffi/src/x86/win64_intel.S +237 -0
- data/ext/ffi_c/libffi/src/xtensa/ffi.c +298 -0
- data/ext/ffi_c/libffi/src/xtensa/ffitarget.h +53 -0
- data/ext/ffi_c/libffi/src/xtensa/sysv.S +253 -0
- data/ext/ffi_c/libffi/stamp-h.in +1 -0
- data/ext/ffi_c/libffi/testsuite/Makefile.am +78 -73
- data/ext/ffi_c/libffi/testsuite/Makefile.in +218 -111
- data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +120 -25
- data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +21 -1
- data/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +46 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +4 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/{closure_stdcall.c → closure_simple.c} +7 -16
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c +4 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c +4 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_dbls_struct.c +4 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c +10 -9
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c +3 -3
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c +10 -9
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_args.c +70 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_float_double.c +55 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c +1 -1
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c +11 -9
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_struct_va1.c +114 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar_va.c +44 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint_va.c +45 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulong_va.c +45 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort_va.c +44 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +2 -2
- data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +23 -40
- data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +3 -1
- data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +6 -4
- data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +4 -2
- data/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +107 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c +18 -19
- data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +6 -16
- data/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +57 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +70 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +78 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +0 -1
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +6 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +8 -8
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +6 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct11.c +121 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +6 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +6 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +6 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +46 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +127 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +1 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +1 -1
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +1 -1
- data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +1 -1
- data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large.c +7 -7
- data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large2.c +7 -7
- data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c +5 -5
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +2 -2
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +49 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +49 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +55 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +9 -7
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +7 -7
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +7 -6
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +9 -8
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +9 -8
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +9 -9
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +9 -9
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +9 -8
- data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +9 -8
- data/ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c +2 -2
- data/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +61 -0
- data/ext/ffi_c/libffi/testsuite/{libffi.special → libffi.call}/unwindtest.cc +3 -10
- data/ext/ffi_c/libffi/testsuite/{libffi.special → libffi.call}/unwindtest_ffi_call.cc +2 -1
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +196 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +121 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +123 -0
- data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +125 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +91 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +42 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +71 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +80 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +16 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/{libffi.special/special.exp → libffi.complex/complex.exp} +9 -8
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +51 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +7 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +7 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +7 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +86 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +1 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +78 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +37 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +41 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +44 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +10 -0
- data/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +34 -0
- data/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +28 -0
- data/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +1 -0
- data/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +36 -0
- data/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +19 -0
- data/ffi.gemspec +2 -2
- data/lib/2.0/ffi_c.so +0 -0
- data/lib/2.1/ffi_c.so +0 -0
- data/lib/2.2/ffi_c.so +0 -0
- data/lib/2.3/ffi_c.so +0 -0
- data/lib/2.4/ffi_c.so +0 -0
- data/lib/2.5/ffi_c.so +0 -0
- data/lib/ffi/enum.rb +124 -0
- data/lib/ffi/library.rb +65 -13
- data/lib/ffi/platform.rb +7 -2
- data/lib/ffi/platform/sparc64-linux/types.conf +102 -0
- data/lib/ffi/platform/x86_64-windows/types.conf +113 -20
- data/lib/ffi/pointer.rb +1 -0
- data/lib/ffi/struct.rb +0 -2
- data/lib/ffi/version.rb +1 -1
- data/spec/ffi/bitmask_spec.rb +575 -0
- data/spec/ffi/embed-test/ext/Makefile +242 -0
- data/spec/ffi/fixtures/BitmaskTest.c +51 -0
- data/spec/ffi/rbx/memory_pointer_spec.rb +4 -0
- data/spec/ffi/struct_spec.rb +0 -4
- metadata +158 -32
- data/ext/ffi_c/libffi/Makefile.vc +0 -141
- data/ext/ffi_c/libffi/Makefile.vc64 +0 -141
- data/ext/ffi_c/libffi/build-ios.sh +0 -67
- data/ext/ffi_c/libffi/doc/libffi.info +0 -593
- data/ext/ffi_c/libffi/doc/stamp-vti +0 -4
- data/ext/ffi_c/libffi/include/ffi.h.vc +0 -427
- data/ext/ffi_c/libffi/include/ffi.h.vc64 +0 -427
- data/ext/ffi_c/libffi/src/arm/gentramp.sh +0 -118
- data/ext/ffi_c/libffi/src/arm/trampoline.S +0 -4450
- data/ext/ffi_c/libffi/src/x86/darwin.S +0 -444
- data/ext/ffi_c/libffi/src/x86/darwin64.S +0 -416
- data/ext/ffi_c/libffi/src/x86/freebsd.S +0 -458
- data/ext/ffi_c/libffi/src/x86/win32.S +0 -1065
- data/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +0 -300
- data/ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c +0 -63
- data/ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c +0 -44
- data/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +0 -96
@@ -1,11 +1,272 @@
|
|
1
1
|
# configure.host
|
2
2
|
#
|
3
3
|
# This shell script handles all host based configuration for libffi.
|
4
|
-
#
|
4
|
+
#
|
5
5
|
|
6
6
|
# THIS TABLE IS SORTED. KEEP IT THAT WAY.
|
7
|
+
# Most of the time we can define all the variables all at once...
|
7
8
|
case "${host}" in
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
aarch64*-*-*)
|
10
|
+
TARGET=AARCH64; TARGETDIR=aarch64
|
11
|
+
SOURCES="ffi.c sysv.S"
|
12
|
+
;;
|
13
|
+
|
14
|
+
alpha*-*-*)
|
15
|
+
TARGET=ALPHA; TARGETDIR=alpha;
|
16
|
+
# Support 128-bit long double, changeable via command-line switch.
|
17
|
+
HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)'
|
18
|
+
SOURCES="ffi.c osf.S"
|
19
|
+
;;
|
20
|
+
|
21
|
+
arc*-*-*)
|
22
|
+
TARGET=ARC; TARGETDIR=arc
|
23
|
+
SOURCES="ffi.c arcompact.S"
|
24
|
+
;;
|
25
|
+
|
26
|
+
arm*-*-*)
|
27
|
+
TARGET=ARM; TARGETDIR=arm
|
28
|
+
SOURCES="ffi.c sysv.S"
|
29
|
+
;;
|
30
|
+
|
31
|
+
avr32*-*-*)
|
32
|
+
TARGET=AVR32; TARGETDIR=avr32
|
33
|
+
SOURCES="ffi.c sysv.S"
|
34
|
+
;;
|
35
|
+
|
36
|
+
bfin*)
|
37
|
+
TARGET=BFIN; TARGETDIR=bfin
|
38
|
+
SOURCES="ffi.c sysv.S"
|
39
|
+
;;
|
40
|
+
|
41
|
+
cris-*-*)
|
42
|
+
TARGET=LIBFFI_CRIS; TARGETDIR=cris
|
43
|
+
SOURCES="ffi.c sysv.S"
|
44
|
+
;;
|
45
|
+
|
46
|
+
frv-*-*)
|
47
|
+
TARGET=FRV; TARGETDIR=frv
|
48
|
+
SOURCES="ffi.c eabi.S"
|
49
|
+
;;
|
50
|
+
|
51
|
+
hppa*-*-linux* | parisc*-*-linux* | hppa*-*-openbsd*)
|
52
|
+
TARGET=PA_LINUX; TARGETDIR=pa
|
53
|
+
SOURCES="ffi.c linux.S"
|
54
|
+
;;
|
55
|
+
hppa*64-*-hpux*)
|
56
|
+
TARGET=PA64_HPUX; TARGETDIR=pa
|
57
|
+
;;
|
58
|
+
hppa*-*-hpux*)
|
59
|
+
TARGET=PA_HPUX; TARGETDIR=pa
|
60
|
+
SOURCES="ffi.c hpux32.S"
|
61
|
+
;;
|
62
|
+
|
63
|
+
i?86-*-freebsd* | i?86-*-openbsd*)
|
64
|
+
TARGET=X86_FREEBSD; TARGETDIR=x86
|
65
|
+
;;
|
66
|
+
|
67
|
+
i?86-*-cygwin* | i?86-*-mingw* | i?86-*-os2* | i?86-*-interix* \
|
68
|
+
| x86_64-*-cygwin* | x86_64-*-mingw* | x86_64-*-win* )
|
69
|
+
TARGETDIR=x86
|
70
|
+
if test $ac_cv_sizeof_size_t = 4; then
|
71
|
+
TARGET=X86_WIN32
|
72
|
+
else
|
73
|
+
TARGET=X86_WIN64
|
74
|
+
fi
|
75
|
+
if test "${ax_cv_c_compiler_vendor}" = "microsoft"; then
|
76
|
+
MSVC=1
|
77
|
+
if test $ac_cv_sizeof_size_t = 4; then
|
78
|
+
# libffi does not support microsoft tools for 32-bit windows
|
79
|
+
# hosts. Try porting src/x86/sysv.S to intel assembly
|
80
|
+
# format.
|
81
|
+
UNSUPPORTED=1
|
82
|
+
fi
|
83
|
+
fi
|
84
|
+
# All mingw/cygwin/win32 builds require -no-undefined for sharedlib.
|
85
|
+
# We must also check with_cross_host to decide if this is a native
|
86
|
+
# or cross-build and select where to install dlls appropriately.
|
87
|
+
if test -n "$with_cross_host" &&
|
88
|
+
test x"$with_cross_host" != x"no"; then
|
89
|
+
AM_LTLDFLAGS='-no-undefined -bindir "$(toolexeclibdir)"';
|
90
|
+
else
|
91
|
+
AM_LTLDFLAGS='-no-undefined -bindir "$(bindir)"';
|
92
|
+
fi
|
93
|
+
;;
|
94
|
+
|
95
|
+
i?86-*-darwin* | x86_64-*-darwin*)
|
96
|
+
TARGETDIR=x86
|
97
|
+
if test $ac_cv_sizeof_size_t = 4; then
|
98
|
+
TARGET=X86_DARWIN
|
99
|
+
else
|
100
|
+
TARGET=X86_64
|
101
|
+
fi
|
102
|
+
;;
|
103
|
+
|
104
|
+
i?86-*-* | x86_64-*-* | amd64-*)
|
105
|
+
TARGETDIR=x86
|
106
|
+
if test $ac_cv_sizeof_size_t = 4; then
|
107
|
+
case "$host" in
|
108
|
+
x86_64-*x32|x86_64-x32-*)
|
109
|
+
TARGET=X86_64
|
110
|
+
;;
|
111
|
+
*)
|
112
|
+
TARGET=X86
|
113
|
+
;;
|
114
|
+
esac
|
115
|
+
else
|
116
|
+
TARGET=X86_64;
|
117
|
+
fi
|
118
|
+
;;
|
119
|
+
|
120
|
+
ia64*-*-*)
|
121
|
+
TARGET=IA64; TARGETDIR=ia64
|
122
|
+
SOURCES="ffi.c unix.S"
|
123
|
+
;;
|
124
|
+
|
125
|
+
m32r*-*-*)
|
126
|
+
TARGET=M32R; TARGETDIR=m32r
|
127
|
+
SOURCES="ffi.c sysv.S"
|
128
|
+
;;
|
129
|
+
|
130
|
+
m68k-*-*)
|
131
|
+
TARGET=M68K; TARGETDIR=m68k
|
132
|
+
SOURCES="ffi.c sysv.S"
|
133
|
+
;;
|
134
|
+
|
135
|
+
m88k-*-*)
|
136
|
+
TARGET=M88K; TARGETDIR=m88k
|
137
|
+
SOURCES="ffi.c obsd.S"
|
138
|
+
;;
|
139
|
+
|
140
|
+
microblaze*-*-*)
|
141
|
+
TARGET=MICROBLAZE; TARGETDIR=microblaze
|
142
|
+
SOURCES="ffi.c sysv.S"
|
143
|
+
;;
|
144
|
+
|
145
|
+
moxie-*-*)
|
146
|
+
TARGET=MOXIE; TARGETDIR=moxie
|
147
|
+
SOURCES="ffi.c eabi.S"
|
148
|
+
;;
|
149
|
+
|
150
|
+
metag-*-*)
|
151
|
+
TARGET=METAG; TARGETDIR=metag
|
152
|
+
SOURCES="ffi.c sysv.S"
|
153
|
+
;;
|
154
|
+
|
155
|
+
mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*)
|
156
|
+
TARGET=MIPS; TARGETDIR=mips
|
157
|
+
;;
|
158
|
+
mips*-*linux* | mips*-*-openbsd*)
|
159
|
+
# Support 128-bit long double for NewABI.
|
160
|
+
HAVE_LONG_DOUBLE='defined(__mips64)'
|
161
|
+
TARGET=MIPS; TARGETDIR=mips
|
162
|
+
;;
|
163
|
+
|
164
|
+
nios2*-linux*)
|
165
|
+
TARGET=NIOS2; TARGETDIR=nios2
|
166
|
+
SOURCES="ffi.c sysv.S"
|
167
|
+
;;
|
168
|
+
|
169
|
+
or1k*-linux*)
|
170
|
+
TARGET=OR1K; TARGETDIR=or1k
|
171
|
+
SOURCES="ffi.c sysv.S"
|
172
|
+
;;
|
173
|
+
|
174
|
+
powerpc*-*-linux* | powerpc-*-sysv*)
|
175
|
+
TARGET=POWERPC; TARGETDIR=powerpc
|
176
|
+
HAVE_LONG_DOUBLE_VARIANT=1
|
177
|
+
;;
|
178
|
+
powerpc-*-amigaos*)
|
179
|
+
TARGET=POWERPC; TARGETDIR=powerpc
|
180
|
+
;;
|
181
|
+
powerpc-*-beos*)
|
182
|
+
TARGET=POWERPC; TARGETDIR=powerpc
|
183
|
+
;;
|
184
|
+
powerpc-*-darwin* | powerpc64-*-darwin*)
|
185
|
+
TARGET=POWERPC_DARWIN; TARGETDIR=powerpc
|
186
|
+
;;
|
187
|
+
powerpc-*-aix* | rs6000-*-aix*)
|
188
|
+
TARGET=POWERPC_AIX; TARGETDIR=powerpc
|
189
|
+
;;
|
190
|
+
powerpc-*-freebsd* | powerpc-*-openbsd* | powerpc-*-netbsd*)
|
191
|
+
TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
|
192
|
+
HAVE_LONG_DOUBLE_VARIANT=1
|
193
|
+
;;
|
194
|
+
powerpc64-*-freebsd*)
|
195
|
+
TARGET=POWERPC; TARGETDIR=powerpc
|
196
|
+
;;
|
197
|
+
powerpc*-*-rtems*)
|
198
|
+
TARGET=POWERPC; TARGETDIR=powerpc
|
199
|
+
;;
|
200
|
+
|
201
|
+
s390-*-* | s390x-*-*)
|
202
|
+
TARGET=S390; TARGETDIR=s390
|
203
|
+
SOURCES="ffi.c sysv.S"
|
204
|
+
;;
|
205
|
+
|
206
|
+
sh-*-* | sh[34]*-*-*)
|
207
|
+
TARGET=SH; TARGETDIR=sh
|
208
|
+
SOURCES="ffi.c sysv.S"
|
209
|
+
;;
|
210
|
+
sh64-*-* | sh5*-*-*)
|
211
|
+
TARGET=SH64; TARGETDIR=sh64
|
212
|
+
SOURCES="ffi.c sysv.S"
|
213
|
+
;;
|
214
|
+
|
215
|
+
sparc*-*-*)
|
216
|
+
TARGET=SPARC; TARGETDIR=sparc
|
217
|
+
SOURCES="ffi.c ffi64.c v8.S v9.S"
|
218
|
+
;;
|
219
|
+
|
220
|
+
tile*-*)
|
221
|
+
TARGET=TILE; TARGETDIR=tile
|
222
|
+
SOURCES="ffi.c tile.S"
|
223
|
+
;;
|
224
|
+
|
225
|
+
vax-*-*)
|
226
|
+
TARGET=VAX; TARGETDIR=vax
|
227
|
+
SOURCES="ffi.c elfbsd.S"
|
228
|
+
;;
|
229
|
+
|
230
|
+
xtensa*-*)
|
231
|
+
TARGET=XTENSA; TARGETDIR=xtensa
|
232
|
+
SOURCES="ffi.c sysv.S"
|
233
|
+
;;
|
234
|
+
esac
|
235
|
+
|
236
|
+
# ... but some of the cases above share configury.
|
237
|
+
case "${TARGET}" in
|
238
|
+
MIPS)
|
239
|
+
SOURCES="ffi.c o32.S n32.S"
|
240
|
+
;;
|
241
|
+
POWERPC)
|
242
|
+
SOURCES="ffi.c ffi_sysv.c ffi_linux64.c sysv.S ppc_closure.S"
|
243
|
+
SOURCES="${SOURCES} linux64.S linux64_closure.S"
|
244
|
+
;;
|
245
|
+
POWERPC_AIX)
|
246
|
+
SOURCES="ffi_darwin.c aix.S aix_closure.S"
|
247
|
+
;;
|
248
|
+
POWERPC_DARWIN)
|
249
|
+
SOURCES="ffi_darwin.c darwin.S darwin_closure.S"
|
250
|
+
;;
|
251
|
+
POWERPC_FREEBSD)
|
252
|
+
SOURCES="ffi.c ffi_sysv.c sysv.S ppc_closure.S"
|
253
|
+
;;
|
254
|
+
X86 | X86_DARWIN | X86_FREEBSD | X86_WIN32)
|
255
|
+
SOURCES="ffi.c sysv.S"
|
256
|
+
;;
|
257
|
+
X86_64)
|
258
|
+
SOURCES="ffi64.c unix64.S ffiw64.c win64.S"
|
259
|
+
;;
|
260
|
+
X86_WIN64)
|
261
|
+
if test "$MSVC" = 1; then
|
262
|
+
SOURCES="ffiw64.c win64_intel.S"
|
263
|
+
else
|
264
|
+
SOURCES="ffiw64.c win64.S"
|
265
|
+
fi
|
266
|
+
;;
|
11
267
|
esac
|
268
|
+
|
269
|
+
# If we failed to configure SOURCES, we can't do anything.
|
270
|
+
if test -z "${SOURCES}"; then
|
271
|
+
UNSUPPORTED=1
|
272
|
+
fi
|
data/ext/ffi_c/libffi/depcomp
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
#! /bin/sh
|
2
2
|
# depcomp - compile a program generating dependencies as side-effects
|
3
3
|
|
4
|
-
scriptversion=
|
4
|
+
scriptversion=2013-05-30.07; # UTC
|
5
5
|
|
6
|
-
# Copyright (C) 1999
|
7
|
-
# Software Foundation, Inc.
|
6
|
+
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
8
7
|
|
9
8
|
# This program is free software; you can redistribute it and/or modify
|
10
9
|
# it under the terms of the GNU General Public License as published by
|
@@ -28,9 +27,9 @@ scriptversion=2009-04-28.21; # UTC
|
|
28
27
|
|
29
28
|
case $1 in
|
30
29
|
'')
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
31
|
+
exit 1;
|
32
|
+
;;
|
34
33
|
-h | --h*)
|
35
34
|
cat <<\EOF
|
36
35
|
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
@@ -40,11 +39,11 @@ as side-effects.
|
|
40
39
|
|
41
40
|
Environment variables:
|
42
41
|
depmode Dependency tracking mode.
|
43
|
-
source Source file read by
|
44
|
-
object Object file output by
|
42
|
+
source Source file read by 'PROGRAMS ARGS'.
|
43
|
+
object Object file output by 'PROGRAMS ARGS'.
|
45
44
|
DEPDIR directory where to store dependencies.
|
46
45
|
depfile Dependency file to output.
|
47
|
-
tmpdepfile Temporary file to use when
|
46
|
+
tmpdepfile Temporary file to use when outputting dependencies.
|
48
47
|
libtool Whether libtool is used (yes/no).
|
49
48
|
|
50
49
|
Report bugs to <bug-automake@gnu.org>.
|
@@ -57,6 +56,66 @@ EOF
|
|
57
56
|
;;
|
58
57
|
esac
|
59
58
|
|
59
|
+
# Get the directory component of the given path, and save it in the
|
60
|
+
# global variables '$dir'. Note that this directory component will
|
61
|
+
# be either empty or ending with a '/' character. This is deliberate.
|
62
|
+
set_dir_from ()
|
63
|
+
{
|
64
|
+
case $1 in
|
65
|
+
*/*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
|
66
|
+
*) dir=;;
|
67
|
+
esac
|
68
|
+
}
|
69
|
+
|
70
|
+
# Get the suffix-stripped basename of the given path, and save it the
|
71
|
+
# global variable '$base'.
|
72
|
+
set_base_from ()
|
73
|
+
{
|
74
|
+
base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
|
75
|
+
}
|
76
|
+
|
77
|
+
# If no dependency file was actually created by the compiler invocation,
|
78
|
+
# we still have to create a dummy depfile, to avoid errors with the
|
79
|
+
# Makefile "include basename.Plo" scheme.
|
80
|
+
make_dummy_depfile ()
|
81
|
+
{
|
82
|
+
echo "#dummy" > "$depfile"
|
83
|
+
}
|
84
|
+
|
85
|
+
# Factor out some common post-processing of the generated depfile.
|
86
|
+
# Requires the auxiliary global variable '$tmpdepfile' to be set.
|
87
|
+
aix_post_process_depfile ()
|
88
|
+
{
|
89
|
+
# If the compiler actually managed to produce a dependency file,
|
90
|
+
# post-process it.
|
91
|
+
if test -f "$tmpdepfile"; then
|
92
|
+
# Each line is of the form 'foo.o: dependency.h'.
|
93
|
+
# Do two passes, one to just change these to
|
94
|
+
# $object: dependency.h
|
95
|
+
# and one to simply output
|
96
|
+
# dependency.h:
|
97
|
+
# which is needed to avoid the deleted-header problem.
|
98
|
+
{ sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
|
99
|
+
sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
|
100
|
+
} > "$depfile"
|
101
|
+
rm -f "$tmpdepfile"
|
102
|
+
else
|
103
|
+
make_dummy_depfile
|
104
|
+
fi
|
105
|
+
}
|
106
|
+
|
107
|
+
# A tabulation character.
|
108
|
+
tab=' '
|
109
|
+
# A newline character.
|
110
|
+
nl='
|
111
|
+
'
|
112
|
+
# Character ranges might be problematic outside the C locale.
|
113
|
+
# These definitions help.
|
114
|
+
upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
115
|
+
lower=abcdefghijklmnopqrstuvwxyz
|
116
|
+
digits=0123456789
|
117
|
+
alpha=${upper}${lower}
|
118
|
+
|
60
119
|
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
61
120
|
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
62
121
|
exit 1
|
@@ -69,6 +128,9 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
|
69
128
|
|
70
129
|
rm -f "$tmpdepfile"
|
71
130
|
|
131
|
+
# Avoid interferences from the environment.
|
132
|
+
gccflag= dashmflag=
|
133
|
+
|
72
134
|
# Some modes work just like other modes, but use different flags. We
|
73
135
|
# parameterize here, but still list the modes in the big case below,
|
74
136
|
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
@@ -80,18 +142,32 @@ if test "$depmode" = hp; then
|
|
80
142
|
fi
|
81
143
|
|
82
144
|
if test "$depmode" = dashXmstdout; then
|
83
|
-
|
84
|
-
|
85
|
-
|
145
|
+
# This is just like dashmstdout with a different argument.
|
146
|
+
dashmflag=-xM
|
147
|
+
depmode=dashmstdout
|
86
148
|
fi
|
87
149
|
|
88
150
|
cygpath_u="cygpath -u -f -"
|
89
151
|
if test "$depmode" = msvcmsys; then
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
152
|
+
# This is just like msvisualcpp but w/o cygpath translation.
|
153
|
+
# Just convert the backslash-escaped backslashes to single forward
|
154
|
+
# slashes to satisfy depend.m4
|
155
|
+
cygpath_u='sed s,\\\\,/,g'
|
156
|
+
depmode=msvisualcpp
|
157
|
+
fi
|
158
|
+
|
159
|
+
if test "$depmode" = msvc7msys; then
|
160
|
+
# This is just like msvc7 but w/o cygpath translation.
|
161
|
+
# Just convert the backslash-escaped backslashes to single forward
|
162
|
+
# slashes to satisfy depend.m4
|
163
|
+
cygpath_u='sed s,\\\\,/,g'
|
164
|
+
depmode=msvc7
|
165
|
+
fi
|
166
|
+
|
167
|
+
if test "$depmode" = xlc; then
|
168
|
+
# IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
|
169
|
+
gccflag=-qmakedep=gcc,-MF
|
170
|
+
depmode=gcc
|
95
171
|
fi
|
96
172
|
|
97
173
|
case "$depmode" in
|
@@ -114,8 +190,7 @@ gcc3)
|
|
114
190
|
done
|
115
191
|
"$@"
|
116
192
|
stat=$?
|
117
|
-
if test $stat -
|
118
|
-
else
|
193
|
+
if test $stat -ne 0; then
|
119
194
|
rm -f "$tmpdepfile"
|
120
195
|
exit $stat
|
121
196
|
fi
|
@@ -123,13 +198,17 @@ gcc3)
|
|
123
198
|
;;
|
124
199
|
|
125
200
|
gcc)
|
201
|
+
## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
|
202
|
+
## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
|
203
|
+
## (see the conditional assignment to $gccflag above).
|
126
204
|
## There are various ways to get dependency output from gcc. Here's
|
127
205
|
## why we pick this rather obscure method:
|
128
206
|
## - Don't want to use -MD because we'd like the dependencies to end
|
129
207
|
## up in a subdir. Having to rename by hand is ugly.
|
130
208
|
## (We might end up doing this anyway to support other compilers.)
|
131
209
|
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
132
|
-
## -MM, not -M (despite what the docs say).
|
210
|
+
## -MM, not -M (despite what the docs say). Also, it might not be
|
211
|
+
## supported by the other compilers which use the 'gcc' depmode.
|
133
212
|
## - Using -M directly means running the compiler twice (even worse
|
134
213
|
## than renaming).
|
135
214
|
if test -z "$gccflag"; then
|
@@ -137,31 +216,31 @@ gcc)
|
|
137
216
|
fi
|
138
217
|
"$@" -Wp,"$gccflag$tmpdepfile"
|
139
218
|
stat=$?
|
140
|
-
if test $stat -
|
141
|
-
else
|
219
|
+
if test $stat -ne 0; then
|
142
220
|
rm -f "$tmpdepfile"
|
143
221
|
exit $stat
|
144
222
|
fi
|
145
223
|
rm -f "$depfile"
|
146
224
|
echo "$object : \\" > "$depfile"
|
147
|
-
|
148
|
-
|
225
|
+
# The second -e expression handles DOS-style file names with drive
|
226
|
+
# letters.
|
149
227
|
sed -e 's/^[^:]*: / /' \
|
150
228
|
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
151
|
-
## This next piece of magic avoids the
|
229
|
+
## This next piece of magic avoids the "deleted header file" problem.
|
152
230
|
## The problem is that when a header file which appears in a .P file
|
153
231
|
## is deleted, the dependency causes make to die (because there is
|
154
232
|
## typically no way to rebuild the header). We avoid this by adding
|
155
233
|
## dummy dependencies for each header file. Too bad gcc doesn't do
|
156
234
|
## this for us directly.
|
157
|
-
|
158
|
-
' < "$tmpdepfile" |
|
159
|
-
## Some versions of gcc put a space before the `:'. On the theory
|
235
|
+
## Some versions of gcc put a space before the ':'. On the theory
|
160
236
|
## that the space means something, we add a space to the output as
|
161
|
-
## well.
|
237
|
+
## well. hp depmode also adds that space, but also prefixes the VPATH
|
238
|
+
## to the object. Take care to not repeat it in the output.
|
162
239
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
163
240
|
## correctly. Breaking it into two sed invocations is a workaround.
|
164
|
-
|
241
|
+
tr ' ' "$nl" < "$tmpdepfile" \
|
242
|
+
| sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
|
243
|
+
| sed -e 's/$/ :/' >> "$depfile"
|
165
244
|
rm -f "$tmpdepfile"
|
166
245
|
;;
|
167
246
|
|
@@ -179,8 +258,7 @@ sgi)
|
|
179
258
|
"$@" -MDupdate "$tmpdepfile"
|
180
259
|
fi
|
181
260
|
stat=$?
|
182
|
-
if test $stat -
|
183
|
-
else
|
261
|
+
if test $stat -ne 0; then
|
184
262
|
rm -f "$tmpdepfile"
|
185
263
|
exit $stat
|
186
264
|
fi
|
@@ -188,43 +266,41 @@ sgi)
|
|
188
266
|
|
189
267
|
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
190
268
|
echo "$object : \\" > "$depfile"
|
191
|
-
|
192
269
|
# Clip off the initial element (the dependent). Don't try to be
|
193
270
|
# clever and replace this with sed code, as IRIX sed won't handle
|
194
271
|
# lines with more than a fixed number of characters (4096 in
|
195
272
|
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
196
|
-
# the IRIX cc adds comments like
|
273
|
+
# the IRIX cc adds comments like '#:fec' to the end of the
|
197
274
|
# dependency line.
|
198
|
-
tr ' '
|
199
|
-
'
|
200
|
-
|
201
|
-
tr '
|
202
|
-
' ' ' >> "$depfile"
|
275
|
+
tr ' ' "$nl" < "$tmpdepfile" \
|
276
|
+
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
|
277
|
+
| tr "$nl" ' ' >> "$depfile"
|
203
278
|
echo >> "$depfile"
|
204
|
-
|
205
279
|
# The second pass generates a dummy entry for each header file.
|
206
|
-
tr ' '
|
207
|
-
'
|
208
|
-
|
209
|
-
>> "$depfile"
|
280
|
+
tr ' ' "$nl" < "$tmpdepfile" \
|
281
|
+
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
282
|
+
>> "$depfile"
|
210
283
|
else
|
211
|
-
|
212
|
-
# store a dummy comment line, to avoid errors with the Makefile
|
213
|
-
# "include basename.Plo" scheme.
|
214
|
-
echo "#dummy" > "$depfile"
|
284
|
+
make_dummy_depfile
|
215
285
|
fi
|
216
286
|
rm -f "$tmpdepfile"
|
217
287
|
;;
|
218
288
|
|
289
|
+
xlc)
|
290
|
+
# This case exists only to let depend.m4 do its work. It works by
|
291
|
+
# looking at the text of this script. This case will never be run,
|
292
|
+
# since it is checked for above.
|
293
|
+
exit 1
|
294
|
+
;;
|
295
|
+
|
219
296
|
aix)
|
220
297
|
# The C for AIX Compiler uses -M and outputs the dependencies
|
221
298
|
# in a .u file. In older versions, this file always lives in the
|
222
|
-
# current directory. Also, the AIX compiler puts
|
299
|
+
# current directory. Also, the AIX compiler puts '$object:' at the
|
223
300
|
# start of each line; $object doesn't have directory information.
|
224
301
|
# Version 6 uses the directory in both cases.
|
225
|
-
|
226
|
-
|
227
|
-
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
302
|
+
set_dir_from "$object"
|
303
|
+
set_base_from "$object"
|
228
304
|
if test "$libtool" = yes; then
|
229
305
|
tmpdepfile1=$dir$base.u
|
230
306
|
tmpdepfile2=$base.u
|
@@ -237,9 +313,7 @@ aix)
|
|
237
313
|
"$@" -M
|
238
314
|
fi
|
239
315
|
stat=$?
|
240
|
-
|
241
|
-
if test $stat -eq 0; then :
|
242
|
-
else
|
316
|
+
if test $stat -ne 0; then
|
243
317
|
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
244
318
|
exit $stat
|
245
319
|
fi
|
@@ -248,44 +322,100 @@ aix)
|
|
248
322
|
do
|
249
323
|
test -f "$tmpdepfile" && break
|
250
324
|
done
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
325
|
+
aix_post_process_depfile
|
326
|
+
;;
|
327
|
+
|
328
|
+
tcc)
|
329
|
+
# tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
|
330
|
+
# FIXME: That version still under development at the moment of writing.
|
331
|
+
# Make that this statement remains true also for stable, released
|
332
|
+
# versions.
|
333
|
+
# It will wrap lines (doesn't matter whether long or short) with a
|
334
|
+
# trailing '\', as in:
|
335
|
+
#
|
336
|
+
# foo.o : \
|
337
|
+
# foo.c \
|
338
|
+
# foo.h \
|
339
|
+
#
|
340
|
+
# It will put a trailing '\' even on the last line, and will use leading
|
341
|
+
# spaces rather than leading tabs (at least since its commit 0394caf7
|
342
|
+
# "Emit spaces for -MD").
|
343
|
+
"$@" -MD -MF "$tmpdepfile"
|
344
|
+
stat=$?
|
345
|
+
if test $stat -ne 0; then
|
346
|
+
rm -f "$tmpdepfile"
|
347
|
+
exit $stat
|
263
348
|
fi
|
349
|
+
rm -f "$depfile"
|
350
|
+
# Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
|
351
|
+
# We have to change lines of the first kind to '$object: \'.
|
352
|
+
sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
|
353
|
+
# And for each line of the second kind, we have to emit a 'dep.h:'
|
354
|
+
# dummy dependency, to avoid the deleted-header problem.
|
355
|
+
sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
|
264
356
|
rm -f "$tmpdepfile"
|
265
357
|
;;
|
266
358
|
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
#
|
273
|
-
#
|
274
|
-
#
|
275
|
-
#
|
276
|
-
#
|
277
|
-
# sub/foo.h:
|
278
|
-
# ICC 7.1 will output
|
359
|
+
## The order of this option in the case statement is important, since the
|
360
|
+
## shell code in configure will try each of these formats in the order
|
361
|
+
## listed in this file. A plain '-MD' option would be understood by many
|
362
|
+
## compilers, so we must ensure this comes after the gcc and icc options.
|
363
|
+
pgcc)
|
364
|
+
# Portland's C compiler understands '-MD'.
|
365
|
+
# Will always output deps to 'file.d' where file is the root name of the
|
366
|
+
# source file under compilation, even if file resides in a subdirectory.
|
367
|
+
# The object file name does not affect the name of the '.d' file.
|
368
|
+
# pgcc 10.2 will output
|
279
369
|
# foo.o: sub/foo.c sub/foo.h
|
280
|
-
# and will wrap long lines using \ :
|
370
|
+
# and will wrap long lines using '\' :
|
281
371
|
# foo.o: sub/foo.c ... \
|
282
372
|
# sub/foo.h ... \
|
283
373
|
# ...
|
374
|
+
set_dir_from "$object"
|
375
|
+
# Use the source, not the object, to determine the base name, since
|
376
|
+
# that's sadly what pgcc will do too.
|
377
|
+
set_base_from "$source"
|
378
|
+
tmpdepfile=$base.d
|
379
|
+
|
380
|
+
# For projects that build the same source file twice into different object
|
381
|
+
# files, the pgcc approach of using the *source* file root name can cause
|
382
|
+
# problems in parallel builds. Use a locking strategy to avoid stomping on
|
383
|
+
# the same $tmpdepfile.
|
384
|
+
lockdir=$base.d-lock
|
385
|
+
trap "
|
386
|
+
echo '$0: caught signal, cleaning up...' >&2
|
387
|
+
rmdir '$lockdir'
|
388
|
+
exit 1
|
389
|
+
" 1 2 13 15
|
390
|
+
numtries=100
|
391
|
+
i=$numtries
|
392
|
+
while test $i -gt 0; do
|
393
|
+
# mkdir is a portable test-and-set.
|
394
|
+
if mkdir "$lockdir" 2>/dev/null; then
|
395
|
+
# This process acquired the lock.
|
396
|
+
"$@" -MD
|
397
|
+
stat=$?
|
398
|
+
# Release the lock.
|
399
|
+
rmdir "$lockdir"
|
400
|
+
break
|
401
|
+
else
|
402
|
+
# If the lock is being held by a different process, wait
|
403
|
+
# until the winning process is done or we timeout.
|
404
|
+
while test -d "$lockdir" && test $i -gt 0; do
|
405
|
+
sleep 1
|
406
|
+
i=`expr $i - 1`
|
407
|
+
done
|
408
|
+
fi
|
409
|
+
i=`expr $i - 1`
|
410
|
+
done
|
411
|
+
trap - 1 2 13 15
|
412
|
+
if test $i -le 0; then
|
413
|
+
echo "$0: failed to acquire lock after $numtries attempts" >&2
|
414
|
+
echo "$0: check lockdir '$lockdir'" >&2
|
415
|
+
exit 1
|
416
|
+
fi
|
284
417
|
|
285
|
-
|
286
|
-
stat=$?
|
287
|
-
if test $stat -eq 0; then :
|
288
|
-
else
|
418
|
+
if test $stat -ne 0; then
|
289
419
|
rm -f "$tmpdepfile"
|
290
420
|
exit $stat
|
291
421
|
fi
|
@@ -297,8 +427,8 @@ icc)
|
|
297
427
|
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
298
428
|
# Some versions of the HPUX 10.20 sed can't process this invocation
|
299
429
|
# correctly. Breaking it into two sed invocations is a workaround.
|
300
|
-
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile"
|
301
|
-
sed -e 's/$/ :/' >> "$depfile"
|
430
|
+
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
|
431
|
+
| sed -e 's/$/ :/' >> "$depfile"
|
302
432
|
rm -f "$tmpdepfile"
|
303
433
|
;;
|
304
434
|
|
@@ -309,9 +439,8 @@ hp2)
|
|
309
439
|
# 'foo.d', which lands next to the object file, wherever that
|
310
440
|
# happens to be.
|
311
441
|
# Much of this is similar to the tru64 case; see comments there.
|
312
|
-
|
313
|
-
|
314
|
-
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
442
|
+
set_dir_from "$object"
|
443
|
+
set_base_from "$object"
|
315
444
|
if test "$libtool" = yes; then
|
316
445
|
tmpdepfile1=$dir$base.d
|
317
446
|
tmpdepfile2=$dir.libs/$base.d
|
@@ -322,8 +451,7 @@ hp2)
|
|
322
451
|
"$@" +Maked
|
323
452
|
fi
|
324
453
|
stat=$?
|
325
|
-
if test $stat -
|
326
|
-
else
|
454
|
+
if test $stat -ne 0; then
|
327
455
|
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
328
456
|
exit $stat
|
329
457
|
fi
|
@@ -333,77 +461,107 @@ hp2)
|
|
333
461
|
test -f "$tmpdepfile" && break
|
334
462
|
done
|
335
463
|
if test -f "$tmpdepfile"; then
|
336
|
-
sed -e "s,^.*\.[
|
337
|
-
# Add
|
464
|
+
sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
|
465
|
+
# Add 'dependent.h:' lines.
|
338
466
|
sed -ne '2,${
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
467
|
+
s/^ *//
|
468
|
+
s/ \\*$//
|
469
|
+
s/$/:/
|
470
|
+
p
|
471
|
+
}' "$tmpdepfile" >> "$depfile"
|
344
472
|
else
|
345
|
-
|
473
|
+
make_dummy_depfile
|
346
474
|
fi
|
347
475
|
rm -f "$tmpdepfile" "$tmpdepfile2"
|
348
476
|
;;
|
349
477
|
|
350
478
|
tru64)
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
479
|
+
# The Tru64 compiler uses -MD to generate dependencies as a side
|
480
|
+
# effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
|
481
|
+
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
482
|
+
# dependencies in 'foo.d' instead, so we check for that too.
|
483
|
+
# Subdirectories are respected.
|
484
|
+
set_dir_from "$object"
|
485
|
+
set_base_from "$object"
|
486
|
+
|
487
|
+
if test "$libtool" = yes; then
|
488
|
+
# Libtool generates 2 separate objects for the 2 libraries. These
|
489
|
+
# two compilations output dependencies in $dir.libs/$base.o.d and
|
490
|
+
# in $dir$base.o.d. We have to check for both files, because
|
491
|
+
# one of the two compilations can be disabled. We should prefer
|
492
|
+
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
493
|
+
# automatically cleaned when .libs/ is deleted, while ignoring
|
494
|
+
# the former would cause a distcleancheck panic.
|
495
|
+
tmpdepfile1=$dir$base.o.d # libtool 1.5
|
496
|
+
tmpdepfile2=$dir.libs/$base.o.d # Likewise.
|
497
|
+
tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
|
498
|
+
"$@" -Wc,-MD
|
499
|
+
else
|
500
|
+
tmpdepfile1=$dir$base.d
|
501
|
+
tmpdepfile2=$dir$base.d
|
502
|
+
tmpdepfile3=$dir$base.d
|
503
|
+
"$@" -MD
|
504
|
+
fi
|
505
|
+
|
506
|
+
stat=$?
|
507
|
+
if test $stat -ne 0; then
|
508
|
+
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
509
|
+
exit $stat
|
510
|
+
fi
|
511
|
+
|
512
|
+
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
513
|
+
do
|
514
|
+
test -f "$tmpdepfile" && break
|
515
|
+
done
|
516
|
+
# Same post-processing that is required for AIX mode.
|
517
|
+
aix_post_process_depfile
|
518
|
+
;;
|
519
|
+
|
520
|
+
msvc7)
|
521
|
+
if test "$libtool" = yes; then
|
522
|
+
showIncludes=-Wc,-showIncludes
|
523
|
+
else
|
524
|
+
showIncludes=-showIncludes
|
525
|
+
fi
|
526
|
+
"$@" $showIncludes > "$tmpdepfile"
|
527
|
+
stat=$?
|
528
|
+
grep -v '^Note: including file: ' "$tmpdepfile"
|
529
|
+
if test $stat -ne 0; then
|
530
|
+
rm -f "$tmpdepfile"
|
531
|
+
exit $stat
|
532
|
+
fi
|
533
|
+
rm -f "$depfile"
|
534
|
+
echo "$object : \\" > "$depfile"
|
535
|
+
# The first sed program below extracts the file names and escapes
|
536
|
+
# backslashes for cygpath. The second sed program outputs the file
|
537
|
+
# name when reading, but also accumulates all include files in the
|
538
|
+
# hold buffer in order to output them again at the end. This only
|
539
|
+
# works with sed implementations that can handle large buffers.
|
540
|
+
sed < "$tmpdepfile" -n '
|
541
|
+
/^Note: including file: *\(.*\)/ {
|
542
|
+
s//\1/
|
543
|
+
s/\\/\\\\/g
|
544
|
+
p
|
545
|
+
}' | $cygpath_u | sort -u | sed -n '
|
546
|
+
s/ /\\ /g
|
547
|
+
s/\(.*\)/'"$tab"'\1 \\/p
|
548
|
+
s/.\(.*\) \\/\1:/
|
549
|
+
H
|
550
|
+
$ {
|
551
|
+
s/.*/'"$tab"'/
|
552
|
+
G
|
553
|
+
p
|
554
|
+
}' >> "$depfile"
|
555
|
+
echo >> "$depfile" # make sure the fragment doesn't end with a backslash
|
556
|
+
rm -f "$tmpdepfile"
|
557
|
+
;;
|
558
|
+
|
559
|
+
msvc7msys)
|
560
|
+
# This case exists only to let depend.m4 do its work. It works by
|
561
|
+
# looking at the text of this script. This case will never be run,
|
562
|
+
# since it is checked for above.
|
563
|
+
exit 1
|
564
|
+
;;
|
407
565
|
|
408
566
|
#nosideeffect)
|
409
567
|
# This comment above is used by automake to tell side-effect
|
@@ -422,7 +580,7 @@ dashmstdout)
|
|
422
580
|
shift
|
423
581
|
fi
|
424
582
|
|
425
|
-
# Remove
|
583
|
+
# Remove '-o $object'.
|
426
584
|
IFS=" "
|
427
585
|
for arg
|
428
586
|
do
|
@@ -442,18 +600,18 @@ dashmstdout)
|
|
442
600
|
done
|
443
601
|
|
444
602
|
test -z "$dashmflag" && dashmflag=-M
|
445
|
-
# Require at least two characters before searching for
|
603
|
+
# Require at least two characters before searching for ':'
|
446
604
|
# in the target name. This is to cope with DOS-style filenames:
|
447
|
-
# a dependency such as
|
605
|
+
# a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
|
448
606
|
"$@" $dashmflag |
|
449
|
-
sed
|
607
|
+
sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
|
450
608
|
rm -f "$depfile"
|
451
609
|
cat < "$tmpdepfile" > "$depfile"
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
610
|
+
# Some versions of the HPUX 10.20 sed can't process this sed invocation
|
611
|
+
# correctly. Breaking it into two sed invocations is a workaround.
|
612
|
+
tr ' ' "$nl" < "$tmpdepfile" \
|
613
|
+
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
|
614
|
+
| sed -e 's/$/ :/' >> "$depfile"
|
457
615
|
rm -f "$tmpdepfile"
|
458
616
|
;;
|
459
617
|
|
@@ -503,12 +661,15 @@ makedepend)
|
|
503
661
|
touch "$tmpdepfile"
|
504
662
|
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
505
663
|
rm -f "$depfile"
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
664
|
+
# makedepend may prepend the VPATH from the source file name to the object.
|
665
|
+
# No need to regex-escape $object, excess matching of '.' is harmless.
|
666
|
+
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
|
667
|
+
# Some versions of the HPUX 10.20 sed can't process the last invocation
|
668
|
+
# correctly. Breaking it into two sed invocations is a workaround.
|
669
|
+
sed '1,2d' "$tmpdepfile" \
|
670
|
+
| tr ' ' "$nl" \
|
671
|
+
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
|
672
|
+
| sed -e 's/$/ :/' >> "$depfile"
|
512
673
|
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
513
674
|
;;
|
514
675
|
|
@@ -525,7 +686,7 @@ cpp)
|
|
525
686
|
shift
|
526
687
|
fi
|
527
688
|
|
528
|
-
# Remove
|
689
|
+
# Remove '-o $object'.
|
529
690
|
IFS=" "
|
530
691
|
for arg
|
531
692
|
do
|
@@ -544,10 +705,10 @@ cpp)
|
|
544
705
|
esac
|
545
706
|
done
|
546
707
|
|
547
|
-
"$@" -E
|
548
|
-
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
549
|
-
|
550
|
-
sed '$ s: \\$::' > "$tmpdepfile"
|
708
|
+
"$@" -E \
|
709
|
+
| sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
710
|
+
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
711
|
+
| sed '$ s: \\$::' > "$tmpdepfile"
|
551
712
|
rm -f "$depfile"
|
552
713
|
echo "$object : \\" > "$depfile"
|
553
714
|
cat < "$tmpdepfile" >> "$depfile"
|
@@ -579,23 +740,23 @@ msvisualcpp)
|
|
579
740
|
shift
|
580
741
|
;;
|
581
742
|
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
743
|
+
set fnord "$@"
|
744
|
+
shift
|
745
|
+
shift
|
746
|
+
;;
|
586
747
|
*)
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
748
|
+
set fnord "$@" "$arg"
|
749
|
+
shift
|
750
|
+
shift
|
751
|
+
;;
|
591
752
|
esac
|
592
753
|
done
|
593
754
|
"$@" -E 2>/dev/null |
|
594
755
|
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
|
595
756
|
rm -f "$depfile"
|
596
757
|
echo "$object : \\" > "$depfile"
|
597
|
-
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::
|
598
|
-
echo "
|
758
|
+
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
|
759
|
+
echo "$tab" >> "$depfile"
|
599
760
|
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
600
761
|
rm -f "$tmpdepfile"
|
601
762
|
;;
|