Commit Graph

8 Commits

Author SHA1 Message Date
Jakub Jelinek
32cb2ce81d 2014-09-10 Jakub Jelinek <jakub@redhat.com>
* src/powerpc/linux64.S: Emit .note.GNU-stack even when
	POWERPC64 is not defined.
	* src/powerpc/linux64_closure.S: Likewise.  Also test _CALL_ELF == 2.
2014-09-20 06:39:55 -04:00
Marcus Comstedt
fa5f25c20f Linux/ppc64: Remove assumption on contents of r11 in closure 2014-01-04 19:00:08 +01:00
Alan Modra
ab79d6e219 This separates the 32-bit sysv/linux/bsd code from the 64-bit linux
code, and makes it possible to link code compiled with different
options to those used to compile libffi.  For example, a
-mlong-double-128 libffi can be used with -mlong-double-64 code.

Using the return value area as a place to pass parameters wasn't such
a good idea, causing a failure of cls_ulonglong.c.  I didn't see this
when running the mainline gcc libffi testsuite because that version of
the test is inferior to the upstreamm libffi test.

Using NUM_FPR_ARG_REGISTERS rather than NUM_FPR_ARG_REGISTERS64 meant
that a parameter save area could be allocated before it was strictly
necessary.  Wrong but harmless.  Found when splitting apart ffi.c
into 32-bit and 64-bit support.
2013-11-21 21:24:56 -05:00
Alan Modra
83f65b63d9 Finally, this adds _CALL_ELF == 2 support. ELFv1 objects can't be
linked with ELFv2 objects, so this is one case where preprocessor
tests in ffi.c are fine.  Also, there is no need to define a new
FFI_ELFv2 or somesuch value in enum ffi_abi.  FFI_LINUX64 will happily
serve both ABIs.
2013-11-16 06:56:30 -05:00
Alan Modra
a97cf1fae5 This patch prepares for ELFv2, where sizes of these areas change. It
also makes some minor changes to improve code efficiency.
2013-11-16 06:40:13 -05:00
Anthony Green
d3d099b40c little-endian ppc64 support 2013-07-02 16:11:38 -04:00
Anthony Green
dfadfb1985 Rebase for ppc64 fix 2012-10-31 06:46:41 -04:00
Anthony Green
c6dddbd02b Initial commit 2009-10-04 08:11:33 -04:00