Using $(INSTALL_DATA) and chmod generates errors as the operation is not permitted. So use plain copy mode and chown/chgrp in the post-install target. --- libgcc/Makefile.in.orig Sun Apr 15 18:47:00 2012 +++ libgcc/Makefile.in Sun Apr 15 18:48:38 2012 @@ -912,7 +912,7 @@ gcc-extra-parts: parts="$(GCC_EXTRA_PARTS)"; \ for file in $$parts; do \ rm -f $(gcc_objdir)$(MULTISUBDIR)/$$file; \ - $(INSTALL_DATA) $$file $(gcc_objdir)$(MULTISUBDIR)/; \ + install -c $$file $(gcc_objdir)$(MULTISUBDIR)/; \ case $$file in \ *.a) \ $(RANLIB) $(gcc_objdir)$(MULTISUBDIR)/$$file ;; \ @@ -961,17 +961,15 @@ install-shared: install-leaf: $(install-shared) $(install-libunwind) $(mkinstalldirs) $(DESTDIR)$(inst_libdir) - $(INSTALL_DATA) libgcc.a $(DESTDIR)$(inst_libdir)/ - chmod 644 $(DESTDIR)$(inst_libdir)/libgcc.a + install -c libgcc.a $(DESTDIR)$(inst_libdir)/ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc.a - $(INSTALL_DATA) libgcov.a $(DESTDIR)$(inst_libdir)/ - chmod 644 $(DESTDIR)$(inst_libdir)/libgcov.a + install -c libgcov.a $(DESTDIR)$(inst_libdir)/ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcov.a parts="$(INSTALL_PARTS)"; \ for file in $$parts; do \ rm -f $(DESTDIR)$(inst_libdir)/$$file; \ - $(INSTALL_DATA) $$file $(DESTDIR)$(inst_libdir)/; \ + install -c $$file $(DESTDIR)$(inst_libdir)/; \ case $$file in \ *.a) \ $(RANLIB) $(gcc_objdir)$(MULTISUBDIR)/$$file ;; \