This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: gcc-2.95: new bootstrap failure on OSF4 stage1 building libgcc2.a
- To: haible at ilog dot fr
- Subject: Re: gcc-2.95: new bootstrap failure on OSF4 stage1 building libgcc2.a
- From: "Kaveh R. Ghazi" <ghazi at caip dot rutgers dot edu>
- Date: Fri, 16 Jul 1999 12:00:21 -0400 (EDT)
- Cc: egcs-bugs at egcs dot cygnus dot com, egcs-patches at egcs dot cygnus dot com
> From: Bruno Haible <haible@ilog.fr>
>
> > > The file ________64ELEL_ already exists with no perms:
> > >
> > > > 2 ---------- 1 ghazi system 1366 Jul 15 10:27 ________64ELEL_
> > Where did that weird file come from to begin with?
>
> It was created by OSF/1 4.0 `ar x' and is useless. The workaround is
> to systematically remove that file:
>
> cd tmpcopy; ar x ../libgcc2.a
>
> becomes
>
> cd tmpcopy; ar x ../libgcc2.a && rm -f ________64ELEL_
>
> Bruno
But the question is why did the multilib activation on OSF
trigger this bug? I think I know why.
Notice the t-ieee file changes the LIBGCC target from "libgcc.a" to
"stmp-multilib". The libgcc.a target does the following in between
extracting object files from libgcc1.a and libgcc2.a:
> # Some versions of ar (specifically the one in RISC/os 5.x), create an
> # unwritable table of contents file, and then print an error message when
> # the second ar command tries to overwrite this file. To avoid the error
> # message from ar, we make sure all files are writable.
> -(cd tmpcopy; chmod +w * > /dev/null 2>&1)
The multilib target doesn't do the chmod.
So I wrote a patch to copy this chmod snippet into the right place for
multilibs. It allows stage1 to complete on my OSF4 box so it should
be okay. I'll be able to finish a full three-stage bootstrap tonight.
BTW, both branches will need this fix.
--Kaveh
1999-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* Makefile.in (stmp-multilib-sub): Make the files extracted
from $(LIBGCC1) writable.
--- egcs-CVS19990715/gcc/Makefile.in~ Fri Jul 2 08:01:52 1999
+++ egcs-CVS19990715/gcc/Makefile.in Fri Jul 16 11:01:07 1999
@@ -1245,6 +1245,11 @@ stmp-multilib-sub:
then (cd tmpcopy; $(AR_FOR_TARGET) x ../$(LIBGCC1)); \
else true; \
fi
+# Some versions of ar (specifically the one in RISC/os 5.x), create an
+# unwritable table of contents file, and then print an error message when
+# the second ar command tries to overwrite this file. To avoid the error
+# message from ar, we make sure all files are writable.
+ -(cd tmpcopy; chmod +w * > /dev/null 2>&1)
(cd tmpcopy; $(AR_FOR_TARGET) x ../$(LIBGCC2))
(cd tmpcopy; $(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET) ../tmplibgcc.a *$(objext))
rm -rf libgcc2.a tmpcopy
--
Kaveh R. Ghazi Engagement Manager / Project Services
ghazi@caip.rutgers.edu Qwest Internet Solutions