This fixes a "make prefix=... mandir=... install" installation error
in libffi on multilib targets like {x86_64,m68k}-linux:

make prefix=/tmp/buildroot/usr mandir=/tmp/buildroot/usr/share/man install
...
Making install in man
make[5]: Entering directory
`/tmp/objdir/x86_64-unknown-linux-gnu/32/libffi/man'
make[6]: Entering directory
`/tmp/objdir/x86_64-unknown-linux-gnu/32/libffi/man'
make[6]: Nothing to be done for `install-exec-am'.
test -z "/usr/share/man/man3" || /bin/mkdir -p "/usr/share/man/man3"
 /usr/bin/install -c -m 644 /tmp/gcc-4.7-20120211/libffi/man/ffi.3
/tmp/gcc-4.7-20120211/libffi/man/ffi_call.3
/tmp/gcc-4.7-20120211/libffi/man/ffi_prep_cif.3 '/usr/share/man/man3'
/usr/bin/install: cannot create regular file `/usr/share/man/man3/ffi.3':
Permission denied
/usr/bin/install: cannot create regular file `/usr/share/man/man3/ffi_call.3':
Permission denied
/usr/bin/install: cannot create regular file
`/usr/share/man/man3/ffi_prep_cif.3': Permission denied
make[6]: *** [install-man3] Error 1

The problem is that the Makefile variable FLAGS_TO_PASS isn't defined.
This causes multilib subdirs to not see the install-time settings and
instead use the configure-time settings, which breaks installations via
a separate staging area.

This problem affects trunk and the 4.6 and 4.5 branches.  4.4 is not
affected since it doesn't have these man pages.

See <http://gcc.gnu.org/ml/gcc-patches/2011-09/msg01187.html> for a
similar problem in libquadmath that Joseph Myers fixed last year.

OK for trunk and affected branches?

(If approved I'll need from someone with svn write access to get it applied.)

/Mikael

libffi/

2012-02-23  Mikael Pettersson  <mi...@it.uu.se>

        PR libffi/52223
        * Makefile.am (FLAGS_TO_PASS): Define.
        * Makefile.in: Regenerate.

--- gcc-4.7-20120218/libffi/Makefile.am.~1~     2010-07-02 18:52:38.000000000 
+0200
+++ gcc-4.7-20120218/libffi/Makefile.am 2012-02-23 12:49:21.000000000 +0100
@@ -76,6 +76,9 @@ AM_MAKEFLAGS = \
        "RANLIB=$(RANLIB)" \
        "DESTDIR=$(DESTDIR)"
 
+# Subdir rules rely on $(FLAGS_TO_PASS)
+FLAGS_TO_PASS = $(AM_MAKEFLAGS)
+
 MAKEOVERRIDES=
 
 toolexeclib_LTLIBRARIES = libffi.la
--- gcc-4.7-20120218/libffi/Makefile.in.~1~     2012-02-18 23:44:28.000000000 
+0100
+++ gcc-4.7-20120218/libffi/Makefile.in 2012-02-23 12:49:21.000000000 +0100
@@ -455,6 +455,9 @@ AM_MAKEFLAGS = \
        "RANLIB=$(RANLIB)" \
        "DESTDIR=$(DESTDIR)"
 
+
+# Subdir rules rely on $(FLAGS_TO_PASS)
+FLAGS_TO_PASS = $(AM_MAKEFLAGS)
 MAKEOVERRIDES = 
 toolexeclib_LTLIBRARIES = libffi.la
 noinst_LTLIBRARIES = libffi_convenience.la

Reply via email to