re PR go/48407 (libgo/configure --without-libffi doesn't work)

PR go/48407
runtime: Permit building libgo without libffi.

From-SVN: r184234
This commit is contained in:
Ian Lance Taylor 2012-02-14 20:47:35 +00:00
parent d25b1e3a80
commit 35ea42ebad
1 changed files with 22 additions and 1 deletions

View File

@ -8,13 +8,17 @@
#include <stdint.h>
#include <stdlib.h>
#include "ffi.h"
#include "config.h"
#include "go-alloc.h"
#include "go-assert.h"
#include "go-type.h"
#include "runtime.h"
#ifdef USE_LIBFFI
#include "ffi.h"
/* The functions in this file are only called from reflect_call. As
reflect_call calls a libffi function, which will be compiled
without -fsplit-stack, it will always run with a large stack. */
@ -500,3 +504,20 @@ reflect_call (const struct __go_func_type *func_type, const void *func_addr,
free (call_result);
}
#else /* !defined(USE_LIBFFI) */
void
reflect_call (const struct __go_func_type *func_type __attribute__ ((unused)),
const void *func_addr __attribute__ ((unused)),
_Bool is_interface __attribute__ ((unused)),
_Bool is_method __attribute__ ((unused)),
void **params __attribute__ ((unused)),
void **results __attribute__ ((unused)))
{
/* Without FFI there is nothing we can do. */
runtime_throw("libgo built without FFI does not support "
"reflect.Call or runtime.SetFinalizer");
}
#endif /* !defined(USE_LIBFFI) */