Commit 35ea42eb by Ian Lance Taylor

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

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

From-SVN: r184234
parent d25b1e3a
...@@ -8,13 +8,17 @@ ...@@ -8,13 +8,17 @@
#include <stdint.h> #include <stdint.h>
#include <stdlib.h> #include <stdlib.h>
#include "ffi.h" #include "config.h"
#include "go-alloc.h" #include "go-alloc.h"
#include "go-assert.h" #include "go-assert.h"
#include "go-type.h" #include "go-type.h"
#include "runtime.h" #include "runtime.h"
#ifdef USE_LIBFFI
#include "ffi.h"
/* The functions in this file are only called from reflect_call. As /* The functions in this file are only called from reflect_call. As
reflect_call calls a libffi function, which will be compiled reflect_call calls a libffi function, which will be compiled
without -fsplit-stack, it will always run with a large stack. */ 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, ...@@ -500,3 +504,20 @@ reflect_call (const struct __go_func_type *func_type, const void *func_addr,
free (call_result); 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) */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment