https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79403

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW

--- Comment #4 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> The files are symlinks in the build tree, mode 640 in the source tree (like
> everything else) and are installed with "cp -p" which explains the broken
> permissions.  Most other things are installed "install -m 644".

Right, there are "chmod a+r" or "chmod 644" all over the place.  But we cannot
use 644 because we cannot have write access for the ALI files.

> Perhaps because few people install a system Ada compiler from sources.

Well, I guess not many people use your very unusual setup either...  This has
remained unchanged in the Makefile for 25 years!  Untested patch:

Index: gcc-interface/Makefile.in
===================================================================
--- gcc-interface/Makefile.in   (revision 245271)
+++ gcc-interface/Makefile.in   (working copy)
@@ -2687,8 +2687,8 @@ install-gnatlib: ../stamp-gnatlib-$(RTSD
        for file in $(RTSDIR)/*.ad[sb]*; do \
            $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_INCLUDE_DIR); \
        done
-       cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.adb
-       cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.ads
+       cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx+r *.adb
+       cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx+r *.ads

 ../stamp-gnatlib2-$(RTSDIR):
        $(RM) $(RTSDIR)/s-*.ali
@@ -2800,7 +2800,7 @@ gnatlib: ../stamp-gnatlib1-$(RTSDIR) ../
                  $(RTSDIR)/memtrack.o
                $(RANLIB_FOR_TARGET) $(RTSDIR)/libgmem$(arext)
         endif
-       $(CHMOD) a-wx $(RTSDIR)/*.ali
+       $(CHMOD) a-wx+r $(RTSDIR)/*.ali
        touch ../stamp-gnatlib-$(RTSDIR)

 # Warning: this target assumes that LIBRARY_VERSION has been set correctly.

Reply via email to