This is the mail archive of the gcc-bugs@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]

[3.1] locate_and_pad_parm Change Hurts mips-sgi-irix6.5


Starting 26July, bootstrapping gcc3.1 for mips-sgi-irix6.5 has died
when running f/fini.  Binary search revealed your 26Jul change to
gcc/function.c's locate_and_pad_parm (see the attachment) causes the
problem.

Will you please investigate and fix the problem?  See the information
below.

Also, where is the gcc-patches message explaining the patch,
illustrating the patch, listing the person approving the patch, and
listing the platform on which you tested the patch.

Thanks,
Jeffrey D. Oldham
oldham@codesourcery.com

gcc 3.1 on mips-sgi-irix6.5
/users/joldham/pooma/dev0/gcc/configure --with-gcc-version-trigger=/users/joldham/pooma/dev0/gcc/gcc/version.c --host=mips-sgi-irix6.5 --prefix=/users/joldham/pooma/dev0/install/mips-sgi-irix6.5 --norecursion

Modifying f/fini.c by adding one line in apparently random places
seems to resolve the problem.  I do not know how to recreate the
problem using a cross compiler.

...
stage1/xgcc -Bstage1/ -B/users/joldham/pooma/dev0/install/mips-sgi-irix6.5/mips-sgi-irix6.5/bin/  -DIN_GCC    -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes   -DHAVE_CONFIG_H -DGENERATOR_FILE  -o f/fini \
	f/fini.o f/proj-h.o safe-ctype.o
/bin/sh /users/joldham/pooma/dev0/gcc/gcc/move-if-change tmp-mlib.h multilib.h
./gencheck > tmp-check.h
/bin/sh /users/joldham/pooma/dev0/gcc/gcc/move-if-change tmp-check.h tree-check.h
multilib.h is unchanged
echo timestamp > s-mlib
echo timestamp > s-check
./f/fini /users/joldham/pooma/dev0/gcc/gcc/f/str-1t.fin f/str-1t.j f/str-1t.h
./f/fini /users/joldham/pooma/dev0/gcc/gcc/f/str-1t.fin f/str-1t.j f/str-1t.h
./f/fini /users/joldham/pooma/dev0/gcc/gcc/f/str-2t.fin f/str-2t.j f/str-2t.h
./f/fini /users/joldham/pooma/dev0/gcc/gcc/f/str-2t.fin f/str-2t.j f/str-2t.h
./f/fini /users/joldham/pooma/dev0/gcc/gcc/f/str-fo.fin f/str-fo.j f/str-fo.h
./f/fini /users/joldham/pooma/dev0/gcc/gcc/f/str-fo.fin f/str-fo.j f/str-fo.h
./f/fini /users/joldham/pooma/dev0/gcc/gcc/f/str-io.fin f/str-io.j f/str-io.h
./f/fini /users/joldham/pooma/dev0/gcc/gcc/f/str-io.fin f/str-io.j f/str-io.h
./f/fini /users/joldham/pooma/dev0/gcc/gcc/f/str-nq.fin f/str-nq.j f/str-nq.h
./f/fini /users/joldham/pooma/dev0/gcc/gcc/f/str-nq.fin f/str-nq.j f/str-nq.h
./f/fini /users/joldham/pooma/dev0/gcc/gcc/f/str-op.fin f/str-op.j f/str-op.h
./f/fini /users/joldham/pooma/dev0/gcc/gcc/f/str-op.fin f/str-op.j f/str-op.h
./f/fini /users/joldham/pooma/dev0/gcc/gcc/f/str-ot.fin f/str-ot.j f/str-ot.h
./f/fini /users/joldham/pooma/dev0/gcc/gcc/f/str-ot.fin f/str-ot.j f/str-ot.h
make[2]: *** [f/str-1t.h] Segmentation fault (core dumped)
make[2]: *** Deleting file `f/str-1t.h'
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [f/str-1t.j] Segmentation fault (core dumped)
make[2]: *** Deleting file `f/str-1t.j'
make[1]: *** [stage2_build] Error 2
make[1]: Leaving directory `/am/mother/vol/vol2/frameworks/pooma/joldham/dev0/gcc/objdir/gcc'
make: *** [bootstrap] Error 2
gcc_build: error: Could not bootstrap the compiler
Index: gcc/function.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/function.c,v
retrieving revision 1.283
retrieving revision 1.284
diff -c -p -r1.283 -r1.284
*** function.c	2001/07/11 20:35:51	1.283
--- function.c	2001/07/26 05:45:25	1.284
*************** locate_and_pad_parm (passed_mode, type, 
*** 5264,5270 ****
      /* However, BLKmode args passed in regs have their padding done elsewhere.
         The stack slot must be able to hold the entire register.  */
        && !(in_regs && passed_mode == BLKmode))
!     pad_below (offset_ptr, passed_mode, sizetree);
  
    if (where_pad != none
        && (!host_integerp (sizetree, 1)
--- 5264,5273 ----
      /* However, BLKmode args passed in regs have their padding done elsewhere.
         The stack slot must be able to hold the entire register.  */
        && !(in_regs && passed_mode == BLKmode))
!     {
!       pad_below (offset_ptr, passed_mode, sizetree);
!       pad_below (initial_offset_ptr, passed_mode, sizetree);
!     }
  
    if (where_pad != none
        && (!host_integerp (sizetree, 1)

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