Commit Graph

894 Commits

Author SHA1 Message Date
Carl Perry
877ea9bf9a Add configure flag to disable multi-os-directory support
In some environments, installing the library to GCC's
multi-os-directory is not perferable. This patch adds a switch
to configure "--disable-multi-os-directory" which will disable
that check, typically falling back to ${libdir} unless
cross-compiling.

Original patch was written by Stewart Brodie, and was found at
https://sourceware.org/ml/libffi-discuss/2013/msg00144.html

I've just updated it to work with the current version.
2015-10-29 22:50:42 -05:00
Anthony Green
e9de7e35f2 Merge pull request #202 from tromey/note-prep-cif-var-usage
document that there must be ntotalargs types
2015-10-11 10:54:50 -04:00
Anthony Green
d19b6cc78e Merge pull request #201 from tromey/fix-texinfo-buglet
Add missing "@" to @var{}
2015-10-11 10:54:22 -04:00
Tom Tromey
0ebde2d24a document that there must be ntotalargs types 2015-10-06 11:42:43 -06:00
Tom Tromey
36f3fb9141 Add missing "@" to @var{} 2015-10-05 10:20:05 -06:00
Anthony Green
17ffc3655a Merge pull request #185 from freakboy3742/t184
Fixed #184 -- Corrected source file references in Darwin source generator tool.
2015-03-29 21:38:26 -04:00
Anthony Green
173757ce97 Merge pull request #186 from freakboy3742/gitignore
Added generated source file to .gitignore.
2015-03-29 21:38:12 -04:00
Russell Keith-Magee
dd9e4c8d46 Added generated source file to .gitignore. 2015-03-13 08:03:13 +08:00
Russell Keith-Magee
a5b3eaa279 Fixed #184 -- Corrected file references in Darwin source generator tool. 2015-03-13 07:59:11 +08:00
Anthony Green
f5ec6279a4 Merge pull request #178 from rth7680/aa64-ilp32
aarch64: Handle ILP32 ABI
2015-03-04 13:58:04 -05:00
Andrew Pinski
95df379193 aarch64: Handle ILP32 ABI 2015-02-11 08:31:48 -08:00
Anthony Green
06747d3187 Merge pull request #176 from 0-wiz-0/master
Handle NetBSD/powerpc the same as FreeBSD and OpenBSD.
2015-01-29 07:22:23 -05:00
Thomas Klausner
6c5357757f Handle NetBSD/powerpc the same as FreeBSD and OpenBSD.
Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
2015-01-29 12:32:28 +01:00
Anthony Green
db1b34b7e1 Remove incomplete sentence 2015-01-28 18:08:06 -05:00
Anthony Green
56036a6b58 Merge pull request #175 from rth7680/sparc
sparc: Re-introduce hand-written unwind info
2015-01-28 18:03:57 -05:00
Anthony Green
035715b333 Merge pull request #174 from rth7680/fbsd
configure: Run HAVE_AS_X86_PCREL for all X86 targets
2015-01-28 18:03:06 -05:00
Richard Henderson
2104b2a4fc sparc: Re-introduce hand-written unwind info
Fixes the build with the Solaris assembler.
2015-01-28 09:41:07 -08:00
Richard Henderson
b0e9796344 configure: Run HAVE_AS_X86_PCREL for all X86 targets 2015-01-27 22:10:12 -08:00
Anthony Green
31a6185307 Merge pull request #170 from fealebenpae/aarch64-trampoline-table
Support closures on ARM64 iOS
2015-01-21 05:55:47 -05:00
Anthony Green
d6675c16cc Merge pull request #172 from rth7680/fixes
x86: Fix cygwin32 build
2015-01-21 05:53:21 -05:00
Richard Henderson
3ac1610aa3 x86: Fix cygwin32 build
The section syntax is just that little bit different.
2015-01-19 20:48:40 +01:00
Anthony Green
a25a46a7fe Merge pull request #171 from rth7680/fixes
Fixes from mainline gcc
2015-01-16 17:32:07 -05:00
Richard Henderson
1ad0b17177 sparc: Also mark the return address in unwind info 2015-01-16 13:30:05 -08:00
Richard Henderson
d68c8aed19 sparc: Solaris fixes, part 2
/bin/as seems to only understand single-digit labels
/bin/as knows nothing about .rept/.endr
2015-01-16 11:40:33 -08:00
Rainer Orth
b740ab7cc9 sparc: Solaris fixes
* /bin/as requires .type fn,#function instead of @function.
* /bin/as doesn't support .macro/.endm.  I'm using preprocessor macros
  instead to implement E in src/sparc/v[89].S.
2015-01-16 11:32:23 -08:00
Rainer Orth
f1560b7bbe x86: Solaris fixes
* Solaris/x86 /bin/as doesn't support .org, so I've just disabled the
  uses in src/x86/{sysv, unix64}.S, as on Darwin.
* Solaris/x86 needs to use EH_FRAME_FLAGS so manually and compiler
  generated .eh_frame sections match, otherwise libffi.so fails to link:
* Solaris/x86 /bin/as has different COMDAT syntax; I've disabled it for
  the moment.
2015-01-16 11:32:11 -08:00
Yavor Georgiev
536366349c aarch64: implement the trampoline table workaround for ffi closures on Apple systems
This is a direct copy/paste port of the ARM code, with changes because of Aarch64 pc-relative addressing restrictions.
2015-01-16 15:31:55 +02:00
Yavor Georgiev
05e65b4e20 aarch64: rewrite range syntax into list to appease Clang
Clang's assembler in Xcode 6 appears to choke when the operand of st4 is a range, but is happy with a list.
2015-01-16 15:31:02 +02:00
Anthony Green
5cd411ad5d New test case for old aarch64 bug 2015-01-13 15:44:03 -05:00
Richard Henderson
e46842b414 Remove extra brackets in configure.host
This table is no longer in configure.ac, needing
protection from m4.
2015-01-13 07:23:48 -08:00
Richard Henderson
f27c4e4673 x86: Fix thinko in ffi_raw_call
Missed structure initialization for raw path.
Apparently there are no tests for this outside gcc.
2015-01-13 07:22:07 -08:00
Anthony Green
c82cc15942 Merge pull request #166 from chevah/master
Fix expr error in Solaris 10 when using gcc.
2015-01-10 09:25:26 -05:00
Anthony Green
1c61e73ad8 Merge pull request #165 from rth7680/pcc
Support PCC as producer and consumer
2015-01-10 09:23:30 -05:00
Anthony Green
dd0b59a5cf Merge pull request #164 from rth7680/darwin
Fix build on darwin
2015-01-10 09:22:55 -05:00
Anthony Green
9131039c93 Merge pull request #160 from nobu/msvc-no-complex
x86: MSVC does not support Complex type
2015-01-10 09:22:42 -05:00
Anthony Green
4ca2262ad6 Merge pull request #159 from nobu/fix-void-arith
x86: Fix void pointer arithmetic
2015-01-10 09:21:37 -05:00
Mișu Moldovan
e1a5ddb306 Fix expr error in Solaris 10 when using gcc. 2015-01-07 17:51:07 +02:00
Richard Henderson
3fa5d70cbb x86: Avoid fastcall when building with pcc
Apparently, PCC doesn't support the fastcall calling convention.
Nor does it issue a warning or error for the attribute that it
does not understand.
2015-01-05 13:03:06 -08:00
Richard Henderson
a03d2310ed x86: Load structure return address into eax 2015-01-05 12:24:51 -08:00
Richard Henderson
b7f6d7aa9b x86: Reinstate hand-written unwind info for sysv.S 2015-01-05 10:01:38 -08:00
Richard Henderson
6cedf81ca7 x86: Expand FFI_GO_CLOSURE
If we're going to have to hand-write unwind info for darwin,
these macros make the job harder.
2015-01-05 10:01:38 -08:00
Iain Sandoe
ae842a515b x86: More Darwin unwind fixups
EHFrame{N} IIRC is a special cue to ld64 that it should treat the unwind
in the object as "special/legacy" .. [these days everything is .cfi_xxxx
(except, cctools-as, as you noted)] .. without that much confusion arises
with ld64's atom-isation of the eh_frame section.

xxxx.eh labels are not needed for darwin ld64 >= 85.2.1 (i.e. darwin9,
xcode 3.1.4) to all intents and purposes, that's all that matters now,
since I think that anyone trying to build on 10.4/darwin8/xcode2.5 would
have to use a later ld64 (from odcctools) for other reasons.
2015-01-05 10:01:38 -08:00
Richard Henderson
8fa3c9f24b x86: Reinstate hand-written unwind info for unix64.S
One more try to get default Darwin to work.
2015-01-05 10:01:37 -08:00
Richard Henderson
5f35e0ffcc x86: Avoid using gas local labels
Which are unsupported by Darwin cctools as.
Thankfully this doesn't uglify the source too much.
2015-01-05 10:01:37 -08:00
Richard Henderson
ed1ca2777c x86: Remove use of .cfi_escape
The unwind info isn't 100% correct at all points during the epilogue,
and not annotating is just as incorrect as the annotation.  This works
better on systems that do not support DW_OP_call_frame_cfa.
2015-01-05 10:01:37 -08:00
Richard Henderson
1b12593d7e x86: Honor alignment of arguments
Darwin aligns long-double to 16, and thus all of the long double
tests were failing due to not honoring that.  We ought to be able
to devise a test case for GCC using __attribute__((aligned)) that
would have failed too.
2015-01-05 10:01:37 -08:00
Richard Henderson
042b8dafee x86: Use .balign not .align
The Apple assembler defaults to power of two alignment, rather than
byte alignment like everyone else.  Force byte alignment by using
the proper directive.
2015-01-05 10:01:37 -08:00
Richard Henderson
0172bc029c x86: Disable .org for Darwin 2015-01-05 10:01:37 -08:00
Richard Henderson
9f112619c1 x86: Best guess at update for Darwin 2015-01-05 10:01:37 -08:00
Nobuyoshi Nakada
7282d3289c x86: MSVC does not support Complex type 2014-12-22 17:14:40 +09:00