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]

infinite loop compiling aboot.i on alpha


With this version of the compiler:

popov-247% gcc -v
Reading specs from /export/u10/egcs-test/lib/gcc-lib/alphaev6-unknown-linux-gnu/2.96/specs
gcc version 2.96 19991106 (experimental)

on RH 6.0 on alpha, when cc1 tries to compile the following routine:

void
main_ (void)
{
	extern long load_kernel (void);
	long i, result;

	cons_init();

	printf("aboot: Linux/Alpha SRM bootloader version "
	       "0"  "." "5"   "\n");

	if (((struct hwrpb_struct *) 0x10000000) ->pagesize != 8192) {
		printf("aboot: expected 8kB pages, got %ldkB\n",
		       ((struct hwrpb_struct *) 0x10000000) ->pagesize >> 10);
		return;
	}

	pal_init();

	result = load_kernel();
	if (result < 0) {
		printf("aboot: load failed (%lx)\n", result);
		return;
	}

	strcpy((char*)(0xfffffc0000000000 +0x30A000) , kernel_args);
	printf("aboot: ok, now starting the kernel...\n");
	run_kernel();
	printf("aboot: kernel returned unexpectedly.  Halting slowly...\n");
	for (i = 0 ; i < 0x100000000 ; i++)
		 ;
	halt();
}

it seems to get stuck in an infinite loop.  From the stack trace, I don't
know if it is a problem with the libraries or with the compiler.  Here's
the stack trace:

popov-69% gdb /export/u10/egcs-test/lib/gcc-lib/alphaev6-unknown-linux-gnu/2.96/cc1 
GNU gdb 4.17.0.11 with Linux support
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "alpha-redhat-linux"...
(gdb) run aboot.i -mno-fp-regs -O2 -Wall -ffixed-8
Starting program: /export/u10/egcs-test/lib/gcc-lib/alphaev6-unknown-linux-gnu/2.96/cc1 aboot.i -mno-fp-regs -O2 -Wall -ffixed-8
 __FD_SET __FD_CLR __FD_ISSET __FD_ZERO clear_page copy_page init_waitqueue waitqueue_active __cmsg_nxthdr cmsg_nxthdr kdev_t_to_nr to_kdev_t __list_add list_add __list_del list_del list_empty list_splice partial_name_hash end_name_hash full_name_hash d_drop dname_external d_add dget atomic_add atomic_sub atomic_add_return atomic_sub_return generic_ffs generic_hweight32 generic_hweight16 generic_hweight8 set_bit clear_bit change_bit test_and_set_bit test_and_clear_bit test_and_change_bit test_bit ffz_b ffz ffs find_next_zero_bit rdmces rdps rdusp swpipl whami wrent wripir wrkgp wrmces wrperfmon wrusp wrvptptr xchg_u32 xchg_u64 __xchg down down_interruptible down_trylock up __fswab16 __swab16p __swab16s __fswab32 __swab32p __swab32s __fswab64 __swab64p __swab64s buffer_uptodate buffer_dirty buffer_locked buffer_req buffer_protected timespec_to_jiffies jiffies_to_timespec coda_f2i mark_inode_dirty adfs_checkbblk locks_verify_locked locks_verify_area mark_buffer_clean mark_buffer!
_dirty brelse bforget cap_combine cap_intersect cap_drop cap_invert get_cycles scsi_blk_major queue_task run_task_queue sigaddset {GC 5414k -> 2748k in 0.019} sigdelset sigismember sigfindinword sigorsets sigandsets signandsets signotset sigemptyset sigfillset sigaddsetmask sigdelsetmask sigtestsetmask siginitset siginitsetinv init_timer timer_pending thread_saved_pc add_free_taskslot get_free_taskslot hash_pid unhash_pid find_task_by_pid signal_pending recalc_sigpending on_sig_stack sas_ss_flags suser fsuser capable mmget expand_files __add_wait_queue add_wait_queue __remove_wait_queue remove_wait_queue get_free_page expand_stack find_vma_intersection hwrpb_update_checksum first_block run_kernel main_
Program received signal SIGINT, Interrupt.
__divl () at ../sysdeps/alpha/divrem.h:175
../sysdeps/alpha/divrem.h:175: No such file or directory.
Current language:  auto; currently asm
(gdb) info stack
#0  __divl () at ../sysdeps/alpha/divrem.h:175
#1  0x1200f2914 in unroll_loop (loop_end=0x20000551b00, insn_count=5, 
    loop_start=0x20000551940, end_insert_before=0x20000554040, 
    loop_info=0x120329948, strength_reduce_p=0) at ../../gcc/unroll.c:390
#2  0x1200ea694 in strength_reduce (scan_start=0x200007f4600, 
    end=0x20000551b00, loop_top=0x0, insn_count=5, loop_start=0x20000551940, 
    loop_end=0x20000551b00, loop_info=0x120329948, loop_cont=0x20000551a80, 
    unroll_p=0, bct_p=0) at ../../gcc/loop.c:5287
#3  0x1200e2e68 in scan_loop (loop_start=0x20000551940, end=0x20000551b00, 
    loop_cont=0x20000551a80, unroll_p=0, bct_p=0) at ../../gcc/loop.c:1178
#4  0x1200e1920 in loop_optimize (f=0x120322a00, dumpfile=0x0, unroll_p=0, 
    bct_p=0) at ../../gcc/loop.c:562
#5  0x120006c9c in rest_of_compilation (decl=0x200006b3d00)
    at ../../gcc/toplev.c:3910
#6  0x1201bf274 in finish_function (nested=0) at ../../gcc/c-decl.c:6714
#7  0x1201a9094 in yyparse () at c-parse.y:314
#8  0x120005444 in compile_file (name=0x200000242c8 "strncpy")
    at ../../gcc/toplev.c:3213
#9  0x120009e70 in main (argc=6, argv=0x11ffff948) at ../../gcc/toplev.c:5586
#10 0x2000014ffb0 in __libc_start_main (main=0x120009700 <main>, argc=6, 
    argv=0x11ffff948, init=0x120001be0 <_init>, fini=0x1201d58a0 <_fini>, 
    rtld_fini=0x20000551b00, stack_end=0x11ffff930)
    at ../sysdeps/generic/libc-start.c:78

The complete input file can be found at

http://www.math.purdue.edu/~lucier/aboot.i.gz

Brad


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