Commit Graph

227 Commits

Author SHA1 Message Date
Richard Earnshaw
f20459f1b2 ffi.c (ffi_prep_cif_machdep): Handle functions that return long long values.
* src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
long long values.  Round stack allocation to a multiple of 8 bytes
for ATPCS compatibility.
* src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
names.  Handle returning long long types.  Add Thumb and interworking
support.  Improve soft-float code.

From-SVN: r89681
2004-10-27 15:10:22 +00:00
Richard Earnshaw
fdc6959794 libffi-db.exp (load_gcc_lib): New function.
* testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
(libffi_exit): New function.
(libffi_init): Build the testglue wrapper if needed.

From-SVN: r89636
2004-10-27 10:56:06 +00:00
Eric Botcazou
1e02510f05 re PR other/18138 (libgcc_s.so.1 not found by 64-bit testsuite)
gcc/testsuite:
	PR other/18138
	* lib/g++.exp: Accept more than one multilib libgcc.
	* lib/gcc-dg.exp: Likewise.
	* lib/objc.exp: Likewise.
	* lib/treelang.exp: Likewise.
	* lib/gfortran.exp: Likewise.

libffi:
	PR other/18138
	* testsuite/lib/libffi-dg.exp: Accept more than one multilib
	libgcc.

libjava:
	PR other/18138
	* testsuite/lib/libjava.exp: Accept more than one multilib
	libgcc.

libmudflap!:
	PR other/18138
	* testsuite/lib/libmudflap.exp: Accept more than one multilib
	libgcc.

libstdc++-v3:
	PR other/18138
	* testsuite/lib/libstdc++.exp: Accept more than one multilib
	libgcc.

From-SVN: r89528
2004-10-25 09:01:15 +00:00
Kazuhiro Inaoka
d9a193b251 (FFII_CLOSURES): Set to 0.
From-SVN: r89527
2004-10-25 08:55:44 +00:00
Kaz Kojima
1fddb058e1 sysv.S (ffi_call_SYSV): Don't align for double data.
* src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
	* testsuite/libffi.call/float3.c: New test case.

From-SVN: r89366
2004-10-21 06:00:41 +00:00
Kaz Kojima
e0d3b4528f ffi.c (ffi_prep_closure): Set T bit in trampoline for the function returning a structure pointed with R2.
* src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
	the function returning a structure pointed with R2.
	* src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
	the structure return value if T bit set.  Emit position
	independent code and EH data if PIC.

From-SVN: r89254
2004-10-18 23:12:20 +00:00
Kazuhiro Inaoka
a472e9d4e6 Makefile.am: Add m32r support.
* Makefile.am: Add m32r support.
* configure.ac: Likewise.
* Makefile.in: Regenerate.
* confiugre: Regenerate.
* src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
 (uint64, sint64, double, longdouble)
* src/m32r: New directory.
* src/m32r/ffi.c: New file.
* src/m32r/sysv.S: Likewise.
* src/m32r/ffitarget.h: Likewise.

From-SVN: r88993
2004-10-13 17:20:24 +00:00
Kaz Kojima
3d47e9caa9 * testsuite/libffi.call/negint.c: New test case.
From-SVN: r88421
2004-10-02 07:02:41 +00:00
H.J. Lu
fc9051dd43 re PR libffi/17465 (Testsuite in libffi overrides LD_LIBRARY_PATH)
2004-09-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR libgcj/17465
	* testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
	Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
	LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
	DYLD_LIBRARY_PATH.

From-SVN: r87511
2004-09-14 14:16:29 -07:00
Andreas Tobler
2010caea15 many_win32.c: Remove whitespaces.
2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libffi.call/many_win32.c: Remove whitespaces.
	* testsuite/libffi.call/promotion.c: Likewise.
	* testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
	whitespaces.
	* testsuite/libffi.call/return_sc.c: Likewise.
	* testsuite/libffi.call/return_uc.c: Likewise.

From-SVN: r87091
2004-09-05 00:41:53 +02:00
Andreas Tobler
894be816d4 darwin.S: Fix comments and identation.
2004-09-05  Andreas Tobler  <a.tobler@schweiz.ch>

	* src/powerpc/darwin.S: Fix comments and identation.
	* src/powerpc/darwin_closure.S: Likewise.

From-SVN: r87090
2004-09-05 00:09:20 +02:00
Andreas Tobler
2fe7404ad4 ffi_darwin.c: Add flag for longdouble return values.
2004-09-02  Andreas Tobler  <a.tobler@schweiz.ch>

	* src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
	(ffi_prep_args): Handle longdouble arguments.
	(ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
	longdouble.
	(ffi_closure_helper_DARWIN): Add closure handling for longdouble.
	* src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
	values.
	* src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
	* src/types.c: Defined longdouble size and alignment for darwin.

From-SVN: r86992
2004-09-02 23:14:45 +02:00
Andreas Tobler
16070e459c 004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
* src/powerpc/aix.S: Remove whitespaces.
	* src/powerpc/aix_closure.S: Likewise.
	* src/powerpc/asm.h: Likewise.
	* src/powerpc/ffi.c: Likewise.
	* src/powerpc/ffitarget.h: Likewise.
	* src/powerpc/linux64.S: Likewise.
	* src/powerpc/linux64_closure.S: Likewise.
	* src/powerpc/ppc_closure.S: Likewise.
	* src/powerpc/sysv.S: Likewise.

From-SVN: r86991
2004-09-02 23:07:21 +02:00
Anthony Green
a23adb4d00 Fix brown-bag typo in ChangeLog entry.
From-SVN: r86786
2004-08-30 17:04:14 +00:00
Anthony Green
88d8c771f9 Makefile.am: Add frv support.
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
2004-08-30 15:43:03 +00:00
David Daney
4c5f37d568 closure_fn0.c: Xfail mips64* instead of mips*.
2004-08-24  David Daney  <daney@avtrex.com>

	* testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
	* testsuite/libffi.call/closure_fn1.c: Likewise.
	* testsuite/libffi.call/closure_fn2.c  Likewise.
	* testsuite/libffi.call/closure_fn3.c: Likewise.
	* testsuite/libffi.call/closure_fn4.c: Likewise.
	* testsuite/libffi.call/closure_fn5.c: Likewise.
	* testsuite/libffi.call/cls_18byte.c: Likewise.
	* testsuite/libffi.call/cls_19byte.c: Likewise.
	* testsuite/libffi.call/cls_1_1byte.c: Likewise.
	* testsuite/libffi.call/cls_20byte.c: Likewise.
	* testsuite/libffi.call/cls_20byte1.c: Likewise.
	* testsuite/libffi.call/cls_24byte.c: Likewise.
	* testsuite/libffi.call/cls_2byte.c: Likewise.
	* testsuite/libffi.call/cls_3_1byte.c: Likewise.
	* testsuite/libffi.call/cls_3byte1.c: Likewise.
	* testsuite/libffi.call/cls_3byte2.c: Likewise.
	* testsuite/libffi.call/cls_4_1byte.c: Likewise.
	* testsuite/libffi.call/cls_4byte.c: Likewise.
	* testsuite/libffi.call/cls_64byte.c: Likewise.
	* testsuite/libffi.call/cls_6byte.c: Likewise.
	* testsuite/libffi.call/cls_7byte.c: Likewise.
	* testsuite/libffi.call/cls_8byte.c: Likewise.
	* testsuite/libffi.call/cls_9byte1.c: Likewise.
	* testsuite/libffi.call/cls_9byte2.c: Likewise.
	* testsuite/libffi.call/cls_align_double.c: Likewise.
	* testsuite/libffi.call/cls_align_float.c: Likewise.
	* testsuite/libffi.call/cls_align_longdouble.c: Likewise.
	* testsuite/libffi.call/cls_align_pointer.c: Likewise.
	* testsuite/libffi.call/cls_align_sint16.c: Likewise.
	* testsuite/libffi.call/cls_align_sint32.c: Likewise.
	* testsuite/libffi.call/cls_align_sint64.c: Likewise.
	* testsuite/libffi.call/cls_align_uint16.c: Likewise.
	* testsuite/libffi.call/cls_align_uint32.c: Likewise.
	* testsuite/libffi.call/cls_align_uint64.c: Likewise.
	* testsuite/libffi.call/cls_double.c: Likewise.
	* testsuite/libffi.call/cls_float.c: Likewise.
	* testsuite/libffi.call/cls_multi_schar.c: Likewise.
	* testsuite/libffi.call/cls_multi_sshort.c: Likewise.
	* testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
	* testsuite/libffi.call/cls_multi_uchar.c: Likewise.
	* testsuite/libffi.call/cls_multi_ushort.c: Likewise.
	* testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
	* testsuite/libffi.call/cls_schar.c: Likewise.
	* testsuite/libffi.call/cls_sint.c: Likewise.
	* testsuite/libffi.call/cls_sshort.c: Likewise.
	* testsuite/libffi.call/cls_uchar.c: Likewise.
	* testsuite/libffi.call/cls_uint.c: Likewise.
	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
	* testsuite/libffi.call/cls_ushort.c: Likewise.
	* testsuite/libffi.call/nested_struct.c: Likewise.
	* testsuite/libffi.call/nested_struct1.c: Likewise.
	* testsuite/libffi.call/nested_struct2.c: Likewise.
	* testsuite/libffi.call/nested_struct3.c: Likewise.
	* testsuite/libffi.call/problem1.c: Likewise.
	* testsuite/libffi.special/unwindtest.cc: Likewise.
	* testsuite/libffi.call/cls_12byte.c: Likewise and set return value
	to zero.
	* testsuite/libffi.call/cls_16byte.c: Likewise.
	* testsuite/libffi.call/cls_5byte.c: Likewise.

From-SVN: r86534
2004-08-25 05:06:55 +00:00
David Daney
39dca114a9 re PR libffi/13141 (FAIL: InvokeReturn output - source compiled test <libffi problem>)
2004-08-23  David Daney <daney@avtrex.com>

	PR libgcj/13141
	* src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
	* src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
	(ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
	parameters and return types.
	(ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
	(ffi_prep_closure): Ditto.
	(ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
	alignment calculations.
	* src/mips/o32.S (ffi_closure_O32): Don't use floating point
	instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.

From-SVN: r86429
2004-08-23 16:49:17 +00:00
Casey Marshall
b790003ae6 ffi.c (ffi_pref_cif_machdep): set cif->flags' to contain FFI_TYPE_UINT64' as return type for any 64-bit...
2004-08-14  Casey Marshall <csm@gnu.org>

	* src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
	contain `FFI_TYPE_UINT64' as return type for any 64-bit
	integer (O32 ABI only).
	(ffi_prep_closure): new function.
	(ffi_closure_mips_inner_O32): new function.
	* src/mips/ffitarget.h: Define `FFI_CLOSURES' and
	`FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
	* src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
	64 bit integers correctly.
	(ffi_closure_O32): new function.
	Added DWARF-2 unwind info for both functions.

From-SVN: r86019
2004-08-15 04:05:18 +00:00
Andrew Haley
547d71a18f ffi64.c (ffi_prep_args ): 8-align all stack arguments.
2004-08-10  Andrew Haley  <aph@redhat.com>

	* src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.

From-SVN: r85753
2004-08-10 14:24:00 +00:00
Robert Millan
98a5bb3b0e configure.in: Turn mt-linux into mt-gnu.
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-08-03 20:48:48 +00:00
Maciej W. Rozycki
4d44736452 acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h> and mmap() explicitly instead of relying on preset...
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
2004-08-03 20:36:23 +00:00
Ulrich Weigand
e5dce82f98 ffi.c (ffi_prep_args): Fix C aliasing violation.
* src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
	(ffi_check_float_struct): Remove unused prototype.

From-SVN: r84505
2004-07-11 11:45:39 +00:00
Geoffrey Keating
e6a0022b28 ffi_darwin.c (flush_icache): ';' is a comment character on Darwin, use '\n\t' instead.
* src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
	character on Darwin, use '\n\t' instead.

From-SVN: r83899
2004-06-30 09:55:13 +00:00
Matthias Klose
5a2d52cada libtool-version: Fix typo in revision/age.
2004-06-26  Matthias Klose  <doko@debian.org>

        * libtool-version: Fix typo in revision/age.

From-SVN: r83717
2004-06-26 20:37:03 +00:00
R. Kelley Cook
9463204774 Fix incorrect year for some ChangeLog entries.
From-SVN: r83335
2004-06-18 02:24:43 +00:00
Matthias Klose
401844effd libtool-version: New.
2004-06-17  Matthias Klose  <doko@debian.org>

        * libtool-version: New.
        * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
        * Makefile.in: Regenerate.

From-SVN: r83315
2004-06-17 21:32:58 +00:00
Paolo Bonzini
076e544330 configure.ac: New name of configure.in.
libmudflap/ChangeLog:
2005-06-15  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: New name of configure.in.  Update
	AC_INIT, AC_CONFIG_SRCDIR, AC_CONFIG_HEADERS, AC_CONFIG_FILES,
	AC_OUTPUT, AM_INIT_AUTOMAKE to the preferred style for
	Autoconf 2.5x and Automake 1.7 or later.
	* configure.in: Remove.
	* configure: Regenerate.

	* Makefile.am: Remove useless multilib rules.
	* Makefile.in: Regenerate.

libstdc++-v3/ChangeLog:
2005-06-15  Paolo Bonzini  <bonzini@gnu.org>

	* acinclude.m4: Remove useless multilib configury.
	* Makefile.am: Remove useless multilib rules.
	* aclocal.m4: Regenerate.
	* Makefile.in: Regenerate.
	* configure.ac: Use AM_ENABLE_MULTILIB.
	* configure: Regenerate.

zlib/ChangeLog.gcj:
2005-06-15  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.am: Remove useless multilib rules.
	* configure.ac: Rewrite multilib support to use
	features of recent automakes.
	* aclocal.m4: Regenerate with Automake 1.8.5.
	* Makefile.in: Regenerate with Automake 1.8.5.
	* configure: Regenerate.

libffi/ChangeLog:
2005-06-15  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.am: Remove useless multilib rules.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate with automake 1.8.5.
	* configure.ac: Remove useless multilib configury.
	* configure: Regenerate.

From-SVN: r83184
2004-06-15 14:47:55 +00:00
Paolo Bonzini
9ac926b197 Added .cvsignore entry for autom4te.cache to boehm-gc, libffi and
libmudflap.

From-SVN: r83169
2004-06-15 07:42:08 +00:00
Jakub Jelinek
37c849e40e unix.S (ffi_call_unix): Insert group barrier break fp_done.
* src/ia64/unix.S (ffi_call_unix): Insert group barrier break
	fp_done.
	(ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
	changed from 8.

From-SVN: r82904
2004-06-10 10:18:25 +02:00
Sean McNeil
cb6231728e configure.ac: Add x86_64-*-freebsd* support.
2004-06-06  Sean McNeil  <sean@mcneil.com>

	* configure.ac: Add x86_64-*-freebsd* support.
	* configure: Regenerate.

From-SVN: r82703
2004-06-07 18:39:30 +00:00
Kaz Kojima
c779c42fc3 re PR bootstrap/15120 ([3.3 only] [libtool bug] hidden symbol `__sdivsi3_i4' is referenced by DSO)
PR bootstrap/15120
	* libtool.m4 (lt_cv_deplibs_check_method): Use pass_all on sh*.
	* */configure: Rebuilt.

From-SVN: r81980
2004-05-18 10:11:38 +00:00
Joe Buck
c9b93377e3 Bug 15093
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-04-26 22:41:45 -07:00
Matt Austern
cf90fd1b5b Patch 14922
Patch 14922
	* src/powerpc/darwin.S: Go through a non-lazy pointer for initial
	FDE location.
	* src/powerpc/darwin_closure.S: Likewise.

From-SVN: r81209
2004-04-27 01:45:19 +00:00
Andreas Tobler
67781b4446 cls_multi_schar.c (main): Fix initialization error.
2004-04-24  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
	error. Reported by Thomas Heller <theller@python.net>.
	* testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
	* testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.

From-SVN: r81131
2004-04-24 09:48:37 +02:00
Matthias Klose
14b078a8f3 linux.S: Fix typo.
2004-03-20  Matthias Klose  <doko@debian.org>

        * src/pa/linux.S: Fix typo.

From-SVN: r79739
2004-03-20 11:58:01 +00:00
Matthias Klose
d65a810fe4 [multiple changes]
2004-03-19  Matthias Klose  <doko@debian.org>

        * Makefile.am: Update
        * Makefile.in: Regenerate.
        * src/pa/ffi.h.in: Remove.
        * src/pa/ffitarget.h: New file.

2004-02-10  Randolph Chung  <tausq@debian.org>

        * Makefile.am: Add PA support.
        * Makefile.in: Regenerate.
        * include/Makefile.in: Regenerate.
        * configure.ac: Add PA target.
        * configure: Regenerate.
        * src/pa/ffi.c: New file.
        * src/pa/ffi.h.in: Add PA support.
        * src/pa/linux.S: New file.
        * prep_cif.c: Add PA support.

From-SVN: r79702
2004-03-19 22:34:17 +00:00
Hosaka Yuji
09cababc5f types.c: Fix alignment size of X86_WIN32 case int64 and double.
2004-03-16  Hosaka Yuji  <hos@tamanegi.org>

	* src/types.c: Fix alignment size of X86_WIN32 case int64 and
	double.
	* src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
	with ecif->cif->flags.
	(ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
	with cif->flags.
	(ffi_prep_cif_machdep): Add X86_WIN32 struct case.
	(ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
	* src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
	sc_retstruct2b): Add for 1 or 2-bytes struct case.

From-SVN: r79542
2004-03-16 20:17:33 +01:00
Kelley Cook
0e8d0c5f6c configure.in: Rename file to ...
2004-03-15 Kelley Cook <kcook@gcc.gnu.org>

	* configure.in: Rename file to ...
	* configure.ac: ... this.
	* fficonfig.h.in: Regenerate.
	* Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

From-SVN: r79513
2004-03-15 23:15:05 +00:00
Matt Austern
b8d5073947 Enabled linkonce support for Darwin.
* src/powerpc/darwin.S: Fix EH information so it corresponds to
	changes in EH format resulting from addition of linkonce support.
	* src/powerpc/darwin_closure.S: Likewise.

From-SVN: r79396
2004-03-12 17:19:34 +00:00
Matt Austern
4746cf8447 Enabled linkonce support for Darwin.
* target.h (struct gcc_target): New target hook, unwind_label.
	* target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
	* output.h (default_emit_unwind_label): New function.
	* default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
	(TARGET_USES_WEAK_UNWIND_INFO): New target macro.
	(TARGET_SUPPORTS_HIDDEN): New target macro.
	* dwarf2out.c (struct dw_fde_struct): Add field for function decl
	that corresponds to this FDE.
	(FRAME_BEGIN_LABEL): Allow target to override default label.
	(output_call_frame_info): If FDEs are linknonce, then use extra
	indirection for FDE encoding, output a label for each FDE, and
	output an empty label for each function without an FDE.
	(dwarf2out_begin_prologue): Set up decl field when creating an FDE.
	* varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
	decls with DECL_ONE_ONLY set, if that macro is defined.
	(make_decl_one_only): Don't use DECL_COMMON if we're compiling
	for a SUPPORTS_ONE_ONLY target.
	* config/darwin-protos.h (darwin_unique_section): Declare.
	(darwin_asm_named_section): Likewise.
	(darwin_section_type_flags): Likewise.
	(darwin_non_lazy_pcrel): Likewise.
	(darwin_emit_unwind_label): Likewise.
	(darwin_make_decl_one_only): Likewise.
	* config/darwin.c (machopic_finish): Get rid of tweak that
	eliminate stubs for symbols that are defined.
	(darwin_encode_section_info): Don't treat weak functions as defined.
	(darwin_make_decl_one_only): Define.
	(darwin_asm_named_section): Likewise.
	(darwin_section_type_flags): Likewise.
	(darwin_unique_section): Likewise.
	(darwin_emit_unwind_label): Likewise.
	(darwin_non_lazy_pcrel): Likewise.
	(darwin_asm_output_dwarf_delta): Difference between two labels is
	local only if both labels are local.
	* config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
	(ASM_MAKE_LABEL_LINKONCE): Likewise.
	(TARGET_SUPPORTS_HIDDEN): Likewise.
	(TARGET_USES_WEAK_UNWIND_INFO): Likewise.
	(TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
	(FRAME_BEGIN_LABEL): Likewise.
	(ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
	(ASM_DECLARE_FUNCTION_NAME): Likewise.
	(darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
	(TARGET_ASM_UNIQUE_SECTION): Define.
	(EH_FRAME_SECTION_NAME): Define.
	(EH_FRAME_SECTION_ATTR): Likewise.
	(ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
	(TARGET_ASM_NAMED_SECTION): Likewise.
	(TARGET_SECTION_TYPE_FLAGS): Likewise.
	* doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
	TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
	TARGET_ASM_EMIT_UNWIND_LABEL.

	* cp/decl2.c (maybe_make_one_only): Look at
	TARGET_EXPLICIT_INSTANTIATION_ONE_ONLY when deciding whether
	to make an explicit instantiation weak.
	* cp/method.c (use_thunk): Make sure we call comdat_linkage
	when appropriate.
	* cp/pt.c (do_type_instantiation): On systems where weak symbols
	don't go in a static archive's TOC, explicit instantiation of a
	class must imply *explicit* instantiation of its memeber.

From-SVN: r79394
2004-03-12 17:09:03 +00:00
Andreas Tobler
3ed8e5b64d Makefile.am (AUTOMAKE_OPTIONS): Set them.
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
2004-03-11 20:59:49 +01:00
Andreas Schwab
254ea4774b ffi.c (ffi_prep_incoming_args_UNIX): Get floating point arguments from fp registers only for the first 8 parameter slots.
* src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
	arguments from fp registers only for the first 8 parameter slots.
	Don't convert a float parameter when passed in memory.

From-SVN: r79323
2004-03-11 14:25:44 +00:00
Hans-Peter Nilsson
3beb131556 * configure: Regenerate for config/accross.m4 correction.
From-SVN: r79147
2004-03-09 01:22:49 +00:00
Matt Kraai
fecf735c67 ffi.c (ffi_prep_args_SYSV): Change ecif->cif->bytes to bytes.
* src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
	ecif->cif->bytes to bytes.
	(ffi_prep_cif_machdep): Add braces around nested if statement.

From-SVN: r78477
2004-02-26 02:09:35 +00:00
Alan Modra
12001e0ff9 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
From-SVN: r77533
2004-02-09 23:40:37 +10:30
Alan Modra
4243752ca1 ffi.c (ffi_prep_args64): Correct long double handling.
* src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
	(ffi_closure_helper_LINUX64): Fix typo.
	* testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
	for powerpc64-*-*.
	* testsuite/libffi.call/float.c: Likewise.
	* testsuite/libffi.call/float2.c: Likewise.

From-SVN: r77522
2004-02-09 14:09:48 +10:30
Alan Modra
bf310028ad ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct long double function return and long double arg handling.
* src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
	long double function return and long double arg handling.
	(ffi_closure_helper_LINUX64): Formatting.  Delete unused "ng" var.
	Use "end_pfr" instead of "nf".  Correct long double handling.
	Localise "temp".
	* src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
	return value.
	* src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
	space for long double return value.  Adjust stack frame and offsets.
	Load f2 long double return.

From-SVN: r77481
2004-02-08 22:41:25 +10:30
Alan Modra
dd5f9ea23b * src/types.c: Use 16 byte long double for POWERPC64.
From-SVN: r77441
2004-02-07 13:41:59 +10:30
Eric Botcazou
0ce78f010d ffi.c (ffi_prep_args_v9): Shift the parameter array when the structure return address is passed in %o0.
* src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
	when the structure return address is passed in %o0.
	(ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
	(ffi_v9_layout_struct): Align the field following a nested structure
	on a word boundary.  Use memmove instead of memcpy.
	(ffi_call): Update call to ffi_V9_return_struct.
	(ffi_prep_closure): Define 'ctx' only for V8.
	(ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
	and ffi_closure_sparc_inner_v9.
	(ffi_closure_sparc_inner_v8): Return long doubles by reference.
	Always skip the structure return address.  For structures and long
	doubles, copy the argument directly.
	(ffi_closure_sparc_inner_v9): Skip the structure return address only
	if required.  Shift the maximum floating-point slot accordingly.  For
	big structures, copy the argument directly; otherwise, left-justify the
	argument and call ffi_v9_layout_struct to lay out the structure on
	the stack.
	* src/sparc/v8.S: Undef STACKFRAME before defining it.
	(ffi_closure_v8): Pass the structure return address.  Update call to
	ffi_closure_sparc_inner_v8.  Short-circuit FFI_TYPE_INT handling.
	Skip the 'unimp' insn when returning long doubles and structures.
	* src/sparc/v9.S: Undef STACKFRAME before defining it.
	(ffi_closure_v9): Increase the frame size by 2 words.  Short-circuit
	FFI_TYPE_INT handling.  Load structures both in integers and
	floating-point registers on return.
	* README: Update status of the SPARC port.

From-SVN: r76543
2004-01-25 06:58:33 +00:00
Andreas Tobler
7fcc1d9baf pyobjc-tc.c (main): Treat result value as of type ffi_arg.
2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
	as of type ffi_arg.
	* testsuite/libffi.call/struct3.c (main): Fix CHECK.

From-SVN: r76513
2004-01-24 17:13:48 +01:00