From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1601 invoked by alias); 10 Jul 2002 18:46:02 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 1556 invoked by uid 71); 10 Jul 2002 18:46:00 -0000 Resent-Date: 10 Jul 2002 18:46:00 -0000 Resent-Message-ID: <20020710184600.1555.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, jnaset@rsn.hp.com Received: (qmail 31210 invoked by uid 61); 10 Jul 2002 18:37:41 -0000 Message-Id: <20020710183741.31209.qmail@sources.redhat.com> Date: Wed, 10 Jul 2002 11:46:00 -0000 From: jnaset@rsn.hp.com Reply-To: jnaset@rsn.hp.com To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: target/7265: IA-64 C cross-compiler cannot build libgcc X-SW-Source: 2002-07/txt/msg00305.txt.bz2 List-Id: >Number: 7265 >Category: target >Synopsis: IA-64 C cross-compiler cannot build libgcc >Confidential: no >Severity: critical >Priority: medium >Responsible: unassigned >State: open >Class: rejects-legal >Submitter-Id: net >Arrival-Date: Wed Jul 10 11:46:00 PDT 2002 >Closed-Date: >Last-Modified: >Originator: jnaset@rsn.hp.com >Release: xgcc (GCC) 3.1.1 20020708 (prerelease) >Organization: >Environment: HP-UX 11i cross-compiling for ia64-linux-linux-gnu >Description: This code from a header included by libgcc2.c: typedef struct { unsigned long fds_bits [(1024/(8 * sizeof(unsigned long)))]; } __kernel_fd_set; causes this message: posix_types.h:37: size of array `fds_bits' is too large replacing the number of elements in the array with a constant as small as 2 results in the same error. >How-To-Repeat: Make and install gcc 3.1.1 20020708 (prerelease) for HP-UX. Use that compiler to build the cross-compiler for ia64-linux-linux-gnu. The build will fail while compiling libgcc2.c to produce _muldi3.o with the message above. >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: text/plain; name="muldi3.i" Content-Disposition: inline; filename="muldi3.i" # 1 "../../gcc/libgcc2.c" # 1 "" # 1 "" # 1 "../../gcc/libgcc2.c" # 36 "../../gcc/libgcc2.c" # 1 "tconfig.h" 1 struct rtx_def; typedef struct rtx_def *rtx; struct rtvec_def; typedef struct rtvec_def *rtvec; union tree_node; typedef union tree_node *tree; # 1 "../../include/ansidecl.h" 1 # 15 "tconfig.h" 2 # 1 "../../gcc/config/ia64/ia64.h" 1 # 48 "../../gcc/config/ia64/ia64.h" extern int target_flags; # 179 "../../gcc/config/ia64/ia64.h" extern const char *ia64_fixed_range_string; # 809 "../../gcc/config/ia64/ia64.h" enum reg_class { NO_REGS, PR_REGS, BR_REGS, AR_M_REGS, AR_I_REGS, ADDL_REGS, GR_REGS, FR_REGS, GR_AND_BR_REGS, GR_AND_FR_REGS, ALL_REGS, LIM_REG_CLASSES }; # 1284 "../../gcc/config/ia64/ia64.h" typedef struct ia64_args { int words; int int_regs; int fp_regs; int prototype; } CUMULATIVE_ARGS; # 1930 "../../gcc/config/ia64/ia64.h" extern int ia64_asm_output_label; # 2471 "../../gcc/config/ia64/ia64.h" extern int ia64_final_schedule; struct machine_function { struct rtx_def* ia64_eh_epilogue_sp; struct rtx_def* ia64_eh_epilogue_bsp; struct rtx_def* ia64_gp_save; int n_varargs; }; enum ia64_builtins { IA64_BUILTIN_SYNCHRONIZE, IA64_BUILTIN_FETCH_AND_ADD_SI, IA64_BUILTIN_FETCH_AND_SUB_SI, IA64_BUILTIN_FETCH_AND_OR_SI, IA64_BUILTIN_FETCH_AND_AND_SI, IA64_BUILTIN_FETCH_AND_XOR_SI, IA64_BUILTIN_FETCH_AND_NAND_SI, IA64_BUILTIN_ADD_AND_FETCH_SI, IA64_BUILTIN_SUB_AND_FETCH_SI, IA64_BUILTIN_OR_AND_FETCH_SI, IA64_BUILTIN_AND_AND_FETCH_SI, IA64_BUILTIN_XOR_AND_FETCH_SI, IA64_BUILTIN_NAND_AND_FETCH_SI, IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI, IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI, IA64_BUILTIN_SYNCHRONIZE_SI, IA64_BUILTIN_LOCK_TEST_AND_SET_SI, IA64_BUILTIN_LOCK_RELEASE_SI, IA64_BUILTIN_FETCH_AND_ADD_DI, IA64_BUILTIN_FETCH_AND_SUB_DI, IA64_BUILTIN_FETCH_AND_OR_DI, IA64_BUILTIN_FETCH_AND_AND_DI, IA64_BUILTIN_FETCH_AND_XOR_DI, IA64_BUILTIN_FETCH_AND_NAND_DI, IA64_BUILTIN_ADD_AND_FETCH_DI, IA64_BUILTIN_SUB_AND_FETCH_DI, IA64_BUILTIN_OR_AND_FETCH_DI, IA64_BUILTIN_AND_AND_FETCH_DI, IA64_BUILTIN_XOR_AND_FETCH_DI, IA64_BUILTIN_NAND_AND_FETCH_DI, IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI, IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI, IA64_BUILTIN_SYNCHRONIZE_DI, IA64_BUILTIN_LOCK_TEST_AND_SET_DI, IA64_BUILTIN_LOCK_RELEASE_DI, IA64_BUILTIN_BSP, IA64_BUILTIN_FLUSHRS }; enum fetchop_code { IA64_ADD_OP, IA64_SUB_OP, IA64_OR_OP, IA64_AND_OP, IA64_XOR_OP, IA64_NAND_OP }; # 16 "tconfig.h" 2 # 1 "../../gcc/config/dbxelf.h" 1 # 17 "tconfig.h" 2 # 1 "../../gcc/config/elfos.h" 1 # 18 "tconfig.h" 2 # 1 "../../gcc/config/svr4.h" 1 # 19 "tconfig.h" 2 # 1 "../../gcc/config/linux.h" 1 # 20 "tconfig.h" 2 # 1 "../../gcc/config/ia64/sysv4.h" 1 # 40 "../../gcc/config/ia64/sysv4.h" extern int size_directive_output; # 276 "../../gcc/config/ia64/sysv4.h" extern unsigned int ia64_section_threshold; # 21 "tconfig.h" 2 # 1 "../../gcc/config/ia64/linux.h" 1 # 57 "../../gcc/config/ia64/linux.h" # 1 "/opt/gnu-ia/ia64-linux-linux-gnu/include/signal.h" 1 3 # 1 "/opt/gnu-ia/ia64-linux-linux-gnu/include/asm/signal.h" 1 3 # 131 "/opt/gnu-ia/ia64-linux-linux-gnu/include/asm/signal.h" 3 # 1 "/opt/gnu-ia/ia64-linux-linux-gnu/include/linux/types.h" 1 3 # 1 "/opt/gnu-ia/ia64-linux-linux-gnu/include/linux/posix_types.h" 1 3 # 1 "/opt/gnu-ia/ia64-linux-linux-gnu/include/linux/stddef.h" 1 3 # 5 "/opt/gnu-ia/ia64-linux-linux-gnu/include/linux/posix_types.h" 2 3 # 36 "/opt/gnu-ia/ia64-linux-linux-gnu/include/linux/posix_types.h" 3 typedef struct { unsigned long fds_bits [(1024/(8 * sizeof(unsigned long)))]; } __kernel_fd_set; typedef void (*__kernel_sighandler_t)(int); typedef int __kernel_key_t; # 1 "/opt/gnu-ia/ia64-linux-linux-gnu/include/asm/posix_types.h" 1 3 # 13 "/opt/gnu-ia/ia64-linux-linux-gnu/include/asm/posix_types.h" 3 typedef unsigned int __kernel_dev_t; typedef unsigned int __kernel_ino_t; typedef unsigned int __kernel_mode_t; typedef unsigned int __kernel_nlink_t; typedef long __kernel_off_t; typedef long long __kernel_loff_t; typedef int __kernel_pid_t; typedef int __kernel_ipc_pid_t; typedef unsigned int __kernel_uid_t; typedef unsigned int __kernel_gid_t; typedef unsigned long __kernel_size_t; typedef long __kernel_ssize_t; typedef long __kernel_ptrdiff_t; typedef long __kernel_time_t; typedef long __kernel_suseconds_t; typedef long __kernel_clock_t; typedef int __kernel_daddr_t; typedef char * __kernel_caddr_t; typedef unsigned long __kernel_sigset_t; typedef unsigned short __kernel_uid16_t; typedef unsigned short __kernel_gid16_t; typedef struct { int val[2]; } __kernel_fsid_t; typedef __kernel_uid_t __kernel_old_uid_t; typedef __kernel_gid_t __kernel_old_gid_t; typedef __kernel_uid_t __kernel_uid32_t; typedef __kernel_gid_t __kernel_gid32_t; # 47 "/opt/gnu-ia/ia64-linux-linux-gnu/include/linux/posix_types.h" 2 3 # 9 "/opt/gnu-ia/ia64-linux-linux-gnu/include/linux/types.h" 2 3 # 1 "/opt/gnu-ia/ia64-linux-linux-gnu/include/asm/types.h" 1 3 # 25 "/opt/gnu-ia/ia64-linux-linux-gnu/include/asm/types.h" 3 typedef unsigned int umode_t; typedef __signed__ char __s8; typedef unsigned char __u8; typedef __signed__ short __s16; typedef unsigned short __u16; typedef __signed__ int __s32; typedef unsigned int __u32; typedef __signed__ long __s64; typedef unsigned long __u64; # 10 "/opt/gnu-ia/ia64-linux-linux-gnu/include/linux/types.h" 2 3 typedef __kernel_fd_set fd_set; typedef __kernel_dev_t dev_t; typedef __kernel_ino_t ino_t; typedef __kernel_mode_t mode_t; typedef __kernel_nlink_t nlink_t; typedef __kernel_off_t off_t; typedef __kernel_pid_t pid_t; typedef __kernel_daddr_t daddr_t; typedef __kernel_key_t key_t; typedef __kernel_suseconds_t suseconds_t; # 40 "/opt/gnu-ia/ia64-linux-linux-gnu/include/linux/types.h" 3 typedef __kernel_uid_t uid_t; typedef __kernel_gid_t gid_t; typedef __kernel_loff_t loff_t; # 54 "/opt/gnu-ia/ia64-linux-linux-gnu/include/linux/types.h" 3 typedef __kernel_size_t size_t; typedef __kernel_ssize_t ssize_t; typedef __kernel_ptrdiff_t ptrdiff_t; typedef __kernel_time_t time_t; typedef __kernel_clock_t clock_t; typedef __kernel_caddr_t caddr_t; typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef unsigned char unchar; typedef unsigned short ushort; typedef unsigned int uint; typedef unsigned long ulong; typedef __u8 u_int8_t; typedef __s8 int8_t; typedef __u16 u_int16_t; typedef __s16 int16_t; typedef __u32 u_int32_t; typedef __s32 int32_t; typedef __u8 uint8_t; typedef __u16 uint16_t; typedef __u32 uint32_t; typedef __u64 uint64_t; typedef __u64 u_int64_t; typedef __s64 int64_t; # 123 "/opt/gnu-ia/ia64-linux-linux-gnu/include/linux/types.h" 3 struct ustat { __kernel_daddr_t f_tfree; __kernel_ino_t f_tinode; char f_fname[6]; char f_fpack[6]; }; # 132 "/opt/gnu-ia/ia64-linux-linux-gnu/include/asm/signal.h" 2 3 struct siginfo; typedef void (*__sighandler_t)(int); typedef struct sigaltstack { void *ss_sp; int ss_flags; size_t ss_size; } stack_t; # 5 "/opt/gnu-ia/ia64-linux-linux-gnu/include/signal.h" 2 3 # 1 "/opt/gnu-ia/ia64-linux-linux-gnu/include/asm/siginfo.h" 1 3 # 11 "/opt/gnu-ia/ia64-linux-linux-gnu/include/asm/siginfo.h" 3 typedef union sigval { int sival_int; void *sival_ptr; } sigval_t; typedef struct siginfo { int si_signo; int si_errno; int si_code; int __pad0; union { int _pad[((128/sizeof(int)) - 4)]; struct { pid_t _pid; uid_t _uid; } _kill; struct { unsigned int _timer1; unsigned int _timer2; } _timer; struct { pid_t _pid; uid_t _uid; sigval_t _sigval; } _rt; struct { pid_t _pid; uid_t _uid; int _status; clock_t _utime; clock_t _stime; } _sigchld; struct { void *_addr; int _imm; int _pad0; unsigned long _isr; } _sigfault; struct { long _band; int _fd; } _sigpoll; struct { pid_t _pid; uid_t _uid; unsigned long _pfm_ovfl_counters; } _sigprof; } _sifields; } siginfo_t; # 230 "/opt/gnu-ia/ia64-linux-linux-gnu/include/asm/siginfo.h" 3 typedef struct sigevent { sigval_t sigev_value; int sigev_signo; int sigev_notify; union { int _pad[((64/sizeof(int)) - 4)]; struct { void (*_function)(sigval_t); void *_attribute; } _sigev_thread; } _sigev_un; } sigevent_t; # 6 "/opt/gnu-ia/ia64-linux-linux-gnu/include/signal.h" 2 3 # 58 "../../gcc/config/ia64/linux.h" 2 # 1 "/opt/gnu-ia/ia64-linux-linux-gnu/include/sys/ucontext.h" 1 3 struct ucontext { struct sigcontext uc_mcontext; }; # 59 "../../gcc/config/ia64/linux.h" 2 # 22 "tconfig.h" 2 # 1 "../../gcc/defaults.h" 1 # 23 "tconfig.h" 2 # 37 "../../gcc/libgcc2.c" 2 # 1 "../../gcc/tsystem.h" 1 # 37 "../../gcc/tsystem.h" # 1 "/work_z/jnaset/gcc-20020708/ipf/gcc/include/stddef.h" 1 3 # 294 "/work_z/jnaset/gcc-20020708/ipf/gcc/include/stddef.h" 3 typedef int wchar_t; # 38 "../../gcc/tsystem.h" 2 extern void *malloc (size_t); extern void free (void *); extern int atexit (void (*)(void)); # 38 "../../gcc/libgcc2.c" 2 # 1 "../../gcc/machmode.h" 1 # 29 "../../gcc/machmode.h" enum machine_mode { # 1 "../../gcc/machmode.def" 1 # 74 "../../gcc/machmode.def" VOIDmode, BImode, QImode, HImode, SImode, DImode, TImode, OImode, PQImode, PHImode, PSImode, PDImode, QFmode, HFmode, TQFmode, SFmode, DFmode, XFmode, TFmode, QCmode, HCmode, SCmode, DCmode, XCmode, TCmode, CQImode, CHImode, CSImode, CDImode, CTImode, COImode, V2QImode, V2HImode, V2SImode, V2DImode, V4QImode, V4HImode, V4SImode, V4DImode, V8QImode, V8HImode, V8SImode, V8DImode, V16QImode, V2SFmode, V2DFmode, V4SFmode, V4DFmode, V8SFmode, V8DFmode, V16SFmode, BLKmode, # 159 "../../gcc/machmode.def" CCmode, CCImode, # 31 "../../gcc/machmode.h" 2 MAX_MACHINE_MODE }; # 41 "../../gcc/machmode.h" extern const char * const mode_name[(int) MAX_MACHINE_MODE]; enum mode_class { MODE_RANDOM, MODE_INT, MODE_FLOAT, MODE_PARTIAL_INT, MODE_CC, MODE_COMPLEX_INT, MODE_COMPLEX_FLOAT, MODE_VECTOR_INT, MODE_VECTOR_FLOAT, MAX_MODE_CLASS}; extern const enum mode_class mode_class[(int) MAX_MACHINE_MODE]; # 80 "../../gcc/machmode.h" extern const unsigned char mode_size[(int) MAX_MACHINE_MODE]; extern const unsigned char mode_unit_size[(int) MAX_MACHINE_MODE]; # 96 "../../gcc/machmode.h" extern const unsigned short mode_bitsize[(int) MAX_MACHINE_MODE]; # 123 "../../gcc/machmode.h" extern const unsigned char mode_wider_mode[(int) MAX_MACHINE_MODE]; extern enum machine_mode mode_for_size (unsigned int, enum mode_class, int); extern enum machine_mode smallest_mode_for_size (unsigned int, enum mode_class); extern enum machine_mode int_mode_for_mode (enum machine_mode); extern enum machine_mode get_best_mode (int, int, unsigned int, enum machine_mode, int); extern unsigned get_mode_alignment (enum machine_mode); extern const enum machine_mode class_narrowest_mode[(int) MAX_MODE_CLASS]; extern enum machine_mode byte_mode; extern enum machine_mode word_mode; extern enum machine_mode ptr_mode; # 40 "../../gcc/libgcc2.c" 2 # 1 "../../gcc/libgcc2.h" 1 # 25 "../../gcc/libgcc2.h" extern int __gcc_bcmp (const unsigned char *, const unsigned char *, size_t); extern void __clear_cache (char *, char *); extern void __eprintf (const char *, const char *, unsigned int, const char *) __attribute__ ((__noreturn__)); struct bb; extern void __bb_exit_func (void); extern void __bb_init_func (struct bb *); extern void __bb_fork_func (void); extern void __bb_trace_func (void); extern void __bb_trace_ret (void); extern void __bb_init_trace_func (struct bb *, unsigned long); struct exception_descriptor; extern short int __get_eh_table_language (struct exception_descriptor *); extern short int __get_eh_table_version (struct exception_descriptor *); # 67 "../../gcc/libgcc2.h" typedef int QItype __attribute__ ((mode (QI))); typedef unsigned int UQItype __attribute__ ((mode (QI))); typedef int HItype __attribute__ ((mode (HI))); typedef unsigned int UHItype __attribute__ ((mode (HI))); typedef int SItype __attribute__ ((mode (SI))); typedef unsigned int USItype __attribute__ ((mode (SI))); typedef int DItype __attribute__ ((mode (DI))); typedef unsigned int UDItype __attribute__ ((mode (DI))); typedef int TItype __attribute__ ((mode (TI))); typedef unsigned int UTItype __attribute__ ((mode (TI))); typedef float SFtype __attribute__ ((mode (SF))); typedef float DFtype __attribute__ ((mode (DF))); typedef float TFtype __attribute__ ((mode (TF))); # 122 "../../gcc/libgcc2.h" typedef int word_type __attribute__ ((mode (__word__))); # 214 "../../gcc/libgcc2.h" extern TItype __multi3 (TItype, TItype); extern TItype __divti3 (TItype, TItype); extern UTItype __udivti3 (UTItype, UTItype); extern UTItype __umodti3 (UTItype, UTItype); extern TItype __modti3 (TItype, TItype); extern UTItype __udivmodti4 (UTItype, UTItype, UTItype *); extern TItype __negti2 (TItype); extern TItype __lshrti3 (TItype, word_type); extern TItype __ashlti3 (TItype, word_type); extern TItype __ashrti3 (TItype, word_type); extern TItype __ffsti2 (TItype); extern UDItype __udiv_w_sdiv (UDItype *, UDItype, UDItype, UDItype); extern word_type __cmpti2 (TItype, TItype); extern word_type __ucmpti2 (TItype, TItype); extern DItype __absvsi2 (DItype); extern TItype __absvdi2 (TItype); extern DItype __addvsi3 (DItype, DItype); extern TItype __addvdi3 (TItype, TItype); extern DItype __subvsi3 (DItype, DItype); extern TItype __subvdi3 (TItype, TItype); extern DItype __mulvsi3 (DItype, DItype); extern TItype __mulvdi3 (TItype, TItype); extern DItype __negvsi2 (DItype); extern TItype __negvdi2 (TItype); extern TItype __fixdfti (DFtype); extern TItype __fixsfti (SFtype); extern DFtype __floattidf (TItype); extern SFtype __floattisf (TItype); extern UDItype __fixunsdfdi (DFtype); extern UDItype __fixunssfdi (SFtype); extern TItype __fixunsdfti (DFtype); extern TItype __fixunssfti (SFtype); # 274 "../../gcc/libgcc2.h" extern TItype __fixunstfti (TFtype); extern TItype __fixtfti (TFtype); extern TFtype __floattitf (TItype); # 286 "../../gcc/libgcc2.h" struct DWstruct {DItype low, high;}; typedef union { struct DWstruct s; TItype ll; } DWunion; # 1 "../../gcc/longlong.h" 1 # 1465 "../../gcc/longlong.h" extern const UQItype __clz_tab[]; # 300 "../../gcc/libgcc2.h" 2 # 47 "../../gcc/libgcc2.c" 2 # 353 "../../gcc/libgcc2.c" TItype __multi3 (TItype u, TItype v) { DWunion w; DWunion uu, vv; uu.ll = u, vv.ll = v; w.ll = ({DWunion __w; do { UDItype __x0, __x1, __x2, __x3; UDItype __ul, __vl, __uh, __vh; __ul = ((UDItype) (uu.s.low) & (((UDItype) 1 << ((8 * 8) / 2)) - 1)); __uh = ((UDItype) (uu.s.low) >> ((8 * 8) / 2)); __vl = ((UDItype) (vv.s.low) & (((UDItype) 1 << ((8 * 8) / 2)) - 1)); __vh = ((UDItype) (vv.s.low) >> ((8 * 8) / 2)); __x0 = (UDItype) __ul * __vl; __x1 = (UDItype) __ul * __vh; __x2 = (UDItype) __uh * __vl; __x3 = (UDItype) __uh * __vh; __x1 += ((UDItype) (__x0) >> ((8 * 8) / 2)); __x1 += __x2; if (__x1 < __x2) __x3 += ((UDItype) 1 << ((8 * 8) / 2)); (__w.s.high) = __x3 + ((UDItype) (__x1) >> ((8 * 8) / 2)); (__w.s.low) = ((UDItype) (__x1) & (((UDItype) 1 << ((8 * 8) / 2)) - 1)) * ((UDItype) 1 << ((8 * 8) / 2)) + ((UDItype) (__x0) & (((UDItype) 1 << ((8 * 8) / 2)) - 1)); } while (0); __w.ll; }); w.s.high += ((UDItype) uu.s.low * (UDItype) vv.s.high + (UDItype) uu.s.high * (UDItype) vv.s.low); return w.ll; }