* Makefile.in, configure: Rebuild.
* man/Makefile.in, testsuite/Makefile.in: Rebuild.
+ * Makefile.am (libffi_version_script): Look in cwd for libffi.map.
+ (libffi_version_dep, libffi.map-sun): Likewise.
+ (libffi.map): New target.
+ * libffi.map.in: Rename from libffi.map. Add required defines,
+ includes, and conditionals.
+
2015-10-26 John David Anglin <danglin@gcc.gnu.org>
PR libffi/65441
if LIBAT_BUILD_VERSIONED_SHLIB
if LIBAT_BUILD_VERSIONED_SHLIB_GNU
-libffi_version_script = -Wl,--version-script,$(top_srcdir)/libffi.map
-libffi_version_dep = $(top_srcdir)/libffi.map
+libffi_version_script = -Wl,--version-script,libffi.map
+libffi_version_dep = libffi.map
endif
if LIBAT_BUILD_VERSIONED_SHLIB_SUN
libffi_version_script = -Wl,-M,libffi.map-sun
libffi_version_dep = libffi.map-sun
-libffi.map-sun : $(top_srcdir)/libffi.map \
- $(top_srcdir)/../contrib/make_sunver.pl \
+libffi.map-sun : libffi.map $(top_srcdir)/../contrib/make_sunver.pl \
$(libffi_la_OBJECTS) $(libffi_la_LIBADD)
- perl $(top_srcdir)/../contrib/make_sunver.pl \
- $(top_srcdir)/libffi.map \
+ perl $(top_srcdir)/../contrib/make_sunver.pl libffi.map \
$(libffi_la_OBJECTS:%.lo=.libs/%.o) \
`echo $(libffi_la_LIBADD) | \
sed 's,\([^/ ]*\)\.l\([ao]\),.libs/\1.\2,g'` \
endif
libffi_version_info = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
+libffi.map: $(top_srcdir)/libffi.map.in
+ $(COMPILE) -D$(TARGET) -E -x assembler-with-cpp -o $@ $<
+
libffi_la_LDFLAGS = -no-undefined $(libffi_version_info) $(libffi_version_script) $(LTLDFLAGS) $(AM_LTLDFLAGS)
libffi_la_DEPENDENCIES = $(libffi_la_LIBADD) $(libffi_version_dep)
LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
AM_CFLAGS = -Wall -g -fexceptions $(am__append_2)
@LIBAT_BUILD_VERSIONED_SHLIB_FALSE@libffi_version_script =
-@LIBAT_BUILD_VERSIONED_SHLIB_GNU_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@libffi_version_script = -Wl,--version-script,$(top_srcdir)/libffi.map
+@LIBAT_BUILD_VERSIONED_SHLIB_GNU_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@libffi_version_script = -Wl,--version-script,libffi.map
@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@libffi_version_script = -Wl,-M,libffi.map-sun
@LIBAT_BUILD_VERSIONED_SHLIB_FALSE@libffi_version_dep =
-@LIBAT_BUILD_VERSIONED_SHLIB_GNU_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@libffi_version_dep = $(top_srcdir)/libffi.map
+@LIBAT_BUILD_VERSIONED_SHLIB_GNU_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@libffi_version_dep = libffi.map
@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@libffi_version_dep = libffi.map-sun
libffi_version_info = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
libffi_la_LDFLAGS = -no-undefined $(libffi_version_info) $(libffi_version_script) $(LTLDFLAGS) $(AM_LTLDFLAGS)
stamp-build-info: doc/libffi.texi $(srcdir)/doc/version.texi doc/$(am__dirstamp)
$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)/doc -o doc/libffi.info $(srcdir)/doc/libffi.texi
@touch $@
-@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@libffi.map-sun : $(top_srcdir)/libffi.map \
-@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ $(top_srcdir)/../contrib/make_sunver.pl \
+@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@libffi.map-sun : libffi.map $(top_srcdir)/../contrib/make_sunver.pl \
@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ $(libffi_la_OBJECTS) $(libffi_la_LIBADD)
-@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ perl $(top_srcdir)/../contrib/make_sunver.pl \
-@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ $(top_srcdir)/libffi.map \
+@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ perl $(top_srcdir)/../contrib/make_sunver.pl libffi.map \
@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ $(libffi_la_OBJECTS:%.lo=.libs/%.o) \
@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ `echo $(libffi_la_LIBADD) | \
@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ sed 's,\([^/ ]*\)\.l\([ao]\),.libs/\1.\2,g'` \
@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ > $@ || (rm -f $@ ; exit 1)
+libffi.map: $(top_srcdir)/libffi.map.in
+ $(COMPILE) -D$(TARGET) -E -x assembler-with-cpp -o $@ $<
+
# Multilib support. Automake should provide these on its own.
all-recursive: all-multi
install-recursive: install-multi
+++ /dev/null
-LIBFFI_BASE_5 {
- global:
- /* Exported data variables. */
- ffi_type_void;
- ffi_type_uint8;
- ffi_type_sint8;
- ffi_type_uint16;
- ffi_type_sint16;
- ffi_type_uint32;
- ffi_type_sint32;
- ffi_type_uint64;
- ffi_type_sint64;
- ffi_type_float;
- ffi_type_double;
- ffi_type_longdouble;
- ffi_type_pointer;
-
- /* Exported functions. */
- ffi_call;
- ffi_prep_cif;
- ffi_prep_cif_var;
-
- ffi_raw_call;
- ffi_ptrarray_to_raw;
- ffi_raw_to_ptrarray;
- ffi_raw_size;
-
- ffi_java_raw_call;
- ffi_java_ptrarray_to_raw;
- ffi_java_raw_to_ptrarray;
- ffi_java_raw_size;
-
- /* Functions in the ffi.h header, but not exported.
- These are listed here for documentation purposes only.
- ffi_prep_types
- ffi_prep_cif_core
- */
-
- local:
- *;
-};
-
-/* This section is optional based on FFI_TARGET_HAS_COMPLEX_TYPE. */
-LIBFFI_COMPLEX_5 {
- global:
- /* Exported data variables. */
- ffi_type_complex_float;
- ffi_type_complex_double;
- ffi_type_complex_longdouble;
-} LIBFFI_BASE_5;
-
-/* This section is optional based on FFI_CLOSURES. */
-LIBFFI_CLOSURE_5 {
- global:
- ffi_closure_alloc;
- ffi_closure_free;
- ffi_prep_closure;
- ffi_prep_closure_loc;
- ffi_prep_raw_closure;
- ffi_prep_raw_closure_loc;
- ffi_prep_java_raw_closure;
- ffi_prep_java_raw_closure_loc;
-} LIBFFI_BASE_5;
-
-/* This section is optional based on FFI_GO_CLOSURES. */
-LIBFFI_GO_CLOSURE_5 {
- global:
- ffi_call_go;
- ffi_prep_go_closure;
-} LIBFFI_CLOSURE_5;
--- /dev/null
+#define LIBFFI_ASM
+#define LIBFFI_H
+#include <fficonfig.h>
+#include <ffitarget.h>
+
+LIBFFI_BASE_5 {
+ global:
+ /* Exported data variables. */
+ ffi_type_void;
+ ffi_type_uint8;
+ ffi_type_sint8;
+ ffi_type_uint16;
+ ffi_type_sint16;
+ ffi_type_uint32;
+ ffi_type_sint32;
+ ffi_type_uint64;
+ ffi_type_sint64;
+ ffi_type_float;
+ ffi_type_double;
+ ffi_type_longdouble;
+ ffi_type_pointer;
+
+ /* Exported functions. */
+ ffi_call;
+ ffi_prep_cif;
+ ffi_prep_cif_var;
+
+ ffi_raw_call;
+ ffi_ptrarray_to_raw;
+ ffi_raw_to_ptrarray;
+ ffi_raw_size;
+
+ ffi_java_raw_call;
+ ffi_java_ptrarray_to_raw;
+ ffi_java_raw_to_ptrarray;
+ ffi_java_raw_size;
+
+ /* Functions in the ffi.h header, but not exported.
+ These are listed here for documentation purposes only.
+ ffi_prep_types
+ ffi_prep_cif_core
+ */
+
+ local:
+ *;
+};
+
+#ifdef FFI_TARGET_HAS_COMPLEX_TYPE
+LIBFFI_COMPLEX_5 {
+ global:
+ /* Exported data variables. */
+ ffi_type_complex_float;
+ ffi_type_complex_double;
+ ffi_type_complex_longdouble;
+} LIBFFI_BASE_5;
+#endif
+
+#if FFI_CLOSURES
+LIBFFI_CLOSURE_5 {
+ global:
+ ffi_closure_alloc;
+ ffi_closure_free;
+ ffi_prep_closure;
+ ffi_prep_closure_loc;
+ ffi_prep_raw_closure;
+ ffi_prep_raw_closure_loc;
+ ffi_prep_java_raw_closure;
+ ffi_prep_java_raw_closure_loc;
+} LIBFFI_BASE_5;
+#endif
+
+#if FFI_GO_CLOSURES
+LIBFFI_GO_CLOSURE_5 {
+ global:
+ ffi_call_go;
+ ffi_prep_go_closure;
+} LIBFFI_CLOSURE_5;
+#endif