From: Richard Henderson Date: Thu, 3 Mar 2016 01:40:29 +0000 (-0800) Subject: re PR libffi/70024 (libffi ABI change w/o SONAME bump) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5147e0e84ef1daf08576c2ebc477b8941f54578f;p=gcc.git re PR libffi/70024 (libffi ABI change w/o SONAME bump) PR libffi/70024 * 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. From-SVN: r233926 --- diff --git a/libffi/ChangeLog b/libffi/ChangeLog index b85daa79da1..7b23599fe2b 100644 --- a/libffi/ChangeLog +++ b/libffi/ChangeLog @@ -16,6 +16,12 @@ * 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 PR libffi/65441 diff --git a/libffi/Makefile.am b/libffi/Makefile.am index 4710f7f9fd9..dd10cb1ebb8 100644 --- a/libffi/Makefile.am +++ b/libffi/Makefile.am @@ -206,17 +206,15 @@ endif 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'` \ @@ -228,6 +226,9 @@ libffi_version_dep = 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) diff --git a/libffi/Makefile.in b/libffi/Makefile.in index da41ab95fb7..c603e45691d 100644 --- a/libffi/Makefile.in +++ b/libffi/Makefile.in @@ -488,10 +488,10 @@ nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES) 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) @@ -1901,16 +1901,17 @@ doc/libffi.info: $(STAMP_BUILD_INFO) 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 diff --git a/libffi/libffi.map b/libffi/libffi.map deleted file mode 100644 index 4a1238b5819..00000000000 --- a/libffi/libffi.map +++ /dev/null @@ -1,70 +0,0 @@ -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; diff --git a/libffi/libffi.map.in b/libffi/libffi.map.in new file mode 100644 index 00000000000..ca509671a80 --- /dev/null +++ b/libffi/libffi.map.in @@ -0,0 +1,78 @@ +#define LIBFFI_ASM +#define LIBFFI_H +#include +#include + +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