2006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Andreas Tobler <a.tobler@schweiz.ch>
* Makefile.am: Add PA_HPUX port.
* Makefile.in: Regenerate.
* include/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.
* configure.ac: Add PA_HPUX rules.
* configure: Regenerate.
* src/pa/ffitarget.h: Rename linux target to PA_LINUX.
Add PA_HPUX and PA64_HPUX.
Rename FFI_LINUX ABI to FFI_PA32 ABI.
(FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
(FFI_TYPE_SMALL_STRUCT2): Define.
(FFI_TYPE_SMALL_STRUCT4): Likewise.
(FFI_TYPE_SMALL_STRUCT8): Likewise.
(FFI_TYPE_SMALL_STRUCT3): Redefine.
(FFI_TYPE_SMALL_STRUCT5): Likewise.
(FFI_TYPE_SMALL_STRUCT6): Likewise.
(FFI_TYPE_SMALL_STRUCT7): Likewise.
* src/pa/ffi.c (ROUND_DOWN): Delete.
(fldw, fstw, fldd, fstd): Use '__asm__'.
(ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
(ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
Simplify incrementing of stack slot variable. Change type of local
'n' to unsigned int.
(ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
double on PA_HPUX.
(ffi_prep_cif_machdep): Likewise.
(ffi_call): Likewise.
(ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
return type to ffi_status. Simplify incrementing of stack slot
variable. Only copy floating point argument registers when PA_LINUX
is true. Reformat debug statement.
Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
FFI_TYPE_SMALL_STRUCT8.
(ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
declaration.
(ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
Add nops to cache flush. Add trampoline for PA_HPUX.
* src/pa/hpux32.S: New file.
* src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
ffi_prep_args_LINUX to ffi_prep_args_pa32.
Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
argument type checks so that common argument types appear first.
(ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
Co-Authored-By: Andreas Tobler <a.tobler@schweiz.ch>
From-SVN: r112719
* configure.ac: Do not invoke TL_AC_GCC_VERSION.
Do not set tool_include_dir.
* aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
Regenerate.
* include/Makefile.am: Set gcc_version and toollibffidir.
* include/Makefile.in: Regenerate.
From-SVN: r96823
2004-08-30 Anthony Green <green@redhat.com>
* Makefile.am: Add frv support.
* Makefile.in, testsuite/Makefile.in: Rebuilt.
* configure.ac: Read configure.host.
* configure, aclocal.m4: Rebuilt.
* configure.host: New file. frv-elf needs libgloss.
* include/ffi.h.in: Force ffi_closure to have a nice big (8)
alignment. This is needed to frv and should harm the others.
* include/ffi_common.h (ALIGN_DOWN): New macro.
* src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
From-SVN: r86779
ChangeLog:
2004-08-01 Robert Millan <robertmh@gnu.org>
* configure.in: Turn mt-linux into mt-gnu. Use mt-gnu and enable
libmudflap for all GNU-based systems (with Glibc).
* configure: Regenerate.
config/ChangeLog:
2004-08-01 Robert Millan <robertmh@gnu.org>
* mt-linux: Rename to ...
* mt-gnu: ... this.
libffi/ChangeLog:
2004-08-01 Robert Millan <robertmh@gnu.org>
* configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
* configure: Regenerate.
From-SVN: r85501
2004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
* acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
and mmap() explicitly instead of relying on preset autoconf cache
variables.
* aclocal.m4: Regenerate.
* configure: Regenerate.
From-SVN: r85500
Bug 15093
* configure.ac: Test for existence of mmap and sys/mman.h before
checking blacklist. Fix suggested by Jim Wilson.
* configure: Regenerate.
From-SVN: r81212
2004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
Paolo Bonzini <bonzini@gnu.org>
* Makefile.am (AUTOMAKE_OPTIONS): Set them.
Remove VPATH. Remove rules for object files. Remove multilib support.
(AM_CCASFLAGS): Add.
* configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
(AC_PREREQ): Bump version to 2.59.
(AC_INIT): Fill with version info and bug address.
(ORIGINAL_LD_FOR_MULTILIBS): Remove.
(AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
De-precious CC so that the right flags are passed down to multilibs.
(AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
(AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
(AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
* configure: Rebuilt.
* aclocal.m4: Likewise.
* Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
* fficonfig.h.in: Likewise.
Co-Authored-By: Paolo Bonzini <bonzini@gnu.org>
From-SVN: r79341
2003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
* Makefile.in: Rebuilt.
* configure: Likewise.
* testsuite/libffi.special/unwindtest.cc: Convert the mmap to
the right type.
From-SVN: r73837
2003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
* configure.in: AC_LINK_FILES(ffitarget.h).
* configure: Regenerate.
* Makefile.in: Likewise.
* include/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.
* fficonfig.h.in: Likewise.
2003-10-21 Paolo Bonzini <bonzini@gnu.org>
Richard Henderson <rth@redhat.com>
Avoid that ffi.h includes fficonfig.h.
* Makefile.am (EXTRA_DIST): Include ffitarget.h files
(TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
(TARGET_SRC_MIPS_SGI): Removed.
(MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
(MIPS_SGI): Removed.
(CLEANFILES): Removed.
(mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
targets.
* acconfig.h: Removed.
* configure.in: Compute sizeofs only for double and long double.
Use them to define and subst HAVE_LONG_DOUBLE. Include comments
into AC_DEFINE instead of using acconfig.h. Create
include/ffitarget.h instead of include/fficonfig.h. Rename
MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
AC_DEFINE EH_FRAME_FLAGS.
* include/Makefile.am (DISTCLEANFILES): New automake macro.
(hack_DATA): Add ffitarget.h.
* include/ffi.h.in: Remove all system specific definitions.
Declare raw API even if it is not installed, why bother?
Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
(UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
* include/ffi_common.h (bool): Do not define.
(ffi_assert): Accept failed assertion.
(ffi_type_test): Return void and accept file/line.
(FFI_ASSERT): Pass stringized failed assertion.
(FFI_ASSERT_AT): New macro.
(FFI_ASSERT_VALID_TYPE): New macro.
(UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
UINT64, SINT64): Define here with gcc's __attribute__ macro
instead of in ffi.h
(FLOAT32, ALIGN): Define here instead of in ffi.h
* include/ffi-mips.h: Removed. Its content moved to
src/mips/ffitarget.h after separating assembly and C sections.
* src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
SIZEOF_ARG -> FFI_SIZEOF_ARG.
* src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
* src/debug.c (ffi_assert): Accept stringized failed assertion.
(ffi_type_test): Rewritten.
* src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
FFI_ASSERT_VALID_TYPE.
* src/alpha/ffitarget.h, src/arm/ffitarget.h,
src/ia64/ffitarget.h, src/m68k/ffitarget.h,
src/mips/ffitarget.h, src/powerpc/ffitarget.h,
src/s390/ffitarget.h, src/sh/ffitarget.h,
src/sh64/ffitarget.h, src/sparc/ffitarget.h,
src/x86/ffitarget.h: New files.
* src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
src/powerpc/aix.S, src/powerpc/darwin.S,
src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
include fficonfig.h
From-SVN: r72766
* configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
should be read-only.
* configure: Rebuilt.
* fficonfig.h.in: Rebuilt.
* include/ffi.h.in (EH_FRAME_FLAGS): Define.
* src/alpha/osf.S: Use EH_FRAME_FLAGS.
* src/powerpc/linux64.S: Likewise.
* src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
* src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
if -fpic/-fPIC/-mrelocatable.
* src/powerpc/powerpc_closure.S: Likewise.
* src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
#write in .eh_frame flags.
* src/sparc/v9.S: Likewise.
* src/x86/unix64.S: Use EH_FRAME_FLAGS.
* src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
* src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
From-SVN: r66887
* configure.in (powerpc64*-*-linux*): Remove.
* configure: Rebuilt.
libffi/
* include/ffi.h.in (POWERPC64): Define if 64-bit.
(enum ffi_abi): Add FFI_LINUX64 on POWERPC.
Make it the default on POWERPC64.
(FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
* configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
* configure: Rebuilt.
* src/powerpc/ffi.c (hidden): Define.
(ffi_prep_args_SYSV): Renamed from
ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
(NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
ASM_NEEDS_REGISTERS64): New.
(ffi_prep_args64): New function.
(ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
(ffi_call): Likewise.
(ffi_prep_closure): Likewise.
(flush_icache): Surround by #ifndef POWERPC64.
(ffi_dblfl): New union type.
(ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
(ffi_closure_helper_LINUX64): New function.
* src/powerpc/ppc_closure.S: Surround whole file by #ifndef
__powerpc64__.
* src/powerpc/sysv.S: Likewise.
(ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
* src/powerpc/linux64.S: New file.
* src/powerpc/linux64_closure.S: New file.
* Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
src/powerpc/linux64_closure.S.
(TARGET_SRC_POWERPC): Likewise.
* src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
closure_test_fn3): Fix result printing on big-endian 64-bit
machines.
(main): Print tst2_arg instead of uninitialized tst2_result.
* src/ffitest.c (main): Hide what closure pointer really points to
from the compiler.
From-SVN: r65781
2003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
Andreas Schwab <schwab@suse.de>
* configure.in: Adjust command to source config-ml.in to account
for changes to the libffi_basedir definition.
(libffi_basedir): Remove ${srcdir} from value and include trailing
slash if nonempty.
* configure: Regenerate.
Co-Authored-By: Andreas Schwab <schwab@suse.de>
From-SVN: r62193
* boehm-gc/configure, libf2c/configure: Rebuilt.
* libffi/configure, libiberty/configure: Ditto.
* libjava/configure, libobjc/configure: Ditto.
* libstdc++-v3/configure, zlib/configure: Ditto.
Merged from binutils:
2002-01-27 Daniel Jacobowitz <drow@mvista.com>
From Steve Ellcey <sje@cup.hp.com>:
* libtool.m4 (HPUX_IA64_MODE): Set to 32 or 64 based on ABI.
(lt_cv_deplibs_check_method, lt_cv_file_magic_cmd,
lt_cv_file_magic_test_file): Set to appropriate values for HP-UX
IA64.
* ltcf-c.sh (archive_cmds, hardcode_*): Ditto.
* ltconfig (shlibpath_*, dynamic_linker, library_names_spec,
soname_spec, sys_lib_search_path_spec): Ditto.
From-SVN: r56270