Fix debug build for windows
This commit is contained in:
@@ -13,3 +13,4 @@ win64-struct-args
|
|||||||
define-generic-symbols-carefully
|
define-generic-symbols-carefully
|
||||||
stdcall-x86-closure-fix
|
stdcall-x86-closure-fix
|
||||||
ml64-safeseh
|
ml64-safeseh
|
||||||
|
debug-build
|
||||||
|
|||||||
0
.pc/debug-build/.timestamp
Normal file
0
.pc/debug-build/.timestamp
Normal file
4252
.pc/debug-build/ChangeLog
Normal file
4252
.pc/debug-build/ChangeLog
Normal file
File diff suppressed because it is too large
Load Diff
190
.pc/debug-build/Makefile.am
Normal file
190
.pc/debug-build/Makefile.am
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
## Process this with automake to create Makefile.in
|
||||||
|
|
||||||
|
AUTOMAKE_OPTIONS = foreign subdir-objects
|
||||||
|
|
||||||
|
SUBDIRS = include testsuite man
|
||||||
|
|
||||||
|
EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
|
||||||
|
src/alpha/ffi.c src/alpha/osf.S src/alpha/ffitarget.h \
|
||||||
|
src/arm/ffi.c src/arm/sysv.S src/arm/ffitarget.h \
|
||||||
|
src/avr32/ffi.c src/avr32/sysv.S src/avr32/ffitarget.h \
|
||||||
|
src/cris/ffi.c src/cris/sysv.S src/cris/ffitarget.h \
|
||||||
|
src/ia64/ffi.c src/ia64/ffitarget.h src/ia64/ia64_flags.h \
|
||||||
|
src/ia64/unix.S \
|
||||||
|
src/mips/ffi.c src/mips/n32.S src/mips/o32.S \
|
||||||
|
src/mips/ffitarget.h \
|
||||||
|
src/m32r/ffi.c src/m32r/sysv.S src/m32r/ffitarget.h \
|
||||||
|
src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h \
|
||||||
|
src/powerpc/ffi.c src/powerpc/sysv.S \
|
||||||
|
src/powerpc/linux64.S src/powerpc/linux64_closure.S \
|
||||||
|
src/powerpc/ppc_closure.S src/powerpc/asm.h \
|
||||||
|
src/powerpc/aix.S src/powerpc/darwin.S \
|
||||||
|
src/powerpc/aix_closure.S src/powerpc/darwin_closure.S \
|
||||||
|
src/powerpc/ffi_darwin.c src/powerpc/ffitarget.h \
|
||||||
|
src/s390/ffi.c src/s390/sysv.S src/s390/ffitarget.h \
|
||||||
|
src/sh/ffi.c src/sh/sysv.S src/sh/ffitarget.h \
|
||||||
|
src/sh64/ffi.c src/sh64/sysv.S src/sh64/ffitarget.h \
|
||||||
|
src/sparc/v8.S src/sparc/v9.S src/sparc/ffitarget.h \
|
||||||
|
src/sparc/ffi.c src/x86/darwin64.S \
|
||||||
|
src/x86/ffi.c src/x86/sysv.S src/x86/win32.S src/x86/win64.S \
|
||||||
|
src/x86/darwin.S src/x86/freebsd.S \
|
||||||
|
src/x86/ffi64.c src/x86/unix64.S src/x86/ffitarget.h \
|
||||||
|
src/pa/ffitarget.h src/pa/ffi.c src/pa/linux.S src/pa/hpux32.S \
|
||||||
|
src/frv/ffi.c src/frv/eabi.S src/frv/ffitarget.h src/dlmalloc.c \
|
||||||
|
libtool-version ChangeLog.libffi m4/libtool.m4 \
|
||||||
|
m4/lt~obsolete.m4 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4
|
||||||
|
|
||||||
|
info_TEXINFOS = doc/libffi.texi
|
||||||
|
|
||||||
|
## ################################################################
|
||||||
|
|
||||||
|
##
|
||||||
|
## This section is for make and multilib madness.
|
||||||
|
##
|
||||||
|
|
||||||
|
# Work around what appears to be a GNU make bug handling MAKEFLAGS
|
||||||
|
# values defined in terms of make variables, as is the case for CC and
|
||||||
|
# friends when we are called from the top level Makefile.
|
||||||
|
AM_MAKEFLAGS = \
|
||||||
|
"AR_FLAGS=$(AR_FLAGS)" \
|
||||||
|
"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
|
||||||
|
"CFLAGS=$(CFLAGS)" \
|
||||||
|
"CXXFLAGS=$(CXXFLAGS)" \
|
||||||
|
"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
|
||||||
|
"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
|
||||||
|
"INSTALL=$(INSTALL)" \
|
||||||
|
"INSTALL_DATA=$(INSTALL_DATA)" \
|
||||||
|
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
|
||||||
|
"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
|
||||||
|
"JC1FLAGS=$(JC1FLAGS)" \
|
||||||
|
"LDFLAGS=$(LDFLAGS)" \
|
||||||
|
"LIBCFLAGS=$(LIBCFLAGS)" \
|
||||||
|
"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
|
||||||
|
"MAKE=$(MAKE)" \
|
||||||
|
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
|
||||||
|
"PICFLAG=$(PICFLAG)" \
|
||||||
|
"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
|
||||||
|
"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
|
||||||
|
"SHELL=$(SHELL)" \
|
||||||
|
"exec_prefix=$(exec_prefix)" \
|
||||||
|
"infodir=$(infodir)" \
|
||||||
|
"libdir=$(libdir)" \
|
||||||
|
"mandir=$(mandir)" \
|
||||||
|
"prefix=$(prefix)" \
|
||||||
|
"AR=$(AR)" \
|
||||||
|
"AS=$(AS)" \
|
||||||
|
"CC=$(CC)" \
|
||||||
|
"CXX=$(CXX)" \
|
||||||
|
"LD=$(LD)" \
|
||||||
|
"NM=$(NM)" \
|
||||||
|
"RANLIB=$(RANLIB)" \
|
||||||
|
"DESTDIR=$(DESTDIR)"
|
||||||
|
|
||||||
|
MAKEOVERRIDES=
|
||||||
|
|
||||||
|
ACLOCAL_AMFLAGS=$(ACLOCAL_AMFLAGS) -I m4
|
||||||
|
|
||||||
|
lib_LTLIBRARIES = libffi.la
|
||||||
|
noinst_LTLIBRARIES = libffi_convenience.la
|
||||||
|
|
||||||
|
libffi_la_SOURCES = src/debug.c src/prep_cif.c src/types.c \
|
||||||
|
src/raw_api.c src/java_raw_api.c src/closures.c
|
||||||
|
|
||||||
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
|
pkgconfig_DATA = libffi.pc
|
||||||
|
|
||||||
|
nodist_libffi_la_SOURCES =
|
||||||
|
|
||||||
|
if MIPS
|
||||||
|
nodist_libffi_la_SOURCES += src/mips/ffi.c src/mips/o32.S src/mips/n32.S
|
||||||
|
endif
|
||||||
|
if X86
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/sysv.S
|
||||||
|
endif
|
||||||
|
if X86_FREEBSD
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/freebsd.S
|
||||||
|
endif
|
||||||
|
if X86_WIN32
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win32.S
|
||||||
|
endif
|
||||||
|
if X86_WIN64
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win64.S
|
||||||
|
endif
|
||||||
|
if X86_DARWIN
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/darwin.S src/x86/ffi64.c src/x86/darwin64.S
|
||||||
|
endif
|
||||||
|
if SPARC
|
||||||
|
nodist_libffi_la_SOURCES += src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S
|
||||||
|
endif
|
||||||
|
if ALPHA
|
||||||
|
nodist_libffi_la_SOURCES += src/alpha/ffi.c src/alpha/osf.S
|
||||||
|
endif
|
||||||
|
if IA64
|
||||||
|
nodist_libffi_la_SOURCES += src/ia64/ffi.c src/ia64/unix.S
|
||||||
|
endif
|
||||||
|
if M32R
|
||||||
|
nodist_libffi_la_SOURCES += src/m32r/sysv.S src/m32r/ffi.c
|
||||||
|
endif
|
||||||
|
if M68K
|
||||||
|
nodist_libffi_la_SOURCES += src/m68k/ffi.c src/m68k/sysv.S
|
||||||
|
endif
|
||||||
|
if POWERPC
|
||||||
|
nodist_libffi_la_SOURCES += src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S src/powerpc/linux64.S src/powerpc/linux64_closure.S
|
||||||
|
endif
|
||||||
|
if POWERPC_AIX
|
||||||
|
nodist_libffi_la_SOURCES += src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S
|
||||||
|
endif
|
||||||
|
if POWERPC_DARWIN
|
||||||
|
nodist_libffi_la_SOURCES += src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S
|
||||||
|
endif
|
||||||
|
if POWERPC_FREEBSD
|
||||||
|
nodist_libffi_la_SOURCES += src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S
|
||||||
|
endif
|
||||||
|
if ARM
|
||||||
|
nodist_libffi_la_SOURCES += src/arm/sysv.S src/arm/ffi.c
|
||||||
|
endif
|
||||||
|
if AVR32
|
||||||
|
nodist_libffi_la_SOURCES += src/avr32/sysv.S src/avr32/ffi.c
|
||||||
|
endif
|
||||||
|
if LIBFFI_CRIS
|
||||||
|
nodist_libffi_la_SOURCES += src/cris/sysv.S src/cris/ffi.c
|
||||||
|
endif
|
||||||
|
if FRV
|
||||||
|
nodist_libffi_la_SOURCES += src/frv/eabi.S src/frv/ffi.c
|
||||||
|
endif
|
||||||
|
if MOXIE
|
||||||
|
nodist_libffi_la_SOURCES += src/moxie/eabi.S src/moxie/ffi.c
|
||||||
|
endif
|
||||||
|
if S390
|
||||||
|
nodist_libffi_la_SOURCES += src/s390/sysv.S src/s390/ffi.c
|
||||||
|
endif
|
||||||
|
if X86_64
|
||||||
|
nodist_libffi_la_SOURCES += src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S
|
||||||
|
endif
|
||||||
|
if SH
|
||||||
|
nodist_libffi_la_SOURCES += src/sh/sysv.S src/sh/ffi.c
|
||||||
|
endif
|
||||||
|
if SH64
|
||||||
|
nodist_libffi_la_SOURCES += src/sh64/sysv.S src/sh64/ffi.c
|
||||||
|
endif
|
||||||
|
if PA_LINUX
|
||||||
|
nodist_libffi_la_SOURCES += src/pa/linux.S src/pa/ffi.c
|
||||||
|
endif
|
||||||
|
if PA_HPUX
|
||||||
|
nodist_libffi_la_SOURCES += src/pa/hpux32.S src/pa/ffi.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
|
||||||
|
nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
|
||||||
|
|
||||||
|
AM_CFLAGS = -Wall -g -fexceptions
|
||||||
|
|
||||||
|
libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS)
|
||||||
|
|
||||||
|
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
|
||||||
|
AM_CCASFLAGS = $(AM_CPPFLAGS)
|
||||||
|
|
||||||
|
# No install-html or install-pdf support in automake yet
|
||||||
|
.PHONY: install-html install-pdf
|
||||||
|
install-html:
|
||||||
|
install-pdf:
|
||||||
1815
.pc/debug-build/Makefile.in
Normal file
1815
.pc/debug-build/Makefile.in
Normal file
File diff suppressed because it is too large
Load Diff
15023
.pc/debug-build/configure
vendored
Executable file
15023
.pc/debug-build/configure
vendored
Executable file
File diff suppressed because it is too large
Load Diff
454
.pc/debug-build/configure.ac
Normal file
454
.pc/debug-build/configure.ac
Normal file
@@ -0,0 +1,454 @@
|
|||||||
|
dnl Process this with autoconf to create configure
|
||||||
|
|
||||||
|
AC_PREREQ(2.63)
|
||||||
|
|
||||||
|
AC_INIT([libffi], [3.0.10rc0], [http://gcc.gnu.org/bugs.html])
|
||||||
|
AC_CONFIG_HEADERS([fficonfig.h])
|
||||||
|
|
||||||
|
AC_CANONICAL_SYSTEM
|
||||||
|
target_alias=${target_alias-$host_alias}
|
||||||
|
|
||||||
|
. ${srcdir}/configure.host
|
||||||
|
|
||||||
|
AM_INIT_AUTOMAKE
|
||||||
|
|
||||||
|
# The same as in boehm-gc and libstdc++. Have to borrow it from there.
|
||||||
|
# We must force CC to /not/ be precious variables; otherwise
|
||||||
|
# the wrong, non-multilib-adjusted value will be used in multilibs.
|
||||||
|
# As a side effect, we have to subst CFLAGS ourselves.
|
||||||
|
|
||||||
|
m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
|
||||||
|
m4_define([_AC_ARG_VAR_PRECIOUS],[])
|
||||||
|
AC_PROG_CC
|
||||||
|
m4_undefine([_AC_ARG_VAR_PRECIOUS])
|
||||||
|
m4_rename([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
|
||||||
|
|
||||||
|
AC_SUBST(CFLAGS)
|
||||||
|
|
||||||
|
AM_PROG_AS
|
||||||
|
AM_PROG_CC_C_O
|
||||||
|
AC_PROG_LIBTOOL
|
||||||
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
|
||||||
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
|
AC_CHECK_HEADERS(sys/mman.h)
|
||||||
|
AC_CHECK_FUNCS(mmap)
|
||||||
|
AC_FUNC_MMAP_BLACKLIST
|
||||||
|
|
||||||
|
dnl The -no-testsuite modules omit the test subdir.
|
||||||
|
AM_CONDITIONAL(TESTSUBDIR, test -d $srcdir/testsuite)
|
||||||
|
|
||||||
|
TARGETDIR="unknown"
|
||||||
|
case "$host" in
|
||||||
|
alpha*-*-*)
|
||||||
|
TARGET=ALPHA; TARGETDIR=alpha;
|
||||||
|
# Support 128-bit long double, changeable via command-line switch.
|
||||||
|
HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
arm*-*-*)
|
||||||
|
TARGET=ARM; TARGETDIR=arm
|
||||||
|
;;
|
||||||
|
|
||||||
|
amd64-*-freebsd* | amd64-*-openbsd*)
|
||||||
|
TARGET=X86_64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
amd64-*-freebsd*)
|
||||||
|
TARGET=X86_64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
avr32*-*-*)
|
||||||
|
TARGET=AVR32; TARGETDIR=avr32
|
||||||
|
;;
|
||||||
|
|
||||||
|
cris-*-*)
|
||||||
|
TARGET=LIBFFI_CRIS; TARGETDIR=cris
|
||||||
|
;;
|
||||||
|
|
||||||
|
frv-*-*)
|
||||||
|
TARGET=FRV; TARGETDIR=frv
|
||||||
|
;;
|
||||||
|
|
||||||
|
hppa*-*-linux* | parisc*-*-linux*)
|
||||||
|
TARGET=PA_LINUX; TARGETDIR=pa
|
||||||
|
;;
|
||||||
|
hppa*64-*-hpux*)
|
||||||
|
TARGET=PA64_HPUX; TARGETDIR=pa
|
||||||
|
;;
|
||||||
|
hppa*-*-hpux*)
|
||||||
|
TARGET=PA_HPUX; TARGETDIR=pa
|
||||||
|
;;
|
||||||
|
|
||||||
|
i?86-*-freebsd* | i?86-*-openbsd*)
|
||||||
|
TARGET=X86_FREEBSD; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
i?86-win32* | i?86-*-cygwin* | i?86-*-mingw* | i?86-*-os2*)
|
||||||
|
TARGET=X86_WIN32; TARGETDIR=x86
|
||||||
|
# All mingw/cygwin/win32 builds require this for sharedlib
|
||||||
|
AM_LTLDFLAGS="-no-undefined"
|
||||||
|
;;
|
||||||
|
i?86-*-darwin*)
|
||||||
|
TARGET=X86_DARWIN; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
i?86-*-solaris2.1[[0-9]]*)
|
||||||
|
TARGET=X86_64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
i?86-*-*)
|
||||||
|
TARGET=X86; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
ia64*-*-*)
|
||||||
|
TARGET=IA64; TARGETDIR=ia64
|
||||||
|
;;
|
||||||
|
|
||||||
|
m32r*-*-*)
|
||||||
|
TARGET=M32R; TARGETDIR=m32r
|
||||||
|
;;
|
||||||
|
|
||||||
|
m68k-*-*)
|
||||||
|
TARGET=M68K; TARGETDIR=m68k
|
||||||
|
;;
|
||||||
|
|
||||||
|
mips-sgi-irix5.* | mips-sgi-irix6.*)
|
||||||
|
TARGET=MIPS; TARGETDIR=mips
|
||||||
|
;;
|
||||||
|
mips*-*-linux*)
|
||||||
|
# Support 128-bit long double for NewABI.
|
||||||
|
HAVE_LONG_DOUBLE='defined(__mips64)'
|
||||||
|
TARGET=MIPS; TARGETDIR=mips
|
||||||
|
;;
|
||||||
|
|
||||||
|
moxie-*-*)
|
||||||
|
TARGET=MOXIE; TARGETDIR=moxie
|
||||||
|
;;
|
||||||
|
|
||||||
|
powerpc*-*-linux* | powerpc-*-sysv*)
|
||||||
|
TARGET=POWERPC; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc-*-beos*)
|
||||||
|
TARGET=POWERPC; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc-*-darwin*)
|
||||||
|
TARGET=POWERPC_DARWIN; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc-*-aix* | rs6000-*-aix*)
|
||||||
|
TARGET=POWERPC_AIX; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc-*-freebsd*)
|
||||||
|
TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
powerpc*-*-rtems*)
|
||||||
|
TARGET=POWERPC; TARGETDIR=powerpc
|
||||||
|
;;
|
||||||
|
|
||||||
|
s390-*-* | s390x-*-*)
|
||||||
|
TARGET=S390; TARGETDIR=s390
|
||||||
|
;;
|
||||||
|
|
||||||
|
sh-*-* | sh[[34]]*-*-*)
|
||||||
|
TARGET=SH; TARGETDIR=sh
|
||||||
|
;;
|
||||||
|
sh64-*-* | sh5*-*-*)
|
||||||
|
TARGET=SH64; TARGETDIR=sh64
|
||||||
|
;;
|
||||||
|
|
||||||
|
sparc*-*-*)
|
||||||
|
TARGET=SPARC; TARGETDIR=sparc
|
||||||
|
;;
|
||||||
|
|
||||||
|
x86_64-*-darwin*)
|
||||||
|
TARGET=X86_DARWIN; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
x86_64-*-cygwin* | x86_64-*-mingw*)
|
||||||
|
TARGET=X86_WIN64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
x86_64-*-*)
|
||||||
|
TARGET=X86_64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
AC_SUBST(AM_RUNTESTFLAGS)
|
||||||
|
AC_SUBST(AM_LTLDFLAGS)
|
||||||
|
|
||||||
|
if test $TARGETDIR = unknown; then
|
||||||
|
AC_MSG_ERROR(["libffi has not been ported to $host."])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS)
|
||||||
|
AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
|
||||||
|
AM_CONDITIONAL(X86, test x$TARGET = xX86)
|
||||||
|
AM_CONDITIONAL(X86_FREEBSD, test x$TARGET = xX86_FREEBSD)
|
||||||
|
AM_CONDITIONAL(X86_WIN32, test x$TARGET = xX86_WIN32)
|
||||||
|
AM_CONDITIONAL(X86_WIN64, test x$TARGET = xX86_WIN64)
|
||||||
|
AM_CONDITIONAL(X86_DARWIN, test x$TARGET = xX86_DARWIN)
|
||||||
|
AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA)
|
||||||
|
AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
|
||||||
|
AM_CONDITIONAL(M32R, test x$TARGET = xM32R)
|
||||||
|
AM_CONDITIONAL(M68K, test x$TARGET = xM68K)
|
||||||
|
AM_CONDITIONAL(MOXIE, test x$TARGET = xMOXIE)
|
||||||
|
AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC)
|
||||||
|
AM_CONDITIONAL(POWERPC_AIX, test x$TARGET = xPOWERPC_AIX)
|
||||||
|
AM_CONDITIONAL(POWERPC_DARWIN, test x$TARGET = xPOWERPC_DARWIN)
|
||||||
|
AM_CONDITIONAL(POWERPC_FREEBSD, test x$TARGET = xPOWERPC_FREEBSD)
|
||||||
|
AM_CONDITIONAL(ARM, test x$TARGET = xARM)
|
||||||
|
AM_CONDITIONAL(AVR32, test x$TARGET = xAVR32)
|
||||||
|
AM_CONDITIONAL(LIBFFI_CRIS, test x$TARGET = xLIBFFI_CRIS)
|
||||||
|
AM_CONDITIONAL(FRV, test x$TARGET = xFRV)
|
||||||
|
AM_CONDITIONAL(S390, test x$TARGET = xS390)
|
||||||
|
AM_CONDITIONAL(X86_64, test x$TARGET = xX86_64)
|
||||||
|
AM_CONDITIONAL(SH, test x$TARGET = xSH)
|
||||||
|
AM_CONDITIONAL(SH64, test x$TARGET = xSH64)
|
||||||
|
AM_CONDITIONAL(PA_LINUX, test x$TARGET = xPA_LINUX)
|
||||||
|
AM_CONDITIONAL(PA_HPUX, test x$TARGET = xPA_HPUX)
|
||||||
|
AM_CONDITIONAL(PA64_HPUX, test x$TARGET = xPA64_HPUX)
|
||||||
|
|
||||||
|
AC_HEADER_STDC
|
||||||
|
AC_CHECK_FUNCS(memcpy)
|
||||||
|
AC_FUNC_ALLOCA
|
||||||
|
|
||||||
|
AC_CHECK_SIZEOF(double)
|
||||||
|
AC_CHECK_SIZEOF(long double)
|
||||||
|
|
||||||
|
# Also AC_SUBST this variable for ffi.h.
|
||||||
|
if test -z "$HAVE_LONG_DOUBLE"; then
|
||||||
|
HAVE_LONG_DOUBLE=0
|
||||||
|
if test $ac_cv_sizeof_double != $ac_cv_sizeof_long_double; then
|
||||||
|
if test $ac_cv_sizeof_long_double != 0; then
|
||||||
|
HAVE_LONG_DOUBLE=1
|
||||||
|
AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the long double type and it is bigger than a double])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_SUBST(HAVE_LONG_DOUBLE)
|
||||||
|
|
||||||
|
AC_C_BIGENDIAN
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([assembler .cfi pseudo-op support],
|
||||||
|
libffi_cv_as_cfi_pseudo_op, [
|
||||||
|
libffi_cv_as_cfi_pseudo_op=unknown
|
||||||
|
AC_TRY_COMPILE([asm (".cfi_startproc\n\t.cfi_endproc");],,
|
||||||
|
[libffi_cv_as_cfi_pseudo_op=yes],
|
||||||
|
[libffi_cv_as_cfi_pseudo_op=no])
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_as_cfi_pseudo_op" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_CFI_PSEUDO_OP, 1,
|
||||||
|
[Define if your assembler supports .cfi_* directives.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x$TARGET = xSPARC; then
|
||||||
|
AC_CACHE_CHECK([assembler and linker support unaligned pc related relocs],
|
||||||
|
libffi_cv_as_sparc_ua_pcrel, [
|
||||||
|
save_CFLAGS="$CFLAGS"
|
||||||
|
save_LDFLAGS="$LDFLAGS"
|
||||||
|
CFLAGS="$CFLAGS -fpic"
|
||||||
|
LDFLAGS="$LDFLAGS -shared"
|
||||||
|
AC_TRY_LINK([asm (".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo); .text");],,
|
||||||
|
[libffi_cv_as_sparc_ua_pcrel=yes],
|
||||||
|
[libffi_cv_as_sparc_ua_pcrel=no])
|
||||||
|
CFLAGS="$save_CFLAGS"
|
||||||
|
LDFLAGS="$save_LDFLAGS"])
|
||||||
|
if test "x$libffi_cv_as_sparc_ua_pcrel" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
|
||||||
|
[Define if your assembler and linker support unaligned PC relative relocs.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([assembler .register pseudo-op support],
|
||||||
|
libffi_cv_as_register_pseudo_op, [
|
||||||
|
libffi_cv_as_register_pseudo_op=unknown
|
||||||
|
# Check if we have .register
|
||||||
|
AC_TRY_COMPILE([asm (".register %g2, #scratch");],,
|
||||||
|
[libffi_cv_as_register_pseudo_op=yes],
|
||||||
|
[libffi_cv_as_register_pseudo_op=no])
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_as_register_pseudo_op" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
|
||||||
|
[Define if your assembler supports .register.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x$TARGET = xX86 || test x$TARGET = xX86_WIN32 || test x$TARGET = xX86_64; then
|
||||||
|
AC_CACHE_CHECK([assembler supports pc related relocs],
|
||||||
|
libffi_cv_as_x86_pcrel, [
|
||||||
|
libffi_cv_as_x86_pcrel=yes
|
||||||
|
echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s
|
||||||
|
if $CC $CFLAGS -c conftest.s 2>&1 | $EGREP -i 'illegal|warning' > /dev/null; then
|
||||||
|
libffi_cv_as_x86_pcrel=no
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_as_x86_pcrel" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_X86_PCREL, 1,
|
||||||
|
[Define if your assembler supports PC relative relocs.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([assembler .ascii pseudo-op support],
|
||||||
|
libffi_cv_as_ascii_pseudo_op, [
|
||||||
|
libffi_cv_as_ascii_pseudo_op=unknown
|
||||||
|
# Check if we have .ascii
|
||||||
|
AC_TRY_COMPILE([asm (".ascii \"string\"");],,
|
||||||
|
[libffi_cv_as_ascii_pseudo_op=yes],
|
||||||
|
[libffi_cv_as_ascii_pseudo_op=no])
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_as_ascii_pseudo_op" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_ASCII_PSEUDO_OP, 1,
|
||||||
|
[Define if your assembler supports .ascii.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([assembler .string pseudo-op support],
|
||||||
|
libffi_cv_as_string_pseudo_op, [
|
||||||
|
libffi_cv_as_string_pseudo_op=unknown
|
||||||
|
# Check if we have .string
|
||||||
|
AC_TRY_COMPILE([asm (".string \"string\"");],,
|
||||||
|
[libffi_cv_as_string_pseudo_op=yes],
|
||||||
|
[libffi_cv_as_string_pseudo_op=no])
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_as_string_pseudo_op" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_STRING_PSEUDO_OP, 1,
|
||||||
|
[Define if your assembler supports .string.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$target" in
|
||||||
|
*-apple-darwin10* | *-*-freebsd* | *-*-openbsd* | *-pc-solaris*)
|
||||||
|
AC_DEFINE(FFI_MMAP_EXEC_WRIT, 1,
|
||||||
|
[Cannot use malloc on this target, so, we revert to
|
||||||
|
alternative means])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test x$TARGET = xX86_64; then
|
||||||
|
AC_CACHE_CHECK([assembler supports unwind section type],
|
||||||
|
libffi_cv_as_x86_64_unwind_section_type, [
|
||||||
|
libffi_cv_as_x86_64_unwind_section_type=yes
|
||||||
|
echo '.section .eh_frame,"a",@unwind' > conftest.s
|
||||||
|
if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
|
||||||
|
libffi_cv_as_x86_64_unwind_section_type=no
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_as_x86_64_unwind_section_type" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_AS_X86_64_UNWIND_SECTION_TYPE, 1,
|
||||||
|
[Define if your assembler supports unwind section type.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([whether .eh_frame section should be read-only],
|
||||||
|
libffi_cv_ro_eh_frame, [
|
||||||
|
libffi_cv_ro_eh_frame=no
|
||||||
|
echo 'extern void foo (void); void bar (void) { foo (); foo (); }' > conftest.c
|
||||||
|
if $CC $CFLAGS -S -fpic -fexceptions -o conftest.s conftest.c > /dev/null 2>&1; then
|
||||||
|
if grep '.section.*eh_frame.*"a"' conftest.s > /dev/null; then
|
||||||
|
libffi_cv_ro_eh_frame=yes
|
||||||
|
elif grep '.section.*eh_frame.*#alloc' conftest.c \
|
||||||
|
| grep -v '#write' > /dev/null; then
|
||||||
|
libffi_cv_ro_eh_frame=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
rm -f conftest.*
|
||||||
|
])
|
||||||
|
if test "x$libffi_cv_ro_eh_frame" = xyes; then
|
||||||
|
AC_DEFINE(HAVE_RO_EH_FRAME, 1,
|
||||||
|
[Define if .eh_frame sections should be read-only.])
|
||||||
|
AC_DEFINE(EH_FRAME_FLAGS, "a",
|
||||||
|
[Define to the flags needed for the .section .eh_frame directive.])
|
||||||
|
else
|
||||||
|
AC_DEFINE(EH_FRAME_FLAGS, "aw",
|
||||||
|
[Define to the flags needed for the .section .eh_frame directive.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([for __attribute__((visibility("hidden")))],
|
||||||
|
libffi_cv_hidden_visibility_attribute, [
|
||||||
|
echo 'int __attribute__ ((visibility ("hidden"))) foo (void) { return 1; }' > conftest.c
|
||||||
|
libffi_cv_hidden_visibility_attribute=no
|
||||||
|
if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
|
||||||
|
if grep '\.hidden.*foo' conftest.s >/dev/null; then
|
||||||
|
libffi_cv_hidden_visibility_attribute=yes
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
rm -f conftest.*
|
||||||
|
])
|
||||||
|
if test $libffi_cv_hidden_visibility_attribute = yes; then
|
||||||
|
AC_DEFINE(HAVE_HIDDEN_VISIBILITY_ATTRIBUTE, 1,
|
||||||
|
[Define if __attribute__((visibility("hidden"))) is supported.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AH_BOTTOM([
|
||||||
|
#ifdef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
|
||||||
|
#ifdef LIBFFI_ASM
|
||||||
|
#define FFI_HIDDEN(name) .hidden name
|
||||||
|
#else
|
||||||
|
#define FFI_HIDDEN __attribute__ ((visibility ("hidden")))
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#ifdef LIBFFI_ASM
|
||||||
|
#define FFI_HIDDEN(name)
|
||||||
|
#else
|
||||||
|
#define FFI_HIDDEN
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_SUBST(TARGET)
|
||||||
|
AC_SUBST(TARGETDIR)
|
||||||
|
|
||||||
|
AC_SUBST(SHELL)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(debug,
|
||||||
|
[ --enable-debug debugging mode],
|
||||||
|
if test "$enable_debug" = "yes"; then
|
||||||
|
AC_DEFINE(FFI_DEBUG, 1, [Define this if you want extra debugging.])
|
||||||
|
fi)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(structs,
|
||||||
|
[ --disable-structs omit code for struct support],
|
||||||
|
if test "$enable_structs" = "no"; then
|
||||||
|
AC_DEFINE(FFI_NO_STRUCTS, 1, [Define this is you do not want support for aggregate types.])
|
||||||
|
fi)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(raw-api,
|
||||||
|
[ --disable-raw-api make the raw api unavailable],
|
||||||
|
if test "$enable_raw_api" = "no"; then
|
||||||
|
AC_DEFINE(FFI_NO_RAW_API, 1, [Define this is you do not want support for the raw API.])
|
||||||
|
fi)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(purify-safety,
|
||||||
|
[ --enable-purify-safety purify-safe mode],
|
||||||
|
if test "$enable_purify_safety" = "yes"; then
|
||||||
|
AC_DEFINE(USING_PURIFY, 1, [Define this if you are using Purify and want to suppress spurious messages.])
|
||||||
|
fi)
|
||||||
|
|
||||||
|
if test -n "$with_cross_host" &&
|
||||||
|
test x"$with_cross_host" != x"no"; then
|
||||||
|
toolexecdir='$(exec_prefix)/$(target_alias)'
|
||||||
|
toolexeclibdir='$(toolexecdir)/lib'
|
||||||
|
else
|
||||||
|
toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
|
||||||
|
toolexeclibdir='$(libdir)'
|
||||||
|
fi
|
||||||
|
multi_os_directory=`$CC -print-multi-os-directory`
|
||||||
|
case $multi_os_directory in
|
||||||
|
.) ;; # Avoid trailing /.
|
||||||
|
*) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
|
||||||
|
esac
|
||||||
|
AC_SUBST(toolexecdir)
|
||||||
|
AC_SUBST(toolexeclibdir)
|
||||||
|
|
||||||
|
if test "${multilib}" = "yes"; then
|
||||||
|
multilib_arg="--enable-multilib"
|
||||||
|
else
|
||||||
|
multilib_arg=
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CONFIG_COMMANDS(include, [test -d include || mkdir include])
|
||||||
|
AC_CONFIG_COMMANDS(src, [
|
||||||
|
test -d src || mkdir src
|
||||||
|
test -d src/$TARGETDIR || mkdir src/$TARGETDIR
|
||||||
|
], [TARGETDIR="$TARGETDIR"])
|
||||||
|
|
||||||
|
AC_CONFIG_LINKS(include/ffitarget.h:src/$TARGETDIR/ffitarget.h)
|
||||||
|
|
||||||
|
AC_CONFIG_FILES(include/Makefile include/ffi.h Makefile testsuite/Makefile man/Makefile libffi.pc)
|
||||||
|
|
||||||
|
AC_OUTPUT
|
||||||
185
.pc/debug-build/msvcc.sh
Executable file
185
.pc/debug-build/msvcc.sh
Executable file
@@ -0,0 +1,185 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# ***** BEGIN LICENSE BLOCK *****
|
||||||
|
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||||
|
#
|
||||||
|
# The contents of this file are subject to the Mozilla Public License Version
|
||||||
|
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||||
|
# the License. You may obtain a copy of the License at
|
||||||
|
# http://www.mozilla.org/MPL/
|
||||||
|
#
|
||||||
|
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||||
|
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||||
|
# for the specific language governing rights and limitations under the
|
||||||
|
# License.
|
||||||
|
#
|
||||||
|
# The Original Code is the MSVC wrappificator.
|
||||||
|
#
|
||||||
|
# The Initial Developer of the Original Code is
|
||||||
|
# Timothy Wall <twalljava@dev.java.net>.
|
||||||
|
# Portions created by the Initial Developer are Copyright (C) 2009
|
||||||
|
# the Initial Developer. All Rights Reserved.
|
||||||
|
#
|
||||||
|
# Contributor(s):
|
||||||
|
# Daniel Witte <dwitte@mozilla.com>
|
||||||
|
#
|
||||||
|
# Alternatively, the contents of this file may be used under the terms of
|
||||||
|
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||||
|
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||||
|
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||||
|
# of those above. If you wish to allow use of your version of this file only
|
||||||
|
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||||
|
# use your version of this file under the terms of the MPL, indicate your
|
||||||
|
# decision by deleting the provisions above and replace them with the notice
|
||||||
|
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||||
|
# the provisions above, a recipient may use your version of this file under
|
||||||
|
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||||
|
#
|
||||||
|
# ***** END LICENSE BLOCK *****
|
||||||
|
|
||||||
|
#
|
||||||
|
# GCC-compatible wrapper for cl.exe and ml.exe. Arguments are given in GCC
|
||||||
|
# format and translated into something sensible for cl or ml.
|
||||||
|
#
|
||||||
|
|
||||||
|
args="-nologo"
|
||||||
|
md=-MD
|
||||||
|
cl="cl"
|
||||||
|
ml="ml"
|
||||||
|
safeseh="-safeseh"
|
||||||
|
output=
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]
|
||||||
|
do
|
||||||
|
case $1
|
||||||
|
in
|
||||||
|
-fexceptions)
|
||||||
|
# Don't enable exceptions for now.
|
||||||
|
#args="$args -EHac"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-m32)
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-m64)
|
||||||
|
cl="cl" # "$MSVC/x86_amd64/cl"
|
||||||
|
ml="ml64" # "$MSVC/x86_amd64/ml64"
|
||||||
|
safeseh=
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-O*)
|
||||||
|
args="$args $1"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-g)
|
||||||
|
# Can't specify -RTC1 or -Zi in opt. -Gy is ok. Use -OPT:REF?
|
||||||
|
args="$args -D_DEBUG -RTC1 -Zi"
|
||||||
|
md=-MDd
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-c)
|
||||||
|
args="$args -c"
|
||||||
|
args="$(echo $args | sed 's%/Fe%/Fo%g')"
|
||||||
|
single="-c"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-D*=*)
|
||||||
|
name="$(echo $1|sed 's/-D\([^=][^=]*\)=.*/\1/g')"
|
||||||
|
value="$(echo $1|sed 's/-D[^=][^=]*=//g')"
|
||||||
|
args="$args -D${name}='$value'"
|
||||||
|
defines="$defines -D${name}='$value'"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-D*)
|
||||||
|
args="$args $1"
|
||||||
|
defines="$defines $1"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-I)
|
||||||
|
args="$args -I$2"
|
||||||
|
includes="$includes -I$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
-I*)
|
||||||
|
args="$args $1"
|
||||||
|
includes="$includes $1"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-W|-Wextra)
|
||||||
|
# TODO map extra warnings
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-Wall)
|
||||||
|
# -Wall on MSVC is overzealous. Use -W3 instead.
|
||||||
|
args="$args -W3"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-Werror)
|
||||||
|
args="$args -WX"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-W*)
|
||||||
|
# TODO map specific warnings
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-S)
|
||||||
|
args="$args -FAs"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-o)
|
||||||
|
outdir="$(dirname $2)"
|
||||||
|
base="$(basename $2|sed 's/\.[^.]*//g')"
|
||||||
|
if [ -n "$single" ]; then
|
||||||
|
output="-Fo$2"
|
||||||
|
else
|
||||||
|
output="-Fe$2"
|
||||||
|
fi
|
||||||
|
if [ -n "$assembly" ]; then
|
||||||
|
args="$args $output"
|
||||||
|
else
|
||||||
|
args="$args $output -Fd$outdir/$base -Fp$outdir/$base -Fa$outdir/$base"
|
||||||
|
fi
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
*.S)
|
||||||
|
src=$1
|
||||||
|
assembly="true"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
*.c)
|
||||||
|
args="$args $1"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Assume it's an MSVC argument, and pass it through.
|
||||||
|
args="$args $1"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$assembly" ]; then
|
||||||
|
if [ -z "$outdir" ]; then
|
||||||
|
outdir="."
|
||||||
|
fi
|
||||||
|
ppsrc="$outdir/$(basename $src|sed 's/.S$/.asm/g')"
|
||||||
|
echo "$cl -nologo -EP $includes $defines $src > $ppsrc"
|
||||||
|
"$cl" -nologo -EP $includes $defines $src > $ppsrc || exit $?
|
||||||
|
output="$(echo $output | sed 's%/F[dpa][^ ]*%%g')"
|
||||||
|
args="-nologo $safeseh $single $output $ppsrc"
|
||||||
|
|
||||||
|
echo "$ml $args"
|
||||||
|
eval "\"$ml\" $args"
|
||||||
|
result=$?
|
||||||
|
|
||||||
|
# required to fix ml64 broken output?
|
||||||
|
#mv *.obj $outdir
|
||||||
|
else
|
||||||
|
args="$md $args"
|
||||||
|
echo "$cl $args"
|
||||||
|
eval "\"$cl\" $args"
|
||||||
|
result=$?
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit $result
|
||||||
|
|
||||||
@@ -1,3 +1,10 @@
|
|||||||
|
2010-08-05 Dan Witte <dwitte@mozilla.com>
|
||||||
|
|
||||||
|
* Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
|
||||||
|
debug CRT when --enable-debug is given.
|
||||||
|
* configure.ac: Define it.
|
||||||
|
* msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
|
||||||
|
|
||||||
2010-08-04 Dan Witte <dwitte@mozilla.com>
|
2010-08-04 Dan Witte <dwitte@mozilla.com>
|
||||||
|
|
||||||
* src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
|
* src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
|
||||||
|
|||||||
@@ -178,6 +178,14 @@ libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
|
|||||||
nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
|
nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
|
||||||
|
|
||||||
AM_CFLAGS = -Wall -g -fexceptions
|
AM_CFLAGS = -Wall -g -fexceptions
|
||||||
|
if FFI_DEBUG
|
||||||
|
# Build debug. Define FFI_DEBUG on the commandline so that, when building with
|
||||||
|
# MSVC, it can link against the debug CRT.
|
||||||
|
AM_CFLAGS += -DFFI_DEBUG
|
||||||
|
else
|
||||||
|
# Build opt.
|
||||||
|
AM_CFLAGS += -O2
|
||||||
|
endif
|
||||||
|
|
||||||
libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS)
|
libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS)
|
||||||
|
|
||||||
|
|||||||
@@ -62,6 +62,11 @@ target_triplet = @target@
|
|||||||
@SH64_TRUE@am__append_24 = src/sh64/sysv.S src/sh64/ffi.c
|
@SH64_TRUE@am__append_24 = src/sh64/sysv.S src/sh64/ffi.c
|
||||||
@PA_LINUX_TRUE@am__append_25 = src/pa/linux.S src/pa/ffi.c
|
@PA_LINUX_TRUE@am__append_25 = src/pa/linux.S src/pa/ffi.c
|
||||||
@PA_HPUX_TRUE@am__append_26 = src/pa/hpux32.S src/pa/ffi.c
|
@PA_HPUX_TRUE@am__append_26 = src/pa/hpux32.S src/pa/ffi.c
|
||||||
|
# Build debug. Define FFI_DEBUG on the commandline so that, when building with
|
||||||
|
# MSVC, it can link against the debug CRT.
|
||||||
|
@FFI_DEBUG_TRUE@am__append_27 = -DFFI_DEBUG
|
||||||
|
# Build opt.
|
||||||
|
@FFI_DEBUG_FALSE@am__append_28 = -O2
|
||||||
subdir = .
|
subdir = .
|
||||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||||
$(srcdir)/Makefile.in $(srcdir)/doc/stamp-vti \
|
$(srcdir)/Makefile.in $(srcdir)/doc/stamp-vti \
|
||||||
@@ -482,7 +487,7 @@ nodist_libffi_la_SOURCES = $(am__append_1) $(am__append_2) \
|
|||||||
$(am__append_24) $(am__append_25) $(am__append_26)
|
$(am__append_24) $(am__append_25) $(am__append_26)
|
||||||
libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
|
libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
|
||||||
nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
|
nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
|
||||||
AM_CFLAGS = -Wall -g -fexceptions
|
AM_CFLAGS = -Wall -g -fexceptions $(am__append_27) $(am__append_28)
|
||||||
libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS)
|
libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS)
|
||||||
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
|
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
|
||||||
AM_CCASFLAGS = $(AM_CPPFLAGS)
|
AM_CCASFLAGS = $(AM_CPPFLAGS)
|
||||||
|
|||||||
46
configure
vendored
46
configure
vendored
@@ -748,6 +748,8 @@ LTLIBOBJS
|
|||||||
LIBOBJS
|
LIBOBJS
|
||||||
toolexeclibdir
|
toolexeclibdir
|
||||||
toolexecdir
|
toolexecdir
|
||||||
|
FFI_DEBUG_FALSE
|
||||||
|
FFI_DEBUG_TRUE
|
||||||
TARGETDIR
|
TARGETDIR
|
||||||
TARGET
|
TARGET
|
||||||
HAVE_LONG_DOUBLE
|
HAVE_LONG_DOUBLE
|
||||||
@@ -3189,9 +3191,12 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
|
|||||||
# We must force CC to /not/ be precious variables; otherwise
|
# We must force CC to /not/ be precious variables; otherwise
|
||||||
# the wrong, non-multilib-adjusted value will be used in multilibs.
|
# the wrong, non-multilib-adjusted value will be used in multilibs.
|
||||||
# As a side effect, we have to subst CFLAGS ourselves.
|
# As a side effect, we have to subst CFLAGS ourselves.
|
||||||
|
# Also save and restore CFLAGS, since AC_PROG_CC will come up with
|
||||||
|
# defaults of its own if none are provided.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
save_CFLAGS=$CFLAGS
|
||||||
ac_ext=c
|
ac_ext=c
|
||||||
ac_cpp='$CPP $CPPFLAGS'
|
ac_cpp='$CPP $CPPFLAGS'
|
||||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
@@ -4172,6 +4177,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS=$save_CFLAGS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -5044,13 +5050,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
|
|||||||
else
|
else
|
||||||
lt_cv_nm_interface="BSD nm"
|
lt_cv_nm_interface="BSD nm"
|
||||||
echo "int some_variable = 0;" > conftest.$ac_ext
|
echo "int some_variable = 0;" > conftest.$ac_ext
|
||||||
(eval echo "\"\$as_me:5047: $ac_compile\"" >&5)
|
(eval echo "\"\$as_me:5053: $ac_compile\"" >&5)
|
||||||
(eval "$ac_compile" 2>conftest.err)
|
(eval "$ac_compile" 2>conftest.err)
|
||||||
cat conftest.err >&5
|
cat conftest.err >&5
|
||||||
(eval echo "\"\$as_me:5050: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
|
(eval echo "\"\$as_me:5056: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
|
||||||
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
|
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
|
||||||
cat conftest.err >&5
|
cat conftest.err >&5
|
||||||
(eval echo "\"\$as_me:5053: output\"" >&5)
|
(eval echo "\"\$as_me:5059: output\"" >&5)
|
||||||
cat conftest.out >&5
|
cat conftest.out >&5
|
||||||
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
|
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
|
||||||
lt_cv_nm_interface="MS dumpbin"
|
lt_cv_nm_interface="MS dumpbin"
|
||||||
@@ -6256,7 +6262,7 @@ ia64-*-hpux*)
|
|||||||
;;
|
;;
|
||||||
*-*-irix6*)
|
*-*-irix6*)
|
||||||
# Find out which ABI we are using.
|
# Find out which ABI we are using.
|
||||||
echo '#line 6259 "configure"' > conftest.$ac_ext
|
echo '#line 6265 "configure"' > conftest.$ac_ext
|
||||||
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
|
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
|
||||||
(eval $ac_compile) 2>&5
|
(eval $ac_compile) 2>&5
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
@@ -7782,11 +7788,11 @@ else
|
|||||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||||
-e 's:$: $lt_compiler_flag:'`
|
-e 's:$: $lt_compiler_flag:'`
|
||||||
(eval echo "\"\$as_me:7785: $lt_compile\"" >&5)
|
(eval echo "\"\$as_me:7791: $lt_compile\"" >&5)
|
||||||
(eval "$lt_compile" 2>conftest.err)
|
(eval "$lt_compile" 2>conftest.err)
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
cat conftest.err >&5
|
cat conftest.err >&5
|
||||||
echo "$as_me:7789: \$? = $ac_status" >&5
|
echo "$as_me:7795: \$? = $ac_status" >&5
|
||||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||||
# The compiler can only warn and ignore the option if not recognized
|
# The compiler can only warn and ignore the option if not recognized
|
||||||
# So say no if there are warnings other than the usual output.
|
# So say no if there are warnings other than the usual output.
|
||||||
@@ -8121,11 +8127,11 @@ else
|
|||||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||||
-e 's:$: $lt_compiler_flag:'`
|
-e 's:$: $lt_compiler_flag:'`
|
||||||
(eval echo "\"\$as_me:8124: $lt_compile\"" >&5)
|
(eval echo "\"\$as_me:8130: $lt_compile\"" >&5)
|
||||||
(eval "$lt_compile" 2>conftest.err)
|
(eval "$lt_compile" 2>conftest.err)
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
cat conftest.err >&5
|
cat conftest.err >&5
|
||||||
echo "$as_me:8128: \$? = $ac_status" >&5
|
echo "$as_me:8134: \$? = $ac_status" >&5
|
||||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||||
# The compiler can only warn and ignore the option if not recognized
|
# The compiler can only warn and ignore the option if not recognized
|
||||||
# So say no if there are warnings other than the usual output.
|
# So say no if there are warnings other than the usual output.
|
||||||
@@ -8226,11 +8232,11 @@ else
|
|||||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||||
-e 's:$: $lt_compiler_flag:'`
|
-e 's:$: $lt_compiler_flag:'`
|
||||||
(eval echo "\"\$as_me:8229: $lt_compile\"" >&5)
|
(eval echo "\"\$as_me:8235: $lt_compile\"" >&5)
|
||||||
(eval "$lt_compile" 2>out/conftest.err)
|
(eval "$lt_compile" 2>out/conftest.err)
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
cat out/conftest.err >&5
|
cat out/conftest.err >&5
|
||||||
echo "$as_me:8233: \$? = $ac_status" >&5
|
echo "$as_me:8239: \$? = $ac_status" >&5
|
||||||
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||||
then
|
then
|
||||||
# The compiler can only warn and ignore the option if not recognized
|
# The compiler can only warn and ignore the option if not recognized
|
||||||
@@ -8281,11 +8287,11 @@ else
|
|||||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||||
-e 's:$: $lt_compiler_flag:'`
|
-e 's:$: $lt_compiler_flag:'`
|
||||||
(eval echo "\"\$as_me:8284: $lt_compile\"" >&5)
|
(eval echo "\"\$as_me:8290: $lt_compile\"" >&5)
|
||||||
(eval "$lt_compile" 2>out/conftest.err)
|
(eval "$lt_compile" 2>out/conftest.err)
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
cat out/conftest.err >&5
|
cat out/conftest.err >&5
|
||||||
echo "$as_me:8288: \$? = $ac_status" >&5
|
echo "$as_me:8294: \$? = $ac_status" >&5
|
||||||
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||||
then
|
then
|
||||||
# The compiler can only warn and ignore the option if not recognized
|
# The compiler can only warn and ignore the option if not recognized
|
||||||
@@ -10651,7 +10657,7 @@ else
|
|||||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||||
lt_status=$lt_dlunknown
|
lt_status=$lt_dlunknown
|
||||||
cat > conftest.$ac_ext <<_LT_EOF
|
cat > conftest.$ac_ext <<_LT_EOF
|
||||||
#line 10654 "configure"
|
#line 10660 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
#if HAVE_DLFCN_H
|
#if HAVE_DLFCN_H
|
||||||
@@ -10747,7 +10753,7 @@ else
|
|||||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||||
lt_status=$lt_dlunknown
|
lt_status=$lt_dlunknown
|
||||||
cat > conftest.$ac_ext <<_LT_EOF
|
cat > conftest.$ac_ext <<_LT_EOF
|
||||||
#line 10750 "configure"
|
#line 10756 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
#if HAVE_DLFCN_H
|
#if HAVE_DLFCN_H
|
||||||
@@ -12465,6 +12471,14 @@ $as_echo "#define FFI_DEBUG 1" >>confdefs.h
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "$enable_debug" = "yes"; then
|
||||||
|
FFI_DEBUG_TRUE=
|
||||||
|
FFI_DEBUG_FALSE='#'
|
||||||
|
else
|
||||||
|
FFI_DEBUG_TRUE='#'
|
||||||
|
FFI_DEBUG_FALSE=
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Check whether --enable-structs was given.
|
# Check whether --enable-structs was given.
|
||||||
if test "${enable_structs+set}" = set; then :
|
if test "${enable_structs+set}" = set; then :
|
||||||
@@ -12763,6 +12777,10 @@ if test -z "${PA64_HPUX_TRUE}" && test -z "${PA64_HPUX_FALSE}"; then
|
|||||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test -z "${FFI_DEBUG_TRUE}" && test -z "${FFI_DEBUG_FALSE}"; then
|
||||||
|
as_fn_error "conditional \"FFI_DEBUG\" was never defined.
|
||||||
|
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||||
|
fi
|
||||||
|
|
||||||
: ${CONFIG_STATUS=./config.status}
|
: ${CONFIG_STATUS=./config.status}
|
||||||
ac_write_fail=0
|
ac_write_fail=0
|
||||||
|
|||||||
@@ -16,10 +16,14 @@ AM_INIT_AUTOMAKE
|
|||||||
# We must force CC to /not/ be precious variables; otherwise
|
# We must force CC to /not/ be precious variables; otherwise
|
||||||
# the wrong, non-multilib-adjusted value will be used in multilibs.
|
# the wrong, non-multilib-adjusted value will be used in multilibs.
|
||||||
# As a side effect, we have to subst CFLAGS ourselves.
|
# As a side effect, we have to subst CFLAGS ourselves.
|
||||||
|
# Also save and restore CFLAGS, since AC_PROG_CC will come up with
|
||||||
|
# defaults of its own if none are provided.
|
||||||
|
|
||||||
m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
|
m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
|
||||||
m4_define([_AC_ARG_VAR_PRECIOUS],[])
|
m4_define([_AC_ARG_VAR_PRECIOUS],[])
|
||||||
|
save_CFLAGS=$CFLAGS
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
|
CFLAGS=$save_CFLAGS
|
||||||
m4_undefine([_AC_ARG_VAR_PRECIOUS])
|
m4_undefine([_AC_ARG_VAR_PRECIOUS])
|
||||||
m4_rename([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
|
m4_rename([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
|
||||||
|
|
||||||
@@ -400,6 +404,7 @@ AC_ARG_ENABLE(debug,
|
|||||||
if test "$enable_debug" = "yes"; then
|
if test "$enable_debug" = "yes"; then
|
||||||
AC_DEFINE(FFI_DEBUG, 1, [Define this if you want extra debugging.])
|
AC_DEFINE(FFI_DEBUG, 1, [Define this if you want extra debugging.])
|
||||||
fi)
|
fi)
|
||||||
|
AM_CONDITIONAL(FFI_DEBUG, test "$enable_debug" = "yes")
|
||||||
|
|
||||||
AC_ARG_ENABLE(structs,
|
AC_ARG_ENABLE(structs,
|
||||||
[ --disable-structs omit code for struct support],
|
[ --disable-structs omit code for struct support],
|
||||||
|
|||||||
@@ -147,7 +147,9 @@ To prepare a call interface object, use the function `ffi_prep_cif'.
|
|||||||
AVALUES is a vector of `void *' pointers that point to the memory
|
AVALUES is a vector of `void *' pointers that point to the memory
|
||||||
locations holding the argument values for a call. If CIF declares
|
locations holding the argument values for a call. If CIF declares
|
||||||
that the function has no arguments (i.e., NARGS was 0), then
|
that the function has no arguments (i.e., NARGS was 0), then
|
||||||
AVALUES is ignored.
|
AVALUES is ignored. Note that argument values may be modified by
|
||||||
|
the callee (for instance, structs passed by value); the burden of
|
||||||
|
copying pass-by-value arguments is placed on the caller.
|
||||||
|
|
||||||
|
|
||||||
File: libffi.info, Node: Simple Example, Next: Types, Prev: The Basics, Up: Using libffi
|
File: libffi.info, Node: Simple Example, Next: Types, Prev: The Basics, Up: Using libffi
|
||||||
@@ -577,15 +579,15 @@ Node: Top706
|
|||||||
Node: Introduction1448
|
Node: Introduction1448
|
||||||
Node: Using libffi3084
|
Node: Using libffi3084
|
||||||
Node: The Basics3570
|
Node: The Basics3570
|
||||||
Node: Simple Example6177
|
Node: Simple Example6356
|
||||||
Node: Types7204
|
Node: Types7383
|
||||||
Node: Primitive Types7487
|
Node: Primitive Types7666
|
||||||
Node: Structures9307
|
Node: Structures9486
|
||||||
Node: Type Example10167
|
Node: Type Example10346
|
||||||
Node: Multiple ABIs11390
|
Node: Multiple ABIs11569
|
||||||
Node: The Closure API11761
|
Node: The Closure API11940
|
||||||
Node: Closure Example14705
|
Node: Closure Example14884
|
||||||
Node: Missing Features16264
|
Node: Missing Features16443
|
||||||
Node: Index16757
|
Node: Index16936
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|||||||
24
msvcc.sh
24
msvcc.sh
@@ -42,7 +42,7 @@
|
|||||||
# format and translated into something sensible for cl or ml.
|
# format and translated into something sensible for cl or ml.
|
||||||
#
|
#
|
||||||
|
|
||||||
args="-nologo"
|
args="-nologo -W3"
|
||||||
md=-MD
|
md=-MD
|
||||||
cl="cl"
|
cl="cl"
|
||||||
ml="ml"
|
ml="ml"
|
||||||
@@ -67,13 +67,25 @@ do
|
|||||||
safeseh=
|
safeseh=
|
||||||
shift 1
|
shift 1
|
||||||
;;
|
;;
|
||||||
|
-O0)
|
||||||
|
args="$args -Od"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
-O*)
|
-O*)
|
||||||
args="$args $1"
|
# If we're optimizing, make sure we explicitly turn on some optimizations
|
||||||
|
# that are implicitly disabled by debug symbols (-Zi).
|
||||||
|
args="$args $1 -OPT:REF -OPT:ICF -INCREMENTAL:NO"
|
||||||
shift 1
|
shift 1
|
||||||
;;
|
;;
|
||||||
-g)
|
-g)
|
||||||
# Can't specify -RTC1 or -Zi in opt. -Gy is ok. Use -OPT:REF?
|
# Enable debug symbol generation.
|
||||||
args="$args -D_DEBUG -RTC1 -Zi"
|
args="$args -Zi -DEBUG"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-DFFI_DEBUG)
|
||||||
|
# Link against debug CRT and enable runtime error checks.
|
||||||
|
args="$args -RTC1"
|
||||||
|
defines="$defines $1"
|
||||||
md=-MDd
|
md=-MDd
|
||||||
shift 1
|
shift 1
|
||||||
;;
|
;;
|
||||||
@@ -110,8 +122,8 @@ do
|
|||||||
shift 1
|
shift 1
|
||||||
;;
|
;;
|
||||||
-Wall)
|
-Wall)
|
||||||
# -Wall on MSVC is overzealous. Use -W3 instead.
|
# -Wall on MSVC is overzealous, and we already build with -W3. Nothing
|
||||||
args="$args -W3"
|
# to do here.
|
||||||
shift 1
|
shift 1
|
||||||
;;
|
;;
|
||||||
-Werror)
|
-Werror)
|
||||||
|
|||||||
299
patches/debug-build
Normal file
299
patches/debug-build
Normal file
@@ -0,0 +1,299 @@
|
|||||||
|
Index: libffi/ChangeLog
|
||||||
|
===================================================================
|
||||||
|
--- libffi.orig/ChangeLog
|
||||||
|
+++ libffi/ChangeLog
|
||||||
|
@@ -1,3 +1,10 @@
|
||||||
|
+2010-08-05 Dan Witte <dwitte@mozilla.com>
|
||||||
|
+
|
||||||
|
+ * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
|
||||||
|
+ debug CRT when --enable-debug is given.
|
||||||
|
+ * configure.ac: Define it.
|
||||||
|
+ * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
|
||||||
|
+
|
||||||
|
2010-08-04 Dan Witte <dwitte@mozilla.com>
|
||||||
|
|
||||||
|
* src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
|
||||||
|
Index: libffi/Makefile.am
|
||||||
|
===================================================================
|
||||||
|
--- libffi.orig/Makefile.am
|
||||||
|
+++ libffi/Makefile.am
|
||||||
|
@@ -178,6 +178,14 @@ libffi_convenience_la_SOURCES = $(libffi
|
||||||
|
nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
|
||||||
|
|
||||||
|
AM_CFLAGS = -Wall -g -fexceptions
|
||||||
|
+if FFI_DEBUG
|
||||||
|
+# Build debug. Define FFI_DEBUG on the commandline so that, when building with
|
||||||
|
+# MSVC, it can link against the debug CRT.
|
||||||
|
+AM_CFLAGS += -DFFI_DEBUG
|
||||||
|
+else
|
||||||
|
+# Build opt.
|
||||||
|
+AM_CFLAGS += -O2
|
||||||
|
+endif
|
||||||
|
|
||||||
|
libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS)
|
||||||
|
|
||||||
|
Index: libffi/configure.ac
|
||||||
|
===================================================================
|
||||||
|
--- libffi.orig/configure.ac
|
||||||
|
+++ libffi/configure.ac
|
||||||
|
@@ -16,10 +16,14 @@ AM_INIT_AUTOMAKE
|
||||||
|
# We must force CC to /not/ be precious variables; otherwise
|
||||||
|
# the wrong, non-multilib-adjusted value will be used in multilibs.
|
||||||
|
# As a side effect, we have to subst CFLAGS ourselves.
|
||||||
|
+# Also save and restore CFLAGS, since AC_PROG_CC will come up with
|
||||||
|
+# defaults of its own if none are provided.
|
||||||
|
|
||||||
|
m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
|
||||||
|
m4_define([_AC_ARG_VAR_PRECIOUS],[])
|
||||||
|
+save_CFLAGS=$CFLAGS
|
||||||
|
AC_PROG_CC
|
||||||
|
+CFLAGS=$save_CFLAGS
|
||||||
|
m4_undefine([_AC_ARG_VAR_PRECIOUS])
|
||||||
|
m4_rename([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
|
||||||
|
|
||||||
|
@@ -400,6 +404,7 @@ AC_ARG_ENABLE(debug,
|
||||||
|
if test "$enable_debug" = "yes"; then
|
||||||
|
AC_DEFINE(FFI_DEBUG, 1, [Define this if you want extra debugging.])
|
||||||
|
fi)
|
||||||
|
+AM_CONDITIONAL(FFI_DEBUG, test "$enable_debug" = "yes")
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(structs,
|
||||||
|
[ --disable-structs omit code for struct support],
|
||||||
|
Index: libffi/msvcc.sh
|
||||||
|
===================================================================
|
||||||
|
--- libffi.orig/msvcc.sh
|
||||||
|
+++ libffi/msvcc.sh
|
||||||
|
@@ -42,7 +42,7 @@
|
||||||
|
# format and translated into something sensible for cl or ml.
|
||||||
|
#
|
||||||
|
|
||||||
|
-args="-nologo"
|
||||||
|
+args="-nologo -W3"
|
||||||
|
md=-MD
|
||||||
|
cl="cl"
|
||||||
|
ml="ml"
|
||||||
|
@@ -67,13 +67,25 @@ do
|
||||||
|
safeseh=
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
+ -O0)
|
||||||
|
+ args="$args -Od"
|
||||||
|
+ shift 1
|
||||||
|
+ ;;
|
||||||
|
-O*)
|
||||||
|
- args="$args $1"
|
||||||
|
+ # If we're optimizing, make sure we explicitly turn on some optimizations
|
||||||
|
+ # that are implicitly disabled by debug symbols (-Zi).
|
||||||
|
+ args="$args $1 -OPT:REF -OPT:ICF -INCREMENTAL:NO"
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-g)
|
||||||
|
- # Can't specify -RTC1 or -Zi in opt. -Gy is ok. Use -OPT:REF?
|
||||||
|
- args="$args -D_DEBUG -RTC1 -Zi"
|
||||||
|
+ # Enable debug symbol generation.
|
||||||
|
+ args="$args -Zi -DEBUG"
|
||||||
|
+ shift 1
|
||||||
|
+ ;;
|
||||||
|
+ -DFFI_DEBUG)
|
||||||
|
+ # Link against debug CRT and enable runtime error checks.
|
||||||
|
+ args="$args -RTC1"
|
||||||
|
+ defines="$defines $1"
|
||||||
|
md=-MDd
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
@@ -110,8 +122,8 @@ do
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-Wall)
|
||||||
|
- # -Wall on MSVC is overzealous. Use -W3 instead.
|
||||||
|
- args="$args -W3"
|
||||||
|
+ # -Wall on MSVC is overzealous, and we already build with -W3. Nothing
|
||||||
|
+ # to do here.
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
-Werror)
|
||||||
|
Index: libffi/Makefile.in
|
||||||
|
===================================================================
|
||||||
|
--- libffi.orig/Makefile.in
|
||||||
|
+++ libffi/Makefile.in
|
||||||
|
@@ -62,6 +62,11 @@ target_triplet = @target@
|
||||||
|
@SH64_TRUE@am__append_24 = src/sh64/sysv.S src/sh64/ffi.c
|
||||||
|
@PA_LINUX_TRUE@am__append_25 = src/pa/linux.S src/pa/ffi.c
|
||||||
|
@PA_HPUX_TRUE@am__append_26 = src/pa/hpux32.S src/pa/ffi.c
|
||||||
|
+# Build debug. Define FFI_DEBUG on the commandline so that, when building with
|
||||||
|
+# MSVC, it can link against the debug CRT.
|
||||||
|
+@FFI_DEBUG_TRUE@am__append_27 = -DFFI_DEBUG
|
||||||
|
+# Build opt.
|
||||||
|
+@FFI_DEBUG_FALSE@am__append_28 = -O2
|
||||||
|
subdir = .
|
||||||
|
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||||
|
$(srcdir)/Makefile.in $(srcdir)/doc/stamp-vti \
|
||||||
|
@@ -482,7 +487,7 @@ nodist_libffi_la_SOURCES = $(am__append_
|
||||||
|
$(am__append_24) $(am__append_25) $(am__append_26)
|
||||||
|
libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
|
||||||
|
nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
|
||||||
|
-AM_CFLAGS = -Wall -g -fexceptions
|
||||||
|
+AM_CFLAGS = -Wall -g -fexceptions $(am__append_27) $(am__append_28)
|
||||||
|
libffi_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS)
|
||||||
|
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
|
||||||
|
AM_CCASFLAGS = $(AM_CPPFLAGS)
|
||||||
|
Index: libffi/configure
|
||||||
|
===================================================================
|
||||||
|
--- libffi.orig/configure
|
||||||
|
+++ libffi/configure
|
||||||
|
@@ -748,6 +748,8 @@ LTLIBOBJS
|
||||||
|
LIBOBJS
|
||||||
|
toolexeclibdir
|
||||||
|
toolexecdir
|
||||||
|
+FFI_DEBUG_FALSE
|
||||||
|
+FFI_DEBUG_TRUE
|
||||||
|
TARGETDIR
|
||||||
|
TARGET
|
||||||
|
HAVE_LONG_DOUBLE
|
||||||
|
@@ -3189,9 +3191,12 @@ am__tar='${AMTAR} chof - "$$tardir"'; am
|
||||||
|
# We must force CC to /not/ be precious variables; otherwise
|
||||||
|
# the wrong, non-multilib-adjusted value will be used in multilibs.
|
||||||
|
# As a side effect, we have to subst CFLAGS ourselves.
|
||||||
|
+# Also save and restore CFLAGS, since AC_PROG_CC will come up with
|
||||||
|
+# defaults of its own if none are provided.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
+save_CFLAGS=$CFLAGS
|
||||||
|
ac_ext=c
|
||||||
|
ac_cpp='$CPP $CPPFLAGS'
|
||||||
|
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
@@ -4172,6 +4177,7 @@ else
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
+CFLAGS=$save_CFLAGS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -5044,13 +5050,13 @@ if test "${lt_cv_nm_interface+set}" = se
|
||||||
|
else
|
||||||
|
lt_cv_nm_interface="BSD nm"
|
||||||
|
echo "int some_variable = 0;" > conftest.$ac_ext
|
||||||
|
- (eval echo "\"\$as_me:5047: $ac_compile\"" >&5)
|
||||||
|
+ (eval echo "\"\$as_me:5053: $ac_compile\"" >&5)
|
||||||
|
(eval "$ac_compile" 2>conftest.err)
|
||||||
|
cat conftest.err >&5
|
||||||
|
- (eval echo "\"\$as_me:5050: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
|
||||||
|
+ (eval echo "\"\$as_me:5056: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
|
||||||
|
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
|
||||||
|
cat conftest.err >&5
|
||||||
|
- (eval echo "\"\$as_me:5053: output\"" >&5)
|
||||||
|
+ (eval echo "\"\$as_me:5059: output\"" >&5)
|
||||||
|
cat conftest.out >&5
|
||||||
|
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
|
||||||
|
lt_cv_nm_interface="MS dumpbin"
|
||||||
|
@@ -6256,7 +6262,7 @@ ia64-*-hpux*)
|
||||||
|
;;
|
||||||
|
*-*-irix6*)
|
||||||
|
# Find out which ABI we are using.
|
||||||
|
- echo '#line 6259 "configure"' > conftest.$ac_ext
|
||||||
|
+ echo '#line 6265 "configure"' > conftest.$ac_ext
|
||||||
|
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
|
||||||
|
(eval $ac_compile) 2>&5
|
||||||
|
ac_status=$?
|
||||||
|
@@ -7782,11 +7788,11 @@ else
|
||||||
|
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||||
|
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||||
|
-e 's:$: $lt_compiler_flag:'`
|
||||||
|
- (eval echo "\"\$as_me:7785: $lt_compile\"" >&5)
|
||||||
|
+ (eval echo "\"\$as_me:7791: $lt_compile\"" >&5)
|
||||||
|
(eval "$lt_compile" 2>conftest.err)
|
||||||
|
ac_status=$?
|
||||||
|
cat conftest.err >&5
|
||||||
|
- echo "$as_me:7789: \$? = $ac_status" >&5
|
||||||
|
+ echo "$as_me:7795: \$? = $ac_status" >&5
|
||||||
|
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||||
|
# The compiler can only warn and ignore the option if not recognized
|
||||||
|
# So say no if there are warnings other than the usual output.
|
||||||
|
@@ -8121,11 +8127,11 @@ else
|
||||||
|
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||||
|
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||||
|
-e 's:$: $lt_compiler_flag:'`
|
||||||
|
- (eval echo "\"\$as_me:8124: $lt_compile\"" >&5)
|
||||||
|
+ (eval echo "\"\$as_me:8130: $lt_compile\"" >&5)
|
||||||
|
(eval "$lt_compile" 2>conftest.err)
|
||||||
|
ac_status=$?
|
||||||
|
cat conftest.err >&5
|
||||||
|
- echo "$as_me:8128: \$? = $ac_status" >&5
|
||||||
|
+ echo "$as_me:8134: \$? = $ac_status" >&5
|
||||||
|
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||||
|
# The compiler can only warn and ignore the option if not recognized
|
||||||
|
# So say no if there are warnings other than the usual output.
|
||||||
|
@@ -8226,11 +8232,11 @@ else
|
||||||
|
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||||
|
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||||
|
-e 's:$: $lt_compiler_flag:'`
|
||||||
|
- (eval echo "\"\$as_me:8229: $lt_compile\"" >&5)
|
||||||
|
+ (eval echo "\"\$as_me:8235: $lt_compile\"" >&5)
|
||||||
|
(eval "$lt_compile" 2>out/conftest.err)
|
||||||
|
ac_status=$?
|
||||||
|
cat out/conftest.err >&5
|
||||||
|
- echo "$as_me:8233: \$? = $ac_status" >&5
|
||||||
|
+ echo "$as_me:8239: \$? = $ac_status" >&5
|
||||||
|
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||||
|
then
|
||||||
|
# The compiler can only warn and ignore the option if not recognized
|
||||||
|
@@ -8281,11 +8287,11 @@ else
|
||||||
|
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||||
|
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||||
|
-e 's:$: $lt_compiler_flag:'`
|
||||||
|
- (eval echo "\"\$as_me:8284: $lt_compile\"" >&5)
|
||||||
|
+ (eval echo "\"\$as_me:8290: $lt_compile\"" >&5)
|
||||||
|
(eval "$lt_compile" 2>out/conftest.err)
|
||||||
|
ac_status=$?
|
||||||
|
cat out/conftest.err >&5
|
||||||
|
- echo "$as_me:8288: \$? = $ac_status" >&5
|
||||||
|
+ echo "$as_me:8294: \$? = $ac_status" >&5
|
||||||
|
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||||
|
then
|
||||||
|
# The compiler can only warn and ignore the option if not recognized
|
||||||
|
@@ -10651,7 +10657,7 @@ else
|
||||||
|
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||||
|
lt_status=$lt_dlunknown
|
||||||
|
cat > conftest.$ac_ext <<_LT_EOF
|
||||||
|
-#line 10654 "configure"
|
||||||
|
+#line 10660 "configure"
|
||||||
|
#include "confdefs.h"
|
||||||
|
|
||||||
|
#if HAVE_DLFCN_H
|
||||||
|
@@ -10747,7 +10753,7 @@ else
|
||||||
|
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||||
|
lt_status=$lt_dlunknown
|
||||||
|
cat > conftest.$ac_ext <<_LT_EOF
|
||||||
|
-#line 10750 "configure"
|
||||||
|
+#line 10756 "configure"
|
||||||
|
#include "confdefs.h"
|
||||||
|
|
||||||
|
#if HAVE_DLFCN_H
|
||||||
|
@@ -12465,6 +12471,14 @@ $as_echo "#define FFI_DEBUG 1" >>confdef
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
+ if test "$enable_debug" = "yes"; then
|
||||||
|
+ FFI_DEBUG_TRUE=
|
||||||
|
+ FFI_DEBUG_FALSE='#'
|
||||||
|
+else
|
||||||
|
+ FFI_DEBUG_TRUE='#'
|
||||||
|
+ FFI_DEBUG_FALSE=
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
|
||||||
|
# Check whether --enable-structs was given.
|
||||||
|
if test "${enable_structs+set}" = set; then :
|
||||||
|
@@ -12763,6 +12777,10 @@ if test -z "${PA64_HPUX_TRUE}" && test -
|
||||||
|
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||||
|
fi
|
||||||
|
|
||||||
|
+if test -z "${FFI_DEBUG_TRUE}" && test -z "${FFI_DEBUG_FALSE}"; then
|
||||||
|
+ as_fn_error "conditional \"FFI_DEBUG\" was never defined.
|
||||||
|
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||||
|
+fi
|
||||||
|
|
||||||
|
: ${CONFIG_STATUS=./config.status}
|
||||||
|
ac_write_fail=0
|
||||||
@@ -13,3 +13,4 @@ win64-struct-args
|
|||||||
define-generic-symbols-carefully
|
define-generic-symbols-carefully
|
||||||
stdcall-x86-closure-fix
|
stdcall-x86-closure-fix
|
||||||
ml64-safeseh
|
ml64-safeseh
|
||||||
|
debug-build
|
||||||
|
|||||||
Reference in New Issue
Block a user