When trying to install a freshly built gcc 4.9.0 on Solaris 9 and 10, I
ran into make install failures when using INSTALL_DATA_DATE:
cp: preserving permissions for
'/vol/gcc-4.9/lib/gcc/i386-pc-solaris2.10/4.9.0/adalib/a-assert.ali': Operation
not supported on transport endpoint
The problem is that the source filesystem is either UFS (supporting
POSIX ACLs) or ZFS (supporting NFSv4 ACLs), while the destination is an
NFS-mounted (NFSv3, which doesn't include support for NFSv4 ACLs) ZFS
filesystem (which cannot support UFS ACLs even if NFSv3 could), so cp -p
errors as above although the timestamps are preserved.
It seems to me that (as already done in one of three cases in the
install-gnatlib target) $(INSTALL_DATA_DATE) errors should be ignored,
to allow for such a case.
The following patch does just that and allowed the make install to
complete.
Ok for mainline?
Rainer
2014-04-25 Rainer Orth <[email protected]>
* gcc-interface/Makefile.in (install-gnatlib): Ignore
$(INSTALL_DATA_DATE) errors.
===================================================================
RCS file: gcc/ada/gcc-interface/RCS/Makefile,v
retrieving revision 1.1
diff -u -r1.1 gcc/ada/gcc-interface/Makefile
--- gcc/ada/gcc-interface/Makefile 2014/04/23 15:14:11 1.1
+++ gcc/ada/gcc-interface/Makefile 2014/04/23 18:56:47
@@ -2613,7 +2613,7 @@
$(RMDIR) $(DESTDIR)$(ADA_INCLUDE_DIR)
-$(MKDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
-$(MKDIR) $(DESTDIR)$(ADA_INCLUDE_DIR)
- for file in $(RTSDIR)/*.ali; do \
+ -for file in $(RTSDIR)/*.ali; do \
$(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
done
-cd $(RTSDIR); for file in *$(arext);do \
@@ -2644,7 +2644,7 @@
fi; \
done
# This copy must be done preserving the date on the original file.
- for file in $(RTSDIR)/*.ad?; do \
+ -for file in $(RTSDIR)/*.ad?; do \
$(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_INCLUDE_DIR); \
done
cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.adb
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University