This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: gcc-2.95: new bootstrap failure on OSF4 stage1 building libgcc2.a


 > 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]