PR libffi/70024
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 3 Mar 2016 01:40:29 +0000 (01:40 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 3 Mar 2016 01:40:29 +0000 (01:40 +0000)
  * 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@233926 138bc75d-0d04-0410-961f-82ee72b054a4

libffi/ChangeLog
libffi/Makefile.am
libffi/Makefile.in
libffi/libffi.map.in [moved from libffi/libffi.map with 86% similarity]

index b85daa7..7b23599 100644 (file)
        * 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
index 4710f7f..dd10cb1 100644 (file)
@@ -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)
 
index da41ab9..c603e45 100644 (file)
@@ -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
similarity index 86%
rename from libffi/libffi.map
rename to libffi/libffi.map.in
index 4a1238b..ca50967 100644 (file)
@@ -1,3 +1,8 @@
+#define LIBFFI_ASM
+#define LIBFFI_H
+#include <fficonfig.h>
+#include <ffitarget.h>
+
 LIBFFI_BASE_5 {
   global:
        /* Exported data variables.  */
@@ -40,7 +45,7 @@ LIBFFI_BASE_5 {
        *;
 };
 
-/* This section is optional based on FFI_TARGET_HAS_COMPLEX_TYPE.  */
+#ifdef FFI_TARGET_HAS_COMPLEX_TYPE
 LIBFFI_COMPLEX_5 {
   global:
        /* Exported data variables.  */
@@ -48,8 +53,9 @@ LIBFFI_COMPLEX_5 {
        ffi_type_complex_double;
        ffi_type_complex_longdouble;
 } LIBFFI_BASE_5;
+#endif
 
-/* This section is optional based on FFI_CLOSURES.  */
+#if FFI_CLOSURES
 LIBFFI_CLOSURE_5 {
   global:
        ffi_closure_alloc;
@@ -61,10 +67,12 @@ LIBFFI_CLOSURE_5 {
        ffi_prep_java_raw_closure;
        ffi_prep_java_raw_closure_loc;
 } LIBFFI_BASE_5;
+#endif
 
-/* This section is optional based on FFI_GO_CLOSURES.  */
+#if FFI_GO_CLOSURES
 LIBFFI_GO_CLOSURE_5 {
   global:
        ffi_call_go;
        ffi_prep_go_closure;
 } LIBFFI_CLOSURE_5;
+#endif