Help with Gcc-3.0.3 cross-compile
Steve Christiansen
smc@us.ibm.com
Thu Feb 7 17:18:00 GMT 2002
On Thu, Feb 07, 2002 at 04:49:50PM -0800, Shureih, Tariq wrote:
> ../../gcc-3.0.3/gcc/libgcc2.h:101: no data type for mode `TI'
> ../../gcc-3.0.3/gcc/libgcc2.h:102: no data type for mode `TI'
> In file included from ../../gcc-3.0.3/gcc/libgcc2.c:47:
> ../../gcc-3.0.3/gcc/libgcc2.h:101: no data type for mode `TI'
> ../../gcc-3.0.3/gcc/libgcc2.h:102: no data type for mode `TI'
This is no longer a problem in the CVS mainline. Use CVS or a
recent snapshot if you can. If you must stay with 3.0.3, you can
try the following patch. It's a hack, but it works for me.
Steve
*** gcc/config/ia64/ia64.h.save Sun Jan 20 15:40:31 2002
--- gcc/config/ia64/ia64.h Sun Jan 20 15:41:20 2002
*************** extern const char *ia64_fixed_range_stri
*** 269,274 ****
--- 269,280 ----
/* Number of storage units in a word; normally 4. */
#define UNITS_PER_WORD 8
+ /* MIN_UNITS_PER_WORD defaults to UNITS_PER_WORD. That doesn't work when
+ * building a cross libgcc.a. */
+ #if IN_LIBGCC2
+ #define MIN_UNITS_PER_WORD 4
+ #endif
+
/* Width of a pointer, in bits. You must specify a value no wider than the
width of `Pmode'. If it is not equal to the width of `Pmode', you must
define `POINTERS_EXTEND_UNSIGNED'. */
*** gcc/config/ia64/lib1funcs.asm.save Thu Jan 17 15:32:18 2002
--- gcc/config/ia64/lib1funcs.asm Thu Jan 17 15:34:40 2002
***************
*** 1,4 ****
! #ifdef L__divtf3
// Compute a 80-bit IEEE double-extended quotient.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
--- 1,4 ----
! #ifdef L_divtf3
// Compute a 80-bit IEEE double-extended quotient.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
*************** __divtf3:
*** 40,46 ****
.endp __divtf3
#endif
! #ifdef L__divdf3
// Compute a 64-bit IEEE double quotient.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
--- 40,46 ----
.endp __divtf3
#endif
! #ifdef L_divdf3
// Compute a 64-bit IEEE double quotient.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
*************** __divdf3:
*** 82,88 ****
.endp __divdf3
#endif
! #ifdef L__divsf3
// Compute a 32-bit IEEE float quotient.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
--- 82,88 ----
.endp __divdf3
#endif
! #ifdef L_divsf3
// Compute a 32-bit IEEE float quotient.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
*************** __divsf3:
*** 118,124 ****
.endp __divsf3
#endif
! #ifdef L__divdi3
// Compute a 64-bit integer quotient.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
--- 118,124 ----
.endp __divsf3
#endif
! #ifdef L_divdi3
// Compute a 64-bit integer quotient.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
*************** __divdi3:
*** 168,174 ****
.endp __divdi3
#endif
! #ifdef L__moddi3
// Compute a 64-bit integer modulus.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
--- 168,174 ----
.endp __divdi3
#endif
! #ifdef L_moddi3
// Compute a 64-bit integer modulus.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
*************** __moddi3:
*** 222,228 ****
.endp __moddi3
#endif
! #ifdef L__udivdi3
// Compute a 64-bit unsigned integer quotient.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
--- 222,228 ----
.endp __moddi3
#endif
! #ifdef L_udivdi3
// Compute a 64-bit unsigned integer quotient.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
*************** __udivdi3:
*** 272,278 ****
.endp __udivdi3
#endif
! #ifdef L__umoddi3
// Compute a 64-bit unsigned integer modulus.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
--- 272,278 ----
.endp __udivdi3
#endif
! #ifdef L_umoddi3
// Compute a 64-bit unsigned integer modulus.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
*************** __umoddi3:
*** 327,333 ****
.endp __umoddi3
#endif
! #ifdef L__divsi3
// Compute a 32-bit integer quotient.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
--- 327,333 ----
.endp __umoddi3
#endif
! #ifdef L_divsi3
// Compute a 32-bit integer quotient.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
*************** __divsi3:
*** 370,376 ****
.endp __divsi3
#endif
! #ifdef L__modsi3
// Compute a 32-bit integer modulus.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
--- 370,376 ----
.endp __divsi3
#endif
! #ifdef L_modsi3
// Compute a 32-bit integer modulus.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
*************** __modsi3:
*** 417,423 ****
.endp __modsi3
#endif
! #ifdef L__udivsi3
// Compute a 32-bit unsigned integer quotient.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
--- 417,423 ----
.endp __modsi3
#endif
! #ifdef L_udivsi3
// Compute a 32-bit unsigned integer quotient.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
*************** __udivsi3:
*** 460,466 ****
.endp __udivsi3
#endif
! #ifdef L__umodsi3
// Compute a 32-bit unsigned integer modulus.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
--- 460,466 ----
.endp __udivsi3
#endif
! #ifdef L_umodsi3
// Compute a 32-bit unsigned integer modulus.
//
// From the Intel IA-64 Optimization Guide, choose the minimum latency
*** gcc/config/ia64/t-ia64.save Thu Jan 17 15:31:47 2002
--- gcc/config/ia64/t-ia64 Thu Jan 17 15:34:40 2002
*************** CROSS_LIBGCC1 = libgcc1-asm.a
*** 5,16 ****
LIBGCC1 = libgcc1-asm.a
LIB1ASMSRC = ia64/lib1funcs.asm
! # ??? We change the names of the DImode div/mod files so that they won't
! # accidentally be overridden by libgcc2.c files. We used to use __ia64 as
! # a prefix, now we use __ as the prefix.
! LIB1ASMFUNCS = __divtf3 __divdf3 __divsf3 \
! __divdi3 __moddi3 __udivdi3 __umoddi3 \
! __divsi3 __modsi3 __udivsi3 __umodsi3 __save_stack_nonlocal \
__nonlocal_goto __restore_stack_nonlocal __trampoline
# ??? Hack to get -P option used when compiling lib1funcs.asm, because Intel
--- 5,17 ----
LIBGCC1 = libgcc1-asm.a
LIB1ASMSRC = ia64/lib1funcs.asm
! # The names of the DImode div/mod files are the same as those used in
! # libgcc2.c, but the script mklibgcc removes names from LIB2FUNCS that
! # are also defined in LIB1ASMFUNCS. Previously, these names used __ as
! # the prefix and before that, __ia64.
! LIB1ASMFUNCS = _divtf3 _divdf3 _divsf3 \
! _divdi3 _moddi3 _udivdi3 _umoddi3 \
! _divsi3 _modsi3 _udivsi3 _umodsi3 __save_stack_nonlocal \
__nonlocal_goto __restore_stack_nonlocal __trampoline
# ??? Hack to get -P option used when compiling lib1funcs.asm, because Intel
More information about the Gcc
mailing list